From 8f1887563803988843e8d57752a03318a09bb13e Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Sun, 2 Jun 2024 16:53:15 +0600 Subject: [PATCH 001/369] Vertical Tiles: Fix compatibility with text size changer --- .../iconify/ui/fragments/QsIconLabel.kt | 3 ++ .../iconify/xposed/modules/QuickSettings.kt | 28 ++++++++++++++++--- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/QsIconLabel.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/QsIconLabel.kt index 470d9f0eb..518f79315 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/QsIconLabel.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/QsIconLabel.kt @@ -24,6 +24,7 @@ import com.drdisagree.iconify.config.Prefs.getBoolean import com.drdisagree.iconify.config.Prefs.getString import com.drdisagree.iconify.config.Prefs.putBoolean import com.drdisagree.iconify.config.Prefs.putString +import com.drdisagree.iconify.config.RPrefs import com.drdisagree.iconify.databinding.FragmentQsIconLabelBinding import com.drdisagree.iconify.ui.base.BaseFragment import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader @@ -71,6 +72,7 @@ class QsIconLabel : BaseFragment() { binding.textSize.setResetClickListener { finalTextSize[0] = 14 putString(FABRICATED_QS_TEXT_SIZE, finalTextSize[0].toString()) + RPrefs.putInt(FABRICATED_QS_TEXT_SIZE, -1) removeResourceFromOverlay( requireContext(), @@ -85,6 +87,7 @@ class QsIconLabel : BaseFragment() { override fun onStopTrackingTouch(slider: Slider) { finalTextSize[0] = slider.value.toInt() putString(FABRICATED_QS_TEXT_SIZE, finalTextSize[0].toString()) + RPrefs.putInt(FABRICATED_QS_TEXT_SIZE, finalTextSize[0] - 4) buildOverlayWithResource( requireContext(), diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/QuickSettings.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/QuickSettings.kt index 3c27756f4..9a31f075f 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/QuickSettings.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/QuickSettings.kt @@ -29,6 +29,7 @@ import com.drdisagree.iconify.common.Preferences.QS_TEXT_ALWAYS_WHITE import com.drdisagree.iconify.common.Preferences.QS_TEXT_FOLLOW_ACCENT import com.drdisagree.iconify.common.Preferences.QS_TOPMARGIN import com.drdisagree.iconify.common.Preferences.VERTICAL_QSTILE_SWITCH +import com.drdisagree.iconify.common.References.FABRICATED_QS_TEXT_SIZE import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.ModPack import com.drdisagree.iconify.xposed.modules.utils.Helpers.isPixelVariant @@ -57,6 +58,7 @@ class QuickSettings(context: Context?) : ModPack(context!!) { private var hideSilentText = false private var qqsTopMargin = 100 private var qsTopMargin = 100 + private var tileTextSize: Float = (-1).toFloat() private var mParam: Any? = null private var mFooterButtonsContainer: ViewGroup? = null private var mFooterButtonsOnDrawListener: OnDrawListener? = null @@ -80,6 +82,7 @@ class QuickSettings(context: Context?) : ModPack(context!!) { qsTextFollowAccent = Xprefs!!.getBoolean(QS_TEXT_FOLLOW_ACCENT, false) hideSilentText = Xprefs!!.getBoolean(HIDE_QS_SILENT_TEXT, false) hideFooterButtons = Xprefs!!.getBoolean(HIDE_QS_FOOTER_BUTTONS, false) + tileTextSize = Xprefs!!.getInt(FABRICATED_QS_TEXT_SIZE, -1).toFloat() triggerQsElementVisibility() } @@ -898,17 +901,34 @@ class QuickSettings(context: Context?) : ModPack(context!!) { private fun setLabelSizes(paramThisObject: Any) { try { + val primaryTextScalingFactor = if (tileTextSize != (-1).toFloat()) { + tileTextSize / 10f + } else { + 1f + } + val secondaryTextScalingFactor = if (tileTextSize != (-1).toFloat()) { + primaryTextScalingFactor - 0.08f + } else { + 0.92f + } + if (qsTilePrimaryTextSize != null && qsTilePrimaryTextSizeUnit != -1) { - (getObjectField(paramThisObject, "label") as TextView).setTextSize( + (getObjectField( + paramThisObject, + "label" + ) as TextView).setTextSize( qsTilePrimaryTextSizeUnit, - qsTilePrimaryTextSize!! + qsTilePrimaryTextSize!! * primaryTextScalingFactor ) } if (qsTileSecondaryTextSize != null && qsTileSecondaryTextSizeUnit != -1) { - (getObjectField(paramThisObject, "secondaryLabel") as TextView).setTextSize( + (getObjectField( + paramThisObject, + "secondaryLabel" + ) as TextView).setTextSize( qsTileSecondaryTextSizeUnit, - (qsTileSecondaryTextSize!! * 0.92).toFloat() + qsTileSecondaryTextSize!! * secondaryTextScalingFactor ) } } catch (ignored: Throwable) { From ca1ba34c6073a979728e9969281b4aa4ea977bde Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Mon, 3 Jun 2024 16:35:12 +0600 Subject: [PATCH 002/369] Vertical Tiles: Add separate slider for label size --- .../drdisagree/iconify/common/Preferences.kt | 1 + .../iconify/ui/fragments/QsIconLabel.kt | 3 -- .../ui/fragments/XposedQuickSettings.kt | 42 ++++++++++++++- .../iconify/xposed/modules/QuickSettings.kt | 53 ++++++++----------- .../layout/fragment_xposed_quick_settings.xml | 15 ++++++ app/src/main/res/values/strings.xml | 1 + 6 files changed, 79 insertions(+), 36 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt index b3d4f9511..59933d2a8 100644 --- a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt +++ b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt @@ -118,6 +118,7 @@ object Preferences { const val HIDE_QS_FOOTER_BUTTONS = "xposed_hideqsfooterbuttons" const val QS_TEXT_ALWAYS_WHITE = "xposed_qstextalwayswhite" const val QS_TEXT_FOLLOW_ACCENT = "xposed_qstextfollowaccent" + const val QS_TEXT_SIZE_SCALING = "xposed_qstextsizescaling" // Xposed view tags const val ICONIFY_HEADER_CLOCK_TAG = "iconify_header_clock" diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/QsIconLabel.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/QsIconLabel.kt index 518f79315..470d9f0eb 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/QsIconLabel.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/QsIconLabel.kt @@ -24,7 +24,6 @@ import com.drdisagree.iconify.config.Prefs.getBoolean import com.drdisagree.iconify.config.Prefs.getString import com.drdisagree.iconify.config.Prefs.putBoolean import com.drdisagree.iconify.config.Prefs.putString -import com.drdisagree.iconify.config.RPrefs import com.drdisagree.iconify.databinding.FragmentQsIconLabelBinding import com.drdisagree.iconify.ui.base.BaseFragment import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader @@ -72,7 +71,6 @@ class QsIconLabel : BaseFragment() { binding.textSize.setResetClickListener { finalTextSize[0] = 14 putString(FABRICATED_QS_TEXT_SIZE, finalTextSize[0].toString()) - RPrefs.putInt(FABRICATED_QS_TEXT_SIZE, -1) removeResourceFromOverlay( requireContext(), @@ -87,7 +85,6 @@ class QsIconLabel : BaseFragment() { override fun onStopTrackingTouch(slider: Slider) { finalTextSize[0] = slider.value.toInt() putString(FABRICATED_QS_TEXT_SIZE, finalTextSize[0].toString()) - RPrefs.putInt(FABRICATED_QS_TEXT_SIZE, finalTextSize[0] - 4) buildOverlayWithResource( requireContext(), diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedQuickSettings.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedQuickSettings.kt index c9c43dac4..099ae4157 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedQuickSettings.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedQuickSettings.kt @@ -15,12 +15,15 @@ import com.drdisagree.iconify.common.Preferences.HIDE_QS_SILENT_TEXT import com.drdisagree.iconify.common.Preferences.QQS_TOPMARGIN import com.drdisagree.iconify.common.Preferences.QS_TEXT_ALWAYS_WHITE import com.drdisagree.iconify.common.Preferences.QS_TEXT_FOLLOW_ACCENT +import com.drdisagree.iconify.common.Preferences.QS_TEXT_SIZE_SCALING import com.drdisagree.iconify.common.Preferences.QS_TOPMARGIN import com.drdisagree.iconify.common.Preferences.VERTICAL_QSTILE_SWITCH import com.drdisagree.iconify.config.RPrefs.clearPref import com.drdisagree.iconify.config.RPrefs.getBoolean +import com.drdisagree.iconify.config.RPrefs.getFloat import com.drdisagree.iconify.config.RPrefs.getInt import com.drdisagree.iconify.config.RPrefs.putBoolean +import com.drdisagree.iconify.config.RPrefs.putFloat import com.drdisagree.iconify.config.RPrefs.putInt import com.drdisagree.iconify.databinding.FragmentXposedQuickSettingsBinding import com.drdisagree.iconify.ui.base.BaseFragment @@ -55,6 +58,12 @@ class XposedQuickSettings : BaseFragment() { binding.hideTileLabel.setEnabled(isChecked) + binding.tileLabelSizeScaling.visibility = if (isChecked) { + View.VISIBLE + } else { + View.GONE + } + Handler(Looper.getMainLooper()).postDelayed( { SystemUtil.handleSystemUIRestart() }, SWITCH_ANIMATION_DELAY @@ -67,12 +76,43 @@ class XposedQuickSettings : BaseFragment() { binding.hideTileLabel.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> putBoolean(HIDE_QSLABEL_SWITCH, isChecked) + binding.tileLabelSizeScaling.isEnabled = !isChecked + Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.doubleToggleDarkMode() }, + { SystemUtil.handleSystemUIRestart() }, SWITCH_ANIMATION_DELAY ) } + // Label size scaling + binding.tileLabelSizeScaling.visibility = if (binding.verticalTile.isSwitchChecked) { + View.VISIBLE + } else { + View.GONE + } + binding.tileLabelSizeScaling.isEnabled = !binding.hideTileLabel.isSwitchChecked + + binding.tileLabelSizeScaling.sliderValue = + (getFloat(QS_TEXT_SIZE_SCALING, 1.0f) * 10).toInt() + binding.tileLabelSizeScaling.setOnSliderTouchListener(object : + Slider.OnSliderTouchListener { + override fun onStartTrackingTouch(slider: Slider) {} + + override fun onStopTrackingTouch(slider: Slider) { + putFloat(QS_TEXT_SIZE_SCALING, slider.value / 10f) + + Handler(Looper.getMainLooper()).postDelayed( + { SystemUtil.handleSystemUIRestart() }, + SWITCH_ANIMATION_DELAY + ) + } + }) + binding.tileLabelSizeScaling.setResetClickListener { + clearPref(QS_TEXT_SIZE_SCALING) + + true + } + // QQS panel top margin slider binding.qqsTopMargin.sliderValue = getInt(QQS_TOPMARGIN, 100) binding.qqsTopMargin.setOnSliderTouchListener(object : Slider.OnSliderTouchListener { diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/QuickSettings.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/QuickSettings.kt index 9a31f075f..2ffa7ce0e 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/QuickSettings.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/QuickSettings.kt @@ -27,9 +27,9 @@ import com.drdisagree.iconify.common.Preferences.HIDE_QS_SILENT_TEXT import com.drdisagree.iconify.common.Preferences.QQS_TOPMARGIN import com.drdisagree.iconify.common.Preferences.QS_TEXT_ALWAYS_WHITE import com.drdisagree.iconify.common.Preferences.QS_TEXT_FOLLOW_ACCENT +import com.drdisagree.iconify.common.Preferences.QS_TEXT_SIZE_SCALING import com.drdisagree.iconify.common.Preferences.QS_TOPMARGIN import com.drdisagree.iconify.common.Preferences.VERTICAL_QSTILE_SWITCH -import com.drdisagree.iconify.common.References.FABRICATED_QS_TEXT_SIZE import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.ModPack import com.drdisagree.iconify.xposed.modules.utils.Helpers.isPixelVariant @@ -58,7 +58,7 @@ class QuickSettings(context: Context?) : ModPack(context!!) { private var hideSilentText = false private var qqsTopMargin = 100 private var qsTopMargin = 100 - private var tileTextSize: Float = (-1).toFloat() + private var qsTextSizeScalingFactor = 1.0f private var mParam: Any? = null private var mFooterButtonsContainer: ViewGroup? = null private var mFooterButtonsOnDrawListener: OnDrawListener? = null @@ -82,7 +82,7 @@ class QuickSettings(context: Context?) : ModPack(context!!) { qsTextFollowAccent = Xprefs!!.getBoolean(QS_TEXT_FOLLOW_ACCENT, false) hideSilentText = Xprefs!!.getBoolean(HIDE_QS_SILENT_TEXT, false) hideFooterButtons = Xprefs!!.getBoolean(HIDE_QS_FOOTER_BUTTONS, false) - tileTextSize = Xprefs!!.getInt(FABRICATED_QS_TEXT_SIZE, -1).toFloat() + qsTextSizeScalingFactor = Xprefs!!.getFloat(QS_TEXT_SIZE_SCALING, 1.0f) triggerQsElementVisibility() } @@ -112,21 +112,21 @@ class QuickSettings(context: Context?) : ModPack(context!!) { mParam = param.thisObject try { - (param.thisObject as LinearLayout).gravity = Gravity.CENTER - (param.thisObject as LinearLayout).orientation = LinearLayout.VERTICAL + (mParam as LinearLayout).gravity = Gravity.CENTER + (mParam as LinearLayout).orientation = LinearLayout.VERTICAL (getObjectField( - param.thisObject, + mParam, "label" ) as TextView).setGravity(Gravity.CENTER_HORIZONTAL) (getObjectField( - param.thisObject, + mParam, "secondaryLabel" ) as TextView).setGravity(Gravity.CENTER_HORIZONTAL) (getObjectField( - param.thisObject, + mParam, "labelContainer" ) as LinearLayout).setLayoutParams( MarginLayoutParams( @@ -135,32 +135,32 @@ class QuickSettings(context: Context?) : ModPack(context!!) { ) (getObjectField( - param.thisObject, + mParam, "sideView" ) as View).visibility = View.GONE - (param.thisObject as LinearLayout).removeView( + (mParam as LinearLayout).removeView( getObjectField( - param.thisObject, + mParam, "labelContainer" ) as LinearLayout ) if (!isHideLabelActive) { (getObjectField( - param.thisObject, + mParam, "labelContainer" ) as LinearLayout).gravity = Gravity.CENTER_HORIZONTAL - (param.thisObject as LinearLayout).addView( + (mParam as LinearLayout).addView( getObjectField( - param.thisObject, + mParam, "labelContainer" ) as LinearLayout ) } - fixTileLayout(param.thisObject as LinearLayout, mParam) + fixTileLayout(mParam as LinearLayout, mParam) if (qsTilePrimaryTextSize == null || qsTileSecondaryTextSize == null) { try { @@ -172,7 +172,7 @@ class QuickSettings(context: Context?) : ModPack(context!!) { "dimen", mContext.packageName ), - getObjectField(param.thisObject, "label") + getObjectField(mParam, "label") ) callStaticMethod( @@ -183,17 +183,17 @@ class QuickSettings(context: Context?) : ModPack(context!!) { "dimen", mContext.packageName ), - getObjectField(param.thisObject, "secondaryLabel") + getObjectField(mParam, "secondaryLabel") ) } catch (ignored: Throwable) { } val primaryText = getObjectField( - param.thisObject, + mParam, "label" ) as TextView val secondaryText = getObjectField( - param.thisObject, + mParam, "secondaryLabel" ) as TextView @@ -901,24 +901,13 @@ class QuickSettings(context: Context?) : ModPack(context!!) { private fun setLabelSizes(paramThisObject: Any) { try { - val primaryTextScalingFactor = if (tileTextSize != (-1).toFloat()) { - tileTextSize / 10f - } else { - 1f - } - val secondaryTextScalingFactor = if (tileTextSize != (-1).toFloat()) { - primaryTextScalingFactor - 0.08f - } else { - 0.92f - } - if (qsTilePrimaryTextSize != null && qsTilePrimaryTextSizeUnit != -1) { (getObjectField( paramThisObject, "label" ) as TextView).setTextSize( qsTilePrimaryTextSizeUnit, - qsTilePrimaryTextSize!! * primaryTextScalingFactor + qsTilePrimaryTextSize!! * qsTextSizeScalingFactor ) } @@ -928,7 +917,7 @@ class QuickSettings(context: Context?) : ModPack(context!!) { "secondaryLabel" ) as TextView).setTextSize( qsTileSecondaryTextSizeUnit, - qsTileSecondaryTextSize!! * secondaryTextScalingFactor + qsTileSecondaryTextSize!! * qsTextSizeScalingFactor * 0.92f ) } } catch (ignored: Throwable) { diff --git a/app/src/main/res/layout/fragment_xposed_quick_settings.xml b/app/src/main/res/layout/fragment_xposed_quick_settings.xml index fbcc05ad8..a25098adf 100644 --- a/app/src/main/res/layout/fragment_xposed_quick_settings.xml +++ b/app/src/main/res/layout/fragment_xposed_quick_settings.xml @@ -40,6 +40,21 @@ app:summaryText="@string/hide_qs_tile_label_desc" app:titleText="@string/hide_qs_tile_label_title" /> + + Show label below QS icon Hide QS Tile Label Use only with vertical tiles + Text Size Scaling QS Margin QS Elements Hide Silent Text From 774bd04c3c4a86ddb8a2127e7270c00166a149fe Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Thu, 6 Jun 2024 17:19:22 +0600 Subject: [PATCH 003/369] Bump dependencies --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 08117d010..5942b0ccd 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] agp = "8.4.1" -appcompat = "1.6.1" +appcompat = "1.7.0" bcpkixJdk18on = "1.77" circleindicator = "2.1.6" collapsingtoolbarlayoutSubtitle = "1.5.0" From 838a0bd87d8929f961498f2ebed72f8794b89f4b Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Fri, 7 Jun 2024 14:32:52 +0600 Subject: [PATCH 004/369] Battery Style: Fix ClassCastException --- .../xposed/modules/BatteryStyleManager.kt | 65 +++++++++++++------ 1 file changed, 46 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/BatteryStyleManager.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/BatteryStyleManager.kt index 816a97fec..7b5fc549d 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/BatteryStyleManager.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/BatteryStyleManager.kt @@ -13,6 +13,7 @@ import android.view.View import android.view.View.OnAttachStateChangeListener import android.view.ViewGroup import android.view.ViewGroup.MarginLayoutParams +import android.widget.FrameLayout import android.widget.ImageView import android.widget.LinearLayout import android.widget.TextView @@ -542,7 +543,7 @@ class BatteryStyleManager(context: Context?) : ModPack(context!!) { ) val mChargingIconView = - (param.thisObject as LinearLayout).findViewWithTag( + (param.thisObject as ViewGroup).findViewWithTag( ICONIFY_CHARGING_ICON_TAG ) mChargingIconView?.setImageTintList(ColorStateList.valueOf(param.args[2] as Int)) @@ -709,10 +710,17 @@ class BatteryStyleManager(context: Context?) : ModPack(context!!) { header.context, android.R.attr.textColorSecondary ) - val batteryIcon = getObjectField( - param.thisObject, - "batteryIcon" - ) as LinearLayout + val batteryIcon = try { + getObjectField( + param.thisObject, + "batteryIcon" + ) as LinearLayout + } catch (throwable: Throwable) { + getObjectField( + param.thisObject, + "batteryIcon" + ) as FrameLayout + } if (getObjectField(param.thisObject, "iconManager") != null) { try { @@ -771,7 +779,7 @@ class BatteryStyleManager(context: Context?) : ModPack(context!!) { ) as BatteryDrawable mBatteryDrawable.setShowPercentEnabled(mShowPercentInside) - mBatteryDrawable.alpha = Math.round(batteryIconOpacity * 2.55f) + mBatteryDrawable.alpha = Math.round(BATTERY_ICON_OPACITY * 2.55f) updateCustomizeBatteryDrawable(mBatteryDrawable) } catch (ignored: Throwable) { } @@ -917,7 +925,7 @@ class BatteryStyleManager(context: Context?) : ModPack(context!!) { if (mBatteryDrawable != null) { mBatteryDrawable.setShowPercentEnabled(mShowPercentInside) - mBatteryDrawable.alpha = Math.round(batteryIconOpacity * 2.55f) + mBatteryDrawable.alpha = Math.round(BATTERY_ICON_OPACITY * 2.55f) } return mBatteryDrawable @@ -990,12 +998,12 @@ class BatteryStyleManager(context: Context?) : ModPack(context!!) { private fun updateChargingIconView(thisObject: Any, mCharging: Boolean = mIsChargingImpl) { var mChargingIconView = - (thisObject as LinearLayout).findViewWithTag(ICONIFY_CHARGING_ICON_TAG) + (thisObject as ViewGroup).findViewWithTag(ICONIFY_CHARGING_ICON_TAG) if (mChargingIconView == null) { mChargingIconView = ImageView(mContext) mChargingIconView.tag = ICONIFY_CHARGING_ICON_TAG - (thisObject as ViewGroup).addView(mChargingIconView, 1) + thisObject.addView(mChargingIconView, 1) } val drawable = if (modRes != null) { @@ -1137,7 +1145,11 @@ class BatteryStyleManager(context: Context?) : ModPack(context!!) { val left: Int = mContext.toPx(mChargingIconML) val right: Int = mContext.toPx(mChargingIconMR) val size: Int = mContext.toPx(mChargingIconWH) - val lp = LinearLayout.LayoutParams(size, size) + val lp = if (thisObject is LinearLayout) { + LinearLayout.LayoutParams(size, size) + } else { + FrameLayout.LayoutParams(size, size) + } lp.setMargins( left, @@ -1165,11 +1177,19 @@ class BatteryStyleManager(context: Context?) : ModPack(context!!) { } private fun updateFlipper(thisObject: Any) { - val batteryView = thisObject as LinearLayout - batteryView.orientation = LinearLayout.HORIZONTAL - batteryView.gravity = Gravity.CENTER_VERTICAL or Gravity.START - batteryView.layoutDirection = - if (mSwapPercentage) View.LAYOUT_DIRECTION_RTL else View.LAYOUT_DIRECTION_LTR + val batteryView = if (thisObject is LinearLayout) { + thisObject.orientation = LinearLayout.HORIZONTAL + thisObject.gravity = Gravity.CENTER_VERTICAL or Gravity.START + thisObject + } else { + thisObject as View + } + + batteryView.layoutDirection = if (mSwapPercentage) { + View.LAYOUT_DIRECTION_RTL + } else { + View.LAYOUT_DIRECTION_LTR + } } private fun updateBatteryRotation(thisObject: Any) { @@ -1178,8 +1198,11 @@ class BatteryStyleManager(context: Context?) : ModPack(context!!) { } private fun updateBatteryRotation(mBatteryIconView: View) { - mBatteryIconView.rotation = - (if (!defaultLandscapeBatteryEnabled && mBatteryLayoutReverse) 180 else mBatteryRotation).toFloat() + mBatteryIconView.rotation = if (!defaultLandscapeBatteryEnabled && mBatteryLayoutReverse) { + 180 + } else { + mBatteryRotation + }.toFloat() } private fun updateCustomizeBatteryDrawable(thisObject: Any) { @@ -1248,7 +1271,11 @@ class BatteryStyleManager(context: Context?) : ModPack(context!!) { mBatteryIconView.context.resources.displayMetrics ).toInt() - val scaledLayoutParams = mBatteryIconView.layoutParams as LinearLayout.LayoutParams + val scaledLayoutParams = try { + mBatteryIconView.layoutParams as LinearLayout.LayoutParams + } catch (throwable: Throwable) { + mBatteryIconView.layoutParams as FrameLayout.LayoutParams + } scaledLayoutParams.width = (batteryWidth * iconScaleFactor).toInt() scaledLayoutParams.height = (batteryHeight * iconScaleFactor).toInt() @@ -1284,7 +1311,6 @@ class BatteryStyleManager(context: Context?) : ModPack(context!!) { companion object { private val TAG = "Iconify - ${BatteryStyleManager::class.java.simpleName}: " private val batteryViews = ArrayList() - private val batteryIconOpacity = 100 private var mBatteryStyle = 0 private var mShowPercentInside = false private var mHidePercentage = false @@ -1298,5 +1324,6 @@ class BatteryStyleManager(context: Context?) : ModPack(context!!) { private var mBatteryMarginTop = 0 private var mBatteryMarginRight = 0 private var mBatteryMarginBottom = 0 + private const val BATTERY_ICON_OPACITY = 100 } } \ No newline at end of file From f20652bf7879fcb9c31beb84aaeba4b788cc7cb1 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Fri, 7 Jun 2024 14:45:09 +0600 Subject: [PATCH 005/369] Quick Settings: Fix notification footer button colors on some ROMs --- .../iconify/xposed/modules/QuickSettings.kt | 42 +++++++++---------- 1 file changed, 20 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/QuickSettings.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/QuickSettings.kt index 2ffa7ce0e..43fe9faef 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/QuickSettings.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/QuickSettings.kt @@ -650,22 +650,16 @@ class QuickSettings(context: Context?) : ModPack(context!!) { } } - try { - hookAllMethods( - notificationBackgroundViewClass, - "setCustomBackground$1", - replaceTintColor - ) - } catch (ignored: Throwable) { - } + val notificationBackgroundViewMethods = listOf( + "setCustomBackground", + "setCustomBackground$1" + ) - try { - hookAllMethods( - notificationBackgroundViewClass, - "setCustomBackground", - replaceTintColor - ) - } catch (ignored: Throwable) { + for (method in notificationBackgroundViewMethods) { + try { + hookAllMethods(notificationBackgroundViewClass, method, replaceTintColor) + } catch (ignored: Throwable) { + } } val removeButtonTint: XC_MethodHook = object : XC_MethodHook() { @@ -691,14 +685,18 @@ class QuickSettings(context: Context?) : ModPack(context!!) { } } - try { - hookAllMethods(footerViewClass, "updateColors", removeButtonTint) - } catch (ignored: Throwable) { - } + val footerViewMethods = listOf( + "updateColors", + "updateColors$1", + "updateColors$2", + "updateColors$3" + ) - try { - hookAllMethods(footerViewClass, "updateColors$3", removeButtonTint) - } catch (ignored: Throwable) { + for (method in footerViewMethods) { + try { + hookAllMethods(footerViewClass, method, removeButtonTint) + } catch (ignored: Throwable) { + } } } catch (throwable: Throwable) { log(TAG + throwable) From badb1d1b288afeedf786bc736cdcb8b2f8f387a9 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Fri, 7 Jun 2024 22:39:45 +0600 Subject: [PATCH 006/369] QS Themes: Compare tile state with builtin library --- .../xposed/modules/themes/QSBlackThemeA13.kt | 4 +-- .../xposed/modules/themes/QSLightThemeA12.kt | 1 - .../xposed/modules/themes/QSLightThemeA13.kt | 9 +++---- .../xposed/modules/themes/QSLightThemeA14.kt | 25 +++++++++---------- 4 files changed, 18 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA13.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA13.kt index a2ac17278..9d836a8cd 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA13.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA13.kt @@ -757,10 +757,10 @@ class QSBlackThemeA13(context: Context?) : ModPack(context!!) { getObjectField( param.args[1], "state" - ) as Int == QSLightThemeA13.STATE_ACTIVE + ) as Int == Tile.STATE_ACTIVE } catch (throwable: Throwable) { try { - param.args[1] as Int == QSLightThemeA13.STATE_ACTIVE + param.args[1] as Int == Tile.STATE_ACTIVE } catch (throwable1: Throwable) { try { param.args[1] as Boolean diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA12.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA12.kt index 8aead579d..717ea81cb 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA12.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA12.kt @@ -378,7 +378,6 @@ class QSLightThemeA12(context: Context?) : ModPack(context!!) { } companion object { - const val STATE_ACTIVE = 2 private val TAG = "Iconify - ${QSLightThemeA12::class.java.simpleName}: " private var lightQSHeaderEnabled = false private var dualToneQSEnabled = false diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA13.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA13.kt index 77ee8f062..d244fb7e5 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA13.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA13.kt @@ -367,7 +367,7 @@ class QSLightThemeA13(context: Context?) : ModPack(context!!) { hookAllMethods(qsIconViewImplClass, "updateIcon", object : XC_MethodHook() { override fun afterHookedMethod(param: MethodHookParam) { if (lightQSHeaderEnabled && !isDark && - getIntField(param.args[1], "state") == STATE_ACTIVE + getIntField(param.args[1], "state") == Tile.STATE_ACTIVE ) { try { (param.args[0] as ImageView) @@ -384,7 +384,7 @@ class QSLightThemeA13(context: Context?) : ModPack(context!!) { if (lightQSHeaderEnabled && !isDark) { try { if (param.args[0] is ImageView && - getIntField(param.args[1], "state") == STATE_ACTIVE + getIntField(param.args[1], "state") == Tile.STATE_ACTIVE ) { setObjectField(param.thisObject, "mTint", colorInactive) } @@ -751,10 +751,10 @@ class QSLightThemeA13(context: Context?) : ModPack(context!!) { getObjectField( param.args[1], "state" - ) as Int == STATE_ACTIVE + ) as Int == Tile.STATE_ACTIVE } catch (throwable: Throwable) { try { - param.args[1] as Int == STATE_ACTIVE + param.args[1] as Int == Tile.STATE_ACTIVE } catch (throwable1: Throwable) { try { param.args[1] as Boolean @@ -895,7 +895,6 @@ class QSLightThemeA13(context: Context?) : ModPack(context!!) { } companion object { - const val STATE_ACTIVE = 2 private val TAG = "Iconify - ${QSLightThemeA13::class.java.simpleName}: " private var lightQSHeaderEnabled = false private var dualToneQSEnabled = false diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA14.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA14.kt index 6800a0e8a..c438e8020 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA14.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA14.kt @@ -305,16 +305,16 @@ class QSLightThemeA14(context: Context?) : ModPack(context!!) { // Settings button view.findViewById( mContext.resources.getIdentifier( - "settings_button_container", - "id", - mContext.packageName - ) + "settings_button_container", + "id", + mContext.packageName + ) ).findViewById( mContext.resources.getIdentifier( - "icon", - "id", - mContext.packageName - ) + "icon", + "id", + mContext.packageName + ) ).setImageTintList(ColorStateList.valueOf(Color.BLACK)) // Power menu button @@ -482,7 +482,7 @@ class QSLightThemeA14(context: Context?) : ModPack(context!!) { hookAllMethods(qsIconViewImplClass, "updateIcon", object : XC_MethodHook() { override fun afterHookedMethod(param: MethodHookParam) { if (lightQSHeaderEnabled && !isDark && - getIntField(param.args[1], "state") == STATE_ACTIVE + getIntField(param.args[1], "state") == Tile.STATE_ACTIVE ) { try { (param.args[0] as ImageView) @@ -499,7 +499,7 @@ class QSLightThemeA14(context: Context?) : ModPack(context!!) { if (lightQSHeaderEnabled && !isDark) { try { if (param.args[0] is ImageView && - getIntField(param.args[1], "state") == STATE_ACTIVE + getIntField(param.args[1], "state") == Tile.STATE_ACTIVE ) { setObjectField(param.thisObject, "mTint", colorInactive) } @@ -1033,10 +1033,10 @@ class QSLightThemeA14(context: Context?) : ModPack(context!!) { getObjectField( param.args[1], "state" - ) as Int == STATE_ACTIVE + ) as Int == Tile.STATE_ACTIVE } catch (throwable: Throwable) { try { - param.args[1] as Int == STATE_ACTIVE + param.args[1] as Int == Tile.STATE_ACTIVE } catch (throwable1: Throwable) { try { param.args[1] as Boolean @@ -1242,7 +1242,6 @@ class QSLightThemeA14(context: Context?) : ModPack(context!!) { } companion object { - const val STATE_ACTIVE = 2 private val TAG = "Iconify - ${QSLightThemeA14::class.java.simpleName}: " private var lightQSHeaderEnabled = false private var dualToneQSEnabled = false From f4253e607c9e60ffa6b774b0ec5a608bb1912d1a Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Fri, 7 Jun 2024 23:00:39 +0600 Subject: [PATCH 007/369] QS Themes: Fix crash due to different getIconColorForState method --- .../xposed/modules/themes/QSBlackThemeA13.kt | 43 ++------------- .../xposed/modules/themes/QSBlackThemeA14.kt | 44 ++------------- .../xposed/modules/themes/QSLightThemeA14.kt | 44 ++------------- .../iconify/xposed/modules/themes/Utils.kt | 53 +++++++++++++++++++ 4 files changed, 65 insertions(+), 119 deletions(-) create mode 100644 app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/Utils.kt diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA13.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA13.kt index 9d836a8cd..f3ed12ca9 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA13.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA13.kt @@ -436,7 +436,8 @@ class QSBlackThemeA13(context: Context?) : ModPack(context!!) { hookAllMethods(qsIconViewImplClass, "getIconColorForState", object : XC_MethodHook() { override fun beforeHookedMethod(param: MethodHookParam) { - val (isDisabledState: Boolean, isActiveState: Boolean) = getTileState(param) + val (isDisabledState: Boolean, + isActiveState: Boolean) = Utils.getTileState(param) if (blackQSHeaderEnabled) { if (isDisabledState) { @@ -455,7 +456,8 @@ class QSBlackThemeA13(context: Context?) : ModPack(context!!) { override fun afterHookedMethod(param: MethodHookParam) { if (qsTextAlwaysWhite || qsTextFollowAccent) return - val (isDisabledState: Boolean, isActiveState: Boolean) = getTileState(param) + val (isDisabledState: Boolean, + isActiveState: Boolean) = Utils.getTileState(param) if (blackQSHeaderEnabled) { val mIcon = param.args[0] as ImageView @@ -736,43 +738,6 @@ class QSBlackThemeA13(context: Context?) : ModPack(context!!) { }) } - private fun getTileState(param: XC_MethodHook.MethodHookParam): Pair { - val isDisabledState: Boolean = try { - getObjectField( - param.args[1], - "disabledByPolicy" - ) as Boolean || - getObjectField( - param.args[1], - "state" - ) as Int == Tile.STATE_UNAVAILABLE - } catch (throwable: Throwable) { - getObjectField( - param.args[1], - "state" - ) as Int == Tile.STATE_UNAVAILABLE - } - - val isActiveState: Boolean = try { - getObjectField( - param.args[1], - "state" - ) as Int == Tile.STATE_ACTIVE - } catch (throwable: Throwable) { - try { - param.args[1] as Int == Tile.STATE_ACTIVE - } catch (throwable1: Throwable) { - try { - param.args[1] as Boolean - } catch (throwable2: Throwable) { - false - } - } - } - - return Pair(isDisabledState, isActiveState) - } - private fun initColors(force: Boolean) { val isDark: Boolean = SystemUtil.isDarkMode if (isDark == this.isDark && !force) return diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA14.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA14.kt index 565ffdd78..bc24d49b9 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA14.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA14.kt @@ -608,7 +608,8 @@ class QSBlackThemeA14(context: Context?) : ModPack(context!!) { hookAllMethods(qsIconViewImplClass, "getIconColorForState", object : XC_MethodHook() { override fun beforeHookedMethod(param: MethodHookParam) { - val (isDisabledState: Boolean, isActiveState: Boolean) = getTileState(param) + val (isDisabledState: Boolean, + isActiveState: Boolean) = Utils.getTileState(param) if (blackQSHeaderEnabled) { if (isDisabledState) { @@ -627,7 +628,8 @@ class QSBlackThemeA14(context: Context?) : ModPack(context!!) { override fun afterHookedMethod(param: MethodHookParam) { if (qsTextAlwaysWhite || qsTextFollowAccent) return - val (isDisabledState: Boolean, isActiveState: Boolean) = getTileState(param) + val (isDisabledState: Boolean, + isActiveState: Boolean) = Utils.getTileState(param) if (blackQSHeaderEnabled) { val mIcon = param.args[0] as ImageView @@ -1042,44 +1044,6 @@ class QSBlackThemeA14(context: Context?) : ModPack(context!!) { }) } - private fun getTileState(param: XC_MethodHook.MethodHookParam): Pair { - val isDisabledState: Boolean = try { - getObjectField( - param.args[1], - "disabledByPolicy" - ) as Boolean || - getObjectField( - param.args[1], - "state" - ) as Int == Tile.STATE_UNAVAILABLE - } catch (throwable: Throwable) { - getObjectField( - param.args[1], - "state" - ) as Int == Tile.STATE_UNAVAILABLE - } - - val isActiveState: Boolean = try { - getObjectField( - param.args[1], - "state" - ) as Int == Tile.STATE_ACTIVE - } catch (throwable: Throwable) { - try { - param.args[1] as Int == Tile.STATE_ACTIVE - } catch (throwable1: Throwable) { - try { - param.args[1] as Boolean - } catch (throwable2: Throwable) { - log(TAG + throwable2) - false - } - } - } - - return Pair(isDisabledState, isActiveState) - } - private fun initColors(force: Boolean) { val isDark: Boolean = SystemUtil.isDarkMode if (isDark == this.isDark && !force) return diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA14.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA14.kt index c438e8020..836383e59 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA14.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA14.kt @@ -578,7 +578,8 @@ class QSLightThemeA14(context: Context?) : ModPack(context!!) { hookAllMethods(qsIconViewImplClass, "getIconColorForState", object : XC_MethodHook() { override fun beforeHookedMethod(param: MethodHookParam) { - val (isDisabledState: Boolean, isActiveState: Boolean) = getTileState(param) + val (isDisabledState: Boolean, + isActiveState: Boolean) = Utils.getTileState(param) if (!isDark && lightQSHeaderEnabled) { if (isDisabledState) { @@ -597,7 +598,8 @@ class QSLightThemeA14(context: Context?) : ModPack(context!!) { try { hookAllMethods(qsIconViewImplClass, "updateIcon", object : XC_MethodHook() { override fun afterHookedMethod(param: MethodHookParam) { - val (isDisabledState: Boolean, isActiveState: Boolean) = getTileState(param) + val (isDisabledState: Boolean, + isActiveState: Boolean) = Utils.getTileState(param) if (!isDark && lightQSHeaderEnabled) { val mIcon = param.args[0] as ImageView @@ -1012,44 +1014,6 @@ class QSLightThemeA14(context: Context?) : ModPack(context!!) { } } - private fun getTileState(param: XC_MethodHook.MethodHookParam): Pair { - val isDisabledState: Boolean = try { - getObjectField( - param.args[1], - "disabledByPolicy" - ) as Boolean || - getObjectField( - param.args[1], - "state" - ) as Int == Tile.STATE_UNAVAILABLE - } catch (throwable: Throwable) { - getObjectField( - param.args[1], - "state" - ) as Int == Tile.STATE_UNAVAILABLE - } - - val isActiveState: Boolean = try { - getObjectField( - param.args[1], - "state" - ) as Int == Tile.STATE_ACTIVE - } catch (throwable: Throwable) { - try { - param.args[1] as Int == Tile.STATE_ACTIVE - } catch (throwable1: Throwable) { - try { - param.args[1] as Boolean - } catch (throwable2: Throwable) { - log(TAG + throwable2) - false - } - } - } - - return Pair(isDisabledState, isActiveState) - } - private fun applyOverlays(force: Boolean) { val isCurrentlyDark: Boolean = SystemUtil.isDarkMode if (isCurrentlyDark == isDark && !force) return diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/Utils.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/Utils.kt new file mode 100644 index 000000000..35c19fb74 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/Utils.kt @@ -0,0 +1,53 @@ +package com.drdisagree.iconify.xposed.modules.themes + +import android.service.quicksettings.Tile +import de.robv.android.xposed.XC_MethodHook +import de.robv.android.xposed.XposedHelpers.getObjectField + +object Utils { + + fun getTileState(param: XC_MethodHook.MethodHookParam): Pair { + var isDisabledState: Boolean + var isActiveState: Boolean + + try { + isDisabledState = try { + getObjectField( + param.args[1], + "disabledByPolicy" + ) as Boolean || + getObjectField( + param.args[1], + "state" + ) as Int == Tile.STATE_UNAVAILABLE + } catch (throwable: Throwable) { + getObjectField( + param.args[1], + "state" + ) as Int == Tile.STATE_UNAVAILABLE + } + + isActiveState = try { + getObjectField( + param.args[1], + "state" + ) as Int == Tile.STATE_ACTIVE + } catch (throwable: Throwable) { + try { + param.args[1] as Int == Tile.STATE_ACTIVE + } catch (throwable1: Throwable) { + try { + param.args[1] as Boolean + } catch (throwable2: Throwable) { + false + } + } + } + } catch (ignored: Throwable) { + isDisabledState = param.args[1] == Tile.STATE_UNAVAILABLE + isActiveState = param.args[1] == Tile.STATE_ACTIVE + } + + return Pair(isDisabledState, isActiveState) + } +} \ No newline at end of file From 8de2cdb37acaa3d99894f05e921620724bd60e54 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Fri, 7 Jun 2024 23:00:39 +0600 Subject: [PATCH 008/369] QS Themes: Fix crash due to different getIconColorForState method --- .../xposed/modules/themes/QSBlackThemeA13.kt | 43 ++------------- .../xposed/modules/themes/QSBlackThemeA14.kt | 44 ++------------- .../xposed/modules/themes/QSLightThemeA13.kt | 43 ++------------- .../xposed/modules/themes/QSLightThemeA14.kt | 44 ++------------- .../iconify/xposed/modules/themes/Utils.kt | 53 +++++++++++++++++++ 5 files changed, 69 insertions(+), 158 deletions(-) create mode 100644 app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/Utils.kt diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA13.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA13.kt index 9d836a8cd..f3ed12ca9 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA13.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA13.kt @@ -436,7 +436,8 @@ class QSBlackThemeA13(context: Context?) : ModPack(context!!) { hookAllMethods(qsIconViewImplClass, "getIconColorForState", object : XC_MethodHook() { override fun beforeHookedMethod(param: MethodHookParam) { - val (isDisabledState: Boolean, isActiveState: Boolean) = getTileState(param) + val (isDisabledState: Boolean, + isActiveState: Boolean) = Utils.getTileState(param) if (blackQSHeaderEnabled) { if (isDisabledState) { @@ -455,7 +456,8 @@ class QSBlackThemeA13(context: Context?) : ModPack(context!!) { override fun afterHookedMethod(param: MethodHookParam) { if (qsTextAlwaysWhite || qsTextFollowAccent) return - val (isDisabledState: Boolean, isActiveState: Boolean) = getTileState(param) + val (isDisabledState: Boolean, + isActiveState: Boolean) = Utils.getTileState(param) if (blackQSHeaderEnabled) { val mIcon = param.args[0] as ImageView @@ -736,43 +738,6 @@ class QSBlackThemeA13(context: Context?) : ModPack(context!!) { }) } - private fun getTileState(param: XC_MethodHook.MethodHookParam): Pair { - val isDisabledState: Boolean = try { - getObjectField( - param.args[1], - "disabledByPolicy" - ) as Boolean || - getObjectField( - param.args[1], - "state" - ) as Int == Tile.STATE_UNAVAILABLE - } catch (throwable: Throwable) { - getObjectField( - param.args[1], - "state" - ) as Int == Tile.STATE_UNAVAILABLE - } - - val isActiveState: Boolean = try { - getObjectField( - param.args[1], - "state" - ) as Int == Tile.STATE_ACTIVE - } catch (throwable: Throwable) { - try { - param.args[1] as Int == Tile.STATE_ACTIVE - } catch (throwable1: Throwable) { - try { - param.args[1] as Boolean - } catch (throwable2: Throwable) { - false - } - } - } - - return Pair(isDisabledState, isActiveState) - } - private fun initColors(force: Boolean) { val isDark: Boolean = SystemUtil.isDarkMode if (isDark == this.isDark && !force) return diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA14.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA14.kt index 565ffdd78..bc24d49b9 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA14.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA14.kt @@ -608,7 +608,8 @@ class QSBlackThemeA14(context: Context?) : ModPack(context!!) { hookAllMethods(qsIconViewImplClass, "getIconColorForState", object : XC_MethodHook() { override fun beforeHookedMethod(param: MethodHookParam) { - val (isDisabledState: Boolean, isActiveState: Boolean) = getTileState(param) + val (isDisabledState: Boolean, + isActiveState: Boolean) = Utils.getTileState(param) if (blackQSHeaderEnabled) { if (isDisabledState) { @@ -627,7 +628,8 @@ class QSBlackThemeA14(context: Context?) : ModPack(context!!) { override fun afterHookedMethod(param: MethodHookParam) { if (qsTextAlwaysWhite || qsTextFollowAccent) return - val (isDisabledState: Boolean, isActiveState: Boolean) = getTileState(param) + val (isDisabledState: Boolean, + isActiveState: Boolean) = Utils.getTileState(param) if (blackQSHeaderEnabled) { val mIcon = param.args[0] as ImageView @@ -1042,44 +1044,6 @@ class QSBlackThemeA14(context: Context?) : ModPack(context!!) { }) } - private fun getTileState(param: XC_MethodHook.MethodHookParam): Pair { - val isDisabledState: Boolean = try { - getObjectField( - param.args[1], - "disabledByPolicy" - ) as Boolean || - getObjectField( - param.args[1], - "state" - ) as Int == Tile.STATE_UNAVAILABLE - } catch (throwable: Throwable) { - getObjectField( - param.args[1], - "state" - ) as Int == Tile.STATE_UNAVAILABLE - } - - val isActiveState: Boolean = try { - getObjectField( - param.args[1], - "state" - ) as Int == Tile.STATE_ACTIVE - } catch (throwable: Throwable) { - try { - param.args[1] as Int == Tile.STATE_ACTIVE - } catch (throwable1: Throwable) { - try { - param.args[1] as Boolean - } catch (throwable2: Throwable) { - log(TAG + throwable2) - false - } - } - } - - return Pair(isDisabledState, isActiveState) - } - private fun initColors(force: Boolean) { val isDark: Boolean = SystemUtil.isDarkMode if (isDark == this.isDark && !force) return diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA13.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA13.kt index d244fb7e5..4655d8ba2 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA13.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA13.kt @@ -428,7 +428,8 @@ class QSLightThemeA13(context: Context?) : ModPack(context!!) { }) hookAllMethods(qsIconViewImplClass, "getIconColorForState", object : XC_MethodHook() { override fun beforeHookedMethod(param: MethodHookParam) { - val (isDisabledState: Boolean, isActiveState: Boolean) = getTileState(param) + val (isDisabledState: Boolean, + isActiveState: Boolean) = Utils.getTileState(param) if (!isDark && lightQSHeaderEnabled) { if (isDisabledState) { @@ -446,7 +447,8 @@ class QSLightThemeA13(context: Context?) : ModPack(context!!) { try { hookAllMethods(qsIconViewImplClass, "updateIcon", object : XC_MethodHook() { override fun afterHookedMethod(param: MethodHookParam) { - val (isDisabledState: Boolean, isActiveState: Boolean) = getTileState(param) + val (isDisabledState: Boolean, + isActiveState: Boolean) = Utils.getTileState(param) if (!isDark && lightQSHeaderEnabled) { val mIcon = param.args[0] as ImageView @@ -730,43 +732,6 @@ class QSLightThemeA13(context: Context?) : ModPack(context!!) { }) } - private fun getTileState(param: XC_MethodHook.MethodHookParam): Pair { - val isDisabledState: Boolean = try { - getObjectField( - param.args[1], - "disabledByPolicy" - ) as Boolean || - getObjectField( - param.args[1], - "state" - ) as Int == Tile.STATE_UNAVAILABLE - } catch (throwable: Throwable) { - getObjectField( - param.args[1], - "state" - ) as Int == Tile.STATE_UNAVAILABLE - } - - val isActiveState: Boolean = try { - getObjectField( - param.args[1], - "state" - ) as Int == Tile.STATE_ACTIVE - } catch (throwable: Throwable) { - try { - param.args[1] as Int == Tile.STATE_ACTIVE - } catch (throwable1: Throwable) { - try { - param.args[1] as Boolean - } catch (throwable2: Throwable) { - false - } - } - } - - return Pair(isDisabledState, isActiveState) - } - private fun applyOverlays(force: Boolean) { val isCurrentlyDark: Boolean = SystemUtil.isDarkMode if (isCurrentlyDark == isDark && !force) return diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA14.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA14.kt index c438e8020..836383e59 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA14.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA14.kt @@ -578,7 +578,8 @@ class QSLightThemeA14(context: Context?) : ModPack(context!!) { hookAllMethods(qsIconViewImplClass, "getIconColorForState", object : XC_MethodHook() { override fun beforeHookedMethod(param: MethodHookParam) { - val (isDisabledState: Boolean, isActiveState: Boolean) = getTileState(param) + val (isDisabledState: Boolean, + isActiveState: Boolean) = Utils.getTileState(param) if (!isDark && lightQSHeaderEnabled) { if (isDisabledState) { @@ -597,7 +598,8 @@ class QSLightThemeA14(context: Context?) : ModPack(context!!) { try { hookAllMethods(qsIconViewImplClass, "updateIcon", object : XC_MethodHook() { override fun afterHookedMethod(param: MethodHookParam) { - val (isDisabledState: Boolean, isActiveState: Boolean) = getTileState(param) + val (isDisabledState: Boolean, + isActiveState: Boolean) = Utils.getTileState(param) if (!isDark && lightQSHeaderEnabled) { val mIcon = param.args[0] as ImageView @@ -1012,44 +1014,6 @@ class QSLightThemeA14(context: Context?) : ModPack(context!!) { } } - private fun getTileState(param: XC_MethodHook.MethodHookParam): Pair { - val isDisabledState: Boolean = try { - getObjectField( - param.args[1], - "disabledByPolicy" - ) as Boolean || - getObjectField( - param.args[1], - "state" - ) as Int == Tile.STATE_UNAVAILABLE - } catch (throwable: Throwable) { - getObjectField( - param.args[1], - "state" - ) as Int == Tile.STATE_UNAVAILABLE - } - - val isActiveState: Boolean = try { - getObjectField( - param.args[1], - "state" - ) as Int == Tile.STATE_ACTIVE - } catch (throwable: Throwable) { - try { - param.args[1] as Int == Tile.STATE_ACTIVE - } catch (throwable1: Throwable) { - try { - param.args[1] as Boolean - } catch (throwable2: Throwable) { - log(TAG + throwable2) - false - } - } - } - - return Pair(isDisabledState, isActiveState) - } - private fun applyOverlays(force: Boolean) { val isCurrentlyDark: Boolean = SystemUtil.isDarkMode if (isCurrentlyDark == isDark && !force) return diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/Utils.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/Utils.kt new file mode 100644 index 000000000..35c19fb74 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/Utils.kt @@ -0,0 +1,53 @@ +package com.drdisagree.iconify.xposed.modules.themes + +import android.service.quicksettings.Tile +import de.robv.android.xposed.XC_MethodHook +import de.robv.android.xposed.XposedHelpers.getObjectField + +object Utils { + + fun getTileState(param: XC_MethodHook.MethodHookParam): Pair { + var isDisabledState: Boolean + var isActiveState: Boolean + + try { + isDisabledState = try { + getObjectField( + param.args[1], + "disabledByPolicy" + ) as Boolean || + getObjectField( + param.args[1], + "state" + ) as Int == Tile.STATE_UNAVAILABLE + } catch (throwable: Throwable) { + getObjectField( + param.args[1], + "state" + ) as Int == Tile.STATE_UNAVAILABLE + } + + isActiveState = try { + getObjectField( + param.args[1], + "state" + ) as Int == Tile.STATE_ACTIVE + } catch (throwable: Throwable) { + try { + param.args[1] as Int == Tile.STATE_ACTIVE + } catch (throwable1: Throwable) { + try { + param.args[1] as Boolean + } catch (throwable2: Throwable) { + false + } + } + } + } catch (ignored: Throwable) { + isDisabledState = param.args[1] == Tile.STATE_UNAVAILABLE + isActiveState = param.args[1] == Tile.STATE_ACTIVE + } + + return Pair(isDisabledState, isActiveState) + } +} \ No newline at end of file From c5d0dc20edae29a91e63d1185f3a5a559bcc2c58 Mon Sep 17 00:00:00 2001 From: Jvr <109031036+Jvr2022@users.noreply.github.com> Date: Sat, 8 Jun 2024 19:38:48 +0200 Subject: [PATCH 009/369] Update gradle-wrapper.properties --- gradle/wrapper/gradle-wrapper.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index becef35af..42e2f8cfe 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,7 @@ #Sat Oct 07 18:38:04 BDT 2023 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME From b4c28acf3b7f30eefef8ff205dd31151b607ad16 Mon Sep 17 00:00:00 2001 From: Jvr <109031036+Jvr2022@users.noreply.github.com> Date: Sat, 8 Jun 2024 20:07:09 +0200 Subject: [PATCH 010/369] bump deps --- gradle/libs.versions.toml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 5942b0ccd..39d78ec22 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,7 +1,7 @@ [versions] agp = "8.4.1" appcompat = "1.7.0" -bcpkixJdk18on = "1.77" +bcpkixJdk18on = "1.78.1" circleindicator = "2.1.6" collapsingtoolbarlayoutSubtitle = "1.5.0" colorpicker = "1.0.0" @@ -15,17 +15,17 @@ eventbus = "3.3.1" fadingedgelayout = "1.0.0" glide = "4.16.0" flexbox = "3.0.0" -guava = "33.1.0-jre" +guava = "33.2.1-jre" jsoup = "1.17.2" -kapt = "2.0.0-RC1" -kotlin = "1.9.23" -kotlinxCoroutinesAndroid = "1.7.3" +kapt = "2.0.0" +kotlin = "2.0.0" +kotlinxCoroutinesAndroid = "1.8.1" library = "8.4.1" libsuVersion = "5.2.2" -lottie = "6.4.0" +lottie = "6.4.1" navigationUiKtx = "2.7.7" navigationFragmentKtx = "2.7.7" -slf4jApi = "2.0.12" +slf4jApi = "2.0.13" viewpager2 = "1.1.0" recyclerviewSelection = "1.1.0" recyclerview = "1.3.2" @@ -33,7 +33,7 @@ remotepreferences = "0.8" workRuntime = "2.9.0" zip4j = "2.11.5" material = "1.12.0" -parcelize = "1.7.20" +parcelize = "2.0.0" [libraries] androidx-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "appcompat" } @@ -75,4 +75,4 @@ zip4j = { module = "net.lingala.zip4j:zip4j", version.ref = "zip4j" } agp-app = { id = "com.android.application", version.ref = "agp" } kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } kotlin-kapt = { id = "org.jetbrains.kotlin.kapt", version.ref = "kapt" } -kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "parcelize" } \ No newline at end of file +kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "parcelize" } From 357e071f6c2d1fada0687eae5b41ec60f5c1f1c8 Mon Sep 17 00:00:00 2001 From: Crowdin Bot Date: Sun, 9 Jun 2024 00:15:02 +0000 Subject: [PATCH 011/369] New Crowdin translations by GitHub Action --- app/src/main/res/values-af-rZA/strings.xml | 1 + app/src/main/res/values-ar-rSA/strings.xml | 9 +- app/src/main/res/values-ca-rES/strings.xml | 1 + app/src/main/res/values-cs-rCZ/strings.xml | 1 + app/src/main/res/values-da-rDK/strings.xml | 1 + app/src/main/res/values-de-rDE/strings.xml | 1 + app/src/main/res/values-el-rGR/strings.xml | 1 + app/src/main/res/values-es-rES/strings.xml | 1 + app/src/main/res/values-fa-rIR/strings.xml | 1 + app/src/main/res/values-fi-rFI/strings.xml | 1 + app/src/main/res/values-fr-rFR/strings.xml | 1 + app/src/main/res/values-hu-rHU/strings.xml | 7 +- app/src/main/res/values-in-rID/strings.xml | 1 + app/src/main/res/values-it-rIT/strings.xml | 1 + app/src/main/res/values-ja-rJP/strings.xml | 217 +++++++++++---------- app/src/main/res/values-ko-rKR/strings.xml | 1 + app/src/main/res/values-nl-rNL/strings.xml | 1 + app/src/main/res/values-no-rNO/strings.xml | 1 + app/src/main/res/values-pl-rPL/strings.xml | 1 + app/src/main/res/values-pt-rBR/strings.xml | 1 + app/src/main/res/values-pt-rPT/strings.xml | 1 + app/src/main/res/values-ro-rRO/strings.xml | 1 + app/src/main/res/values-ru-rRU/strings.xml | 51 ++--- app/src/main/res/values-sr-rSP/strings.xml | 1 + app/src/main/res/values-sv-rSE/strings.xml | 1 + app/src/main/res/values-tr-rTR/strings.xml | 3 +- app/src/main/res/values-uk-rUA/strings.xml | 1 + app/src/main/res/values-vi-rVN/strings.xml | 1 + app/src/main/res/values-zh-rCN/strings.xml | 1 + app/src/main/res/values-zh-rTW/strings.xml | 1 + 30 files changed, 171 insertions(+), 141 deletions(-) diff --git a/app/src/main/res/values-af-rZA/strings.xml b/app/src/main/res/values-af-rZA/strings.xml index 0f6075b05..3c3bf051c 100644 --- a/app/src/main/res/values-af-rZA/strings.xml +++ b/app/src/main/res/values-af-rZA/strings.xml @@ -457,6 +457,7 @@ Show label below QS icon Hide QS Tile Label Use only with vertical tiles + Text Size Scaling QS Margin QS Elements Hide Silent Text diff --git a/app/src/main/res/values-ar-rSA/strings.xml b/app/src/main/res/values-ar-rSA/strings.xml index c45108682..86e027ccd 100644 --- a/app/src/main/res/values-ar-rSA/strings.xml +++ b/app/src/main/res/values-ar-rSA/strings.xml @@ -457,6 +457,7 @@ إظهار التسمية أسفل رمز QS إخفاء تسمية بلاط QS استخدم فقط مع البلاط العمودي + تحجيم النص هامش QS عناصر QS إخفاء النص الصامت @@ -545,7 +546,7 @@ بطارية أفقية O بطارية دائرة بطارية دائرة منقطة - Filled Circle Battery + بطارية دائرية منقطة حجم الصوت إظهار النسبة المئوية فوق شريط تمرير الصوت @@ -615,7 +616,7 @@ تحريك الخلفية والتلاشي في AOD الصورة الأمامية الصورة الأمامية لخلفية العمق - Foreground Image Alpha + الصورة الأمامية الفا صورة خلفية صورة خلفية لخلفية العمق هذه الميزة حالياً في المرحلة التجريبية. لذا من المتوقع حدوث أخطاء.\n\nأخطاء المعروفة:\n• النقر على شاشة القفل يجعل الخلفية تقفز. @@ -651,8 +652,8 @@ إخفاء اسم الناقل على شاشة القفل إخفاء LS Statusbar إخفاء شريط الحالة على شاشة القفل - Hide LS Lock Icon - Hide lock icon view on lockscreen + إخفاء أيقونة القفل + إخفاء عرض رمز القفل العلوي على شاشة القفل أيقونات الحالة ثابتة قم بتعيين أيقونات الحالة في موضع ثابت\n قد يكون هناك خطأ في بعض الرومات diff --git a/app/src/main/res/values-ca-rES/strings.xml b/app/src/main/res/values-ca-rES/strings.xml index 0f6075b05..3c3bf051c 100644 --- a/app/src/main/res/values-ca-rES/strings.xml +++ b/app/src/main/res/values-ca-rES/strings.xml @@ -457,6 +457,7 @@ Show label below QS icon Hide QS Tile Label Use only with vertical tiles + Text Size Scaling QS Margin QS Elements Hide Silent Text diff --git a/app/src/main/res/values-cs-rCZ/strings.xml b/app/src/main/res/values-cs-rCZ/strings.xml index 17ee9cf37..6ef73bbe6 100644 --- a/app/src/main/res/values-cs-rCZ/strings.xml +++ b/app/src/main/res/values-cs-rCZ/strings.xml @@ -457,6 +457,7 @@ Show label below QS icon Hide QS Tile Label Use only with vertical tiles + Text Size Scaling QS Margin QS Elements Hide Silent Text diff --git a/app/src/main/res/values-da-rDK/strings.xml b/app/src/main/res/values-da-rDK/strings.xml index 0f6075b05..3c3bf051c 100644 --- a/app/src/main/res/values-da-rDK/strings.xml +++ b/app/src/main/res/values-da-rDK/strings.xml @@ -457,6 +457,7 @@ Show label below QS icon Hide QS Tile Label Use only with vertical tiles + Text Size Scaling QS Margin QS Elements Hide Silent Text diff --git a/app/src/main/res/values-de-rDE/strings.xml b/app/src/main/res/values-de-rDE/strings.xml index 6ed214c21..63b429174 100644 --- a/app/src/main/res/values-de-rDE/strings.xml +++ b/app/src/main/res/values-de-rDE/strings.xml @@ -458,6 +458,7 @@ transparent machen Zeige Text unter QS Symbol Verstecke QS Beschreibung Nur mit vertikalen Kachen benutzen + Text Size Scaling QS Abstand QS Elemente Lautloser Text ausblenden diff --git a/app/src/main/res/values-el-rGR/strings.xml b/app/src/main/res/values-el-rGR/strings.xml index 2e00fff91..bda911127 100644 --- a/app/src/main/res/values-el-rGR/strings.xml +++ b/app/src/main/res/values-el-rGR/strings.xml @@ -457,6 +457,7 @@ Show label below QS icon Hide QS Tile Label Use only with vertical tiles + Text Size Scaling QS Margin QS Elements Hide Silent Text diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index f94faded9..1458fa8ec 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -457,6 +457,7 @@ Mostrar etiqueta debajo del icono de Ajustes Rápidos Ocultar etiqueta en botones de Ajustes Rápidos Usar solo con botones verticales + Text Size Scaling QS Margin QS Elements Hide Silent Text diff --git a/app/src/main/res/values-fa-rIR/strings.xml b/app/src/main/res/values-fa-rIR/strings.xml index 4f13de299..c37348b74 100644 --- a/app/src/main/res/values-fa-rIR/strings.xml +++ b/app/src/main/res/values-fa-rIR/strings.xml @@ -457,6 +457,7 @@ نمایش دادن عنوان کلید نوارابزار در زیر آیکون آن مخفی کردن عنوان کلید نوارابزار فقط در صورت عمودی بودن کلید‌ها از این گزینه استفاده کنید + Text Size Scaling QS Margin QS Elements Hide Silent Text diff --git a/app/src/main/res/values-fi-rFI/strings.xml b/app/src/main/res/values-fi-rFI/strings.xml index 0f6075b05..3c3bf051c 100644 --- a/app/src/main/res/values-fi-rFI/strings.xml +++ b/app/src/main/res/values-fi-rFI/strings.xml @@ -457,6 +457,7 @@ Show label below QS icon Hide QS Tile Label Use only with vertical tiles + Text Size Scaling QS Margin QS Elements Hide Silent Text diff --git a/app/src/main/res/values-fr-rFR/strings.xml b/app/src/main/res/values-fr-rFR/strings.xml index f1ffbbb0e..4dc2e7260 100644 --- a/app/src/main/res/values-fr-rFR/strings.xml +++ b/app/src/main/res/values-fr-rFR/strings.xml @@ -457,6 +457,7 @@ Afficher l\'étiquette sous l\'icône QS Masquer l’étiquette des tuiles QS Utiliser uniquement avec des tuiles verticales + Text Size Scaling Marges QS QS Elements Hide Silent Text diff --git a/app/src/main/res/values-hu-rHU/strings.xml b/app/src/main/res/values-hu-rHU/strings.xml index a7dac5b18..eaf697cf3 100644 --- a/app/src/main/res/values-hu-rHU/strings.xml +++ b/app/src/main/res/values-hu-rHU/strings.xml @@ -457,6 +457,7 @@ Címke megjelenítése az ikon alatt Csempefelirat elrejtése Csak függőleges csempék esetében + Szövegméretezés Csempemargók Gyorsbeállítások elemei Szövegelrejtés @@ -545,7 +546,7 @@ Fekvő akkumulátor O Kör akkumulátor Pontozott kör akkumulátor - Filled Circle Battery + Kitöltött kör akkumulátor Százalékos hangerő Megjeleníti a százalékértéket a hangerőcsúszka felett @@ -651,8 +652,8 @@ A záróképernyőről eltűnik a Szolgáltató neve Nincs Állapotsor a képernyőzáron A záróképernyőről eltűnik az Állapotsor - Hide LS Lock Icon - Hide lock icon view on lockscreen + Zárolásikon elrejtése + A zárikon elrejtése a záróképernyőn Rögzített Állapotikonok Az állapotikonok rögzített pozícióba kerülnek\nJónéhány ROM-on buggolást okoz diff --git a/app/src/main/res/values-in-rID/strings.xml b/app/src/main/res/values-in-rID/strings.xml index 9ecff6b7f..8ebed31f8 100644 --- a/app/src/main/res/values-in-rID/strings.xml +++ b/app/src/main/res/values-in-rID/strings.xml @@ -457,6 +457,7 @@ Tampilkan label di bawah ikon QS Sembunyikan QS Tile Label Gunakan hanya dengan tile vertikal + Text Size Scaling QS Margin QS Elements Hide Silent Text diff --git a/app/src/main/res/values-it-rIT/strings.xml b/app/src/main/res/values-it-rIT/strings.xml index 5468892a2..d5c6394ac 100644 --- a/app/src/main/res/values-it-rIT/strings.xml +++ b/app/src/main/res/values-it-rIT/strings.xml @@ -457,6 +457,7 @@ Mostra etichetta sotto l\'icona QS Nascondi Etichetta Riquadro QS Usa solo con riquadri verticali + Text Size Scaling Margine QS Elementi QS Nascondi Testo Silenzioso diff --git a/app/src/main/res/values-ja-rJP/strings.xml b/app/src/main/res/values-ja-rJP/strings.xml index ec768a6a2..52cedeb6e 100644 --- a/app/src/main/res/values-ja-rJP/strings.xml +++ b/app/src/main/res/values-ja-rJP/strings.xml @@ -4,7 +4,7 @@ セットアップの初期化中 ステップ - Step %1$d/%2$d + ステップ %1$d/%2$d モジュール シェルを作成しています 必要なファイルを抽出中 オーバーレイ APK を作成中 @@ -23,7 +23,7 @@ ストレージ権限が必要です 必要なファイルをビルドするために、ストレージ権限が必要です。 互換性のあるルート化方法が見つかりませんでした。 - Use any popular root solutions to proceed. + 一般的な root ソリューションを使用して続行します。 ルートにアクセスできません お使いのデバイスはルート化されていないようです! デバイスの再起動が必要です @@ -183,7 +183,7 @@ マルチカラーアウトライン アイコンパック Pixel バリアント - For roms with black QS panel + ブラック QS パネルのある ROM 向け 明るさ調節バーのスタイル @@ -290,8 +290,8 @@ タイトルシステム、サブタイトルアクセント 文字色を修正 機能しない場合のみ使用 - Follow Accent - Title accent, subtitle accent + アクセントに従う + タイトルのアクセントとサブタイトルのアクセント 縦画面 横画面 @@ -348,11 +348,11 @@ 太め なし 背景の色合い - Make track of volume slider thin - Thick Background - Make track of volume slider thick - No Background - Remove track of volume slider + 音量のスライダーを細くします + 太い背景 + 音量のスライダーを太くします + 背景なし + 音量スライダーのトラックを削除します カスタム Magisk モジュール 音量のスタイル このスタイルのフラッシュ可能な Magisk モジュールを作成します @@ -368,14 +368,14 @@ This option will create a magisk module inside Download folder in your Internal Storage. Flash the module named IconifyCompanion.zip in Magisk. Always uninstall previous Iconify Companion module (if installed) and reboot before flashing new one.\n\nNote:\n• Uninstall the module before updating rom.\n• Recreate the module if you change or update rom.\n• Do not flash a module which wasn\'t created based on your rom. メディアプレーヤー プレビュー - Music Title - Artist Name - Phone speaker + 音楽のタイトル + アーティスト名 + デバイスのスピーカー 背景の色 背景のアクセント - Make background follow accent - System Background - Make background follow system + アクセントに従って背景を作成します + システムの背景 + システムに従って背景を作成します Pitch Black Background Make background pitch black @@ -385,7 +385,7 @@ ノッチ バー キラー ノッチ バーの空白を削除します タブレット ヘッダー - Enable large screen shade header + 大画面のシェードヘッダーを有効化します プライバシー チップ アクセント プライバシー チップ プライバシー チップにアクセントカラーを適用する @@ -395,16 +395,16 @@ LSPosed から Iconify モジュールを有効化する前に、Iconify を長押しして最適化をクリックしてください。その後 Iconify を有効にしてシステム UI を再起動してください。これは滑らかな動作に必要なことです。 現在 Xposed 限定モードです。これには LSPosed アプリで Iconify を有効にする必要があります。また、Magisk マネージャーで Iconify モジュールが表示されていることを確認してください。すべての機能にアクセスするには、Iconify アプリのデータを削除した後、インストールプロセスを実行してください。 - Module Not Activated - System service not running + モジュールが有効化されていません + システムサービスが実行されていません 透過とぼかし クイック設定のぼかしと透過を有効化します テーマ - Personalize with themes + テーマでパーソナライズします クイック設定 クイック設定に関する調整 バッテリースタイル - Customize battery icon view + バッテリーアイコンの表示をカスタマイズします ヘッダー画像 クイック設定パネルにカスタム画像を追加します ヘッダー時計 @@ -413,9 +413,9 @@ ロック画面にカスタム時計を追加します 深度のある背景 iOS のような深度のある背景を表示します - Background Chip - Add colored chip behind clock - Others + 背景チップ + 時計の後ろに色付きのチップを追加します + その他 その他の Xposed での調整 透明効果 @@ -430,19 +430,19 @@ ウインドウ レベルのぼかし 動作には再起動が必要です 積極的なぼかしを有効化 - Might bootloop in some roms + 一部の ROM でブートループが発生する可能性があります ぼかしの強さ - For Pixel Roms + Pixel ROM 向け ライト テーマ ライト モードで明るいクイック設定を使用します\nカスタムクイック設定形状の使用が必要です - Dual Tone + デュアルトーン Use different color for header - For Custom Roms - Pixel Black Theme + カスタム ROM 向け + Pixel Black テーマ Black QS theme in light mode\nMust use Pixel QS Shape\nSwitch dark theme to fix text color - Translucent Theme - Fluid QS Theme + 半透明なテーマ + Fluid QS テーマ Two tone translucent QS theme\nSwitch theme to fix color\nDo not use custom shapes 通知の透過 Notification transparency for Fluid QS\nDo not use custom notification style @@ -457,6 +457,7 @@ クイック設定アイコンの下にラベルを表示します クイック設定タイルのラベルを非表示 垂直タイルの時のみ使用してください + テキストサイズの大きさ クイック設定マージン クイック設定の要素 サイレント テキストを非表示 @@ -480,20 +481,20 @@ Make battery perimeter semi transparent Fill Alpha Make battery fill semi transparent - Rainbow Color - Show different color based on battery level - Blend Color - Blend battery color with custom color + レインボーカラー + バッテリーレベルに応じて異なる色を表示します + ブレンドカラー + バッテリーカラーをカスタムカラーとブレンドします Fill Color Fill battery with custom color - Fill Gradient Color - Fill battery with gradient color - Charging Fill Color - Change color of charging battery - Powersave Fill Color - Change color of powersave battery - Powersave Indicator Color - Change color of powersave indicator + グラデーションカラーで塗りつぶす + バッテリーをグラデーションカラーで塗りつぶします + 充電中のカラーを塗りつぶす + 充電時のバッテリーの色を変更します + バッテリーセーバーの塗りつぶしの色 + バッテリーセーバーの色を変更します + バッテリーセーバーのインジケーターの色 + バッテリーセーバーのインジケーターの色を変更します カスタムディメンション バッテリーアイコンにカスタムディメンションを設定します バッテリー左マージン @@ -543,21 +544,21 @@ 横向き バッテリー M 横向き バッテリー N 横向き バッテリー O - Circle Battery - Dotted Circle Battery - Filled Circle Battery + サークルバッテリー + ドットサークルバッテリー + 塗りつぶされたサークルバッテリー - Volume Percentage - Show percentage above volume slider - Safety Warning - Show warning on high volume + 音量のパーセンテージ + 音量スライダーの上にパーセンテージを表示します + 安全上の警告 + 大音量の場合に警告を表示します ヘッダー画像を選択 クイック設定パネルのヘッダー画像を追加します\n「最近」からファイルを選択しないでください 画像を選択 画像の縦幅 画像の透明度 - Bottom Fade Amount + 下部のフェード量 画面に合わせる 画像はデフォルトで拡大縮小します 横画面では非表示 @@ -601,26 +602,26 @@ 下部マージン ホワイト テキスト すべての色を白に強制します - Select - Battery Charging - Battery Discharging - Battery Full - Battery Level - Welcome back! - User + 選択 + バッテリー充電中 + バッテリー放電中 + バッテリー満充電 + バッテリーレベル + おかえりなさい! + ユーザー - Enable Depth Wallpaper - Show iOS like depth wallpaper\nMust use custom lockscreen clock - Fade in AOD - Animate wallpaper and fade away in AOD + 奥行きのある壁紙を有効化 + iOS のような深みのある壁紙を表示します\nカスタムロック画面の時計を使用する必要があります + AOD をフェードイン + AOD で壁紙をアニメーション化してフェードアウトさせます 前景の画像 深度のある壁紙の前景画像 Foreground Image Alpha 背景の画像 深度のある壁紙の背景画像 This feature is currently in beta stage. So bugs are expected.\n\nKnown Bug(s):\n• Tapping on lockscreen makes the wallpaper jump. - Parallax Effect - Move background and foreground layers at different speeds + 視差効果 + 背景レイヤーと前景レイヤーを異なる速度で移動します Foreground Sensitivity Background Sensitivity @@ -651,10 +652,10 @@ ロック画面のキャリア名を非表示にします ロック画面のステータスバーを非表示 ロック画面のステータスバーを非表示にします - Hide LS Lock Icon - Hide lock icon view on lockscreen + LS ロックアイコンを非表示 + ロック画面でロックアイコンの表示を非表示にします ステータス アイコンを固定 - Set status icons in fixed position\nMight be buggy on some rom + ステータスアイコンを固定された位置に設定します\n一部の ROM でバグを起こす可能性があります 変更履歴 サーバーに接続できませんでした!\nインターネット接続に問題があるか、一時的にサーバーダウンしている可能性があります。あとでもう一度やり直してください。 @@ -679,8 +680,8 @@ 毎日 毎週 しない - Current Version: %s - Latest Version: %s + 現在のバージョン: %s + 最新のバージョン: %s クレジット スペシャル サンクス @@ -691,49 +692,49 @@ Xposed 制作補助。 アプリのテスト。 より良いクイック設定の使用許可。 - For android executable binaries. + Android 実行可能バイナリ用です。 貢献者 GitHub での貢献。 Telegram での補助。 翻訳者 - Afrikaans translation. + アフリカーンス語訳 アラビア後翻訳。 - Catalan translation. - Chinese translation. - Chinese translation. - Czech translation. - Danish translation. - Dutch translation. - Finnish translation. + カタロニア語訳 + 中国語訳 + 中国語訳 + チェコ語訳 + デンマーク語訳 + オランダ語訳 + フィンランド語訳 フランス語翻訳。 - German translation. - Greek translation. - Hungarian translation. + ドイツ語訳 + ギリシャ語訳 + ハンガリー語訳 インドネシア語翻訳。 イタリア語翻訳。 - Japanese translation. - Korean translation. - Norwegian translation. + 日本語訳 + 韓国語訳 + ノルウェー語訳 ペルシア語翻訳。 ポーランド語翻訳。 ポルトガル語翻訳。 - Portuguese (Brazilian) translation. - Romanian translation. + ポルトガル語 (ブラジル) 訳 + ルーマニア語訳 ロシア語翻訳。 - Serbian (Cyrillic) translation. + セルビア語 (キリル文字) 訳 スペイン語翻訳。 - Swedish translation. + スウェーデン語訳 トルコ語翻訳。 - Ukrainian translation. + ウクライナ語訳 ベトナム語翻訳。 実験的 - Overlap Header Image - Overlap header image on expanded QS + ヘッダー画像の重複 + 展開されたクイック設定にヘッダー画像を重ねます Unzoom Depth Wallpaper Remove the zoom effect on depth wallpaper - Hide Data Disabled Icon - Hide data disabled indicator + データ通信無効アイコンを非表示 + データ通信インジケーターを非表示 ホーム 調整 @@ -814,7 +815,7 @@ Plumpy uses colored battery by default はじめにスタイルを選択して下さい KernelSU は現在サポートされていません - Only magisk is supported currently + 現在は Magisk でのみサポートされています 再起動が必要です LSPosed が見つかりません! どうやってこれ知ったの? @@ -827,7 +828,7 @@ 設定のエクスポートが完了しました 選択が完了しました 利用不可能 - Use this feature from Xposed Menu + Xposed メニューからこの機能を使用する アップデートがあります 新しいバージョンの Iconify が利用可能です。 @@ -850,14 +851,14 @@ Iconify ロゴ こんにちは! アイコン - Media Player Icons + メディアプレーヤーアイコン 選択: 選択: %s - Selected: %1$s%2$s - Selected: %1$s%2$s %3$s + 選択済み: %1$s%2$s + 選択済み: %1$s%2$s %3$s (デフォルト) - No Clock - Clock Style %d + 時計なし + 時計のスタイル %d お待ちください 5 秒以内に再起動します Iconify バージョン @@ -880,8 +881,8 @@ 理解した カスタム トースト カスタムされたスタイルのトーストを有効化します - Custom Progressbar - Enable gradient progress bar + カスタムプログレスバー + グラデーションなプログレスバーを有効化 カスタム シークバー カスタムされたスタイルのシークバーを有効化します システム UI の再起動が必要です @@ -893,17 +894,17 @@ カスタムクイック設定マージン クイック設定のカスタムマージンを有効化します ぼかしの有効化を強制 - Force enable blur for unsupported roms + サポートされていない ROM でぼかし効果を強制的に有効化します ヘッダー画像を選択 時計フォントを選択 - Pick a style of your choice + お好みのスタイルを選択してください 注意! - Double Toggle Dark Mode + ダブルでダークモードに切り替え システム UI を再起動 - Do Nothing (I will do it myself) + 何もしない (自分で行う) Xposed 設定 - Force Apply Method - Method to force apply the changes in xposed menu + 強制適用方式 + Xposed メニューの変更を強制的に適用します その他の設定 一般設定 明るいアクセントを使用 diff --git a/app/src/main/res/values-ko-rKR/strings.xml b/app/src/main/res/values-ko-rKR/strings.xml index b0fab439a..4a6a81fc3 100644 --- a/app/src/main/res/values-ko-rKR/strings.xml +++ b/app/src/main/res/values-ko-rKR/strings.xml @@ -457,6 +457,7 @@ Show label below QS icon Hide QS Tile Label Use only with vertical tiles + Text Size Scaling QS Margin QS Elements Hide Silent Text diff --git a/app/src/main/res/values-nl-rNL/strings.xml b/app/src/main/res/values-nl-rNL/strings.xml index 0f6075b05..3c3bf051c 100644 --- a/app/src/main/res/values-nl-rNL/strings.xml +++ b/app/src/main/res/values-nl-rNL/strings.xml @@ -457,6 +457,7 @@ Show label below QS icon Hide QS Tile Label Use only with vertical tiles + Text Size Scaling QS Margin QS Elements Hide Silent Text diff --git a/app/src/main/res/values-no-rNO/strings.xml b/app/src/main/res/values-no-rNO/strings.xml index 0f6075b05..3c3bf051c 100644 --- a/app/src/main/res/values-no-rNO/strings.xml +++ b/app/src/main/res/values-no-rNO/strings.xml @@ -457,6 +457,7 @@ Show label below QS icon Hide QS Tile Label Use only with vertical tiles + Text Size Scaling QS Margin QS Elements Hide Silent Text diff --git a/app/src/main/res/values-pl-rPL/strings.xml b/app/src/main/res/values-pl-rPL/strings.xml index 9f027791a..1dfe76a77 100644 --- a/app/src/main/res/values-pl-rPL/strings.xml +++ b/app/src/main/res/values-pl-rPL/strings.xml @@ -457,6 +457,7 @@ Wyświetl etykiety pod ikonami kafelków Ukryj etykiety kafelków Używaj tylko z pionowymi kafelkami + Text Size Scaling Marginesy szybkich ustawień QS Elements Hide Silent Text diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index ddac23103..35e9c098b 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -457,6 +457,7 @@ Mostre o rótulo abaixo do ícone QS Ocultar rótulo do bloco QS Use apenas com rótulos verticais + Tamanho do texto Margem QS Elementos QS Ocultar texto silencioso diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index 3f6e90fc9..2880a00c4 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -457,6 +457,7 @@ Mostrar rótulo abaixo do ícone do atalho Ocultar rótulos Usar apenas com os atalhos verticais + Text Size Scaling QS Margin QS Elements Hide Silent Text diff --git a/app/src/main/res/values-ro-rRO/strings.xml b/app/src/main/res/values-ro-rRO/strings.xml index 0f6075b05..3c3bf051c 100644 --- a/app/src/main/res/values-ro-rRO/strings.xml +++ b/app/src/main/res/values-ro-rRO/strings.xml @@ -457,6 +457,7 @@ Show label below QS icon Hide QS Tile Label Use only with vertical tiles + Text Size Scaling QS Margin QS Elements Hide Silent Text diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml index 744612af1..ed7fe4752 100644 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ b/app/src/main/res/values-ru-rRU/strings.xml @@ -14,7 +14,7 @@ Наскучил стандартный UI ? Давайте настроим все по нашему вкусу. Избавьтесь от однообразности интерфейса – персонализируйте каждую деталь под стать вашему стилю и предпочтениям. - Поддерживается ли мой девайс? + Поддерживается ли мое устройство? Iconify поддерживается на всех Pixel или AOSP прошивках. Совместим со всеми Pixel и AOSP-подобными прошивками, обеспечивая широкую поддержку устройств Android. Может, Начнем Прямо Сейчас? @@ -93,7 +93,7 @@ Светлая тема Тёмная тема Системная тема - Обновления + Обновление Проверить обновления Установленная версия: %s Обновлять автоматически @@ -281,17 +281,17 @@ Обычный Pixel Всегда белый - Белый для заголовка, Акцент для текста + Белые заголовок и подзаголовок Всегда белый v2 - Белый для заголовка, Акцент для текста + Белый заголовок, акцент для подзаголовка Соответствовать системе - Системный для заголовка, Системный для текста + Системный для заголовка и подзаголовка Соответствовать системе v2 - Системный для заголовка, Акцент для текста + Системный для заголовка, акцент для подзаголовка Исправить цвет текста Исправить нечитаемый цвет текста Использовать акцентный цвет - Акцент заголовка и подзаголовка + Акцент для заголовка и подзаголовка Вертикальный Горизонтальный @@ -307,7 +307,7 @@ Высота Цвет Оттенок - Оттенок иконок статусбара и текста + Оттенок иконок строки состояния и текста Стандартный системный оттенок Monet оттенок Свой оттенок @@ -333,12 +333,12 @@ Отключить жест назад с левой стороны Отключить правый жест Отключить жест назад с правой стороны - Навигация пилюлей + Строка навигации Скрыть строку навигации Скрывает строку навигации Цвет Monet в строке навигации Применить цвет акцента к строке навигации - Отображение пилюли + Отображение строки навигации Ширина капсулы Толщина капсулы Нижнее пространство @@ -382,7 +382,7 @@ Планшетный режим Планшетный ландшафтный режим Также известен как Better QS - Убийца выреза экрана + Убрать вырез экрана Убрать пустое пространство выреза Планшетный заголовок Включить большой заголовок экрана @@ -457,6 +457,7 @@ Показывать подпись под иконкой в быстрых настройках Скрыть подписи плиток быстрых настроек Используйте только с вертикальными плитками + Text Size Scaling Отступ быстрых настроек Элементы быстрых настроек Скрыть надпись Без звука у уведомлений @@ -545,7 +546,7 @@ Горизонтальная батарея O Круглая батарея Точечный круг батареи - Filled Circle Battery + Заполненный круг Проценты громкости Показывать проценты выше слайдера громкости @@ -615,7 +616,7 @@ Анимировать обои и угасать в AOD Изображение на переднем плане Изображение на переднем плане для глубинных обоев - Foreground Image Alpha + Alpha-прозрачность изображения переднего плана Изображение на заднем плане Изображение на заднем плане для глубинных обоев Эта функция находится на стадии бета-тестирования. Поэтому могут быть ошибки.\n\nИзвестные ошибки:\n• При нажатии на экран блокировки обои подпрыгивают. @@ -625,9 +626,9 @@ Фоновая чувствительность Строка состояния - Фишка часов статусбара - Показывать фишку позади часов в статусбаре - Цвет часов в статусбаре + Подложка часов строки состояния + Показывать подложку позади часов в строке состояния + Цвет часов в строке состояния Соответствие системе Прозрачный текст Кастомный цвет @@ -635,25 +636,25 @@ Установить цвет текста часов статусбара Иконки строки состояния Стиль фишки - Фишка иконок статусбара - Показывать фишку позади иконок статусбара - Стиль фишки + Подложка иконок строки состояния + Показывать подложку позади иконок строки состояния + Стиль подложки Верхнее поле Боковое поле Шапка быстрых настроек Скрыть группу Сим-карт Скрыть группу Сим-карт в панели быстрых настроек - Скрыть значки статусбара + Скрыть иконки строки состояния Скрыть значки времени, даты и батареи Экран блокировки Скрыть оператора Скрывает оператора на экране блокировки - Скрыть статусбар - Скрывает статусбар на экране блокировки - Hide LS Lock Icon - Hide lock icon view on lockscreen - Фиксированные иконки статусбара + Скрыть строку состояния + Скрывает строку состояния на экране блокировки + Спрятать иконку блокировки экрана + Скрыть иконку блокировки на экране блокировки + Фиксированные иконки строки состояния Установить значки состояния в фиксированном положении\nВ некоторых прошивках могут быть ошибки Журнал изменеий diff --git a/app/src/main/res/values-sr-rSP/strings.xml b/app/src/main/res/values-sr-rSP/strings.xml index 0f6075b05..3c3bf051c 100644 --- a/app/src/main/res/values-sr-rSP/strings.xml +++ b/app/src/main/res/values-sr-rSP/strings.xml @@ -457,6 +457,7 @@ Show label below QS icon Hide QS Tile Label Use only with vertical tiles + Text Size Scaling QS Margin QS Elements Hide Silent Text diff --git a/app/src/main/res/values-sv-rSE/strings.xml b/app/src/main/res/values-sv-rSE/strings.xml index 3e5a8f235..457e7ad22 100644 --- a/app/src/main/res/values-sv-rSE/strings.xml +++ b/app/src/main/res/values-sv-rSE/strings.xml @@ -457,6 +457,7 @@ Show label below QS icon Hide QS Tile Label Use only with vertical tiles + Text Size Scaling QS Margin QS Elements Hide Silent Text diff --git a/app/src/main/res/values-tr-rTR/strings.xml b/app/src/main/res/values-tr-rTR/strings.xml index 4cc1e1b29..59b92359b 100644 --- a/app/src/main/res/values-tr-rTR/strings.xml +++ b/app/src/main/res/values-tr-rTR/strings.xml @@ -457,6 +457,7 @@ QS simgesinin altındaki etiketi göster QS Kutucuğu Etiketini Gizle Sadece dikey kutucuklarla kullanın + Metin Ölçeklendirme QS Kenar Boşluğu QS Öğeleri Sessiz Metni Gizle @@ -545,7 +546,7 @@ Yatay Pil O Daire Pil Noktalı Daire Pil - Filled Circle Battery + Dolu Daire Pil Ses yüzdesi Ses kaydırıcısının üzerinde yüzdeyi göster diff --git a/app/src/main/res/values-uk-rUA/strings.xml b/app/src/main/res/values-uk-rUA/strings.xml index 0f6075b05..3c3bf051c 100644 --- a/app/src/main/res/values-uk-rUA/strings.xml +++ b/app/src/main/res/values-uk-rUA/strings.xml @@ -457,6 +457,7 @@ Show label below QS icon Hide QS Tile Label Use only with vertical tiles + Text Size Scaling QS Margin QS Elements Hide Silent Text diff --git a/app/src/main/res/values-vi-rVN/strings.xml b/app/src/main/res/values-vi-rVN/strings.xml index ad08504dc..1799e05a3 100644 --- a/app/src/main/res/values-vi-rVN/strings.xml +++ b/app/src/main/res/values-vi-rVN/strings.xml @@ -457,6 +457,7 @@ Hiển thị nhãn bên dưới biểu tượng QS Ẩn nhãn ô xếp QS Chỉ sử dụng với dọc + Text Size Scaling QS Margin QS Elements Hide Silent Text diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 4b5e437b3..ba8cdad14 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -457,6 +457,7 @@ 在快速设置图标下面显示标签 隐藏快速设置图块标签 只能与垂直图块一起使用 + Text Size Scaling 快速设置边距 快速设置元素 隐藏静音文本 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 0a635b43f..e867e02ce 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -457,6 +457,7 @@ 在快速設定圖示下面顯示標簽 隱藏快速設定圖示標簽 只能與垂直圖示一起使用 + Text Size Scaling 快速設定邊距 「快速設定」元素 Hide Silent Text From 02e7b014dd6a6054d57bed5d26b1c89545e1b735 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Tue, 11 Jun 2024 21:28:10 +0600 Subject: [PATCH 012/369] IOS Clock: Fix date view alpha --- app/src/main/res/layout/preview_lockscreen_clock_19.xml | 9 +++++---- app/src/main/res/layout/preview_lockscreen_clock_3.xml | 5 +++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/layout/preview_lockscreen_clock_19.xml b/app/src/main/res/layout/preview_lockscreen_clock_19.xml index a22eed896..348f4ad4b 100644 --- a/app/src/main/res/layout/preview_lockscreen_clock_19.xml +++ b/app/src/main/res/layout/preview_lockscreen_clock_19.xml @@ -16,6 +16,7 @@ Date: Tue, 11 Jun 2024 21:29:56 +0600 Subject: [PATCH 013/369] Bump AGP --- gradle/libs.versions.toml | 2 +- gradle/wrapper/gradle-wrapper.properties | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 5942b0ccd..5584c7567 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -agp = "8.4.1" +agp = "8.4.2" appcompat = "1.7.0" bcpkixJdk18on = "1.77" circleindicator = "2.1.6" diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index becef35af..6ba7828c0 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,7 @@ #Sat Oct 07 18:38:04 BDT 2023 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME From 78f3ff680938d6dd0dc855ff1537d57f05734122 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Sat, 15 Jun 2024 21:18:17 +0600 Subject: [PATCH 014/369] Bump AGP --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6a1a38870..5103778bf 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -agp = "8.4.2" +agp = "8.5.0" appcompat = "1.7.0" bcpkixJdk18on = "1.78.1" circleindicator = "2.1.6" From cadf270e9b48e31b5e365296acddc610658287ec Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Sat, 15 Jun 2024 21:30:53 +0600 Subject: [PATCH 015/369] Revert vertical tiles text size scaling --- .../drdisagree/iconify/common/Preferences.kt | 2 +- .../ui/fragments/XposedQuickSettings.kt | 40 -------------- .../iconify/xposed/modules/QuickSettings.kt | 53 ++----------------- .../layout/fragment_xposed_quick_settings.xml | 15 ------ 4 files changed, 6 insertions(+), 104 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt index 59933d2a8..cbc91d29a 100644 --- a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt +++ b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt @@ -118,7 +118,6 @@ object Preferences { const val HIDE_QS_FOOTER_BUTTONS = "xposed_hideqsfooterbuttons" const val QS_TEXT_ALWAYS_WHITE = "xposed_qstextalwayswhite" const val QS_TEXT_FOLLOW_ACCENT = "xposed_qstextfollowaccent" - const val QS_TEXT_SIZE_SCALING = "xposed_qstextsizescaling" // Xposed view tags const val ICONIFY_HEADER_CLOCK_TAG = "iconify_header_clock" @@ -249,6 +248,7 @@ object Preferences { const val SHOW_XPOSED_WARN = "IconifyShowXposedWarn" const val SHOW_HOME_CARD = "IconifyShowHomeCard" const val XPOSED_ONLY_MODE = "IconifyXposedOnlyMode" + @JvmField var isXposedOnlyMode = getBoolean(XPOSED_ONLY_MODE, true) && !SplashActivity.SKIP_TO_HOMEPAGE_FOR_TESTING diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedQuickSettings.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedQuickSettings.kt index 099ae4157..940ce7470 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedQuickSettings.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedQuickSettings.kt @@ -15,15 +15,12 @@ import com.drdisagree.iconify.common.Preferences.HIDE_QS_SILENT_TEXT import com.drdisagree.iconify.common.Preferences.QQS_TOPMARGIN import com.drdisagree.iconify.common.Preferences.QS_TEXT_ALWAYS_WHITE import com.drdisagree.iconify.common.Preferences.QS_TEXT_FOLLOW_ACCENT -import com.drdisagree.iconify.common.Preferences.QS_TEXT_SIZE_SCALING import com.drdisagree.iconify.common.Preferences.QS_TOPMARGIN import com.drdisagree.iconify.common.Preferences.VERTICAL_QSTILE_SWITCH import com.drdisagree.iconify.config.RPrefs.clearPref import com.drdisagree.iconify.config.RPrefs.getBoolean -import com.drdisagree.iconify.config.RPrefs.getFloat import com.drdisagree.iconify.config.RPrefs.getInt import com.drdisagree.iconify.config.RPrefs.putBoolean -import com.drdisagree.iconify.config.RPrefs.putFloat import com.drdisagree.iconify.config.RPrefs.putInt import com.drdisagree.iconify.databinding.FragmentXposedQuickSettingsBinding import com.drdisagree.iconify.ui.base.BaseFragment @@ -58,12 +55,6 @@ class XposedQuickSettings : BaseFragment() { binding.hideTileLabel.setEnabled(isChecked) - binding.tileLabelSizeScaling.visibility = if (isChecked) { - View.VISIBLE - } else { - View.GONE - } - Handler(Looper.getMainLooper()).postDelayed( { SystemUtil.handleSystemUIRestart() }, SWITCH_ANIMATION_DELAY @@ -76,43 +67,12 @@ class XposedQuickSettings : BaseFragment() { binding.hideTileLabel.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> putBoolean(HIDE_QSLABEL_SWITCH, isChecked) - binding.tileLabelSizeScaling.isEnabled = !isChecked - Handler(Looper.getMainLooper()).postDelayed( { SystemUtil.handleSystemUIRestart() }, SWITCH_ANIMATION_DELAY ) } - // Label size scaling - binding.tileLabelSizeScaling.visibility = if (binding.verticalTile.isSwitchChecked) { - View.VISIBLE - } else { - View.GONE - } - binding.tileLabelSizeScaling.isEnabled = !binding.hideTileLabel.isSwitchChecked - - binding.tileLabelSizeScaling.sliderValue = - (getFloat(QS_TEXT_SIZE_SCALING, 1.0f) * 10).toInt() - binding.tileLabelSizeScaling.setOnSliderTouchListener(object : - Slider.OnSliderTouchListener { - override fun onStartTrackingTouch(slider: Slider) {} - - override fun onStopTrackingTouch(slider: Slider) { - putFloat(QS_TEXT_SIZE_SCALING, slider.value / 10f) - - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - } - }) - binding.tileLabelSizeScaling.setResetClickListener { - clearPref(QS_TEXT_SIZE_SCALING) - - true - } - // QQS panel top margin slider binding.qqsTopMargin.sliderValue = getInt(QQS_TOPMARGIN, 100) binding.qqsTopMargin.setOnSliderTouchListener(object : Slider.OnSliderTouchListener { diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/QuickSettings.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/QuickSettings.kt index 43fe9faef..3d62ac04f 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/QuickSettings.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/QuickSettings.kt @@ -27,7 +27,6 @@ import com.drdisagree.iconify.common.Preferences.HIDE_QS_SILENT_TEXT import com.drdisagree.iconify.common.Preferences.QQS_TOPMARGIN import com.drdisagree.iconify.common.Preferences.QS_TEXT_ALWAYS_WHITE import com.drdisagree.iconify.common.Preferences.QS_TEXT_FOLLOW_ACCENT -import com.drdisagree.iconify.common.Preferences.QS_TEXT_SIZE_SCALING import com.drdisagree.iconify.common.Preferences.QS_TOPMARGIN import com.drdisagree.iconify.common.Preferences.VERTICAL_QSTILE_SWITCH import com.drdisagree.iconify.config.XPrefs.Xprefs @@ -58,7 +57,6 @@ class QuickSettings(context: Context?) : ModPack(context!!) { private var hideSilentText = false private var qqsTopMargin = 100 private var qsTopMargin = 100 - private var qsTextSizeScalingFactor = 1.0f private var mParam: Any? = null private var mFooterButtonsContainer: ViewGroup? = null private var mFooterButtonsOnDrawListener: OnDrawListener? = null @@ -82,7 +80,6 @@ class QuickSettings(context: Context?) : ModPack(context!!) { qsTextFollowAccent = Xprefs!!.getBoolean(QS_TEXT_FOLLOW_ACCENT, false) hideSilentText = Xprefs!!.getBoolean(HIDE_QS_SILENT_TEXT, false) hideFooterButtons = Xprefs!!.getBoolean(HIDE_QS_FOOTER_BUTTONS, false) - qsTextSizeScalingFactor = Xprefs!!.getFloat(QS_TEXT_SIZE_SCALING, 1.0f) triggerQsElementVisibility() } @@ -188,20 +185,15 @@ class QuickSettings(context: Context?) : ModPack(context!!) { } catch (ignored: Throwable) { } - val primaryText = getObjectField( + qsTilePrimaryTextSize = (getObjectField( mParam, "label" - ) as TextView - val secondaryText = getObjectField( + ) as TextView).textSize + + qsTileSecondaryTextSize = (getObjectField( mParam, "secondaryLabel" - ) as TextView - - qsTilePrimaryTextSize = primaryText.textSize - qsTilePrimaryTextSizeUnit = primaryText.textSizeUnit - - qsTileSecondaryTextSize = secondaryText.textSize - qsTileSecondaryTextSizeUnit = secondaryText.textSizeUnit + ) as TextView).textSize } } catch (throwable: Throwable) { log(TAG + throwable) @@ -216,14 +208,6 @@ class QuickSettings(context: Context?) : ModPack(context!!) { fixTileLayout(param.thisObject as LinearLayout, mParam) } }) - - hookAllMethods(qsTileViewImplClass, "onLayout", object : XC_MethodHook() { - override fun beforeHookedMethod(param: MethodHookParam) { - if (!isVerticalQSTileActive) return - - setLabelSizes(param.thisObject) - } - }) } private fun setQsMargin(loadPackageParam: LoadPackageParam) { @@ -897,39 +881,12 @@ class QuickSettings(context: Context?) : ModPack(context!!) { } } - private fun setLabelSizes(paramThisObject: Any) { - try { - if (qsTilePrimaryTextSize != null && qsTilePrimaryTextSizeUnit != -1) { - (getObjectField( - paramThisObject, - "label" - ) as TextView).setTextSize( - qsTilePrimaryTextSizeUnit, - qsTilePrimaryTextSize!! * qsTextSizeScalingFactor - ) - } - - if (qsTileSecondaryTextSize != null && qsTileSecondaryTextSizeUnit != -1) { - (getObjectField( - paramThisObject, - "secondaryLabel" - ) as TextView).setTextSize( - qsTileSecondaryTextSizeUnit, - qsTileSecondaryTextSize!! * qsTextSizeScalingFactor * 0.92f - ) - } - } catch (ignored: Throwable) { - } - } - companion object { private val TAG = "Iconify - ${QuickSettings::class.java.simpleName}: " private var isVerticalQSTileActive = false private var isHideLabelActive = false private var qsTilePrimaryTextSize: Float? = null - private var qsTilePrimaryTextSizeUnit: Int = -1 private var qsTileSecondaryTextSize: Float? = null - private var qsTileSecondaryTextSizeUnit: Int = -1 private var qqsTopMarginEnabled = false private var qsTopMarginEnabled = false } diff --git a/app/src/main/res/layout/fragment_xposed_quick_settings.xml b/app/src/main/res/layout/fragment_xposed_quick_settings.xml index a25098adf..fbcc05ad8 100644 --- a/app/src/main/res/layout/fragment_xposed_quick_settings.xml +++ b/app/src/main/res/layout/fragment_xposed_quick_settings.xml @@ -40,21 +40,6 @@ app:summaryText="@string/hide_qs_tile_label_desc" app:titleText="@string/hide_qs_tile_label_title" /> - - Date: Sat, 15 Jun 2024 21:34:54 +0600 Subject: [PATCH 016/369] Fluid Theme: Add null check for background drawable --- .../iconify/xposed/modules/themes/QSFluidThemeA13.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSFluidThemeA13.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSFluidThemeA13.kt index 5da15e9b9..77cad8ae9 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSFluidThemeA13.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSFluidThemeA13.kt @@ -720,8 +720,8 @@ class QSFluidThemeA13(context: Context?) : ModPack(context!!) { val childCount = parent.childCount for (i in 0 until childCount) { val childView = parent.getChildAt(i) - childView.background.setTint(colorInactive[0]) - childView.background.alpha = (INACTIVE_ALPHA * 255).toInt() + childView.background?.setTint(colorInactive[0]) + childView.background?.alpha = (INACTIVE_ALPHA * 255).toInt() } } } From 6228c859c2bc0ab5f791139363cf61412b9fa5c8 Mon Sep 17 00:00:00 2001 From: Crowdin Bot Date: Sun, 16 Jun 2024 00:14:45 +0000 Subject: [PATCH 017/369] New Crowdin translations by GitHub Action --- app/src/main/res/values-fa-rIR/strings.xml | 242 ++++++++++----------- 1 file changed, 121 insertions(+), 121 deletions(-) diff --git a/app/src/main/res/values-fa-rIR/strings.xml b/app/src/main/res/values-fa-rIR/strings.xml index c37348b74..26f9f7df0 100644 --- a/app/src/main/res/values-fa-rIR/strings.xml +++ b/app/src/main/res/values-fa-rIR/strings.xml @@ -2,35 +2,35 @@ شخصی سازی رابط‌ کاربری خسته کننده اندروید - Initializing setup - Step - Step %1$d/%2$d - Creating module shell - Extracting necessary files - Creating overlay APKs - Aligning overlay APKs - Signing overlay APKs - Cleaning directories - Got Bored of Stock UI ? - Let\'s customize everything to our likings. - Ditch the stock UI monotony – personalize every tech detail to match your style and preferences. - Is My Device Supported ? - Iconify supports all Pixel and AOSP ROMs. - Compatible with all Pixel and AOSP-based ROMs, ensuring broad support for Android devices. - Shall We Begin Now ? - It is time for iconify to do some internal work. - Starting internal tasks, marking the initiation of essential work. Ready to begin? - Need Storage Permission - Storage permission is required to build the necessary files. - Could Not Find Compatible Root Method - Use any popular root solutions to proceed. - Root Is Not Accessible + راه‌اندازی اولیه + قدم + قدم %1$d/%2$d + در حال ساخت ماژول واسط(شِل) + استخراج پرونده های مورد نیاز + ساخت APK های پوششی + هماهنگ سازی APK ها + امضا کردن APK های پوششی + پاکسازی پوشه ها + از رابط کاربری پیشفرض زده شدی؟ + بیایید همه چیز را به دلخواه خود سفارشی کنیم. + یکنواختی رابط کاربری پیشفرض را کنار بگذارید – تمام جزئیات فناوری را شخصی سازی کنید تا با سبک و ترجیحات شما مطابقت داشته باشند. + دستگاه من پشتیبانی میشه؟ + آیکونیفای از تمام پیکسل ها و رام های بر پایه اندروید متن باز(AOSP) پشتیبانی میکند. + سازگار با تمام رام های مبتنی بر پیکسل و AOSP، اطمینان از پشتیبانی گسترده از دستگاه های اندرویدی. + اکنون شروع کنیم؟ + اکنون زمان آن است که آیکونیفای یک سری کار های داخلی انجام دهد. + شروع وظایف داخلی، علامت گذاری شروع کار ضروری. آماده آغاز هستید؟ + دسترسی حافظه مورد نیاز است + دسترسی به حافظه برای ساخت برخی پرونده های ضروری لازم است. + روش روت سازگار یافت نشد + برای ادامه از هر کدام از روش های محبوب روت استفاده کنید. + روت در دسترس نیست ظاهرا دستگاه شما روت نشده است! - Need Device Reboot - Reboot your device to put all files in place. - Oops Did Not Expect That + نیازمند بازراه‌اندازی دستگاه + دستگاهتان را بازراه‌اندازی کنید تا پرونده های مورد نیاز در مکان باید قرار گیرند. + اوه انتظار این را نداشتیم ظاهرا مشکلی پیش آمده است.\nبرای کمک به حل مشکل لاگ برنامه را برای سازنده ارسال کنید. - Logs + گزارش‌ها آیکونیفای آیکون‌ها @@ -41,20 +41,20 @@ تغییر ظاهر کلید‌های نوار‌ابزار نوتیفیکیشن‌ها تغییر ظاهر نوتیفیکیشن‌ها - Progress Bar - Use different progress style - Switch - Customize switch appearance - Toast Frame + نوار پیشرفت + بهره‌وری از سبک متفاوت پیشرفت + کلید + شخصی‌سازی کلید + Change toast notification style - Icon Shape - Change system icon shapes + حالت نماد + تغییر شکل نماد های سامانه برنامه آیکونیفای آپدیت شد! برای استفاده از گزینه‌های جدید اضافه شده به برنامه ابتدا دستگاه خود را ریستارت کنید. - Design It Your Way - Unleash Your Imagination, Make It Yours - Hide + هر طور میخوای طراحیش کن + تخیل تان را رها کنید، آن را از آن خود کنید + پنهان کردن انتخاب رنگبندی تغییر رنگبندی بخش‌های مختلف @@ -64,10 +64,10 @@ تغییر تعداد ردیف و ستون در نوارابزار آیکون و متن گزینه‌های نوار‌ابزار تغییر تنظیمات مربوط به آیکون‌ها و متن - QS Tile Size - Change height of QS panel tile - QS Panel Margin - Modify quick settings margins + اندازه کاشی تنظیمات سریع + تنظیم ارتفاع کاشی تنظیمات سریع + حاشیه تنظیمات سریع + تنظیم حاشیه تنظیمات سریع نوار اعلان تغییر ظاهر نوار اعلان نوار ناوبری @@ -83,58 +83,58 @@ موارد بیشتر تنظیمات و گزینه‌های اضافه - General - Language - App Icon - Default Icon - Themed Icon - Retro Icon - App Theme - Light Theme - Dark Theme - Follow System - Update - Check For Update - Current version: %s - Auto Update - Check for new versions in background. - Check Over WiFi Only - Check for updates over wifi only. + عمومی + زبان + نماد برنامه + نماد پیشفرض + نماد پویا + نماد رترو + پوسته برنامه + پوسته روشن + پوسته تیره + پیروی از سیستم + به‌روزرسانی + بررسی برای بروزرسانی + نسخه کنونی: %s + به‌روزرسانی خودکار + بررسی برای نسخه جدید در پس‌زمینه. + تنها با وای‌فای بررسی کن + به‌روزرسانی ها را تنها با وای‌فای بررسی کن. Xposed - Show Warning - Show warning on how to re-optimize module in Xposed Menu. - Mod Applying Method - Automatically restart SystemUI - Automatically force reload UI - Notify for manual SystemUI restart - SystemUI restart required - Miscellaneous - Restart SystemUI After Boot - Some options like blur intensity doesn\'t take effect until systemui is restarted - Show Home Page Card - Show a beautiful card on the home page. - Clear App Cache - Clear caches generated due to the usage of custom fonts, images, or gifs. + نمایش هشدارها + نمایش هشدار در مورد نحوه باز-بهینه‌سازی ماژول در منوی Xposed. + روش به‌کارگیری مود + بازراه‌اندازی خودکار رابط کاربری + اجبار خودکارخودکار به بازراه‌اندازی رابط کاربری + آگاه‌سازی برای بازراه‌اندازی دستی رابط کاربری + رابط کاربری نیازمندِ راه‌اندازی مجدد است + متفرقه + بازراه‌اندازی خودکار رابط کاربری پس از راه‌اندازی + برخی از گزینه‌ها مانند شدت تاری تا زمانی که رابط کاربری بازراه‌اندازی نشود، به کار گرفته نمیشوند + نمایش برگه خانه + نمایش یک برگه زیبا در بخش خانه برنامه. + پاک‌سازی حافظه پنهان برنامه + پاک کردن حافظه پنهان ایجاد شده به دلیل استفاده از فونت های سفارشی، تصاویر یا گیف ها. گزینه‌های آزمایشی - Try out experimental functionalities. + عملکرد های آزمایشی را امتحان کنید. غیرفعال کردن همه چیز تمام مواردی که توسط آیکونفای تغییر پیدا کرده به حالت اولیه باز می‌گردد. - About - Github Repository - Telegram Group - Credits - Thanking those who made this possible. + درباره + منبع GitHub + گروه تلگرام + دست‌اندرکاران + قدردانی از کسانی که این امکان را فراهم کردند. رنگی کردن آیکون باتری تغییر رنگ آیکون باتری - Media Icons - Change media player icons - Settings Icons - Change settings icon pack - Icon Pack Styles - Dual tone linear icon pack - Gradient shaded filled icon pack - Thick linear icon pack + نماد های رسانه + تغییر نماد های رسانه + نماد های تنظیمات + تنظیم بسته نماد های تنظیمات + چگونگی بسته های نماد + بسته نماد خطی دو تُن + بسته نماد شیب گونه + بسته نماد خطی ضخیم Dual tone filled icon pack Acherus sub icon pack Thin line icon pack @@ -155,8 +155,8 @@ تغییر رنگ نمایشگر میزان باتری Supported Music Player Not Found - Android 13 Default Player - Application not found! + پخش کننده پیشفرض اندروید ۱۳ + برنامه یافت نشد! Aurora Gradicon Plumpy @@ -192,22 +192,22 @@ Notification Styles پیش‌نمایش نوتیفیکشن.\nبرای اعمال این گزینه آن را لمس کنید. - Click to enable or disable + برای روشن و خاموش شدن ضربه بزنید - None + هیچکدام Pebble Hexagon Samsung Scroll Square Teardrop - Rounded\nRectangle + گرد\nمستطیل iOS - Cloudy - Cylinder - Flower - Heart - Leaf + ابری + سیلندر + گل + قلب + برگ Streteched Tapered\nRectangle Vessel @@ -228,11 +228,11 @@ فعال‌سازی تم سیاه برای تمام پس‌زمینه‌ها Pitch Black (Amoled) Enable pitch black amoled theme - Misc. + سایر. مینیمال کردن ظاهر نوارابزار حذف سایه بخش بالایی نوارابزار - Disable System Monet - Helps to retain custom colors\nSystemUI restart required + ناتوان کردن مونت سامانه + کمک می کند به عملکرد رنگ های سفارشی\nSystemUI راه‌اندازی مجدد مورد نیاز است رنگ اولیه انتخاب رنگ آکسان اولیه @@ -241,7 +241,7 @@ سایه‌های دقیق در رنگ‌ها برای پررنگ تر شدن رنگ‌ها این گزینه را غیرفعال کنید - Monet Style + چگونگی مونت Neutral Monochrome Tonal Spot @@ -403,7 +403,7 @@ Personalize with themes تنظیمات سریع ترفندهای مربوط به نوار ابزار - Battery Style + سبک باتری Customize battery icon view عکس هدر نوارابزار اضافه کردن تصویر سفارشی به هدر نوار‌ابزار @@ -465,11 +465,11 @@ Hide Footer Buttons Hide footer buttons shown under notification stack - Battery Style - Battery Width - Battery Height - Battery Margin - Hide Battery + سبک باتری + طول باتری + عرض باتری + حاشیه باتری + پنهان کردن باتری Keep only charging icon and percentage Custom Charging Icon Change charging icon to custom icon @@ -497,10 +497,10 @@ Change color of powersave indicator Custom Dimensions Set custom dimensions for battery icon - Battery Margin Left - Battery Margin Right - Battery Margin Top - Battery Margin Bottom + حاشیه چپ باتری + حاشیه راست باتری + حاشیه بالا باتری + حاشیه پایین باتری Reverse Layout Show percentage on the opposite side Rotate Layout @@ -509,7 +509,7 @@ Hide battery percentage text Inside Percentage Move percentage to inside battery icon - Default + پیشفرض Landscape R Default Landscape L Default Landscape R Custom @@ -548,10 +548,10 @@ Dotted Circle Battery Filled Circle Battery - Volume Percentage - Show percentage above volume slider - Safety Warning - Show warning on high volume + درصد صدا + نمایش درصد باتری بالای نوار تنظیم صدا + هشدار ایمنی + هشدار ایمنی در حجم صدای بالا انتخاب فایل تصویر هدر اصافه کردن تصویر به هدر نوارابزار\nفایل تصویر را از بخش فایل‌های اخیر انتخاب نکنید @@ -603,10 +603,10 @@ سفید کردن فونت ساعت فونت ساعت همیشه سفید رنگ باشد Select - Battery Charging - Battery Discharging - Battery Full - Battery Level + باتری در حال شارژ + باتری خارج از شارژ + باتری کامل + سطح باتری Welcome back! User @@ -687,7 +687,7 @@ Special Thanks For Plumpy & Fluency icons. For in-app icon set. - For helping me with Shell Script. + برای کمک به من با اسکریپت شِل. For helping me with RRO. For helping me with Xposed. For testing the app. @@ -911,7 +911,7 @@ Use light accent color in light mode Disable Animation Disable scrolling animation of Iconify - Custom Battery + باتری سفارشی Enable custom battery style Toast Message Made with \u2764\uFE0E by DrDisagree From 83657febae1c081eb69f4dd63c2f27feca896847 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Sun, 16 Jun 2024 15:36:17 +0200 Subject: [PATCH 018/369] Added QS Clock --- .../drawable/container_background_accent.xml | 6 +++ .../drawable/time_container_background.xml | 6 +++ .../res/layout/preview_header_clock_9.xml | 46 +++++++++++++++++++ 3 files changed, 58 insertions(+) create mode 100644 app/src/main/res/drawable/container_background_accent.xml create mode 100644 app/src/main/res/drawable/time_container_background.xml create mode 100644 app/src/main/res/layout/preview_header_clock_9.xml diff --git a/app/src/main/res/drawable/container_background_accent.xml b/app/src/main/res/drawable/container_background_accent.xml new file mode 100644 index 000000000..d9710f34d --- /dev/null +++ b/app/src/main/res/drawable/container_background_accent.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/time_container_background.xml b/app/src/main/res/drawable/time_container_background.xml new file mode 100644 index 000000000..041dafe31 --- /dev/null +++ b/app/src/main/res/drawable/time_container_background.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/res/layout/preview_header_clock_9.xml b/app/src/main/res/layout/preview_header_clock_9.xml new file mode 100644 index 000000000..b9e3b53d1 --- /dev/null +++ b/app/src/main/res/layout/preview_header_clock_9.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + \ No newline at end of file From 39ec5a911501cad0fc60650502a7d4ff0d05edad Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Sun, 16 Jun 2024 15:51:02 +0200 Subject: [PATCH 019/369] QS Clock with gradient --- .../iconify/xposed/modules/HeaderClock.kt | 1 + .../xposed/modules/utils/ViewHelper.kt | 33 +++++++++++++++++++ .../drawable/container_background_accent.xml | 14 +++++--- .../res/layout/preview_header_clock_9.xml | 2 +- 4 files changed, 44 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/HeaderClock.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/HeaderClock.kt index b4e846d05..2fa451214 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/HeaderClock.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/HeaderClock.kt @@ -542,6 +542,7 @@ class HeaderClock(context: Context?) : ModPack(context!!) { findViewWithTagAndChangeColor(clockView, "accent3", accent3) findViewWithTagAndChangeColor(clockView, "text1", textPrimary) findViewWithTagAndChangeColor(clockView, "text2", textInverse) + findViewWithTagAndChangeColor(clockView, "gradient", accent1, accent2, 26); if (typeface != null) { applyFontRecursively(clockView, typeface) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/ViewHelper.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/ViewHelper.kt index 7d67371b9..80d6de7c8 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/ViewHelper.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/ViewHelper.kt @@ -6,6 +6,7 @@ import android.graphics.PorterDuff import android.graphics.PorterDuffColorFilter import android.graphics.Typeface import android.graphics.drawable.Drawable +import android.graphics.drawable.GradientDrawable import android.util.TypedValue import android.view.View import android.view.ViewGroup @@ -112,12 +113,40 @@ object ViewHelper { } } + fun findViewWithTagAndChangeColor(view: View?, tagContains: String, color1: Int, color2: Int, cornerRadius: Int) { + if (view == null) return + + val drawable = GradientDrawable() + drawable.colors = intArrayOf(color1, color2) + drawable.cornerRadius = view.context.toPx(cornerRadius).toFloat() + + if (view is ViewGroup) { + for (i in 0 until view.childCount) { + val child: View = view.getChildAt(i) + checkTagAndChangeBackgroundColor(child, tagContains, drawable) + + if (child is ViewGroup) { + checkTagAndChangeBackgroundColor(child, tagContains, drawable) + } + } + } else { + checkTagAndChangeBackgroundColor(view, tagContains, drawable) + } + + } + private fun checkTagAndChangeColor(view: View, tag: String, color: Int) { if (view.tag?.toString()?.let { isTagMatch(tag, it) } == true) { changeViewColor(view, color) } } + private fun checkTagAndChangeBackgroundColor(view: View, tag: String, bkg: Drawable) { + if (view.tag?.toString()?.let { isTagMatch(tag, it) } == true) { + changeViewBackgroundColor(view, bkg) + } + } + private fun changeViewColor(view: View, color: Int) { when (view) { is TextView -> { @@ -161,6 +190,10 @@ object ViewHelper { } } + private fun changeViewBackgroundColor(view: View, bkg: Drawable) { + view.background = bkg + } + fun applyFontRecursively(view: View?, typeface: Typeface?) { if (view == null) return diff --git a/app/src/main/res/drawable/container_background_accent.xml b/app/src/main/res/drawable/container_background_accent.xml index d9710f34d..4b49faa7a 100644 --- a/app/src/main/res/drawable/container_background_accent.xml +++ b/app/src/main/res/drawable/container_background_accent.xml @@ -1,6 +1,10 @@ - - - - \ No newline at end of file + + + + + diff --git a/app/src/main/res/layout/preview_header_clock_9.xml b/app/src/main/res/layout/preview_header_clock_9.xml index b9e3b53d1..f3f917ade 100644 --- a/app/src/main/res/layout/preview_header_clock_9.xml +++ b/app/src/main/res/layout/preview_header_clock_9.xml @@ -8,7 +8,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/container_background_accent" - android:tag="accent1"> + android:tag="gradient"> Date: Sun, 23 Jun 2024 00:14:17 +0000 Subject: [PATCH 020/369] New Crowdin translations by GitHub Action --- app/src/main/res/values-es-rES/strings.xml | 532 ++++++++++----------- 1 file changed, 266 insertions(+), 266 deletions(-) diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index 1458fa8ec..d87cd7b51 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -4,7 +4,7 @@ Iniciando la configuración Paso - Step %1$d/%2$d + Paso %1$d/%2$d Creando estructura del módulo Extrayendo archivos necesarios Creando APKs de superposición @@ -12,18 +12,18 @@ Firmando APKs de superposición Limpiando directorios ¿Cansado de la IU de Stock? - Let\'s customize everything to our likings. - Ditch the stock UI monotony – personalize every tech detail to match your style and preferences. + Personalicemos todo a nuestros gustos. + Abandona la monotonía de la IU de stock - personaliza cada detalle tecnológico para coincidir con tu estilo y preferencias. ¿Mi Dispositivo es Compatible? - Iconify supports all Pixel and AOSP ROMs. - Compatible with all Pixel and AOSP-based ROMs, ensuring broad support for Android devices. + Iconify es compatible con todas las ROMs de Pixel y AOSP. + Compatible con todas las ROMs basadas en Pixel y OOS, garantizando un amplio soporte para dispositivos Android. ¿Empezamos Ahora? - It is time for iconify to do some internal work. - Starting internal tasks, marking the initiation of essential work. Ready to begin? + Es momento de que Iconify haga algo de trabajo interno. + Iniciando tareas internas, marcando el inicio del trabajo escencial. ¿Listo para comenzar? Se Requiere Permiso de Almacenamiento Se requiere permiso de almacenamiento para generar los archivos necesarios. - Could Not Find Compatible Root Method - Use any popular root solutions to proceed. + No se pudo encontrar un método de root compatible + Usa cualquier solución root popular para continuar. No se Puede Acceder al Root ¡Parece que tu dispositivo no tiene acceso root! Se Requiere Reinicio del Dispositivo @@ -52,9 +52,9 @@ ¡Iconify se ha actualizado! Reinicia tu teléfono para utilizar las últimas funciones y opciones añadidas. - Design It Your Way - Unleash Your Imagination, Make It Yours - Hide + Diseñalo a tu manera + Desata tu imaginación, hazlo tuyo + Ocultar Motor de color Ten el control de los colores @@ -93,37 +93,37 @@ Tema Claro Tema Oscuro Seguir el Sistema - Update - Check For Update - Current version: %s - Auto Update - Check for new versions in background. - Check Over WiFi Only - Check for updates over wifi only. + Actualizar + Buscar actualizaciones + Versión actual: %s + Actualizaciones automáticas + Buscar nuevas versiones en segundo plano. + Buscar solo con WiFi + Buscar actualizaciones solo con WiFi. Xposed Mostrar Advertencia Mostrar advertencia sobre cómo reoptimizar el módulo en el menú de Xposed - Mod Applying Method - Automatically restart SystemUI - Automatically force reload UI - Notify for manual SystemUI restart - SystemUI restart required - Miscellaneous + Método de aplicación de mods + Reiniciar automáticamente la IU del sistema + Forzar automáticamente el reinicio de la IU + Notificar el reinicio manual de la UI del sistema + Se requiere un reinicio de la UI del sistema + Misceláneo Reiniciar SystemUI después del Arranque Algunas opciones como la intensidad del desenfoque no surtirán efecto hasta que se reinicie SystemUI - Show Home Page Card - Show a beautiful card on the home page. + Mostrar tarjeta de página de inicio + Mostrar una hermosa tarjeta en la página de inicio. Borrar Caché de Aplicación Borrar las cachés generadas por el uso de fuentes, imágenes o GIFs personalizados. Experimental - Try out experimental functionalities. + Probar funcionalidades experimentales. Deshabilitar todo Deshabilita todas las superposiciones, colores y cambios variados de Iconify. - About - Github Repository - Telegram Group - Credits - Thanking those who made this possible. + Acerca de + Repositorio de GitHub + Grupo de Telegram + Créditos + Gracias a quienes hicieron esto posible. Batería coloreada Cambia el color del icono de batería @@ -131,7 +131,7 @@ Cambia los iconos del reproductor de medios Iconos de Ajustes Cambia el paquete de iconos para Ajustes - Icon Pack Styles + Estilos de paquete de iconos Paquete de iconos lineales de dos tonos Paquete de iconos rellenos con sombreado degradado Paquete de iconos lineales gruesos @@ -168,7 +168,7 @@ Neumorph Forma Círculo - Squircle + Cuadrado redondeado Cuadrado Tamaño de Icono 0.5x @@ -183,16 +183,16 @@ Paquete de iconos con contorno multicolor Variante Pixel - For roms with black QS panel + Para ROMs con el panel de AR negro - Brightness Bar Styles + Estilos de la barra de brillo - QS Panel Tile Styles + Estilos de mosaico del panel de AR - Notification Styles + Estilos de notificaciones Vista previa de notificación.\nHaz clic para aplicar este estilo. - Click to enable or disable + Haz clic para habilitar o deshabilitar Ninguno Piedra @@ -212,21 +212,21 @@ Cuadrado cortado Vaso Rohie Meow - Force Round + Forzar redondeo Colores básicos Cambia el color primario y el secundado Motor de Monet Reemplazar la paleta de colores de Monet - Stock Colors + Colores de stock Acento Monet Usar Monet del sistema como color acento Gradiente Monet Usar Monet del sistema como color gradiente - Dark Theme + Tema oscuro Pitch Black (Oscuro) Habilita el tema oscuro pitch black - Pitch Black (Amoled) + Negro puro (Amoled) Habilita el tema amoled de pitch black Misc. Panel Ajustes Rápidos minimalista @@ -271,7 +271,7 @@ Filas del panel de Ajustes Rápidos Columnas del panel de Ajustes Rápidos - Size and Position + Tamaño y posición Ocultar etiqueta Quita las etiquetas del panel de Ajustes Rápidos Tamaño del texto @@ -290,8 +290,8 @@ Título sistema, subtitulo acento Arreglar color de texto Usar si los de arriba no funcionan - Follow Accent - Title accent, subtitle accent + Seguir acento + Acento del título, acento del subtítulo Vertical Horizontal @@ -301,10 +301,10 @@ Margen superior del panel de Ajustes Rápidos minimizado Margen superior del panel de Ajustes Rápidos - Spacing + Espaciado Relleno izquierdo Relleno derecho - Height + Altura Color Tinte de color Tintar iconos y textos de la barra de estado @@ -312,7 +312,7 @@ Tinte Monet/Acento Tinte Personalizado (Selector de Color) - Display Mode + Modo de visualización Pantalla completa Ocultar píxel de navegación y espaciado del teclado Modo inmersivo @@ -321,41 +321,41 @@ Espaciado de teclado más pequeño Modo inmersivo v3 Espaciado de teclado más pequeño - Gcam Lag Fix - Fix lag in gcam with gesture navigation - Buttons + Corregir retraso de Gcam + Corregir retraso de Gcam con navegación de gestos + Botones Ocultar botones del teclado Ocultar botones de retroceso/cambio de teclado - Gesture + Gesto Sensibilidad reducida Reducir la sensibilidad de los gestos Deshabilitar gesto izquierdo Deshabilitar gesto de retroceso del lado izquierdo Deshabilitar gesto derecho Deshabilitar gesto de retroceso del lado derecho - Pill Navigation + Navegación de píldora Ocultar botón Ocultar botón de navegación Botón de Monet Vincular el color de acento al botón - Pill Appearance + Apariencia de píldora Ancho de la Píldora Grosor de la Píldora Espacio Inferior de la Píldora - Volume Slider Track - Thin - Thick - None + Control del deslizador del volumen + Delgado + Grueso + Ninguno Fondo delgado - Make track of volume slider thin + Hacer control del deslizador del volumen delgado Fondo grueso - Make track of volume slider thick + Hacer control del deslizador del volumen grueso Sin fondo - Remove track of volume slider - Custom Magisk Module + Eliminar control del deslizador del volumen + Módulo de Magisk personalizado Estilo de volumen - Creates a magisk flashable module for this style + Crea un módulo flashable de Magisk para este estilo Degradado Doble capa Capa sombreada @@ -365,42 +365,42 @@ Crear módulo Módulo creado con éxito ¡Lee con atención! - This option will create a magisk module inside Download folder in your Internal Storage. Flash the module named IconifyCompanion.zip in Magisk. Always uninstall previous Iconify Companion module (if installed) and reboot before flashing new one.\n\nNote:\n• Uninstall the module before updating rom.\n• Recreate the module if you change or update rom.\n• Do not flash a module which wasn\'t created based on your rom. + Esta opción creará un módulo de Magisk en la carpeta de Descargas de tu Almacenamiento interno. Flashea el módulo llamado IconifyCompanion.zip en Magisk. Siempre desinstala el módulo Iconify Companion anterior (si está instalado) y reinicia antes de flashear el nuevo.\n\nNota:\n• Desinstala el módulo antes de actualizar la ROM.\n• Vuelve a crear el módulo si cambias o actualizas la ROM.\n• No flashees un módulo que no haya sido creado en base a tu ROM. Vista previa del Reproductor de medios Título de la Música Nombre del Artista Altavoz del teléfono - Background Color + Color de fondo Fondo de acento - Make background follow accent + Hacer que el fondo siga el acento Fondo del sistema - Make background follow system + Hacer que el fondo siga el sistema Fondo Pitch Black - Make background pitch black + Hacer que el fondo sea negro puro - Tablet Mode + Modo de Tablet Pantalla de Tablet en Horizontal - Also known as Better QS + También conocido como Better QS Eliminador de Barra de Notch Eliminar el espacio vacío de la barra de notch Encabezado de Tablet Habilitar encabezado de sombra de gran pantalla - Privacy Chip + Chip de privacidad Chip de Privacidad de Acento Hace que el chip de privacidad tenga el color de acento - Media Player - Disable Progress Wave - Disable progress bar wave animation + Reproductor multimedia + Deshabilitar onda de progreso + Deshabilitar animación de onda de barra de progreso Antes de habilitar Iconify desde los módulos de LSPosed, mantén presionado Iconify y haz clic en Reoptimizar. Luego habilita Iconify y reinicia tu SystemUI. Esto es necesario para una experiencia más fluida. - You are currently in Xposed Only mode. This requires iconify to be enabled in LSPosed app. Also make sure that Iconify module is shown in Magisk manager. To get access to all features, clear data of iconify app and go through the installation process! - Module Not Activated - System service not running + Actualmente solo estás en el modo Xposed. Esto requiere que Iconify esté habilitado en la aplicación LSPosed. También asegúrate de que el módulo Iconify se muestre en el administrador de Magisk. Para acceder a todas las funciones, ¡limpia los datos de la aplicación Iconify y sigue el proceso de instalación! + Módulo deshabilitado + El servicio del sistema no se está ejecutando Transparencia & Desenfoque Habilitar la transparencia y desenfoque en el panel - Themes - Personalize with themes + Temas + Personalizar con temas Ajustes Rápidos Retoques relacionados con el panel de ajustes rápidos Estilo de batería @@ -411,160 +411,160 @@ Añade un reloj personalizado en el panel Reloj de la pantalla de bloqueo Añade un reloj personalizado en la pantalla de bloqueo - Depth Wallpaper - Show iOS like depth wallpaper + Fondo de pantalla con profundidad + Mostrar fondo de pantalla con profundidad parecido a iOS Reloj con fondo Añade un fondo de color detrás del reloj Otros Retoques variados de Xposed - Transparency + Transparencia Panel Ajustes Rápidos transparente Hacer transparente el fondo del panel de Ajustes Rápidos Transparencia alfa Solo Sombra de Notificaciones Transparente Hace que solo la sombra de las notificaciones sea transparente - Dim Lockscreen Wallpaper - Suitable for light-colored wallpapers - Blur + Atenuar fondo de pantalla de bloqueo + Adecuado para fondos de pantalla de color claro + Desenfoque Desenfoque de nivel de ventana Requiere reinicio para funcionar - Aggressive Blur Enabler - Might bootloop in some roms + Habilitador de enfoque agresivo + Puede que ocasione un bucle de arranque en algunas ROMs Intensidad del desenfoque - For Pixel Roms + Para ROMs de Pixel Tema Claro Tema de Ajustes Rápidos claro en modo claro\nDebe usar Forma de Ajustes Rápidos personalizada Tono Dual Usar un color diferente para el encabezado - For Custom Roms + Para ROMs personalizadas Tema Negro Pixel Tema negro de Ajustes Rápidos en modo claro\nDebes usar la forma de Ajustes Rápidos de Pixel\nCambia al tema oscuro para arreglar el color del texto - Translucent Theme + Tema translúcido Tema Fluid QS Tema Ajustes Rápidos translúcido de dos tonos\nCambia el tema para arreglar el color\nNo uses formas personalizadas Transparencia de Notificaciones Transparencia de notificaciones para Fluid QS\nNo uses un estilo de notificación personalizado Transparencia del Menú de Energía Transparencia del menú de energía para Fluid QS\nNo uses un estilo de notificación personalizado - Others - Fix Notification Color - Fix custom notification style on android 14 + Otros + Corregir color de las notificaciones + Corregir estilo de notificaciones personalizado en Android 14 - QS Tile + Mosaico de AR Botones de Ajustes Rápidos verticales Mostrar etiqueta debajo del icono de Ajustes Rápidos Ocultar etiqueta en botones de Ajustes Rápidos Usar solo con botones verticales - Text Size Scaling - QS Margin - QS Elements - Hide Silent Text - Hide silent text shown as header of silent notifications (Requires SystemUI restart) - Hide Footer Buttons - Hide footer buttons shown under notification stack + Escala del tamaño del texto + Margen de AR + Elementos de AR + Ocultar texto silencioso + Ocultar el texto silencioso mostrado como el encabezado de las notificaciones silenciosas (requiere un reinicio de la IU del sistema) + Ocultar botones del pie de página + Ocultar los botones de pie de página mostrados en la lista de notificaciones Estilo de Batería Ancho de Batería Altura de Batería Margen de Batería - Hide Battery - Keep only charging icon and percentage - Custom Charging Icon - Change charging icon to custom icon - Charging Icon Style - Charging Icon Margin Left - Charging Icon Margin Right - Charging Icon Size - Perimeter Alpha - Make battery perimeter semi transparent - Fill Alpha - Make battery fill semi transparent - Rainbow Color - Show different color based on battery level - Blend Color - Blend battery color with custom color - Fill Color - Fill battery with custom color - Fill Gradient Color - Fill battery with gradient color - Charging Fill Color - Change color of charging battery - Powersave Fill Color - Change color of powersave battery - Powersave Indicator Color - Change color of powersave indicator - Custom Dimensions - Set custom dimensions for battery icon - Battery Margin Left - Battery Margin Right - Battery Margin Top - Battery Margin Bottom - Reverse Layout - Show percentage on the opposite side - Rotate Layout - Rotate battery layout 180 degrees - Hide Percentage - Hide battery percentage text - Inside Percentage - Move percentage to inside battery icon - Default - Landscape R Default - Landscape L Default - Landscape R Custom - Landscape L Custom - Portrait Capsule - Portrait Lorn - Portrait Mx - Portrait Airoo - Landscape R Style A - Landscape L Style A - Landscape R Style B - Landscape L Style B - Landscape iOS 15 - Landscape iOS 16 - Portrait Origami - Landscape Smiley - Landscape MIUI Pill - Landscape L ColorOS - Landscape R ColorOS - Landscape Battery A - Landscape Battery B - Landscape Battery C - Landscape Battery D - Landscape Battery E - Landscape Battery F - Landscape Battery G - Landscape Battery H - Landscape Battery I - Landscape Battery J - Landscape Battery K - Landscape Battery L - Landscape Battery M - Landscape Battery N - Landscape Battery O - Circle Battery - Dotted Circle Battery - Filled Circle Battery + Ocultar batería + Mantener solo el ícono y porcentaje de carga + Icono de carga personalizado + Cambiar icono de carga a icono personalizado + Estilo del icono de carga + Izquierda del margen del icono de carga + Derecha del margen del icono de carga + Tamaño del ícono de carga + Perímetro alfa + Hacer el perímetro de la batería semitransparente + Relleno alfa + Hacer el relleno de la batería semitransparente + Color arcoíris + Mostrar colores diferentes en base al nivel de batería + Color de mezcla + Mezclar color de batería con color personalizado + Color del relleno + Rellenar batería con color personalizado + Rellenar color de degradado + Rellenar batería con color del degradado + Color de relleno de carga + Cambiar el color de la batería de carga + Color de relleno de ahorro de energía + Cambiar el color de la batería de ahorro de energía + Color del indicador de ahorro de batería + Cambiar el color del indicador de ahorro de batería + Dimensiones personalizadas + Establecer dimensiones personalizadas para el icono de la batería + Margen izquierdo de la batería + Margen derecho de la batería + Margen superior de la batería + Margen inferior de la batería + Invertir diseño + Mostrar porcentaje en el lado opuesto + Rotar diseño + Rotar diseño de la batería 180 grados + Ocultar porcentaje + Ocultar texto de porcentaje de batería + Porcentaje interior + Mover porcentaje a dentro del icono de la batería + Predeterminado + Horizontal D predeterminado + Horizontal I predeterminado + Horizontal D personalizado + Horizontal I personalizado + Cápsula vertical + Lorn vertical + Mx vertical + Airoo vertical + Estilo horizontal D A + Estilo horizontal I A + Estilo horizontal D B + Estilo horizontal I B + iOS 15 horizontal + iOS 16 horizontal + Origami vertical + Smiley horizontal + Píldora MIUI horizontal + ColorOS I horizontal + ColorOS D horizontal + Batería horizontal A + Batería horizontal B + Batería horizontal C + Batería horizontal D + Batería horizontal E + Batería horizontal F + Batería horizontal G + Batería horizontal H + Batería horizontal I + Batería horizontal J + Batería horizontal K + Batería horizontal L + Batería horizontal M + Batería horizontal N + Batería horizontal O + Batería circular + Batería circular punteada + Batería circular rellena - Volume Percentage - Show percentage above volume slider - Safety Warning - Show warning on high volume + Porcentaje de volumen + Mostrar porcentaje sobre el deslizador del volumen + Advertencia de seguridad + Mostrar advertencia en volumen alto Seleccionar imagen de encabezado Añadir imagen de encabezado en el panel de Ajustes Rápidos\nNo selecciones archivos de \"Recientes\" Seleccionar imagen Altura de la imagen Alfa de la imagen - Bottom Fade Amount + Cantidad de desvanecimiento inferior Ajustar al zoom La imagen se estira para ajustarse por defecto Ocultar en Modo Horizontal Ocultar la imagen en modo horizontal - Alpha Gradient - Add faded effect to the header image + Gradiente alfa + Añadir efecto desvanecido a la imagen del encabezado Reloj de encabezado personalizado Agregar un reloj personalizado en el panel de Ajustes Rápidos @@ -602,30 +602,30 @@ Margen inferior del reloj Texto blanco Forzar todos los colores en blanco - Select - Battery Charging - Battery Discharging - Battery Full - Battery Level - Welcome back! - User + Seleccionar + Batería cargándose + Batería descargándose + Batería llena + Nivel de batería + ¡Te damos la bienvenida de vuelta! + Usuario - Enable Depth Wallpaper - Show iOS like depth wallpaper\nMust use custom lockscreen clock - Fade in AOD - Animate wallpaper and fade away in AOD - Foreground Image - Foreground image for depth wallpaper - Foreground Image Alpha - Background Image - Background image for depth wallpaper - This feature is currently in beta stage. So bugs are expected.\n\nKnown Bug(s):\n• Tapping on lockscreen makes the wallpaper jump. - Parallax Effect - Move background and foreground layers at different speeds - Foreground Sensitivity - Background Sensitivity + Habilitar fondo de pantalla con profundidad + Mostrar fondo de pantalla parecido a iOS\nDebes utilizar reloj personalizado en pantalla de bloqueo + Desvanecer en AOD + Anima el fondo de pantalla y desvanecer en AOD + Imagen del primer plano + Imagen del primer plano para fondo de pantalla con profundidad + Alfa de la imagen del primer plano + Imagen del fondo + Imagen del fondo para fondo de pantalla con profundidad + Esta característica se encuentra actualmente en fase beta, así que se esperan errores.\n\nBug(s) conocidos:\n• Pulsar en la pantalla de bloqueo hace que el fondo de pantalla salte. + Efecto de paralaje + Mover capas de fondo y primer plano a diferentes velocidades + Sensibilidad del primer plano + Sensibilidad del fondo - Status Bar + Barra de estado Ficha de reloj de la barra de estado Mostrar ficha detrás del reloj de la barra de estado Color del Reloj de la Barra de Estado @@ -634,7 +634,7 @@ Color Personalizado Selector de Color del Reloj Establecer el color del texto del reloj de la barra de estado - Status Icons + Iconos de estado Estilo de la ficha Ficha de los iconos de estado Mostrar ficha detrás de los iconos de estado @@ -642,20 +642,20 @@ Margen Superior Margen Lateral - QS Header + Encabezado de AR Ocultar grupo del operador Ocultar el grupo del operador del panel de Ajustes Rápidos Ocultar iconos de estado Quitar la hora, la fecha y los iconos de la batería - Lock Screen + Pantalla de bloqueo Ocultar Transportista en Pantalla de Bloqueo Ocultar el nombre del transportista en la pantalla de bloqueo Ocultar Barra de Estado en Pantalla de Bloqueo Ocultar la barra de estado en la pantalla de bloqueo - Hide LS Lock Icon - Hide lock icon view on lockscreen + Ocultar icono de bloqueo de Pantalla de Bloqueo + Ocultar icono de bloqueo en pantalla de bloqueo Iconos de Estado Fijos - Set status icons in fixed position\nMight be buggy on some rom + Establece los iconos de estado en una posición fija\nPuede presentar errores en algunas ROMs Registro de cambios ¡No se pudo conectar al servidor!\nPodría haber un problema con tu conexión a Internet o el servidor podría estar caído en este momento. Por favor, inténtalo de nuevo más tarde. @@ -672,7 +672,7 @@ Última versión: No se pudo verificar la actualización. No disponible - Schedule + Horario Programar actualizaciones Cuándo buscar actualizaciones Cada 6 horas @@ -680,59 +680,59 @@ Cada día Cada semana Nunca - Current Version: %s - Latest Version: %s + Versión actual: %s + Última versión: %s Creditos - Special Thanks + Agradecimientos especiales Por los iconos Plumpy & Fluency. Por los iconos de la aplicación. Por ayudarme con el script de Shell. Por ayudarme con RRO. - For helping me with Xposed. + Por ayudarme con Xposed. Por probar la aplicación. Por el permiso para usar un mejor QS. - For android executable binaries. + Por los ejecutables binarios de Android. Colaboradores Por contribuir en GitHub. Por ayudarme en Telegram. Traductores - Afrikaans translation. + Traducción al afrikáans. Traducción al árabe. - Catalan translation. - Chinese translation. - Chinese translation. - Czech translation. - Danish translation. - Dutch translation. - Finnish translation. + Traducción al catalán. + Traducción al chino. + Traducción al chino. + Traducción al checo. + Traducción al danés. + Traducción al holandés. + Traducción al finlandés. Traducción al francés. - German translation. - Greek translation. - Hungarian translation. + Traducción al alemán. + Traducción al griego. + Traducción al húngaro. Traducción al indonesio. - Italian translation. - Japanese translation. - Korean translation. - Norwegian translation. + Traducción al italiano. + Traducción al japonés. + Traducción al coreano. + Traducción al noruego. Traducción al persa. - Polish translation. + Traducción al polaco. Traducción al portugués. - Portuguese (Brazilian) translation. - Romanian translation. + Traducción al portugués (brasileño). + Traducción al rumano. Traducción al ruso. - Serbian (Cyrillic) translation. - Spanish translation. - Swedish translation. + Traducción al serbio (cirílico). + Traducción al español. + Traducción al sueco. Traducción al turco. - Ukrainian translation. + Traducción al ucraniano. Traducción al vietnamita. Funciones experimentales - Overlap Header Image - Overlap header image on expanded QS - Unzoom Depth Wallpaper - Remove the zoom effect on depth wallpaper + Superponer imagen del encabezado + Superponer imagen de cabezera en AR expandidos + Deshacer zoom de fondo de pantalla con profundidad + Elimina el efecto de zoom del fondo de pantalla con profundidad Ocultar Icono de Datos Desactivados Ocultar el indicador de datos desactivados @@ -746,7 +746,7 @@ Importar configuración Reiniciar SystemUI ¿Estás seguro? - You will lose your current setup and settings. + Perderás tu configuración y ajustes actuales. Restablecer configuración Configuración importada con éxito @@ -814,21 +814,21 @@ Lorn utiliza el color de batería por defecto Plumpy utiliza el color de batería por defecto Selecciona primero un estilo - KernelSU is currently not supported - Only magisk is supported currently + KernelSU no está soportado actualmente + Solo Magisk está soportado actualmente Se requiere reinicio ¡No se encontró LSPosed! ¿Cómo sabías eso? ¿Por qué sigues haciendo eso? - You have restarted SystemUI too frequently. Please try again later. + Has reiniciado la IU del sistema con demasiada frecuencia. Por favor, inténtalo de nuevo más tarde. Abriendo la página \"Acceso a Todos los Archivos\" Caché de Iconify borrada Instalación omitida. Algunas funciones pueden no funcionar correctamente. Configuraciones importadas exitosamente Configuraciones exportadas exitosamente - Selected successfully - Unavailable - Use this feature from Xposed Menu + Selccionado con éxito + No disponible + Usar esta característica del menú de Xposed Actualización disponible Hay una nueva versión de Iconify disponible. @@ -844,7 +844,7 @@ Vista previa selector de color Selector de color - Pitch Black + Negro puro Oscuro Amoled Advertencia @@ -853,12 +853,12 @@ Iconos Iconos del Reproductor de medios Seleccionado: - Selected: %s - Selected: %1$s%2$s - Selected: %1$s%2$s %3$s + Seleccionado: %s + Seleccionado: %1$s%2$s + Seleccionado: %1$s%2$s %3$s (Predeterminado) - No Clock - Clock Style %d + Sin reloj + Estilo del reloj %d Por favor espera Reiniciando en 5 segundos Versión de Iconify @@ -878,7 +878,7 @@ Actualizaciones de la aplicación No - Understood + Entendido Menajes emergentes personalizados Habilitar mensajes emergentes con estilo personalizado Barra de progreso personalizada @@ -894,7 +894,7 @@ Margen Ajustes Rápidos personalizado Habilitar margen personalizado para el panel de Ajustes Rápidos Forzar habilitación de desenfoque - Force enable blur for unsupported roms + Forzar habilitación de desenfoque para ROMs no soportadas Selecciona imagen de encabezado Selecciona fuente del reloj Elige un estilo de tu preferencia @@ -921,7 +921,7 @@ Encendido Apagado ¡Reinicia tu dispositivo! - Tap on preview to select - Don\'t show again - To ensure proper functionality, enabling the Iconify module in LSPosed is mandatory for android 14 and above.\n\nAfter that, enable the fixes from: Tweaks > Xposed Menu > Themes > Others. + Pulsa en vista previa para seleccionar + No mostrar de nuevo + Para asegurar una funcionalidad adecuada, habilitar el módulo de Iconify en LSPosed es obligatorio para Android 14 o superior.\n\nDespués de eso, habilita las correcciones de: Ajustes > Menu de Xposed > Temas > Otros. From c7cb53923327ff839d96e9a155d144939a0cc9c6 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Sun, 23 Jun 2024 13:05:26 +0600 Subject: [PATCH 021/369] Notification Color Fix: Disable for android 14 QPR3 (closes #522) --- .../com/drdisagree/iconify/common/Dynamic.kt | 21 +++++++++++++++++++ .../overlay/manager/NotificationManager.kt | 11 ++++++++-- .../manager/NotificationPixelManager.kt | 11 ++++++++-- 3 files changed, 39 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/common/Dynamic.kt b/app/src/main/java/com/drdisagree/iconify/common/Dynamic.kt index b2d362115..1c1cef131 100644 --- a/app/src/main/java/com/drdisagree/iconify/common/Dynamic.kt +++ b/app/src/main/java/com/drdisagree/iconify/common/Dynamic.kt @@ -1,9 +1,13 @@ package com.drdisagree.iconify.common import android.os.Build +import android.util.Log import com.drdisagree.iconify.Iconify.Companion.appContext import com.topjohnwu.superuser.Shell import java.io.File +import java.text.SimpleDateFormat +import java.util.Calendar +import java.util.Locale object Dynamic { @@ -65,4 +69,21 @@ object Dynamic { // Device information @JvmField val isAtleastA14 = Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE + + fun isSecurityPatchBeforeJune2024(): Boolean { + val securityPatch = Build.VERSION.SECURITY_PATCH + val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.US) + + return try { + val securityPatchDate = dateFormat.parse(securityPatch) + + val june2024 = Calendar.getInstance() + june2024.set(2024, Calendar.JUNE, 1) + + (securityPatchDate != null && (securityPatchDate < june2024.time)) + } catch (e: Exception) { + Log.e("SECURITY_PATCH_CHECK", "Error parsing security patch date", e) + false + } + } } diff --git a/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/NotificationManager.kt b/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/NotificationManager.kt index c0a710f91..25c750a2d 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/NotificationManager.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/NotificationManager.kt @@ -2,6 +2,7 @@ package com.drdisagree.iconify.utils.overlay.manager import com.drdisagree.iconify.common.Dynamic.TOTAL_NOTIFICATIONS import com.drdisagree.iconify.common.Dynamic.isAtleastA14 +import com.drdisagree.iconify.common.Dynamic.isSecurityPatchBeforeJune2024 import com.drdisagree.iconify.common.Preferences.FIX_NOTIFICATION_COLOR import com.drdisagree.iconify.config.Prefs import com.drdisagree.iconify.config.RPrefs @@ -21,7 +22,10 @@ object NotificationManager { enableOverlays("IconifyComponentCR1.overlay", "IconifyComponentCR2.overlay") } - if (isAtleastA14 && !RPrefs.getBoolean(FIX_NOTIFICATION_COLOR, false)) { + if (isAtleastA14 && + !RPrefs.getBoolean(FIX_NOTIFICATION_COLOR, false) && + isSecurityPatchBeforeJune2024() + ) { RPrefs.putBoolean(FIX_NOTIFICATION_COLOR, true) SystemUtil.restartSystemUI() } @@ -30,7 +34,10 @@ object NotificationManager { fun disableOverlay(n: Int) { disableOverlay("IconifyComponentNFN$n.overlay") - if (isAtleastA14 && RPrefs.getBoolean(FIX_NOTIFICATION_COLOR, false)) { + if (isAtleastA14 && + RPrefs.getBoolean(FIX_NOTIFICATION_COLOR, false) && + isSecurityPatchBeforeJune2024() + ) { RPrefs.putBoolean(FIX_NOTIFICATION_COLOR, false) SystemUtil.restartSystemUI() } diff --git a/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/NotificationPixelManager.kt b/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/NotificationPixelManager.kt index 7e1c07933..ea875d3c9 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/NotificationPixelManager.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/NotificationPixelManager.kt @@ -2,6 +2,7 @@ package com.drdisagree.iconify.utils.overlay.manager import com.drdisagree.iconify.common.Dynamic.TOTAL_NOTIFICATIONSPIXEL import com.drdisagree.iconify.common.Dynamic.isAtleastA14 +import com.drdisagree.iconify.common.Dynamic.isSecurityPatchBeforeJune2024 import com.drdisagree.iconify.common.Preferences.FIX_NOTIFICATION_COLOR import com.drdisagree.iconify.config.Prefs import com.drdisagree.iconify.config.RPrefs @@ -21,7 +22,10 @@ object NotificationPixelManager { enableOverlays("IconifyComponentCR1.overlay", "IconifyComponentCR2.overlay") } - if (isAtleastA14 && !RPrefs.getBoolean(FIX_NOTIFICATION_COLOR, false)) { + if (isAtleastA14 && + !RPrefs.getBoolean(FIX_NOTIFICATION_COLOR, false) && + isSecurityPatchBeforeJune2024() + ) { RPrefs.putBoolean(FIX_NOTIFICATION_COLOR, true) SystemUtil.restartSystemUI() } @@ -30,7 +34,10 @@ object NotificationPixelManager { fun disableOverlay(n: Int) { disableOverlay("IconifyComponentNFP$n.overlay") - if (isAtleastA14 && RPrefs.getBoolean(FIX_NOTIFICATION_COLOR, false)) { + if (isAtleastA14 && + RPrefs.getBoolean(FIX_NOTIFICATION_COLOR, false) && + isSecurityPatchBeforeJune2024() + ) { RPrefs.putBoolean(FIX_NOTIFICATION_COLOR, false) SystemUtil.restartSystemUI() } From 64a42fcc3c07ff19f2fba68cf280b9d1ca60d371 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Sun, 23 Jun 2024 13:15:24 +0600 Subject: [PATCH 022/369] Refactor: Remove unnecessary JVMField and JVMStatic --- .../com/drdisagree/iconify/common/Const.kt | 2 - .../com/drdisagree/iconify/common/Dynamic.kt | 16 ------ .../drdisagree/iconify/common/Preferences.kt | 1 - .../drdisagree/iconify/common/References.kt | 1 - .../drdisagree/iconify/common/Resources.kt | 26 ---------- .../com/drdisagree/iconify/config/Prefs.kt | 17 ------- .../com/drdisagree/iconify/config/RPrefs.kt | 20 -------- .../com/drdisagree/iconify/config/XPrefs.kt | 2 - .../iconify/services/UpdateScheduler.kt | 1 - .../iconify/ui/adapters/InfoAdapter.kt | 35 +++++-------- .../drdisagree/iconify/ui/core/Transform.kt | 1 - .../iconify/ui/events/ColorSelectedEvent.kt | 4 +- .../drdisagree/iconify/ui/models/InfoModel.kt | 50 +------------------ .../drdisagree/iconify/ui/utils/Animatoo.kt | 15 ------ .../iconify/ui/utils/ThemeHelper.kt | 1 - .../iconify/ui/utils/ViewBindingHelpers.kt | 7 --- .../drdisagree/iconify/ui/utils/ViewHelper.kt | 6 --- .../com/drdisagree/iconify/utils/AppUtil.kt | 8 --- .../com/drdisagree/iconify/utils/CacheUtil.kt | 1 - .../com/drdisagree/iconify/utils/FileUtil.kt | 4 -- .../drdisagree/iconify/utils/ModuleUtil.kt | 4 -- .../com/drdisagree/iconify/utils/RootUtil.kt | 7 --- .../drdisagree/iconify/utils/SystemUtil.kt | 17 ------- .../iconify/utils/color/ColorSchemeUtil.kt | 1 - .../iconify/utils/color/ColorUtil.kt | 6 --- .../iconify/utils/helper/BackupRestore.kt | 2 - .../iconify/utils/helper/BinaryInstaller.kt | 1 - .../iconify/utils/helper/ImportExport.kt | 2 - .../iconify/utils/helper/LocaleHelper.kt | 2 - .../drdisagree/iconify/utils/helper/Logger.kt | 3 -- .../iconify/utils/helper/TypedValueUtil.kt | 1 - .../iconify/utils/overlay/FabricatedUtil.kt | 8 --- .../iconify/utils/overlay/OverlayUtil.kt | 14 ------ .../utils/overlay/compiler/DynamicCompiler.kt | 1 - .../utils/overlay/compiler/MonetCompiler.kt | 1 - .../overlay/compiler/OnDemandCompiler.kt | 1 - .../overlay/compiler/OnboardingCompiler.kt | 4 -- .../overlay/compiler/RoundnessCompiler.kt | 1 - .../overlay/compiler/SettingsIconsCompiler.kt | 1 - .../utils/overlay/compiler/VolumeCompiler.kt | 1 - .../overlay/manager/MediaPlayerIconManager.kt | 1 - .../overlay/manager/MonetEngineManager.kt | 1 - .../utils/overlay/manager/RoundnessManager.kt | 1 - .../manager/SettingsIconResourceManager.kt | 1 - .../manager/resource/ResourceManager.kt | 4 -- 45 files changed, 15 insertions(+), 289 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/common/Const.kt b/app/src/main/java/com/drdisagree/iconify/common/Const.kt index 9b4303d4d..c53acdb00 100644 --- a/app/src/main/java/com/drdisagree/iconify/common/Const.kt +++ b/app/src/main/java/com/drdisagree/iconify/common/Const.kt @@ -13,7 +13,6 @@ object Const { const val WELLBEING_PACKAGE = "com.google.android.apps.wellbeing" const val GMS_PACKAGE = "com.google.android.gms" - @JvmField val SYSTEM_PACKAGES = listOf( SYSTEMUI_PACKAGE, FRAMEWORK_PACKAGE, @@ -47,7 +46,6 @@ object Const { const val ACTION_HOOK_CHECK_RESULT = "${BuildConfig.APPLICATION_ID}.ACTION_HOOK_CHECK_RESULT" // Module script - @JvmField val MAGISK_UPDATE_BINARY = """ #!/sbin/sh diff --git a/app/src/main/java/com/drdisagree/iconify/common/Dynamic.kt b/app/src/main/java/com/drdisagree/iconify/common/Dynamic.kt index 1c1cef131..79befc1f2 100644 --- a/app/src/main/java/com/drdisagree/iconify/common/Dynamic.kt +++ b/app/src/main/java/com/drdisagree/iconify/common/Dynamic.kt @@ -12,62 +12,46 @@ import java.util.Locale object Dynamic { // Grab number of overlays dynamically for each variant - @JvmField val TOTAL_BRIGHTNESSBARS = Shell.cmd("cmd overlay list | grep '....IconifyComponentBBN'").exec().out.size - @JvmField val TOTAL_BRIGHTNESSBARSPIXEL = Shell.cmd("cmd overlay list | grep '....IconifyComponentBBP'").exec().out.size - @JvmField val TOTAL_ICONPACKS = Shell.cmd("cmd overlay list | grep '....IconifyComponentIPAS'").exec().out.size - @JvmField val TOTAL_NOTIFICATIONS = Shell.cmd("cmd overlay list | grep '....IconifyComponentNFN'").exec().out.size - @JvmField val TOTAL_NOTIFICATIONSPIXEL = Shell.cmd("cmd overlay list | grep '....IconifyComponentNFP'").exec().out.size - @JvmField val TOTAL_QSSHAPES = Shell.cmd("cmd overlay list | grep '....IconifyComponentQSSN'").exec().out.size - @JvmField val TOTAL_QSSHAPESPIXEL = Shell.cmd("cmd overlay list | grep '....IconifyComponentQSSP'").exec().out.size // Overlay compiler tools - @JvmField val NATIVE_LIBRARY_DIR: String = appContext.applicationInfo.nativeLibraryDir - @JvmField val AAPTLIB = File(NATIVE_LIBRARY_DIR, "libaapt.so") - @JvmField val AAPT2LIB = File(NATIVE_LIBRARY_DIR, "libaapt2.so") - @JvmField val AAPT = File(Resources.BIN_DIR, "aapt") - @JvmField val AAPT2 = File(Resources.BIN_DIR, "aapt2") - @JvmField val ZIPALIGNLIB = File(NATIVE_LIBRARY_DIR, "libzipalign.so") - @JvmField val ZIPALIGN = File(Resources.BIN_DIR, "zipalign") // Onboarding overlay installation - @JvmField var skippedInstallation = false // Device information - @JvmField val isAtleastA14 = Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE fun isSecurityPatchBeforeJune2024(): Boolean { diff --git a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt index cbc91d29a..beafda50c 100644 --- a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt +++ b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt @@ -249,7 +249,6 @@ object Preferences { const val SHOW_HOME_CARD = "IconifyShowHomeCard" const val XPOSED_ONLY_MODE = "IconifyXposedOnlyMode" - @JvmField var isXposedOnlyMode = getBoolean(XPOSED_ONLY_MODE, true) && !SplashActivity.SKIP_TO_HOMEPAGE_FOR_TESTING diff --git a/app/src/main/java/com/drdisagree/iconify/common/References.kt b/app/src/main/java/com/drdisagree/iconify/common/References.kt index 34a5eccc5..3eca82c85 100644 --- a/app/src/main/java/com/drdisagree/iconify/common/References.kt +++ b/app/src/main/java/com/drdisagree/iconify/common/References.kt @@ -41,6 +41,5 @@ object References { const val METADATA_THEME_CATEGORY = "THEME_CATEGORY" // Overlay categories - @JvmField val OVERLAY_CATEGORY_PREFIX = BuildConfig.APPLICATION_ID.replace(".debug", "") + ".category." } diff --git a/app/src/main/java/com/drdisagree/iconify/common/Resources.kt b/app/src/main/java/com/drdisagree/iconify/common/Resources.kt index da53b4e2b..f6f5618d1 100644 --- a/app/src/main/java/com/drdisagree/iconify/common/Resources.kt +++ b/app/src/main/java/com/drdisagree/iconify/common/Resources.kt @@ -2,7 +2,6 @@ package com.drdisagree.iconify.common import android.os.Environment import com.drdisagree.iconify.BuildConfig -import com.drdisagree.iconify.Iconify import com.drdisagree.iconify.Iconify.Companion.appContext object Resources { @@ -12,90 +11,65 @@ object Resources { const val SHARED_XPREFERENCES = BuildConfig.APPLICATION_ID + "_xpreference" // Storage location - @JvmField val DOCUMENTS_DIR: String = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS).absolutePath - @JvmField val DOWNLOADS_DIR: String = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).absolutePath - @JvmField val LOG_DIR = "$DOCUMENTS_DIR/Iconify" const val MODULE_DIR = "/data/adb/modules/Iconify" const val SYSTEM_OVERLAY_DIR = "/system/product/overlay" - @JvmField val DATA_DIR: String = appContext.filesDir.absolutePath const val OVERLAY_DIR = "$MODULE_DIR/system/product/overlay" - @JvmField val BIN_DIR = appContext.dataDir.toString() + "/bin" - @JvmField val BACKUP_DIR = Environment.getExternalStorageDirectory().absolutePath + "/.iconify_backup" - @JvmField val TEMP_DIR = Environment.getExternalStorageDirectory().absolutePath + "/.iconify" - @JvmField val TEMP_MODULE_DIR = "$TEMP_DIR/Iconify" - @JvmField val TEMP_MODULE_OVERLAY_DIR = "$TEMP_MODULE_DIR/system/product/overlay" - @JvmField val TEMP_OVERLAY_DIR = "$TEMP_DIR/overlays" - @JvmField val TEMP_CACHE_DIR = "$TEMP_OVERLAY_DIR/cache" - @JvmField val UNSIGNED_UNALIGNED_DIR = "$TEMP_OVERLAY_DIR/unsigned_unaligned" - @JvmField val UNSIGNED_DIR = "$TEMP_OVERLAY_DIR/unsigned" - @JvmField val SIGNED_DIR = "$TEMP_OVERLAY_DIR/signed" - @JvmField val COMPANION_TEMP_DIR = "$TEMP_DIR/companion" - @JvmField val COMPANION_COMPILED_DIR = "$COMPANION_TEMP_DIR/compiled" - @JvmField val COMPANION_MODULE_DIR = "$TEMP_DIR/module/IconifyCompanion" private val COMPANION_RES_DIR = "$COMPANION_MODULE_DIR/substratumXML/SystemUI/res" - @JvmField val COMPANION_DRAWABLE_DIR = "$COMPANION_RES_DIR/drawable" - @JvmField val COMPANION_LAYOUT_DIR = "$COMPANION_RES_DIR/layout" // File resources const val FRAMEWORK_DIR = "/system/framework/framework-res.apk" // Xposed resource dir - @JvmField val XPOSED_RESOURCE_TEMP_DIR = "${Environment.getExternalStorageDirectory()}/.iconify_files" - @JvmField val LSCLOCK_FONT_DIR = "$XPOSED_RESOURCE_TEMP_DIR/lsclock_font.ttf" - @JvmField val HEADER_CLOCK_FONT_DIR = "$XPOSED_RESOURCE_TEMP_DIR/headerclock_font.ttf" - @JvmField val HEADER_IMAGE_DIR = "$XPOSED_RESOURCE_TEMP_DIR/header_image.png" - @JvmField val DEPTH_WALL_FG_DIR = "$XPOSED_RESOURCE_TEMP_DIR/depth_wallpaper_fg.png" - @JvmField val DEPTH_WALL_BG_DIR = "$XPOSED_RESOURCE_TEMP_DIR/depth_wallpaper_bg.png" // Resource names diff --git a/app/src/main/java/com/drdisagree/iconify/config/Prefs.kt b/app/src/main/java/com/drdisagree/iconify/config/Prefs.kt index 581c0b06f..5b70664ef 100644 --- a/app/src/main/java/com/drdisagree/iconify/config/Prefs.kt +++ b/app/src/main/java/com/drdisagree/iconify/config/Prefs.kt @@ -2,7 +2,6 @@ package com.drdisagree.iconify.config import android.content.Context import android.content.SharedPreferences -import com.drdisagree.iconify.Iconify import com.drdisagree.iconify.Iconify.Companion.appContext import com.drdisagree.iconify.common.Preferences.STR_NULL import com.drdisagree.iconify.common.Resources.SHARED_PREFERENCES @@ -10,83 +9,67 @@ import com.drdisagree.iconify.common.Resources.SHARED_PREFERENCES @Suppress("unused") object Prefs { - @JvmField var prefs: SharedPreferences = appContext.getSharedPreferences(SHARED_PREFERENCES, Context.MODE_PRIVATE) private var editor: SharedPreferences.Editor = prefs.edit() - @JvmStatic fun putBoolean(key: String?, `val`: Boolean) { editor.putBoolean(key, `val`).apply() } - @JvmStatic fun putInt(key: String?, `val`: Int) { editor.putInt(key, `val`).apply() } - @JvmStatic fun putLong(key: String?, `val`: Long) { editor.putLong(key, `val`).apply() } - @JvmStatic fun putString(key: String?, `val`: String?) { editor.putString(key, `val`).apply() } - @JvmStatic fun getBoolean(key: String?): Boolean { return prefs.getBoolean(key, false) } - @JvmStatic fun getBoolean(key: String?, defValue: Boolean?): Boolean { return prefs.getBoolean(key, defValue!!) } - @JvmStatic fun getInt(key: String?): Int { return prefs.getInt(key, 0) } - @JvmStatic fun getInt(key: String?, defValue: Int): Int { return prefs.getInt(key, defValue) } - @JvmStatic fun getLong(key: String?): Long { return prefs.getLong(key, 0) } - @JvmStatic fun getLong(key: String?, defValue: Long): Long { return prefs.getLong(key, defValue) } - @JvmStatic fun getString(key: String?): String? { return prefs.getString(key, STR_NULL) } - @JvmStatic fun getString(key: String?, defValue: String?): String? { return prefs.getString(key, defValue) } - @JvmStatic fun clearPref(key: String?) { editor.remove(key).apply() } - @JvmStatic fun clearPrefs(vararg keys: String?) { for (key in keys) { editor.remove(key).apply() } } - @JvmStatic fun clearAllPrefs() { editor.clear().apply() } diff --git a/app/src/main/java/com/drdisagree/iconify/config/RPrefs.kt b/app/src/main/java/com/drdisagree/iconify/config/RPrefs.kt index 6a5695374..b5676e887 100644 --- a/app/src/main/java/com/drdisagree/iconify/config/RPrefs.kt +++ b/app/src/main/java/com/drdisagree/iconify/config/RPrefs.kt @@ -2,7 +2,6 @@ package com.drdisagree.iconify.config import android.content.Context.MODE_PRIVATE import android.content.SharedPreferences -import com.drdisagree.iconify.Iconify import com.drdisagree.iconify.Iconify.Companion.appContext import com.drdisagree.iconify.common.Preferences.STR_NULL import com.drdisagree.iconify.common.Resources.SHARED_XPREFERENCES @@ -10,101 +9,82 @@ import com.drdisagree.iconify.common.Resources.SHARED_XPREFERENCES @Suppress("unused") object RPrefs { - @JvmField var prefs: SharedPreferences = appContext.createDeviceProtectedStorageContext().getSharedPreferences( SHARED_XPREFERENCES, MODE_PRIVATE ) private var editor: SharedPreferences.Editor = prefs.edit() - @JvmStatic fun putBoolean(key: String?, `val`: Boolean) { editor.putBoolean(key, `val`).apply() } - @JvmStatic fun putInt(key: String?, `val`: Int) { editor.putInt(key, `val`).apply() } - @JvmStatic fun putLong(key: String?, `val`: Long) { editor.putLong(key, `val`).apply() } - @JvmStatic fun putFloat(key: String?, `val`: Float) { editor.putFloat(key, `val`).apply() } - @JvmStatic fun putString(key: String?, `val`: String?) { editor.putString(key, `val`).apply() } - @JvmStatic fun getBoolean(key: String?): Boolean { return prefs.getBoolean(key, false) } - @JvmStatic fun getBoolean(key: String?, defValue: Boolean?): Boolean { return prefs.getBoolean(key, defValue!!) } - @JvmStatic fun getInt(key: String?): Int { return prefs.getInt(key, 0) } - @JvmStatic fun getInt(key: String?, defValue: Int): Int { return prefs.getInt(key, defValue) } - @JvmStatic fun getLong(key: String?): Long { return prefs.getLong(key, 0) } - @JvmStatic fun getLong(key: String?, defValue: Long): Long { return prefs.getLong(key, defValue) } - @JvmStatic fun getFloat(key: String?): Float { return prefs.getFloat(key, 0f) } - @JvmStatic fun getFloat(key: String?, defValue: Float): Float { return prefs.getFloat(key, defValue) } - @JvmStatic fun getString(key: String?): String? { return prefs.getString(key, STR_NULL) } - @JvmStatic fun getString(key: String?, defValue: String?): String? { return prefs.getString(key, defValue) } - @JvmStatic fun clearPref(key: String?) { editor.remove(key).apply() } - @JvmStatic fun clearPrefs(vararg keys: String?) { for (key in keys) { editor.remove(key).apply() } } - @JvmStatic fun clearAllPrefs() { editor.clear().apply() } diff --git a/app/src/main/java/com/drdisagree/iconify/config/XPrefs.kt b/app/src/main/java/com/drdisagree/iconify/config/XPrefs.kt index 624561d1a..d8251effc 100644 --- a/app/src/main/java/com/drdisagree/iconify/config/XPrefs.kt +++ b/app/src/main/java/com/drdisagree/iconify/config/XPrefs.kt @@ -11,7 +11,6 @@ import com.drdisagree.iconify.xposed.HookEntry object XPrefs { - @JvmField var Xprefs: SharedPreferences? = null private var packageName: String? = null private val listener = @@ -21,7 +20,6 @@ object XPrefs { ) } - @JvmStatic fun init(context: Context) { packageName = context.packageName Xprefs = RemotePreferences(context, BuildConfig.APPLICATION_ID, SHARED_XPREFERENCES, true) diff --git a/app/src/main/java/com/drdisagree/iconify/services/UpdateScheduler.kt b/app/src/main/java/com/drdisagree/iconify/services/UpdateScheduler.kt index c1770c34a..8b455553f 100644 --- a/app/src/main/java/com/drdisagree/iconify/services/UpdateScheduler.kt +++ b/app/src/main/java/com/drdisagree/iconify/services/UpdateScheduler.kt @@ -20,7 +20,6 @@ object UpdateScheduler { private val UPDATE_WORK_NAME = BuildConfig.APPLICATION_ID .replace(".debug", "") + ".services.UpdateScheduler" - @JvmStatic fun scheduleUpdates(context: Context?) { Log.i(TAG, "Updating update schedule...") diff --git a/app/src/main/java/com/drdisagree/iconify/ui/adapters/InfoAdapter.kt b/app/src/main/java/com/drdisagree/iconify/ui/adapters/InfoAdapter.kt index 6af6265af..c737907ee 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/adapters/InfoAdapter.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/adapters/InfoAdapter.kt @@ -45,19 +45,19 @@ class InfoAdapter( @SuppressLint("DiscouragedApi") override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { if (holder is HeaderViewHolder) { - holder.header.text = itemList[position].getTitle() + holder.header.text = itemList[position].title - if (itemList[position].getTitle() == "") { + if (itemList[position].title == "") { holder.itemView.visibility = View.GONE holder.itemView.setLayoutParams(RecyclerView.LayoutParams(0, 0)) } } else if (holder is ItemViewHolder) { - holder.icon.setImageResource(itemList[position].getIcon()) - holder.title.text = itemList[position].getTitle() - holder.desc.text = itemList[position].getDesc() - holder.container.setOnClickListener(itemList[position].getOnClickListener()) + holder.icon.setImageResource(itemList[position].icon) + holder.title.text = itemList[position].title + holder.desc.text = itemList[position].desc + holder.container.setOnClickListener(itemList[position].onClickListener) - val drawableName = context.resources.getResourceEntryName(itemList[position].getIcon()) + val drawableName = context.resources.getResourceEntryName(itemList[position].icon) val typedValue = TypedValue() context.theme.resolveAttribute( @@ -85,26 +85,15 @@ class InfoAdapter( internal class HeaderViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - var header: TextView - - init { - header = itemView.findViewById(R.id.list_info_header) - } + var header: TextView = itemView.findViewById(R.id.list_info_header) } internal class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - var icon: ImageView - var title: TextView - var desc: TextView - var container: RelativeLayout - - init { - icon = itemView.findViewById(R.id.icon) - title = itemView.findViewById(R.id.title) - desc = itemView.findViewById(R.id.desc) - container = itemView.findViewById(R.id.list_info_item) - } + var icon: ImageView = itemView.findViewById(R.id.icon) + var title: TextView = itemView.findViewById(R.id.title) + var desc: TextView = itemView.findViewById(R.id.desc) + var container: RelativeLayout = itemView.findViewById(R.id.list_info_item) } companion object { diff --git a/app/src/main/java/com/drdisagree/iconify/ui/core/Transform.kt b/app/src/main/java/com/drdisagree/iconify/ui/core/Transform.kt index b105bcbab..88364a2aa 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/core/Transform.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/core/Transform.kt @@ -23,7 +23,6 @@ object Transform { return pageTransformer } - @JvmStatic fun setParallaxTransformation(page: View, position: Float) { val parallaxView = page.findViewById(R.id.img) val isLandscape = diff --git a/app/src/main/java/com/drdisagree/iconify/ui/events/ColorSelectedEvent.kt b/app/src/main/java/com/drdisagree/iconify/ui/events/ColorSelectedEvent.kt index 701bb7057..985121bd0 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/events/ColorSelectedEvent.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/events/ColorSelectedEvent.kt @@ -1,6 +1,6 @@ package com.drdisagree.iconify.ui.events data class ColorSelectedEvent( - @JvmField val dialogId: Int, - @JvmField val selectedColor: Int + val dialogId: Int, + val selectedColor: Int ) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/models/InfoModel.kt b/app/src/main/java/com/drdisagree/iconify/ui/models/InfoModel.kt index c17e7fdd4..c909ae865 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/models/InfoModel.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/models/InfoModel.kt @@ -8,19 +8,11 @@ import android.view.View class InfoModel { var context: Context? = null - - @JvmField var icon = 0 - - @JvmField var layout = 0 - - @JvmField var title: String? = null - - @JvmField var desc: String? = null - private var onClickListener: View.OnClickListener? = null + var onClickListener: View.OnClickListener? = null constructor(title: String?) { this.title = title @@ -48,44 +40,4 @@ class InfoModel { this.icon = icon this.onClickListener = onClickListener } - - fun getIcon(): Int { - return icon - } - - fun setIcon(icon: Int) { - this.icon = icon - } - - fun getTitle(): String? { - return title - } - - fun setTitle(title: String?) { - this.title = title - } - - fun getDesc(): String? { - return desc - } - - fun setDesc(desc: String?) { - this.desc = desc - } - - fun getOnClickListener(): View.OnClickListener? { - return onClickListener - } - - fun setOnClickListener(onClickListener: View.OnClickListener?) { - this.onClickListener = onClickListener - } - - fun getLayout(): Int { - return layout - } - - fun setLayout(layout: Int) { - this.layout = layout - } } diff --git a/app/src/main/java/com/drdisagree/iconify/ui/utils/Animatoo.kt b/app/src/main/java/com/drdisagree/iconify/ui/utils/Animatoo.kt index 85224841b..10b949038 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/utils/Animatoo.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/utils/Animatoo.kt @@ -7,7 +7,6 @@ import com.drdisagree.iconify.R @Suppress("deprecation") object Animatoo { - @JvmStatic fun animateZoom(context: Context) { (context as Activity).overridePendingTransition( R.anim.animate_zoom_enter, @@ -15,7 +14,6 @@ object Animatoo { ) } - @JvmStatic fun animateFade(context: Context) { (context as Activity).overridePendingTransition( R.anim.animate_fade_enter, @@ -23,7 +21,6 @@ object Animatoo { ) } - @JvmStatic fun animateWindmill(context: Context) { (context as Activity).overridePendingTransition( R.anim.animate_windmill_enter, @@ -31,7 +28,6 @@ object Animatoo { ) } - @JvmStatic fun animateSpin(context: Context) { (context as Activity).overridePendingTransition( R.anim.animate_spin_enter, @@ -39,7 +35,6 @@ object Animatoo { ) } - @JvmStatic fun animateDiagonal(context: Context) { (context as Activity).overridePendingTransition( R.anim.animate_diagonal_right_enter, @@ -47,7 +42,6 @@ object Animatoo { ) } - @JvmStatic fun animateSplit(context: Context) { (context as Activity).overridePendingTransition( R.anim.animate_split_enter, @@ -55,7 +49,6 @@ object Animatoo { ) } - @JvmStatic fun animateShrink(context: Context) { (context as Activity).overridePendingTransition( R.anim.animate_shrink_enter, @@ -63,7 +56,6 @@ object Animatoo { ) } - @JvmStatic fun animateCard(context: Context) { (context as Activity).overridePendingTransition( R.anim.animate_card_enter, @@ -71,7 +63,6 @@ object Animatoo { ) } - @JvmStatic fun animateInAndOut(context: Context) { (context as Activity).overridePendingTransition( R.anim.animate_in_out_enter, @@ -79,7 +70,6 @@ object Animatoo { ) } - @JvmStatic fun animateSwipeLeft(context: Context) { (context as Activity).overridePendingTransition( R.anim.animate_swipe_left_enter, @@ -87,7 +77,6 @@ object Animatoo { ) } - @JvmStatic fun animateSwipeRight(context: Context) { (context as Activity).overridePendingTransition( R.anim.animate_swipe_right_enter, @@ -95,7 +84,6 @@ object Animatoo { ) } - @JvmStatic fun animateSlideLeft(context: Context) { (context as Activity).overridePendingTransition( R.anim.animate_slide_left_enter, @@ -103,7 +91,6 @@ object Animatoo { ) } - @JvmStatic fun animateSlideRight(context: Context) { (context as Activity).overridePendingTransition( R.anim.animate_slide_in_left, @@ -111,7 +98,6 @@ object Animatoo { ) } - @JvmStatic fun animateSlideDown(context: Context) { (context as Activity).overridePendingTransition( R.anim.animate_slide_down_enter, @@ -119,7 +105,6 @@ object Animatoo { ) } - @JvmStatic fun animateSlideUp(context: Context) { (context as Activity).overridePendingTransition( R.anim.animate_slide_up_enter, diff --git a/app/src/main/java/com/drdisagree/iconify/ui/utils/ThemeHelper.kt b/app/src/main/java/com/drdisagree/iconify/ui/utils/ThemeHelper.kt index daaca2fe4..2fdba8699 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/utils/ThemeHelper.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/utils/ThemeHelper.kt @@ -6,7 +6,6 @@ import com.drdisagree.iconify.config.Prefs.getInt object ThemeHelper { - @JvmStatic val theme: Int get() { val theme = getInt(APP_THEME, 2) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/utils/ViewBindingHelpers.kt b/app/src/main/java/com/drdisagree/iconify/ui/utils/ViewBindingHelpers.kt index 12af40a2a..684dcd342 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/utils/ViewBindingHelpers.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/utils/ViewBindingHelpers.kt @@ -13,25 +13,21 @@ import com.bumptech.glide.request.transition.Transition object ViewBindingHelpers { - @JvmStatic fun setImageUrl(imageView: ImageView, url: String) { Glide.with(imageView.context).load(url.replace("http://", "https://")) .apply(RequestOptions.centerCropTransform()) .transition(DrawableTransitionOptions.withCrossFade()).into(imageView) } - @JvmStatic fun setDrawable(imageView: ImageView, drawable: Drawable?) { Glide.with(imageView.context).load(drawable).into(imageView) } - @JvmStatic fun setDrawableWithAnimation(imageView: ImageView, drawable: Drawable?) { Glide.with(imageView.context).load(drawable) .transition(DrawableTransitionOptions.withCrossFade()).into(imageView) } - @JvmStatic fun setDrawable(viewGroup: ViewGroup, drawable: Drawable?) { Glide.with(viewGroup.context).load(drawable).into(object : CustomTarget() { override fun onResourceReady( @@ -45,7 +41,6 @@ object ViewBindingHelpers { }) } - @JvmStatic fun setDrawableWithAnimation(viewGroup: ViewGroup, drawable: Drawable?) { Glide.with(viewGroup.context).load(drawable) .transition(DrawableTransitionOptions.withCrossFade()) @@ -61,13 +56,11 @@ object ViewBindingHelpers { }) } - @JvmStatic fun setBitmap(imageView: ImageView, bitmap: Bitmap?) { val drawable: Drawable = BitmapDrawable(imageView.context.resources, bitmap) setDrawable(imageView, drawable) } - @JvmStatic fun setBitmapWithAnimation(imageView: ImageView, bitmap: Bitmap?) { val drawable: Drawable = BitmapDrawable(imageView.context.resources, bitmap) setDrawableWithAnimation(imageView, drawable) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/utils/ViewHelper.kt b/app/src/main/java/com/drdisagree/iconify/ui/utils/ViewHelper.kt index 61679cda7..317914460 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/utils/ViewHelper.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/utils/ViewHelper.kt @@ -59,7 +59,6 @@ import com.drdisagree.iconify.xposed.modules.batterystyles.RLandscapeBatteryStyl object ViewHelper { - @JvmStatic fun disableNestedScrolling(viewPager: ViewPager2) { var recyclerView: RecyclerView? = null @@ -75,7 +74,6 @@ object ViewHelper { } } - @JvmStatic fun setHeader(context: Context, toolbar: Toolbar, title: Int) { (context as AppCompatActivity).setSupportActionBar(toolbar) context.supportActionBar?.setDisplayHomeAsUpEnabled(true) @@ -83,7 +81,6 @@ object ViewHelper { toolbar.setTitle(title) } - @JvmStatic fun setHeader( context: Context, fragmentManager: FragmentManager, @@ -106,7 +103,6 @@ object ViewHelper { return dp2px(dp.toInt()) } - @JvmStatic fun dp2px(dp: Int): Int { return TypedValue.applyDimension( TypedValue.COMPLEX_UNIT_DIP, @@ -115,7 +111,6 @@ object ViewHelper { ).toInt() } - @JvmStatic fun getBatteryDrawables(context: Context): Array { val batteryColor = appContext.getColor(R.color.textColorPrimary) @@ -186,7 +181,6 @@ object ViewHelper { return batteryDrawables } - @JvmStatic fun getChargingIcons(context: Context): Array { val chargingIcons = arrayOf( getDrawable(context, R.drawable.ic_charging_bold)!!, // Bold diff --git a/app/src/main/java/com/drdisagree/iconify/utils/AppUtil.kt b/app/src/main/java/com/drdisagree/iconify/utils/AppUtil.kt index 28616f82e..bfdd00d43 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/AppUtil.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/AppUtil.kt @@ -10,7 +10,6 @@ import android.os.Handler import android.os.Looper import android.widget.Toast import androidx.core.content.ContextCompat -import com.drdisagree.iconify.Iconify import com.drdisagree.iconify.Iconify.Companion.appContext import com.drdisagree.iconify.R import com.topjohnwu.superuser.Shell @@ -29,7 +28,6 @@ object AppUtil { return false } - @JvmStatic fun isAppInstalledRoot(packageName: String): Boolean { return Shell.cmd("res=$(pm path $packageName); if [ ! -z \"\$res\" ]; then echo \"installed\"; else echo \"not found\"; fi") .exec().out[0].contains("installed") @@ -47,7 +45,6 @@ object AppUtil { return 0 } - @JvmStatic @SuppressLint("UseCompatLoadingForDrawables") fun getAppIcon(packageName: String?): Drawable? { var appIcon = ContextCompat.getDrawable(appContext, R.drawable.ic_android) @@ -60,7 +57,6 @@ object AppUtil { return appIcon } - @JvmStatic fun getAppName(packageName: String?): String { val pm = appContext.applicationContext.packageManager var ai: ApplicationInfo? = null @@ -73,7 +69,6 @@ object AppUtil { return (if (ai == null) "Unavailable" else pm.getApplicationLabel(ai)) as String } - @JvmStatic fun launchApp(activity: Activity, packageName: String?) { val launchIntent = appContext.packageManager.getLaunchIntentForPackage( packageName!! @@ -90,7 +85,6 @@ object AppUtil { } } - @JvmStatic fun getSplitLocations(packageName: String?): Array { try { var splitLocations = appContext.packageManager.getApplicationInfo( @@ -111,11 +105,9 @@ object AppUtil { return arrayOfNulls(0) } - @JvmStatic val isLsposedInstalled: Boolean get() = RootUtil.fileExists("/data/adb/lspd/manager.apk") || RootUtil.fileExists("/data/adb/modules/*lsposed*/manager.apk") - @JvmStatic fun restartApplication(activity: Activity) { Handler(Looper.getMainLooper()).postDelayed({ val intent = activity.intent diff --git a/app/src/main/java/com/drdisagree/iconify/utils/CacheUtil.kt b/app/src/main/java/com/drdisagree/iconify/utils/CacheUtil.kt index 3b2fa5502..6da844557 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/CacheUtil.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/CacheUtil.kt @@ -5,7 +5,6 @@ import java.io.File object CacheUtil { - @JvmStatic fun clearCache(context: Context) { try { var dir = context.cacheDir diff --git a/app/src/main/java/com/drdisagree/iconify/utils/FileUtil.kt b/app/src/main/java/com/drdisagree/iconify/utils/FileUtil.kt index 14f602ecf..8992e7db2 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/FileUtil.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/FileUtil.kt @@ -6,7 +6,6 @@ import android.content.Intent import android.net.Uri import android.provider.OpenableColumns import androidx.activity.result.ActivityResultLauncher -import com.drdisagree.iconify.Iconify import com.drdisagree.iconify.Iconify.Companion.appContext import com.drdisagree.iconify.common.Resources import com.topjohnwu.superuser.Shell @@ -23,7 +22,6 @@ object FileUtil { val DATA_DIR = appContext.filesDir.toString() - @JvmStatic @Throws(IOException::class) fun copyAssets(assetFolder: String) { cleanDir(assetFolder) @@ -86,7 +84,6 @@ object FileUtil { } } - @JvmStatic fun getRealPath(obj: Any?): String? { return when (obj) { is Intent -> { @@ -145,7 +142,6 @@ object FileUtil { return file.path } - @JvmStatic fun moveToIconifyHiddenDir(source: String, destination: String): Boolean { return Shell.cmd( "mkdir -p " + Resources.XPOSED_RESOURCE_TEMP_DIR, diff --git a/app/src/main/java/com/drdisagree/iconify/utils/ModuleUtil.kt b/app/src/main/java/com/drdisagree/iconify/utils/ModuleUtil.kt index 2fcede46a..a31219fc5 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/ModuleUtil.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/ModuleUtil.kt @@ -30,7 +30,6 @@ object ModuleUtil { private val TAG = ModuleUtil::class.java.getSimpleName() - @JvmStatic fun handleModule() { if (moduleExists()) { // Clean temporary directory @@ -191,12 +190,10 @@ object ModuleUtil { ) && OverlayUtil.isOverlayDisabled("IconifyComponentME.overlay") } - @JvmStatic fun moduleExists(): Boolean { return RootUtil.folderExists(Resources.OVERLAY_DIR) } - @JvmStatic @Throws(Exception::class) fun createModule(sourceFolder: String, destinationFilePath: String): String { val input = File(sourceFolder) @@ -212,7 +209,6 @@ object ModuleUtil { } } - @JvmStatic @Throws(Exception::class) fun flashModule(modulePath: String): Boolean { var result: Shell.Result? = null diff --git a/app/src/main/java/com/drdisagree/iconify/utils/RootUtil.kt b/app/src/main/java/com/drdisagree/iconify/utils/RootUtil.kt index 3cd197ea5..5f99e7a8d 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/RootUtil.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/RootUtil.kt @@ -4,19 +4,15 @@ import com.topjohnwu.superuser.Shell object RootUtil { - @JvmStatic val isDeviceRooted: Boolean get() = java.lang.Boolean.TRUE == Shell.isAppGrantedRoot() - @JvmStatic val isMagiskInstalled: Boolean get() = Shell.cmd("magisk -v").exec().isSuccess - @JvmStatic val isKSUInstalled: Boolean get() = Shell.cmd("/data/adb/ksud -h").exec().isSuccess - @JvmStatic val isApatchInstalled: Boolean get() = Shell.cmd("apd --help").exec().isSuccess @@ -24,7 +20,6 @@ object RootUtil { return folderExists("/data/adb/modules/$moduleId") } - @JvmStatic fun setPermissions(permission: Int, filename: String) { Shell.cmd("chmod $permission $filename").exec() } @@ -49,7 +44,6 @@ object RootUtil { return false } - @JvmStatic fun folderExists(dir: String): Boolean { val lines = Shell.cmd("test -d $dir && echo '1'").exec().out @@ -60,7 +54,6 @@ object RootUtil { return false } - @JvmStatic fun deviceProperlyRooted(): Boolean { return isDeviceRooted && (isMagiskInstalled || isKSUInstalled || isApatchInstalled) } diff --git a/app/src/main/java/com/drdisagree/iconify/utils/SystemUtil.kt b/app/src/main/java/com/drdisagree/iconify/utils/SystemUtil.kt index d52d0268e..d5a630d0b 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/SystemUtil.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/SystemUtil.kt @@ -45,11 +45,9 @@ object SystemUtil { private const val BLUR_CMD_4 = "persist.sysui.disableBlur=false" private const val BLUR_CMD_5 = "ro.config.avoid_gfx_accel=false" - @JvmStatic val isDarkMode: Boolean get() = appContext.resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_YES == Configuration.UI_MODE_NIGHT_YES - @JvmStatic fun restartSystemUI() { val loadTimeKey = String.format("%s%s", LOAD_TIME_KEY_KEY, SYSTEMUI_PACKAGE) val strikeKey = String.format("%s%s", PACKAGE_STRIKE_KEY_KEY, SYSTEMUI_PACKAGE) @@ -69,7 +67,6 @@ object SystemUtil { ).submit() } - @JvmStatic fun handleSystemUIRestart() { val selectedBehavior = RPrefs.getInt(RESTART_SYSUI_BEHAVIOR_EXT, 0) @@ -92,12 +89,10 @@ object SystemUtil { } } - @JvmStatic fun restartDevice() { Shell.cmd("am start -a android.intent.action.REBOOT").exec() } - @JvmStatic fun disableBlur(force: Boolean) { Shell.cmd( if (!force) "mv " + Resources.MODULE_DIR + @@ -133,7 +128,6 @@ object SystemUtil { ).submit() } - @JvmStatic fun enableBlur(force: Boolean) { disableBlur(false) Shell.cmd( @@ -152,7 +146,6 @@ object SystemUtil { ).submit() } - @JvmStatic fun mountRW() { Shell.cmd("mount -o remount,rw /").exec() @@ -163,7 +156,6 @@ object SystemUtil { } } - @JvmStatic fun mountRO() { Shell.cmd("mount -o remount,ro /").exec() @@ -178,7 +170,6 @@ object SystemUtil { * From AOSPMods * https://github.com/siavash79/AOSPMods/blob/canary/app/src/main/java/sh/siava/AOSPMods/utils/SystemUtils.java */ - @JvmStatic fun doubleToggleDarkMode() { val isDark = isDarkMode @@ -201,7 +192,6 @@ object SystemUtil { } } - @JvmStatic fun isBlurEnabled(force: Boolean): Boolean { return Shell.cmd( "if grep -q \"ro.surface_flinger.supports_background_blur\" " + @@ -211,27 +201,22 @@ object SystemUtil { ).exec().out[0] == "yes" } - @JvmStatic val saveBootId: Unit // Save unique id of each boot get() { putString(BOOT_ID, Shell.cmd(DEVICE_BOOT_ID_CMD).exec().out.toString()) } - @JvmStatic fun saveVersionCode() { Prefs.putInt(VER_CODE, BuildConfig.VERSION_CODE) } - @JvmStatic val savedVersionCode: Int get() = Prefs.getInt(VER_CODE, -1) - @JvmStatic fun hasStoragePermission(): Boolean { return Environment.isExternalStorageManager() || Environment.isExternalStorageLegacy() } - @JvmStatic fun requestStoragePermission(context: Context) { val intent = Intent() intent.setAction(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION) @@ -247,7 +232,6 @@ object SystemUtil { ) } - @JvmStatic fun enableRestartSystemuiAfterBoot() { disableRestartSystemuiAfterBoot() @@ -256,7 +240,6 @@ object SystemUtil { ).submit() } - @JvmStatic fun disableRestartSystemuiAfterBoot() { Shell.cmd( "grep -v \"killall " + SYSTEMUI_PACKAGE + "\" " + Resources.MODULE_DIR + "/service.sh > " + Resources.MODULE_DIR + "/service.sh.tmp && mv " + Resources.MODULE_DIR + "/service.sh.tmp " + Resources.MODULE_DIR + "/service.sh" diff --git a/app/src/main/java/com/drdisagree/iconify/utils/color/ColorSchemeUtil.kt b/app/src/main/java/com/drdisagree/iconify/utils/color/ColorSchemeUtil.kt index 776799202..a66f359fb 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/color/ColorSchemeUtil.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/color/ColorSchemeUtil.kt @@ -18,7 +18,6 @@ object ColorSchemeUtil { private val tones = intArrayOf(100, 99, 95, 90, 80, 70, 60, 50, 40, 30, 20, 10, 0) - @JvmStatic fun generateColorPalette(context: Context, style: String?, color: Int): List> { val palette: MutableList> = ArrayList() val systemAccent1: MutableList = ArrayList() diff --git a/app/src/main/java/com/drdisagree/iconify/utils/color/ColorUtil.kt b/app/src/main/java/com/drdisagree/iconify/utils/color/ColorUtil.kt index eeab0a506..a05a83aca 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/color/ColorUtil.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/color/ColorUtil.kt @@ -46,7 +46,6 @@ object ColorUtil { return hsv[1] } - @JvmStatic fun setSaturation(color: Int, saturation: Float): Int { val r = Color.red(color) val g = Color.green(color) @@ -70,7 +69,6 @@ object ColorUtil { return hsv[2] } - @JvmStatic fun setLightness(color: Int, lightness: Float): Int { val r = Color.red(color) val g = Color.green(color) @@ -83,7 +81,6 @@ object ColorUtil { return Color.HSVToColor(hsv) } - @JvmStatic fun colorToHex(color: Int): String { val alpha = Color.alpha(color) val blue = Color.blue(color) @@ -93,7 +90,6 @@ object ColorUtil { return String.format("#%02X%02X%02X%02X", alpha, red, green, blue) } - @JvmStatic fun colorToSpecialHex(color: Int): String { val blue = Color.blue(color) val green = Color.green(color) @@ -119,7 +115,6 @@ object ColorUtil { 0.0f ) - @JvmStatic val colorNames: Array> get() { val accentTypes = arrayOf( @@ -155,7 +150,6 @@ object ColorUtil { return colorNames } - @JvmStatic fun getSystemColors(context: Context): Array { return arrayOf( intArrayOf( diff --git a/app/src/main/java/com/drdisagree/iconify/utils/helper/BackupRestore.kt b/app/src/main/java/com/drdisagree/iconify/utils/helper/BackupRestore.kt index 222f65079..59d5e4c91 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/helper/BackupRestore.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/helper/BackupRestore.kt @@ -6,7 +6,6 @@ import com.topjohnwu.superuser.Shell object BackupRestore { - @JvmStatic fun backupFiles() { // Create backup directory Shell.cmd("rm -rf " + Resources.BACKUP_DIR, "mkdir -p " + Resources.BACKUP_DIR).exec() @@ -26,7 +25,6 @@ object BackupRestore { backupFile(Resources.OVERLAY_DIR + "/IconifyComponentDynamic2.apk") } - @JvmStatic fun restoreFiles() { restoreFile("system.prop", Resources.TEMP_MODULE_DIR) restoreFile("IconifyComponentME.apk", Resources.TEMP_MODULE_OVERLAY_DIR) diff --git a/app/src/main/java/com/drdisagree/iconify/utils/helper/BinaryInstaller.kt b/app/src/main/java/com/drdisagree/iconify/utils/helper/BinaryInstaller.kt index d039305da..896b63c94 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/helper/BinaryInstaller.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/helper/BinaryInstaller.kt @@ -17,7 +17,6 @@ object BinaryInstaller { private val TAG = BinaryInstaller::class.java.getSimpleName() - @JvmStatic fun symLinkBinaries() { Shell.cmd("mkdir -p $BIN_DIR").exec() diff --git a/app/src/main/java/com/drdisagree/iconify/utils/helper/ImportExport.kt b/app/src/main/java/com/drdisagree/iconify/utils/helper/ImportExport.kt index 4a2b19fd3..592765bd8 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/helper/ImportExport.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/helper/ImportExport.kt @@ -43,7 +43,6 @@ import java.util.Objects object ImportExport { - @JvmStatic fun exportSettings(preferences: SharedPreferences, outputStream: OutputStream) { try { outputStream.use { @@ -58,7 +57,6 @@ object ImportExport { } } - @JvmStatic @Suppress("UNCHECKED_CAST") @Throws(IOException::class) fun importSettings( diff --git a/app/src/main/java/com/drdisagree/iconify/utils/helper/LocaleHelper.kt b/app/src/main/java/com/drdisagree/iconify/utils/helper/LocaleHelper.kt index 362264212..952535b17 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/helper/LocaleHelper.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/helper/LocaleHelper.kt @@ -5,12 +5,10 @@ import android.os.LocaleList import com.drdisagree.iconify.R import com.drdisagree.iconify.common.Preferences.APP_LANGUAGE import com.drdisagree.iconify.config.Prefs.getString -import java.util.Arrays import java.util.Locale object LocaleHelper { - @JvmStatic fun setLocale(context: Context): Context { var localeCode = getString(APP_LANGUAGE, "") diff --git a/app/src/main/java/com/drdisagree/iconify/utils/helper/Logger.kt b/app/src/main/java/com/drdisagree/iconify/utils/helper/Logger.kt index c5053804c..213c88cbd 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/helper/Logger.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/helper/Logger.kt @@ -20,7 +20,6 @@ object Logger { private val TAG = Logger::class.java.getSimpleName() - @JvmStatic fun writeLog(tag: String?, header: String?, details: List) { val log = deviceInfo @@ -35,7 +34,6 @@ object Logger { writeLogToFile(log) } - @JvmStatic fun writeLog(tag: String?, header: String?, details: String?) { val log = deviceInfo @@ -47,7 +45,6 @@ object Logger { writeLogToFile(log) } - @JvmStatic fun writeLog(tag: String?, header: String?, exception: Exception) { val log = deviceInfo log.append("error: ").append(header).append('\n') diff --git a/app/src/main/java/com/drdisagree/iconify/utils/helper/TypedValueUtil.kt b/app/src/main/java/com/drdisagree/iconify/utils/helper/TypedValueUtil.kt index ad4655634..ad7c65a9c 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/helper/TypedValueUtil.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/helper/TypedValueUtil.kt @@ -5,7 +5,6 @@ import androidx.annotation.IntRange object TypedValueUtil { - @JvmStatic fun createComplexDimension( @IntRange(from = -0x800000, to = 0x7FFFFF) value: Int, @ComplexDimensionUnit units: Int diff --git a/app/src/main/java/com/drdisagree/iconify/utils/overlay/FabricatedUtil.kt b/app/src/main/java/com/drdisagree/iconify/utils/overlay/FabricatedUtil.kt index c9eb9022f..3ad092a40 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/overlay/FabricatedUtil.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/overlay/FabricatedUtil.kt @@ -9,25 +9,21 @@ import com.topjohnwu.superuser.Shell object FabricatedUtil { - @JvmStatic val overlayList: List get() = Shell.cmd( "cmd overlay list | grep -E '....com.android.shell:IconifyComponent' | sed -E 's/^....com.android.shell:IconifyComponent//'" ).exec().out - @JvmStatic val enabledOverlayList: List get() = Shell.cmd( "cmd overlay list | grep -E '.x..com.android.shell:IconifyComponent' | sed -E 's/^.x..com.android.shell:IconifyComponent//'" ).exec().out - @JvmStatic val disabledOverlayList: List get() = Shell.cmd( "cmd overlay list | grep -E '. ..com.android.shell:IconifyComponent' | sed -E 's/^. ..com.android.shell:IconifyComponent//'" ).exec().out - @JvmStatic fun buildAndEnableOverlay( target: String?, name: String?, @@ -56,7 +52,6 @@ object FabricatedUtil { Shell.cmd(commands[0], commands[1]).submit() } - @JvmStatic fun buildAndEnableOverlays(vararg args: Array) { val commands: MutableList = ArrayList() val module: MutableList = ArrayList() @@ -158,7 +153,6 @@ object FabricatedUtil { return commands } - @JvmStatic fun disableOverlay(name: String) { Prefs.putBoolean("fabricated$name", false) Prefs.clearPrefs( @@ -178,7 +172,6 @@ object FabricatedUtil { Shell.cmd(disableCmd).submit() } - @JvmStatic fun disableOverlays(vararg names: String) { val command = StringBuilder() @@ -209,7 +202,6 @@ object FabricatedUtil { ).exec().out[0] == "1" } - @JvmStatic fun isOverlayDisabled(name: String): Boolean { return Shell.cmd( "[[ $(cmd overlay list | grep -o '\\[ \\] com.android.shell:IconifyComponent$name') ]] && echo 1 || echo 0" diff --git a/app/src/main/java/com/drdisagree/iconify/utils/overlay/OverlayUtil.kt b/app/src/main/java/com/drdisagree/iconify/utils/overlay/OverlayUtil.kt index 2e89db68d..8fb872667 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/overlay/OverlayUtil.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/overlay/OverlayUtil.kt @@ -8,37 +8,31 @@ import java.util.Objects object OverlayUtil { - @JvmStatic val overlayList: List get() = Shell.cmd( "cmd overlay list | grep -E '....IconifyComponent' | sed -E 's/^....//'" ).exec().out - @JvmStatic val enabledOverlayList: List get() = Shell.cmd( "cmd overlay list | grep -E '.x..IconifyComponent' | sed -E 's/^.x..//'" ).exec().out - @JvmStatic val disabledOverlayList: List get() = Shell.cmd( "cmd overlay list | grep -E '. ..IconifyComponent' | sed -E 's/^. ..//'" ).exec().out - @JvmStatic fun isOverlayEnabled(pkgName: String): Boolean { return Shell.cmd( "[[ $(cmd overlay list | grep -o '\\[x\\] $pkgName') ]] && echo 1 || echo 0" ).exec().out[0] == "1" } - @JvmStatic fun isOverlayDisabled(pkgName: String): Boolean { return !isOverlayEnabled(pkgName) } - @JvmStatic fun isOverlayInstalled(enabledOverlays: List, pkgName: String): Boolean { for (line in enabledOverlays) { if (line == pkgName) return true @@ -47,7 +41,6 @@ object OverlayUtil { return false } - @JvmStatic fun enableOverlay(pkgName: String) { Prefs.putBoolean(pkgName, true) Shell.cmd( @@ -56,7 +49,6 @@ object OverlayUtil { ).submit() } - @JvmStatic fun enableOverlays(vararg pkgNames: String?) { val command = StringBuilder() @@ -70,7 +62,6 @@ object OverlayUtil { Shell.cmd(command.toString().trim { it <= ' ' }).submit() } - @JvmStatic fun enableOverlayExclusiveInCategory(pkgName: String) { Prefs.putBoolean(pkgName, true) Shell.cmd( @@ -79,7 +70,6 @@ object OverlayUtil { ).submit() } - @JvmStatic fun enableOverlaysExclusiveInCategory(vararg pkgNames: String?) { val command = StringBuilder() @@ -94,13 +84,11 @@ object OverlayUtil { Shell.cmd(command.toString().trim { it <= ' ' }).submit() } - @JvmStatic fun disableOverlay(pkgName: String) { Prefs.putBoolean(pkgName, false) Shell.cmd("cmd overlay disable --user current $pkgName").submit() } - @JvmStatic fun disableOverlays(vararg pkgNames: String?) { val command = StringBuilder() @@ -113,7 +101,6 @@ object OverlayUtil { Shell.cmd(command.toString().trim { it <= ' ' }).submit() } - @JvmStatic fun changeOverlayState(vararg args: Any) { require(args.size % 2 == 0) { "Number of arguments must be even." } @@ -139,7 +126,6 @@ object OverlayUtil { Shell.cmd(command.toString().trim { it <= ' ' }).submit() } - @JvmStatic fun overlayExists(): Boolean { return Shell.cmd( "[ -f /system/product/overlay/IconifyComponentAMGC.apk ] && echo \"found\" || echo \"not found\"" diff --git a/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/DynamicCompiler.kt b/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/DynamicCompiler.kt index 5302528f3..7fed2e366 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/DynamicCompiler.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/DynamicCompiler.kt @@ -24,7 +24,6 @@ object DynamicCompiler { private var mPackage: String? = null private var mForce = false - @JvmStatic @JvmOverloads @Throws(IOException::class) fun buildOverlay(force: Boolean = true): Boolean { diff --git a/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/MonetCompiler.kt b/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/MonetCompiler.kt index 2b07cd703..ad000deba 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/MonetCompiler.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/MonetCompiler.kt @@ -17,7 +17,6 @@ object MonetCompiler { private val TAG = MonetCompiler::class.java.simpleName private var mForce = false - @JvmStatic @Throws(IOException::class) fun buildOverlay(resources: Array, force: Boolean): Boolean { mForce = force diff --git a/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/OnDemandCompiler.kt b/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/OnDemandCompiler.kt index 4cda9c6ae..8b7eb70fb 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/OnDemandCompiler.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/OnDemandCompiler.kt @@ -20,7 +20,6 @@ object OnDemandCompiler { private var mStyle = 0 private var mForce = false - @JvmStatic @Throws(IOException::class) fun buildOverlay( overlayName: String, diff --git a/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/OnboardingCompiler.kt b/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/OnboardingCompiler.kt index f8649fd52..4a393af4a 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/OnboardingCompiler.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/OnboardingCompiler.kt @@ -26,7 +26,6 @@ object OnboardingCompiler { private var key: PrivateKey? = null private var cert: X509Certificate? = null - @JvmStatic fun createManifest(name: String?, target: String?, source: String): Boolean { var hasErroredOut = false var attempt = 3 @@ -46,7 +45,6 @@ object OnboardingCompiler { return !hasErroredOut } - @JvmStatic fun runAapt(source: String, name: String): Boolean { var result: Shell.Result? = null var attempt = 3 @@ -111,7 +109,6 @@ object OnboardingCompiler { return folderCommand + compileCommand + linkCommand } - @JvmStatic fun zipAlign(source: String, name: String): Boolean { var result: Shell.Result? = null var attempt = 3 @@ -154,7 +151,6 @@ object OnboardingCompiler { return !result.isSuccess } - @JvmStatic fun apkSigner(source: String?, name: String): Boolean { try { if (key == null) { diff --git a/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/RoundnessCompiler.kt b/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/RoundnessCompiler.kt index b6eab4d47..f10d79e1f 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/RoundnessCompiler.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/RoundnessCompiler.kt @@ -22,7 +22,6 @@ object RoundnessCompiler { private val mOverlayName = arrayOf("CR1", "CR2") private var mForce = false - @JvmStatic @Throws(IOException::class) fun buildOverlay(resources: Array, force: Boolean): Boolean { mForce = force diff --git a/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/SettingsIconsCompiler.kt b/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/SettingsIconsCompiler.kt index 75aa77eab..7e3778471 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/SettingsIconsCompiler.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/SettingsIconsCompiler.kt @@ -23,7 +23,6 @@ object SettingsIconsCompiler { private var mIconBg = 1 private var mForce = false - @JvmStatic @Throws(IOException::class) fun buildOverlay(iconSet: Int, iconBg: Int, resources: String, force: Boolean): Boolean { mIconSet = iconSet diff --git a/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/VolumeCompiler.kt b/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/VolumeCompiler.kt index 23d272d77..285b2aaaa 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/VolumeCompiler.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/VolumeCompiler.kt @@ -16,7 +16,6 @@ object VolumeCompiler { private val TAG = VolumeCompiler::class.java.simpleName private var mOverlayName: String? = null - @JvmStatic @Throws(Exception::class) fun buildModule(overlayName: String, targetPackage: String): Boolean { mOverlayName = overlayName diff --git a/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/MediaPlayerIconManager.kt b/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/MediaPlayerIconManager.kt index 8447865e1..0d417be07 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/MediaPlayerIconManager.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/MediaPlayerIconManager.kt @@ -6,7 +6,6 @@ import com.drdisagree.iconify.utils.overlay.OverlayUtil.enableOverlayExclusiveIn object MediaPlayerIconManager { - @JvmStatic fun enableOverlay(m: Int, n: Int) { disableOthers(m, n) enableOverlayExclusiveInCategory("IconifyComponentMPIP$m$n.overlay") diff --git a/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/MonetEngineManager.kt b/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/MonetEngineManager.kt index 7554bb860..f591e5f90 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/MonetEngineManager.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/MonetEngineManager.kt @@ -8,7 +8,6 @@ import java.io.IOException object MonetEngineManager { - @JvmStatic @Throws(IOException::class) fun buildOverlay(palette: List>>, force: Boolean): Boolean { val colors = colorNames diff --git a/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/RoundnessManager.kt b/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/RoundnessManager.kt index 9f4a48f93..2254fa44f 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/RoundnessManager.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/RoundnessManager.kt @@ -6,7 +6,6 @@ import kotlin.math.max object RoundnessManager { - @JvmStatic @Throws(IOException::class) fun buildOverlay(cornerRadius: Int, force: Boolean): Boolean { val frameworkResources = """ diff --git a/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/SettingsIconResourceManager.kt b/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/SettingsIconResourceManager.kt index eaa4a4224..452b4e70f 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/SettingsIconResourceManager.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/SettingsIconResourceManager.kt @@ -5,7 +5,6 @@ import java.io.IOException object SettingsIconResourceManager { - @JvmStatic @Throws(IOException::class) fun buildOverlay( iconSet: Int, diff --git a/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/resource/ResourceManager.kt b/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/resource/ResourceManager.kt index 0852ec7c8..b29e098ff 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/resource/ResourceManager.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/resource/ResourceManager.kt @@ -28,7 +28,6 @@ object ResourceManager { private val TAG = ResourceManager::class.java.getSimpleName() - @JvmStatic fun buildOverlayWithResource(vararg resourceEntries: ResourceEntry?): Boolean { val hasErroredOut = AtomicBoolean(false) @@ -42,7 +41,6 @@ object ResourceManager { return hasErroredOut.get() } - @JvmStatic fun buildOverlayWithResource(context: Context?, vararg resourceEntries: ResourceEntry?) { if (!hasStoragePermission()) { requestStoragePermission(context!!) @@ -55,7 +53,6 @@ object ResourceManager { } } - @JvmStatic fun removeResourceFromOverlay(vararg resourceEntries: ResourceEntry?): Boolean { val hasErroredOut = AtomicBoolean(false) @@ -69,7 +66,6 @@ object ResourceManager { return hasErroredOut.get() } - @JvmStatic fun removeResourceFromOverlay(context: Context?, vararg resourceEntries: ResourceEntry?) { if (!hasStoragePermission()) { requestStoragePermission(context!!) From db64e7288ebba8920d9503df20aee9bba7789aa4 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Fri, 28 Jun 2024 18:57:55 +0600 Subject: [PATCH 023/369] QS Clock 9: Refactor colors and margins --- .../drawable/container_background_accent.xml | 5 ++-- .../drawable/time_container_background.xml | 6 ++-- .../res/layout/preview_header_clock_9.xml | 30 +++++++++---------- 3 files changed, 20 insertions(+), 21 deletions(-) diff --git a/app/src/main/res/drawable/container_background_accent.xml b/app/src/main/res/drawable/container_background_accent.xml index 4b49faa7a..6935db8d2 100644 --- a/app/src/main/res/drawable/container_background_accent.xml +++ b/app/src/main/res/drawable/container_background_accent.xml @@ -5,6 +5,5 @@ android:endColor="@android:color/system_accent3_600" android:angle="0"/> - - + android:radius="120dp"/> + \ No newline at end of file diff --git a/app/src/main/res/drawable/time_container_background.xml b/app/src/main/res/drawable/time_container_background.xml index 041dafe31..6fad4b371 100644 --- a/app/src/main/res/drawable/time_container_background.xml +++ b/app/src/main/res/drawable/time_container_background.xml @@ -1,6 +1,6 @@ - - - + + + \ No newline at end of file diff --git a/app/src/main/res/layout/preview_header_clock_9.xml b/app/src/main/res/layout/preview_header_clock_9.xml index f3f917ade..dcbe6ac8e 100644 --- a/app/src/main/res/layout/preview_header_clock_9.xml +++ b/app/src/main/res/layout/preview_header_clock_9.xml @@ -1,5 +1,6 @@ @@ -8,22 +9,24 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/container_background_accent" - android:tag="gradient"> + android:gravity="center_horizontal" + android:tag="gradient" + tools:ignore="UselessParent"> + android:tag="date" + android:textColor="@color/white" + android:textSize="14sp" /> \ No newline at end of file From c08f3cbf32fc825df16a5852495251ca16136e74 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Fri, 28 Jun 2024 21:41:44 +0200 Subject: [PATCH 024/369] QS Clock #9 change gradient orientation according to preview --- .../com/drdisagree/iconify/xposed/modules/utils/ViewHelper.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/ViewHelper.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/ViewHelper.kt index 80d6de7c8..e3e4779ee 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/ViewHelper.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/ViewHelper.kt @@ -118,6 +118,7 @@ object ViewHelper { val drawable = GradientDrawable() drawable.colors = intArrayOf(color1, color2) + drawable.orientation = GradientDrawable.Orientation.LEFT_RIGHT drawable.cornerRadius = view.context.toPx(cornerRadius).toFloat() if (view is ViewGroup) { From 83eada3df0e08298a6b1473c75319b06cc305a94 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Thu, 4 Jul 2024 17:22:04 +0600 Subject: [PATCH 025/369] LS Clock: Add text clock style (closes #533) --- .../ui/adapters/ClockPreviewAdapter.kt | 21 +- .../iconify/xposed/modules/LockscreenClock.kt | 10 + .../iconify/xposed/modules/utils/TimeUtils.kt | 198 ++++++++++++------ .../layout/preview_lockscreen_clock_22.xml | 60 ++++++ 4 files changed, 206 insertions(+), 83 deletions(-) create mode 100644 app/src/main/res/layout/preview_lockscreen_clock_22.xml diff --git a/app/src/main/java/com/drdisagree/iconify/ui/adapters/ClockPreviewAdapter.kt b/app/src/main/java/com/drdisagree/iconify/ui/adapters/ClockPreviewAdapter.kt index 4c667be92..ab9b82df8 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/adapters/ClockPreviewAdapter.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/adapters/ClockPreviewAdapter.kt @@ -67,21 +67,12 @@ class ClockPreviewAdapter( inner class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val container: LinearLayout - private val title: TextView - private val clockContainer: LinearLayout - val checkIcon: ImageView - val button: MaterialButton - private val wallpaperView: ImageView - - init { - container = itemView.findViewById(R.id.clock_preview_child) - title = itemView.findViewById(R.id.clock_title) - clockContainer = itemView.findViewById(R.id.clock_view_container) - checkIcon = itemView.findViewById(R.id.icon_selected) - button = itemView.findViewById(R.id.btn_select_style) - wallpaperView = itemView.findViewById(R.id.wallpaper_view) - } + val container: LinearLayout = itemView.findViewById(R.id.clock_preview_child) + private val title: TextView = itemView.findViewById(R.id.clock_title) + private val clockContainer: LinearLayout = itemView.findViewById(R.id.clock_view_container) + val checkIcon: ImageView = itemView.findViewById(R.id.icon_selected) + val button: MaterialButton = itemView.findViewById(R.id.btn_select_style) + private val wallpaperView: ImageView = itemView.findViewById(R.id.wallpaper_view) fun bind(model: ClockModel, position: Int) { title.text = model.title diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenClock.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenClock.kt index 8038d41ad..72582cf71 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenClock.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenClock.kt @@ -29,6 +29,7 @@ import android.widget.ImageView import android.widget.LinearLayout import android.widget.ProgressBar import android.widget.RelativeLayout +import android.widget.TextClock import android.widget.TextView import androidx.core.content.ContextCompat import androidx.core.content.res.ResourcesCompat @@ -57,6 +58,7 @@ import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.utils.TextUtil import com.drdisagree.iconify.xposed.ModPack import com.drdisagree.iconify.xposed.modules.utils.ArcProgressWidget.generateBitmap +import com.drdisagree.iconify.xposed.modules.utils.TimeUtils import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.applyFontRecursively import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.applyTextMarginRecursively import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.applyTextScalingRecursively @@ -498,6 +500,14 @@ class LockscreenClock(context: Context?) : ModPack(context!!) { (clockView.findViewContainsTag("device_name") as TextView).text = Build.MODEL } + 22 -> { + val hourView = clockView.findViewContainsTag("textHour") as TextView + val minuteView = clockView.findViewContainsTag("textMinute") as TextView + val tickIndicator = clockView.findViewContainsTag("tickIndicator") as TextClock + + TimeUtils.setCurrentTimeTextClock(mContext, tickIndicator, hourView, minuteView) + } + else -> { mBatteryStatusView = null mBatteryLevelView = null diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/TimeUtils.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/TimeUtils.kt index 5a56c2ab1..c5f1e9aa6 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/TimeUtils.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/TimeUtils.kt @@ -1,82 +1,90 @@ package com.drdisagree.iconify.xposed.modules.utils import android.content.Context +import android.text.Editable +import android.text.TextWatcher import android.text.format.DateFormat +import android.widget.TextClock +import android.widget.TextView import de.robv.android.xposed.XposedBridge import java.text.SimpleDateFormat +import java.util.Calendar import java.util.Date import java.util.Locale object TimeUtils { private val TAG = "Iconify - ${TimeUtils::class.java.simpleName}: " + private val numbers = arrayOf( + "Zero", + "One", + "Two", + "Three", + "Four", + "Five", + "Six", + "Seven", + "Eight", + "Nine", + "Ten", + "Eleven", + "Twelve", + "Thirteen", + "Fourteen", + "Fifteen", + "Sixteen", + "Seventeen", + "Eighteen", + "Nineteen", + "Twenty", + "Twenty One", + "Twenty Two", + "Twenty Three", + "Twenty Four", + "Twenty Five", + "Twenty Six", + "Twenty Seven", + "Twenty Eight", + "Twenty Nine", + "Thirty", + "Thirty One", + "Thirty Two", + "Thirty Three", + "Thirty Four", + "Thirty Five", + "Thirty Six", + "Thirty Seven", + "Thirty Eight", + "Thirty Nine", + "Forty", + "Forty One", + "Forty Two", + "Forty Three", + "Forty Four", + "Forty Five", + "Forty Six", + "Forty Seven", + "Forty Eight", + "Forty Nine", + "Fifty", + "Fifty One", + "Fifty Two", + "Fifty Three", + "Fifty Four", + "Fifty Five", + "Fifty Six", + "Fifty Seven", + "Fifty Eight", + "Fifty Nine", + "Sixty" + ) - fun getNumericToText(number: String): String { - val num = number.toInt() - val numbers = arrayOf( - "Zero", - "One", - "Two", - "Three", - "Four", - "Five", - "Six", - "Seven", - "Eight", - "Nine", - "Ten", - "Eleven", - "Twelve", - "Thirteen", - "Fourteen", - "Fifteen", - "Sixteen", - "Seventeen", - "Eighteen", - "Nineteen", - "Twenty", - "Twenty One", - "Twenty Two", - "Twenty Three", - "Twenty Four", - "Twenty Five", - "Twenty Six", - "Twenty Seven", - "Twenty Eight", - "Twenty Nine", - "Thirty", - "Thirty One", - "Thirty Two", - "Thirty Three", - "Thirty Four", - "Thirty Five", - "Thirty Six", - "Thirty Seven", - "Thirty Eight", - "Thirty Nine", - "Forty", - "Forty One", - "Forty Two", - "Forty Three", - "Forty Four", - "Forty Five", - "Forty Six", - "Forty Seven", - "Forty Eight", - "Forty Nine", - "Fifty", - "Fifty One", - "Fifty Two", - "Fifty Three", - "Fifty Four", - "Fifty Five", - "Fifty Six", - "Fifty Seven", - "Fifty Eight", - "Fifty Nine", - "Sixty" - ) - return numbers[num] + private fun convertNumberToText(number: String): String { + return try { + numbers[number.toInt()] + } catch (throwable: Throwable) { + number + } } fun regionFormattedDate(usFormat: String?, euFormat: String?): String { @@ -96,11 +104,65 @@ object TimeUtils { return SimpleDateFormat(usFormat, Locale.getDefault()).format(Date()) } - fun formatTime(context: Context?, format24H: String?, format12H: String?): String { + fun formatTime(context: Context, format24H: String, format12H: String): String { return formatTime(if (DateFormat.is24HourFormat(context)) format24H else format12H) } - fun formatTime(format: String?): String { + fun formatTime(format: String): String { return SimpleDateFormat(format, Locale.getDefault()).format(Date()) } + + fun setCurrentTimeTextClock( + context: Context, + tickIndicator: TextClock, + hourView: TextView, + minuteView: TextView + ) { + setCurrentTimeHour(context, hourView) + setCurrentTimeMinute(minuteView) + + setupTextClockListener(context, tickIndicator, hourView, true) + setupTextClockListener(context, tickIndicator, minuteView, false) + } + + private fun setupTextClockListener( + context: Context, + tickIndicator: TextClock, + textView: TextView, + isHour: Boolean + ) { + tickIndicator.addTextChangedListener(object : TextWatcher { + override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {} + + override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {} + + override fun afterTextChanged(s: Editable?) { + if (!s.isNullOrEmpty()) { + if (isHour) { + setCurrentTimeHour(context, textView) + } else { + setCurrentTimeMinute(textView) + } + } + } + }) + } + + private fun setCurrentTimeHour(context: Context, hourView: TextView) { + val hourFormat = if (DateFormat.is24HourFormat(context)) "HH" else "hh" + val hour = SimpleDateFormat( + hourFormat, + Locale.getDefault() + ).format(Calendar.getInstance().time) + hourView.text = convertNumberToText(hour) + } + + private fun setCurrentTimeMinute(minuteView: TextView) { + val minuteFormat = "mm" + val minute = SimpleDateFormat( + minuteFormat, + Locale.getDefault() + ).format(Calendar.getInstance().time) + minuteView.text = convertNumberToText(minute) + } } diff --git a/app/src/main/res/layout/preview_lockscreen_clock_22.xml b/app/src/main/res/layout/preview_lockscreen_clock_22.xml new file mode 100644 index 000000000..c921df5ff --- /dev/null +++ b/app/src/main/res/layout/preview_lockscreen_clock_22.xml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + From 7678fb911e50c3e35b4e2a151411bd414070aebe Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Sat, 6 Jul 2024 13:24:30 +0600 Subject: [PATCH 026/369] LS Clock 22: Refactor text changed listener --- .../iconify/xposed/modules/utils/TimeUtils.kt | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/TimeUtils.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/TimeUtils.kt index c5f1e9aa6..68224088c 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/TimeUtils.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/TimeUtils.kt @@ -121,16 +121,6 @@ object TimeUtils { setCurrentTimeHour(context, hourView) setCurrentTimeMinute(minuteView) - setupTextClockListener(context, tickIndicator, hourView, true) - setupTextClockListener(context, tickIndicator, minuteView, false) - } - - private fun setupTextClockListener( - context: Context, - tickIndicator: TextClock, - textView: TextView, - isHour: Boolean - ) { tickIndicator.addTextChangedListener(object : TextWatcher { override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {} @@ -138,11 +128,8 @@ object TimeUtils { override fun afterTextChanged(s: Editable?) { if (!s.isNullOrEmpty()) { - if (isHour) { - setCurrentTimeHour(context, textView) - } else { - setCurrentTimeMinute(textView) - } + setCurrentTimeHour(context, hourView) + setCurrentTimeMinute(minuteView) } } }) From c8fb32537c48b8580a5c55e3386d14c790d564b4 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Sat, 6 Jul 2024 14:10:08 +0200 Subject: [PATCH 027/369] Improve Battery Item for preview --- app/src/main/res/layout/view_list_icon_item.xml | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/src/main/res/layout/view_list_icon_item.xml b/app/src/main/res/layout/view_list_icon_item.xml index c0f2ca59e..8a0f7662c 100644 --- a/app/src/main/res/layout/view_list_icon_item.xml +++ b/app/src/main/res/layout/view_list_icon_item.xml @@ -3,7 +3,6 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="120dp" android:layout_height="wrap_content" - android:layout_gravity="center_horizontal" android:orientation="vertical"> - \ No newline at end of file From bc3807cabc4fb327c8f999cb3f83bd52c5872bf8 Mon Sep 17 00:00:00 2001 From: Crowdin Bot Date: Sun, 7 Jul 2024 00:14:38 +0000 Subject: [PATCH 028/369] New Crowdin translations by GitHub Action --- app/src/main/res/values-ru-rRU/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml index ed7fe4752..72c823838 100644 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ b/app/src/main/res/values-ru-rRU/strings.xml @@ -457,7 +457,7 @@ Показывать подпись под иконкой в быстрых настройках Скрыть подписи плиток быстрых настроек Используйте только с вертикальными плитками - Text Size Scaling + Масштабирование размера текста Отступ быстрых настроек Элементы быстрых настроек Скрыть надпись Без звука у уведомлений From 84c13c2056bed6096e2e35374d7690fa015f9e8a Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Sun, 7 Jul 2024 12:38:04 +0200 Subject: [PATCH 029/369] New LS Clock --- .../layout/preview_lockscreen_clock_23.xml | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 app/src/main/res/layout/preview_lockscreen_clock_23.xml diff --git a/app/src/main/res/layout/preview_lockscreen_clock_23.xml b/app/src/main/res/layout/preview_lockscreen_clock_23.xml new file mode 100644 index 000000000..bef8a5038 --- /dev/null +++ b/app/src/main/res/layout/preview_lockscreen_clock_23.xml @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + From 86531449d8c451be94dff01ff423c876ee376962 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Tue, 9 Jul 2024 23:46:05 +0200 Subject: [PATCH 030/369] Added Signal & WiFi icons --- app/src/main/AndroidManifest.xml | 2 + .../drawable/ic_signal_cellular_0_4_bar.xml | 8 + .../drawable/ic_signal_cellular_0_5_bar.xml | 8 + .../drawable/ic_signal_cellular_1_4_bar.xml | 10 + .../drawable/ic_signal_cellular_1_5_bar.xml | 10 + .../drawable/ic_signal_cellular_2_4_bar.xml | 12 ++ .../drawable/ic_signal_cellular_2_5_bar.xml | 12 ++ .../drawable/ic_signal_cellular_3_4_bar.xml | 13 ++ .../drawable/ic_signal_cellular_3_5_bar.xml | 13 ++ .../drawable/ic_signal_cellular_4_4_bar.xml | 15 ++ .../drawable/ic_signal_cellular_4_5_bar.xml | 15 ++ .../drawable/ic_signal_cellular_5_5_bar.xml | 15 ++ .../android/SGIC1/res/values/strings.xml | 24 +++ .../drawable/ic_signal_cellular_0_4_bar.xml | 5 + .../drawable/ic_signal_cellular_0_5_bar.xml | 5 + .../drawable/ic_signal_cellular_1_4_bar.xml | 6 + .../drawable/ic_signal_cellular_1_5_bar.xml | 6 + .../drawable/ic_signal_cellular_2_4_bar.xml | 6 + .../drawable/ic_signal_cellular_2_5_bar.xml | 6 + .../drawable/ic_signal_cellular_3_4_bar.xml | 6 + .../drawable/ic_signal_cellular_3_5_bar.xml | 6 + .../drawable/ic_signal_cellular_4_4_bar.xml | 5 + .../drawable/ic_signal_cellular_4_5_bar.xml | 5 + .../drawable/ic_signal_cellular_5_5_bar.xml | 5 + .../android/SGIC10/res/values/strings.xml | 24 +++ .../drawable/ic_signal_cellular_0_4_bar.xml | 29 +++ .../drawable/ic_signal_cellular_0_5_bar.xml | 29 +++ .../drawable/ic_signal_cellular_1_4_bar.xml | 29 +++ .../drawable/ic_signal_cellular_1_5_bar.xml | 29 +++ .../drawable/ic_signal_cellular_2_4_bar.xml | 29 +++ .../drawable/ic_signal_cellular_2_5_bar.xml | 29 +++ .../drawable/ic_signal_cellular_3_4_bar.xml | 29 +++ .../drawable/ic_signal_cellular_3_5_bar.xml | 29 +++ .../drawable/ic_signal_cellular_4_4_bar.xml | 29 +++ .../drawable/ic_signal_cellular_4_5_bar.xml | 29 +++ .../drawable/ic_signal_cellular_5_5_bar.xml | 29 +++ .../android/SGIC11/res/values/strings.xml | 24 +++ .../SGIC12/res/drawable/ic_1x_mobiledata.xml | 40 ++++ .../SGIC12/res/drawable/ic_3g_mobiledata.xml | 52 +++++ .../SGIC12/res/drawable/ic_4g_mobiledata.xml | 52 +++++ .../res/drawable/ic_4g_plus_mobiledata.xml | 60 ++++++ .../res/drawable/ic_5g_e_mobiledata.xml | 60 ++++++ .../SGIC12/res/drawable/ic_5g_mobiledata.xml | 52 +++++ .../res/drawable/ic_5g_plus_mobiledata.xml | 60 ++++++ .../res/drawable/ic_5g_uc_mobiledata.xml | 52 +++++ .../res/drawable/ic_5g_uw_mobiledata.xml | 52 +++++ .../SGIC12/res/drawable/ic_e_mobiledata.xml | 52 +++++ .../SGIC12/res/drawable/ic_g_mobiledata.xml | 40 ++++ .../SGIC12/res/drawable/ic_h_mobiledata.xml | 46 +++++ .../res/drawable/ic_h_plus_mobiledata.xml | 54 ++++++ .../SGIC12/res/drawable/ic_lte_mobiledata.xml | 76 ++++++++ .../res/drawable/ic_lte_plus_mobiledata.xml | 84 ++++++++ .../drawable/ic_signal_cellular_0_4_bar.xml | 68 +++++++ .../drawable/ic_signal_cellular_0_5_bar.xml | 68 +++++++ .../drawable/ic_signal_cellular_1_4_bar.xml | 60 ++++++ .../drawable/ic_signal_cellular_1_5_bar.xml | 60 ++++++ .../drawable/ic_signal_cellular_2_4_bar.xml | 60 ++++++ .../drawable/ic_signal_cellular_2_5_bar.xml | 60 ++++++ .../drawable/ic_signal_cellular_3_4_bar.xml | 60 ++++++ .../drawable/ic_signal_cellular_3_5_bar.xml | 60 ++++++ .../drawable/ic_signal_cellular_4_4_bar.xml | 60 ++++++ .../drawable/ic_signal_cellular_4_5_bar.xml | 60 ++++++ .../drawable/ic_signal_cellular_5_5_bar.xml | 60 ++++++ .../android/SGIC12/res/values/strings.xml | 24 +++ .../drawable/ic_signal_cellular_0_4_bar.xml | 15 ++ .../drawable/ic_signal_cellular_0_5_bar.xml | 15 ++ .../drawable/ic_signal_cellular_1_4_bar.xml | 15 ++ .../drawable/ic_signal_cellular_1_5_bar.xml | 15 ++ .../drawable/ic_signal_cellular_2_4_bar.xml | 15 ++ .../drawable/ic_signal_cellular_2_5_bar.xml | 15 ++ .../drawable/ic_signal_cellular_3_4_bar.xml | 15 ++ .../drawable/ic_signal_cellular_3_5_bar.xml | 15 ++ .../drawable/ic_signal_cellular_4_4_bar.xml | 15 ++ .../drawable/ic_signal_cellular_4_5_bar.xml | 15 ++ .../drawable/ic_signal_cellular_5_5_bar.xml | 15 ++ .../android/SGIC13/res/values/strings.xml | 24 +++ .../SGIC14/res/drawable/ic_1x_mobiledata.xml | 30 +++ .../SGIC14/res/drawable/ic_3g_mobiledata.xml | 22 +++ .../SGIC14/res/drawable/ic_4g_mobiledata.xml | 22 +++ .../res/drawable/ic_4g_plus_mobiledata.xml | 38 ++++ .../res/drawable/ic_5g_e_mobiledata.xml | 30 +++ .../SGIC14/res/drawable/ic_5g_mobiledata.xml | 22 +++ .../res/drawable/ic_5g_plus_mobiledata.xml | 38 ++++ .../res/drawable/ic_5g_uc_mobiledata.xml | 22 +++ .../res/drawable/ic_5g_uw_mobiledata.xml | 22 +++ .../SGIC14/res/drawable/ic_e_mobiledata.xml | 14 ++ .../SGIC14/res/drawable/ic_g_mobiledata.xml | 14 ++ .../SGIC14/res/drawable/ic_h_mobiledata.xml | 30 +++ .../res/drawable/ic_h_plus_mobiledata.xml | 46 +++++ .../SGIC14/res/drawable/ic_lte_mobiledata.xml | 30 +++ .../res/drawable/ic_lte_plus_mobiledata.xml | 46 +++++ .../drawable/ic_signal_cellular_0_4_bar.xml | 14 ++ .../drawable/ic_signal_cellular_0_5_bar.xml | 14 ++ .../drawable/ic_signal_cellular_1_4_bar.xml | 22 +++ .../drawable/ic_signal_cellular_1_5_bar.xml | 22 +++ .../drawable/ic_signal_cellular_2_4_bar.xml | 22 +++ .../drawable/ic_signal_cellular_2_5_bar.xml | 22 +++ .../drawable/ic_signal_cellular_3_4_bar.xml | 22 +++ .../drawable/ic_signal_cellular_3_5_bar.xml | 22 +++ .../drawable/ic_signal_cellular_4_4_bar.xml | 22 +++ .../drawable/ic_signal_cellular_4_5_bar.xml | 22 +++ .../drawable/ic_signal_cellular_5_5_bar.xml | 22 +++ .../android/SGIC14/res/values/strings.xml | 24 +++ .../SGIC15/res/drawable/ic_1x_mobiledata.xml | 51 +++++ .../SGIC15/res/drawable/ic_3g_mobiledata.xml | 51 +++++ .../SGIC15/res/drawable/ic_4g_mobiledata.xml | 51 +++++ .../res/drawable/ic_4g_plus_mobiledata.xml | 51 +++++ .../res/drawable/ic_5g_e_mobiledata.xml | 51 +++++ .../SGIC15/res/drawable/ic_5g_mobiledata.xml | 51 +++++ .../res/drawable/ic_5g_plus_mobiledata.xml | 51 +++++ .../res/drawable/ic_5g_uc_mobiledata.xml | 51 +++++ .../res/drawable/ic_5g_uw_mobiledata.xml | 51 +++++ .../SGIC15/res/drawable/ic_e_mobiledata.xml | 51 +++++ .../SGIC15/res/drawable/ic_g_mobiledata.xml | 51 +++++ .../SGIC15/res/drawable/ic_h_mobiledata.xml | 51 +++++ .../res/drawable/ic_h_plus_mobiledata.xml | 51 +++++ .../SGIC15/res/drawable/ic_lte_mobiledata.xml | 51 +++++ .../res/drawable/ic_lte_plus_mobiledata.xml | 51 +++++ .../drawable/ic_signal_cellular_0_4_bar.xml | 183 ++++++++++++++++++ .../drawable/ic_signal_cellular_0_5_bar.xml | 183 ++++++++++++++++++ .../drawable/ic_signal_cellular_1_4_bar.xml | 183 ++++++++++++++++++ .../drawable/ic_signal_cellular_1_5_bar.xml | 183 ++++++++++++++++++ .../drawable/ic_signal_cellular_2_4_bar.xml | 183 ++++++++++++++++++ .../drawable/ic_signal_cellular_2_5_bar.xml | 183 ++++++++++++++++++ .../drawable/ic_signal_cellular_3_4_bar.xml | 183 ++++++++++++++++++ .../drawable/ic_signal_cellular_3_5_bar.xml | 183 ++++++++++++++++++ .../drawable/ic_signal_cellular_4_4_bar.xml | 183 ++++++++++++++++++ .../drawable/ic_signal_cellular_4_5_bar.xml | 183 ++++++++++++++++++ .../drawable/ic_signal_cellular_5_5_bar.xml | 183 ++++++++++++++++++ .../android/SGIC15/res/values/strings.xml | 24 +++ .../drawable/ic_signal_cellular_0_4_bar.xml | 21 ++ .../drawable/ic_signal_cellular_0_5_bar.xml | 21 ++ .../drawable/ic_signal_cellular_1_4_bar.xml | 21 ++ .../drawable/ic_signal_cellular_1_5_bar.xml | 21 ++ .../drawable/ic_signal_cellular_2_4_bar.xml | 21 ++ .../drawable/ic_signal_cellular_2_5_bar.xml | 21 ++ .../drawable/ic_signal_cellular_3_4_bar.xml | 21 ++ .../drawable/ic_signal_cellular_3_5_bar.xml | 21 ++ .../drawable/ic_signal_cellular_4_4_bar.xml | 21 ++ .../drawable/ic_signal_cellular_4_5_bar.xml | 21 ++ .../drawable/ic_signal_cellular_5_5_bar.xml | 21 ++ .../android/SGIC16/res/values/strings.xml | 24 +++ .../drawable/ic_signal_cellular_0_4_bar.xml | 6 + .../drawable/ic_signal_cellular_0_5_bar.xml | 6 + .../drawable/ic_signal_cellular_1_4_bar.xml | 7 + .../drawable/ic_signal_cellular_1_5_bar.xml | 7 + .../drawable/ic_signal_cellular_2_4_bar.xml | 7 + .../drawable/ic_signal_cellular_2_5_bar.xml | 7 + .../drawable/ic_signal_cellular_3_4_bar.xml | 7 + .../drawable/ic_signal_cellular_3_5_bar.xml | 7 + .../drawable/ic_signal_cellular_4_4_bar.xml | 7 + .../drawable/ic_signal_cellular_4_5_bar.xml | 7 + .../drawable/ic_signal_cellular_5_5_bar.xml | 7 + .../android/SGIC17/res/values/strings.xml | 24 +++ .../drawable/ic_signal_cellular_0_4_bar.xml | 13 ++ .../drawable/ic_signal_cellular_0_5_bar.xml | 13 ++ .../drawable/ic_signal_cellular_1_4_bar.xml | 13 ++ .../drawable/ic_signal_cellular_1_5_bar.xml | 13 ++ .../drawable/ic_signal_cellular_2_4_bar.xml | 13 ++ .../drawable/ic_signal_cellular_2_5_bar.xml | 13 ++ .../drawable/ic_signal_cellular_3_4_bar.xml | 13 ++ .../drawable/ic_signal_cellular_3_5_bar.xml | 13 ++ .../drawable/ic_signal_cellular_4_4_bar.xml | 13 ++ .../drawable/ic_signal_cellular_4_5_bar.xml | 13 ++ .../drawable/ic_signal_cellular_5_5_bar.xml | 13 ++ .../android/SGIC18/res/values/strings.xml | 24 +++ .../drawable/ic_signal_cellular_0_4_bar.xml | 7 + .../drawable/ic_signal_cellular_0_5_bar.xml | 7 + .../drawable/ic_signal_cellular_1_4_bar.xml | 11 ++ .../drawable/ic_signal_cellular_1_5_bar.xml | 11 ++ .../drawable/ic_signal_cellular_2_4_bar.xml | 11 ++ .../drawable/ic_signal_cellular_2_5_bar.xml | 11 ++ .../drawable/ic_signal_cellular_3_4_bar.xml | 11 ++ .../drawable/ic_signal_cellular_3_5_bar.xml | 11 ++ .../drawable/ic_signal_cellular_4_4_bar.xml | 11 ++ .../drawable/ic_signal_cellular_4_5_bar.xml | 11 ++ .../drawable/ic_signal_cellular_5_5_bar.xml | 11 ++ .../android/SGIC19/res/values/strings.xml | 24 +++ .../SGIC2/res/drawable/ic_1x_mobiledata.xml | 46 +++++ .../SGIC2/res/drawable/ic_3g_mobiledata.xml | 38 ++++ .../SGIC2/res/drawable/ic_4g_mobiledata.xml | 46 +++++ .../res/drawable/ic_4g_plus_mobiledata.xml | 62 ++++++ .../SGIC2/res/drawable/ic_5g_e_mobiledata.xml | 54 ++++++ .../SGIC2/res/drawable/ic_5g_mobiledata.xml | 38 ++++ .../res/drawable/ic_5g_plus_mobiledata.xml | 54 ++++++ .../res/drawable/ic_5g_uc_mobiledata.xml | 38 ++++ .../res/drawable/ic_5g_uw_mobiledata.xml | 38 ++++ .../SGIC2/res/drawable/ic_e_mobiledata.xml | 38 ++++ .../SGIC2/res/drawable/ic_g_mobiledata.xml | 30 +++ .../SGIC2/res/drawable/ic_h_mobiledata.xml | 46 +++++ .../res/drawable/ic_h_plus_mobiledata.xml | 62 ++++++ .../SGIC2/res/drawable/ic_lte_mobiledata.xml | 62 ++++++ .../res/drawable/ic_lte_plus_mobiledata.xml | 78 ++++++++ .../drawable/ic_signal_cellular_0_4_bar.xml | 14 ++ .../drawable/ic_signal_cellular_0_5_bar.xml | 14 ++ .../drawable/ic_signal_cellular_1_4_bar.xml | 22 +++ .../drawable/ic_signal_cellular_1_5_bar.xml | 22 +++ .../drawable/ic_signal_cellular_2_4_bar.xml | 30 +++ .../drawable/ic_signal_cellular_2_5_bar.xml | 30 +++ .../drawable/ic_signal_cellular_3_4_bar.xml | 38 ++++ .../drawable/ic_signal_cellular_3_5_bar.xml | 38 ++++ .../drawable/ic_signal_cellular_4_4_bar.xml | 38 ++++ .../drawable/ic_signal_cellular_4_5_bar.xml | 38 ++++ .../drawable/ic_signal_cellular_5_5_bar.xml | 38 ++++ .../android/SGIC2/res/values/strings.xml | 24 +++ .../drawable/ic_signal_cellular_0_4_bar.xml | 7 + .../drawable/ic_signal_cellular_0_5_bar.xml | 7 + .../drawable/ic_signal_cellular_1_4_bar.xml | 7 + .../drawable/ic_signal_cellular_1_5_bar.xml | 7 + .../drawable/ic_signal_cellular_2_4_bar.xml | 7 + .../drawable/ic_signal_cellular_2_5_bar.xml | 7 + .../drawable/ic_signal_cellular_3_4_bar.xml | 7 + .../drawable/ic_signal_cellular_3_5_bar.xml | 7 + .../drawable/ic_signal_cellular_4_4_bar.xml | 7 + .../drawable/ic_signal_cellular_4_5_bar.xml | 7 + .../drawable/ic_signal_cellular_5_5_bar.xml | 7 + .../res/drawable/ic_signal_location.xml | 4 + .../android/SGIC20/res/values/strings.xml | 24 +++ .../drawable/ic_signal_cellular_0_4_bar.xml | 7 + .../drawable/ic_signal_cellular_0_5_bar.xml | 7 + .../drawable/ic_signal_cellular_1_4_bar.xml | 9 + .../drawable/ic_signal_cellular_1_5_bar.xml | 9 + .../drawable/ic_signal_cellular_2_4_bar.xml | 11 ++ .../drawable/ic_signal_cellular_2_5_bar.xml | 11 ++ .../drawable/ic_signal_cellular_3_4_bar.xml | 11 ++ .../drawable/ic_signal_cellular_3_5_bar.xml | 11 ++ .../drawable/ic_signal_cellular_4_4_bar.xml | 13 ++ .../drawable/ic_signal_cellular_4_5_bar.xml | 13 ++ .../drawable/ic_signal_cellular_5_5_bar.xml | 13 ++ .../android/SGIC21/res/values/strings.xml | 24 +++ .../drawable/ic_signal_cellular_0_4_bar.xml | 15 ++ .../drawable/ic_signal_cellular_0_5_bar.xml | 15 ++ .../drawable/ic_signal_cellular_1_4_bar.xml | 15 ++ .../drawable/ic_signal_cellular_1_5_bar.xml | 15 ++ .../drawable/ic_signal_cellular_2_4_bar.xml | 15 ++ .../drawable/ic_signal_cellular_2_5_bar.xml | 15 ++ .../drawable/ic_signal_cellular_3_4_bar.xml | 15 ++ .../drawable/ic_signal_cellular_3_5_bar.xml | 15 ++ .../drawable/ic_signal_cellular_4_4_bar.xml | 15 ++ .../drawable/ic_signal_cellular_4_5_bar.xml | 15 ++ .../drawable/ic_signal_cellular_5_5_bar.xml | 15 ++ .../android/SGIC22/res/values/strings.xml | 24 +++ .../SGIC23/res/drawable/ic_1x_mobiledata.xml | 30 +++ .../SGIC23/res/drawable/ic_3g_mobiledata.xml | 27 +++ .../SGIC23/res/drawable/ic_4g_mobiledata.xml | 27 +++ .../res/drawable/ic_4g_plus_mobiledata.xml | 37 ++++ .../res/drawable/ic_5g_e_mobiledata.xml | 47 +++++ .../SGIC23/res/drawable/ic_5g_mobiledata.xml | 27 +++ .../res/drawable/ic_5g_plus_mobiledata.xml | 37 ++++ .../res/drawable/ic_5g_uc_mobiledata.xml | 27 +++ .../res/drawable/ic_5g_uw_mobiledata.xml | 27 +++ .../SGIC23/res/drawable/ic_e_mobiledata.xml | 27 +++ .../SGIC23/res/drawable/ic_g_mobiledata.xml | 17 ++ .../SGIC23/res/drawable/ic_h_mobiledata.xml | 22 +++ .../res/drawable/ic_h_plus_mobiledata.xml | 32 +++ .../SGIC23/res/drawable/ic_lte_mobiledata.xml | 47 +++++ .../res/drawable/ic_lte_plus_mobiledata.xml | 57 ++++++ .../drawable/ic_signal_cellular_0_4_bar.xml | 22 +++ .../drawable/ic_signal_cellular_0_5_bar.xml | 22 +++ .../drawable/ic_signal_cellular_1_4_bar.xml | 22 +++ .../drawable/ic_signal_cellular_1_5_bar.xml | 22 +++ .../drawable/ic_signal_cellular_2_4_bar.xml | 22 +++ .../drawable/ic_signal_cellular_2_5_bar.xml | 27 +++ .../drawable/ic_signal_cellular_3_4_bar.xml | 22 +++ .../drawable/ic_signal_cellular_3_5_bar.xml | 22 +++ .../drawable/ic_signal_cellular_4_4_bar.xml | 22 +++ .../drawable/ic_signal_cellular_4_5_bar.xml | 27 +++ .../drawable/ic_signal_cellular_5_5_bar.xml | 22 +++ .../android/SGIC23/res/values/strings.xml | 24 +++ .../drawable/ic_signal_cellular_0_4_bar.xml | 19 ++ .../drawable/ic_signal_cellular_0_5_bar.xml | 19 ++ .../drawable/ic_signal_cellular_1_4_bar.xml | 19 ++ .../drawable/ic_signal_cellular_1_5_bar.xml | 19 ++ .../drawable/ic_signal_cellular_2_4_bar.xml | 19 ++ .../drawable/ic_signal_cellular_2_5_bar.xml | 19 ++ .../drawable/ic_signal_cellular_3_4_bar.xml | 19 ++ .../drawable/ic_signal_cellular_3_5_bar.xml | 19 ++ .../drawable/ic_signal_cellular_4_4_bar.xml | 19 ++ .../drawable/ic_signal_cellular_4_5_bar.xml | 19 ++ .../drawable/ic_signal_cellular_5_5_bar.xml | 19 ++ .../android/SGIC24/res/values/strings.xml | 24 +++ .../drawable/ic_signal_cellular_0_4_bar.xml | 9 + .../drawable/ic_signal_cellular_0_5_bar.xml | 9 + .../drawable/ic_signal_cellular_1_4_bar.xml | 7 + .../drawable/ic_signal_cellular_1_5_bar.xml | 7 + .../drawable/ic_signal_cellular_2_4_bar.xml | 9 + .../drawable/ic_signal_cellular_2_5_bar.xml | 9 + .../drawable/ic_signal_cellular_3_4_bar.xml | 11 ++ .../drawable/ic_signal_cellular_3_5_bar.xml | 11 ++ .../drawable/ic_signal_cellular_4_4_bar.xml | 11 ++ .../drawable/ic_signal_cellular_4_5_bar.xml | 11 ++ .../drawable/ic_signal_cellular_5_5_bar.xml | 9 + .../android/SGIC25/res/values/strings.xml | 24 +++ .../drawable/ic_signal_cellular_0_4_bar.xml | 5 + .../drawable/ic_signal_cellular_0_5_bar.xml | 5 + .../drawable/ic_signal_cellular_1_4_bar.xml | 6 + .../drawable/ic_signal_cellular_1_5_bar.xml | 6 + .../drawable/ic_signal_cellular_2_4_bar.xml | 6 + .../drawable/ic_signal_cellular_2_5_bar.xml | 6 + .../drawable/ic_signal_cellular_3_4_bar.xml | 6 + .../drawable/ic_signal_cellular_3_5_bar.xml | 6 + .../drawable/ic_signal_cellular_4_4_bar.xml | 5 + .../drawable/ic_signal_cellular_4_5_bar.xml | 5 + .../drawable/ic_signal_cellular_5_5_bar.xml | 5 + .../android/SGIC26/res/values/strings.xml | 24 +++ .../drawable/ic_signal_cellular_0_4_bar.xml | 15 ++ .../drawable/ic_signal_cellular_0_5_bar.xml | 15 ++ .../drawable/ic_signal_cellular_1_4_bar.xml | 15 ++ .../drawable/ic_signal_cellular_1_5_bar.xml | 15 ++ .../drawable/ic_signal_cellular_2_4_bar.xml | 15 ++ .../drawable/ic_signal_cellular_2_5_bar.xml | 15 ++ .../drawable/ic_signal_cellular_3_4_bar.xml | 15 ++ .../drawable/ic_signal_cellular_3_5_bar.xml | 15 ++ .../drawable/ic_signal_cellular_4_4_bar.xml | 15 ++ .../drawable/ic_signal_cellular_4_5_bar.xml | 15 ++ .../drawable/ic_signal_cellular_5_5_bar.xml | 15 ++ .../android/SGIC27/res/values/strings.xml | 24 +++ .../drawable/ic_signal_cellular_0_4_bar.xml | 23 +++ .../drawable/ic_signal_cellular_0_5_bar.xml | 23 +++ .../drawable/ic_signal_cellular_1_4_bar.xml | 23 +++ .../drawable/ic_signal_cellular_1_5_bar.xml | 23 +++ .../drawable/ic_signal_cellular_2_4_bar.xml | 23 +++ .../drawable/ic_signal_cellular_2_5_bar.xml | 23 +++ .../drawable/ic_signal_cellular_3_4_bar.xml | 23 +++ .../drawable/ic_signal_cellular_3_5_bar.xml | 23 +++ .../drawable/ic_signal_cellular_4_4_bar.xml | 23 +++ .../drawable/ic_signal_cellular_4_5_bar.xml | 23 +++ .../drawable/ic_signal_cellular_5_5_bar.xml | 23 +++ .../android/SGIC28/res/values/strings.xml | 24 +++ .../drawable/ic_signal_cellular_0_4_bar.xml | 8 + .../drawable/ic_signal_cellular_0_5_bar.xml | 8 + .../drawable/ic_signal_cellular_1_4_bar.xml | 8 + .../drawable/ic_signal_cellular_1_5_bar.xml | 8 + .../drawable/ic_signal_cellular_2_4_bar.xml | 8 + .../drawable/ic_signal_cellular_2_5_bar.xml | 8 + .../drawable/ic_signal_cellular_3_4_bar.xml | 8 + .../drawable/ic_signal_cellular_3_5_bar.xml | 8 + .../drawable/ic_signal_cellular_4_4_bar.xml | 8 + .../drawable/ic_signal_cellular_4_5_bar.xml | 8 + .../drawable/ic_signal_cellular_5_5_bar.xml | 8 + .../android/SGIC29/res/values/strings.xml | 24 +++ .../drawable/ic_signal_cellular_0_4_bar.xml | 10 + .../drawable/ic_signal_cellular_0_5_bar.xml | 10 + .../drawable/ic_signal_cellular_1_4_bar.xml | 9 + .../drawable/ic_signal_cellular_1_5_bar.xml | 9 + .../drawable/ic_signal_cellular_2_4_bar.xml | 9 + .../drawable/ic_signal_cellular_2_5_bar.xml | 9 + .../drawable/ic_signal_cellular_3_4_bar.xml | 9 + .../drawable/ic_signal_cellular_3_5_bar.xml | 9 + .../drawable/ic_signal_cellular_4_4_bar.xml | 9 + .../drawable/ic_signal_cellular_4_5_bar.xml | 9 + .../drawable/ic_signal_cellular_5_5_bar.xml | 9 + .../android/SGIC3/res/values/strings.xml | 24 +++ .../drawable/ic_signal_cellular_0_4_bar.xml | 45 +++++ .../drawable/ic_signal_cellular_0_5_bar.xml | 45 +++++ .../drawable/ic_signal_cellular_1_4_bar.xml | 45 +++++ .../drawable/ic_signal_cellular_1_5_bar.xml | 45 +++++ .../drawable/ic_signal_cellular_2_4_bar.xml | 45 +++++ .../drawable/ic_signal_cellular_2_5_bar.xml | 45 +++++ .../drawable/ic_signal_cellular_3_4_bar.xml | 45 +++++ .../drawable/ic_signal_cellular_3_5_bar.xml | 45 +++++ .../drawable/ic_signal_cellular_4_4_bar.xml | 45 +++++ .../drawable/ic_signal_cellular_4_5_bar.xml | 45 +++++ .../drawable/ic_signal_cellular_5_5_bar.xml | 45 +++++ .../android/SGIC30/res/values/strings.xml | 24 +++ .../drawable/ic_signal_cellular_0_4_bar.xml | 5 + .../drawable/ic_signal_cellular_0_5_bar.xml | 5 + .../drawable/ic_signal_cellular_1_4_bar.xml | 6 + .../drawable/ic_signal_cellular_1_5_bar.xml | 6 + .../drawable/ic_signal_cellular_2_4_bar.xml | 6 + .../drawable/ic_signal_cellular_2_5_bar.xml | 6 + .../drawable/ic_signal_cellular_3_4_bar.xml | 6 + .../drawable/ic_signal_cellular_3_5_bar.xml | 6 + .../drawable/ic_signal_cellular_4_4_bar.xml | 6 + .../drawable/ic_signal_cellular_4_5_bar.xml | 6 + .../drawable/ic_signal_cellular_5_5_bar.xml | 6 + .../android/SGIC31/res/values/strings.xml | 24 +++ .../drawable/ic_signal_cellular_0_4_bar.xml | 13 ++ .../drawable/ic_signal_cellular_0_5_bar.xml | 13 ++ .../drawable/ic_signal_cellular_1_4_bar.xml | 13 ++ .../drawable/ic_signal_cellular_1_5_bar.xml | 13 ++ .../drawable/ic_signal_cellular_2_4_bar.xml | 13 ++ .../drawable/ic_signal_cellular_2_5_bar.xml | 13 ++ .../drawable/ic_signal_cellular_3_4_bar.xml | 13 ++ .../drawable/ic_signal_cellular_3_5_bar.xml | 13 ++ .../drawable/ic_signal_cellular_4_4_bar.xml | 13 ++ .../drawable/ic_signal_cellular_4_5_bar.xml | 13 ++ .../drawable/ic_signal_cellular_5_5_bar.xml | 13 ++ .../android/SGIC32/res/values/strings.xml | 24 +++ .../drawable/ic_signal_cellular_0_4_bar.xml | 5 + .../drawable/ic_signal_cellular_0_5_bar.xml | 5 + .../drawable/ic_signal_cellular_1_4_bar.xml | 7 + .../drawable/ic_signal_cellular_1_5_bar.xml | 7 + .../drawable/ic_signal_cellular_2_4_bar.xml | 7 + .../drawable/ic_signal_cellular_2_5_bar.xml | 7 + .../drawable/ic_signal_cellular_3_4_bar.xml | 7 + .../drawable/ic_signal_cellular_3_5_bar.xml | 7 + .../drawable/ic_signal_cellular_4_4_bar.xml | 5 + .../drawable/ic_signal_cellular_4_5_bar.xml | 5 + .../drawable/ic_signal_cellular_5_5_bar.xml | 5 + .../android/SGIC33/res/values/strings.xml | 24 +++ .../drawable/ic_signal_cellular_0_4_bar.xml | 13 ++ .../drawable/ic_signal_cellular_0_5_bar.xml | 13 ++ .../drawable/ic_signal_cellular_1_4_bar.xml | 13 ++ .../drawable/ic_signal_cellular_1_5_bar.xml | 13 ++ .../drawable/ic_signal_cellular_2_4_bar.xml | 13 ++ .../drawable/ic_signal_cellular_2_5_bar.xml | 13 ++ .../drawable/ic_signal_cellular_3_4_bar.xml | 13 ++ .../drawable/ic_signal_cellular_3_5_bar.xml | 13 ++ .../drawable/ic_signal_cellular_4_4_bar.xml | 13 ++ .../drawable/ic_signal_cellular_4_5_bar.xml | 13 ++ .../drawable/ic_signal_cellular_5_5_bar.xml | 13 ++ .../android/SGIC34/res/values/strings.xml | 24 +++ .../drawable/ic_signal_cellular_0_4_bar.xml | 13 ++ .../drawable/ic_signal_cellular_0_5_bar.xml | 13 ++ .../drawable/ic_signal_cellular_1_4_bar.xml | 13 ++ .../drawable/ic_signal_cellular_1_5_bar.xml | 13 ++ .../drawable/ic_signal_cellular_2_4_bar.xml | 13 ++ .../drawable/ic_signal_cellular_2_5_bar.xml | 13 ++ .../drawable/ic_signal_cellular_3_4_bar.xml | 13 ++ .../drawable/ic_signal_cellular_3_5_bar.xml | 13 ++ .../drawable/ic_signal_cellular_4_4_bar.xml | 13 ++ .../drawable/ic_signal_cellular_4_5_bar.xml | 13 ++ .../drawable/ic_signal_cellular_5_5_bar.xml | 13 ++ .../android/SGIC35/res/values/strings.xml | 24 +++ .../drawable/ic_signal_cellular_0_4_bar.xml | 8 + .../drawable/ic_signal_cellular_0_5_bar.xml | 8 + .../drawable/ic_signal_cellular_1_4_bar.xml | 8 + .../drawable/ic_signal_cellular_1_5_bar.xml | 8 + .../drawable/ic_signal_cellular_2_4_bar.xml | 8 + .../drawable/ic_signal_cellular_2_5_bar.xml | 8 + .../drawable/ic_signal_cellular_3_4_bar.xml | 8 + .../drawable/ic_signal_cellular_3_5_bar.xml | 8 + .../drawable/ic_signal_cellular_4_4_bar.xml | 8 + .../drawable/ic_signal_cellular_4_5_bar.xml | 8 + .../drawable/ic_signal_cellular_5_5_bar.xml | 8 + .../android/SGIC36/res/values/strings.xml | 24 +++ .../drawable/ic_signal_cellular_0_4_bar.xml | 17 ++ .../drawable/ic_signal_cellular_0_5_bar.xml | 17 ++ .../drawable/ic_signal_cellular_1_4_bar.xml | 17 ++ .../drawable/ic_signal_cellular_1_5_bar.xml | 17 ++ .../drawable/ic_signal_cellular_2_4_bar.xml | 17 ++ .../drawable/ic_signal_cellular_2_5_bar.xml | 17 ++ .../drawable/ic_signal_cellular_3_4_bar.xml | 17 ++ .../drawable/ic_signal_cellular_3_5_bar.xml | 17 ++ .../drawable/ic_signal_cellular_4_4_bar.xml | 17 ++ .../drawable/ic_signal_cellular_4_5_bar.xml | 17 ++ .../drawable/ic_signal_cellular_5_5_bar.xml | 17 ++ .../android/SGIC4/res/values/strings.xml | 24 +++ .../drawable/ic_signal_cellular_0_4_bar.xml | 9 + .../drawable/ic_signal_cellular_0_5_bar.xml | 9 + .../drawable/ic_signal_cellular_1_4_bar.xml | 9 + .../drawable/ic_signal_cellular_1_5_bar.xml | 9 + .../drawable/ic_signal_cellular_2_4_bar.xml | 9 + .../drawable/ic_signal_cellular_2_5_bar.xml | 9 + .../drawable/ic_signal_cellular_3_4_bar.xml | 9 + .../drawable/ic_signal_cellular_3_5_bar.xml | 9 + .../drawable/ic_signal_cellular_4_4_bar.xml | 9 + .../drawable/ic_signal_cellular_4_5_bar.xml | 9 + .../drawable/ic_signal_cellular_5_5_bar.xml | 9 + .../android/SGIC5/res/values/strings.xml | 24 +++ .../drawable/ic_signal_cellular_0_4_bar.xml | 17 ++ .../drawable/ic_signal_cellular_0_5_bar.xml | 17 ++ .../drawable/ic_signal_cellular_1_4_bar.xml | 17 ++ .../drawable/ic_signal_cellular_1_5_bar.xml | 17 ++ .../drawable/ic_signal_cellular_2_4_bar.xml | 17 ++ .../drawable/ic_signal_cellular_2_5_bar.xml | 17 ++ .../drawable/ic_signal_cellular_3_4_bar.xml | 17 ++ .../drawable/ic_signal_cellular_3_5_bar.xml | 17 ++ .../drawable/ic_signal_cellular_4_4_bar.xml | 17 ++ .../drawable/ic_signal_cellular_4_5_bar.xml | 17 ++ .../drawable/ic_signal_cellular_5_5_bar.xml | 17 ++ .../android/SGIC6/res/values/strings.xml | 24 +++ .../drawable/ic_signal_cellular_0_4_bar.xml | 13 ++ .../drawable/ic_signal_cellular_0_5_bar.xml | 13 ++ .../drawable/ic_signal_cellular_1_4_bar.xml | 13 ++ .../drawable/ic_signal_cellular_1_5_bar.xml | 13 ++ .../drawable/ic_signal_cellular_2_4_bar.xml | 13 ++ .../drawable/ic_signal_cellular_2_5_bar.xml | 13 ++ .../drawable/ic_signal_cellular_3_4_bar.xml | 13 ++ .../drawable/ic_signal_cellular_3_5_bar.xml | 13 ++ .../drawable/ic_signal_cellular_4_4_bar.xml | 13 ++ .../drawable/ic_signal_cellular_4_5_bar.xml | 13 ++ .../drawable/ic_signal_cellular_5_5_bar.xml | 13 ++ .../android/SGIC7/res/values/strings.xml | 24 +++ .../drawable/ic_signal_cellular_0_4_bar.xml | 17 ++ .../drawable/ic_signal_cellular_0_5_bar.xml | 17 ++ .../drawable/ic_signal_cellular_1_4_bar.xml | 17 ++ .../drawable/ic_signal_cellular_1_5_bar.xml | 17 ++ .../drawable/ic_signal_cellular_2_4_bar.xml | 17 ++ .../drawable/ic_signal_cellular_2_5_bar.xml | 17 ++ .../drawable/ic_signal_cellular_3_4_bar.xml | 17 ++ .../drawable/ic_signal_cellular_3_5_bar.xml | 17 ++ .../drawable/ic_signal_cellular_4_4_bar.xml | 17 ++ .../drawable/ic_signal_cellular_4_5_bar.xml | 17 ++ .../drawable/ic_signal_cellular_5_5_bar.xml | 17 ++ .../android/SGIC8/res/values/strings.xml | 24 +++ .../drawable/ic_signal_cellular_0_4_bar.xml | 8 + .../drawable/ic_signal_cellular_0_5_bar.xml | 8 + .../drawable/ic_signal_cellular_1_4_bar.xml | 8 + .../drawable/ic_signal_cellular_1_5_bar.xml | 8 + .../drawable/ic_signal_cellular_2_4_bar.xml | 8 + .../drawable/ic_signal_cellular_2_5_bar.xml | 8 + .../drawable/ic_signal_cellular_3_4_bar.xml | 8 + .../drawable/ic_signal_cellular_3_5_bar.xml | 8 + .../drawable/ic_signal_cellular_4_4_bar.xml | 8 + .../drawable/ic_signal_cellular_4_5_bar.xml | 8 + .../drawable/ic_signal_cellular_5_5_bar.xml | 8 + .../android/SGIC9/res/values/strings.xml | 24 +++ .../WIFI1/res/drawable/ic_wifi_signal_0.xml | 14 ++ .../WIFI1/res/drawable/ic_wifi_signal_1.xml | 22 +++ .../WIFI1/res/drawable/ic_wifi_signal_2.xml | 30 +++ .../WIFI1/res/drawable/ic_wifi_signal_3.xml | 38 ++++ .../WIFI1/res/drawable/ic_wifi_signal_4.xml | 38 ++++ .../android/WIFI1/res/values/strings.xml | 24 +++ .../WIFI10/res/drawable/ic_wifi_signal_0.xml | 5 + .../WIFI10/res/drawable/ic_wifi_signal_1.xml | 6 + .../WIFI10/res/drawable/ic_wifi_signal_2.xml | 6 + .../WIFI10/res/drawable/ic_wifi_signal_3.xml | 5 + .../WIFI10/res/drawable/ic_wifi_signal_4.xml | 5 + .../android/WIFI10/res/values/strings.xml | 24 +++ .../WIFI11/res/drawable/ic_wifi_signal_0.xml | 8 + .../WIFI11/res/drawable/ic_wifi_signal_1.xml | 8 + .../WIFI11/res/drawable/ic_wifi_signal_2.xml | 8 + .../WIFI11/res/drawable/ic_wifi_signal_3.xml | 8 + .../WIFI11/res/drawable/ic_wifi_signal_4.xml | 8 + .../android/WIFI11/res/values/strings.xml | 24 +++ .../WIFI12/res/drawable/ic_wifi_signal_0.xml | 5 + .../WIFI12/res/drawable/ic_wifi_signal_1.xml | 6 + .../WIFI12/res/drawable/ic_wifi_signal_2.xml | 6 + .../WIFI12/res/drawable/ic_wifi_signal_3.xml | 6 + .../WIFI12/res/drawable/ic_wifi_signal_4.xml | 6 + .../android/WIFI12/res/values/strings.xml | 24 +++ .../WIFI13/res/drawable/ic_wifi_signal_0.xml | 5 + .../WIFI13/res/drawable/ic_wifi_signal_1.xml | 6 + .../WIFI13/res/drawable/ic_wifi_signal_2.xml | 7 + .../WIFI13/res/drawable/ic_wifi_signal_3.xml | 7 + .../WIFI13/res/drawable/ic_wifi_signal_4.xml | 5 + .../android/WIFI13/res/values/strings.xml | 24 +++ .../WIFI14/res/drawable/ic_wifi_signal_0.xml | 101 ++++++++++ .../WIFI14/res/drawable/ic_wifi_signal_1.xml | 66 +++++++ .../WIFI14/res/drawable/ic_wifi_signal_2.xml | 63 ++++++ .../WIFI14/res/drawable/ic_wifi_signal_3.xml | 86 ++++++++ .../WIFI14/res/drawable/ic_wifi_signal_4.xml | 93 +++++++++ .../android/WIFI14/res/values/strings.xml | 24 +++ .../WIFI15/res/drawable/ic_wifi_signal_0.xml | 7 + .../WIFI15/res/drawable/ic_wifi_signal_1.xml | 7 + .../WIFI15/res/drawable/ic_wifi_signal_2.xml | 7 + .../WIFI15/res/drawable/ic_wifi_signal_3.xml | 7 + .../WIFI15/res/drawable/ic_wifi_signal_4.xml | 7 + .../android/WIFI15/res/values/strings.xml | 24 +++ .../WIFI16/res/drawable/ic_wifi_signal_0.xml | 6 + .../WIFI16/res/drawable/ic_wifi_signal_1.xml | 7 + .../WIFI16/res/drawable/ic_wifi_signal_2.xml | 7 + .../WIFI16/res/drawable/ic_wifi_signal_3.xml | 7 + .../WIFI16/res/drawable/ic_wifi_signal_4.xml | 7 + .../android/WIFI16/res/values/strings.xml | 24 +++ .../WIFI2/res/drawable/ic_wifi_signal_0.xml | 12 ++ .../WIFI2/res/drawable/ic_wifi_signal_1.xml | 11 ++ .../WIFI2/res/drawable/ic_wifi_signal_2.xml | 11 ++ .../WIFI2/res/drawable/ic_wifi_signal_3.xml | 11 ++ .../WIFI2/res/drawable/ic_wifi_signal_4.xml | 10 + .../android/WIFI2/res/values/strings.xml | 24 +++ .../ic_signal_wifi_transient_animation.xml | 8 + .../WIFI3/res/drawable/ic_wifi_signal_0.xml | 8 + .../WIFI3/res/drawable/ic_wifi_signal_1.xml | 8 + .../WIFI3/res/drawable/ic_wifi_signal_2.xml | 8 + .../WIFI3/res/drawable/ic_wifi_signal_3.xml | 8 + .../WIFI3/res/drawable/ic_wifi_signal_4.xml | 8 + .../android/WIFI3/res/values/strings.xml | 24 +++ .../ic_signal_wifi_transient_animation.xml | 38 ++++ ...gnal_wifi_transient_animation_drawable.xml | 38 ++++ .../WIFI4/res/drawable/ic_wifi_signal_0.xml | 38 ++++ .../WIFI4/res/drawable/ic_wifi_signal_1.xml | 30 +++ .../WIFI4/res/drawable/ic_wifi_signal_2.xml | 38 ++++ .../WIFI4/res/drawable/ic_wifi_signal_3.xml | 46 +++++ .../WIFI4/res/drawable/ic_wifi_signal_4.xml | 46 +++++ .../android/WIFI4/res/values/strings.xml | 24 +++ .../ic_signal_wifi_transient_animation.xml | 30 +++ ...gnal_wifi_transient_animation_drawable.xml | 30 +++ .../WIFI5/res/drawable/ic_wifi_signal_0.xml | 30 +++ .../WIFI5/res/drawable/ic_wifi_signal_1.xml | 22 +++ .../WIFI5/res/drawable/ic_wifi_signal_2.xml | 22 +++ .../WIFI5/res/drawable/ic_wifi_signal_3.xml | 22 +++ .../WIFI5/res/drawable/ic_wifi_signal_4.xml | 22 +++ .../android/WIFI5/res/values/strings.xml | 24 +++ .../ic_signal_wifi_transient_animation.xml | 139 +++++++++++++ ...gnal_wifi_transient_animation_drawable.xml | 139 +++++++++++++ .../WIFI6/res/drawable/ic_wifi_signal_0.xml | 139 +++++++++++++ .../WIFI6/res/drawable/ic_wifi_signal_1.xml | 139 +++++++++++++ .../WIFI6/res/drawable/ic_wifi_signal_2.xml | 139 +++++++++++++ .../WIFI6/res/drawable/ic_wifi_signal_3.xml | 139 +++++++++++++ .../WIFI6/res/drawable/ic_wifi_signal_4.xml | 139 +++++++++++++ .../android/WIFI6/res/values/strings.xml | 24 +++ .../WIFI7/res/drawable/ic_wifi_signal_0.xml | 8 + .../WIFI7/res/drawable/ic_wifi_signal_1.xml | 9 + .../WIFI7/res/drawable/ic_wifi_signal_2.xml | 9 + .../WIFI7/res/drawable/ic_wifi_signal_3.xml | 9 + .../WIFI7/res/drawable/ic_wifi_signal_4.xml | 9 + .../android/WIFI7/res/values/strings.xml | 24 +++ .../WIFI8/res/drawable/ic_wifi_signal_0.xml | 6 + .../WIFI8/res/drawable/ic_wifi_signal_1.xml | 6 + .../WIFI8/res/drawable/ic_wifi_signal_2.xml | 6 + .../WIFI8/res/drawable/ic_wifi_signal_3.xml | 6 + .../WIFI8/res/drawable/ic_wifi_signal_4.xml | 6 + .../android/WIFI8/res/values/strings.xml | 24 +++ .../ic_signal_wifi_transient_animation.xml | 22 +++ ...gnal_wifi_transient_animation_drawable.xml | 22 +++ .../WIFI9/res/drawable/ic_wifi_signal_0.xml | 22 +++ .../WIFI9/res/drawable/ic_wifi_signal_1.xml | 22 +++ .../WIFI9/res/drawable/ic_wifi_signal_2.xml | 22 +++ .../WIFI9/res/drawable/ic_wifi_signal_3.xml | 22 +++ .../WIFI9/res/drawable/ic_wifi_signal_4.xml | 22 +++ .../android/WIFI9/res/values/strings.xml | 24 +++ .../iconify/ui/adapters/IconPackAdapter.kt | 67 ++++++- .../drdisagree/iconify/ui/fragments/Home.kt | 16 ++ .../iconify/ui/fragments/IconPack.kt | 16 +- .../iconify/ui/fragments/SignalIcons.kt | 135 +++++++++++++ .../iconify/ui/fragments/WiFiIcons.kt | 135 +++++++++++++ .../iconify/ui/models/IconPackModel.kt | 44 ++++- .../iconify/utils/overlay/OverlayUtil.kt | 60 ++++++ .../drawable-v24/ic_styles_signal_icons.xml | 27 +++ .../res/drawable-v24/ic_styles_wifi_icons.xml | 34 ++++ app/src/main/res/navigation/nav_home_page.xml | 40 ++++ app/src/main/res/values/strings.xml | 7 + 625 files changed, 15657 insertions(+), 19 deletions(-) create mode 100644 app/src/main/assets/Overlays/android/SGIC1/res/drawable/ic_signal_cellular_0_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC1/res/drawable/ic_signal_cellular_0_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC1/res/drawable/ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC1/res/drawable/ic_signal_cellular_1_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC1/res/drawable/ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC1/res/drawable/ic_signal_cellular_2_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC1/res/drawable/ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC1/res/drawable/ic_signal_cellular_3_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC1/res/drawable/ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC1/res/drawable/ic_signal_cellular_4_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC1/res/drawable/ic_signal_cellular_5_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC1/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_0_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_0_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_1_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_2_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_3_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_4_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_5_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC10/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_0_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_0_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_1_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_2_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_3_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_4_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_5_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC11/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_1x_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_3g_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_4g_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_4g_plus_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_5g_e_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_5g_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_5g_plus_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_5g_uc_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_5g_uw_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_e_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_g_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_h_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_h_plus_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_lte_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_lte_plus_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_0_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_0_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_1_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_2_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_3_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_4_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_5_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC12/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_0_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_0_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_1_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_2_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_3_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_4_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_5_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC13/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_1x_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_3g_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_4g_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_4g_plus_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_5g_e_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_5g_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_5g_plus_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_5g_uc_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_5g_uw_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_e_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_g_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_h_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_h_plus_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_lte_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_lte_plus_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_0_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_0_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_1_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_2_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_3_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_4_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_5_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC14/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_1x_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_3g_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_4g_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_4g_plus_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_5g_e_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_5g_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_5g_plus_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_5g_uc_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_5g_uw_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_e_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_g_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_h_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_h_plus_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_lte_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_lte_plus_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_0_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_0_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_1_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_2_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_3_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_4_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_5_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC15/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_0_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_0_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_1_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_2_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_3_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_4_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_5_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC16/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_0_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_0_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_1_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_2_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_3_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_4_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_5_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC17/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_0_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_0_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_1_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_2_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_3_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_4_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_5_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC18/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_0_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_0_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_1_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_2_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_3_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_4_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_5_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC19/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_1x_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_3g_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_4g_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_4g_plus_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_5g_e_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_5g_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_5g_plus_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_5g_uc_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_5g_uw_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_e_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_g_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_h_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_h_plus_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_lte_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_lte_plus_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_0_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_0_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_1_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_2_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_3_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_4_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_5_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC2/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_0_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_0_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_1_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_2_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_3_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_4_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_5_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_location.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC20/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_0_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_0_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_1_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_2_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_3_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_4_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_5_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC21/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_0_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_0_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_1_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_2_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_3_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_4_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_5_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC22/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_1x_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_3g_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_4g_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_4g_plus_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_5g_e_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_5g_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_5g_plus_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_5g_uc_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_5g_uw_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_e_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_g_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_h_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_h_plus_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_lte_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_lte_plus_mobiledata.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_0_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_0_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_1_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_2_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_3_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_4_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_5_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC23/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_0_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_0_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_1_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_2_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_3_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_4_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_5_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC24/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_0_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_0_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_1_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_2_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_3_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_4_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_5_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC25/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_0_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_0_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_1_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_2_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_3_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_4_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_5_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC26/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_0_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_0_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_1_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_2_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_3_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_4_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_5_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC27/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_0_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_0_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_1_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_2_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_3_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_4_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_5_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC28/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_0_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_0_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_1_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_2_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_3_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_4_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_5_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC29/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_0_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_0_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_1_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_2_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_3_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_4_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_5_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC3/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_0_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_0_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_1_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_2_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_3_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_4_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_5_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC30/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_0_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_0_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_1_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_2_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_3_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_4_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_5_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC31/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_0_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_0_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_1_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_2_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_3_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_4_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_5_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC32/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_0_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_0_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_1_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_2_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_3_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_4_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_5_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC33/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_0_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_0_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_1_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_2_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_3_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_4_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_5_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC34/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_0_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_0_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_1_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_2_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_3_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_4_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_5_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC35/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_0_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_0_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_1_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_2_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_3_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_4_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_5_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC36/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_0_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_0_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_1_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_2_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_3_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_4_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_5_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC4/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_0_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_0_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_1_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_2_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_3_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_4_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_5_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC5/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_0_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_0_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_1_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_2_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_3_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_4_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_5_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC6/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_0_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_0_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_1_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_2_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_3_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_4_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_5_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC7/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_0_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_0_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_1_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_2_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_3_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_4_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_5_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC8/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_0_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_0_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_1_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_2_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_3_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_4_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_5_5_bar.xml create mode 100644 app/src/main/assets/Overlays/android/SGIC9/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI1/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI10/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI11/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI12/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI13/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI14/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI15/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI16/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI2/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_signal_wifi_transient_animation.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI3/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_signal_wifi_transient_animation.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_signal_wifi_transient_animation_drawable.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI4/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_signal_wifi_transient_animation.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_signal_wifi_transient_animation_drawable.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI5/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_signal_wifi_transient_animation.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_signal_wifi_transient_animation_drawable.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI6/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI7/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI8/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_signal_wifi_transient_animation.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_signal_wifi_transient_animation_drawable.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI9/res/values/strings.xml create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/SignalIcons.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/WiFiIcons.kt create mode 100644 app/src/main/res/drawable-v24/ic_styles_signal_icons.xml create mode 100644 app/src/main/res/drawable-v24/ic_styles_wifi_icons.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a7b81b747..fa1853191 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -22,6 +22,8 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC1/res/drawable/ic_signal_cellular_0_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC1/res/drawable/ic_signal_cellular_0_5_bar.xml new file mode 100644 index 000000000..834225d2d --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC1/res/drawable/ic_signal_cellular_0_5_bar.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC1/res/drawable/ic_signal_cellular_1_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC1/res/drawable/ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..effcde5d9 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC1/res/drawable/ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,10 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC1/res/drawable/ic_signal_cellular_1_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC1/res/drawable/ic_signal_cellular_1_5_bar.xml new file mode 100644 index 000000000..effcde5d9 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC1/res/drawable/ic_signal_cellular_1_5_bar.xml @@ -0,0 +1,10 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC1/res/drawable/ic_signal_cellular_2_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC1/res/drawable/ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..504cc95a7 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC1/res/drawable/ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC1/res/drawable/ic_signal_cellular_2_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC1/res/drawable/ic_signal_cellular_2_5_bar.xml new file mode 100644 index 000000000..504cc95a7 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC1/res/drawable/ic_signal_cellular_2_5_bar.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC1/res/drawable/ic_signal_cellular_3_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC1/res/drawable/ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..e6aad62df --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC1/res/drawable/ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC1/res/drawable/ic_signal_cellular_3_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC1/res/drawable/ic_signal_cellular_3_5_bar.xml new file mode 100644 index 000000000..e6aad62df --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC1/res/drawable/ic_signal_cellular_3_5_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC1/res/drawable/ic_signal_cellular_4_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC1/res/drawable/ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..62f871e78 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC1/res/drawable/ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC1/res/drawable/ic_signal_cellular_4_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC1/res/drawable/ic_signal_cellular_4_5_bar.xml new file mode 100644 index 000000000..62f871e78 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC1/res/drawable/ic_signal_cellular_4_5_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC1/res/drawable/ic_signal_cellular_5_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC1/res/drawable/ic_signal_cellular_5_5_bar.xml new file mode 100644 index 000000000..62f871e78 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC1/res/drawable/ic_signal_cellular_5_5_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC1/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC1/res/values/strings.xml new file mode 100644 index 000000000..f3b6ce52c --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC1/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Aquarium + + + diff --git a/app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_0_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_0_4_bar.xml new file mode 100644 index 000000000..79fb7f04c --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_0_4_bar.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_0_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_0_5_bar.xml new file mode 100644 index 000000000..79fb7f04c --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_0_5_bar.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_1_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..581331608 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_1_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_1_5_bar.xml new file mode 100644 index 000000000..581331608 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_1_5_bar.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_2_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..7765c318e --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_2_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_2_5_bar.xml new file mode 100644 index 000000000..7765c318e --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_2_5_bar.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_3_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..679d52e93 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_3_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_3_5_bar.xml new file mode 100644 index 000000000..679d52e93 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_3_5_bar.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_4_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..6876c0799 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_4_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_4_5_bar.xml new file mode 100644 index 000000000..6876c0799 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_4_5_bar.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_5_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_5_5_bar.xml new file mode 100644 index 000000000..6876c0799 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC10/res/drawable/ic_signal_cellular_5_5_bar.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC10/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC10/res/values/strings.xml new file mode 100644 index 000000000..1be21314f --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC10/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + ZigZag + + + diff --git a/app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_0_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_0_4_bar.xml new file mode 100644 index 000000000..66158ad22 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_0_4_bar.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_0_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_0_5_bar.xml new file mode 100644 index 000000000..66158ad22 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_0_5_bar.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_1_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..f625c4edb --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_1_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_1_5_bar.xml new file mode 100644 index 000000000..f625c4edb --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_1_5_bar.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_2_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..316b0d3a5 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_2_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_2_5_bar.xml new file mode 100644 index 000000000..316b0d3a5 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_2_5_bar.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_3_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..4106a2347 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_3_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_3_5_bar.xml new file mode 100644 index 000000000..4106a2347 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_3_5_bar.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_4_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..cf10b0123 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_4_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_4_5_bar.xml new file mode 100644 index 000000000..cf10b0123 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_4_5_bar.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_5_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_5_5_bar.xml new file mode 100644 index 000000000..cf10b0123 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC11/res/drawable/ic_signal_cellular_5_5_bar.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC11/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC11/res/values/strings.xml new file mode 100644 index 000000000..be245cdac --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC11/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Equal + + + diff --git a/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_1x_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_1x_mobiledata.xml new file mode 100644 index 000000000..9c394a97b --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_1x_mobiledata.xml @@ -0,0 +1,40 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_3g_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_3g_mobiledata.xml new file mode 100644 index 000000000..948ca6340 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_3g_mobiledata.xml @@ -0,0 +1,52 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_4g_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_4g_mobiledata.xml new file mode 100644 index 000000000..c20075c6c --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_4g_mobiledata.xml @@ -0,0 +1,52 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_4g_plus_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_4g_plus_mobiledata.xml new file mode 100644 index 000000000..6d0930c28 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_4g_plus_mobiledata.xml @@ -0,0 +1,60 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_5g_e_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_5g_e_mobiledata.xml new file mode 100644 index 000000000..4e6694d92 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_5g_e_mobiledata.xml @@ -0,0 +1,60 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_5g_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_5g_mobiledata.xml new file mode 100644 index 000000000..66bdfcc7b --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_5g_mobiledata.xml @@ -0,0 +1,52 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_5g_plus_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_5g_plus_mobiledata.xml new file mode 100644 index 000000000..b8b302488 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_5g_plus_mobiledata.xml @@ -0,0 +1,60 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_5g_uc_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_5g_uc_mobiledata.xml new file mode 100644 index 000000000..66bdfcc7b --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_5g_uc_mobiledata.xml @@ -0,0 +1,52 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_5g_uw_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_5g_uw_mobiledata.xml new file mode 100644 index 000000000..66bdfcc7b --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_5g_uw_mobiledata.xml @@ -0,0 +1,52 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_e_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_e_mobiledata.xml new file mode 100644 index 000000000..25138723c --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_e_mobiledata.xml @@ -0,0 +1,52 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_g_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_g_mobiledata.xml new file mode 100644 index 000000000..aae9af97f --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_g_mobiledata.xml @@ -0,0 +1,40 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_h_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_h_mobiledata.xml new file mode 100644 index 000000000..8c2fea791 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_h_mobiledata.xml @@ -0,0 +1,46 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_h_plus_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_h_plus_mobiledata.xml new file mode 100644 index 000000000..ca99c0c70 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_h_plus_mobiledata.xml @@ -0,0 +1,54 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_lte_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_lte_mobiledata.xml new file mode 100644 index 000000000..b0fbb24e0 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_lte_mobiledata.xml @@ -0,0 +1,76 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_lte_plus_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_lte_plus_mobiledata.xml new file mode 100644 index 000000000..593db9ec5 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_lte_plus_mobiledata.xml @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_0_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_0_4_bar.xml new file mode 100644 index 000000000..c461365dd --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_0_4_bar.xml @@ -0,0 +1,68 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_0_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_0_5_bar.xml new file mode 100644 index 000000000..c461365dd --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_0_5_bar.xml @@ -0,0 +1,68 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_1_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..b4bed1feb --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,60 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_1_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_1_5_bar.xml new file mode 100644 index 000000000..b4bed1feb --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_1_5_bar.xml @@ -0,0 +1,60 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_2_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..59adc2ab9 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,60 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_2_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_2_5_bar.xml new file mode 100644 index 000000000..ebcf3b106 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_2_5_bar.xml @@ -0,0 +1,60 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_3_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..b1c402dfc --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,60 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_3_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_3_5_bar.xml new file mode 100644 index 000000000..b1c402dfc --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_3_5_bar.xml @@ -0,0 +1,60 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_4_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..5836f94f2 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,60 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_4_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_4_5_bar.xml new file mode 100644 index 000000000..5836f94f2 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_4_5_bar.xml @@ -0,0 +1,60 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_5_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_5_5_bar.xml new file mode 100644 index 000000000..5836f94f2 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC12/res/drawable/ic_signal_cellular_5_5_bar.xml @@ -0,0 +1,60 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC12/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC12/res/values/strings.xml new file mode 100644 index 000000000..e55ad1f20 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC12/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Faint UI + + + diff --git a/app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_0_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_0_4_bar.xml new file mode 100644 index 000000000..51dbcbf08 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_0_4_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_0_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_0_5_bar.xml new file mode 100644 index 000000000..51dbcbf08 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_0_5_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_1_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..70c43f196 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_1_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_1_5_bar.xml new file mode 100644 index 000000000..70c43f196 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_1_5_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_2_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..3ba81ab0c --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_2_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_2_5_bar.xml new file mode 100644 index 000000000..3ba81ab0c --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_2_5_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_3_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..7326f8eeb --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_3_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_3_5_bar.xml new file mode 100644 index 000000000..7326f8eeb --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_3_5_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_4_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..882677438 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_4_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_4_5_bar.xml new file mode 100644 index 000000000..882677438 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_4_5_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_5_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_5_5_bar.xml new file mode 100644 index 000000000..882677438 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC13/res/drawable/ic_signal_cellular_5_5_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC13/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC13/res/values/strings.xml new file mode 100644 index 000000000..f3204944d --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC13/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Fan + + + diff --git a/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_1x_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_1x_mobiledata.xml new file mode 100644 index 000000000..4b4a46b9c --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_1x_mobiledata.xml @@ -0,0 +1,30 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_3g_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_3g_mobiledata.xml new file mode 100644 index 000000000..72326376b --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_3g_mobiledata.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_4g_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_4g_mobiledata.xml new file mode 100644 index 000000000..f5c04def5 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_4g_mobiledata.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_4g_plus_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_4g_plus_mobiledata.xml new file mode 100644 index 000000000..f11915a96 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_4g_plus_mobiledata.xml @@ -0,0 +1,38 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_5g_e_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_5g_e_mobiledata.xml new file mode 100644 index 000000000..964bd1630 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_5g_e_mobiledata.xml @@ -0,0 +1,30 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_5g_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_5g_mobiledata.xml new file mode 100644 index 000000000..f63b3efad --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_5g_mobiledata.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_5g_plus_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_5g_plus_mobiledata.xml new file mode 100644 index 000000000..60f758e57 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_5g_plus_mobiledata.xml @@ -0,0 +1,38 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_5g_uc_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_5g_uc_mobiledata.xml new file mode 100644 index 000000000..f63b3efad --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_5g_uc_mobiledata.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_5g_uw_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_5g_uw_mobiledata.xml new file mode 100644 index 000000000..f63b3efad --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_5g_uw_mobiledata.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_e_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_e_mobiledata.xml new file mode 100644 index 000000000..97ee8cf2c --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_e_mobiledata.xml @@ -0,0 +1,14 @@ + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_g_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_g_mobiledata.xml new file mode 100644 index 000000000..4651eab4a --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_g_mobiledata.xml @@ -0,0 +1,14 @@ + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_h_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_h_mobiledata.xml new file mode 100644 index 000000000..8f2438d1e --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_h_mobiledata.xml @@ -0,0 +1,30 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_h_plus_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_h_plus_mobiledata.xml new file mode 100644 index 000000000..6f9f0fdb6 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_h_plus_mobiledata.xml @@ -0,0 +1,46 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_lte_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_lte_mobiledata.xml new file mode 100644 index 000000000..43bfef140 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_lte_mobiledata.xml @@ -0,0 +1,30 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_lte_plus_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_lte_plus_mobiledata.xml new file mode 100644 index 000000000..1277d3094 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_lte_plus_mobiledata.xml @@ -0,0 +1,46 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_0_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_0_4_bar.xml new file mode 100644 index 000000000..8ea4c2470 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_0_4_bar.xml @@ -0,0 +1,14 @@ + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_0_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_0_5_bar.xml new file mode 100644 index 000000000..8ea4c2470 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_0_5_bar.xml @@ -0,0 +1,14 @@ + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_1_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..695c5263e --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_1_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_1_5_bar.xml new file mode 100644 index 000000000..695c5263e --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_1_5_bar.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_2_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..695c5263e --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_2_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_2_5_bar.xml new file mode 100644 index 000000000..695c5263e --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_2_5_bar.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_3_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..83254ff81 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_3_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_3_5_bar.xml new file mode 100644 index 000000000..83254ff81 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_3_5_bar.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_4_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..4f271f0a1 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_4_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_4_5_bar.xml new file mode 100644 index 000000000..4f271f0a1 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_4_5_bar.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_5_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_5_5_bar.xml new file mode 100644 index 000000000..4f271f0a1 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC14/res/drawable/ic_signal_cellular_5_5_bar.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC14/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC14/res/values/strings.xml new file mode 100644 index 000000000..40a4476f8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC14/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Lorn + + + diff --git a/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_1x_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_1x_mobiledata.xml new file mode 100644 index 000000000..785f1dc3c --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_1x_mobiledata.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_3g_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_3g_mobiledata.xml new file mode 100644 index 000000000..6457acd47 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_3g_mobiledata.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_4g_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_4g_mobiledata.xml new file mode 100644 index 000000000..6cd4fcdc3 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_4g_mobiledata.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_4g_plus_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_4g_plus_mobiledata.xml new file mode 100644 index 000000000..4eb5f9b78 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_4g_plus_mobiledata.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_5g_e_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_5g_e_mobiledata.xml new file mode 100644 index 000000000..0b041917a --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_5g_e_mobiledata.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_5g_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_5g_mobiledata.xml new file mode 100644 index 000000000..84c73a8b4 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_5g_mobiledata.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_5g_plus_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_5g_plus_mobiledata.xml new file mode 100644 index 000000000..ca78191d3 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_5g_plus_mobiledata.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_5g_uc_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_5g_uc_mobiledata.xml new file mode 100644 index 000000000..84c73a8b4 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_5g_uc_mobiledata.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_5g_uw_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_5g_uw_mobiledata.xml new file mode 100644 index 000000000..84c73a8b4 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_5g_uw_mobiledata.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_e_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_e_mobiledata.xml new file mode 100644 index 000000000..a2fdc1cf3 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_e_mobiledata.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_g_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_g_mobiledata.xml new file mode 100644 index 000000000..bf342c458 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_g_mobiledata.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_h_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_h_mobiledata.xml new file mode 100644 index 000000000..f0fdd2cb6 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_h_mobiledata.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_h_plus_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_h_plus_mobiledata.xml new file mode 100644 index 000000000..8e3c9beb6 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_h_plus_mobiledata.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_lte_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_lte_mobiledata.xml new file mode 100644 index 000000000..61ef7651d --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_lte_mobiledata.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_lte_plus_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_lte_plus_mobiledata.xml new file mode 100644 index 000000000..751bcd71e --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_lte_plus_mobiledata.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_0_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_0_4_bar.xml new file mode 100644 index 000000000..751f41b79 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_0_4_bar.xml @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_0_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_0_5_bar.xml new file mode 100644 index 000000000..751f41b79 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_0_5_bar.xml @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_1_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..531a080a4 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_1_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_1_5_bar.xml new file mode 100644 index 000000000..531a080a4 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_1_5_bar.xml @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_2_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..c9e74bc8d --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_2_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_2_5_bar.xml new file mode 100644 index 000000000..c9e74bc8d --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_2_5_bar.xml @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_3_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..9da5e2d31 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_3_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_3_5_bar.xml new file mode 100644 index 000000000..9da5e2d31 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_3_5_bar.xml @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_4_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..6c8b26399 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_4_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_4_5_bar.xml new file mode 100644 index 000000000..6c8b26399 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_4_5_bar.xml @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_5_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_5_5_bar.xml new file mode 100644 index 000000000..6c8b26399 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC15/res/drawable/ic_signal_cellular_5_5_bar.xml @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC15/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC15/res/values/strings.xml new file mode 100644 index 000000000..d73727615 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC15/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Gradicon + + + diff --git a/app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_0_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_0_4_bar.xml new file mode 100644 index 000000000..b3184f3c0 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_0_4_bar.xml @@ -0,0 +1,21 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_0_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_0_5_bar.xml new file mode 100644 index 000000000..b3184f3c0 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_0_5_bar.xml @@ -0,0 +1,21 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_1_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..aceafa1c8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,21 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_1_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_1_5_bar.xml new file mode 100644 index 000000000..aceafa1c8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_1_5_bar.xml @@ -0,0 +1,21 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_2_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..dcfadbe81 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,21 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_2_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_2_5_bar.xml new file mode 100644 index 000000000..dcfadbe81 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_2_5_bar.xml @@ -0,0 +1,21 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_3_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..8407c90b2 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,21 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_3_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_3_5_bar.xml new file mode 100644 index 000000000..8407c90b2 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_3_5_bar.xml @@ -0,0 +1,21 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_4_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..3c485ea27 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,21 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_4_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_4_5_bar.xml new file mode 100644 index 000000000..3c485ea27 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_4_5_bar.xml @@ -0,0 +1,21 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_5_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_5_5_bar.xml new file mode 100644 index 000000000..3c485ea27 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC16/res/drawable/ic_signal_cellular_5_5_bar.xml @@ -0,0 +1,21 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC16/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC16/res/values/strings.xml new file mode 100644 index 000000000..e8609f481 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC16/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Huawei + + + diff --git a/app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_0_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_0_4_bar.xml new file mode 100644 index 000000000..f1c0efb42 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_0_4_bar.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_0_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_0_5_bar.xml new file mode 100644 index 000000000..f1c0efb42 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_0_5_bar.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_1_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..785eacb11 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_1_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_1_5_bar.xml new file mode 100644 index 000000000..785eacb11 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_1_5_bar.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_2_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..07de2487d --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_2_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_2_5_bar.xml new file mode 100644 index 000000000..0a24a937d --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_2_5_bar.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_3_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..0a24a937d --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_3_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_3_5_bar.xml new file mode 100644 index 000000000..07de2487d --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_3_5_bar.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_4_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..1333943e8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_4_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_4_5_bar.xml new file mode 100644 index 000000000..1333943e8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_4_5_bar.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_5_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_5_5_bar.xml new file mode 100644 index 000000000..1333943e8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC17/res/drawable/ic_signal_cellular_5_5_bar.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC17/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC17/res/values/strings.xml new file mode 100644 index 000000000..427e4f1fd --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC17/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Inside + + + diff --git a/app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_0_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_0_4_bar.xml new file mode 100644 index 000000000..148a4f0ae --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_0_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_0_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_0_5_bar.xml new file mode 100644 index 000000000..148a4f0ae --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_0_5_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_1_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..579843a31 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_1_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_1_5_bar.xml new file mode 100644 index 000000000..579843a31 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_1_5_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_2_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..0284f9ea2 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_2_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_2_5_bar.xml new file mode 100644 index 000000000..0284f9ea2 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_2_5_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_3_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..49dce55ce --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_3_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_3_5_bar.xml new file mode 100644 index 000000000..49dce55ce --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_3_5_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_4_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..c6cc45a68 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_4_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_4_5_bar.xml new file mode 100644 index 000000000..c6cc45a68 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_4_5_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_5_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_5_5_bar.xml new file mode 100644 index 000000000..c6cc45a68 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC18/res/drawable/ic_signal_cellular_5_5_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC18/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC18/res/values/strings.xml new file mode 100644 index 000000000..aa1db3a2a --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC18/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + iOS + + + diff --git a/app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_0_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_0_4_bar.xml new file mode 100644 index 000000000..991a4621f --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_0_4_bar.xml @@ -0,0 +1,7 @@ + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_0_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_0_5_bar.xml new file mode 100644 index 000000000..991a4621f --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_0_5_bar.xml @@ -0,0 +1,7 @@ + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_1_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..57cf89631 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_1_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_1_5_bar.xml new file mode 100644 index 000000000..57cf89631 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_1_5_bar.xml @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_2_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..d609fdc79 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_2_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_2_5_bar.xml new file mode 100644 index 000000000..d609fdc79 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_2_5_bar.xml @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_3_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..f291f636e --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_3_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_3_5_bar.xml new file mode 100644 index 000000000..f291f636e --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_3_5_bar.xml @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_4_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..fbe8dbc5c --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_4_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_4_5_bar.xml new file mode 100644 index 000000000..fbe8dbc5c --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_4_5_bar.xml @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_5_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_5_5_bar.xml new file mode 100644 index 000000000..fbe8dbc5c --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC19/res/drawable/ic_signal_cellular_5_5_bar.xml @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC19/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC19/res/values/strings.xml new file mode 100644 index 000000000..3762c523b --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC19/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Mini + + + diff --git a/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_1x_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_1x_mobiledata.xml new file mode 100644 index 000000000..926bb3490 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_1x_mobiledata.xml @@ -0,0 +1,46 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_3g_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_3g_mobiledata.xml new file mode 100644 index 000000000..e4bf66a40 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_3g_mobiledata.xml @@ -0,0 +1,38 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_4g_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_4g_mobiledata.xml new file mode 100644 index 000000000..4a6497c26 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_4g_mobiledata.xml @@ -0,0 +1,46 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_4g_plus_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_4g_plus_mobiledata.xml new file mode 100644 index 000000000..cc53478fa --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_4g_plus_mobiledata.xml @@ -0,0 +1,62 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_5g_e_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_5g_e_mobiledata.xml new file mode 100644 index 000000000..f2f842bb8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_5g_e_mobiledata.xml @@ -0,0 +1,54 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_5g_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_5g_mobiledata.xml new file mode 100644 index 000000000..71f201fe0 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_5g_mobiledata.xml @@ -0,0 +1,38 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_5g_plus_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_5g_plus_mobiledata.xml new file mode 100644 index 000000000..e39ea5879 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_5g_plus_mobiledata.xml @@ -0,0 +1,54 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_5g_uc_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_5g_uc_mobiledata.xml new file mode 100644 index 000000000..71f201fe0 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_5g_uc_mobiledata.xml @@ -0,0 +1,38 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_5g_uw_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_5g_uw_mobiledata.xml new file mode 100644 index 000000000..71f201fe0 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_5g_uw_mobiledata.xml @@ -0,0 +1,38 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_e_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_e_mobiledata.xml new file mode 100644 index 000000000..adb8b8e50 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_e_mobiledata.xml @@ -0,0 +1,38 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_g_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_g_mobiledata.xml new file mode 100644 index 000000000..c68267042 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_g_mobiledata.xml @@ -0,0 +1,30 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_h_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_h_mobiledata.xml new file mode 100644 index 000000000..71e635477 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_h_mobiledata.xml @@ -0,0 +1,46 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_h_plus_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_h_plus_mobiledata.xml new file mode 100644 index 000000000..59fdfe45b --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_h_plus_mobiledata.xml @@ -0,0 +1,62 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_lte_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_lte_mobiledata.xml new file mode 100644 index 000000000..b9e4bdd7f --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_lte_mobiledata.xml @@ -0,0 +1,62 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_lte_plus_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_lte_plus_mobiledata.xml new file mode 100644 index 000000000..347a152be --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_lte_plus_mobiledata.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_0_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_0_4_bar.xml new file mode 100644 index 000000000..01ed78578 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_0_4_bar.xml @@ -0,0 +1,14 @@ + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_0_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_0_5_bar.xml new file mode 100644 index 000000000..01ed78578 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_0_5_bar.xml @@ -0,0 +1,14 @@ + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_1_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..add7e5812 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_1_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_1_5_bar.xml new file mode 100644 index 000000000..add7e5812 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_1_5_bar.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_2_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..c4a9923ea --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,30 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_2_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_2_5_bar.xml new file mode 100644 index 000000000..c4a9923ea --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_2_5_bar.xml @@ -0,0 +1,30 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_3_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..88825e53a --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,38 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_3_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_3_5_bar.xml new file mode 100644 index 000000000..88825e53a --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_3_5_bar.xml @@ -0,0 +1,38 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_4_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..e65bc2f95 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,38 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_4_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_4_5_bar.xml new file mode 100644 index 000000000..e65bc2f95 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_4_5_bar.xml @@ -0,0 +1,38 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_5_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_5_5_bar.xml new file mode 100644 index 000000000..e65bc2f95 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC2/res/drawable/ic_signal_cellular_5_5_bar.xml @@ -0,0 +1,38 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC2/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC2/res/values/strings.xml new file mode 100644 index 000000000..8e225afcb --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC2/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Aurora + + + diff --git a/app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_0_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_0_4_bar.xml new file mode 100644 index 000000000..af92178ce --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_0_4_bar.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_0_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_0_5_bar.xml new file mode 100644 index 000000000..af92178ce --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_0_5_bar.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_1_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..4cefd75ae --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_1_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_1_5_bar.xml new file mode 100644 index 000000000..4cefd75ae --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_1_5_bar.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_2_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..c03935468 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_2_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_2_5_bar.xml new file mode 100644 index 000000000..c03935468 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_2_5_bar.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_3_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..3bfb02198 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_3_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_3_5_bar.xml new file mode 100644 index 000000000..3bfb02198 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_3_5_bar.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_4_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..2f0a9bf75 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_4_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_4_5_bar.xml new file mode 100644 index 000000000..2f0a9bf75 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_4_5_bar.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_5_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_5_5_bar.xml new file mode 100644 index 000000000..2f0a9bf75 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_cellular_5_5_bar.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_location.xml b/app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_location.xml new file mode 100644 index 000000000..5d10df06a --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC20/res/drawable/ic_signal_location.xml @@ -0,0 +1,4 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC20/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC20/res/values/strings.xml new file mode 100644 index 000000000..11f30a066 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC20/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Nothing Dot + + + diff --git a/app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_0_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_0_4_bar.xml new file mode 100644 index 000000000..e9aa8e2e9 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_0_4_bar.xml @@ -0,0 +1,7 @@ + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_0_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_0_5_bar.xml new file mode 100644 index 000000000..e9aa8e2e9 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_0_5_bar.xml @@ -0,0 +1,7 @@ + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_1_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..1fa47ca92 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_1_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_1_5_bar.xml new file mode 100644 index 000000000..1fa47ca92 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_1_5_bar.xml @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_2_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..60c215086 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_2_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_2_5_bar.xml new file mode 100644 index 000000000..60c215086 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_2_5_bar.xml @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_3_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..a11914a63 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_3_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_3_5_bar.xml new file mode 100644 index 000000000..a11914a63 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_3_5_bar.xml @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_4_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..ba2da49b0 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_4_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_4_5_bar.xml new file mode 100644 index 000000000..ba2da49b0 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_4_5_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_5_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_5_5_bar.xml new file mode 100644 index 000000000..ba2da49b0 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC21/res/drawable/ic_signal_cellular_5_5_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC21/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC21/res/values/strings.xml new file mode 100644 index 000000000..59b42b440 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC21/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Odin + + + diff --git a/app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_0_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_0_4_bar.xml new file mode 100644 index 000000000..ee33520fc --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_0_4_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_0_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_0_5_bar.xml new file mode 100644 index 000000000..ee33520fc --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_0_5_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_1_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..b9178b2f4 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_1_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_1_5_bar.xml new file mode 100644 index 000000000..b9178b2f4 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_1_5_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_2_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..3d12a6fd1 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_2_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_2_5_bar.xml new file mode 100644 index 000000000..3d12a6fd1 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_2_5_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_3_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..590dd2c2e --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_3_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_3_5_bar.xml new file mode 100644 index 000000000..590dd2c2e --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_3_5_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_4_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..74f9d4730 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_4_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_4_5_bar.xml new file mode 100644 index 000000000..74f9d4730 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_4_5_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_5_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_5_5_bar.xml new file mode 100644 index 000000000..74f9d4730 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC22/res/drawable/ic_signal_cellular_5_5_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC22/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC22/res/values/strings.xml new file mode 100644 index 000000000..26466f468 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC22/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Pills + + + diff --git a/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_1x_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_1x_mobiledata.xml new file mode 100644 index 000000000..fcab9e628 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_1x_mobiledata.xml @@ -0,0 +1,30 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_3g_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_3g_mobiledata.xml new file mode 100644 index 000000000..7d8f22d89 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_3g_mobiledata.xml @@ -0,0 +1,27 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_4g_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_4g_mobiledata.xml new file mode 100644 index 000000000..50073bdae --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_4g_mobiledata.xml @@ -0,0 +1,27 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_4g_plus_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_4g_plus_mobiledata.xml new file mode 100644 index 000000000..1c8e393ab --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_4g_plus_mobiledata.xml @@ -0,0 +1,37 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_5g_e_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_5g_e_mobiledata.xml new file mode 100644 index 000000000..bb771755f --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_5g_e_mobiledata.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_5g_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_5g_mobiledata.xml new file mode 100644 index 000000000..4030daa2f --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_5g_mobiledata.xml @@ -0,0 +1,27 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_5g_plus_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_5g_plus_mobiledata.xml new file mode 100644 index 000000000..d4fa9acc9 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_5g_plus_mobiledata.xml @@ -0,0 +1,37 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_5g_uc_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_5g_uc_mobiledata.xml new file mode 100644 index 000000000..4030daa2f --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_5g_uc_mobiledata.xml @@ -0,0 +1,27 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_5g_uw_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_5g_uw_mobiledata.xml new file mode 100644 index 000000000..4030daa2f --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_5g_uw_mobiledata.xml @@ -0,0 +1,27 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_e_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_e_mobiledata.xml new file mode 100644 index 000000000..895593be1 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_e_mobiledata.xml @@ -0,0 +1,27 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_g_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_g_mobiledata.xml new file mode 100644 index 000000000..89a6470a1 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_g_mobiledata.xml @@ -0,0 +1,17 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_h_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_h_mobiledata.xml new file mode 100644 index 000000000..b0262ab8e --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_h_mobiledata.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_h_plus_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_h_plus_mobiledata.xml new file mode 100644 index 000000000..945e8bde8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_h_plus_mobiledata.xml @@ -0,0 +1,32 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_lte_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_lte_mobiledata.xml new file mode 100644 index 000000000..3fb88a30a --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_lte_mobiledata.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_lte_plus_mobiledata.xml b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_lte_plus_mobiledata.xml new file mode 100644 index 000000000..6fdc6ac5d --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_lte_plus_mobiledata.xml @@ -0,0 +1,57 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_0_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_0_4_bar.xml new file mode 100644 index 000000000..712c49391 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_0_4_bar.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_0_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_0_5_bar.xml new file mode 100644 index 000000000..712c49391 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_0_5_bar.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_1_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..f08da03ca --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_1_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_1_5_bar.xml new file mode 100644 index 000000000..f08da03ca --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_1_5_bar.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_2_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..900bbd66d --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_2_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_2_5_bar.xml new file mode 100644 index 000000000..9646f98a0 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_2_5_bar.xml @@ -0,0 +1,27 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_3_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..97dc06545 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_3_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_3_5_bar.xml new file mode 100644 index 000000000..900bbd66d --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_3_5_bar.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_4_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..5e4c24270 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_4_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_4_5_bar.xml new file mode 100644 index 000000000..acf1ac807 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_4_5_bar.xml @@ -0,0 +1,27 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_5_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_5_5_bar.xml new file mode 100644 index 000000000..5e4c24270 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC23/res/drawable/ic_signal_cellular_5_5_bar.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC23/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC23/res/values/strings.xml new file mode 100644 index 000000000..d17baff6f --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC23/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Plumpy + + + diff --git a/app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_0_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_0_4_bar.xml new file mode 100644 index 000000000..36166b1b7 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_0_4_bar.xml @@ -0,0 +1,19 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_0_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_0_5_bar.xml new file mode 100644 index 000000000..36166b1b7 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_0_5_bar.xml @@ -0,0 +1,19 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_1_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..e683bbefd --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,19 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_1_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_1_5_bar.xml new file mode 100644 index 000000000..e683bbefd --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_1_5_bar.xml @@ -0,0 +1,19 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_2_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..e75b2a6d5 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,19 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_2_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_2_5_bar.xml new file mode 100644 index 000000000..e75b2a6d5 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_2_5_bar.xml @@ -0,0 +1,19 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_3_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..50f76bd71 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,19 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_3_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_3_5_bar.xml new file mode 100644 index 000000000..50f76bd71 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_3_5_bar.xml @@ -0,0 +1,19 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_4_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..4f18862b0 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,19 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_4_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_4_5_bar.xml new file mode 100644 index 000000000..4f18862b0 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_4_5_bar.xml @@ -0,0 +1,19 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_5_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_5_5_bar.xml new file mode 100644 index 000000000..4f18862b0 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC24/res/drawable/ic_signal_cellular_5_5_bar.xml @@ -0,0 +1,19 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC24/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC24/res/values/strings.xml new file mode 100644 index 000000000..7a64b29b6 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC24/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Rel + + + diff --git a/app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_0_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_0_4_bar.xml new file mode 100644 index 000000000..d4883b2f8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_0_4_bar.xml @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_0_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_0_5_bar.xml new file mode 100644 index 000000000..d4883b2f8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_0_5_bar.xml @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_1_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..e4eb791c5 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,7 @@ + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_1_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_1_5_bar.xml new file mode 100644 index 000000000..e4eb791c5 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_1_5_bar.xml @@ -0,0 +1,7 @@ + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_2_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..2ce739f0c --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_2_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_2_5_bar.xml new file mode 100644 index 000000000..2ce739f0c --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_2_5_bar.xml @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_3_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..6e33da8da --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_3_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_3_5_bar.xml new file mode 100644 index 000000000..6e33da8da --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_3_5_bar.xml @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_4_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..a36c4b048 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_4_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_4_5_bar.xml new file mode 100644 index 000000000..a36c4b048 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_4_5_bar.xml @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_5_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_5_5_bar.xml new file mode 100644 index 000000000..c8033e14d --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC25/res/drawable/ic_signal_cellular_5_5_bar.xml @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC25/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC25/res/values/strings.xml new file mode 100644 index 000000000..e75319d6b --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC25/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Roman + + + diff --git a/app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_0_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_0_4_bar.xml new file mode 100644 index 000000000..df71163ce --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_0_4_bar.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_0_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_0_5_bar.xml new file mode 100644 index 000000000..df71163ce --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_0_5_bar.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_1_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..6ea3f7147 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_1_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_1_5_bar.xml new file mode 100644 index 000000000..6ea3f7147 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_1_5_bar.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_2_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..7d8ba2f21 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_2_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_2_5_bar.xml new file mode 100644 index 000000000..7d8ba2f21 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_2_5_bar.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_3_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..db5411db2 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_3_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_3_5_bar.xml new file mode 100644 index 000000000..db5411db2 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_3_5_bar.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_4_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..29c3ea284 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_4_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_4_5_bar.xml new file mode 100644 index 000000000..29c3ea284 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_4_5_bar.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_5_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_5_5_bar.xml new file mode 100644 index 000000000..29c3ea284 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC26/res/drawable/ic_signal_cellular_5_5_bar.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC26/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC26/res/values/strings.xml new file mode 100644 index 000000000..a98302b17 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC26/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Round + + + diff --git a/app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_0_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_0_4_bar.xml new file mode 100644 index 000000000..bd435406d --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_0_4_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_0_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_0_5_bar.xml new file mode 100644 index 000000000..bd435406d --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_0_5_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_1_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..6164e201b --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_1_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_1_5_bar.xml new file mode 100644 index 000000000..6164e201b --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_1_5_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_2_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..e771017df --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_2_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_2_5_bar.xml new file mode 100644 index 000000000..e771017df --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_2_5_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_3_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..8934ed54f --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_3_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_3_5_bar.xml new file mode 100644 index 000000000..8934ed54f --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_3_5_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_4_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..52285595a --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_4_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_4_5_bar.xml new file mode 100644 index 000000000..52285595a --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_4_5_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_5_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_5_5_bar.xml new file mode 100644 index 000000000..52285595a --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC27/res/drawable/ic_signal_cellular_5_5_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC27/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC27/res/values/strings.xml new file mode 100644 index 000000000..84127f60e --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC27/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Scroll + + + diff --git a/app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_0_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_0_4_bar.xml new file mode 100644 index 000000000..079641719 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_0_4_bar.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_0_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_0_5_bar.xml new file mode 100644 index 000000000..079641719 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_0_5_bar.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_1_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..4c767ccba --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_1_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_1_5_bar.xml new file mode 100644 index 000000000..4c767ccba --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_1_5_bar.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_2_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..561b1fd55 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_2_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_2_5_bar.xml new file mode 100644 index 000000000..561b1fd55 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_2_5_bar.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_3_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..53c8458db --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_3_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_3_5_bar.xml new file mode 100644 index 000000000..53c8458db --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_3_5_bar.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_4_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..9f93ea0b8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_4_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_4_5_bar.xml new file mode 100644 index 000000000..d51c89c81 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_4_5_bar.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_5_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_5_5_bar.xml new file mode 100644 index 000000000..d51c89c81 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC28/res/drawable/ic_signal_cellular_5_5_bar.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC28/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC28/res/values/strings.xml new file mode 100644 index 000000000..acc80ba85 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC28/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Sea + + + diff --git a/app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_0_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_0_4_bar.xml new file mode 100644 index 000000000..689d5664d --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_0_4_bar.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_0_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_0_5_bar.xml new file mode 100644 index 000000000..689d5664d --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_0_5_bar.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_1_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..2d71803c7 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_1_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_1_5_bar.xml new file mode 100644 index 000000000..2d71803c7 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_1_5_bar.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_2_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..72f83cf96 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_2_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_2_5_bar.xml new file mode 100644 index 000000000..72f83cf96 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_2_5_bar.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_3_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..c2af388b9 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_3_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_3_5_bar.xml new file mode 100644 index 000000000..c2af388b9 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_3_5_bar.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_4_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..04d4d2702 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_4_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_4_5_bar.xml new file mode 100644 index 000000000..04d4d2702 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_4_5_bar.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_5_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_5_5_bar.xml new file mode 100644 index 000000000..04d4d2702 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC29/res/drawable/ic_signal_cellular_5_5_bar.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC29/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC29/res/values/strings.xml new file mode 100644 index 000000000..5da81e973 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC29/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Sneaky + + + diff --git a/app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_0_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_0_4_bar.xml new file mode 100644 index 000000000..38b31011a --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_0_4_bar.xml @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_0_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_0_5_bar.xml new file mode 100644 index 000000000..38b31011a --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_0_5_bar.xml @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_1_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..1ecbce706 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_1_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_1_5_bar.xml new file mode 100644 index 000000000..1ecbce706 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_1_5_bar.xml @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_2_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..7b7b7ec05 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_2_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_2_5_bar.xml new file mode 100644 index 000000000..7b7b7ec05 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_2_5_bar.xml @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_3_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..28bcab505 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_3_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_3_5_bar.xml new file mode 100644 index 000000000..28bcab505 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_3_5_bar.xml @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_4_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..06c36c0fd --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_4_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_4_5_bar.xml new file mode 100644 index 000000000..06c36c0fd --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_4_5_bar.xml @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_5_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_5_5_bar.xml new file mode 100644 index 000000000..06c36c0fd --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC3/res/drawable/ic_signal_cellular_5_5_bar.xml @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC3/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC3/res/values/strings.xml new file mode 100644 index 000000000..06a64025e --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC3/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Bars + + + diff --git a/app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_0_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_0_4_bar.xml new file mode 100644 index 000000000..ab2c36147 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_0_4_bar.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_0_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_0_5_bar.xml new file mode 100644 index 000000000..ab2c36147 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_0_5_bar.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_1_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..016a3a8fc --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_1_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_1_5_bar.xml new file mode 100644 index 000000000..a4e13b2a5 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_1_5_bar.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_2_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..71f52d4bd --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_2_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_2_5_bar.xml new file mode 100644 index 000000000..71f52d4bd --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_2_5_bar.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_3_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..852c1dac1 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_3_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_3_5_bar.xml new file mode 100644 index 000000000..852c1dac1 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_3_5_bar.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_4_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..8f7b90a15 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_4_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_4_5_bar.xml new file mode 100644 index 000000000..8f7b90a15 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_4_5_bar.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_5_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_5_5_bar.xml new file mode 100644 index 000000000..8f7b90a15 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC30/res/drawable/ic_signal_cellular_5_5_bar.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC30/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC30/res/values/strings.xml new file mode 100644 index 000000000..64c67bd18 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC30/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Stack + + + diff --git a/app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_0_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_0_4_bar.xml new file mode 100644 index 000000000..ebe7e8878 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_0_4_bar.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_0_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_0_5_bar.xml new file mode 100644 index 000000000..ebe7e8878 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_0_5_bar.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_1_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..b149a1d54 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_1_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_1_5_bar.xml new file mode 100644 index 000000000..b149a1d54 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_1_5_bar.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_2_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..ceb7d5095 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_2_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_2_5_bar.xml new file mode 100644 index 000000000..ceb7d5095 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_2_5_bar.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_3_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..d355efa26 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_3_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_3_5_bar.xml new file mode 100644 index 000000000..d355efa26 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_3_5_bar.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_4_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..ffb465530 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_4_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_4_5_bar.xml new file mode 100644 index 000000000..ffb465530 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_4_5_bar.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_5_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_5_5_bar.xml new file mode 100644 index 000000000..ffb465530 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC31/res/drawable/ic_signal_cellular_5_5_bar.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC31/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC31/res/values/strings.xml new file mode 100644 index 000000000..e0693e37a --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC31/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Stroke + + + diff --git a/app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_0_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_0_4_bar.xml new file mode 100644 index 000000000..58c2ac214 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_0_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_0_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_0_5_bar.xml new file mode 100644 index 000000000..58c2ac214 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_0_5_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_1_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..052a63233 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_1_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_1_5_bar.xml new file mode 100644 index 000000000..052a63233 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_1_5_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_2_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..64c1aff54 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_2_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_2_5_bar.xml new file mode 100644 index 000000000..64c1aff54 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_2_5_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_3_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..8b6edabe9 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_3_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_3_5_bar.xml new file mode 100644 index 000000000..8b6edabe9 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_3_5_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_4_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..1aa6aa09a --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_4_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_4_5_bar.xml new file mode 100644 index 000000000..1aa6aa09a --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_4_5_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_5_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_5_5_bar.xml new file mode 100644 index 000000000..1aa6aa09a --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC32/res/drawable/ic_signal_cellular_5_5_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC32/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC32/res/values/strings.xml new file mode 100644 index 000000000..c80125e55 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC32/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Wannui + + + diff --git a/app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_0_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_0_4_bar.xml new file mode 100644 index 000000000..ea3d909f3 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_0_4_bar.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_0_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_0_5_bar.xml new file mode 100644 index 000000000..ea3d909f3 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_0_5_bar.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_1_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..0c9074b83 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_1_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_1_5_bar.xml new file mode 100644 index 000000000..0c9074b83 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_1_5_bar.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_2_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..ac81a3de8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_2_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_2_5_bar.xml new file mode 100644 index 000000000..ac81a3de8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_2_5_bar.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_3_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..c2259b10b --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_3_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_3_5_bar.xml new file mode 100644 index 000000000..c2259b10b --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_3_5_bar.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_4_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..b71c4c6c7 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_4_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_4_5_bar.xml new file mode 100644 index 000000000..b71c4c6c7 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_4_5_bar.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_5_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_5_5_bar.xml new file mode 100644 index 000000000..b71c4c6c7 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC33/res/drawable/ic_signal_cellular_5_5_bar.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC33/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC33/res/values/strings.xml new file mode 100644 index 000000000..ae110b5ab --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC33/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Wavy + + + diff --git a/app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_0_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_0_4_bar.xml new file mode 100644 index 000000000..358b914fc --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_0_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_0_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_0_5_bar.xml new file mode 100644 index 000000000..358b914fc --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_0_5_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_1_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..c5b3d1692 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_1_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_1_5_bar.xml new file mode 100644 index 000000000..c5b3d1692 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_1_5_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_2_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..ecb0f760b --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_2_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_2_5_bar.xml new file mode 100644 index 000000000..ecb0f760b --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_2_5_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_3_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..407fbdee0 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_3_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_3_5_bar.xml new file mode 100644 index 000000000..407fbdee0 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_3_5_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_4_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..0cc865c10 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_4_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_4_5_bar.xml new file mode 100644 index 000000000..0cc865c10 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_4_5_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_5_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_5_5_bar.xml new file mode 100644 index 000000000..0cc865c10 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC34/res/drawable/ic_signal_cellular_5_5_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC34/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC34/res/values/strings.xml new file mode 100644 index 000000000..f83b393b2 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC34/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Windows + + + diff --git a/app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_0_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_0_4_bar.xml new file mode 100644 index 000000000..2bf2fb31a --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_0_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_0_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_0_5_bar.xml new file mode 100644 index 000000000..2bf2fb31a --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_0_5_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_1_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..3ed9275ee --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_1_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_1_5_bar.xml new file mode 100644 index 000000000..3ed9275ee --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_1_5_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_2_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..2ef8f395c --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_2_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_2_5_bar.xml new file mode 100644 index 000000000..2ef8f395c --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_2_5_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_3_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..288ebe57c --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_3_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_3_5_bar.xml new file mode 100644 index 000000000..288ebe57c --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_3_5_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_4_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..d341b92d4 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_4_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_4_5_bar.xml new file mode 100644 index 000000000..d341b92d4 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_4_5_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_5_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_5_5_bar.xml new file mode 100644 index 000000000..d341b92d4 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC35/res/drawable/ic_signal_cellular_5_5_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC35/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC35/res/values/strings.xml new file mode 100644 index 000000000..85cfeb3e9 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC35/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Wing + + + diff --git a/app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_0_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_0_4_bar.xml new file mode 100644 index 000000000..86139d1cc --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_0_4_bar.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_0_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_0_5_bar.xml new file mode 100644 index 000000000..86139d1cc --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_0_5_bar.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_1_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..bc74851e3 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_1_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_1_5_bar.xml new file mode 100644 index 000000000..bc74851e3 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_1_5_bar.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_2_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..09a9de7dc --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_2_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_2_5_bar.xml new file mode 100644 index 000000000..09a9de7dc --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_2_5_bar.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_3_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..aebc5b341 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_3_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_3_5_bar.xml new file mode 100644 index 000000000..aebc5b341 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_3_5_bar.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_4_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..e6f8c660c --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_4_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_4_5_bar.xml new file mode 100644 index 000000000..e6f8c660c --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_4_5_bar.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_5_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_5_5_bar.xml new file mode 100644 index 000000000..e6f8c660c --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC36/res/drawable/ic_signal_cellular_5_5_bar.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/SGIC36/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC36/res/values/strings.xml new file mode 100644 index 000000000..4b7715d5e --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC36/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Xperia + + + diff --git a/app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_0_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_0_4_bar.xml new file mode 100644 index 000000000..e19d4a6fb --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_0_4_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_0_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_0_5_bar.xml new file mode 100644 index 000000000..ae2e215f3 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_0_5_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_1_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..39fa79c91 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_1_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_1_5_bar.xml new file mode 100644 index 000000000..049aed57b --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_1_5_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_2_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..185ee1072 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_2_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_2_5_bar.xml new file mode 100644 index 000000000..185ee1072 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_2_5_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_3_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..b8f1b43b5 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_3_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_3_5_bar.xml new file mode 100644 index 000000000..b8f1b43b5 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_3_5_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_4_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..bf29c73d1 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_4_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_4_5_bar.xml new file mode 100644 index 000000000..bf29c73d1 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_4_5_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_5_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_5_5_bar.xml new file mode 100644 index 000000000..bf29c73d1 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC4/res/drawable/ic_signal_cellular_5_5_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC4/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC4/res/values/strings.xml new file mode 100644 index 000000000..6a27a2217 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC4/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Butterfly + + + diff --git a/app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_0_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_0_4_bar.xml new file mode 100644 index 000000000..49c8e9217 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_0_4_bar.xml @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_0_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_0_5_bar.xml new file mode 100644 index 000000000..49c8e9217 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_0_5_bar.xml @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_1_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..d1312a6f0 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_1_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_1_5_bar.xml new file mode 100644 index 000000000..d1312a6f0 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_1_5_bar.xml @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_2_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..36143d3c8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_2_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_2_5_bar.xml new file mode 100644 index 000000000..36143d3c8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_2_5_bar.xml @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_3_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..554850966 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_3_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_3_5_bar.xml new file mode 100644 index 000000000..554850966 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_3_5_bar.xml @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_4_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..725a41460 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_4_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_4_5_bar.xml new file mode 100644 index 000000000..725a41460 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_4_5_bar.xml @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_5_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_5_5_bar.xml new file mode 100644 index 000000000..725a41460 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC5/res/drawable/ic_signal_cellular_5_5_bar.xml @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC5/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC5/res/values/strings.xml new file mode 100644 index 000000000..42cbc454d --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC5/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Circle + + + diff --git a/app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_0_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_0_4_bar.xml new file mode 100644 index 000000000..145fd05bd --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_0_4_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_0_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_0_5_bar.xml new file mode 100644 index 000000000..145fd05bd --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_0_5_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_1_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..b10190819 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_1_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_1_5_bar.xml new file mode 100644 index 000000000..b10190819 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_1_5_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_2_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..ae4b4ad54 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_2_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_2_5_bar.xml new file mode 100644 index 000000000..ae4b4ad54 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_2_5_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_3_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..a9ec0f75e --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_3_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_3_5_bar.xml new file mode 100644 index 000000000..a9ec0f75e --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_3_5_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_4_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..3f6137d42 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_4_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_4_5_bar.xml new file mode 100644 index 000000000..3f6137d42 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_4_5_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_5_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_5_5_bar.xml new file mode 100644 index 000000000..3f6137d42 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC6/res/drawable/ic_signal_cellular_5_5_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC6/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC6/res/values/strings.xml new file mode 100644 index 000000000..b1cb6415d --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC6/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Daun + + + diff --git a/app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_0_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_0_4_bar.xml new file mode 100644 index 000000000..91105c9f4 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_0_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_0_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_0_5_bar.xml new file mode 100644 index 000000000..91105c9f4 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_0_5_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_1_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..91105c9f4 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_1_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_1_5_bar.xml new file mode 100644 index 000000000..91105c9f4 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_1_5_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_2_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..df462a481 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_2_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_2_5_bar.xml new file mode 100644 index 000000000..df462a481 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_2_5_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_3_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..72af92adb --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_3_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_3_5_bar.xml new file mode 100644 index 000000000..72af92adb --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_3_5_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_4_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..9df8b17db --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_4_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_4_5_bar.xml new file mode 100644 index 000000000..9df8b17db --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_4_5_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_5_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_5_5_bar.xml new file mode 100644 index 000000000..9df8b17db --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC7/res/drawable/ic_signal_cellular_5_5_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC7/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC7/res/values/strings.xml new file mode 100644 index 000000000..16ad17437 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC7/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Dec + + + diff --git a/app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_0_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_0_4_bar.xml new file mode 100644 index 000000000..ba55e06c5 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_0_4_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_0_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_0_5_bar.xml new file mode 100644 index 000000000..ba55e06c5 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_0_5_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_1_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..c096b8452 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_1_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_1_5_bar.xml new file mode 100644 index 000000000..c096b8452 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_1_5_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_2_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..f1133a5eb --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_2_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_2_5_bar.xml new file mode 100644 index 000000000..f1133a5eb --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_2_5_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_3_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..ac4d88565 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_3_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_3_5_bar.xml new file mode 100644 index 000000000..ac4d88565 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_3_5_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_4_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..b7e93666c --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_4_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_4_5_bar.xml new file mode 100644 index 000000000..b7e93666c --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_4_5_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_5_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_5_5_bar.xml new file mode 100644 index 000000000..b7e93666c --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC8/res/drawable/ic_signal_cellular_5_5_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC8/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC8/res/values/strings.xml new file mode 100644 index 000000000..3f172ef08 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC8/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Deep + + + diff --git a/app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_0_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_0_4_bar.xml new file mode 100644 index 000000000..c60ad0495 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_0_4_bar.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_0_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_0_5_bar.xml new file mode 100644 index 000000000..c60ad0495 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_0_5_bar.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_1_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..445681baa --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_1_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_1_5_bar.xml new file mode 100644 index 000000000..445681baa --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_1_5_bar.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_2_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..b2d37469d --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_2_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_2_5_bar.xml new file mode 100644 index 000000000..b2d37469d --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_2_5_bar.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_3_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..49d9ecd88 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_3_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_3_5_bar.xml new file mode 100644 index 000000000..49d9ecd88 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_3_5_bar.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_4_4_bar.xml b/app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..11b7d92a9 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_4_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_4_5_bar.xml new file mode 100644 index 000000000..11b7d92a9 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_4_5_bar.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_5_5_bar.xml b/app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_5_5_bar.xml new file mode 100644 index 000000000..11b7d92a9 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC9/res/drawable/ic_signal_cellular_5_5_bar.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/SGIC9/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC9/res/values/strings.xml new file mode 100644 index 000000000..4bfab9638 --- /dev/null +++ b/app/src/main/assets/Overlays/android/SGIC9/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Dora + + + diff --git a/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_signal_0.xml new file mode 100644 index 000000000..17a804f7d --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_signal_0.xml @@ -0,0 +1,14 @@ + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_signal_1.xml new file mode 100644 index 000000000..fec096e70 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_signal_1.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_signal_2.xml new file mode 100644 index 000000000..5dd08b195 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_signal_2.xml @@ -0,0 +1,30 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_signal_3.xml new file mode 100644 index 000000000..1974b4d26 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_signal_3.xml @@ -0,0 +1,38 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_signal_4.xml new file mode 100644 index 000000000..18eec4e44 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_signal_4.xml @@ -0,0 +1,38 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI1/res/values/strings.xml b/app/src/main/assets/Overlays/android/WIFI1/res/values/strings.xml new file mode 100644 index 000000000..8e225afcb --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI1/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Aurora + + + diff --git a/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_signal_0.xml new file mode 100644 index 000000000..de80ec9e8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_signal_0.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_signal_1.xml new file mode 100644 index 000000000..f8fbf1e32 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_signal_1.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_signal_2.xml new file mode 100644 index 000000000..226d28263 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_signal_2.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_signal_3.xml new file mode 100644 index 000000000..de80ec9e8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_signal_3.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_signal_4.xml new file mode 100644 index 000000000..de80ec9e8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_signal_4.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI10/res/values/strings.xml b/app/src/main/assets/Overlays/android/WIFI10/res/values/strings.xml new file mode 100644 index 000000000..a98302b17 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI10/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Round + + + diff --git a/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_signal_0.xml new file mode 100644 index 000000000..abc3a1a1b --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_signal_0.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_signal_1.xml new file mode 100644 index 000000000..465a729ab --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_signal_1.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_signal_2.xml new file mode 100644 index 000000000..a4553d7ec --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_signal_2.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_signal_3.xml new file mode 100644 index 000000000..df7b1d63a --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_signal_3.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_signal_4.xml new file mode 100644 index 000000000..abc3a1a1b --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_signal_4.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI11/res/values/strings.xml b/app/src/main/assets/Overlays/android/WIFI11/res/values/strings.xml new file mode 100644 index 000000000..5da81e973 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI11/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Sneaky + + + diff --git a/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_signal_0.xml new file mode 100644 index 000000000..1119f8131 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_signal_0.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_signal_1.xml new file mode 100644 index 000000000..d33292b6b --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_signal_1.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_signal_2.xml new file mode 100644 index 000000000..16a2e9902 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_signal_2.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_signal_3.xml new file mode 100644 index 000000000..aa17764ba --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_signal_3.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_signal_4.xml new file mode 100644 index 000000000..894c47966 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_signal_4.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI12/res/values/strings.xml b/app/src/main/assets/Overlays/android/WIFI12/res/values/strings.xml new file mode 100644 index 000000000..e0693e37a --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI12/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Stroke + + + diff --git a/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_signal_0.xml new file mode 100644 index 000000000..502071544 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_signal_0.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_signal_1.xml new file mode 100644 index 000000000..6b42ba14a --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_signal_1.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_signal_2.xml new file mode 100644 index 000000000..7617c3fbd --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_signal_2.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_signal_3.xml new file mode 100644 index 000000000..746887bc3 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_signal_3.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_signal_4.xml new file mode 100644 index 000000000..88ae44047 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_signal_4.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI13/res/values/strings.xml b/app/src/main/assets/Overlays/android/WIFI13/res/values/strings.xml new file mode 100644 index 000000000..ae110b5ab --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI13/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Wavy + + + diff --git a/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_signal_0.xml new file mode 100644 index 000000000..3e389c657 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_signal_0.xml @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_signal_1.xml new file mode 100644 index 000000000..204e906b2 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_signal_1.xml @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_signal_2.xml new file mode 100644 index 000000000..f5a538cdb --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_signal_2.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_signal_3.xml new file mode 100644 index 000000000..b57747aa4 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_signal_3.xml @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_signal_4.xml new file mode 100644 index 000000000..66fb6e362 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_signal_4.xml @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI14/res/values/strings.xml b/app/src/main/assets/Overlays/android/WIFI14/res/values/strings.xml new file mode 100644 index 000000000..bd7c23037 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI14/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Weed + + + diff --git a/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_signal_0.xml new file mode 100644 index 000000000..056f813de --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_signal_0.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_signal_1.xml new file mode 100644 index 000000000..d1a978fa8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_signal_1.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_signal_2.xml new file mode 100644 index 000000000..f9e7b669c --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_signal_2.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_signal_3.xml new file mode 100644 index 000000000..056f813de --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_signal_3.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_signal_4.xml new file mode 100644 index 000000000..056f813de --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_signal_4.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI15/res/values/strings.xml b/app/src/main/assets/Overlays/android/WIFI15/res/values/strings.xml new file mode 100644 index 000000000..4b7715d5e --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI15/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Xperia + + + diff --git a/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_signal_0.xml new file mode 100644 index 000000000..b4c6a3445 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_signal_0.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_signal_1.xml new file mode 100644 index 000000000..e33ba2644 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_signal_1.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_signal_2.xml new file mode 100644 index 000000000..83908487d --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_signal_2.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_signal_3.xml new file mode 100644 index 000000000..6195b24b0 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_signal_3.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_signal_4.xml new file mode 100644 index 000000000..76c0868a4 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_signal_4.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI16/res/values/strings.xml b/app/src/main/assets/Overlays/android/WIFI16/res/values/strings.xml new file mode 100644 index 000000000..1be21314f --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI16/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + ZigZag + + + diff --git a/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_signal_0.xml new file mode 100644 index 000000000..2a4327571 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_signal_0.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_signal_1.xml new file mode 100644 index 000000000..f05deda6a --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_signal_1.xml @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_signal_2.xml new file mode 100644 index 000000000..a6d1cf1be --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_signal_2.xml @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_signal_3.xml new file mode 100644 index 000000000..b668f00d7 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_signal_3.xml @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_signal_4.xml new file mode 100644 index 000000000..82cf3b616 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_signal_4.xml @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI2/res/values/strings.xml b/app/src/main/assets/Overlays/android/WIFI2/res/values/strings.xml new file mode 100644 index 000000000..06a64025e --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI2/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Bars + + + diff --git a/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_signal_wifi_transient_animation.xml b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_signal_wifi_transient_animation.xml new file mode 100644 index 000000000..f96ae041a --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_signal_wifi_transient_animation.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_signal_0.xml new file mode 100644 index 000000000..17297d38a --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_signal_0.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_signal_1.xml new file mode 100644 index 000000000..361725009 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_signal_1.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_signal_2.xml new file mode 100644 index 000000000..a9c6992e5 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_signal_2.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_signal_3.xml new file mode 100644 index 000000000..d902c2970 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_signal_3.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_signal_4.xml new file mode 100644 index 000000000..f96ae041a --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_signal_4.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI3/res/values/strings.xml b/app/src/main/assets/Overlays/android/WIFI3/res/values/strings.xml new file mode 100644 index 000000000..4bfab9638 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI3/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Dora + + + diff --git a/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_signal_wifi_transient_animation.xml b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_signal_wifi_transient_animation.xml new file mode 100644 index 000000000..59db1a957 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_signal_wifi_transient_animation.xml @@ -0,0 +1,38 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_signal_wifi_transient_animation_drawable.xml b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_signal_wifi_transient_animation_drawable.xml new file mode 100644 index 000000000..59db1a957 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_signal_wifi_transient_animation_drawable.xml @@ -0,0 +1,38 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_signal_0.xml new file mode 100644 index 000000000..59db1a957 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_signal_0.xml @@ -0,0 +1,38 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_signal_1.xml new file mode 100644 index 000000000..1ea85488b --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_signal_1.xml @@ -0,0 +1,30 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_signal_2.xml new file mode 100644 index 000000000..b366d77d9 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_signal_2.xml @@ -0,0 +1,38 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_signal_3.xml new file mode 100644 index 000000000..d827bca42 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_signal_3.xml @@ -0,0 +1,46 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_signal_4.xml new file mode 100644 index 000000000..7c0a964be --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_signal_4.xml @@ -0,0 +1,46 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI4/res/values/strings.xml b/app/src/main/assets/Overlays/android/WIFI4/res/values/strings.xml new file mode 100644 index 000000000..e55ad1f20 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI4/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Faint UI + + + diff --git a/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_signal_wifi_transient_animation.xml b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_signal_wifi_transient_animation.xml new file mode 100644 index 000000000..85643697a --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_signal_wifi_transient_animation.xml @@ -0,0 +1,30 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_signal_wifi_transient_animation_drawable.xml b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_signal_wifi_transient_animation_drawable.xml new file mode 100644 index 000000000..85643697a --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_signal_wifi_transient_animation_drawable.xml @@ -0,0 +1,30 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_signal_0.xml new file mode 100644 index 000000000..85643697a --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_signal_0.xml @@ -0,0 +1,30 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_signal_1.xml new file mode 100644 index 000000000..500617c4b --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_signal_1.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_signal_2.xml new file mode 100644 index 000000000..f0aa6e016 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_signal_2.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_signal_3.xml new file mode 100644 index 000000000..23c0e7f0f --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_signal_3.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_signal_4.xml new file mode 100644 index 000000000..23c0e7f0f --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_signal_4.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI5/res/values/strings.xml b/app/src/main/assets/Overlays/android/WIFI5/res/values/strings.xml new file mode 100644 index 000000000..ae97c74dd --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI5/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Forlorn + + + diff --git a/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_signal_wifi_transient_animation.xml b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_signal_wifi_transient_animation.xml new file mode 100644 index 000000000..eef571d59 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_signal_wifi_transient_animation.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_signal_wifi_transient_animation_drawable.xml b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_signal_wifi_transient_animation_drawable.xml new file mode 100644 index 000000000..eef571d59 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_signal_wifi_transient_animation_drawable.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_signal_0.xml new file mode 100644 index 000000000..927d22325 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_signal_0.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_signal_1.xml new file mode 100644 index 000000000..867de6807 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_signal_1.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_signal_2.xml new file mode 100644 index 000000000..e2207408d --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_signal_2.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_signal_3.xml new file mode 100644 index 000000000..eef571d59 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_signal_3.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_signal_4.xml new file mode 100644 index 000000000..eef571d59 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_signal_4.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI6/res/values/strings.xml b/app/src/main/assets/Overlays/android/WIFI6/res/values/strings.xml new file mode 100644 index 000000000..d73727615 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI6/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Gradicon + + + diff --git a/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_signal_0.xml new file mode 100644 index 000000000..4df9bc617 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_signal_0.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_signal_1.xml new file mode 100644 index 000000000..ece630995 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_signal_1.xml @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_signal_2.xml new file mode 100644 index 000000000..41e4caea8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_signal_2.xml @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_signal_3.xml new file mode 100644 index 000000000..6e7a27fb8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_signal_3.xml @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_signal_4.xml new file mode 100644 index 000000000..70e9d7a9e --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_signal_4.xml @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI7/res/values/strings.xml b/app/src/main/assets/Overlays/android/WIFI7/res/values/strings.xml new file mode 100644 index 000000000..427e4f1fd --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI7/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Inside + + + diff --git a/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_signal_0.xml new file mode 100644 index 000000000..e17d81062 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_signal_0.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_signal_1.xml new file mode 100644 index 000000000..a3865f829 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_signal_1.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_signal_2.xml new file mode 100644 index 000000000..eb32dd9a8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_signal_2.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_signal_3.xml new file mode 100644 index 000000000..aaae51a35 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_signal_3.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_signal_4.xml new file mode 100644 index 000000000..4f2da1a5d --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_signal_4.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI8/res/values/strings.xml b/app/src/main/assets/Overlays/android/WIFI8/res/values/strings.xml new file mode 100644 index 000000000..11f30a066 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI8/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Nothing Dot + + + diff --git a/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_signal_wifi_transient_animation.xml b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_signal_wifi_transient_animation.xml new file mode 100644 index 000000000..3509c4ead --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_signal_wifi_transient_animation.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_signal_wifi_transient_animation_drawable.xml b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_signal_wifi_transient_animation_drawable.xml new file mode 100644 index 000000000..3509c4ead --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_signal_wifi_transient_animation_drawable.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_signal_0.xml new file mode 100644 index 000000000..3509c4ead --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_signal_0.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_signal_1.xml new file mode 100644 index 000000000..175ec6658 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_signal_1.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_signal_2.xml new file mode 100644 index 000000000..702a4471f --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_signal_2.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_signal_3.xml new file mode 100644 index 000000000..2b58058e3 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_signal_3.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_signal_4.xml new file mode 100644 index 000000000..f84d7689d --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_signal_4.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI9/res/values/strings.xml b/app/src/main/assets/Overlays/android/WIFI9/res/values/strings.xml new file mode 100644 index 000000000..d17baff6f --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI9/res/values/strings.xml @@ -0,0 +1,24 @@ + + + + + Plumpy + + + diff --git a/app/src/main/java/com/drdisagree/iconify/ui/adapters/IconPackAdapter.kt b/app/src/main/java/com/drdisagree/iconify/ui/adapters/IconPackAdapter.kt index bbd36456f..96f5f5b46 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/adapters/IconPackAdapter.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/adapters/IconPackAdapter.kt @@ -4,6 +4,7 @@ import android.app.Activity import android.content.Context import android.os.Handler import android.os.Looper +import android.text.TextUtils import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -15,7 +16,6 @@ import android.widget.Toast import androidx.core.content.ContextCompat import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.drdisagree.iconify.Iconify import com.drdisagree.iconify.Iconify.Companion.appContext import com.drdisagree.iconify.R import com.drdisagree.iconify.config.Prefs.getBoolean @@ -26,16 +26,29 @@ import com.drdisagree.iconify.utils.overlay.manager.IconPackManager class IconPackAdapter( var context: Context, private var itemList: ArrayList, - var loadingDialog: LoadingDialog + var loadingDialog: LoadingDialog, + private var componentName : String, + private var onButtonClick : OnButtonClick? = null ) : RecyclerView.Adapter() { + private var iconPackKeys = ArrayList() private var linearLayoutManager: LinearLayoutManager? = null private var selectedItem = -1 + private var mComponentName = componentName + + constructor( + context: Context, + itemList: ArrayList, + loadingDialog: LoadingDialog, + compName: String + ) : this(context, itemList, loadingDialog, compName, null) init { // Preference key - for (i in 1..itemList.size) iconPackKeys.add("IconifyComponentIPAS$i.overlay") + for (i in 1..itemList.size) iconPackKeys.add( + itemList[i - 1].packageName.takeIf { !it.isNullOrEmpty() } ?: "IconifyComponent${mComponentName}${i}.overlay" + ) } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { @@ -47,11 +60,32 @@ class IconPackAdapter( override fun onBindViewHolder(holder: ViewHolder, position: Int) { holder.styleName.text = itemList[position].name - holder.desc.text = context.resources.getString(itemList[position].desc) - holder.icon1.setImageResource(itemList[position].icon1) - holder.icon2.setImageResource(itemList[position].icon2) - holder.icon3.setImageResource(itemList[position].icon3) - holder.icon4.setImageResource(itemList[position].icon4) + if (itemList[position].desc != 0x0) { + holder.desc.visibility = View.VISIBLE + holder.desc.text = context.resources.getString(itemList[position].desc) + } else + holder.desc.visibility = View.GONE + + if (itemList[position].icon1 != 0x0) { + holder.icon1.setImageResource(itemList[position].icon1) + } else if (itemList[position].drawableIcon1 != null) { + holder.icon1.setImageDrawable(itemList[position].drawableIcon1) + } + if (itemList[position].icon2 != 0x0) { + holder.icon2.setImageResource(itemList[position].icon2) + } else if (itemList[position].drawableIcon2 != null) { + holder.icon2.setImageDrawable(itemList[position].drawableIcon2) + } + if (itemList[position].icon1 != 0x0) { + holder.icon3.setImageResource(itemList[position].icon3) + } else if (itemList[position].drawableIcon3 != null) { + holder.icon3.setImageDrawable(itemList[position].drawableIcon3) + } + if (itemList[position].icon4 != 0x0) { + holder.icon4.setImageResource(itemList[position].icon4) + } else if (itemList[position].drawableIcon4 != null) { + holder.icon4.setImageDrawable(itemList[position].drawableIcon4) + } refreshButton(holder) enableOnClickListener(holder) @@ -110,7 +144,9 @@ class IconPackAdapter( loadingDialog.show(context.resources.getString(R.string.loading_dialog_wait)) Thread { - IconPackManager.enableOverlay(holder.getBindingAdapterPosition() + 1) + if (onButtonClick != null) { + onButtonClick!!.onEnableClick(holder.bindingAdapterPosition, itemList[holder.bindingAdapterPosition]) + } (context as Activity).runOnUiThread { Handler(Looper.getMainLooper()).postDelayed({ @@ -139,7 +175,9 @@ class IconPackAdapter( loadingDialog.show(context.resources.getString(R.string.loading_dialog_wait)) Thread { - IconPackManager.disableOverlay(holder.getBindingAdapterPosition() + 1) + if (onButtonClick != null) { + onButtonClick!!.onDisableClick(holder.bindingAdapterPosition, itemList[holder.bindingAdapterPosition]) + } (context as Activity).runOnUiThread { Handler(Looper.getMainLooper()).postDelayed({ @@ -276,4 +314,13 @@ class IconPackAdapter( btnDisable = itemView.findViewById(R.id.disable_iconpack) } } + + /** + * Interface for the click on the item + */ + interface OnButtonClick { + fun onEnableClick(position: Int, item: IconPackModel) + fun onDisableClick(position: Int, item: IconPackModel) + } + } diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/Home.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/Home.kt index ce53109b2..0f6c6c4b6 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/Home.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/Home.kt @@ -160,6 +160,22 @@ class Home : BaseFragment() { R.drawable.ic_styles_iconpack ) ) + add( + arrayOf( + R.id.action_homePage_to_signalIcons, + appContextLocale.resources.getString(R.string.activity_title_signal_icons), + appContextLocale.resources.getString(R.string.activity_desc_signal_icons), + R.drawable.ic_styles_signal_icons + ) + ) + add( + arrayOf( + R.id.action_homePage_to_wifiIcons, + appContextLocale.resources.getString(R.string.activity_title_wifi_icons), + appContextLocale.resources.getString(R.string.activity_desc_wifi_icons), + R.drawable.ic_styles_wifi_icons + ) + ) add( arrayOf( R.id.action_homePage_to_brightnessBar, diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/IconPack.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/IconPack.kt index 48eb3b59f..d4c1d9ff7 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/IconPack.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/IconPack.kt @@ -16,6 +16,7 @@ import com.drdisagree.iconify.ui.dialogs.LoadingDialog import com.drdisagree.iconify.ui.models.IconPackModel import com.drdisagree.iconify.ui.models.MenuModel import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader +import com.drdisagree.iconify.utils.overlay.manager.IconPackManager class IconPack : BaseFragment() { @@ -238,10 +239,23 @@ class IconPack : BaseFragment() { return IconPackAdapter( requireContext(), iconPackList, - loadingDialog!! + loadingDialog!!, + "IPSUI", + onButtonClick ) } + private val onButtonClick = object : IconPackAdapter.OnButtonClick { + + override fun onEnableClick(position: Int, item: IconPackModel) { + IconPackManager.enableOverlay(position + 1) + } + + override fun onDisableClick(position: Int, item: IconPackModel) { + IconPackManager.disableOverlay(position + 1) + } + } + override fun onDestroy() { loadingDialog?.dismiss() diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/SignalIcons.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/SignalIcons.kt new file mode 100644 index 000000000..b9c5261ce --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/SignalIcons.kt @@ -0,0 +1,135 @@ +package com.drdisagree.iconify.ui.fragments + +import android.content.Context +import android.graphics.Bitmap +import android.graphics.BitmapFactory +import android.graphics.drawable.BitmapDrawable +import android.graphics.drawable.Drawable +import android.os.Bundle +import android.util.Log +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.recyclerview.widget.LinearLayoutManager +import com.drdisagree.iconify.Iconify +import com.drdisagree.iconify.R +import com.drdisagree.iconify.config.Prefs.putBoolean +import com.drdisagree.iconify.databinding.FragmentIconPackBinding +import com.drdisagree.iconify.ui.adapters.IconPackAdapter +import com.drdisagree.iconify.ui.base.BaseFragment +import com.drdisagree.iconify.ui.dialogs.LoadingDialog +import com.drdisagree.iconify.ui.models.IconPackModel +import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader +import com.drdisagree.iconify.utils.overlay.OverlayUtil +import com.drdisagree.iconify.utils.overlay.OverlayUtil.checkEnabledOverlay +import com.drdisagree.iconify.utils.overlay.OverlayUtil.getDrawableFromOverlay +import com.drdisagree.iconify.utils.overlay.OverlayUtil.getOverlayForComponent +import com.drdisagree.iconify.utils.overlay.OverlayUtil.getStringFromOverlay +import java.io.IOException +import java.io.InputStream + +class SignalIcons : BaseFragment() { + + private lateinit var binding: FragmentIconPackBinding + private var loadingDialog: LoadingDialog? = null + val signalIcons: java.util.ArrayList = ArrayList() + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View { + binding = FragmentIconPackBinding.inflate(inflater, container, false) + val view: View = binding.getRoot() + + // Header + setHeader( + requireContext(), + getParentFragmentManager(), + binding.header.toolbar, + R.string.activity_title_signal_icons + ) + + // Loading dialog while enabling or disabling pack + loadingDialog = LoadingDialog(requireContext()) + + // RecyclerView + binding.iconPackContainer.setLayoutManager(LinearLayoutManager(requireContext())) + + binding.iconPackContainer.setAdapter(initIconPackItems()) + binding.iconPackContainer.setHasFixedSize(true) + + return view + } + + private fun initIconPackItems(): IconPackAdapter { + val pack = getOverlayForComponent("SGIC") + for (i in pack.indices) { + if (!pack[i].contains("]")) continue + val pkgName = pack[i].split("]")[1].trim() + val name = getStringFromOverlay(Iconify.appContext, pkgName, "theme_name") ?: "Unknown" + Log.d("SignalIcons", "initIconPackItems: $pkgName | $name") + signalIcons.add( + IconPackModel( + name, + pkgName, + getDrawableFromOverlay(Iconify.appContext, pkgName, "ic_signal_cellular_1_4_bar"), + getDrawableFromOverlay(Iconify.appContext, pkgName, "ic_signal_cellular_2_4_bar"), + getDrawableFromOverlay(Iconify.appContext, pkgName, "ic_signal_cellular_3_4_bar"), + getDrawableFromOverlay(Iconify.appContext, pkgName, "ic_signal_cellular_4_4_bar"), + pack[i].contains("[x]") + ) + ) + } + signalIcons.sortBy { it.name } + + return IconPackAdapter( + requireContext(), + signalIcons, + loadingDialog!!, + "SGIC", + onButtonClick + ) + } + + private val onButtonClick = object : IconPackAdapter.OnButtonClick { + + override fun onEnableClick(position: Int, item: IconPackModel) { + disableIcons() + putBoolean(item.packageName, true) + val pkgName = checkEnabledOverlay("IPAS") + if (pkgName.isNotEmpty()) { + OverlayUtil.disableOverlay(pkgName) + } + item.packageName?.let { OverlayUtil.enableOverlay(it) } + if (pkgName.isNotEmpty()) { + OverlayUtil.enableOverlay(pkgName, "high") + // Force Signal Icons + item.packageName?.let { OverlayUtil.enableOverlay(it) } + // get and set wifi icon + val wifiPack = checkEnabledOverlay("WIFI") + if (wifiPack.isNotEmpty()) { + OverlayUtil.enableOverlay(wifiPack) + } + } + } + + override fun onDisableClick(position: Int, item: IconPackModel) { + disableIcons() + } + } + + private fun disableIcons() { + for (i in signalIcons.indices) { + signalIcons[i].isEnabled = false + putBoolean(signalIcons[i].packageName, false) + signalIcons[i].packageName?.let { OverlayUtil.disableOverlay(it)} + } + } + + override fun onDestroy() { + loadingDialog?.dismiss() + + super.onDestroy() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/WiFiIcons.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/WiFiIcons.kt new file mode 100644 index 000000000..88287eafe --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/WiFiIcons.kt @@ -0,0 +1,135 @@ +package com.drdisagree.iconify.ui.fragments + +import android.content.Context +import android.graphics.Bitmap +import android.graphics.BitmapFactory +import android.graphics.drawable.BitmapDrawable +import android.graphics.drawable.Drawable +import android.os.Bundle +import android.util.Log +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.recyclerview.widget.LinearLayoutManager +import com.drdisagree.iconify.Iconify +import com.drdisagree.iconify.R +import com.drdisagree.iconify.config.Prefs.putBoolean +import com.drdisagree.iconify.databinding.FragmentIconPackBinding +import com.drdisagree.iconify.ui.adapters.IconPackAdapter +import com.drdisagree.iconify.ui.base.BaseFragment +import com.drdisagree.iconify.ui.dialogs.LoadingDialog +import com.drdisagree.iconify.ui.models.IconPackModel +import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader +import com.drdisagree.iconify.utils.overlay.OverlayUtil +import com.drdisagree.iconify.utils.overlay.OverlayUtil.checkEnabledOverlay +import com.drdisagree.iconify.utils.overlay.OverlayUtil.getDrawableFromOverlay +import com.drdisagree.iconify.utils.overlay.OverlayUtil.getOverlayForComponent +import com.drdisagree.iconify.utils.overlay.OverlayUtil.getStringFromOverlay +import java.io.IOException +import java.io.InputStream + +class WiFiIcons : BaseFragment() { + + private lateinit var binding: FragmentIconPackBinding + private var loadingDialog: LoadingDialog? = null + val wifiIcons: java.util.ArrayList = ArrayList() + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View { + binding = FragmentIconPackBinding.inflate(inflater, container, false) + val view: View = binding.getRoot() + + // Header + setHeader( + requireContext(), + getParentFragmentManager(), + binding.header.toolbar, + R.string.activity_title_wifi_icons + ) + + // Loading dialog while enabling or disabling pack + loadingDialog = LoadingDialog(requireContext()) + + // RecyclerView + binding.iconPackContainer.setLayoutManager(LinearLayoutManager(requireContext())) + + binding.iconPackContainer.setAdapter(initIconPackItems()) + binding.iconPackContainer.setHasFixedSize(true) + + return view + } + + private fun initIconPackItems(): IconPackAdapter { + val pack = getOverlayForComponent("WIFI") + for (i in pack.indices) { + if (!pack[i].contains("]")) continue + val pkgName = pack[i].split("]")[1].trim() + val name = getStringFromOverlay(Iconify.appContext, pkgName, "theme_name") ?: "Unknown" + Log.d("WifiIcons", "initIconPackItems: $pkgName | $name") + wifiIcons.add( + IconPackModel( + name, + pkgName, + getDrawableFromOverlay(Iconify.appContext, pkgName, "ic_wifi_signal_1"), + getDrawableFromOverlay(Iconify.appContext, pkgName, "ic_wifi_signal_2"), + getDrawableFromOverlay(Iconify.appContext, pkgName, "ic_wifi_signal_3"), + getDrawableFromOverlay(Iconify.appContext, pkgName, "ic_wifi_signal_4"), + pack[i].contains("[x]") + ) + ) + } + wifiIcons.sortBy { it.name } + + return IconPackAdapter( + requireContext(), + wifiIcons, + loadingDialog!!, + "WIFI", + onButtonClick + ) + } + + private val onButtonClick = object : IconPackAdapter.OnButtonClick { + + override fun onEnableClick(position: Int, item: IconPackModel) { + disableIcons() + putBoolean(item.packageName, true) + val pkgName = checkEnabledOverlay("IPAS") + if (pkgName.isNotEmpty()) { + OverlayUtil.disableOverlay(pkgName) + } + item.packageName?.let { OverlayUtil.enableOverlay(it) } + if (pkgName.isNotEmpty()) { + OverlayUtil.enableOverlay(pkgName, "high") + // Force WiFi Icons + item.packageName?.let { OverlayUtil.enableOverlay(it) } + // get and set signal icon + val signalPack = checkEnabledOverlay("SGIC") + if (signalPack.isNotEmpty()) { + OverlayUtil.enableOverlay(signalPack) + } + } + } + + override fun onDisableClick(position: Int, item: IconPackModel) { + disableIcons() + } + } + + private fun disableIcons() { + for (i in wifiIcons.indices) { + wifiIcons[i].isEnabled = false + putBoolean(wifiIcons[i].packageName, false) + wifiIcons[i].packageName?.let { OverlayUtil.disableOverlay(it) } + } + } + + override fun onDestroy() { + loadingDialog?.dismiss() + + super.onDestroy() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/models/IconPackModel.kt b/app/src/main/java/com/drdisagree/iconify/ui/models/IconPackModel.kt index 11031a53b..3a058b728 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/models/IconPackModel.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/models/IconPackModel.kt @@ -1,10 +1,38 @@ package com.drdisagree.iconify.ui.models -class IconPackModel( - var name: String, - var desc: Int, - var icon1: Int, - var icon2: Int, - var icon3: Int, - var icon4: Int -) +import android.graphics.drawable.Drawable + +data class IconPackModel( + var name: String? = null, + var desc: Int = 0, + var icon1: Int = 0, + var icon2: Int = 0, + var icon3: Int = 0, + var icon4: Int = 0, + var drawableIcon1: Drawable? = null, + var drawableIcon2: Drawable? = null, + var drawableIcon3: Drawable? = null, + var drawableIcon4: Drawable? = null, + var isEnabled: Boolean = false +) { + var packageName: String? = null + + constructor( + packName: String?, + pkgName: String, + icon1: Drawable?, + icon2: Drawable?, + icon3: Drawable?, + icon4: Drawable?, + isEnabled: Boolean + ) : this( + name = packName, + drawableIcon1 = icon1, + drawableIcon2 = icon2, + drawableIcon3 = icon3, + drawableIcon4 = icon4, + isEnabled = isEnabled + ) { + this.packageName = pkgName + } +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/utils/overlay/OverlayUtil.kt b/app/src/main/java/com/drdisagree/iconify/utils/overlay/OverlayUtil.kt index 8fb872667..3b704c7de 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/overlay/OverlayUtil.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/overlay/OverlayUtil.kt @@ -1,5 +1,9 @@ package com.drdisagree.iconify.utils.overlay +import android.content.Context +import android.content.pm.PackageManager +import android.graphics.drawable.Drawable +import android.util.Log import com.drdisagree.iconify.Iconify.Companion.appContext import com.drdisagree.iconify.common.Resources import com.drdisagree.iconify.config.Prefs @@ -23,6 +27,11 @@ object OverlayUtil { "cmd overlay list | grep -E '. ..IconifyComponent' | sed -E 's/^. ..//'" ).exec().out + fun getOverlayForComponent(componentName: String): List { + return Shell.cmd("cmd overlay list | grep '....IconifyComponent$componentName'") + .exec().out + } + fun isOverlayEnabled(pkgName: String): Boolean { return Shell.cmd( "[[ $(cmd overlay list | grep -o '\\[x\\] $pkgName') ]] && echo 1 || echo 0" @@ -49,6 +58,14 @@ object OverlayUtil { ).submit() } + fun enableOverlay(pkgName: String, priority: String) { + Prefs.putBoolean(pkgName, true) + Shell.cmd( + "cmd overlay enable --user current $pkgName", + "cmd overlay set-priority $pkgName $priority" + ).submit() + } + fun enableOverlays(vararg pkgNames: String?) { val command = StringBuilder() @@ -156,4 +173,47 @@ object OverlayUtil { false } } + + fun getDrawableFromOverlay(context: Context, pkg: String?, drawableName: String?): Drawable? { + try { + val pm = context.packageManager + val res = pm.getResourcesForApplication(pkg!!) + val resId = res.getIdentifier(drawableName, "drawable", pkg) + return if (resId != 0X0) res.getDrawable(resId) + else null + } catch (e: PackageManager.NameNotFoundException) { + Log.d("OverlayUtil", "getDrawableFromOverlay: Package Not Found " + e.message) + return null + } + } + + fun getStringFromOverlay(context: Context, pkg: String, stringName: String): String? { + return try { + val pm = context.packageManager + val res = pm.getResourcesForApplication(pkg) + val resId = res.getIdentifier(stringName, "string", pkg) + if (resId != 0) res.getString(resId) else null + } catch (e: PackageManager.NameNotFoundException) { + Log.e("OverlayUtil", "getStringFromOverlay: Package Not Found" + e.message) + null + } + } + + fun checkEnabledOverlay(componentName: String) : String { + val component = + Shell.cmd("cmd overlay list | grep \".x..IconifyComponent$componentName\"") + .exec().out + Log.d("OverlayUtil", "checkEnabledOverlay: $component") + if (component.isNotEmpty()) { + val num = component[0].split("IconifyComponent$componentName".toRegex()) + .dropLastWhile { it.isEmpty() } + .toTypedArray()[1].split("\\.overlay".toRegex()).dropLastWhile { it.isEmpty() } + .toTypedArray()[0] + Log.d("OverlayUtil", "checkEnabledOverlay: $num") + Log.d("OverlayUtil", "checkEnabledOverlay: IconifyComponent$componentName$num.overlay") + return "IconifyComponent$componentName$num.overlay" + } + return ""; + } + } diff --git a/app/src/main/res/drawable-v24/ic_styles_signal_icons.xml b/app/src/main/res/drawable-v24/ic_styles_signal_icons.xml new file mode 100644 index 000000000..1fce16655 --- /dev/null +++ b/app/src/main/res/drawable-v24/ic_styles_signal_icons.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable-v24/ic_styles_wifi_icons.xml b/app/src/main/res/drawable-v24/ic_styles_wifi_icons.xml new file mode 100644 index 000000000..5bf7c3541 --- /dev/null +++ b/app/src/main/res/drawable-v24/ic_styles_wifi_icons.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/navigation/nav_home_page.xml b/app/src/main/res/navigation/nav_home_page.xml index 2a7f8f54d..dd6ac9370 100644 --- a/app/src/main/res/navigation/nav_home_page.xml +++ b/app/src/main/res/navigation/nav_home_page.xml @@ -37,6 +37,20 @@ app:exitAnim="@anim/fragment_fade_out" app:popEnterAnim="@anim/fragment_fade_in" app:popExitAnim="@anim/fragment_fade_out" /> + + + + + + + + Iconify Icon Pack Change system icon pack + Signal Icons + Change system signal icons + WiFi Icons + Change system WiFi icons Brightness Bar Customize progress slider QS Panel Tiles @@ -642,6 +646,9 @@ Bottom Margin White Text Force all colors to be white + Use Custom Image + Use custom image for lockscreen clock. + Custom Image Picker Select Battery Charging Battery Discharging From af8c710a55dcb10f71638b182c449a20f7f40a4e Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Wed, 10 Jul 2024 13:27:53 +0600 Subject: [PATCH 031/369] LS Clock 23: Fix custom line height --- app/src/main/res/layout/preview_lockscreen_clock_23.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/layout/preview_lockscreen_clock_23.xml b/app/src/main/res/layout/preview_lockscreen_clock_23.xml index bef8a5038..72f95c9c8 100644 --- a/app/src/main/res/layout/preview_lockscreen_clock_23.xml +++ b/app/src/main/res/layout/preview_lockscreen_clock_23.xml @@ -15,7 +15,7 @@ @@ -23,7 +23,7 @@ @@ -37,7 +37,7 @@ android:layout_marginTop="-20dp" android:format12Hour="EEEE" android:format24Hour="EEEE" - android:tag="text1" + android:tag="text1|nolineheight" android:textColor="#FFFFFF" android:textSize="40sp" /> From 7fc99f9e6cd51520789599856c299a0ef09946f1 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Wed, 10 Jul 2024 21:33:00 +0200 Subject: [PATCH 032/369] Added Statusbar Clock Size (Xposed) --- .../drdisagree/iconify/common/Preferences.kt | 1 + .../iconify/ui/fragments/XposedOthers.kt | 11 + .../iconify/xposed/modules/Miscellaneous.kt | 341 ++++++++++-------- .../res/layout/fragment_xposed_others.xml | 17 + app/src/main/res/values/strings.xml | 1 + 5 files changed, 230 insertions(+), 141 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt index beafda50c..87d303c56 100644 --- a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt +++ b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt @@ -61,6 +61,7 @@ object Preferences { const val FIXED_STATUS_ICONS_SIDEMARGIN = "xposed_fixedstatusiconssidemargin" const val FIXED_STATUS_ICONS_TOPMARGIN = "xposed_fixedstatusiconstopmargin" const val HIDE_LOCKSCREEN_STATUSBAR = "xposed_hidelockscreenstatusbar" + const val SB_CLOCK_SIZE = "xposed_sbclocksize" const val HIDE_LOCKSCREEN_CARRIER = "xposed_hidelockscreencarrier" const val HIDE_LOCKSCREEN_LOCK_ICON = "xposed_hidelockscreenlockicon" const val LIGHT_QSPANEL = "xposed_lightqspanel" diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedOthers.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedOthers.kt index af0d7be5f..6ee409dec 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedOthers.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedOthers.kt @@ -19,6 +19,7 @@ import com.drdisagree.iconify.common.Preferences.HIDE_LOCKSCREEN_STATUSBAR import com.drdisagree.iconify.common.Preferences.HIDE_STATUS_ICONS_SWITCH import com.drdisagree.iconify.common.Preferences.QSPANEL_HIDE_CARRIER import com.drdisagree.iconify.common.Preferences.QSPANEL_STATUSICONSBG_SWITCH +import com.drdisagree.iconify.common.Preferences.SB_CLOCK_SIZE import com.drdisagree.iconify.config.RPrefs.getBoolean import com.drdisagree.iconify.config.RPrefs.getInt import com.drdisagree.iconify.config.RPrefs.putBoolean @@ -71,6 +72,16 @@ class XposedOthers : BaseFragment() { ) } + // SB Clock Size + binding.sbClockSize.sliderValue = getInt(SB_CLOCK_SIZE, 14) + binding.sbClockSize.setOnSliderTouchListener(object : Slider.OnSliderTouchListener { + override fun onStartTrackingTouch(slider: Slider) {} + + override fun onStopTrackingTouch(slider: Slider) { + putInt(SB_CLOCK_SIZE, slider.value.toInt()) + } + }) + // Hide lockscreen carrier binding.hideLockscreenCarrier.isSwitchChecked = getBoolean(HIDE_LOCKSCREEN_CARRIER, false) binding.hideLockscreenCarrier.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt index 3cb8595a9..9a0b8a63a 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt @@ -3,6 +3,7 @@ package com.drdisagree.iconify.xposed.modules import android.annotation.SuppressLint import android.content.Context import android.os.Build +import android.os.Bundle import android.util.TypedValue import android.view.Gravity import android.view.View @@ -20,12 +21,15 @@ import com.drdisagree.iconify.common.Preferences.HIDE_LOCKSCREEN_LOCK_ICON import com.drdisagree.iconify.common.Preferences.HIDE_LOCKSCREEN_STATUSBAR import com.drdisagree.iconify.common.Preferences.HIDE_STATUS_ICONS_SWITCH import com.drdisagree.iconify.common.Preferences.QSPANEL_HIDE_CARRIER +import com.drdisagree.iconify.common.Preferences.SB_CLOCK_SIZE import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.HookRes.Companion.resParams import com.drdisagree.iconify.xposed.ModPack import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge.hookAllMethods +import de.robv.android.xposed.XposedBridge.log import de.robv.android.xposed.XposedHelpers.callMethod +import de.robv.android.xposed.XposedHelpers.findAndHookMethod import de.robv.android.xposed.XposedHelpers.findClass import de.robv.android.xposed.XposedHelpers.findClassIfExists import de.robv.android.xposed.XposedHelpers.getObjectField @@ -49,6 +53,8 @@ class Miscellaneous(context: Context?) : ModPack(context!!) { private var statusIcons: LinearLayout? = null private var statusIconContainer: LinearLayout? = null private var mobileSignalControllerParam: Any? = null + private var sbClockSize = 14 + private var mClockView: TextView? = null override fun updatePrefs(vararg key: String) { if (Xprefs == null) return @@ -63,6 +69,7 @@ class Miscellaneous(context: Context?) : ModPack(context!!) { hideLockscreenStatusbar = getBoolean(HIDE_LOCKSCREEN_STATUSBAR, false) hideLockscreenLockIcon = getBoolean(HIDE_LOCKSCREEN_LOCK_ICON, false) hideDataDisabledIcon = getBoolean(HIDE_DATA_DISABLED_ICON, false) + sbClockSize = getInt(SB_CLOCK_SIZE, 14) } if (key.isNotEmpty()) { @@ -83,6 +90,10 @@ class Miscellaneous(context: Context?) : ModPack(context!!) { fixedStatusIconsA12() } + if (it == SB_CLOCK_SIZE) { + setClockSize() + } + if (it == HIDE_LOCKSCREEN_CARRIER || it == HIDE_LOCKSCREEN_STATUSBAR ) { @@ -110,6 +121,7 @@ class Miscellaneous(context: Context?) : ModPack(context!!) { hideLockscreenCarrierOrStatusbar() hideLockscreenLockIcon() hideDataDisabledIcon(loadPackageParam) + applyClockSize(loadPackageParam) } private fun hideElements(loadPackageParam: LoadPackageParam) { @@ -319,18 +331,18 @@ class Miscellaneous(context: Context?) : ModPack(context!!) { override fun handleLayoutInflated(liparam: LayoutInflatedParam) { if (!qsCarrierGroupHidden) return - liparam.view.findViewById( - liparam.res.getIdentifier( - "carrier_group", - "id", - mContext.packageName - ) - ).apply { - layoutParams.height = 0 - layoutParams.width = 0 - setMinimumWidth(0) - visibility = View.INVISIBLE - } + liparam.view.findViewById( + liparam.res.getIdentifier( + "carrier_group", + "id", + mContext.packageName + ) + ).apply { + layoutParams.height = 0 + layoutParams.width = 0 + setMinimumWidth(0) + visibility = View.INVISIBLE + } } }) } catch (ignored: Throwable) { @@ -350,127 +362,127 @@ class Miscellaneous(context: Context?) : ModPack(context!!) { if (!hideStatusIcons) return try { - liparam.view.findViewById( - liparam.res.getIdentifier( - "clock", - "id", - mContext.packageName - ) - ).apply { - layoutParams.height = 0 - layoutParams.width = 0 - setTextAppearance(0) - setTextColor(0) - } + liparam.view.findViewById( + liparam.res.getIdentifier( + "clock", + "id", + mContext.packageName + ) + ).apply { + layoutParams.height = 0 + layoutParams.width = 0 + setTextAppearance(0) + setTextColor(0) + } } catch (ignored: Throwable) { } try { - liparam.view.findViewById( - liparam.res.getIdentifier( - "date_clock", - "id", - mContext.packageName - ) - ).apply { - layoutParams.height = 0 - layoutParams.width = 0 - setTextAppearance(0) - setTextColor(0) - } + liparam.view.findViewById( + liparam.res.getIdentifier( + "date_clock", + "id", + mContext.packageName + ) + ).apply { + layoutParams.height = 0 + layoutParams.width = 0 + setTextAppearance(0) + setTextColor(0) + } } catch (ignored: Throwable) { } try { - liparam.view.findViewById( - liparam.res.getIdentifier( - "carrier_group", - "id", - mContext.packageName - ) - ).apply { - layoutParams.height = 0 - layoutParams.width = 0 - setMinimumWidth(0) - visibility = View.INVISIBLE - } + liparam.view.findViewById( + liparam.res.getIdentifier( + "carrier_group", + "id", + mContext.packageName + ) + ).apply { + layoutParams.height = 0 + layoutParams.width = 0 + setMinimumWidth(0) + visibility = View.INVISIBLE + } } catch (ignored: Throwable) { } try { - liparam.view.findViewById( - liparam.res.getIdentifier( - "statusIcons", - "id", - mContext.packageName - ) - ).apply { - layoutParams.height = 0 - layoutParams.width = 0 - } + liparam.view.findViewById( + liparam.res.getIdentifier( + "statusIcons", + "id", + mContext.packageName + ) + ).apply { + layoutParams.height = 0 + layoutParams.width = 0 + } } catch (ignored: Throwable) { } try { - liparam.view.findViewById( - liparam.res.getIdentifier( - "batteryRemainingIcon", - "id", - mContext.packageName - ) - ).apply { - layoutParams.height = 0 - layoutParams.width = 0 - } + liparam.view.findViewById( + liparam.res.getIdentifier( + "batteryRemainingIcon", + "id", + mContext.packageName + ) + ).apply { + layoutParams.height = 0 + layoutParams.width = 0 + } } catch (ignored: Throwable) { } try { - liparam.view.findViewById( - liparam.res.getIdentifier( - "rightLayout", - "id", - mContext.packageName - ) - ).apply { - layoutParams.height = 0 - layoutParams.width = 0 - visibility = View.INVISIBLE - } + liparam.view.findViewById( + liparam.res.getIdentifier( + "rightLayout", + "id", + mContext.packageName + ) + ).apply { + layoutParams.height = 0 + layoutParams.width = 0 + visibility = View.INVISIBLE + } } catch (ignored: Throwable) { } // Ricedroid date try { - liparam.view.findViewById( - liparam.res.getIdentifier( - "date", - "id", - mContext.packageName - ) - ).apply { - layoutParams.height = 0 - layoutParams.width = 0 - setTextAppearance(0) - setTextColor(0) - } + liparam.view.findViewById( + liparam.res.getIdentifier( + "date", + "id", + mContext.packageName + ) + ).apply { + layoutParams.height = 0 + layoutParams.width = 0 + setTextAppearance(0) + setTextColor(0) + } } catch (ignored: Throwable) { } // Nusantara clock try { - liparam.view.findViewById( - liparam.res.getIdentifier( - "jr_clock", - "id", - mContext.packageName - ) - ).apply { - layoutParams.height = 0 - layoutParams.width = 0 - setTextAppearance(0) - setTextColor(0) - } + liparam.view.findViewById( + liparam.res.getIdentifier( + "jr_clock", + "id", + mContext.packageName + ) + ).apply { + layoutParams.height = 0 + layoutParams.width = 0 + setTextAppearance(0) + setTextColor(0) + } } catch (ignored: Throwable) { } @@ -508,11 +520,11 @@ class Miscellaneous(context: Context?) : ModPack(context!!) { try { liparam.view.findViewById( - liparam.res.getIdentifier( - "date", - "id", - mContext.packageName - ) + liparam.res.getIdentifier( + "date", + "id", + mContext.packageName + ) ).apply { setTextAppearance(0) layoutParams.height = 0 @@ -692,49 +704,49 @@ class Miscellaneous(context: Context?) : ModPack(context!!) { override fun handleLayoutInflated(liparam: LayoutInflatedParam) { if (hideLockscreenCarrier) { try { - liparam.view.findViewById( - liparam.res.getIdentifier( - "keyguard_carrier_text", - "id", - mContext.packageName - ) - ).apply { - layoutParams.height = 0 - visibility = View.INVISIBLE - requestLayout() - } + liparam.view.findViewById( + liparam.res.getIdentifier( + "keyguard_carrier_text", + "id", + mContext.packageName + ) + ).apply { + layoutParams.height = 0 + visibility = View.INVISIBLE + requestLayout() + } } catch (ignored: Throwable) { } } if (hideLockscreenStatusbar) { try { - liparam.view.findViewById( - liparam.res.getIdentifier( - "status_icon_area", - "id", - mContext.packageName - ) - ).apply { - layoutParams.height = 0 - visibility = View.INVISIBLE - requestLayout() - } + liparam.view.findViewById( + liparam.res.getIdentifier( + "status_icon_area", + "id", + mContext.packageName + ) + ).apply { + layoutParams.height = 0 + visibility = View.INVISIBLE + requestLayout() + } } catch (ignored: Throwable) { } try { - liparam.view.findViewById( - liparam.res.getIdentifier( - "keyguard_carrier_text", - "id", - mContext.packageName - ) - ).apply { - layoutParams.height = 0 - visibility = View.INVISIBLE - requestLayout() - } + liparam.view.findViewById( + liparam.res.getIdentifier( + "keyguard_carrier_text", + "id", + mContext.packageName + ) + ).apply { + layoutParams.height = 0 + visibility = View.INVISIBLE + requestLayout() + } } catch (ignored: Throwable) { } } @@ -777,6 +789,53 @@ class Miscellaneous(context: Context?) : ModPack(context!!) { } } + private fun applyClockSize(loadPackageParam: LoadPackageParam) { + val collapsedStatusBarFragmentClass = findClassInArray( + loadPackageParam, + "com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragment", // A14 & A13 + "com.android.systemui.statusbar.phone.CollapsedStatusBarFragment" // A12 + ) + + if (collapsedStatusBarFragmentClass == null) return + + findAndHookMethod(collapsedStatusBarFragmentClass, + "onViewCreated", + View::class.java, + Bundle::class.java, + object : XC_MethodHook() { + override fun afterHookedMethod(param: MethodHookParam) { + mClockView = getObjectField(param.thisObject, "mClockView") as TextView + setClockSize() + mClockView!!.addOnAttachStateChangeListener(object : + View.OnAttachStateChangeListener { + override fun onViewAttachedToWindow(v: View) { + setClockSize() + } + + override fun onViewDetachedFromWindow(v: View) { + } + }) + } + }) + + } + + private fun findClassInArray(lpparam: LoadPackageParam, vararg classNames: String): Class<*>? { + for (className in classNames) { + try { + val clazz = findClass(className, lpparam.classLoader) + return clazz + } catch (ignored: Throwable) { + } + } + return null + } + + private fun setClockSize() { + if (mClockView == null) return + mClockView!!.setTextSize(TypedValue.COMPLEX_UNIT_SP, sbClockSize.toFloat()) + } + companion object { private val TAG = "Iconify - ${Miscellaneous::class.java.simpleName}: " } diff --git a/app/src/main/res/layout/fragment_xposed_others.xml b/app/src/main/res/layout/fragment_xposed_others.xml index 5192a8c2c..dc63b4acd 100644 --- a/app/src/main/res/layout/fragment_xposed_others.xml +++ b/app/src/main/res/layout/fragment_xposed_others.xml @@ -40,6 +40,23 @@ app:summaryText="@string/hide_status_icons_desc" app:titleText="@string/hide_status_icons_title" /> + + + + Hide carrier group from QS panel Hide Status Icons Remove time, date and battery icons + Statusbar Clock Size Lock Screen Hide LS Carrier Hide carrier name on lockscreen From 457ca44b56c5ceb8bf77856984027fd50262cfea Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Wed, 10 Jul 2024 22:29:00 +0200 Subject: [PATCH 033/369] Improve getting clock in some Custom ROMs --- .../iconify/xposed/modules/BackgroundChip.kt | 157 ++---------------- .../iconify/xposed/modules/Miscellaneous.kt | 33 ++-- .../iconify/xposed/utils/XposedIcHelper.kt | 91 ++++++++++ 3 files changed, 121 insertions(+), 160 deletions(-) create mode 100644 app/src/main/java/com/drdisagree/iconify/xposed/utils/XposedIcHelper.kt diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/BackgroundChip.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/BackgroundChip.kt index 6dd147b99..7e520cb22 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/BackgroundChip.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/BackgroundChip.kt @@ -38,6 +38,10 @@ import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.HookRes.Companion.resParams import com.drdisagree.iconify.xposed.ModPack import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.toPx +import com.drdisagree.iconify.xposed.utils.XposedIcHelper.findClassInArray +import com.drdisagree.iconify.xposed.utils.XposedIcHelper.getCenterClockView +import com.drdisagree.iconify.xposed.utils.XposedIcHelper.getLeftClockView +import com.drdisagree.iconify.xposed.utils.XposedIcHelper.getRightClockView import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge.hookAllMethods import de.robv.android.xposed.XposedBridge.log @@ -125,15 +129,12 @@ class BackgroundChip(context: Context?) : ModPack(context!!) { } private fun statusbarClockChip(loadPackageParam: LoadPackageParam) { - var collapsedStatusBarFragment = findClassIfExists( - "$SYSTEMUI_PACKAGE.statusbar.phone.fragment.CollapsedStatusBarFragment", - loadPackageParam.classLoader + var collapsedStatusBarFragment = findClassInArray( + loadPackageParam, + "$SYSTEMUI_PACKAGE.statusbar.phone.CollapsedStatusBarFragment", + "$SYSTEMUI_PACKAGE.statusbar.phone.fragment.CollapsedStatusBarFragment" + ) - if (collapsedStatusBarFragment == null) collapsedStatusBarFragment = - findClass( - "$SYSTEMUI_PACKAGE.statusbar.phone.CollapsedStatusBarFragment", - loadPackageParam.classLoader - ) dependencyClass = findClass( "$SYSTEMUI_PACKAGE.Dependency", loadPackageParam.classLoader @@ -150,9 +151,9 @@ class BackgroundChip(context: Context?) : ModPack(context!!) { Bundle::class.java, object : XC_MethodHook() { override fun afterHookedMethod(param: MethodHookParam) { - mClockView = getLeftClockView(param) - mCenterClockView = getCenterClockView(param) - mRightClockView = getRightClockView(param) + mClockView = getLeftClockView(mContext, param) + mCenterClockView = getCenterClockView(mContext, param) + mRightClockView = getRightClockView(mContext, param) (getObjectField( param.thisObject, @@ -203,140 +204,6 @@ class BackgroundChip(context: Context?) : ModPack(context!!) { }) } - private fun getLeftClockView(param: XC_MethodHook.MethodHookParam) = try { - getObjectField(param.thisObject, "mClockView") as View - } catch (throwable1: Throwable) { - try { - getObjectField(param.thisObject, "mLeftClock") as View - } catch (throwable2: Throwable) { - try { - callMethod( - getObjectField( - param.thisObject, - "mClockController" - ), - "getClock" - ) as View - } catch (throwable3: Throwable) { - try { - val mActiveClock = getObjectField( - getObjectField( - param.thisObject, - "mClockController" - ), - "mActiveClock" - ) as View - val mLeftClockId = mContext.resources.getIdentifier( - "clock", - "id", - mContext.packageName - ) - - if (mActiveClock.id == mLeftClockId) { - mActiveClock - } else { - null - } - } catch (throwable4: Throwable) { - log(TAG + throwable4) - null - } - } - } - } - - private fun getCenterClockView(param: XC_MethodHook.MethodHookParam) = try { - getObjectField(param.thisObject, "mCenterClockView") as View - } catch (throwable1: Throwable) { - try { - getObjectField( - param.thisObject, - "mCenterClock" - ) as View - } catch (throwable2: Throwable) { - try { - callMethod( - getObjectField( - param.thisObject, - "mClockController" - ), - "mCenterClockView" - ) as View - } catch (throwable3: Throwable) { - try { - val mActiveClock = getObjectField( - getObjectField( - param.thisObject, - "mClockController" - ), - "mActiveClock" - ) as View - val mCenterClockId = mContext.resources.getIdentifier( - "clock_center", - "id", - mContext.packageName - ) - - if (mActiveClock.id == mCenterClockId) { - mActiveClock - } else { - null - } - } catch (throwable4: Throwable) { - try { - (getObjectField( - param.thisObject, - "mCenterClockLayout" - ) as LinearLayout).getChildAt(0) - } catch (throwable5: Throwable) { - null - } - } - } - } - } - - private fun getRightClockView(param: XC_MethodHook.MethodHookParam) = try { - getObjectField(param.thisObject, "mRightClockView") as View - } catch (throwable1: Throwable) { - try { - getObjectField(param.thisObject, "mRightClock") as View - } catch (throwable2: Throwable) { - try { - callMethod( - getObjectField( - param.thisObject, - "mClockController" - ), - "mRightClockView" - ) as View - } catch (throwable3: Throwable) { - try { - val mActiveClock = getObjectField( - getObjectField( - param.thisObject, - "mClockController" - ), - "mActiveClock" - ) as View - val mRightClockId = mContext.resources.getIdentifier( - "clock_right", - "id", - mContext.packageName - ) - - if (mActiveClock.id == mRightClockId) { - mActiveClock - } else { - null - } - } catch (throwable4: Throwable) { - null - } - } - } - } - private fun statusIconsChip(loadPackageParam: LoadPackageParam) { setQSStatusIconsBgA12() setQSStatusIconsBgA13Plus(loadPackageParam) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt index 9a0b8a63a..b1a4f86fa 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt @@ -25,6 +25,10 @@ import com.drdisagree.iconify.common.Preferences.SB_CLOCK_SIZE import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.HookRes.Companion.resParams import com.drdisagree.iconify.xposed.ModPack +import com.drdisagree.iconify.xposed.utils.XposedIcHelper.findClassInArray +import com.drdisagree.iconify.xposed.utils.XposedIcHelper.getCenterClockView +import com.drdisagree.iconify.xposed.utils.XposedIcHelper.getLeftClockView +import com.drdisagree.iconify.xposed.utils.XposedIcHelper.getRightClockView import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge.hookAllMethods import de.robv.android.xposed.XposedBridge.log @@ -55,6 +59,8 @@ class Miscellaneous(context: Context?) : ModPack(context!!) { private var mobileSignalControllerParam: Any? = null private var sbClockSize = 14 private var mClockView: TextView? = null + private var mCenterClockView: TextView? = null + private var mRightClockView: TextView? = null override fun updatePrefs(vararg key: String) { if (Xprefs == null) return @@ -804,9 +810,16 @@ class Miscellaneous(context: Context?) : ModPack(context!!) { Bundle::class.java, object : XC_MethodHook() { override fun afterHookedMethod(param: MethodHookParam) { - mClockView = getObjectField(param.thisObject, "mClockView") as TextView + + mClockView = getLeftClockView(mContext, param) as TextView + mCenterClockView = getCenterClockView(mContext, param) as TextView + mRightClockView = getRightClockView(mContext, param) as TextView + setClockSize() - mClockView!!.addOnAttachStateChangeListener(object : + + val textClock = mClockView ?: mCenterClockView ?: mRightClockView + + textClock!!.addOnAttachStateChangeListener(object : View.OnAttachStateChangeListener { override fun onViewAttachedToWindow(v: View) { setClockSize() @@ -820,20 +833,10 @@ class Miscellaneous(context: Context?) : ModPack(context!!) { } - private fun findClassInArray(lpparam: LoadPackageParam, vararg classNames: String): Class<*>? { - for (className in classNames) { - try { - val clazz = findClass(className, lpparam.classLoader) - return clazz - } catch (ignored: Throwable) { - } - } - return null - } - private fun setClockSize() { - if (mClockView == null) return - mClockView!!.setTextSize(TypedValue.COMPLEX_UNIT_SP, sbClockSize.toFloat()) + if (mClockView != null) mClockView!!.setTextSize(TypedValue.COMPLEX_UNIT_SP, sbClockSize.toFloat()) + if (mCenterClockView != null) mCenterClockView!!.setTextSize(TypedValue.COMPLEX_UNIT_SP, sbClockSize.toFloat()) + if (mRightClockView != null) mRightClockView!!.setTextSize(TypedValue.COMPLEX_UNIT_SP, sbClockSize.toFloat()) } companion object { diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/utils/XposedIcHelper.kt b/app/src/main/java/com/drdisagree/iconify/xposed/utils/XposedIcHelper.kt new file mode 100644 index 000000000..acd57dc0f --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/xposed/utils/XposedIcHelper.kt @@ -0,0 +1,91 @@ +package com.drdisagree.iconify.xposed.utils + +import android.content.Context +import android.view.View +import android.widget.LinearLayout +import de.robv.android.xposed.XC_MethodHook +import de.robv.android.xposed.XposedBridge.log +import de.robv.android.xposed.XposedHelpers.callMethod +import de.robv.android.xposed.XposedHelpers.findClass +import de.robv.android.xposed.XposedHelpers.getObjectField +import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam + +object XposedIcHelper { + + private val TAG = "Iconify - ${XposedIcHelper::class.java.simpleName}: " + + fun findClassInArray(lpparam: LoadPackageParam, vararg classNames: String): Class<*>? { + for (className in classNames) { + try { + val clazz = findClass(className, lpparam.classLoader) + return clazz + } catch (ignored: Throwable) { + } + } + return null + } + + fun getLeftClockView(mContext: Context, param: XC_MethodHook.MethodHookParam): View? { + return getClockView( + mContext, + param, + listOf("mClockView", "mLeftClock"), + "getClock", + "clock" + ) + } + + fun getCenterClockView(mContext: Context, param: XC_MethodHook.MethodHookParam): View? { + return getClockView( + mContext, + param, + listOf("mCenterClockView", "mCenterClock"), + "getCenterClock", + "clock_center" + ) ?: try { + (getObjectField(param.thisObject, "mCenterClockLayout") as LinearLayout).getChildAt(0) + } catch (ignored: Throwable) { + null + } + } + + fun getRightClockView(mContext: Context, param: XC_MethodHook.MethodHookParam): View? { + return getClockView( + mContext, + param, + listOf("mRightClockView", "mRightClock"), + "getRightClock", + "clock_right" + ) + } + + private fun getClockView( + mContext: Context, + param: XC_MethodHook.MethodHookParam, + fieldNames: List, + methodName: String, + resourceIdName: String + ): View? { + for (fieldName in fieldNames) { + try { + return getObjectField(param.thisObject, fieldName) as View + } catch (ignored: Throwable) { + } + } + + try { + return callMethod(getObjectField(param.thisObject, "mClockController"), methodName) as View + } catch (ignored: Throwable) { + } + + return try { + val mActiveClock = getObjectField(getObjectField(param.thisObject, "mClockController"), "mActiveClock") as View + val mClockId = mContext.resources.getIdentifier(resourceIdName, "id", mContext.packageName) + if (mActiveClock.id == mClockId) mActiveClock else null + } catch (throwable: Throwable) { + log(TAG + throwable) + null + } + } + +} \ No newline at end of file From 68cb65c7d107f244a6028d409d3d60255e8412ff Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Wed, 10 Jul 2024 22:29:00 +0200 Subject: [PATCH 034/369] Improve getting clock in some Custom ROMs --- .../iconify/xposed/modules/BackgroundChip.kt | 157 ++---------------- .../iconify/xposed/modules/Miscellaneous.kt | 54 +++--- .../iconify/xposed/utils/XposedIcHelper.kt | 91 ++++++++++ 3 files changed, 132 insertions(+), 170 deletions(-) create mode 100644 app/src/main/java/com/drdisagree/iconify/xposed/utils/XposedIcHelper.kt diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/BackgroundChip.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/BackgroundChip.kt index 6dd147b99..7e520cb22 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/BackgroundChip.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/BackgroundChip.kt @@ -38,6 +38,10 @@ import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.HookRes.Companion.resParams import com.drdisagree.iconify.xposed.ModPack import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.toPx +import com.drdisagree.iconify.xposed.utils.XposedIcHelper.findClassInArray +import com.drdisagree.iconify.xposed.utils.XposedIcHelper.getCenterClockView +import com.drdisagree.iconify.xposed.utils.XposedIcHelper.getLeftClockView +import com.drdisagree.iconify.xposed.utils.XposedIcHelper.getRightClockView import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge.hookAllMethods import de.robv.android.xposed.XposedBridge.log @@ -125,15 +129,12 @@ class BackgroundChip(context: Context?) : ModPack(context!!) { } private fun statusbarClockChip(loadPackageParam: LoadPackageParam) { - var collapsedStatusBarFragment = findClassIfExists( - "$SYSTEMUI_PACKAGE.statusbar.phone.fragment.CollapsedStatusBarFragment", - loadPackageParam.classLoader + var collapsedStatusBarFragment = findClassInArray( + loadPackageParam, + "$SYSTEMUI_PACKAGE.statusbar.phone.CollapsedStatusBarFragment", + "$SYSTEMUI_PACKAGE.statusbar.phone.fragment.CollapsedStatusBarFragment" + ) - if (collapsedStatusBarFragment == null) collapsedStatusBarFragment = - findClass( - "$SYSTEMUI_PACKAGE.statusbar.phone.CollapsedStatusBarFragment", - loadPackageParam.classLoader - ) dependencyClass = findClass( "$SYSTEMUI_PACKAGE.Dependency", loadPackageParam.classLoader @@ -150,9 +151,9 @@ class BackgroundChip(context: Context?) : ModPack(context!!) { Bundle::class.java, object : XC_MethodHook() { override fun afterHookedMethod(param: MethodHookParam) { - mClockView = getLeftClockView(param) - mCenterClockView = getCenterClockView(param) - mRightClockView = getRightClockView(param) + mClockView = getLeftClockView(mContext, param) + mCenterClockView = getCenterClockView(mContext, param) + mRightClockView = getRightClockView(mContext, param) (getObjectField( param.thisObject, @@ -203,140 +204,6 @@ class BackgroundChip(context: Context?) : ModPack(context!!) { }) } - private fun getLeftClockView(param: XC_MethodHook.MethodHookParam) = try { - getObjectField(param.thisObject, "mClockView") as View - } catch (throwable1: Throwable) { - try { - getObjectField(param.thisObject, "mLeftClock") as View - } catch (throwable2: Throwable) { - try { - callMethod( - getObjectField( - param.thisObject, - "mClockController" - ), - "getClock" - ) as View - } catch (throwable3: Throwable) { - try { - val mActiveClock = getObjectField( - getObjectField( - param.thisObject, - "mClockController" - ), - "mActiveClock" - ) as View - val mLeftClockId = mContext.resources.getIdentifier( - "clock", - "id", - mContext.packageName - ) - - if (mActiveClock.id == mLeftClockId) { - mActiveClock - } else { - null - } - } catch (throwable4: Throwable) { - log(TAG + throwable4) - null - } - } - } - } - - private fun getCenterClockView(param: XC_MethodHook.MethodHookParam) = try { - getObjectField(param.thisObject, "mCenterClockView") as View - } catch (throwable1: Throwable) { - try { - getObjectField( - param.thisObject, - "mCenterClock" - ) as View - } catch (throwable2: Throwable) { - try { - callMethod( - getObjectField( - param.thisObject, - "mClockController" - ), - "mCenterClockView" - ) as View - } catch (throwable3: Throwable) { - try { - val mActiveClock = getObjectField( - getObjectField( - param.thisObject, - "mClockController" - ), - "mActiveClock" - ) as View - val mCenterClockId = mContext.resources.getIdentifier( - "clock_center", - "id", - mContext.packageName - ) - - if (mActiveClock.id == mCenterClockId) { - mActiveClock - } else { - null - } - } catch (throwable4: Throwable) { - try { - (getObjectField( - param.thisObject, - "mCenterClockLayout" - ) as LinearLayout).getChildAt(0) - } catch (throwable5: Throwable) { - null - } - } - } - } - } - - private fun getRightClockView(param: XC_MethodHook.MethodHookParam) = try { - getObjectField(param.thisObject, "mRightClockView") as View - } catch (throwable1: Throwable) { - try { - getObjectField(param.thisObject, "mRightClock") as View - } catch (throwable2: Throwable) { - try { - callMethod( - getObjectField( - param.thisObject, - "mClockController" - ), - "mRightClockView" - ) as View - } catch (throwable3: Throwable) { - try { - val mActiveClock = getObjectField( - getObjectField( - param.thisObject, - "mClockController" - ), - "mActiveClock" - ) as View - val mRightClockId = mContext.resources.getIdentifier( - "clock_right", - "id", - mContext.packageName - ) - - if (mActiveClock.id == mRightClockId) { - mActiveClock - } else { - null - } - } catch (throwable4: Throwable) { - null - } - } - } - } - private fun statusIconsChip(loadPackageParam: LoadPackageParam) { setQSStatusIconsBgA12() setQSStatusIconsBgA13Plus(loadPackageParam) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt index 9a0b8a63a..eb4e61790 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt @@ -4,6 +4,8 @@ import android.annotation.SuppressLint import android.content.Context import android.os.Build import android.os.Bundle +import android.text.Editable +import android.text.TextWatcher import android.util.TypedValue import android.view.Gravity import android.view.View @@ -25,6 +27,10 @@ import com.drdisagree.iconify.common.Preferences.SB_CLOCK_SIZE import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.HookRes.Companion.resParams import com.drdisagree.iconify.xposed.ModPack +import com.drdisagree.iconify.xposed.utils.XposedIcHelper.findClassInArray +import com.drdisagree.iconify.xposed.utils.XposedIcHelper.getCenterClockView +import com.drdisagree.iconify.xposed.utils.XposedIcHelper.getLeftClockView +import com.drdisagree.iconify.xposed.utils.XposedIcHelper.getRightClockView import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge.hookAllMethods import de.robv.android.xposed.XposedBridge.log @@ -55,6 +61,8 @@ class Miscellaneous(context: Context?) : ModPack(context!!) { private var mobileSignalControllerParam: Any? = null private var sbClockSize = 14 private var mClockView: TextView? = null + private var mCenterClockView: TextView? = null + private var mRightClockView: TextView? = null override fun updatePrefs(vararg key: String) { if (Xprefs == null) return @@ -790,29 +798,35 @@ class Miscellaneous(context: Context?) : ModPack(context!!) { } private fun applyClockSize(loadPackageParam: LoadPackageParam) { - val collapsedStatusBarFragmentClass = findClassInArray( + val collapsedStatusBarFragment = findClassInArray( loadPackageParam, - "com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragment", // A14 & A13 - "com.android.systemui.statusbar.phone.CollapsedStatusBarFragment" // A12 + "$SYSTEMUI_PACKAGE.statusbar.phone.CollapsedStatusBarFragment", + "$SYSTEMUI_PACKAGE.statusbar.phone.fragment.CollapsedStatusBarFragment" + ) - if (collapsedStatusBarFragmentClass == null) return + if (collapsedStatusBarFragment == null) return - findAndHookMethod(collapsedStatusBarFragmentClass, + findAndHookMethod(collapsedStatusBarFragment, "onViewCreated", View::class.java, Bundle::class.java, object : XC_MethodHook() { override fun afterHookedMethod(param: MethodHookParam) { - mClockView = getObjectField(param.thisObject, "mClockView") as TextView + + mClockView = getLeftClockView(mContext, param) as? TextView + mCenterClockView = getCenterClockView(mContext, param) as? TextView + mRightClockView = getRightClockView(mContext, param) as? TextView + + setClockSize() - mClockView!!.addOnAttachStateChangeListener(object : - View.OnAttachStateChangeListener { - override fun onViewAttachedToWindow(v: View) { - setClockSize() - } - override fun onViewDetachedFromWindow(v: View) { + val textClock = mClockView ?: mCenterClockView ?: mRightClockView as TextView + textClock.addTextChangedListener(object : TextWatcher { + override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {} + override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {} + override fun afterTextChanged(s: Editable) { + setClockSize() } }) } @@ -820,20 +834,10 @@ class Miscellaneous(context: Context?) : ModPack(context!!) { } - private fun findClassInArray(lpparam: LoadPackageParam, vararg classNames: String): Class<*>? { - for (className in classNames) { - try { - val clazz = findClass(className, lpparam.classLoader) - return clazz - } catch (ignored: Throwable) { - } - } - return null - } - private fun setClockSize() { - if (mClockView == null) return - mClockView!!.setTextSize(TypedValue.COMPLEX_UNIT_SP, sbClockSize.toFloat()) + if (mClockView != null) mClockView!!.setTextSize(TypedValue.COMPLEX_UNIT_SP, sbClockSize.toFloat()) + if (mCenterClockView != null) mCenterClockView!!.setTextSize(TypedValue.COMPLEX_UNIT_SP, sbClockSize.toFloat()) + if (mRightClockView != null) mRightClockView!!.setTextSize(TypedValue.COMPLEX_UNIT_SP, sbClockSize.toFloat()) } companion object { diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/utils/XposedIcHelper.kt b/app/src/main/java/com/drdisagree/iconify/xposed/utils/XposedIcHelper.kt new file mode 100644 index 000000000..acd57dc0f --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/xposed/utils/XposedIcHelper.kt @@ -0,0 +1,91 @@ +package com.drdisagree.iconify.xposed.utils + +import android.content.Context +import android.view.View +import android.widget.LinearLayout +import de.robv.android.xposed.XC_MethodHook +import de.robv.android.xposed.XposedBridge.log +import de.robv.android.xposed.XposedHelpers.callMethod +import de.robv.android.xposed.XposedHelpers.findClass +import de.robv.android.xposed.XposedHelpers.getObjectField +import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam + +object XposedIcHelper { + + private val TAG = "Iconify - ${XposedIcHelper::class.java.simpleName}: " + + fun findClassInArray(lpparam: LoadPackageParam, vararg classNames: String): Class<*>? { + for (className in classNames) { + try { + val clazz = findClass(className, lpparam.classLoader) + return clazz + } catch (ignored: Throwable) { + } + } + return null + } + + fun getLeftClockView(mContext: Context, param: XC_MethodHook.MethodHookParam): View? { + return getClockView( + mContext, + param, + listOf("mClockView", "mLeftClock"), + "getClock", + "clock" + ) + } + + fun getCenterClockView(mContext: Context, param: XC_MethodHook.MethodHookParam): View? { + return getClockView( + mContext, + param, + listOf("mCenterClockView", "mCenterClock"), + "getCenterClock", + "clock_center" + ) ?: try { + (getObjectField(param.thisObject, "mCenterClockLayout") as LinearLayout).getChildAt(0) + } catch (ignored: Throwable) { + null + } + } + + fun getRightClockView(mContext: Context, param: XC_MethodHook.MethodHookParam): View? { + return getClockView( + mContext, + param, + listOf("mRightClockView", "mRightClock"), + "getRightClock", + "clock_right" + ) + } + + private fun getClockView( + mContext: Context, + param: XC_MethodHook.MethodHookParam, + fieldNames: List, + methodName: String, + resourceIdName: String + ): View? { + for (fieldName in fieldNames) { + try { + return getObjectField(param.thisObject, fieldName) as View + } catch (ignored: Throwable) { + } + } + + try { + return callMethod(getObjectField(param.thisObject, "mClockController"), methodName) as View + } catch (ignored: Throwable) { + } + + return try { + val mActiveClock = getObjectField(getObjectField(param.thisObject, "mClockController"), "mActiveClock") as View + val mClockId = mContext.resources.getIdentifier(resourceIdName, "id", mContext.packageName) + if (mActiveClock.id == mClockId) mActiveClock else null + } catch (throwable: Throwable) { + log(TAG + throwable) + null + } + } + +} \ No newline at end of file From 44d587c744bdf1bb2ec7966d8f757ff5434108c2 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Thu, 11 Jul 2024 12:48:07 +0600 Subject: [PATCH 035/369] Refactor statusbar clock text size --- .../iconify/xposed/modules/BackgroundChip.kt | 14 ++++++------ .../iconify/xposed/modules/Miscellaneous.kt | 11 ++++------ .../iconify/xposed/modules/utils/Helpers.kt | 10 +++++++++ .../utils/StatusBarClock.kt} | 22 +++++-------------- 4 files changed, 26 insertions(+), 31 deletions(-) rename app/src/main/java/com/drdisagree/iconify/xposed/{utils/XposedIcHelper.kt => modules/utils/StatusBarClock.kt} (79%) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/BackgroundChip.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/BackgroundChip.kt index 7e520cb22..5db041e0c 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/BackgroundChip.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/BackgroundChip.kt @@ -37,11 +37,11 @@ import com.drdisagree.iconify.common.Preferences.STATUSBAR_CLOCK_COLOR_OPTION import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.HookRes.Companion.resParams import com.drdisagree.iconify.xposed.ModPack +import com.drdisagree.iconify.xposed.modules.utils.Helpers.findClassInArray import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.toPx -import com.drdisagree.iconify.xposed.utils.XposedIcHelper.findClassInArray -import com.drdisagree.iconify.xposed.utils.XposedIcHelper.getCenterClockView -import com.drdisagree.iconify.xposed.utils.XposedIcHelper.getLeftClockView -import com.drdisagree.iconify.xposed.utils.XposedIcHelper.getRightClockView +import com.drdisagree.iconify.xposed.modules.utils.StatusBarClock.getCenterClockView +import com.drdisagree.iconify.xposed.modules.utils.StatusBarClock.getLeftClockView +import com.drdisagree.iconify.xposed.modules.utils.StatusBarClock.getRightClockView import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge.hookAllMethods import de.robv.android.xposed.XposedBridge.log @@ -124,12 +124,12 @@ class BackgroundChip(context: Context?) : ModPack(context!!) { override fun handleLoadPackage(loadPackageParam: LoadPackageParam) { mLoadPackageParam = loadPackageParam - statusbarClockChip(loadPackageParam) + statusBarClockChip(loadPackageParam) statusIconsChip(loadPackageParam) } - private fun statusbarClockChip(loadPackageParam: LoadPackageParam) { - var collapsedStatusBarFragment = findClassInArray( + private fun statusBarClockChip(loadPackageParam: LoadPackageParam) { + val collapsedStatusBarFragment = findClassInArray( loadPackageParam, "$SYSTEMUI_PACKAGE.statusbar.phone.CollapsedStatusBarFragment", "$SYSTEMUI_PACKAGE.statusbar.phone.fragment.CollapsedStatusBarFragment" diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt index eb4e61790..128c54967 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt @@ -27,13 +27,12 @@ import com.drdisagree.iconify.common.Preferences.SB_CLOCK_SIZE import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.HookRes.Companion.resParams import com.drdisagree.iconify.xposed.ModPack -import com.drdisagree.iconify.xposed.utils.XposedIcHelper.findClassInArray -import com.drdisagree.iconify.xposed.utils.XposedIcHelper.getCenterClockView -import com.drdisagree.iconify.xposed.utils.XposedIcHelper.getLeftClockView -import com.drdisagree.iconify.xposed.utils.XposedIcHelper.getRightClockView +import com.drdisagree.iconify.xposed.modules.utils.Helpers.findClassInArray +import com.drdisagree.iconify.xposed.modules.utils.StatusBarClock.getCenterClockView +import com.drdisagree.iconify.xposed.modules.utils.StatusBarClock.getLeftClockView +import com.drdisagree.iconify.xposed.modules.utils.StatusBarClock.getRightClockView import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge.hookAllMethods -import de.robv.android.xposed.XposedBridge.log import de.robv.android.xposed.XposedHelpers.callMethod import de.robv.android.xposed.XposedHelpers.findAndHookMethod import de.robv.android.xposed.XposedHelpers.findClass @@ -813,12 +812,10 @@ class Miscellaneous(context: Context?) : ModPack(context!!) { Bundle::class.java, object : XC_MethodHook() { override fun afterHookedMethod(param: MethodHookParam) { - mClockView = getLeftClockView(mContext, param) as? TextView mCenterClockView = getCenterClockView(mContext, param) as? TextView mRightClockView = getRightClockView(mContext, param) as? TextView - setClockSize() val textClock = mClockView ?: mCenterClockView ?: mRightClockView as TextView diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/Helpers.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/Helpers.kt index d3a07f577..cca501dac 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/Helpers.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/Helpers.kt @@ -12,6 +12,8 @@ import de.robv.android.xposed.XposedBridge.hookAllConstructors import de.robv.android.xposed.XposedBridge.hookAllMethods import de.robv.android.xposed.XposedBridge.log import de.robv.android.xposed.XposedHelpers +import de.robv.android.xposed.XposedHelpers.findClassIfExists +import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam @Suppress("unused") object Helpers { @@ -155,6 +157,14 @@ object Helpers { } } + fun findClassInArray(lpparam: LoadPackageParam, vararg classNames: String): Class<*>? { + for (className in classNames) { + val clazz = findClassIfExists(className, lpparam.classLoader) + if (clazz != null) return clazz + } + return null + } + private fun repeatString(str: String, times: Int): String { val result = StringBuilder() for (i in 0 until times) { diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/utils/XposedIcHelper.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/StatusBarClock.kt similarity index 79% rename from app/src/main/java/com/drdisagree/iconify/xposed/utils/XposedIcHelper.kt rename to app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/StatusBarClock.kt index acd57dc0f..2da75f56c 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/utils/XposedIcHelper.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/StatusBarClock.kt @@ -1,29 +1,17 @@ -package com.drdisagree.iconify.xposed.utils +package com.drdisagree.iconify.xposed.modules.utils +import android.annotation.SuppressLint import android.content.Context import android.view.View import android.widget.LinearLayout import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge.log import de.robv.android.xposed.XposedHelpers.callMethod -import de.robv.android.xposed.XposedHelpers.findClass import de.robv.android.xposed.XposedHelpers.getObjectField -import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam -object XposedIcHelper { +object StatusBarClock { - private val TAG = "Iconify - ${XposedIcHelper::class.java.simpleName}: " - - fun findClassInArray(lpparam: LoadPackageParam, vararg classNames: String): Class<*>? { - for (className in classNames) { - try { - val clazz = findClass(className, lpparam.classLoader) - return clazz - } catch (ignored: Throwable) { - } - } - return null - } + private val TAG = "Iconify - ${StatusBarClock::class.java.simpleName}: " fun getLeftClockView(mContext: Context, param: XC_MethodHook.MethodHookParam): View? { return getClockView( @@ -59,6 +47,7 @@ object XposedIcHelper { ) } + @SuppressLint("DiscouragedApi") private fun getClockView( mContext: Context, param: XC_MethodHook.MethodHookParam, @@ -87,5 +76,4 @@ object XposedIcHelper { null } } - } \ No newline at end of file From 9a0b21afac5910f820d82a988aeba6d90f5d91b7 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Thu, 11 Jul 2024 14:01:41 +0600 Subject: [PATCH 036/369] Header Clock 9: Shorten day of week --- app/src/main/res/layout/preview_header_clock_9.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/layout/preview_header_clock_9.xml b/app/src/main/res/layout/preview_header_clock_9.xml index dcbe6ac8e..5d4f7fb55 100644 --- a/app/src/main/res/layout/preview_header_clock_9.xml +++ b/app/src/main/res/layout/preview_header_clock_9.xml @@ -33,8 +33,8 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" - android:format12Hour="EEEE, MMM dd" - android:format24Hour="EEEE, dd MMM" + android:format12Hour="EEE, MMM dd" + android:format24Hour="EEE, dd MMM" android:layout_marginStart="2dp" android:layout_marginEnd="8dp" android:singleLine="true" From bf58e46919a550f3e16eef8045f7fd385e74f809 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Thu, 11 Jul 2024 22:10:02 +0200 Subject: [PATCH 037/369] new Toast Adapter --- .../iconify/ui/adapters/ToastAdapter.kt | 89 ++++++++ .../iconify/ui/fragments/ToastFrame.kt | 209 ++++++------------ .../iconify/ui/models/ToastModel.kt | 7 + .../main/res/layout/fragment_toast_frame.xml | 32 +-- app/src/main/res/layout/view_toast_frame.xml | 13 +- 5 files changed, 183 insertions(+), 167 deletions(-) create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/adapters/ToastAdapter.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/models/ToastModel.kt diff --git a/app/src/main/java/com/drdisagree/iconify/ui/adapters/ToastAdapter.kt b/app/src/main/java/com/drdisagree/iconify/ui/adapters/ToastAdapter.kt new file mode 100644 index 000000000..7ecd32940 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/adapters/ToastAdapter.kt @@ -0,0 +1,89 @@ +package com.drdisagree.iconify.ui.adapters + +import android.content.Context +import android.view.LayoutInflater +import android.view.ViewGroup +import androidx.core.content.ContextCompat +import androidx.recyclerview.widget.RecyclerView +import com.drdisagree.iconify.Iconify.Companion.appContext +import com.drdisagree.iconify.Iconify.Companion.appContextLocale +import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Preferences.SELECTED_TOAST_FRAME +import com.drdisagree.iconify.config.Prefs +import com.drdisagree.iconify.databinding.ViewToastFrameBinding +import com.drdisagree.iconify.ui.models.ToastModel + +class ToastAdapter ( + var context: Context, + private var itemList: ArrayList, + private var toastClick: OnToastClick +) : RecyclerView.Adapter() { + + private var selected = Prefs.getInt(SELECTED_TOAST_FRAME, -1) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { + val binding: ViewToastFrameBinding = + ViewToastFrameBinding.inflate(LayoutInflater.from(parent.context), parent, false) + if (selected != -1) { + itemList[selected].selected = true + } else { + itemList[0].selected = true + } + return ViewHolder(binding) + } + + override fun onBindViewHolder(holder: ViewHolder, position: Int) { + val model = itemList[holder.bindingAdapterPosition] + holder.binding.styleName.text = appContextLocale.resources.getString(model.title) + holder.binding.toastContainer.background = ContextCompat.getDrawable(appContext, model.style) + if (model.selected) { + holder.binding.styleName.setTextColor( + appContextLocale.resources.getColor( + R.color.colorAccent, + appContext.theme + ) + ) + } else { + holder.binding.styleName.setTextColor( + appContextLocale.resources.getColor( + R.color.textColorSecondary, + appContext.theme + ) + ) + } + holder.binding.listItemToast.setOnClickListener { + toastClick.onToastClick(holder.bindingAdapterPosition, model) + } + } + + fun notifyChange() { + refresh(false) + selected = Prefs.getInt(SELECTED_TOAST_FRAME, -1) + refresh(true) + } + + private fun refresh(select: Boolean) { + if (selected != -1) { + itemList[selected].selected = select + notifyItemChanged(selected) + } else { + itemList[0].selected = select + notifyItemChanged(0) + } + } + + override fun getItemCount(): Int { + return itemList.size + } + + class ViewHolder(val binding: ViewToastFrameBinding) : RecyclerView.ViewHolder(binding.getRoot()) { + } + + /** + * Interface for the click on the item + */ + interface OnToastClick { + fun onToastClick(position: Int, item: ToastModel) + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/ToastFrame.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/ToastFrame.kt index 2317f1c3e..323b038af 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/ToastFrame.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/ToastFrame.kt @@ -12,20 +12,27 @@ import android.widget.LinearLayout import android.widget.TextView import android.widget.Toast import androidx.core.content.ContextCompat +import androidx.recyclerview.widget.GridLayoutManager import com.drdisagree.iconify.Iconify.Companion.appContext import com.drdisagree.iconify.Iconify.Companion.appContextLocale import com.drdisagree.iconify.R import com.drdisagree.iconify.common.Const.FRAMEWORK_PACKAGE import com.drdisagree.iconify.common.Preferences.SELECTED_TOAST_FRAME import com.drdisagree.iconify.config.Prefs +import com.drdisagree.iconify.config.Prefs.getInt import com.drdisagree.iconify.databinding.FragmentToastFrameBinding +import com.drdisagree.iconify.ui.adapters.IconPackAdapter +import com.drdisagree.iconify.ui.adapters.ToastAdapter import com.drdisagree.iconify.ui.base.BaseFragment import com.drdisagree.iconify.ui.dialogs.LoadingDialog +import com.drdisagree.iconify.ui.models.IconPackModel +import com.drdisagree.iconify.ui.models.ToastModel import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader import com.drdisagree.iconify.utils.SystemUtil.hasStoragePermission import com.drdisagree.iconify.utils.SystemUtil.requestStoragePermission import com.drdisagree.iconify.utils.overlay.OverlayUtil import com.drdisagree.iconify.utils.overlay.compiler.OnDemandCompiler.buildOverlay +import com.drdisagree.iconify.utils.overlay.manager.IconPackManager import java.io.IOException import java.util.concurrent.atomic.AtomicBoolean @@ -54,154 +61,84 @@ class ToastFrame : BaseFragment() { loadingDialog = LoadingDialog(requireContext()) // Toast Frame style - addItem(initToastFrameList()) - - refreshBackground() + binding.toastStylesContainer.setLayoutManager(GridLayoutManager(requireContext(), 2)) + binding.toastStylesContainer.setAdapter(initToastFrameItems()) + binding.toastStylesContainer.setHasFixedSize(true) return view } - private fun initToastFrameList(): ArrayList> { - val toastFrameStyle = ArrayList>().apply { - add(arrayOf(R.drawable.toast_frame_style_1, R.string.style_0)) - add(arrayOf(R.drawable.toast_frame_style_1, R.string.style_1)) - add(arrayOf(R.drawable.toast_frame_style_2, R.string.style_2)) - add(arrayOf(R.drawable.toast_frame_style_3, R.string.style_3)) - add(arrayOf(R.drawable.toast_frame_style_4, R.string.style_4)) - add(arrayOf(R.drawable.toast_frame_style_5, R.string.style_5)) - add(arrayOf(R.drawable.toast_frame_style_6, R.string.style_6)) - add(arrayOf(R.drawable.toast_frame_style_7, R.string.style_7)) - add(arrayOf(R.drawable.toast_frame_style_8, R.string.style_8)) - add(arrayOf(R.drawable.toast_frame_style_9, R.string.style_9)) - add(arrayOf(R.drawable.toast_frame_style_10, R.string.style_10)) - add(arrayOf(R.drawable.toast_frame_style_11, R.string.style_11)) + private fun initToastFrameItems(): ToastAdapter { + val selectedStyle = getInt(SELECTED_TOAST_FRAME, -1) + val toastFrameStyle = ArrayList().apply { + add(ToastModel(R.drawable.toast_frame_style_1, R.string.style_0)) + add(ToastModel(R.drawable.toast_frame_style_1, R.string.style_1)) + add(ToastModel(R.drawable.toast_frame_style_2, R.string.style_2)) + add(ToastModel(R.drawable.toast_frame_style_3, R.string.style_3)) + add(ToastModel(R.drawable.toast_frame_style_4, R.string.style_4)) + add(ToastModel(R.drawable.toast_frame_style_5, R.string.style_5)) + add(ToastModel(R.drawable.toast_frame_style_6, R.string.style_6)) + add(ToastModel(R.drawable.toast_frame_style_7, R.string.style_7)) + add(ToastModel(R.drawable.toast_frame_style_8, R.string.style_8)) + add(ToastModel(R.drawable.toast_frame_style_9, R.string.style_9)) + add(ToastModel(R.drawable.toast_frame_style_10, R.string.style_10)) + add(ToastModel(R.drawable.toast_frame_style_11, R.string.style_11)) } - return toastFrameStyle + return ToastAdapter( + requireContext(), + toastFrameStyle, + onToastClick + ) } - // Function to add new item in list - @SuppressLint("UseCompatLoadingForDrawables") - private fun addItem(pack: ArrayList>) { - for (i in pack.indices) { - val list = LayoutInflater.from(requireContext()) - .inflate(R.layout.view_toast_frame, binding.toastFrameContainer, false) - - val toastContainer = list.findViewById(R.id.toast_container) - toastContainer.background = ContextCompat.getDrawable(appContext, pack[i][0] as Int) - - val styleName = list.findViewById(R.id.style_name) - styleName.text = appContextLocale.resources.getString(pack[i][1] as Int) - - list.setOnClickListener { - if (i == 0) { - Prefs.putInt(SELECTED_TOAST_FRAME, -1) - - OverlayUtil.disableOverlay("IconifyComponentTSTFRM.overlay") - - Toast.makeText( - appContext, - appContextLocale.resources - .getString(R.string.toast_disabled), - Toast.LENGTH_SHORT - ).show() - - return@setOnClickListener + private val onToastClick = object : ToastAdapter.OnToastClick { + override fun onToastClick(position: Int, item: ToastModel) { + // Show loading dialog + loadingDialog!!.show(appContextLocale.resources.getString(R.string.loading_dialog_wait)) + + Thread { + val hasErroredOut = AtomicBoolean(false) + + try { + hasErroredOut.set( + buildOverlay( + "TSTFRM", + position, + FRAMEWORK_PACKAGE, + true + ) + ) + } catch (e: IOException) { + hasErroredOut.set(true) + Log.e("ToastFrame", e.toString()) } - if (!hasStoragePermission()) { - requestStoragePermission(requireContext()) - } else { - // Show loading dialog - loadingDialog!!.show(appContextLocale.resources.getString(R.string.loading_dialog_wait)) - - Thread { - val hasErroredOut = AtomicBoolean(false) - - try { - hasErroredOut.set( - buildOverlay( - "TSTFRM", - i, - FRAMEWORK_PACKAGE, - true - ) - ) - } catch (e: IOException) { - hasErroredOut.set(true) - Log.e("ToastFrame", e.toString()) - } - - if (!hasErroredOut.get()) { - Prefs.putInt(SELECTED_TOAST_FRAME, i) - refreshBackground() - } - - Handler(Looper.getMainLooper()).postDelayed({ - // Hide loading dialog - loadingDialog!!.hide() - - if (!hasErroredOut.get()) { - Toast.makeText( - appContext, - appContextLocale.resources.getString(R.string.toast_applied), - Toast.LENGTH_SHORT - ).show() - } else { - Toast.makeText( - appContext, - appContextLocale.resources.getString(R.string.toast_error), - Toast.LENGTH_SHORT - ).show() - } - }, 3000) - }.start() + if (!hasErroredOut.get()) { + Prefs.putInt(SELECTED_TOAST_FRAME, position) + val ad = binding.toastStylesContainer.adapter as ToastAdapter + ad.notifyChange() } - } - - binding.toastFrameContainer.addView(list) - } - } - - // Function to check for bg drawable changes - private fun refreshBackground() { - var selected = false - for (i in 0 until binding.toastFrameContainer.childCount) { - val child = binding.toastFrameContainer.getChildAt(i) - .findViewById(R.id.list_item_toast) - - val title = child.findViewById(R.id.style_name) - - if (i == Prefs.getInt(SELECTED_TOAST_FRAME, -1)) { - selected = true - title.setTextColor( - appContextLocale.resources.getColor( - R.color.colorAccent, - appContext.theme - ) - ) - } else { - title.setTextColor( - appContextLocale.resources.getColor( - R.color.textColorSecondary, - appContext.theme - ) - ) - } - } - - if (!selected) { - val child = binding.toastFrameContainer.getChildAt(0) - .findViewById(R.id.list_item_toast) - - val title = child.findViewById(R.id.style_name) - title.setTextColor( - appContextLocale.resources.getColor( - R.color.colorAccent, - appContext.theme - ) - ) + Handler(Looper.getMainLooper()).postDelayed({ + // Hide loading dialog + loadingDialog!!.hide() + + if (!hasErroredOut.get()) { + Toast.makeText( + appContext, + appContextLocale.resources.getString(R.string.toast_applied), + Toast.LENGTH_SHORT + ).show() + } else { + Toast.makeText( + appContext, + appContextLocale.resources.getString(R.string.toast_error), + Toast.LENGTH_SHORT + ).show() + } + }, 3000) + }.start() } } diff --git a/app/src/main/java/com/drdisagree/iconify/ui/models/ToastModel.kt b/app/src/main/java/com/drdisagree/iconify/ui/models/ToastModel.kt new file mode 100644 index 000000000..71a493925 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/models/ToastModel.kt @@ -0,0 +1,7 @@ +package com.drdisagree.iconify.ui.models + +class ToastModel ( + var style: Int, + var title: Int, + var selected: Boolean = false +) diff --git a/app/src/main/res/layout/fragment_toast_frame.xml b/app/src/main/res/layout/fragment_toast_frame.xml index 6acd965f3..8d57feb45 100644 --- a/app/src/main/res/layout/fragment_toast_frame.xml +++ b/app/src/main/res/layout/fragment_toast_frame.xml @@ -7,36 +7,14 @@ android:clipChildren="false" tools:context=".ui.fragments.ToastFrame"> - - - - - - - - + app:layout_behavior="@string/appbar_scrolling_view_behavior"/> + android:layout_gravity="center_horizontal" + android:gravity="center_horizontal" + android:orientation="vertical" + android:paddingHorizontal="8dp" + android:paddingVertical="8dp"> From 5dbb95772380378ccd3d0d77b7e7076366028484 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Thu, 11 Jul 2024 23:03:03 +0200 Subject: [PATCH 038/369] new Icon Shape Adapter --- .../iconify/ui/adapters/IconShapeAdapter.kt | 100 ++++++++ .../iconify/ui/fragments/IconShape.kt | 232 +++++++----------- .../iconify/ui/models/IconShapeModel.kt | 7 + .../main/res/layout/fragment_icon_shape.xml | 34 +-- app/src/main/res/layout/view_icon_shape.xml | 2 +- 5 files changed, 206 insertions(+), 169 deletions(-) create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/adapters/IconShapeAdapter.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/models/IconShapeModel.kt diff --git a/app/src/main/java/com/drdisagree/iconify/ui/adapters/IconShapeAdapter.kt b/app/src/main/java/com/drdisagree/iconify/ui/adapters/IconShapeAdapter.kt new file mode 100644 index 000000000..aa64b22a1 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/adapters/IconShapeAdapter.kt @@ -0,0 +1,100 @@ +package com.drdisagree.iconify.ui.adapters + +import android.content.Context +import android.content.res.ColorStateList +import android.view.LayoutInflater +import android.view.ViewGroup +import androidx.annotation.ColorInt +import androidx.core.content.ContextCompat +import androidx.recyclerview.widget.RecyclerView +import com.drdisagree.iconify.Iconify.Companion.appContext +import com.drdisagree.iconify.Iconify.Companion.appContextLocale +import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Preferences.SELECTED_ICON_SHAPE +import com.drdisagree.iconify.config.Prefs +import com.drdisagree.iconify.databinding.ViewIconShapeBinding +import com.drdisagree.iconify.databinding.ViewToastFrameBinding +import com.drdisagree.iconify.ui.models.IconShapeModel + +class IconShapeAdapter ( + var context: Context, + private var itemList: ArrayList, + private var iconShapeClick: OnShapeClick +) : RecyclerView.Adapter() { + + private var selected = Prefs.getInt(SELECTED_ICON_SHAPE, -1) + @ColorInt + val colorBackground = appContextLocale.resources.getColor( + R.color.colorBackground, + appContext.theme + ) + @ColorInt + val colorSuccess = appContextLocale.resources.getColor( + R.color.colorSuccess, + appContext.theme + ) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { + val binding: ViewIconShapeBinding = + ViewIconShapeBinding.inflate(LayoutInflater.from(parent.context), parent, false) + if (selected != -1) { + itemList[selected].selected = true + } else { + itemList[0].selected = true + } + return ViewHolder(binding) + } + + override fun onBindViewHolder(holder: ViewHolder, position: Int) { + val model = itemList[holder.bindingAdapterPosition] + holder.binding.shapeName.text = appContextLocale.resources.getString(model.title) + holder.binding.maskShapeBg.background = ContextCompat.getDrawable(appContext, model.style) + holder.binding.maskShapeFg.background = ContextCompat.getDrawable(appContext, model.style) + holder.binding.maskShapeFg.setBackgroundTintList(ColorStateList.valueOf(colorBackground)) + if (model.selected) { + holder.binding.shapeName.setTextColor(colorSuccess) + holder.binding.maskShapeBg.setBackgroundTintList(ColorStateList.valueOf(colorSuccess)) + } else { + holder.binding.shapeName.setTextColor( + appContextLocale.resources.getColor( + R.color.textColorSecondary, + appContext.theme + ) + ) + } + holder.binding.listItemShape.setOnClickListener { + iconShapeClick.onShapeClick(holder.bindingAdapterPosition, model) + } + } + + fun notifyChange() { + refresh(false) + selected = Prefs.getInt(SELECTED_ICON_SHAPE, -1) + refresh(true) + } + + private fun refresh(select: Boolean) { + if (selected != -1) { + itemList[selected].selected = select + notifyItemChanged(selected) + } else { + itemList[0].selected = select + notifyItemChanged(0) + } + } + + override fun getItemCount(): Int { + return itemList.size + } + + class ViewHolder(val binding: ViewIconShapeBinding) : RecyclerView.ViewHolder(binding.getRoot()) { + } + + /** + * Interface for the click on the item + */ + interface OnShapeClick { + fun onShapeClick(position: Int, item: IconShapeModel) + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/IconShape.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/IconShape.kt index eca72dcf1..d0007e00a 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/IconShape.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/IconShape.kt @@ -9,11 +9,13 @@ import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.GridLayout import android.widget.LinearLayout import android.widget.TextView import android.widget.Toast import androidx.annotation.ColorInt import androidx.core.content.ContextCompat +import androidx.recyclerview.widget.GridLayoutManager import com.drdisagree.iconify.Iconify.Companion.appContext import com.drdisagree.iconify.Iconify.Companion.appContextLocale import com.drdisagree.iconify.R @@ -21,8 +23,10 @@ import com.drdisagree.iconify.common.Const.FRAMEWORK_PACKAGE import com.drdisagree.iconify.common.Preferences.SELECTED_ICON_SHAPE import com.drdisagree.iconify.config.Prefs import com.drdisagree.iconify.databinding.FragmentIconShapeBinding +import com.drdisagree.iconify.ui.adapters.IconShapeAdapter import com.drdisagree.iconify.ui.base.BaseFragment import com.drdisagree.iconify.ui.dialogs.LoadingDialog +import com.drdisagree.iconify.ui.models.IconShapeModel import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader import com.drdisagree.iconify.utils.SystemUtil.hasStoragePermission import com.drdisagree.iconify.utils.SystemUtil.requestStoragePermission @@ -56,255 +60,205 @@ class IconShape : BaseFragment() { loadingDialog = LoadingDialog(requireContext()) // Icon masking shape list - addItem(initIconShapeList()) - refreshBackground() + val gridLayoutManager = GridLayoutManager(appContext, 3) // 3 columns + gridLayoutManager.spanSizeLookup = object : GridLayoutManager.SpanSizeLookup() { + override fun getSpanSize(position: Int): Int { + val totalItemCount = binding.iconShapeContainer.adapter?.itemCount ?: return 1 + val spanCount = gridLayoutManager.spanCount + + // Calculate the number of items in the last row + val itemsInLastRow = totalItemCount % spanCount + return if (position >= totalItemCount - itemsInLastRow) { + // Adjust span size for the last row + when (itemsInLastRow) { + 1 -> spanCount // 1 item spans all columns + 2 -> spanCount / 2 // 2 items span half of the columns each + else -> 1 // Default span size (1 column each) + } + } else { + 1 // Default span size (1 column each) + } + } + } + binding.iconShapeContainer.layoutManager = gridLayoutManager + binding.iconShapeContainer.adapter = initIconShapeList() + binding.iconShapeContainer.setHasFixedSize(true) return view } - private fun initIconShapeList(): ArrayList> { - val iconShapePreviewStyles = ArrayList>().apply { + private fun initIconShapeList(): IconShapeAdapter { + val iconShapePreviewStyles = ArrayList().apply { add( - arrayOf( + IconShapeModel( R.drawable.icon_shape_none, R.string.icon_mask_style_none ) ) add( - arrayOf( + IconShapeModel( R.drawable.icon_shape_pebble, R.string.icon_mask_style_pebble ) ) add( - arrayOf( + IconShapeModel( R.drawable.icon_shape_rounded_hexagon, R.string.icon_mask_style_hexagon ) ) add( - arrayOf( + IconShapeModel( R.drawable.icon_shape_samsung, R.string.icon_mask_style_samsung ) ) add( - arrayOf( + IconShapeModel( R.drawable.icon_shape_scroll, R.string.icon_mask_style_scroll ) ) add( - arrayOf( + IconShapeModel( R.drawable.icon_shape_teardrops, R.string.icon_mask_style_teardrop ) ) add( - arrayOf( + IconShapeModel( R.drawable.icon_shape_square, R.string.icon_mask_style_square ) ) add( - arrayOf( + IconShapeModel( R.drawable.icon_shape_rounded_rectangle, R.string.icon_mask_style_rounded_rectangle ) ) add( - arrayOf( + IconShapeModel( R.drawable.icon_shape_ios, R.string.icon_mask_style_ios ) ) add( - arrayOf( + IconShapeModel( R.drawable.icon_shape_cloudy, R.string.icon_mask_style_cloudy ) ) add( - arrayOf( + IconShapeModel( R.drawable.icon_shape_cylinder, R.string.icon_mask_style_cylinder ) ) add( - arrayOf( + IconShapeModel( R.drawable.icon_shape_flower, R.string.icon_mask_style_flower ) ) add( - arrayOf( + IconShapeModel( R.drawable.icon_shape_heart, R.string.icon_mask_style_heart ) ) add( - arrayOf( + IconShapeModel( R.drawable.icon_shape_leaf, R.string.icon_mask_style_leaf ) ) add( - arrayOf( + IconShapeModel( R.drawable.icon_shape_stretched, R.string.icon_mask_style_stretched ) ) add( - arrayOf( + IconShapeModel( R.drawable.icon_shape_tapered_rectangle, R.string.icon_mask_style_tapered_rectangle ) ) add( - arrayOf( + IconShapeModel( R.drawable.icon_shape_vessel, R.string.icon_mask_style_vessel ) ) add( - arrayOf( + IconShapeModel( R.drawable.icon_shape_rohie_meow, R.string.icon_mask_style_rice_rohie_meow ) ) add( - arrayOf( + IconShapeModel( R.drawable.icon_shape_force_round, R.string.icon_mask_style_force_round ) ) } - return iconShapePreviewStyles - } - - // Function to add new item in list - @SuppressLint("UseCompatLoadingForDrawables") - private fun addItem(pack: ArrayList>) { - @ColorInt val colorBackground = appContextLocale.resources.getColor( - R.color.colorBackground, - appContext.theme + return IconShapeAdapter( + appContext, + iconShapePreviewStyles, + onShapeClick ) + } - for (i in pack.indices) { - val list = LayoutInflater.from(requireContext()) - .inflate( - R.layout.view_icon_shape, - binding.iconShapePreviewContainer, - false - ) - - val iconContainerBg = list.findViewById(R.id.mask_shape_bg) - val iconContainerFg = list.findViewById(R.id.mask_shape_fg) - - iconContainerBg.background = ContextCompat.getDrawable(appContext, pack[i][0] as Int) - iconContainerFg.background = ContextCompat.getDrawable(appContext, pack[i][0] as Int) - iconContainerFg.setBackgroundTintList(ColorStateList.valueOf(colorBackground)) - - val styleName = list.findViewById(R.id.shape_name) - styleName.text = resources.getString(pack[i][1] as Int) - - list.setOnClickListener { - if (i == 0) { - Prefs.putInt(SELECTED_ICON_SHAPE, i) - OverlayUtil.disableOverlay("IconifyComponentSIS.overlay") + private val onShapeClick = object : IconShapeAdapter.OnShapeClick { + override fun onShapeClick(position: Int, item: IconShapeModel) { + // Show loading dialog + loadingDialog!!.show(appContextLocale.resources.getString(R.string.loading_dialog_wait)) - Toast.makeText( - appContext, - resources.getString(R.string.toast_disabled), - Toast.LENGTH_SHORT - ).show() + Thread { + val hasErroredOut = AtomicBoolean(false) - refreshBackground() - } else { - if (!hasStoragePermission()) { - requestStoragePermission( - requireContext() + try { + hasErroredOut.set( + buildOverlay( + "SIS", + position, + FRAMEWORK_PACKAGE, + true ) - } else { - // Show loading dialog - loadingDialog!!.show(resources.getString(R.string.loading_dialog_wait)) - - Thread { - val hasErroredOut = AtomicBoolean(false) - - try { - hasErroredOut.set( - buildOverlay( - "SIS", - i, - FRAMEWORK_PACKAGE, - true - ) - ) - } catch (e: IOException) { - hasErroredOut.set(true) - Log.e("IconShape", e.toString()) - } - - if (!hasErroredOut.get()) { - Prefs.putInt(SELECTED_ICON_SHAPE, i) - refreshBackground() - } - - Handler(Looper.getMainLooper()).postDelayed({ - // Hide loading dialog - loadingDialog!!.hide() - if (!hasErroredOut.get()) { - Toast.makeText( - appContext, - appContextLocale.resources - .getString(R.string.toast_applied), - Toast.LENGTH_SHORT - ).show() - } else { - Toast.makeText( - appContext, - appContextLocale.resources - .getString(R.string.toast_error), - Toast.LENGTH_SHORT - ).show() - } - }, 3000) - }.start() - } + ) + } catch (e: IOException) { + hasErroredOut.set(true) + Log.e("IconShape", e.toString()) } - } - - binding.iconShapePreviewContainer.addView(list) - } - } - - // Function to check for bg drawable changes - private fun refreshBackground() { - @ColorInt val colorSuccess = appContextLocale.resources.getColor( - R.color.colorSuccess, - appContext.theme - ) - @ColorInt val textColorSecondary = appContextLocale.resources.getColor( - R.color.textColorSecondary, - appContext.theme - ) - for (i in 0 until binding.iconShapePreviewContainer.childCount) { - val child = binding.iconShapePreviewContainer.getChildAt(i) - .findViewById(R.id.list_item_shape) + if (!hasErroredOut.get()) { + Prefs.putInt(SELECTED_ICON_SHAPE, position) + val ad = binding.iconShapeContainer.adapter as IconShapeAdapter + ad.notifyChange() + } - val title = child.findViewById(R.id.shape_name) - val iconContainerBg = child.findViewById(R.id.mask_shape_bg) + Handler(Looper.getMainLooper()).postDelayed({ + // Hide loading dialog + loadingDialog!!.hide() - if (i == Prefs.getInt(SELECTED_ICON_SHAPE, 0)) { - iconContainerBg.setBackgroundTintList(ColorStateList.valueOf(colorSuccess)) - title.setTextColor(colorSuccess) - } else { - iconContainerBg.setBackgroundTintList(ColorStateList.valueOf(textColorSecondary)) - title.setTextColor(textColorSecondary) - } + if (!hasErroredOut.get()) { + Toast.makeText( + appContext, + appContextLocale.resources.getString(R.string.toast_applied), + Toast.LENGTH_SHORT + ).show() + } else { + Toast.makeText( + appContext, + appContextLocale.resources.getString(R.string.toast_error), + Toast.LENGTH_SHORT + ).show() + } + }, 3000) + }.start() } } diff --git a/app/src/main/java/com/drdisagree/iconify/ui/models/IconShapeModel.kt b/app/src/main/java/com/drdisagree/iconify/ui/models/IconShapeModel.kt new file mode 100644 index 000000000..2a19f1aa4 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/models/IconShapeModel.kt @@ -0,0 +1,7 @@ +package com.drdisagree.iconify.ui.models + +class IconShapeModel ( + var style: Int, + var title: Int, + var selected: Boolean = false +) \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_icon_shape.xml b/app/src/main/res/layout/fragment_icon_shape.xml index 9a3da0200..c2410b4a1 100644 --- a/app/src/main/res/layout/fragment_icon_shape.xml +++ b/app/src/main/res/layout/fragment_icon_shape.xml @@ -7,38 +7,14 @@ android:clipChildren="false" tools:context=".ui.fragments.IconShape"> - - - - - - - - + app:layout_behavior="@string/appbar_scrolling_view_behavior"/> Date: Thu, 11 Jul 2024 23:03:03 +0200 Subject: [PATCH 039/369] new Icon Shape Adapter --- .../iconify/ui/adapters/IconShapeAdapter.kt | 100 +++++++ .../iconify/ui/fragments/IconShape.kt | 251 ++++++++---------- .../iconify/ui/models/IconShapeModel.kt | 7 + .../main/res/layout/fragment_icon_shape.xml | 34 +-- app/src/main/res/layout/view_icon_shape.xml | 2 +- 5 files changed, 229 insertions(+), 165 deletions(-) create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/adapters/IconShapeAdapter.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/models/IconShapeModel.kt diff --git a/app/src/main/java/com/drdisagree/iconify/ui/adapters/IconShapeAdapter.kt b/app/src/main/java/com/drdisagree/iconify/ui/adapters/IconShapeAdapter.kt new file mode 100644 index 000000000..aa64b22a1 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/adapters/IconShapeAdapter.kt @@ -0,0 +1,100 @@ +package com.drdisagree.iconify.ui.adapters + +import android.content.Context +import android.content.res.ColorStateList +import android.view.LayoutInflater +import android.view.ViewGroup +import androidx.annotation.ColorInt +import androidx.core.content.ContextCompat +import androidx.recyclerview.widget.RecyclerView +import com.drdisagree.iconify.Iconify.Companion.appContext +import com.drdisagree.iconify.Iconify.Companion.appContextLocale +import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Preferences.SELECTED_ICON_SHAPE +import com.drdisagree.iconify.config.Prefs +import com.drdisagree.iconify.databinding.ViewIconShapeBinding +import com.drdisagree.iconify.databinding.ViewToastFrameBinding +import com.drdisagree.iconify.ui.models.IconShapeModel + +class IconShapeAdapter ( + var context: Context, + private var itemList: ArrayList, + private var iconShapeClick: OnShapeClick +) : RecyclerView.Adapter() { + + private var selected = Prefs.getInt(SELECTED_ICON_SHAPE, -1) + @ColorInt + val colorBackground = appContextLocale.resources.getColor( + R.color.colorBackground, + appContext.theme + ) + @ColorInt + val colorSuccess = appContextLocale.resources.getColor( + R.color.colorSuccess, + appContext.theme + ) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { + val binding: ViewIconShapeBinding = + ViewIconShapeBinding.inflate(LayoutInflater.from(parent.context), parent, false) + if (selected != -1) { + itemList[selected].selected = true + } else { + itemList[0].selected = true + } + return ViewHolder(binding) + } + + override fun onBindViewHolder(holder: ViewHolder, position: Int) { + val model = itemList[holder.bindingAdapterPosition] + holder.binding.shapeName.text = appContextLocale.resources.getString(model.title) + holder.binding.maskShapeBg.background = ContextCompat.getDrawable(appContext, model.style) + holder.binding.maskShapeFg.background = ContextCompat.getDrawable(appContext, model.style) + holder.binding.maskShapeFg.setBackgroundTintList(ColorStateList.valueOf(colorBackground)) + if (model.selected) { + holder.binding.shapeName.setTextColor(colorSuccess) + holder.binding.maskShapeBg.setBackgroundTintList(ColorStateList.valueOf(colorSuccess)) + } else { + holder.binding.shapeName.setTextColor( + appContextLocale.resources.getColor( + R.color.textColorSecondary, + appContext.theme + ) + ) + } + holder.binding.listItemShape.setOnClickListener { + iconShapeClick.onShapeClick(holder.bindingAdapterPosition, model) + } + } + + fun notifyChange() { + refresh(false) + selected = Prefs.getInt(SELECTED_ICON_SHAPE, -1) + refresh(true) + } + + private fun refresh(select: Boolean) { + if (selected != -1) { + itemList[selected].selected = select + notifyItemChanged(selected) + } else { + itemList[0].selected = select + notifyItemChanged(0) + } + } + + override fun getItemCount(): Int { + return itemList.size + } + + class ViewHolder(val binding: ViewIconShapeBinding) : RecyclerView.ViewHolder(binding.getRoot()) { + } + + /** + * Interface for the click on the item + */ + interface OnShapeClick { + fun onShapeClick(position: Int, item: IconShapeModel) + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/IconShape.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/IconShape.kt index eca72dcf1..144a1acbb 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/IconShape.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/IconShape.kt @@ -9,11 +9,13 @@ import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.GridLayout import android.widget.LinearLayout import android.widget.TextView import android.widget.Toast import androidx.annotation.ColorInt import androidx.core.content.ContextCompat +import androidx.recyclerview.widget.GridLayoutManager import com.drdisagree.iconify.Iconify.Companion.appContext import com.drdisagree.iconify.Iconify.Companion.appContextLocale import com.drdisagree.iconify.R @@ -21,8 +23,10 @@ import com.drdisagree.iconify.common.Const.FRAMEWORK_PACKAGE import com.drdisagree.iconify.common.Preferences.SELECTED_ICON_SHAPE import com.drdisagree.iconify.config.Prefs import com.drdisagree.iconify.databinding.FragmentIconShapeBinding +import com.drdisagree.iconify.ui.adapters.IconShapeAdapter import com.drdisagree.iconify.ui.base.BaseFragment import com.drdisagree.iconify.ui.dialogs.LoadingDialog +import com.drdisagree.iconify.ui.models.IconShapeModel import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader import com.drdisagree.iconify.utils.SystemUtil.hasStoragePermission import com.drdisagree.iconify.utils.SystemUtil.requestStoragePermission @@ -56,256 +60,233 @@ class IconShape : BaseFragment() { loadingDialog = LoadingDialog(requireContext()) // Icon masking shape list - addItem(initIconShapeList()) - refreshBackground() + val gridLayoutManager = GridLayoutManager(appContext, 3) // 3 columns + gridLayoutManager.spanSizeLookup = object : GridLayoutManager.SpanSizeLookup() { + override fun getSpanSize(position: Int): Int { + val totalItemCount = binding.iconShapeContainer.adapter?.itemCount ?: return 1 + val spanCount = gridLayoutManager.spanCount + + // Calculate the number of items in the last row + val itemsInLastRow = totalItemCount % spanCount + return if (position >= totalItemCount - itemsInLastRow) { + // Adjust span size for the last row + when (itemsInLastRow) { + 1 -> spanCount // 1 item spans all columns + 2 -> spanCount / 2 // 2 items span half of the columns each + else -> 1 // Default span size (1 column each) + } + } else { + 1 // Default span size (1 column each) + } + } + } + binding.iconShapeContainer.layoutManager = gridLayoutManager + binding.iconShapeContainer.adapter = initIconShapeList() + binding.iconShapeContainer.setHasFixedSize(true) return view } - private fun initIconShapeList(): ArrayList> { - val iconShapePreviewStyles = ArrayList>().apply { + private fun initIconShapeList(): IconShapeAdapter { + val iconShapePreviewStyles = ArrayList().apply { add( - arrayOf( + IconShapeModel( R.drawable.icon_shape_none, R.string.icon_mask_style_none ) ) add( - arrayOf( + IconShapeModel( R.drawable.icon_shape_pebble, R.string.icon_mask_style_pebble ) ) add( - arrayOf( + IconShapeModel( R.drawable.icon_shape_rounded_hexagon, R.string.icon_mask_style_hexagon ) ) add( - arrayOf( + IconShapeModel( R.drawable.icon_shape_samsung, R.string.icon_mask_style_samsung ) ) add( - arrayOf( + IconShapeModel( R.drawable.icon_shape_scroll, R.string.icon_mask_style_scroll ) ) add( - arrayOf( + IconShapeModel( R.drawable.icon_shape_teardrops, R.string.icon_mask_style_teardrop ) ) add( - arrayOf( + IconShapeModel( R.drawable.icon_shape_square, R.string.icon_mask_style_square ) ) add( - arrayOf( + IconShapeModel( R.drawable.icon_shape_rounded_rectangle, R.string.icon_mask_style_rounded_rectangle ) ) add( - arrayOf( + IconShapeModel( R.drawable.icon_shape_ios, R.string.icon_mask_style_ios ) ) add( - arrayOf( + IconShapeModel( R.drawable.icon_shape_cloudy, R.string.icon_mask_style_cloudy ) ) add( - arrayOf( + IconShapeModel( R.drawable.icon_shape_cylinder, R.string.icon_mask_style_cylinder ) ) add( - arrayOf( + IconShapeModel( R.drawable.icon_shape_flower, R.string.icon_mask_style_flower ) ) add( - arrayOf( + IconShapeModel( R.drawable.icon_shape_heart, R.string.icon_mask_style_heart ) ) add( - arrayOf( + IconShapeModel( R.drawable.icon_shape_leaf, R.string.icon_mask_style_leaf ) ) add( - arrayOf( + IconShapeModel( R.drawable.icon_shape_stretched, R.string.icon_mask_style_stretched ) ) add( - arrayOf( + IconShapeModel( R.drawable.icon_shape_tapered_rectangle, R.string.icon_mask_style_tapered_rectangle ) ) add( - arrayOf( + IconShapeModel( R.drawable.icon_shape_vessel, R.string.icon_mask_style_vessel ) ) add( - arrayOf( + IconShapeModel( R.drawable.icon_shape_rohie_meow, R.string.icon_mask_style_rice_rohie_meow ) ) add( - arrayOf( + IconShapeModel( R.drawable.icon_shape_force_round, R.string.icon_mask_style_force_round ) ) } - return iconShapePreviewStyles - } - - // Function to add new item in list - @SuppressLint("UseCompatLoadingForDrawables") - private fun addItem(pack: ArrayList>) { - @ColorInt val colorBackground = appContextLocale.resources.getColor( - R.color.colorBackground, - appContext.theme + return IconShapeAdapter( + appContext, + iconShapePreviewStyles, + onShapeClick ) + } - for (i in pack.indices) { - val list = LayoutInflater.from(requireContext()) - .inflate( - R.layout.view_icon_shape, - binding.iconShapePreviewContainer, - false - ) - - val iconContainerBg = list.findViewById(R.id.mask_shape_bg) - val iconContainerFg = list.findViewById(R.id.mask_shape_fg) + private val onShapeClick = object : IconShapeAdapter.OnShapeClick { + override fun onShapeClick(position: Int, item: IconShapeModel) { + // Show loading dialog + loadingDialog!!.show(appContextLocale.resources.getString(R.string.loading_dialog_wait)) - iconContainerBg.background = ContextCompat.getDrawable(appContext, pack[i][0] as Int) - iconContainerFg.background = ContextCompat.getDrawable(appContext, pack[i][0] as Int) - iconContainerFg.setBackgroundTintList(ColorStateList.valueOf(colorBackground)) + if (position == 0) { + Prefs.putInt(SELECTED_ICON_SHAPE, 0) + OverlayUtil.disableOverlay("IconifyComponentSIS.overlay") - val styleName = list.findViewById(R.id.shape_name) - styleName.text = resources.getString(pack[i][1] as Int) + Toast.makeText( + appContext, + resources.getString(R.string.toast_disabled), + Toast.LENGTH_SHORT + ).show() + loadingDialog!!.hide() + return + } - list.setOnClickListener { - if (i == 0) { - Prefs.putInt(SELECTED_ICON_SHAPE, i) - OverlayUtil.disableOverlay("IconifyComponentSIS.overlay") + if (!hasStoragePermission()) { + requestStoragePermission( + requireContext() + ) + } else { + // Show loading dialog + loadingDialog!!.show(resources.getString(R.string.loading_dialog_wait)) - Toast.makeText( - appContext, - resources.getString(R.string.toast_disabled), - Toast.LENGTH_SHORT - ).show() + Thread { + val hasErroredOut = AtomicBoolean(false) - refreshBackground() - } else { - if (!hasStoragePermission()) { - requestStoragePermission( - requireContext() + try { + hasErroredOut.set( + buildOverlay( + "SIS", + position, + FRAMEWORK_PACKAGE, + true + ) ) - } else { - // Show loading dialog - loadingDialog!!.show(resources.getString(R.string.loading_dialog_wait)) - - Thread { - val hasErroredOut = AtomicBoolean(false) - - try { - hasErroredOut.set( - buildOverlay( - "SIS", - i, - FRAMEWORK_PACKAGE, - true - ) - ) - } catch (e: IOException) { - hasErroredOut.set(true) - Log.e("IconShape", e.toString()) - } - - if (!hasErroredOut.get()) { - Prefs.putInt(SELECTED_ICON_SHAPE, i) - refreshBackground() - } + } catch (e: IOException) { + hasErroredOut.set(true) + Log.e("IconShape", e.toString()) + } - Handler(Looper.getMainLooper()).postDelayed({ - // Hide loading dialog - loadingDialog!!.hide() - if (!hasErroredOut.get()) { - Toast.makeText( - appContext, - appContextLocale.resources - .getString(R.string.toast_applied), - Toast.LENGTH_SHORT - ).show() - } else { - Toast.makeText( - appContext, - appContextLocale.resources - .getString(R.string.toast_error), - Toast.LENGTH_SHORT - ).show() - } - }, 3000) - }.start() + if (!hasErroredOut.get()) { + Prefs.putInt(SELECTED_ICON_SHAPE, position) + refreshAdapter() } - } - } - binding.iconShapePreviewContainer.addView(list) + Handler(Looper.getMainLooper()).postDelayed({ + // Hide loading dialog + loadingDialog!!.hide() + if (!hasErroredOut.get()) { + Toast.makeText( + appContext, + appContextLocale.resources + .getString(R.string.toast_applied), + Toast.LENGTH_SHORT + ).show() + } else { + Toast.makeText( + appContext, + appContextLocale.resources + .getString(R.string.toast_error), + Toast.LENGTH_SHORT + ).show() + } + }, 3000) + }.start() + } } } - // Function to check for bg drawable changes - private fun refreshBackground() { - @ColorInt val colorSuccess = appContextLocale.resources.getColor( - R.color.colorSuccess, - appContext.theme - ) - @ColorInt val textColorSecondary = appContextLocale.resources.getColor( - R.color.textColorSecondary, - appContext.theme - ) - - for (i in 0 until binding.iconShapePreviewContainer.childCount) { - val child = binding.iconShapePreviewContainer.getChildAt(i) - .findViewById(R.id.list_item_shape) - - val title = child.findViewById(R.id.shape_name) - val iconContainerBg = child.findViewById(R.id.mask_shape_bg) - - if (i == Prefs.getInt(SELECTED_ICON_SHAPE, 0)) { - iconContainerBg.setBackgroundTintList(ColorStateList.valueOf(colorSuccess)) - title.setTextColor(colorSuccess) - } else { - iconContainerBg.setBackgroundTintList(ColorStateList.valueOf(textColorSecondary)) - title.setTextColor(textColorSecondary) - } - } + private fun refreshAdapter() { + val ad = binding.iconShapeContainer.adapter as IconShapeAdapter + ad.notifyChange() } override fun onDestroy() { diff --git a/app/src/main/java/com/drdisagree/iconify/ui/models/IconShapeModel.kt b/app/src/main/java/com/drdisagree/iconify/ui/models/IconShapeModel.kt new file mode 100644 index 000000000..2a19f1aa4 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/models/IconShapeModel.kt @@ -0,0 +1,7 @@ +package com.drdisagree.iconify.ui.models + +class IconShapeModel ( + var style: Int, + var title: Int, + var selected: Boolean = false +) \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_icon_shape.xml b/app/src/main/res/layout/fragment_icon_shape.xml index 9a3da0200..c2410b4a1 100644 --- a/app/src/main/res/layout/fragment_icon_shape.xml +++ b/app/src/main/res/layout/fragment_icon_shape.xml @@ -7,38 +7,14 @@ android:clipChildren="false" tools:context=".ui.fragments.IconShape"> - - - - - - - - + app:layout_behavior="@string/appbar_scrolling_view_behavior"/> Date: Fri, 12 Jul 2024 20:42:44 +0200 Subject: [PATCH 040/369] Loading Dialog correction --- .../main/java/com/drdisagree/iconify/ui/fragments/IconShape.kt | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/IconShape.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/IconShape.kt index 144a1acbb..72f34d243 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/IconShape.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/IconShape.kt @@ -214,8 +214,6 @@ class IconShape : BaseFragment() { private val onShapeClick = object : IconShapeAdapter.OnShapeClick { override fun onShapeClick(position: Int, item: IconShapeModel) { - // Show loading dialog - loadingDialog!!.show(appContextLocale.resources.getString(R.string.loading_dialog_wait)) if (position == 0) { Prefs.putInt(SELECTED_ICON_SHAPE, 0) From 720ae7a32277e6fcfea576ca794e41db38145bb3 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Fri, 12 Jul 2024 20:58:48 +0200 Subject: [PATCH 041/369] Force center clock --- .../iconify/xposed/modules/BackgroundChip.kt | 51 +--------------- .../iconify/xposed/modules/Miscellaneous.kt | 18 ++++++ .../xposed/modules/utils/StatusBarClock.kt | 61 +++++++++++++++++++ 3 files changed, 81 insertions(+), 49 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/BackgroundChip.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/BackgroundChip.kt index 5db041e0c..d61d17160 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/BackgroundChip.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/BackgroundChip.kt @@ -42,6 +42,7 @@ import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.toPx import com.drdisagree.iconify.xposed.modules.utils.StatusBarClock.getCenterClockView import com.drdisagree.iconify.xposed.modules.utils.StatusBarClock.getLeftClockView import com.drdisagree.iconify.xposed.modules.utils.StatusBarClock.getRightClockView +import com.drdisagree.iconify.xposed.modules.utils.StatusBarClock.setClockGravity import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge.hookAllMethods import de.robv.android.xposed.XposedBridge.log @@ -456,55 +457,7 @@ class BackgroundChip(context: Context?) : ModPack(context!!) { } } - val layoutParams = clockView.layoutParams - when (layoutParams) { - is LinearLayout.LayoutParams, -> { - layoutParams.gravity = gravity - } - - is FrameLayout.LayoutParams -> { - layoutParams.gravity = gravity - } - - is RelativeLayout.LayoutParams -> { - when (gravity) { - Gravity.LEFT or Gravity.CENTER -> { - layoutParams.addRule(RelativeLayout.CENTER_VERTICAL) - layoutParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT) - } - - Gravity.CENTER -> { - layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT) - } - - Gravity.RIGHT or Gravity.CENTER -> { - layoutParams.addRule(RelativeLayout.CENTER_VERTICAL) - layoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT) - } - - else -> { - Log.w( - "$TAG LayoutParamsCheck", - "Unsupported gravity type for RelativeLayout: $gravity" - ) - } - } - } - - else -> { - Log.w( - "$TAG LayoutParamsCheck", - "Unknown LayoutParams type: ${layoutParams.javaClass.name}" - ) - } - } - clockView.layoutParams = layoutParams - - (clockView as TextView).includeFontPadding = false - clockView.getLayoutParams().height = ViewGroup.LayoutParams.WRAP_CONTENT - clockView.setGravity(Gravity.CENTER) - clockView.setTextAlignment(View.TEXT_ALIGNMENT_CENTER) - clockView.requestLayout() + setClockGravity(clockView, gravity) } private fun setQSStatusIconsBgA12() { diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt index 128c54967..9a00a4add 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt @@ -31,6 +31,7 @@ import com.drdisagree.iconify.xposed.modules.utils.Helpers.findClassInArray import com.drdisagree.iconify.xposed.modules.utils.StatusBarClock.getCenterClockView import com.drdisagree.iconify.xposed.modules.utils.StatusBarClock.getLeftClockView import com.drdisagree.iconify.xposed.modules.utils.StatusBarClock.getRightClockView +import com.drdisagree.iconify.xposed.modules.utils.StatusBarClock.setClockGravity import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge.hookAllMethods import de.robv.android.xposed.XposedHelpers.callMethod @@ -831,10 +832,27 @@ class Miscellaneous(context: Context?) : ModPack(context!!) { } + @SuppressLint("RtlHardcoded") private fun setClockSize() { if (mClockView != null) mClockView!!.setTextSize(TypedValue.COMPLEX_UNIT_SP, sbClockSize.toFloat()) if (mCenterClockView != null) mCenterClockView!!.setTextSize(TypedValue.COMPLEX_UNIT_SP, sbClockSize.toFloat()) if (mRightClockView != null) mRightClockView!!.setTextSize(TypedValue.COMPLEX_UNIT_SP, sbClockSize.toFloat()) + + setClockGravity( + mClockView, + Gravity.LEFT or Gravity.CENTER + ) + + setClockGravity( + mCenterClockView, + Gravity.CENTER + ) + + setClockGravity( + mRightClockView, + Gravity.RIGHT or Gravity.CENTER + ) + } companion object { diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/StatusBarClock.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/StatusBarClock.kt index 2da75f56c..ec6190183 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/StatusBarClock.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/StatusBarClock.kt @@ -2,8 +2,14 @@ package com.drdisagree.iconify.xposed.modules.utils import android.annotation.SuppressLint import android.content.Context +import android.util.Log +import android.view.Gravity import android.view.View +import android.view.ViewGroup +import android.widget.FrameLayout import android.widget.LinearLayout +import android.widget.RelativeLayout +import android.widget.TextView import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge.log import de.robv.android.xposed.XposedHelpers.callMethod @@ -76,4 +82,59 @@ object StatusBarClock { null } } + + @SuppressLint("RtlHardcoded") + fun setClockGravity(clockView: View?, gravity: Int) { + if (clockView == null) return + + val layoutParams = clockView.layoutParams + when (layoutParams) { + is LinearLayout.LayoutParams, -> { + layoutParams.gravity = gravity + } + + is FrameLayout.LayoutParams -> { + layoutParams.gravity = gravity + } + + is RelativeLayout.LayoutParams -> { + when (gravity) { + Gravity.LEFT or Gravity.CENTER -> { + layoutParams.addRule(RelativeLayout.CENTER_VERTICAL) + layoutParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT) + } + + Gravity.CENTER -> { + layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT) + } + + Gravity.RIGHT or Gravity.CENTER -> { + layoutParams.addRule(RelativeLayout.CENTER_VERTICAL) + layoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT) + } + + else -> { + Log.w( + "${TAG} LayoutParamsCheck", + "Unsupported gravity type for RelativeLayout: $gravity" + ) + } + } + } + + else -> { + Log.w( + "${TAG} LayoutParamsCheck", + "Unknown LayoutParams type: ${layoutParams.javaClass.name}" + ) + } + } + clockView.layoutParams = layoutParams + + (clockView as TextView).includeFontPadding = false + clockView.getLayoutParams().height = ViewGroup.LayoutParams.WRAP_CONTENT + clockView.setGravity(Gravity.CENTER) + clockView.setTextAlignment(View.TEXT_ALIGNMENT_CENTER) + clockView.requestLayout() + } } \ No newline at end of file From e3fc81efeabfcefef7bb38c170087a7c6be34539 Mon Sep 17 00:00:00 2001 From: Crowdin Bot Date: Sun, 14 Jul 2024 00:15:17 +0000 Subject: [PATCH 042/369] New Crowdin translations by GitHub Action --- app/src/main/res/values-af-rZA/strings.xml | 7 +++++++ app/src/main/res/values-ar-rSA/strings.xml | 7 +++++++ app/src/main/res/values-ca-rES/strings.xml | 7 +++++++ app/src/main/res/values-cs-rCZ/strings.xml | 7 +++++++ app/src/main/res/values-da-rDK/strings.xml | 7 +++++++ app/src/main/res/values-de-rDE/strings.xml | 7 +++++++ app/src/main/res/values-el-rGR/strings.xml | 7 +++++++ app/src/main/res/values-es-rES/strings.xml | 7 +++++++ app/src/main/res/values-fa-rIR/strings.xml | 7 +++++++ app/src/main/res/values-fi-rFI/strings.xml | 7 +++++++ app/src/main/res/values-fr-rFR/strings.xml | 7 +++++++ app/src/main/res/values-hu-rHU/strings.xml | 7 +++++++ app/src/main/res/values-in-rID/strings.xml | 7 +++++++ app/src/main/res/values-it-rIT/strings.xml | 7 +++++++ app/src/main/res/values-ja-rJP/strings.xml | 7 +++++++ app/src/main/res/values-ko-rKR/strings.xml | 7 +++++++ app/src/main/res/values-nl-rNL/strings.xml | 7 +++++++ app/src/main/res/values-no-rNO/strings.xml | 7 +++++++ app/src/main/res/values-pl-rPL/strings.xml | 7 +++++++ app/src/main/res/values-pt-rBR/strings.xml | 7 +++++++ app/src/main/res/values-pt-rPT/strings.xml | 7 +++++++ app/src/main/res/values-ro-rRO/strings.xml | 7 +++++++ app/src/main/res/values-ru-rRU/strings.xml | 7 +++++++ app/src/main/res/values-sr-rSP/strings.xml | 7 +++++++ app/src/main/res/values-sv-rSE/strings.xml | 7 +++++++ app/src/main/res/values-tr-rTR/strings.xml | 7 +++++++ app/src/main/res/values-uk-rUA/strings.xml | 7 +++++++ app/src/main/res/values-vi-rVN/strings.xml | 9 ++++++++- app/src/main/res/values-zh-rCN/strings.xml | 7 +++++++ app/src/main/res/values-zh-rTW/strings.xml | 7 +++++++ 30 files changed, 211 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values-af-rZA/strings.xml b/app/src/main/res/values-af-rZA/strings.xml index 3c3bf051c..0356ccf26 100644 --- a/app/src/main/res/values-af-rZA/strings.xml +++ b/app/src/main/res/values-af-rZA/strings.xml @@ -35,6 +35,10 @@ Iconify Icon Pack Change system icon pack + Signal Icons + Change system signal icons + WiFi Icons + Change system WiFi icons Brightness Bar Customize progress slider QS Panel Tiles @@ -602,6 +606,9 @@ Bottom Margin White Text Force all colors to be white + Use Custom Image + Use custom image for lockscreen clock. + Custom Image Picker Select Battery Charging Battery Discharging diff --git a/app/src/main/res/values-ar-rSA/strings.xml b/app/src/main/res/values-ar-rSA/strings.xml index 86e027ccd..63bba6f16 100644 --- a/app/src/main/res/values-ar-rSA/strings.xml +++ b/app/src/main/res/values-ar-rSA/strings.xml @@ -35,6 +35,10 @@ Iconify حزمة الأيقونات تغيير حزمة ايقونات النظام + Signal Icons + Change system signal icons + WiFi Icons + Change system WiFi icons شريط السطوع تخصيص شريط التقدم QS بلاط لوحة @@ -602,6 +606,9 @@ الهامش السفليn نص أبيض إجبار كل الألوان على أن تكون بيضاء + Use Custom Image + Use custom image for lockscreen clock. + Custom Image Picker اختر شحن البطارية تفريغ البطارية diff --git a/app/src/main/res/values-ca-rES/strings.xml b/app/src/main/res/values-ca-rES/strings.xml index 3c3bf051c..0356ccf26 100644 --- a/app/src/main/res/values-ca-rES/strings.xml +++ b/app/src/main/res/values-ca-rES/strings.xml @@ -35,6 +35,10 @@ Iconify Icon Pack Change system icon pack + Signal Icons + Change system signal icons + WiFi Icons + Change system WiFi icons Brightness Bar Customize progress slider QS Panel Tiles @@ -602,6 +606,9 @@ Bottom Margin White Text Force all colors to be white + Use Custom Image + Use custom image for lockscreen clock. + Custom Image Picker Select Battery Charging Battery Discharging diff --git a/app/src/main/res/values-cs-rCZ/strings.xml b/app/src/main/res/values-cs-rCZ/strings.xml index 6ef73bbe6..cf6d22119 100644 --- a/app/src/main/res/values-cs-rCZ/strings.xml +++ b/app/src/main/res/values-cs-rCZ/strings.xml @@ -35,6 +35,10 @@ Iconify Icon Pack Change system icon pack + Signal Icons + Change system signal icons + WiFi Icons + Change system WiFi icons Brightness Bar Customize progress slider QS Panel Tiles @@ -602,6 +606,9 @@ Bottom Margin White Text Force all colors to be white + Use Custom Image + Use custom image for lockscreen clock. + Custom Image Picker Select Battery Charging Battery Discharging diff --git a/app/src/main/res/values-da-rDK/strings.xml b/app/src/main/res/values-da-rDK/strings.xml index 3c3bf051c..0356ccf26 100644 --- a/app/src/main/res/values-da-rDK/strings.xml +++ b/app/src/main/res/values-da-rDK/strings.xml @@ -35,6 +35,10 @@ Iconify Icon Pack Change system icon pack + Signal Icons + Change system signal icons + WiFi Icons + Change system WiFi icons Brightness Bar Customize progress slider QS Panel Tiles @@ -602,6 +606,9 @@ Bottom Margin White Text Force all colors to be white + Use Custom Image + Use custom image for lockscreen clock. + Custom Image Picker Select Battery Charging Battery Discharging diff --git a/app/src/main/res/values-de-rDE/strings.xml b/app/src/main/res/values-de-rDE/strings.xml index 63b429174..19ae5e85f 100644 --- a/app/src/main/res/values-de-rDE/strings.xml +++ b/app/src/main/res/values-de-rDE/strings.xml @@ -35,6 +35,10 @@ Symbolpaket System Icons verändern + Signal Icons + Change system signal icons + WiFi Icons + Change system WiFi icons Helligkeitsregler Verändere Fortschrittsbalken QS Kacheln @@ -603,6 +607,9 @@ transparent machen Unterer Abstand Weißer Text Zwinge alle Farben weiß zu sein + Use Custom Image + Use custom image for lockscreen clock. + Custom Image Picker Auswählen Akku ladend Akku entladend diff --git a/app/src/main/res/values-el-rGR/strings.xml b/app/src/main/res/values-el-rGR/strings.xml index bda911127..ae218b9f3 100644 --- a/app/src/main/res/values-el-rGR/strings.xml +++ b/app/src/main/res/values-el-rGR/strings.xml @@ -35,6 +35,10 @@ Iconify Πακέτο Εικονιδίων Αλλαγή πακέτου εικονιδίων συστήματος + Signal Icons + Change system signal icons + WiFi Icons + Change system WiFi icons Μπάρα Φωτεινότητας Προσαρμογή ρυθμιστικού προόδου Πλακίδια Πίνακα Γρήγορων Ρυθμίσεων @@ -602,6 +606,9 @@ Bottom Margin White Text Force all colors to be white + Use Custom Image + Use custom image for lockscreen clock. + Custom Image Picker Select Battery Charging Battery Discharging diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index d87cd7b51..28b52aec7 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -35,6 +35,10 @@ Iconify Paquete de iconos Cambia el paquete de iconos del sistema + Signal Icons + Change system signal icons + WiFi Icons + Change system WiFi icons Barra de brillo Personalizar barra de progreso Panel de Ajustes Rápidos @@ -602,6 +606,9 @@ Margen inferior del reloj Texto blanco Forzar todos los colores en blanco + Use Custom Image + Use custom image for lockscreen clock. + Custom Image Picker Seleccionar Batería cargándose Batería descargándose diff --git a/app/src/main/res/values-fa-rIR/strings.xml b/app/src/main/res/values-fa-rIR/strings.xml index 26f9f7df0..a0ed9b56e 100644 --- a/app/src/main/res/values-fa-rIR/strings.xml +++ b/app/src/main/res/values-fa-rIR/strings.xml @@ -35,6 +35,10 @@ آیکونیفای آیکون‌ها تغییر ظاهر آیکون‌های سیستم + Signal Icons + Change system signal icons + WiFi Icons + Change system WiFi icons نوار تنظیم نور صفحه تغییر ظاهر نوار تنظیم نور صفحه کلید‌های نوار‌ابزار @@ -602,6 +606,9 @@ تنظیم حاشیه پایین ساعت سفید کردن فونت ساعت فونت ساعت همیشه سفید رنگ باشد + Use Custom Image + Use custom image for lockscreen clock. + Custom Image Picker Select باتری در حال شارژ باتری خارج از شارژ diff --git a/app/src/main/res/values-fi-rFI/strings.xml b/app/src/main/res/values-fi-rFI/strings.xml index 3c3bf051c..0356ccf26 100644 --- a/app/src/main/res/values-fi-rFI/strings.xml +++ b/app/src/main/res/values-fi-rFI/strings.xml @@ -35,6 +35,10 @@ Iconify Icon Pack Change system icon pack + Signal Icons + Change system signal icons + WiFi Icons + Change system WiFi icons Brightness Bar Customize progress slider QS Panel Tiles @@ -602,6 +606,9 @@ Bottom Margin White Text Force all colors to be white + Use Custom Image + Use custom image for lockscreen clock. + Custom Image Picker Select Battery Charging Battery Discharging diff --git a/app/src/main/res/values-fr-rFR/strings.xml b/app/src/main/res/values-fr-rFR/strings.xml index 4dc2e7260..b1632aae5 100644 --- a/app/src/main/res/values-fr-rFR/strings.xml +++ b/app/src/main/res/values-fr-rFR/strings.xml @@ -35,6 +35,10 @@ Iconify Pack d\'icônes Modifier le pack d\'icônes système + Signal Icons + Change system signal icons + WiFi Icons + Change system WiFi icons Barre de luminosité Personnalisation du curseur de luminosité Tuiles de panneaux QS @@ -602,6 +606,9 @@ Marge inférieure Texte blanc Forcer toutes les couleurs à être blanches + Use Custom Image + Use custom image for lockscreen clock. + Custom Image Picker Select Battery Charging Battery Discharging diff --git a/app/src/main/res/values-hu-rHU/strings.xml b/app/src/main/res/values-hu-rHU/strings.xml index eaf697cf3..a60451836 100644 --- a/app/src/main/res/values-hu-rHU/strings.xml +++ b/app/src/main/res/values-hu-rHU/strings.xml @@ -35,6 +35,10 @@ Ikonizáló (Iconify) Ikoncsomag Lecserélheti a rendszerikonokat + Térerő-ikonok + Itt változtathatja meg a rendszer térerő-kijelzését + Wi-Fi ikonok + Itt változtathatja meg a rendszer Wi-Fi kijelzését Fényerőszabályozó-sáv Testre szabhatja a csúszkát A Gyorsbeállítások csempéi @@ -602,6 +606,9 @@ Alsó margó Fehér szöveg Az összes színt a fehér felé kényszeríti + Egyéni kép használata + Saját képet használhat a záróképernyő órájához. + Egyéni kép-kijelölés Választás Az akku töltödik Az akku nem töltödik diff --git a/app/src/main/res/values-in-rID/strings.xml b/app/src/main/res/values-in-rID/strings.xml index 8ebed31f8..e3b9c0359 100644 --- a/app/src/main/res/values-in-rID/strings.xml +++ b/app/src/main/res/values-in-rID/strings.xml @@ -35,6 +35,10 @@ Iconify Icon Pack Mengubah sistem ikon pack + Signal Icons + Change system signal icons + WiFi Icons + Change system WiFi icons Brightness Bar Mengubah progress slider QS Panel Tiles @@ -602,6 +606,9 @@ Bottom Margin Teks Putih Paksa semua warna menjadi putih + Use Custom Image + Use custom image for lockscreen clock. + Custom Image Picker Select Battery Charging Battery Discharging diff --git a/app/src/main/res/values-it-rIT/strings.xml b/app/src/main/res/values-it-rIT/strings.xml index d5c6394ac..ad6aedc82 100644 --- a/app/src/main/res/values-it-rIT/strings.xml +++ b/app/src/main/res/values-it-rIT/strings.xml @@ -35,6 +35,10 @@ Iconify Pacchetto Icone Cambia le icone di sistema + Signal Icons + Change system signal icons + WiFi Icons + Change system WiFi icons Barra Luminosità Personalizza il cursore di avanzamento Pannello Riquadri QS @@ -602,6 +606,9 @@ Margine Inferiore Testo Bianco Forza tutti i colori per essere bianchi + Use Custom Image + Use custom image for lockscreen clock. + Custom Image Picker Seleziona Batteria in Carica Batteria in Scaricamento diff --git a/app/src/main/res/values-ja-rJP/strings.xml b/app/src/main/res/values-ja-rJP/strings.xml index 52cedeb6e..2d784e759 100644 --- a/app/src/main/res/values-ja-rJP/strings.xml +++ b/app/src/main/res/values-ja-rJP/strings.xml @@ -35,6 +35,10 @@ Iconify アイコンパック システム アイコンパックを変更 + Signal Icons + Change system signal icons + WiFi Icons + Change system WiFi icons 明るさ調節バー 進捗スライダーをカスタマイズ クイック設定パネルタイル @@ -602,6 +606,9 @@ 下部マージン ホワイト テキスト すべての色を白に強制します + Use Custom Image + Use custom image for lockscreen clock. + Custom Image Picker 選択 バッテリー充電中 バッテリー放電中 diff --git a/app/src/main/res/values-ko-rKR/strings.xml b/app/src/main/res/values-ko-rKR/strings.xml index 4a6a81fc3..8767d6197 100644 --- a/app/src/main/res/values-ko-rKR/strings.xml +++ b/app/src/main/res/values-ko-rKR/strings.xml @@ -35,6 +35,10 @@ Iconify 아이콘 팩 시스템 아이콘 팩 변경 + Signal Icons + Change system signal icons + WiFi Icons + Change system WiFi icons 밝기 막대 진행 슬라이더 맞춤 설정 빠른 설정창 타일 @@ -602,6 +606,9 @@ Bottom Margin White Text Force all colors to be white + Use Custom Image + Use custom image for lockscreen clock. + Custom Image Picker Select Battery Charging Battery Discharging diff --git a/app/src/main/res/values-nl-rNL/strings.xml b/app/src/main/res/values-nl-rNL/strings.xml index 3c3bf051c..0356ccf26 100644 --- a/app/src/main/res/values-nl-rNL/strings.xml +++ b/app/src/main/res/values-nl-rNL/strings.xml @@ -35,6 +35,10 @@ Iconify Icon Pack Change system icon pack + Signal Icons + Change system signal icons + WiFi Icons + Change system WiFi icons Brightness Bar Customize progress slider QS Panel Tiles @@ -602,6 +606,9 @@ Bottom Margin White Text Force all colors to be white + Use Custom Image + Use custom image for lockscreen clock. + Custom Image Picker Select Battery Charging Battery Discharging diff --git a/app/src/main/res/values-no-rNO/strings.xml b/app/src/main/res/values-no-rNO/strings.xml index 3c3bf051c..0356ccf26 100644 --- a/app/src/main/res/values-no-rNO/strings.xml +++ b/app/src/main/res/values-no-rNO/strings.xml @@ -35,6 +35,10 @@ Iconify Icon Pack Change system icon pack + Signal Icons + Change system signal icons + WiFi Icons + Change system WiFi icons Brightness Bar Customize progress slider QS Panel Tiles @@ -602,6 +606,9 @@ Bottom Margin White Text Force all colors to be white + Use Custom Image + Use custom image for lockscreen clock. + Custom Image Picker Select Battery Charging Battery Discharging diff --git a/app/src/main/res/values-pl-rPL/strings.xml b/app/src/main/res/values-pl-rPL/strings.xml index 1dfe76a77..b3127ffa6 100644 --- a/app/src/main/res/values-pl-rPL/strings.xml +++ b/app/src/main/res/values-pl-rPL/strings.xml @@ -35,6 +35,10 @@ Iconify Paczka ikon Zmień systemową paczkę ikon + Signal Icons + Change system signal icons + WiFi Icons + Change system WiFi icons Pasek jasności Dostosuj wygląd paska jasności Kafelki @@ -602,6 +606,9 @@ Margines dolny Biały tekst Wymuś wszystkie kolory na białe + Use Custom Image + Use custom image for lockscreen clock. + Custom Image Picker Select Battery Charging Battery Discharging diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 35e9c098b..38b486b8d 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -35,6 +35,10 @@ Iconify Pacote de ícones Altere o pacote de ícones do sistema + Ícones de sinal + Altere os ícones de sinal do sistema + Ícones de Wi-Fi + Altere os ícones de Wi-Fi do sistema Barra de brilho Personalize o controle deslizante Blocos do painel QS @@ -602,6 +606,9 @@ Margem inferior Texto branco Force todas as cores a serem brancas + Usar imagem personalizada + Use uma imagem personalizada para o relógio da tela de bloqueio. + Seletor de imagens personalizado Selecionar Bateria carregando Bateria descarregando diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index 2880a00c4..c2a2873d2 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -35,6 +35,10 @@ Iconify Pacotes de ícones Personalizar ícones de sistema + Signal Icons + Change system signal icons + WiFi Icons + Change system WiFi icons Barra de brilho Personalizar a barra de brilho Atalhos do painel das DR @@ -602,6 +606,9 @@ Margem inferior Texto branco Forçar branco em todo o lado + Use Custom Image + Use custom image for lockscreen clock. + Custom Image Picker Select Battery Charging Battery Discharging diff --git a/app/src/main/res/values-ro-rRO/strings.xml b/app/src/main/res/values-ro-rRO/strings.xml index 3c3bf051c..0356ccf26 100644 --- a/app/src/main/res/values-ro-rRO/strings.xml +++ b/app/src/main/res/values-ro-rRO/strings.xml @@ -35,6 +35,10 @@ Iconify Icon Pack Change system icon pack + Signal Icons + Change system signal icons + WiFi Icons + Change system WiFi icons Brightness Bar Customize progress slider QS Panel Tiles @@ -602,6 +606,9 @@ Bottom Margin White Text Force all colors to be white + Use Custom Image + Use custom image for lockscreen clock. + Custom Image Picker Select Battery Charging Battery Discharging diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml index 72c823838..ae2175a8d 100644 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ b/app/src/main/res/values-ru-rRU/strings.xml @@ -35,6 +35,10 @@ Iconify Набор иконок Изменить набор иконок системы + Signal Icons + Change system signal icons + WiFi Icons + Change system WiFi icons Слайдер яркости Изменить слайдер яркости Плитки панели быстрых настроек @@ -602,6 +606,9 @@ Нижнее поле Белый текст Сделать цвет белым + Use Custom Image + Use custom image for lockscreen clock. + Custom Image Picker Выбрыть Зарядка батареи Разрядка батареи diff --git a/app/src/main/res/values-sr-rSP/strings.xml b/app/src/main/res/values-sr-rSP/strings.xml index 3c3bf051c..0356ccf26 100644 --- a/app/src/main/res/values-sr-rSP/strings.xml +++ b/app/src/main/res/values-sr-rSP/strings.xml @@ -35,6 +35,10 @@ Iconify Icon Pack Change system icon pack + Signal Icons + Change system signal icons + WiFi Icons + Change system WiFi icons Brightness Bar Customize progress slider QS Panel Tiles @@ -602,6 +606,9 @@ Bottom Margin White Text Force all colors to be white + Use Custom Image + Use custom image for lockscreen clock. + Custom Image Picker Select Battery Charging Battery Discharging diff --git a/app/src/main/res/values-sv-rSE/strings.xml b/app/src/main/res/values-sv-rSE/strings.xml index 457e7ad22..9db8a8f5e 100644 --- a/app/src/main/res/values-sv-rSE/strings.xml +++ b/app/src/main/res/values-sv-rSE/strings.xml @@ -35,6 +35,10 @@ Iconify Ikon pack Ändra ikoner för systemet + Signal Icons + Change system signal icons + WiFi Icons + Change system WiFi icons Brightness Bar Customize progress slider QS Panel Tiles @@ -602,6 +606,9 @@ Bottom Margin White Text Force all colors to be white + Use Custom Image + Use custom image for lockscreen clock. + Custom Image Picker Select Battery Charging Battery Discharging diff --git a/app/src/main/res/values-tr-rTR/strings.xml b/app/src/main/res/values-tr-rTR/strings.xml index 59b92359b..aa8630dbf 100644 --- a/app/src/main/res/values-tr-rTR/strings.xml +++ b/app/src/main/res/values-tr-rTR/strings.xml @@ -35,6 +35,10 @@ Iconify Simge Paketi Sistem simge paketini özelleştir + Signal Icons + Change system signal icons + WiFi Icons + Change system WiFi icons Parlaklık Çubuğu Parlaklık kaydırıcısını özelleştir QS Panel Kutucukları @@ -602,6 +606,9 @@ Alt Kenar Boşluğu Beyaz Metin Metin renklerini beyaz olmaya zorla + Use Custom Image + Use custom image for lockscreen clock. + Custom Image Picker Seç Pil şarj ediliyor Pil şarj edilmiyor diff --git a/app/src/main/res/values-uk-rUA/strings.xml b/app/src/main/res/values-uk-rUA/strings.xml index 3c3bf051c..0356ccf26 100644 --- a/app/src/main/res/values-uk-rUA/strings.xml +++ b/app/src/main/res/values-uk-rUA/strings.xml @@ -35,6 +35,10 @@ Iconify Icon Pack Change system icon pack + Signal Icons + Change system signal icons + WiFi Icons + Change system WiFi icons Brightness Bar Customize progress slider QS Panel Tiles @@ -602,6 +606,9 @@ Bottom Margin White Text Force all colors to be white + Use Custom Image + Use custom image for lockscreen clock. + Custom Image Picker Select Battery Charging Battery Discharging diff --git a/app/src/main/res/values-vi-rVN/strings.xml b/app/src/main/res/values-vi-rVN/strings.xml index 1799e05a3..2f183e184 100644 --- a/app/src/main/res/values-vi-rVN/strings.xml +++ b/app/src/main/res/values-vi-rVN/strings.xml @@ -23,7 +23,7 @@ Cần quyền lưu trữ Tôi cần quyền lưu trữ để tạo các tệp cần thiết. Không thể tìm thấy phương thức Root tương thích - Use any popular root solutions to proceed. + Dùng bất kì phương thức root phổ biến để tiếp tục. Root không truy cập được Có vẻ như thiết bị của bạn chưa được root! Cần khởi động lại thiết bị @@ -35,6 +35,10 @@ Biểu tượng hóa Gói biểu tượng Thay đổi gói biểu tượng hệ thống + Signal Icons + Change system signal icons + WiFi Icons + Change system WiFi icons Thanh độ sáng Tùy chỉnh thanh trượt tiến độ Bảng điều khiển QS @@ -602,6 +606,9 @@ Lề dưới Chữ trắng Buộc tất cả các màu thành màu trắng + Use Custom Image + Use custom image for lockscreen clock. + Custom Image Picker Select Battery Charging Battery Discharging diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index ba8cdad14..f750aa348 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -35,6 +35,10 @@ Iconify 图标包 更改系统图标包 + Signal Icons + Change system signal icons + WiFi Icons + Change system WiFi icons 亮度条 自定义进度滑块 快速设置面板图块 @@ -602,6 +606,9 @@ 底边距 白色文本 强制所有颜色为白色 + Use Custom Image + Use custom image for lockscreen clock. + Custom Image Picker 选择 电池充电 电池放电 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index e867e02ce..599293d44 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -35,6 +35,10 @@ Iconify 圖示套件 更換系統的圖示套件 + Signal Icons + Change system signal icons + WiFi Icons + Change system WiFi icons 亮度調整桿 自訂亮度調整桿 快速設定面板方塊 @@ -602,6 +606,9 @@ 下邊距 白色文本 强制所有顔色为白色 + Use Custom Image + Use custom image for lockscreen clock. + Custom Image Picker Select Battery Charging Battery Discharging From 4c74a0f10841851395f0dedcdc83eabe1bbcae6d Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Sat, 20 Jul 2024 20:32:01 +0200 Subject: [PATCH 043/369] Add Custom User Name and Custom Device Name for Lockscreen Clocks --- .../drdisagree/iconify/common/Preferences.kt | 2 + .../ui/adapters/ClockPreviewAdapter.kt | 15 +- .../iconify/ui/dialogs/EditTextDialog.kt | 89 +++++++++ .../ui/fragments/XposedLockscreenClock.kt | 47 ++++- .../iconify/ui/widgets/EditTextWidget.kt | 180 ++++++++++++++++++ .../iconify/xposed/modules/LockscreenClock.kt | 14 +- .../fragment_xposed_lockscreen_clock.xml | 14 ++ .../main/res/layout/view_edit_text_dialog.xml | 82 ++++++++ app/src/main/res/values/attrs.xml | 9 + app/src/main/res/values/strings.xml | 4 + 10 files changed, 452 insertions(+), 4 deletions(-) create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/dialogs/EditTextDialog.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/widgets/EditTextWidget.kt create mode 100644 app/src/main/res/layout/view_edit_text_dialog.xml diff --git a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt index 87d303c56..fcc2c5fdf 100644 --- a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt +++ b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt @@ -57,6 +57,8 @@ object Preferences { const val LSCLOCK_FONT_SWITCH = "xposed_lockscreenclockfont" const val LSCLOCK_FONT_LINEHEIGHT = "xposed_lockscreenclockfontlineheight" const val LSCLOCK_FONT_TEXT_SCALING = "xposed_lockscreenclocktextscaling" + const val LSCLOCK_USERNAME = "xposed_lockscreenclockcustomusername" + const val LSCLOCK_DEVICENAME = "xposed_lockscreenclockcustomdevicename" const val FIXED_STATUS_ICONS_SWITCH = "xposed_fixedstatusicons" const val FIXED_STATUS_ICONS_SIDEMARGIN = "xposed_fixedstatusiconssidemargin" const val FIXED_STATUS_ICONS_TOPMARGIN = "xposed_fixedstatusiconstopmargin" diff --git a/app/src/main/java/com/drdisagree/iconify/ui/adapters/ClockPreviewAdapter.kt b/app/src/main/java/com/drdisagree/iconify/ui/adapters/ClockPreviewAdapter.kt index ab9b82df8..56952ad56 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/adapters/ClockPreviewAdapter.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/adapters/ClockPreviewAdapter.kt @@ -31,7 +31,8 @@ class ClockPreviewAdapter( private val context: Context, private val itemList: ArrayList, prefSwitch: String?, - prefStyle: String + prefStyle: String, + private val mOnStyleSelected: OnStyleSelected? = null ) : RecyclerView.Adapter() { private val prefStyle: String @@ -78,6 +79,9 @@ class ClockPreviewAdapter( title.text = model.title button.setOnClickListener { RPrefs.putInt(prefStyle, position) + if (mOnStyleSelected != null) { + mOnStyleSelected!!.onStyleSelected(position) + } refreshLayout(this) } @@ -166,6 +170,15 @@ class ClockPreviewAdapter( } } + /** + * Interface for style selection + * @param position The position of the selected style, + * in our case is the num of the layout + */ + interface OnStyleSelected { + fun onStyleSelected(position: Int) + } + companion object { private var prefSwitch: String? = null private var wallpaperBitmap: Bitmap? = null diff --git a/app/src/main/java/com/drdisagree/iconify/ui/dialogs/EditTextDialog.kt b/app/src/main/java/com/drdisagree/iconify/ui/dialogs/EditTextDialog.kt new file mode 100644 index 000000000..bc4d57dda --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/dialogs/EditTextDialog.kt @@ -0,0 +1,89 @@ +package com.drdisagree.iconify.ui.dialogs + +import android.app.Dialog +import android.content.Context +import android.graphics.Color +import android.graphics.drawable.ColorDrawable +import android.view.LayoutInflater +import android.view.WindowManager +import com.drdisagree.iconify.databinding.ViewEditTextDialogBinding +import com.drdisagree.iconify.ui.base.BaseActivity + +class EditTextDialog ( + var context: Context, + private var dialogId: Int +) : BaseActivity() { + + var dialog: Dialog? = null + private var binding: ViewEditTextDialogBinding? = null + private var listener: EditTextDialogListener? = null + + + fun setDialogListener(listener: EditTextDialogListener?) { + this.listener = listener + } + + fun show(title: String, subTitle: String, hint: String, text: String) { + if (dialog != null) dialog!!.dismiss() + + + dialog = Dialog(context) + binding = ViewEditTextDialogBinding.inflate(LayoutInflater.from(context)) + + dialog!!.window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) + dialog!!.setCancelable(true) + dialog!!.setOnCancelListener(null) + dialog!!.setCanceledOnTouchOutside(true) + + binding!!.title.text = title + if (subTitle.isNotEmpty()) binding!!.subtitle.text = subTitle + if (hint.isNotEmpty()) binding!!.editText.hint = hint + if (text.isNotEmpty()) binding!!.editText.setText(text) + + binding!!.confirm.setOnClickListener { + listener?.onOkPressed(dialogId, binding!!.editText.text.toString()) + dialog!!.hide() + } + + binding!!.cancel.setOnClickListener { + dialog!!.hide() + } + + dialog!!.setContentView(binding!!.root) + + + dialog!!.create() + dialog!!.show() + + val layoutParams = WindowManager.LayoutParams() + layoutParams.copyFrom(dialog!!.window!!.attributes) + layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT + layoutParams.height = WindowManager.LayoutParams.WRAP_CONTENT + dialog!!.window!!.setAttributes(layoutParams) + } + + fun hide() { + if (dialog?.isShowing == true) { + dialog?.dismiss() + } + } + + fun dismiss() { + dialog?.dismiss() + } + + public override fun onDestroy() { + dismiss() + super.onDestroy() + } + + /** + * Interface for the EditTextDialog + * Implement this interface in the calling class to handle the dialog actions + * @property dialogId The ID of the dialog + * @property newText The new text entered in the EditText + */ + interface EditTextDialogListener { + fun onOkPressed(dialogId: Int, newText: String) + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenClock.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenClock.kt index ded345c0d..a4ef73160 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenClock.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenClock.kt @@ -30,23 +30,28 @@ import com.drdisagree.iconify.common.Preferences.LSCLOCK_COLOR_CODE_ACCENT3 import com.drdisagree.iconify.common.Preferences.LSCLOCK_COLOR_CODE_TEXT1 import com.drdisagree.iconify.common.Preferences.LSCLOCK_COLOR_CODE_TEXT2 import com.drdisagree.iconify.common.Preferences.LSCLOCK_COLOR_SWITCH +import com.drdisagree.iconify.common.Preferences.LSCLOCK_DEVICENAME import com.drdisagree.iconify.common.Preferences.LSCLOCK_FONT_LINEHEIGHT import com.drdisagree.iconify.common.Preferences.LSCLOCK_FONT_SWITCH import com.drdisagree.iconify.common.Preferences.LSCLOCK_FONT_TEXT_SCALING import com.drdisagree.iconify.common.Preferences.LSCLOCK_STYLE import com.drdisagree.iconify.common.Preferences.LSCLOCK_SWITCH import com.drdisagree.iconify.common.Preferences.LSCLOCK_TOPMARGIN +import com.drdisagree.iconify.common.Preferences.LSCLOCK_USERNAME import com.drdisagree.iconify.common.Resources.LOCKSCREEN_CLOCK_LAYOUT import com.drdisagree.iconify.common.Resources.LSCLOCK_FONT_DIR import com.drdisagree.iconify.config.RPrefs.clearPref import com.drdisagree.iconify.config.RPrefs.clearPrefs import com.drdisagree.iconify.config.RPrefs.getBoolean import com.drdisagree.iconify.config.RPrefs.getInt +import com.drdisagree.iconify.config.RPrefs.getString import com.drdisagree.iconify.config.RPrefs.putBoolean import com.drdisagree.iconify.config.RPrefs.putInt +import com.drdisagree.iconify.config.RPrefs.putString import com.drdisagree.iconify.databinding.FragmentXposedLockscreenClockBinding import com.drdisagree.iconify.ui.adapters.ClockPreviewAdapter import com.drdisagree.iconify.ui.base.BaseFragment +import com.drdisagree.iconify.ui.dialogs.EditTextDialog import com.drdisagree.iconify.ui.models.ClockModel import com.drdisagree.iconify.ui.utils.CarouselLayoutManager import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader @@ -60,6 +65,8 @@ class XposedLockscreenClock : BaseFragment() { private lateinit var binding: FragmentXposedLockscreenClockBinding private var totalClocks: Int = 1 + private var userText: String = "" + private var deviceText: String = "" private var startActivityIntent = registerForActivityResult( ActivityResultContracts.StartActivityForResult() @@ -343,6 +350,28 @@ class XposedLockscreenClock : BaseFragment() { } }) + showMoreLsSettings() + + userText = getString(LSCLOCK_USERNAME, "").toString() + binding.lsclockCustomUsername.setEditTextText(userText) + binding.lsclockCustomUsername.setOnEditTextListener(object : EditTextDialog.EditTextDialogListener { + override fun onOkPressed(dialogId: Int, newText: String) { + putString(LSCLOCK_USERNAME, newText) + userText = newText + binding.lsclockCustomUsername.setEditTextText(userText) + } + }) + + deviceText = getString(LSCLOCK_DEVICENAME, "").toString() + binding.lsclockCustomDevicename.setEditTextText(deviceText) + binding.lsclockCustomDevicename.setOnEditTextListener(object : EditTextDialog.EditTextDialogListener { + override fun onOkPressed(dialogId: Int, newText: String) { + putString(LSCLOCK_DEVICENAME, newText) + deviceText = newText + binding.lsclockCustomDevicename.setEditTextText(deviceText) + } + }) + return view } @@ -387,10 +416,17 @@ class XposedLockscreenClock : BaseFragment() { requireContext(), lsClock, LSCLOCK_SWITCH, - LSCLOCK_STYLE + LSCLOCK_STYLE, + onStyleSelected ) } + private val onStyleSelected = object : ClockPreviewAdapter.OnStyleSelected { + override fun onStyleSelected(position: Int) { + showMoreLsSettings() + } + } + private fun updateEnabled(enabled: Boolean) { binding.lockscreenClockFont.setEnabled(enabled) binding.lsClockCustomColor.setEnabled(enabled) @@ -404,4 +440,13 @@ class XposedLockscreenClock : BaseFragment() { binding.lsclockTopMargin.setEnabled(enabled) binding.lsclockBottomMargin.setEnabled(enabled) } + + private fun showMoreLsSettings() { + // More settings + val lsStyle = getInt(LSCLOCK_STYLE, 0) + val username = lsStyle == 7 + val devicename = lsStyle == 19 + binding.lsclockCustomUsername.visibility = if (username) View.VISIBLE else View.GONE + binding.lsclockCustomDevicename.visibility = if (devicename) View.VISIBLE else View.GONE + } } \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/widgets/EditTextWidget.kt b/app/src/main/java/com/drdisagree/iconify/ui/widgets/EditTextWidget.kt new file mode 100644 index 000000000..e6d85beb6 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/widgets/EditTextWidget.kt @@ -0,0 +1,180 @@ +package com.drdisagree.iconify.ui.widgets + +import android.content.Context +import android.content.res.ColorStateList +import android.graphics.Color +import android.graphics.drawable.Drawable +import android.text.TextUtils +import android.util.AttributeSet +import android.util.TypedValue +import android.view.View +import android.widget.ImageView +import android.widget.RelativeLayout +import android.widget.TextView +import com.drdisagree.iconify.R +import com.drdisagree.iconify.ui.dialogs.EditTextDialog +import com.drdisagree.iconify.utils.SystemUtil + +class EditTextWidget : RelativeLayout { + + private lateinit var container: RelativeLayout + private lateinit var titleTextView: TextView + private lateinit var summaryTextView: TextView + private lateinit var iconImageView: ImageView + private lateinit var dialogTitle: String + private lateinit var dialogSubtitle: String + private lateinit var dialogHint: String + private lateinit var dialogText: String + private lateinit var mEditTextDialog: EditTextDialog + + constructor(context: Context) : super(context) { + init(context, null) + } + + constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) { + init(context, attrs) + } + + constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super( + context, + attrs, + defStyleAttr + ) { + init(context, attrs) + } + + private fun init(context: Context, attrs: AttributeSet?) { + inflate(context, R.layout.view_widget_bottomsheet, this) + + initializeId() + + val typedArray = context.obtainStyledAttributes(attrs, R.styleable.EditTextWidget) + dialogTitle = typedArray.getString(R.styleable.EditTextWidget_dialogTitleText).toString() + if (TextUtils.isEmpty(dialogTitle) || dialogTitle == "null") dialogTitle = typedArray.getString(R.styleable.EditTextWidget_titleText).toString(); + dialogSubtitle = typedArray.getString(R.styleable.EditTextWidget_dialogSubtitleText).toString() + if (dialogSubtitle.isEmpty() || dialogSubtitle == "null") dialogSubtitle = typedArray.getString(R.styleable.EditTextWidget_summaryText).toString(); + dialogHint = typedArray.getString(R.styleable.EditTextWidget_dialogHintText).toString() + dialogText = typedArray.getString(R.styleable.EditTextWidget_dialogText).toString() + + setTitle(typedArray.getString(R.styleable.EditTextWidget_titleText)) + setSummary(typedArray.getString(R.styleable.EditTextWidget_summaryText)) + + val icon = typedArray.getResourceId(R.styleable.BottomSheetWidget_icon, 0) + var iconSpaceReserved = + typedArray.getBoolean(R.styleable.BottomSheetWidget_iconSpaceReserved, false) + + typedArray.recycle() + + if (icon != 0) { + iconSpaceReserved = true + iconImageView.setImageResource(icon) + } + + if (!iconSpaceReserved) { + iconImageView.visibility = View.GONE + } + + container.setOnClickListener { mEditTextDialog.show(dialogTitle, dialogSubtitle, dialogHint, dialogText) } + } + + fun setTitle(titleResId: Int) { + titleTextView.setText(titleResId) + } + + fun setTitle(title: String?) { + titleTextView.text = title + } + + fun setSummary(summary: String?) { + summaryTextView.text = summary + } + + /** + * Set the text for the EditText in the dialog + * @param text The text to be displayed in the EditText + */ + fun setEditTextText(text: String) { + dialogText = text + } + + /** + * Set the hint for the EditText in the dialog + * @param hint The hint to be displayed in the EditText + */ + fun setEditTextHint(hint: String) { + dialogHint = hint + } + + fun setIcon(icon: Int) { + iconImageView.setImageResource(icon) + iconImageView.visibility = View.VISIBLE + } + + fun setIcon(drawable: Drawable?) { + iconImageView.setImageDrawable(drawable) + iconImageView.visibility = View.VISIBLE + } + + fun setIconVisibility(visibility: Int) { + iconImageView.visibility = visibility + } + + override fun setEnabled(enabled: Boolean) { + super.setEnabled(enabled) + + if (enabled) { + val typedValue = TypedValue() + val a = context.obtainStyledAttributes( + typedValue.data, intArrayOf(com.google.android.material.R.attr.colorPrimary) + ) + val color = a.getColor(0, 0) + a.recycle() + + iconImageView.imageTintList = ColorStateList.valueOf(color) + } else { + if (SystemUtil.isDarkMode) { + iconImageView.imageTintList = ColorStateList.valueOf(Color.DKGRAY) + } else { + iconImageView.imageTintList = ColorStateList.valueOf(Color.LTGRAY) + } + } + + container.isEnabled = enabled + titleTextView.isEnabled = enabled + summaryTextView.isEnabled = enabled + iconImageView.isEnabled = enabled + } + + // to avoid listener bug, we need to re-generate unique id for each view + private fun initializeId() { + container = findViewById(R.id.container) + titleTextView = findViewById(R.id.title) + summaryTextView = findViewById(R.id.summary) + iconImageView = findViewById(R.id.icon) + container.setId(generateViewId()) + titleTextView.setId(generateViewId()) + summaryTextView.setId(generateViewId()) + iconImageView.setId(generateViewId()) + + mEditTextDialog = EditTextDialog(context, container.id) + + val layoutParams = findViewById(R.id.text_container).layoutParams as LayoutParams + layoutParams.addRule(END_OF, iconImageView.id) + findViewById(R.id.text_container).setLayoutParams(layoutParams) + } + + override fun onDetachedFromWindow() { + mEditTextDialog.dismiss() + super.onDetachedFromWindow() + } + + /** + * Set the listener for the EditTextDialog + * @param listener The listener to be set + * @see EditTextDialog.EditTextDialogListener + */ + fun setOnEditTextListener(listener: EditTextDialog.EditTextDialogListener?) { + mEditTextDialog.setDialogListener(listener) + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenClock.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenClock.kt index 72582cf71..cbf4cea74 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenClock.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenClock.kt @@ -47,12 +47,14 @@ import com.drdisagree.iconify.common.Preferences.LSCLOCK_COLOR_CODE_ACCENT3 import com.drdisagree.iconify.common.Preferences.LSCLOCK_COLOR_CODE_TEXT1 import com.drdisagree.iconify.common.Preferences.LSCLOCK_COLOR_CODE_TEXT2 import com.drdisagree.iconify.common.Preferences.LSCLOCK_COLOR_SWITCH +import com.drdisagree.iconify.common.Preferences.LSCLOCK_DEVICENAME import com.drdisagree.iconify.common.Preferences.LSCLOCK_FONT_LINEHEIGHT import com.drdisagree.iconify.common.Preferences.LSCLOCK_FONT_SWITCH import com.drdisagree.iconify.common.Preferences.LSCLOCK_FONT_TEXT_SCALING import com.drdisagree.iconify.common.Preferences.LSCLOCK_STYLE import com.drdisagree.iconify.common.Preferences.LSCLOCK_SWITCH import com.drdisagree.iconify.common.Preferences.LSCLOCK_TOPMARGIN +import com.drdisagree.iconify.common.Preferences.LSCLOCK_USERNAME import com.drdisagree.iconify.common.Resources.LOCKSCREEN_CLOCK_LAYOUT import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.utils.TextUtil @@ -135,6 +137,8 @@ class LockscreenClock(context: Context?) : ModPack(context!!) { key[0] == LSCLOCK_FONT_LINEHEIGHT || key[0] == LSCLOCK_FONT_SWITCH || key[0] == LSCLOCK_FONT_TEXT_SCALING || + key[0] == LSCLOCK_USERNAME || + key[0] == LSCLOCK_DEVICENAME || key[0] == DEPTH_WALLPAPER_FADE_ANIMATION) ) { updateClockView() @@ -405,6 +409,9 @@ class LockscreenClock(context: Context?) : ModPack(context!!) { val lineHeight: Int = Xprefs!!.getInt(LSCLOCK_FONT_LINEHEIGHT, 0) val customFontEnabled: Boolean = Xprefs!!.getBoolean(LSCLOCK_FONT_SWITCH, false) val customColorEnabled: Boolean = Xprefs!!.getBoolean(LSCLOCK_COLOR_SWITCH, false) + val customUserName: String = Xprefs!!.getString(LSCLOCK_USERNAME, "").toString() + val customDeviceName: String = Xprefs!!.getString(LSCLOCK_DEVICENAME, "").toString() + val accent1: Int = Xprefs!!.getInt( LSCLOCK_COLOR_CODE_ACCENT1, mContext.resources.getColor( @@ -485,7 +492,8 @@ class LockscreenClock(context: Context?) : ModPack(context!!) { 7 -> { val usernameView = clockView.findViewContainsTag("summary") as TextView? - usernameView?.text = userName + usernameView?.text = if (customUserName.isNotEmpty()) customUserName + else userName val imageView = clockView.findViewContainsTag("user_profile_image") as ImageView? userImage?.let { imageView?.setImageDrawable(it) } } @@ -497,7 +505,9 @@ class LockscreenClock(context: Context?) : ModPack(context!!) { mVolumeLevelArcProgress = clockView.findViewContainsTag("volume_progress") as ImageView? mRamUsageArcProgress = clockView.findViewContainsTag("ram_usage_info") as ImageView? - (clockView.findViewContainsTag("device_name") as TextView).text = Build.MODEL + val devName = clockView.findViewContainsTag("device_name") as TextView? + devName!!.text = if (customDeviceName.isNotEmpty()) customDeviceName + else Build.MODEL } 22 -> { diff --git a/app/src/main/res/layout/fragment_xposed_lockscreen_clock.xml b/app/src/main/res/layout/fragment_xposed_lockscreen_clock.xml index 5c78d308b..61669aaef 100644 --- a/app/src/main/res/layout/fragment_xposed_lockscreen_clock.xml +++ b/app/src/main/res/layout/fragment_xposed_lockscreen_clock.xml @@ -185,6 +185,20 @@ app:titleText="@string/lockscreen_clock_bottom_margin_title" app:valueFormat="dp" /> + + + + diff --git a/app/src/main/res/layout/view_edit_text_dialog.xml b/app/src/main/res/layout/view_edit_text_dialog.xml new file mode 100644 index 000000000..ca71dc350 --- /dev/null +++ b/app/src/main/res/layout/view_edit_text_dialog.xml @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml index b12dde067..6c88ddd78 100644 --- a/app/src/main/res/values/attrs.xml +++ b/app/src/main/res/values/attrs.xml @@ -93,4 +93,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 901319fcb..1b4375130 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -649,6 +649,10 @@ Use Custom Image Use custom image for lockscreen clock. Custom Image Picker + Custom Device Name + Set custom device name for lockscreen clock.\nKeep blank to use System\'s Device Name. + Custom User Name + Set custom user name for lockscreen clock.\nKeep blank to use System\'s User Name. Select Battery Charging Battery Discharging From 8b9a9c512a828b525f92c0f01323149281b25828 Mon Sep 17 00:00:00 2001 From: Crowdin Bot Date: Sun, 28 Jul 2024 00:15:26 +0000 Subject: [PATCH 044/369] New Crowdin translations by GitHub Action --- app/src/main/res/values-af-rZA/strings.xml | 1 + app/src/main/res/values-ar-rSA/strings.xml | 15 +++++---- app/src/main/res/values-ca-rES/strings.xml | 1 + app/src/main/res/values-cs-rCZ/strings.xml | 1 + app/src/main/res/values-da-rDK/strings.xml | 1 + app/src/main/res/values-de-rDE/strings.xml | 1 + app/src/main/res/values-el-rGR/strings.xml | 1 + app/src/main/res/values-es-rES/strings.xml | 1 + app/src/main/res/values-fa-rIR/strings.xml | 1 + app/src/main/res/values-fi-rFI/strings.xml | 1 + app/src/main/res/values-fr-rFR/strings.xml | 1 + app/src/main/res/values-hu-rHU/strings.xml | 1 + app/src/main/res/values-in-rID/strings.xml | 39 +++++++++++----------- app/src/main/res/values-it-rIT/strings.xml | 1 + app/src/main/res/values-ja-rJP/strings.xml | 1 + app/src/main/res/values-ko-rKR/strings.xml | 1 + app/src/main/res/values-nl-rNL/strings.xml | 1 + app/src/main/res/values-no-rNO/strings.xml | 1 + app/src/main/res/values-pl-rPL/strings.xml | 1 + app/src/main/res/values-pt-rBR/strings.xml | 1 + app/src/main/res/values-pt-rPT/strings.xml | 1 + app/src/main/res/values-ro-rRO/strings.xml | 1 + app/src/main/res/values-ru-rRU/strings.xml | 1 + app/src/main/res/values-sr-rSP/strings.xml | 1 + app/src/main/res/values-sv-rSE/strings.xml | 1 + app/src/main/res/values-tr-rTR/strings.xml | 15 +++++---- app/src/main/res/values-uk-rUA/strings.xml | 1 + app/src/main/res/values-vi-rVN/strings.xml | 1 + app/src/main/res/values-zh-rCN/strings.xml | 1 + app/src/main/res/values-zh-rTW/strings.xml | 1 + 30 files changed, 63 insertions(+), 33 deletions(-) diff --git a/app/src/main/res/values-af-rZA/strings.xml b/app/src/main/res/values-af-rZA/strings.xml index 0356ccf26..80bcc3fbc 100644 --- a/app/src/main/res/values-af-rZA/strings.xml +++ b/app/src/main/res/values-af-rZA/strings.xml @@ -654,6 +654,7 @@ Hide carrier group from QS panel Hide Status Icons Remove time, date and battery icons + Statusbar Clock Size Lock Screen Hide LS Carrier Hide carrier name on lockscreen diff --git a/app/src/main/res/values-ar-rSA/strings.xml b/app/src/main/res/values-ar-rSA/strings.xml index 63bba6f16..a8cbc5551 100644 --- a/app/src/main/res/values-ar-rSA/strings.xml +++ b/app/src/main/res/values-ar-rSA/strings.xml @@ -35,10 +35,10 @@ Iconify حزمة الأيقونات تغيير حزمة ايقونات النظام - Signal Icons - Change system signal icons - WiFi Icons - Change system WiFi icons + أيقونات الإشارة + تغيير أيقونات إشارة النظام + أيقونات WiFi + تغيير أيقونات WiFi النظام شريط السطوع تخصيص شريط التقدم QS بلاط لوحة @@ -606,9 +606,9 @@ الهامش السفليn نص أبيض إجبار كل الألوان على أن تكون بيضاء - Use Custom Image - Use custom image for lockscreen clock. - Custom Image Picker + استخدام صورة مخصصة + استخدم صورة مخصصة لساعة قفل الشاشة. + منتقي صورة مخصص اختر شحن البطارية تفريغ البطارية @@ -654,6 +654,7 @@ إخفاء عنوان شركة الإتصال من لوحة QS إخفاء أيقونات الحالة قم بإزالة أيقونات الوقت والتاريخ والبطارية + حجم ساعة شريط الحالة شاشة القفل إخفاء LS Carrier إخفاء اسم الناقل على شاشة القفل diff --git a/app/src/main/res/values-ca-rES/strings.xml b/app/src/main/res/values-ca-rES/strings.xml index 0356ccf26..80bcc3fbc 100644 --- a/app/src/main/res/values-ca-rES/strings.xml +++ b/app/src/main/res/values-ca-rES/strings.xml @@ -654,6 +654,7 @@ Hide carrier group from QS panel Hide Status Icons Remove time, date and battery icons + Statusbar Clock Size Lock Screen Hide LS Carrier Hide carrier name on lockscreen diff --git a/app/src/main/res/values-cs-rCZ/strings.xml b/app/src/main/res/values-cs-rCZ/strings.xml index cf6d22119..a52bf2aed 100644 --- a/app/src/main/res/values-cs-rCZ/strings.xml +++ b/app/src/main/res/values-cs-rCZ/strings.xml @@ -654,6 +654,7 @@ Hide carrier group from QS panel Hide Status Icons Remove time, date and battery icons + Statusbar Clock Size Lock Screen Hide LS Carrier Hide carrier name on lockscreen diff --git a/app/src/main/res/values-da-rDK/strings.xml b/app/src/main/res/values-da-rDK/strings.xml index 0356ccf26..80bcc3fbc 100644 --- a/app/src/main/res/values-da-rDK/strings.xml +++ b/app/src/main/res/values-da-rDK/strings.xml @@ -654,6 +654,7 @@ Hide carrier group from QS panel Hide Status Icons Remove time, date and battery icons + Statusbar Clock Size Lock Screen Hide LS Carrier Hide carrier name on lockscreen diff --git a/app/src/main/res/values-de-rDE/strings.xml b/app/src/main/res/values-de-rDE/strings.xml index 19ae5e85f..dfed9b7c3 100644 --- a/app/src/main/res/values-de-rDE/strings.xml +++ b/app/src/main/res/values-de-rDE/strings.xml @@ -655,6 +655,7 @@ transparent machen Mobilfunkanbieter vom QS-Panel verbergen Statussymbole verbergen Zeit, Datum und Batteriesymbole verbergen + Statusbar Clock Size Sperrbildschirm Verstecke Netzanbieter Netzanbieter auf Sperrbildschirm verbergen diff --git a/app/src/main/res/values-el-rGR/strings.xml b/app/src/main/res/values-el-rGR/strings.xml index ae218b9f3..01b7cbae0 100644 --- a/app/src/main/res/values-el-rGR/strings.xml +++ b/app/src/main/res/values-el-rGR/strings.xml @@ -654,6 +654,7 @@ Hide carrier group from QS panel Hide Status Icons Remove time, date and battery icons + Statusbar Clock Size Lock Screen Hide LS Carrier Hide carrier name on lockscreen diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index 28b52aec7..91ed07c5e 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -654,6 +654,7 @@ Ocultar el grupo del operador del panel de Ajustes Rápidos Ocultar iconos de estado Quitar la hora, la fecha y los iconos de la batería + Statusbar Clock Size Pantalla de bloqueo Ocultar Transportista en Pantalla de Bloqueo Ocultar el nombre del transportista en la pantalla de bloqueo diff --git a/app/src/main/res/values-fa-rIR/strings.xml b/app/src/main/res/values-fa-rIR/strings.xml index a0ed9b56e..7f81cd56a 100644 --- a/app/src/main/res/values-fa-rIR/strings.xml +++ b/app/src/main/res/values-fa-rIR/strings.xml @@ -654,6 +654,7 @@ مخفی کردن اپراتور از نوارابزار مخفی کردن آیکون‌های نوار اعلان مخفی کردن آیکون ساعت و تارخ و باتری + Statusbar Clock Size Lock Screen Hide LS Carrier Hide carrier name on lockscreen diff --git a/app/src/main/res/values-fi-rFI/strings.xml b/app/src/main/res/values-fi-rFI/strings.xml index 0356ccf26..80bcc3fbc 100644 --- a/app/src/main/res/values-fi-rFI/strings.xml +++ b/app/src/main/res/values-fi-rFI/strings.xml @@ -654,6 +654,7 @@ Hide carrier group from QS panel Hide Status Icons Remove time, date and battery icons + Statusbar Clock Size Lock Screen Hide LS Carrier Hide carrier name on lockscreen diff --git a/app/src/main/res/values-fr-rFR/strings.xml b/app/src/main/res/values-fr-rFR/strings.xml index b1632aae5..2c1bcf9b7 100644 --- a/app/src/main/res/values-fr-rFR/strings.xml +++ b/app/src/main/res/values-fr-rFR/strings.xml @@ -654,6 +654,7 @@ Hide carrier group from QS panel Hide Status Icons Remove time, date and battery icons + Statusbar Clock Size Lock Screen Hide LS Carrier Hide carrier name on lockscreen diff --git a/app/src/main/res/values-hu-rHU/strings.xml b/app/src/main/res/values-hu-rHU/strings.xml index a60451836..3eb2852a5 100644 --- a/app/src/main/res/values-hu-rHU/strings.xml +++ b/app/src/main/res/values-hu-rHU/strings.xml @@ -654,6 +654,7 @@ A Gyorsbeállításokban nem látszik a szolgáltató Az Állapotikonok elrejtése Az Idő, a Dátum és az Akkujelzés sem látható + Statusbar Clock Size Záróképernyő Nincs Szolgáltató a képernyőzáron A záróképernyőről eltűnik a Szolgáltató neve diff --git a/app/src/main/res/values-in-rID/strings.xml b/app/src/main/res/values-in-rID/strings.xml index e3b9c0359..325b6fc54 100644 --- a/app/src/main/res/values-in-rID/strings.xml +++ b/app/src/main/res/values-in-rID/strings.xml @@ -2,9 +2,9 @@ Kustomisasi UI Android yang Membosankan - Initializing setup - Step - Step %1$d/%2$d + Memulai setup + Langkah + Langkah %1$d/%2$d Membuat modul shell Mengekstrak file yang diperlukan Membuat APK overlay @@ -12,18 +12,18 @@ Tanda tangan APK overlay Membersihkan direktori Bosan dengan Stock UI? - Let\'s customize everything to our likings. - Ditch the stock UI monotony – personalize every tech detail to match your style and preferences. + Ayo kita oprek segalanya sesuai keinginan kita. + Tinggalkan UI stock monoton — personalisasikan sesuai selera anda. Apakah Perangkat Saya Didukung? - Iconify supports all Pixel and AOSP ROMs. - Compatible with all Pixel and AOSP-based ROMs, ensuring broad support for Android devices. + Iconify support semua ROM berbasis Pixel dan AOSP. + Compatible dengan semua ROM berbasis Pixel dan AOSP, memastikan dukungan yang luas untuk perangkat Android. BIsa Kita Mulai Sekarang? - It is time for iconify to do some internal work. - Starting internal tasks, marking the initiation of essential work. Ready to begin? + Waktunya Iconify nyiapin. + Mulai persiapan, gasken? Perlu Izin Penyimpanan Izin penyimpanan diperlukan untuk membuat file yang diperlukan. - Could Not Find Compatible Root Method - Use any popular root solutions to proceed. + Yah, gak nemu metode root yang kompatibel + Pake solusi root popular apapun (contohnya Magisk). Root Tidak Dapat Diakses Sepertinya perangkat Anda belum di-root! Perlu Reboot Perangkat @@ -35,19 +35,19 @@ Iconify Icon Pack Mengubah sistem ikon pack - Signal Icons - Change system signal icons - WiFi Icons - Change system WiFi icons - Brightness Bar + Ikon Sinyal + Mengubah ikon sinyal sistem + Ikon WiFi + Mengubah ikon WiFi sistem + Mengubah progress slider - QS Panel Tiles + Ubin Panel Setelan Cepat Mengubah QS panel tiles Notifikasi Mengubah gaya notifikasi - Progress Bar + Bilah Kemajuan Mengubah gaya progress bar - Switch + Tombol ganti Mengubah tampilan switch Toast Frame Mengubah gaya notifikasi toast @@ -654,6 +654,7 @@ Sembunyikan carrier group dari QS panel Sembunyikan Ikon Status Hapus ikon waktu, tanggal, dan baterai + Statusbar Clock Size Lock Screen Sembunyikan Carrier LS Sembunyikan nama carrier di layar kunci diff --git a/app/src/main/res/values-it-rIT/strings.xml b/app/src/main/res/values-it-rIT/strings.xml index ad6aedc82..d73b84ee6 100644 --- a/app/src/main/res/values-it-rIT/strings.xml +++ b/app/src/main/res/values-it-rIT/strings.xml @@ -654,6 +654,7 @@ Nascondi gruppo operatore dal pannello QS Nascondi Icone Di Stato Rimuovi le icone di ora, data e batteria + Statusbar Clock Size Schermata di Blocco Nascondi Operatore LS Nascondi nome operatore nella schermata di blocco diff --git a/app/src/main/res/values-ja-rJP/strings.xml b/app/src/main/res/values-ja-rJP/strings.xml index 2d784e759..a539ea81f 100644 --- a/app/src/main/res/values-ja-rJP/strings.xml +++ b/app/src/main/res/values-ja-rJP/strings.xml @@ -654,6 +654,7 @@ クイック設定パネルからキャリア名を非表示にします ステータス アイコンを非表示 時間、日付、バッテリーアイコンを削除します + Statusbar Clock Size ロック画面 ロック画面のキャリアを非表示 ロック画面のキャリア名を非表示にします diff --git a/app/src/main/res/values-ko-rKR/strings.xml b/app/src/main/res/values-ko-rKR/strings.xml index 8767d6197..4d21ff0cc 100644 --- a/app/src/main/res/values-ko-rKR/strings.xml +++ b/app/src/main/res/values-ko-rKR/strings.xml @@ -654,6 +654,7 @@ Hide carrier group from QS panel Hide Status Icons Remove time, date and battery icons + Statusbar Clock Size Lock Screen Hide LS Carrier Hide carrier name on lockscreen diff --git a/app/src/main/res/values-nl-rNL/strings.xml b/app/src/main/res/values-nl-rNL/strings.xml index 0356ccf26..80bcc3fbc 100644 --- a/app/src/main/res/values-nl-rNL/strings.xml +++ b/app/src/main/res/values-nl-rNL/strings.xml @@ -654,6 +654,7 @@ Hide carrier group from QS panel Hide Status Icons Remove time, date and battery icons + Statusbar Clock Size Lock Screen Hide LS Carrier Hide carrier name on lockscreen diff --git a/app/src/main/res/values-no-rNO/strings.xml b/app/src/main/res/values-no-rNO/strings.xml index 0356ccf26..80bcc3fbc 100644 --- a/app/src/main/res/values-no-rNO/strings.xml +++ b/app/src/main/res/values-no-rNO/strings.xml @@ -654,6 +654,7 @@ Hide carrier group from QS panel Hide Status Icons Remove time, date and battery icons + Statusbar Clock Size Lock Screen Hide LS Carrier Hide carrier name on lockscreen diff --git a/app/src/main/res/values-pl-rPL/strings.xml b/app/src/main/res/values-pl-rPL/strings.xml index b3127ffa6..b67847330 100644 --- a/app/src/main/res/values-pl-rPL/strings.xml +++ b/app/src/main/res/values-pl-rPL/strings.xml @@ -654,6 +654,7 @@ Ukryj nazwę operatora w szybkich ustawieniach Ukryj ikony stanu Ukryj ikony stanu takie jak Wi-Fi, bateria oraz pozostałe + Statusbar Clock Size Ekran blokady Ukryj nazwę operatora Ukryj nazwę operatora na ekranie blokady diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 38b486b8d..ff6644563 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -654,6 +654,7 @@ Oculte grupos de operadoras do painel QS Ocultar ícones de status Remova ícones de hora, data e bateria + Tamanho do relógio da barra de status Tela de bloqueio Ocultar operadora na tela de bloqueio Oculte o nome da operadora na tela de bloqueio diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index c2a2873d2..9f4acfd04 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -654,6 +654,7 @@ Ocultar nome do operador no painel das DR Escoder os ícones de estado Remove o relógio, a data e a bateria + Statusbar Clock Size Lock Screen Esconder operadora no modo claro Esconder operadora no ecrã de bloqueio diff --git a/app/src/main/res/values-ro-rRO/strings.xml b/app/src/main/res/values-ro-rRO/strings.xml index 0356ccf26..80bcc3fbc 100644 --- a/app/src/main/res/values-ro-rRO/strings.xml +++ b/app/src/main/res/values-ro-rRO/strings.xml @@ -654,6 +654,7 @@ Hide carrier group from QS panel Hide Status Icons Remove time, date and battery icons + Statusbar Clock Size Lock Screen Hide LS Carrier Hide carrier name on lockscreen diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml index ae2175a8d..2aecbabec 100644 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ b/app/src/main/res/values-ru-rRU/strings.xml @@ -654,6 +654,7 @@ Скрыть группу Сим-карт в панели быстрых настроек Скрыть иконки строки состояния Скрыть значки времени, даты и батареи + Statusbar Clock Size Экран блокировки Скрыть оператора Скрывает оператора на экране блокировки diff --git a/app/src/main/res/values-sr-rSP/strings.xml b/app/src/main/res/values-sr-rSP/strings.xml index 0356ccf26..80bcc3fbc 100644 --- a/app/src/main/res/values-sr-rSP/strings.xml +++ b/app/src/main/res/values-sr-rSP/strings.xml @@ -654,6 +654,7 @@ Hide carrier group from QS panel Hide Status Icons Remove time, date and battery icons + Statusbar Clock Size Lock Screen Hide LS Carrier Hide carrier name on lockscreen diff --git a/app/src/main/res/values-sv-rSE/strings.xml b/app/src/main/res/values-sv-rSE/strings.xml index 9db8a8f5e..a14c4d4dd 100644 --- a/app/src/main/res/values-sv-rSE/strings.xml +++ b/app/src/main/res/values-sv-rSE/strings.xml @@ -654,6 +654,7 @@ Hide carrier group from QS panel Hide Status Icons Remove time, date and battery icons + Statusbar Clock Size Lock Screen Hide LS Carrier Hide carrier name on lockscreen diff --git a/app/src/main/res/values-tr-rTR/strings.xml b/app/src/main/res/values-tr-rTR/strings.xml index aa8630dbf..89def1833 100644 --- a/app/src/main/res/values-tr-rTR/strings.xml +++ b/app/src/main/res/values-tr-rTR/strings.xml @@ -35,10 +35,10 @@ Iconify Simge Paketi Sistem simge paketini özelleştir - Signal Icons - Change system signal icons - WiFi Icons - Change system WiFi icons + Sinyal Simgesi + Sistem sinyal simgelerini değiştir + WiFi Simgesi + Sistem WiFi simgelerini değiştir Parlaklık Çubuğu Parlaklık kaydırıcısını özelleştir QS Panel Kutucukları @@ -606,9 +606,9 @@ Alt Kenar Boşluğu Beyaz Metin Metin renklerini beyaz olmaya zorla - Use Custom Image - Use custom image for lockscreen clock. - Custom Image Picker + Özel Resim Kullan + Kilit ekranı saati için özel resim kullan. + Özel Resim Seçici Seç Pil şarj ediliyor Pil şarj edilmiyor @@ -654,6 +654,7 @@ Operatör grubunu QS panelinden gizle Durum Simgelerini Gizle Saat, tarih ve pil simgelerini kaldır + Durum Çubuğu Saat Boyutu Kilit Ekranı LS Operatörünü Gizle Kilit ekranında operatör adını gizle diff --git a/app/src/main/res/values-uk-rUA/strings.xml b/app/src/main/res/values-uk-rUA/strings.xml index 0356ccf26..80bcc3fbc 100644 --- a/app/src/main/res/values-uk-rUA/strings.xml +++ b/app/src/main/res/values-uk-rUA/strings.xml @@ -654,6 +654,7 @@ Hide carrier group from QS panel Hide Status Icons Remove time, date and battery icons + Statusbar Clock Size Lock Screen Hide LS Carrier Hide carrier name on lockscreen diff --git a/app/src/main/res/values-vi-rVN/strings.xml b/app/src/main/res/values-vi-rVN/strings.xml index 2f183e184..ecb11b338 100644 --- a/app/src/main/res/values-vi-rVN/strings.xml +++ b/app/src/main/res/values-vi-rVN/strings.xml @@ -654,6 +654,7 @@ Ẩn nhóm nhà mạng khỏi bảng QS Ẩn biểu tượng trạng thái Xóa các biểu tượng thời gian, ngày tháng và pin + Statusbar Clock Size Lock Screen Hide LS Carrier Hide carrier name on lockscreen diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index f750aa348..f5d9aa4b9 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -654,6 +654,7 @@ 从快速设置面板上隐藏运营商组 隐藏状态图标 移除时间、日期和电池图标 + Statusbar Clock Size 锁屏 隐藏锁屏运营商 在锁屏上隐藏运营商名称 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 599293d44..303f1d254 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -654,6 +654,7 @@ 從快速設定面板上隱藏運營商組 隱藏狀態圖示 移除時間、日期和電池圖示 + Statusbar Clock Size 鎖定熒幕 隱藏鎖屏運營商 在鎖屏上隱藏運營商名字 From cf69152568969c30e17e45ea933f636fa2635c9c Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Sun, 28 Jul 2024 16:37:01 +0600 Subject: [PATCH 045/369] Add horizontal margin for EditTextDialog --- .../drdisagree/iconify/ui/dialogs/EditTextDialog.kt | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/dialogs/EditTextDialog.kt b/app/src/main/java/com/drdisagree/iconify/ui/dialogs/EditTextDialog.kt index bc4d57dda..7c22e609c 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/dialogs/EditTextDialog.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/dialogs/EditTextDialog.kt @@ -26,7 +26,6 @@ class EditTextDialog ( fun show(title: String, subTitle: String, hint: String, text: String) { if (dialog != null) dialog!!.dismiss() - dialog = Dialog(context) binding = ViewEditTextDialogBinding.inflate(LayoutInflater.from(context)) @@ -50,14 +49,14 @@ class EditTextDialog ( } dialog!!.setContentView(binding!!.root) - + binding!!.root.setPadding(28.dpToPx(), 0, 28.dpToPx(), 0) dialog!!.create() dialog!!.show() val layoutParams = WindowManager.LayoutParams() layoutParams.copyFrom(dialog!!.window!!.attributes) - layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT + layoutParams.width = WindowManager.LayoutParams.WRAP_CONTENT layoutParams.height = WindowManager.LayoutParams.WRAP_CONTENT dialog!!.window!!.setAttributes(layoutParams) } @@ -86,4 +85,9 @@ class EditTextDialog ( interface EditTextDialogListener { fun onOkPressed(dialogId: Int, newText: String) } + + private fun Int.dpToPx(): Int { + val density = context.resources.displayMetrics.density + return (this * density).toInt() + } } From 5624c34248ebe9d5a4dc9a61edbb4b18b6ad79df Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Mon, 29 Jul 2024 22:43:55 +0600 Subject: [PATCH 046/369] Bump AGP & dependencies --- gradle/libs.versions.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 5103778bf..0a32f3e59 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,12 +1,12 @@ [versions] -agp = "8.5.0" +agp = "8.5.1" appcompat = "1.7.0" bcpkixJdk18on = "1.78.1" circleindicator = "2.1.6" collapsingtoolbarlayoutSubtitle = "1.5.0" colorpicker = "1.0.0" compiler = "4.16.0" -concurrentFutures = "1.1.0" +concurrentFutures = "1.2.0" constraintlayout = "2.1.4" coreKtx = "1.13.1" coreSplashscreen = "1.0.1" @@ -20,7 +20,7 @@ jsoup = "1.17.2" kapt = "2.0.0" kotlin = "2.0.0" kotlinxCoroutinesAndroid = "1.8.1" -library = "8.4.1" +library = "8.5.1" libsuVersion = "5.2.2" lottie = "6.4.1" navigationUiKtx = "2.7.7" From 70cd69d7002ef9227f6a696c2e1de8d11dc73c65 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Mon, 29 Jul 2024 22:45:01 +0600 Subject: [PATCH 047/369] Allow skipping LSPosed check for testing --- .../main/java/com/drdisagree/iconify/ui/fragments/Tweaks.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/Tweaks.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/Tweaks.kt index 38363031b..e98edf56e 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/Tweaks.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/Tweaks.kt @@ -9,6 +9,7 @@ import android.widget.Toast import androidx.navigation.Navigation.findNavController import com.drdisagree.iconify.Iconify.Companion.appContext import com.drdisagree.iconify.R +import com.drdisagree.iconify.SplashActivity.Companion.SKIP_TO_HOMEPAGE_FOR_TESTING import com.drdisagree.iconify.databinding.FragmentTweaksBinding import com.drdisagree.iconify.ui.base.BaseFragment import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader @@ -134,7 +135,7 @@ class Tweaks : BaseFragment() { arrayOf( View.OnClickListener { // Check if LSPosed is installed or not - if (!isLsposedInstalled) { + if (!isLsposedInstalled && !SKIP_TO_HOMEPAGE_FOR_TESTING) { Toast.makeText( appContext, resources.getString(R.string.toast_lsposed_not_found), From 0e954b6fb22a8f43e78028cc4fbabc551d18b677 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Mon, 29 Jul 2024 23:23:09 +0600 Subject: [PATCH 048/369] Fluid Theme: Fix footer button theming --- .../xposed/modules/themes/QSFluidThemeA14.kt | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSFluidThemeA14.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSFluidThemeA14.kt index a6383a1c8..45af0064c 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSFluidThemeA14.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSFluidThemeA14.kt @@ -804,8 +804,11 @@ class QSFluidThemeA14(context: Context?) : ModPack(context!!) { if (!fluidQsThemeEnabled || !fluidNotifEnabled) return try { - val mManageButton = - getObjectField(param.thisObject, "mManageButton") as Button + val mManageButton: Button = try { + getObjectField(param.thisObject, "mManageButton") + } catch (ignored: Throwable) { + getObjectField(param.thisObject, "mManageOrHistoryButton") + } as Button val mClearAllButton: Button = try { getObjectField(param.thisObject, "mClearAllButton") } catch (ignored: Throwable) { @@ -814,7 +817,8 @@ class QSFluidThemeA14(context: Context?) : ModPack(context!!) { mManageButton.background?.alpha = (INACTIVE_ALPHA * 255).toInt() mClearAllButton.background?.alpha = (INACTIVE_ALPHA * 255).toInt() - } catch (ignored: Throwable) { + } catch (throwable: Throwable) { + log(TAG + throwable) } } } @@ -826,9 +830,15 @@ class QSFluidThemeA14(context: Context?) : ModPack(context!!) { } catch (ignored: Throwable) { } - try { - hookAllMethods(footerViewClass, "updateColors$3", updateNotificationFooterButtons) - } catch (ignored: Throwable) { + for (i in 1..3) { + try { + hookAllMethods( + footerViewClass, + "updateColors$${i}", + updateNotificationFooterButtons + ) + } catch (ignored: Throwable) { + } } // Power menu From c6521ad6d3a3f3aad6c5089ba57855d0ee44d8a9 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Mon, 29 Jul 2024 23:44:56 +0600 Subject: [PATCH 049/369] LS Clock: Enable custom text only if clock is enabled --- .../iconify/ui/fragments/XposedLockscreenClock.kt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenClock.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenClock.kt index a4ef73160..f3af399eb 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenClock.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenClock.kt @@ -354,7 +354,8 @@ class XposedLockscreenClock : BaseFragment() { userText = getString(LSCLOCK_USERNAME, "").toString() binding.lsclockCustomUsername.setEditTextText(userText) - binding.lsclockCustomUsername.setOnEditTextListener(object : EditTextDialog.EditTextDialogListener { + binding.lsclockCustomUsername.setOnEditTextListener(object : + EditTextDialog.EditTextDialogListener { override fun onOkPressed(dialogId: Int, newText: String) { putString(LSCLOCK_USERNAME, newText) userText = newText @@ -364,7 +365,8 @@ class XposedLockscreenClock : BaseFragment() { deviceText = getString(LSCLOCK_DEVICENAME, "").toString() binding.lsclockCustomDevicename.setEditTextText(deviceText) - binding.lsclockCustomDevicename.setOnEditTextListener(object : EditTextDialog.EditTextDialogListener { + binding.lsclockCustomDevicename.setOnEditTextListener(object : + EditTextDialog.EditTextDialogListener { override fun onOkPressed(dialogId: Int, newText: String) { putString(LSCLOCK_DEVICENAME, newText) deviceText = newText @@ -439,6 +441,8 @@ class XposedLockscreenClock : BaseFragment() { binding.lsClockTextscaling.setEnabled(enabled) binding.lsclockTopMargin.setEnabled(enabled) binding.lsclockBottomMargin.setEnabled(enabled) + binding.lsclockCustomUsername.setEnabled(enabled) + binding.lsclockCustomDevicename.setEnabled(enabled) } private fun showMoreLsSettings() { From 427fbeccdcc408b83cbca115822354765add3d6f Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Mon, 29 Jul 2024 23:51:44 +0600 Subject: [PATCH 050/369] Fix edit text dialog layout margin --- .../com/drdisagree/iconify/ui/dialogs/EditTextDialog.kt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/dialogs/EditTextDialog.kt b/app/src/main/java/com/drdisagree/iconify/ui/dialogs/EditTextDialog.kt index 7c22e609c..68d50b9ce 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/dialogs/EditTextDialog.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/dialogs/EditTextDialog.kt @@ -5,11 +5,12 @@ import android.content.Context import android.graphics.Color import android.graphics.drawable.ColorDrawable import android.view.LayoutInflater +import android.view.ViewGroup import android.view.WindowManager import com.drdisagree.iconify.databinding.ViewEditTextDialogBinding import com.drdisagree.iconify.ui.base.BaseActivity -class EditTextDialog ( +class EditTextDialog( var context: Context, private var dialogId: Int ) : BaseActivity() { @@ -49,7 +50,10 @@ class EditTextDialog ( } dialog!!.setContentView(binding!!.root) - binding!!.root.setPadding(28.dpToPx(), 0, 28.dpToPx(), 0) + + val dialogParams = binding!!.root.layoutParams as ViewGroup.MarginLayoutParams + dialogParams.setMargins(28.dpToPx(), 0, 28.dpToPx(), 0) + binding!!.root.layoutParams = dialogParams dialog!!.create() dialog!!.show() From a0fd99e26f641cd503c0a8f9684709f59f3c3aae Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Tue, 30 Jul 2024 22:31:38 +0200 Subject: [PATCH 051/369] ToastFrame: check storage permission & disable on Style 0 (default) --- .../iconify/ui/fragments/ToastFrame.kt | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/ToastFrame.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/ToastFrame.kt index 323b038af..204f397d8 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/ToastFrame.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/ToastFrame.kt @@ -1,6 +1,5 @@ package com.drdisagree.iconify.ui.fragments -import android.annotation.SuppressLint import android.os.Bundle import android.os.Handler import android.os.Looper @@ -8,10 +7,7 @@ import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import android.widget.LinearLayout -import android.widget.TextView import android.widget.Toast -import androidx.core.content.ContextCompat import androidx.recyclerview.widget.GridLayoutManager import com.drdisagree.iconify.Iconify.Companion.appContext import com.drdisagree.iconify.Iconify.Companion.appContextLocale @@ -21,18 +17,15 @@ import com.drdisagree.iconify.common.Preferences.SELECTED_TOAST_FRAME import com.drdisagree.iconify.config.Prefs import com.drdisagree.iconify.config.Prefs.getInt import com.drdisagree.iconify.databinding.FragmentToastFrameBinding -import com.drdisagree.iconify.ui.adapters.IconPackAdapter import com.drdisagree.iconify.ui.adapters.ToastAdapter import com.drdisagree.iconify.ui.base.BaseFragment import com.drdisagree.iconify.ui.dialogs.LoadingDialog -import com.drdisagree.iconify.ui.models.IconPackModel import com.drdisagree.iconify.ui.models.ToastModel import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader import com.drdisagree.iconify.utils.SystemUtil.hasStoragePermission import com.drdisagree.iconify.utils.SystemUtil.requestStoragePermission import com.drdisagree.iconify.utils.overlay.OverlayUtil import com.drdisagree.iconify.utils.overlay.compiler.OnDemandCompiler.buildOverlay -import com.drdisagree.iconify.utils.overlay.manager.IconPackManager import java.io.IOException import java.util.concurrent.atomic.AtomicBoolean @@ -97,6 +90,22 @@ class ToastFrame : BaseFragment() { // Show loading dialog loadingDialog!!.show(appContextLocale.resources.getString(R.string.loading_dialog_wait)) + if (!hasStoragePermission()) { + requestStoragePermission(appContext) + return + } + + if (position == 0) { + Prefs.putInt(SELECTED_TOAST_FRAME, -1) + OverlayUtil.disableOverlay("IconifyComponentTSTFRM.overlay") + Toast.makeText( + appContext, + appContextLocale.resources.getString(R.string.toast_disabled), + Toast.LENGTH_SHORT + ).show() + return + } + Thread { val hasErroredOut = AtomicBoolean(false) From 84cdd339e1ac01a32d04b48494b3d5facc1c4958 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Tue, 30 Jul 2024 22:33:09 +0200 Subject: [PATCH 052/369] ToastFrame: check storage permission & disable on Style 0 (default) --- .../java/com/drdisagree/iconify/ui/fragments/ToastFrame.kt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/ToastFrame.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/ToastFrame.kt index 204f397d8..aad818c6b 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/ToastFrame.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/ToastFrame.kt @@ -87,8 +87,6 @@ class ToastFrame : BaseFragment() { private val onToastClick = object : ToastAdapter.OnToastClick { override fun onToastClick(position: Int, item: ToastModel) { - // Show loading dialog - loadingDialog!!.show(appContextLocale.resources.getString(R.string.loading_dialog_wait)) if (!hasStoragePermission()) { requestStoragePermission(appContext) @@ -106,6 +104,9 @@ class ToastFrame : BaseFragment() { return } + // Show loading dialog + loadingDialog!!.show(appContextLocale.resources.getString(R.string.loading_dialog_wait)) + Thread { val hasErroredOut = AtomicBoolean(false) From dca211813234c09feef59ca2c7b657e18bba999f Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Thu, 1 Aug 2024 13:00:58 +0200 Subject: [PATCH 053/369] ToastFrame: If item size is odd, last item will be centered --- .../drdisagree/iconify/ui/fragments/ToastFrame.kt | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/ToastFrame.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/ToastFrame.kt index aad818c6b..df48b9637 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/ToastFrame.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/ToastFrame.kt @@ -9,6 +9,7 @@ import android.view.View import android.view.ViewGroup import android.widget.Toast import androidx.recyclerview.widget.GridLayoutManager +import androidx.recyclerview.widget.GridLayoutManager.SpanSizeLookup import com.drdisagree.iconify.Iconify.Companion.appContext import com.drdisagree.iconify.Iconify.Companion.appContextLocale import com.drdisagree.iconify.R @@ -54,7 +55,19 @@ class ToastFrame : BaseFragment() { loadingDialog = LoadingDialog(requireContext()) // Toast Frame style - binding.toastStylesContainer.setLayoutManager(GridLayoutManager(requireContext(), 2)) + val gridLayout = GridLayoutManager(requireContext(), 2) + gridLayout.spanSizeLookup = object : SpanSizeLookup() { + override fun getSpanSize(position: Int): Int { + val lastIndex = binding.toastStylesContainer.adapter?.itemCount?.minus(1) ?: 0 + + return if (position == lastIndex && lastIndex % gridLayout.spanCount == 0) { + 2 + } else { + 1 + } + } + } + binding.toastStylesContainer.setLayoutManager(gridLayout) binding.toastStylesContainer.setAdapter(initToastFrameItems()) binding.toastStylesContainer.setHasFixedSize(true) From c757f4e4bcfac7fb77451186afe85da76c808ed0 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Thu, 1 Aug 2024 13:15:13 +0200 Subject: [PATCH 054/369] Use String format for Style name --- .../iconify/ui/adapters/ToastAdapter.kt | 2 +- .../iconify/ui/fragments/ToastFrame.kt | 24 ++++++++--------- .../ui/fragments/XposedBackgroundChip.kt | 27 ++++++++++--------- .../iconify/ui/models/ToastModel.kt | 2 +- app/src/main/res/values-af-rZA/strings.xml | 26 +----------------- app/src/main/res/values-ar-rSA/strings.xml | 26 +----------------- app/src/main/res/values-ca-rES/strings.xml | 26 +----------------- app/src/main/res/values-cs-rCZ/strings.xml | 26 +----------------- app/src/main/res/values-da-rDK/strings.xml | 26 +----------------- app/src/main/res/values-de-rDE/strings.xml | 26 +----------------- app/src/main/res/values-el-rGR/strings.xml | 26 +----------------- app/src/main/res/values-es-rES/strings.xml | 26 +----------------- app/src/main/res/values-fa-rIR/strings.xml | 26 +----------------- app/src/main/res/values-fi-rFI/strings.xml | 26 +----------------- app/src/main/res/values-fr-rFR/strings.xml | 26 +----------------- app/src/main/res/values-hu-rHU/strings.xml | 26 +----------------- app/src/main/res/values-in-rID/strings.xml | 26 +----------------- app/src/main/res/values-it-rIT/strings.xml | 26 +----------------- app/src/main/res/values-iw-rIL/strings.xml | 26 +----------------- app/src/main/res/values-ja-rJP/strings.xml | 26 +----------------- app/src/main/res/values-ko-rKR/strings.xml | 26 +----------------- app/src/main/res/values-nl-rNL/strings.xml | 26 +----------------- app/src/main/res/values-no-rNO/strings.xml | 26 +----------------- app/src/main/res/values-pl-rPL/strings.xml | 26 +----------------- app/src/main/res/values-pt-rBR/strings.xml | 26 +----------------- app/src/main/res/values-pt-rPT/strings.xml | 26 +----------------- app/src/main/res/values-ro-rRO/strings.xml | 26 +----------------- app/src/main/res/values-ru-rRU/strings.xml | 26 +----------------- app/src/main/res/values-sr-rSP/strings.xml | 26 +----------------- app/src/main/res/values-sv-rSE/strings.xml | 26 +----------------- app/src/main/res/values-tr-rTR/strings.xml | 26 +----------------- app/src/main/res/values-uk-rUA/strings.xml | 26 +----------------- app/src/main/res/values-vi-rVN/strings.xml | 26 +----------------- app/src/main/res/values-zh-rCN/strings.xml | 26 +----------------- app/src/main/res/values-zh-rTW/strings.xml | 26 +----------------- app/src/main/res/values/strings.xml | 26 +----------------- 36 files changed, 60 insertions(+), 827 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/adapters/ToastAdapter.kt b/app/src/main/java/com/drdisagree/iconify/ui/adapters/ToastAdapter.kt index 7ecd32940..4fb815bba 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/adapters/ToastAdapter.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/adapters/ToastAdapter.kt @@ -34,7 +34,7 @@ class ToastAdapter ( override fun onBindViewHolder(holder: ViewHolder, position: Int) { val model = itemList[holder.bindingAdapterPosition] - holder.binding.styleName.text = appContextLocale.resources.getString(model.title) + holder.binding.styleName.text = model.title holder.binding.toastContainer.background = ContextCompat.getDrawable(appContext, model.style) if (model.selected) { holder.binding.styleName.setTextColor( diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/ToastFrame.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/ToastFrame.kt index df48b9637..2206ea75d 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/ToastFrame.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/ToastFrame.kt @@ -77,18 +77,18 @@ class ToastFrame : BaseFragment() { private fun initToastFrameItems(): ToastAdapter { val selectedStyle = getInt(SELECTED_TOAST_FRAME, -1) val toastFrameStyle = ArrayList().apply { - add(ToastModel(R.drawable.toast_frame_style_1, R.string.style_0)) - add(ToastModel(R.drawable.toast_frame_style_1, R.string.style_1)) - add(ToastModel(R.drawable.toast_frame_style_2, R.string.style_2)) - add(ToastModel(R.drawable.toast_frame_style_3, R.string.style_3)) - add(ToastModel(R.drawable.toast_frame_style_4, R.string.style_4)) - add(ToastModel(R.drawable.toast_frame_style_5, R.string.style_5)) - add(ToastModel(R.drawable.toast_frame_style_6, R.string.style_6)) - add(ToastModel(R.drawable.toast_frame_style_7, R.string.style_7)) - add(ToastModel(R.drawable.toast_frame_style_8, R.string.style_8)) - add(ToastModel(R.drawable.toast_frame_style_9, R.string.style_9)) - add(ToastModel(R.drawable.toast_frame_style_10, R.string.style_10)) - add(ToastModel(R.drawable.toast_frame_style_11, R.string.style_11)) + add(ToastModel(R.drawable.toast_frame_style_1, appContextLocale.resources.getString(R.string.style_0))) + add(ToastModel(R.drawable.toast_frame_style_1, String.format(appContextLocale.resources.getString(R.string.style), 1))) + add(ToastModel(R.drawable.toast_frame_style_2, String.format(appContextLocale.resources.getString(R.string.style), 2))) + add(ToastModel(R.drawable.toast_frame_style_3, String.format(appContextLocale.resources.getString(R.string.style), 3))) + add(ToastModel(R.drawable.toast_frame_style_4, String.format(appContextLocale.resources.getString(R.string.style), 4))) + add(ToastModel(R.drawable.toast_frame_style_5, String.format(appContextLocale.resources.getString(R.string.style), 5))) + add(ToastModel(R.drawable.toast_frame_style_6, String.format(appContextLocale.resources.getString(R.string.style), 6))) + add(ToastModel(R.drawable.toast_frame_style_7, String.format(appContextLocale.resources.getString(R.string.style), 7))) + add(ToastModel(R.drawable.toast_frame_style_8, String.format(appContextLocale.resources.getString(R.string.style), 8))) + add(ToastModel(R.drawable.toast_frame_style_9, String.format(appContextLocale.resources.getString(R.string.style), 9))) + add(ToastModel(R.drawable.toast_frame_style_10, String.format(appContextLocale.resources.getString(R.string.style), 10))) + add(ToastModel(R.drawable.toast_frame_style_11, String.format(appContextLocale.resources.getString(R.string.style), 11))) } return ToastAdapter( diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedBackgroundChip.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedBackgroundChip.kt index 83ffa918e..f24dc02c7 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedBackgroundChip.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedBackgroundChip.kt @@ -14,6 +14,7 @@ import android.widget.LinearLayout import android.widget.TextView import androidx.core.content.ContextCompat import com.drdisagree.iconify.Iconify.Companion.appContext +import com.drdisagree.iconify.Iconify.Companion.appContextLocale import com.drdisagree.iconify.R import com.drdisagree.iconify.common.Const.SWITCH_ANIMATION_DELAY import com.drdisagree.iconify.common.Preferences.CHIP_QSSTATUSICONS_STYLE @@ -127,13 +128,13 @@ class XposedBackgroundChip : BaseFragment() { private fun initStatusBarChipStyles(): ArrayList> { val statusBarChipStyle = ArrayList>().apply { - add(arrayOf(R.drawable.chip_status_bar_1, R.string.style_1)) - add(arrayOf(R.drawable.chip_status_bar_2, R.string.style_2)) - add(arrayOf(R.drawable.chip_status_bar_3, R.string.style_3)) - add(arrayOf(R.drawable.chip_status_bar_4, R.string.style_4)) - add(arrayOf(R.drawable.chip_status_bar_5, R.string.style_5)) - add(arrayOf(R.drawable.chip_status_bar_6, R.string.style_6)) - add(arrayOf(R.drawable.chip_status_bar_7, R.string.style_7)) + add(arrayOf(R.drawable.chip_status_bar_1, String.format(appContextLocale.resources.getString(R.string.style), 1))) + add(arrayOf(R.drawable.chip_status_bar_2, String.format(appContextLocale.resources.getString(R.string.style), 2))) + add(arrayOf(R.drawable.chip_status_bar_3, String.format(appContextLocale.resources.getString(R.string.style), 3))) + add(arrayOf(R.drawable.chip_status_bar_4, String.format(appContextLocale.resources.getString(R.string.style), 4))) + add(arrayOf(R.drawable.chip_status_bar_5, String.format(appContextLocale.resources.getString(R.string.style), 5))) + add(arrayOf(R.drawable.chip_status_bar_6, String.format(appContextLocale.resources.getString(R.string.style), 6))) + add(arrayOf(R.drawable.chip_status_bar_7, String.format(appContextLocale.resources.getString(R.string.style), 7))) } return statusBarChipStyle @@ -141,12 +142,12 @@ class XposedBackgroundChip : BaseFragment() { private fun initStatusIconsChipStyles(): ArrayList> { val statusIconsChipStyle = ArrayList>().apply { - add(arrayOf(R.drawable.chip_status_icons_1, R.string.style_1)) - add(arrayOf(R.drawable.chip_status_icons_2, R.string.style_2)) - add(arrayOf(R.drawable.chip_status_icons_3, R.string.style_3)) - add(arrayOf(R.drawable.chip_status_icons_4, R.string.style_4)) - add(arrayOf(R.drawable.chip_status_icons_5, R.string.style_5)) - add(arrayOf(R.drawable.chip_status_icons_6, R.string.style_6)) + add(arrayOf(R.drawable.chip_status_icons_1, String.format(appContextLocale.resources.getString(R.string.style), 1))) + add(arrayOf(R.drawable.chip_status_icons_2, String.format(appContextLocale.resources.getString(R.string.style), 2))) + add(arrayOf(R.drawable.chip_status_icons_3, String.format(appContextLocale.resources.getString(R.string.style), 3))) + add(arrayOf(R.drawable.chip_status_icons_4, String.format(appContextLocale.resources.getString(R.string.style), 4))) + add(arrayOf(R.drawable.chip_status_icons_5, String.format(appContextLocale.resources.getString(R.string.style), 5))) + add(arrayOf(R.drawable.chip_status_icons_6, String.format(appContextLocale.resources.getString(R.string.style), 6))) } return statusIconsChipStyle diff --git a/app/src/main/java/com/drdisagree/iconify/ui/models/ToastModel.kt b/app/src/main/java/com/drdisagree/iconify/ui/models/ToastModel.kt index 71a493925..45b1669a0 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/models/ToastModel.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/models/ToastModel.kt @@ -2,6 +2,6 @@ package com.drdisagree.iconify.ui.models class ToastModel ( var style: Int, - var title: Int, + var title: String, var selected: Boolean = false ) diff --git a/app/src/main/res/values-af-rZA/strings.xml b/app/src/main/res/values-af-rZA/strings.xml index 80bcc3fbc..c6f35a7c3 100644 --- a/app/src/main/res/values-af-rZA/strings.xml +++ b/app/src/main/res/values-af-rZA/strings.xml @@ -761,31 +761,7 @@ Saved settings successfully None - Style 1 - Style 2 - Style 3 - Style 4 - Style 5 - Style 6 - Style 7 - Style 8 - Style 9 - Style 10 - Style 11 - Style 12 - Style 13 - Style 14 - Style 15 - Style 16 - Style 17 - Style 18 - Style 19 - Style 20 - Style 21 - Style 22 - Style 23 - Style 24 - Style 25 + Style %d Continue Restart diff --git a/app/src/main/res/values-ar-rSA/strings.xml b/app/src/main/res/values-ar-rSA/strings.xml index a8cbc5551..37e13e181 100644 --- a/app/src/main/res/values-ar-rSA/strings.xml +++ b/app/src/main/res/values-ar-rSA/strings.xml @@ -761,31 +761,7 @@ تم حفظ الإعدادات بنجاح لا شيء - النمط 1 - النمط 2 - النمط 3 - النمط 4 - النمط 5 - النمط 6 - النمط 7 - النمط 8 - النمط 9 - النمط 10 - النمط 11 - النمط 12 - النمط 13 - النمط 14 - النمط 15 - النمط 16 - النمط 17 - النمط 18 - النمط 19 - النمط 20 - النمط 21 - النمط 22 - النمط 23 - النمط 24 - النمط 25 + النمط %d استمر إعداة تشغيل diff --git a/app/src/main/res/values-ca-rES/strings.xml b/app/src/main/res/values-ca-rES/strings.xml index 80bcc3fbc..c6f35a7c3 100644 --- a/app/src/main/res/values-ca-rES/strings.xml +++ b/app/src/main/res/values-ca-rES/strings.xml @@ -761,31 +761,7 @@ Saved settings successfully None - Style 1 - Style 2 - Style 3 - Style 4 - Style 5 - Style 6 - Style 7 - Style 8 - Style 9 - Style 10 - Style 11 - Style 12 - Style 13 - Style 14 - Style 15 - Style 16 - Style 17 - Style 18 - Style 19 - Style 20 - Style 21 - Style 22 - Style 23 - Style 24 - Style 25 + Style %d Continue Restart diff --git a/app/src/main/res/values-cs-rCZ/strings.xml b/app/src/main/res/values-cs-rCZ/strings.xml index a52bf2aed..397e011c6 100644 --- a/app/src/main/res/values-cs-rCZ/strings.xml +++ b/app/src/main/res/values-cs-rCZ/strings.xml @@ -761,31 +761,7 @@ Saved settings successfully None - Style 1 - Style 2 - Style 3 - Style 4 - Style 5 - Style 6 - Style 7 - Style 8 - Style 9 - Style 10 - Style 11 - Style 12 - Style 13 - Style 14 - Style 15 - Style 16 - Style 17 - Style 18 - Style 19 - Style 20 - Style 21 - Style 22 - Style 23 - Style 24 - Style 25 + Style %d Continue Restart diff --git a/app/src/main/res/values-da-rDK/strings.xml b/app/src/main/res/values-da-rDK/strings.xml index 80bcc3fbc..c6f35a7c3 100644 --- a/app/src/main/res/values-da-rDK/strings.xml +++ b/app/src/main/res/values-da-rDK/strings.xml @@ -761,31 +761,7 @@ Saved settings successfully None - Style 1 - Style 2 - Style 3 - Style 4 - Style 5 - Style 6 - Style 7 - Style 8 - Style 9 - Style 10 - Style 11 - Style 12 - Style 13 - Style 14 - Style 15 - Style 16 - Style 17 - Style 18 - Style 19 - Style 20 - Style 21 - Style 22 - Style 23 - Style 24 - Style 25 + Style %d Continue Restart diff --git a/app/src/main/res/values-de-rDE/strings.xml b/app/src/main/res/values-de-rDE/strings.xml index dfed9b7c3..bdbfc9b0f 100644 --- a/app/src/main/res/values-de-rDE/strings.xml +++ b/app/src/main/res/values-de-rDE/strings.xml @@ -762,31 +762,7 @@ transparent machen Einstellungen Speichern erfolgreich Nichts - Stil 1 - Stil 2 - Stil 3 - Stil 4 - Stil 5 - Stil 6 - Stil 7 - Stil 8 - Stil 9 - Stil 10 - Stil 11 - Stil 12 - Stil 13 - Stil 14 - Stil 15 - Stil 16 - Stil 17 - Stil 18 - Stil 19 - Stil 20 - Stil 21 - Stil 22 - Stil 23 - Stil 24 - Stil 25 + Stil %d Weiter Neustart diff --git a/app/src/main/res/values-el-rGR/strings.xml b/app/src/main/res/values-el-rGR/strings.xml index 01b7cbae0..896b087ca 100644 --- a/app/src/main/res/values-el-rGR/strings.xml +++ b/app/src/main/res/values-el-rGR/strings.xml @@ -761,31 +761,7 @@ Saved settings successfully None - Style 1 - Style 2 - Style 3 - Style 4 - Style 5 - Style 6 - Style 7 - Style 8 - Style 9 - Style 10 - Style 11 - Style 12 - Style 13 - Style 14 - Style 15 - Style 16 - Style 17 - Style 18 - Style 19 - Style 20 - Style 21 - Style 22 - Style 23 - Style 24 - Style 25 + Style %d Continue Restart diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index 91ed07c5e..1e4bc4252 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -761,31 +761,7 @@ Configuración guardada con éxito Ninguno - Estilo 1 - Estilo 2 - Estilo 3 - Estilo 4 - Estilo 5 - Estilo 6 - Estilo 7 - Estilo 8 - Estilo 9 - Estilo 10 - Estilo 11 - Estilo 12 - Estilo 13 - Estilo 14 - Estilo 15 - Estilo 16 - Estilo 17 - Estilo 18 - Estilo 19 - Estilo 20 - Estilo 21 - Estilo 22 - Estilo 23 - Estilo 24 - Estilo 25 + Estilo %d CONTINUAR Reiniciar diff --git a/app/src/main/res/values-fa-rIR/strings.xml b/app/src/main/res/values-fa-rIR/strings.xml index 7f81cd56a..c06095108 100644 --- a/app/src/main/res/values-fa-rIR/strings.xml +++ b/app/src/main/res/values-fa-rIR/strings.xml @@ -761,31 +761,7 @@ پشتیبان گیری از تنظیمات با موفقیت انجام شد None - Style 1 - Style 2 - Style 3 - Style 4 - Style 5 - Style 6 - Style 7 - Style 8 - Style 9 - Style 10 - Style 11 - Style 12 - Style 13 - Style 14 - Style 15 - Style 16 - Style 17 - Style 18 - Style 19 - Style 20 - Style 21 - Style 22 - Style 23 - Style 24 - Style 25 + Style %d ادامه دادن ریستارت diff --git a/app/src/main/res/values-fi-rFI/strings.xml b/app/src/main/res/values-fi-rFI/strings.xml index 80bcc3fbc..c6f35a7c3 100644 --- a/app/src/main/res/values-fi-rFI/strings.xml +++ b/app/src/main/res/values-fi-rFI/strings.xml @@ -761,31 +761,7 @@ Saved settings successfully None - Style 1 - Style 2 - Style 3 - Style 4 - Style 5 - Style 6 - Style 7 - Style 8 - Style 9 - Style 10 - Style 11 - Style 12 - Style 13 - Style 14 - Style 15 - Style 16 - Style 17 - Style 18 - Style 19 - Style 20 - Style 21 - Style 22 - Style 23 - Style 24 - Style 25 + Style %d Continue Restart diff --git a/app/src/main/res/values-fr-rFR/strings.xml b/app/src/main/res/values-fr-rFR/strings.xml index 2c1bcf9b7..36cd43219 100644 --- a/app/src/main/res/values-fr-rFR/strings.xml +++ b/app/src/main/res/values-fr-rFR/strings.xml @@ -761,31 +761,7 @@ Saved settings successfully None - Style 1 - Style 2 - Style 3 - Style 4 - Style 5 - Style 6 - Style 7 - Style 8 - Style 9 - Style 10 - Style 11 - Style 12 - Style 13 - Style 14 - Style 15 - Style 16 - Style 17 - Style 18 - Style 19 - Style 20 - Style 21 - Style 22 - Style 23 - Style 24 - Style 25 + Style %d CONTINUER Redémarrer diff --git a/app/src/main/res/values-hu-rHU/strings.xml b/app/src/main/res/values-hu-rHU/strings.xml index 3eb2852a5..fa9014f5c 100644 --- a/app/src/main/res/values-hu-rHU/strings.xml +++ b/app/src/main/res/values-hu-rHU/strings.xml @@ -761,31 +761,7 @@ A beállítások mentése sikeres volt Nincs - 1.stílus - 2.stílus - 3.stílus - 4.stílus - 5.stílus - 6.stílus - 7.stílus - 8.stílus - 9.stílus - 10.stílus - 11.stílus - 12.stílus - 13.stílus - 14.stílus - 15.stílus - 16.stílus - 17.stílus - 18.stílus - 19.stílus - 20.stílus - 21.stílus - 22.stílus - 23.stílus - 24.stílus - 25.stílus + %d.stílus Folytatás Újraindítás diff --git a/app/src/main/res/values-in-rID/strings.xml b/app/src/main/res/values-in-rID/strings.xml index 325b6fc54..94e8b04a9 100644 --- a/app/src/main/res/values-in-rID/strings.xml +++ b/app/src/main/res/values-in-rID/strings.xml @@ -761,31 +761,7 @@ Pengaturan berhasil disimpan None - Style 1 - Style 2 - Style 3 - Style 4 - Style 5 - Style 6 - Style 7 - Style 8 - Style 9 - Style 10 - Style 11 - Style 12 - Style 13 - Style 14 - Style 15 - Style 16 - Style 17 - Style 18 - Style 19 - Style 20 - Style 21 - Style 22 - Style 23 - Style 24 - Style 25 + Style %d LANJUTKAN Restart diff --git a/app/src/main/res/values-it-rIT/strings.xml b/app/src/main/res/values-it-rIT/strings.xml index d73b84ee6..8140fa36c 100644 --- a/app/src/main/res/values-it-rIT/strings.xml +++ b/app/src/main/res/values-it-rIT/strings.xml @@ -761,31 +761,7 @@ Impostazioni salvate con successo Nessuno - Stile 1 - Stile 2 - Stile 3 - Stile 4 - Stile 5 - Stile 6 - Stile 7 - Stile 8 - Stile 9 - Stile 10 - Stile 11 - Stile 12 - Stile 13 - Stile 14 - Stile 15 - Stile 16 - Stile 17 - Stile 18 - Stile 19 - Stile 20 - Stile 21 - Stile 22 - Stile 23 - Stile 24 - Stile 25 + Stile %d Continua Riavvia diff --git a/app/src/main/res/values-iw-rIL/strings.xml b/app/src/main/res/values-iw-rIL/strings.xml index fa1c8701f..d7e1391a5 100644 --- a/app/src/main/res/values-iw-rIL/strings.xml +++ b/app/src/main/res/values-iw-rIL/strings.xml @@ -711,31 +711,7 @@ Saved settings successfully None - Style 1 - Style 2 - Style 3 - Style 4 - Style 5 - Style 6 - Style 7 - Style 8 - Style 9 - Style 10 - Style 11 - Style 12 - Style 13 - Style 14 - Style 15 - Style 16 - Style 17 - Style 18 - Style 19 - Style 20 - Style 21 - Style 22 - Style 23 - Style 24 - Style 25 + Style %d Continue Restart diff --git a/app/src/main/res/values-ja-rJP/strings.xml b/app/src/main/res/values-ja-rJP/strings.xml index a539ea81f..4cc6cb49c 100644 --- a/app/src/main/res/values-ja-rJP/strings.xml +++ b/app/src/main/res/values-ja-rJP/strings.xml @@ -761,31 +761,7 @@ 設定の保存が完了しました なし - スタイル 1 - スタイル 2 - スタイル 3 - スタイル 4 - スタイル 5 - スタイル 6 - スタイル 7 - スタイル 8 - スタイル 9 - スタイル 10 - スタイル 11 - スタイル 12 - スタイル 13 - スタイル 14 - スタイル 15 - スタイル 16 - スタイル 17 - スタイル 18 - スタイル 19 - スタイル 20 - スタイル 21 - スタイル 22 - スタイル 23 - スタイル 24 - スタイル 25 + スタイル %d 続ける 再起動 diff --git a/app/src/main/res/values-ko-rKR/strings.xml b/app/src/main/res/values-ko-rKR/strings.xml index 4d21ff0cc..7ec205c1b 100644 --- a/app/src/main/res/values-ko-rKR/strings.xml +++ b/app/src/main/res/values-ko-rKR/strings.xml @@ -761,31 +761,7 @@ Saved settings successfully None - Style 1 - Style 2 - Style 3 - Style 4 - Style 5 - Style 6 - Style 7 - Style 8 - Style 9 - Style 10 - Style 11 - Style 12 - Style 13 - Style 14 - Style 15 - Style 16 - Style 17 - Style 18 - Style 19 - Style 20 - Style 21 - Style 22 - Style 23 - Style 24 - Style 25 + Style %d Continue Restart diff --git a/app/src/main/res/values-nl-rNL/strings.xml b/app/src/main/res/values-nl-rNL/strings.xml index 80bcc3fbc..c6f35a7c3 100644 --- a/app/src/main/res/values-nl-rNL/strings.xml +++ b/app/src/main/res/values-nl-rNL/strings.xml @@ -761,31 +761,7 @@ Saved settings successfully None - Style 1 - Style 2 - Style 3 - Style 4 - Style 5 - Style 6 - Style 7 - Style 8 - Style 9 - Style 10 - Style 11 - Style 12 - Style 13 - Style 14 - Style 15 - Style 16 - Style 17 - Style 18 - Style 19 - Style 20 - Style 21 - Style 22 - Style 23 - Style 24 - Style 25 + Style %d Continue Restart diff --git a/app/src/main/res/values-no-rNO/strings.xml b/app/src/main/res/values-no-rNO/strings.xml index 80bcc3fbc..c6f35a7c3 100644 --- a/app/src/main/res/values-no-rNO/strings.xml +++ b/app/src/main/res/values-no-rNO/strings.xml @@ -761,31 +761,7 @@ Saved settings successfully None - Style 1 - Style 2 - Style 3 - Style 4 - Style 5 - Style 6 - Style 7 - Style 8 - Style 9 - Style 10 - Style 11 - Style 12 - Style 13 - Style 14 - Style 15 - Style 16 - Style 17 - Style 18 - Style 19 - Style 20 - Style 21 - Style 22 - Style 23 - Style 24 - Style 25 + Style %d Continue Restart diff --git a/app/src/main/res/values-pl-rPL/strings.xml b/app/src/main/res/values-pl-rPL/strings.xml index b67847330..dfe3fa716 100644 --- a/app/src/main/res/values-pl-rPL/strings.xml +++ b/app/src/main/res/values-pl-rPL/strings.xml @@ -761,31 +761,7 @@ Ustawienia wyeksportowane pomyślnie Brak - Styl 1 - Styl 2 - Styl 3 - Styl 4 - Styl 5 - Styl 6 - Styl 7 - Styl 8 - Styl 9 - Styl 10 - Styl 11 - Styl 12 - Styl 13 - Styl 14 - Styl 15 - Styl 16 - Styl 17 - Styl 18 - Styl 19 - Styl 20 - Styl 21 - Styl 22 - Styl 23 - Styl 24 - Styl 25 + Styl %d Kontynuuj Zrestartuj diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index ff6644563..38c0a92c4 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -761,31 +761,7 @@ Configurações salvas com sucesso Nenhum - Estilo 1 - Estilo 2 - Estilo 3 - Estilo 4 - Estilo 5 - Estilo 6 - Estilo 7 - Estilo 8 - Estilo 9 - Estilo 10 - Estilo 11 - Estilo 12 - Estilo 13 - Estilo 14 - Estilo 15 - Estilo 16 - Estilo 17 - Estilo 18 - Estilo 19 - Estilo 20 - Estilo 21 - Estilo 22 - Estilo 23 - Estilo 24 - Estilo 25 + Estilo %d Continuar Reiniciar diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index 9f4acfd04..582e7b126 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -761,31 +761,7 @@ Definições guardadas com sucesso Nenhum - Estilo 1 - Estilo 2 - Estilo 3 - Estilo 4 - Estilo 5 - Estilo 6 - Estilo 7 - Estilo 8 - Estilo 9 - Estilo 10 - Style 11 - Style 12 - Style 13 - Style 14 - Style 15 - Style 16 - Style 17 - Style 18 - Style 19 - Style 20 - Style 21 - Style 22 - Style 23 - Style 24 - Style 25 + Estilo %d CONTINUAR Reiniciar diff --git a/app/src/main/res/values-ro-rRO/strings.xml b/app/src/main/res/values-ro-rRO/strings.xml index 80bcc3fbc..c6f35a7c3 100644 --- a/app/src/main/res/values-ro-rRO/strings.xml +++ b/app/src/main/res/values-ro-rRO/strings.xml @@ -761,31 +761,7 @@ Saved settings successfully None - Style 1 - Style 2 - Style 3 - Style 4 - Style 5 - Style 6 - Style 7 - Style 8 - Style 9 - Style 10 - Style 11 - Style 12 - Style 13 - Style 14 - Style 15 - Style 16 - Style 17 - Style 18 - Style 19 - Style 20 - Style 21 - Style 22 - Style 23 - Style 24 - Style 25 + Style %d Continue Restart diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml index 2aecbabec..fff11a9d0 100644 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ b/app/src/main/res/values-ru-rRU/strings.xml @@ -761,31 +761,7 @@ Настройки успешно сохранены Нет - Стиль 1 - Стиль 2 - Стиль 3 - Стиль 4 - Стиль 5 - Стиль 6 - Стиль 7 - Стиль 8 - Стиль 8 - Стиль 10 - Стиль 11 - Стиль 12 - Стиль 13 - Стиль 14 - Стиль 15 - Стиль 16 - Стиль 17 - Стиль 18 - Стиль 19 - Стиль 20 - Стиль 21 - Стиль 22 - Стиль 23 - Стиль 24 - Стиль 25 + Стиль %d ПРОДОЛЖИТЬ Перезапуск diff --git a/app/src/main/res/values-sr-rSP/strings.xml b/app/src/main/res/values-sr-rSP/strings.xml index 80bcc3fbc..c6f35a7c3 100644 --- a/app/src/main/res/values-sr-rSP/strings.xml +++ b/app/src/main/res/values-sr-rSP/strings.xml @@ -761,31 +761,7 @@ Saved settings successfully None - Style 1 - Style 2 - Style 3 - Style 4 - Style 5 - Style 6 - Style 7 - Style 8 - Style 9 - Style 10 - Style 11 - Style 12 - Style 13 - Style 14 - Style 15 - Style 16 - Style 17 - Style 18 - Style 19 - Style 20 - Style 21 - Style 22 - Style 23 - Style 24 - Style 25 + Style %d Continue Restart diff --git a/app/src/main/res/values-sv-rSE/strings.xml b/app/src/main/res/values-sv-rSE/strings.xml index a14c4d4dd..758e6ce54 100644 --- a/app/src/main/res/values-sv-rSE/strings.xml +++ b/app/src/main/res/values-sv-rSE/strings.xml @@ -761,31 +761,7 @@ Saved settings successfully None - Style 1 - Style 2 - Style 3 - Style 4 - Style 5 - Style 6 - Style 7 - Style 8 - Style 9 - Style 10 - Style 11 - Style 12 - Style 13 - Style 14 - Style 15 - Style 16 - Style 17 - Style 18 - Style 19 - Style 20 - Style 21 - Style 22 - Style 23 - Style 24 - Style 25 + Style %d Continue Restart diff --git a/app/src/main/res/values-tr-rTR/strings.xml b/app/src/main/res/values-tr-rTR/strings.xml index 89def1833..6e4abef72 100644 --- a/app/src/main/res/values-tr-rTR/strings.xml +++ b/app/src/main/res/values-tr-rTR/strings.xml @@ -761,31 +761,7 @@ Ayarlar başarıyla kaydedildi Yok - Stil 1 - Stil 2 - Stil 3 - Stil 4 - Stil 5 - Stil 6 - Stil 7 - Stil 8 - Stil 9 - Stil 10 - Stil 11 - Stil 12 - Stil 13 - Stil 14 - Stil 15 - Stil 16 - Stil 17 - Stil 18 - Stil 19 - Stil 20 - Stil 21 - Stil 22 - Stil 23 - Stil 24 - Stil 25 + Stil %d Devam et Yeniden Başlat diff --git a/app/src/main/res/values-uk-rUA/strings.xml b/app/src/main/res/values-uk-rUA/strings.xml index 80bcc3fbc..c6f35a7c3 100644 --- a/app/src/main/res/values-uk-rUA/strings.xml +++ b/app/src/main/res/values-uk-rUA/strings.xml @@ -761,31 +761,7 @@ Saved settings successfully None - Style 1 - Style 2 - Style 3 - Style 4 - Style 5 - Style 6 - Style 7 - Style 8 - Style 9 - Style 10 - Style 11 - Style 12 - Style 13 - Style 14 - Style 15 - Style 16 - Style 17 - Style 18 - Style 19 - Style 20 - Style 21 - Style 22 - Style 23 - Style 24 - Style 25 + Style %d Continue Restart diff --git a/app/src/main/res/values-vi-rVN/strings.xml b/app/src/main/res/values-vi-rVN/strings.xml index ecb11b338..e039a2151 100644 --- a/app/src/main/res/values-vi-rVN/strings.xml +++ b/app/src/main/res/values-vi-rVN/strings.xml @@ -761,31 +761,7 @@ Đã lưu cài đặt thành công Không có - Kiểu 1 - kiểu 2 - kiểu 3 - Kiểu 4 - Kiểu 5 - Kiểu 6 - Kiểu 7 - Kiểu 8 - Kiểu 9 - Kiểu 10 - Style 11 - Style 12 - Style 13 - Style 14 - Style 15 - Style 16 - Style 17 - Style 18 - Style 19 - Style 20 - Style 21 - Style 22 - Style 23 - Style 24 - Style 25 + kiểu %d TIẾP TỤC Khởi động lại diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index f5d9aa4b9..ba96b9e1a 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -761,31 +761,7 @@ 成功保存了设置 - 样式 1 - 样式 2 - 样式 3 - 样式 4 - 样式 5 - 样式 6 - 样式 7 - 样式 8 - 样式 9 - 样式 10 - 样式 11 - 样式 12 - 样式 13 - 样式 14 - 样式 15 - 样式 16 - 样式 17 - 样式 18 - 样式 19 - 样式 20 - 样式 21 - 样式 22 - 样式 23 - 样式 24 - 样式 25 + 样式 %d 继续 重启 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 303f1d254..15af9182b 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -761,31 +761,7 @@ 成功存儲了設定 - 樣式 1 - 樣式 2 - 樣式 3 - 樣式 4 - 樣式 5 - 樣式 6 - 樣式 7 - 樣式 8 - 樣式 9 - 樣式 10 - 樣式 11 - 樣式 12 - 樣式 13 - 樣式 14 - 樣式 15 - 樣式 16 - 樣式 17 - 樣式 18 - 樣式 19 - 樣式 20 - 樣式 21 - 樣式 22 - 樣式 23 - 樣式 24 - 樣式 25 + 樣式 %d 繼續 重新啓動 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 1b4375130..c43362478 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -817,31 +817,7 @@ None - Style 1 - Style 2 - Style 3 - Style 4 - Style 5 - Style 6 - Style 7 - Style 8 - Style 9 - Style 10 - Style 11 - Style 12 - Style 13 - Style 14 - Style 15 - Style 16 - Style 17 - Style 18 - Style 19 - Style 20 - Style 21 - Style 22 - Style 23 - Style 24 - Style 25 + Style %d Continue From d0b43257146e5a32bf0c6e3fe530aa12b8af82dd Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Thu, 1 Aug 2024 20:40:41 +0200 Subject: [PATCH 055/369] Added Toast Style 12 --- .../TSTFRM12/res/drawable/toast_frame.xml | 34 +++++++++++++++++++ .../res/drawable/toast_frame_material.xml | 34 +++++++++++++++++++ .../TSTFRM12/res/values-night/colors.xml | 6 ++++ .../android/TSTFRM12/res/values/colors.xml | 6 ++++ .../iconify/ui/fragments/ToastFrame.kt | 1 + .../toast_frame_style_12.xml | 34 +++++++++++++++++++ .../res/drawable-v24/toast_frame_style_12.xml | 34 +++++++++++++++++++ 7 files changed, 149 insertions(+) create mode 100644 app/src/main/assets/CompileOnDemand/android/TSTFRM12/res/drawable/toast_frame.xml create mode 100644 app/src/main/assets/CompileOnDemand/android/TSTFRM12/res/drawable/toast_frame_material.xml create mode 100644 app/src/main/assets/CompileOnDemand/android/TSTFRM12/res/values-night/colors.xml create mode 100644 app/src/main/assets/CompileOnDemand/android/TSTFRM12/res/values/colors.xml create mode 100644 app/src/main/res/drawable-night-v24/toast_frame_style_12.xml create mode 100644 app/src/main/res/drawable-v24/toast_frame_style_12.xml diff --git a/app/src/main/assets/CompileOnDemand/android/TSTFRM12/res/drawable/toast_frame.xml b/app/src/main/assets/CompileOnDemand/android/TSTFRM12/res/drawable/toast_frame.xml new file mode 100644 index 000000000..e15325f98 --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/android/TSTFRM12/res/drawable/toast_frame.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/assets/CompileOnDemand/android/TSTFRM12/res/drawable/toast_frame_material.xml b/app/src/main/assets/CompileOnDemand/android/TSTFRM12/res/drawable/toast_frame_material.xml new file mode 100644 index 000000000..e15325f98 --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/android/TSTFRM12/res/drawable/toast_frame_material.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/assets/CompileOnDemand/android/TSTFRM12/res/values-night/colors.xml b/app/src/main/assets/CompileOnDemand/android/TSTFRM12/res/values-night/colors.xml new file mode 100644 index 000000000..e05ab934e --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/android/TSTFRM12/res/values-night/colors.xml @@ -0,0 +1,6 @@ + + + + @android:color/system_neutral2_800 + + \ No newline at end of file diff --git a/app/src/main/assets/CompileOnDemand/android/TSTFRM12/res/values/colors.xml b/app/src/main/assets/CompileOnDemand/android/TSTFRM12/res/values/colors.xml new file mode 100644 index 000000000..b3ee65f40 --- /dev/null +++ b/app/src/main/assets/CompileOnDemand/android/TSTFRM12/res/values/colors.xml @@ -0,0 +1,6 @@ + + + + @android:color/system_neutral1_50 + + \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/ToastFrame.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/ToastFrame.kt index 2206ea75d..52754d273 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/ToastFrame.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/ToastFrame.kt @@ -89,6 +89,7 @@ class ToastFrame : BaseFragment() { add(ToastModel(R.drawable.toast_frame_style_9, String.format(appContextLocale.resources.getString(R.string.style), 9))) add(ToastModel(R.drawable.toast_frame_style_10, String.format(appContextLocale.resources.getString(R.string.style), 10))) add(ToastModel(R.drawable.toast_frame_style_11, String.format(appContextLocale.resources.getString(R.string.style), 11))) + add(ToastModel(R.drawable.toast_frame_style_12, String.format(appContextLocale.resources.getString(R.string.style), 12))) } return ToastAdapter( diff --git a/app/src/main/res/drawable-night-v24/toast_frame_style_12.xml b/app/src/main/res/drawable-night-v24/toast_frame_style_12.xml new file mode 100644 index 000000000..94791838d --- /dev/null +++ b/app/src/main/res/drawable-night-v24/toast_frame_style_12.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable-v24/toast_frame_style_12.xml b/app/src/main/res/drawable-v24/toast_frame_style_12.xml new file mode 100644 index 000000000..55573847d --- /dev/null +++ b/app/src/main/res/drawable-v24/toast_frame_style_12.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + From 1b54af2536ae19ac86982180f8dd0520a3d9bb8d Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Fri, 2 Aug 2024 14:36:25 +0600 Subject: [PATCH 056/369] Companion Module: Add support for LMODroid ROM --- .../IconifyCompanion/META-INF/com/google/android/update-binary | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/assets/Module/IconifyCompanion/META-INF/com/google/android/update-binary b/app/src/main/assets/Module/IconifyCompanion/META-INF/com/google/android/update-binary index b91ebe4d6..88816b3ad 100644 --- a/app/src/main/assets/Module/IconifyCompanion/META-INF/com/google/android/update-binary +++ b/app/src/main/assets/Module/IconifyCompanion/META-INF/com/google/android/update-binary @@ -83,7 +83,8 @@ file_paths="/system/system_ext/priv-app/SystemUI/SystemUI.apk /system/system_ext/priv-app/sysuia/sysuia.apk /system/system_ext/priv-app/TranSystemUI/TranSystemUI.apk /system/system_ext/priv-app/MiuiSystemUI/MiuiSystemUI.apk -/system/product/priv-app/MiuiSystemUI/MiuiSystemUI.apk" +/system/product/priv-app/MiuiSystemUI/MiuiSystemUI.apk +/system/system_ext/priv-app/LMOSystemUI/LMOSystemUI.apk" found=0 From 0e90c2bb5ee20e27c289ee6b322d293f7d289b61 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Fri, 2 Aug 2024 14:23:26 +0200 Subject: [PATCH 057/369] Improved Toast 12 Preview --- .../main/res/drawable-night-v24/toast_frame_style_12.xml | 8 ++++---- app/src/main/res/drawable-v24/toast_frame_style_12.xml | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/app/src/main/res/drawable-night-v24/toast_frame_style_12.xml b/app/src/main/res/drawable-night-v24/toast_frame_style_12.xml index 94791838d..7e0ed0367 100644 --- a/app/src/main/res/drawable-night-v24/toast_frame_style_12.xml +++ b/app/src/main/res/drawable-night-v24/toast_frame_style_12.xml @@ -23,10 +23,10 @@ + android:bottomLeftRadius="10dp" + android:bottomRightRadius="20dp" + android:topLeftRadius="20dp" + android:topRightRadius="10dp" /> diff --git a/app/src/main/res/drawable-v24/toast_frame_style_12.xml b/app/src/main/res/drawable-v24/toast_frame_style_12.xml index 55573847d..a76a7f88b 100644 --- a/app/src/main/res/drawable-v24/toast_frame_style_12.xml +++ b/app/src/main/res/drawable-v24/toast_frame_style_12.xml @@ -23,10 +23,10 @@ + android:bottomLeftRadius="10dp" + android:bottomRightRadius="20dp" + android:topLeftRadius="20dp" + android:topRightRadius="10dp" /> From 3c36a339a2e107bc6cec6830d72abb40ae8d1cfd Mon Sep 17 00:00:00 2001 From: Crowdin Bot Date: Sun, 4 Aug 2024 00:14:59 +0000 Subject: [PATCH 058/369] New Crowdin translations by GitHub Action --- app/src/main/res/values-af-rZA/strings.xml | 4 + app/src/main/res/values-ar-rSA/strings.xml | 6 +- app/src/main/res/values-ca-rES/strings.xml | 4 + app/src/main/res/values-cs-rCZ/strings.xml | 4 + app/src/main/res/values-da-rDK/strings.xml | 4 + app/src/main/res/values-de-rDE/strings.xml | 6 +- app/src/main/res/values-el-rGR/strings.xml | 4 + app/src/main/res/values-es-rES/strings.xml | 6 +- app/src/main/res/values-fa-rIR/strings.xml | 4 + app/src/main/res/values-fi-rFI/strings.xml | 4 + app/src/main/res/values-fr-rFR/strings.xml | 4 + app/src/main/res/values-hu-rHU/strings.xml | 8 +- app/src/main/res/values-in-rID/strings.xml | 4 + app/src/main/res/values-it-rIT/strings.xml | 6 +- app/src/main/res/values-ja-rJP/strings.xml | 6 +- app/src/main/res/values-ko-rKR/strings.xml | 4 + app/src/main/res/values-nl-rNL/strings.xml | 4 + app/src/main/res/values-no-rNO/strings.xml | 4 + app/src/main/res/values-pl-rPL/strings.xml | 6 +- app/src/main/res/values-pt-rBR/strings.xml | 4 + app/src/main/res/values-pt-rPT/strings.xml | 6 +- app/src/main/res/values-ro-rRO/strings.xml | 4 + app/src/main/res/values-ru-rRU/strings.xml | 6 +- app/src/main/res/values-sr-rSP/strings.xml | 4 + app/src/main/res/values-sv-rSE/strings.xml | 4 + app/src/main/res/values-tr-rTR/strings.xml | 6 +- app/src/main/res/values-uk-rUA/strings.xml | 810 +++++++++++---------- app/src/main/res/values-vi-rVN/strings.xml | 6 +- app/src/main/res/values-zh-rCN/strings.xml | 6 +- app/src/main/res/values-zh-rTW/strings.xml | 6 +- 30 files changed, 537 insertions(+), 417 deletions(-) diff --git a/app/src/main/res/values-af-rZA/strings.xml b/app/src/main/res/values-af-rZA/strings.xml index c6f35a7c3..9d0770c07 100644 --- a/app/src/main/res/values-af-rZA/strings.xml +++ b/app/src/main/res/values-af-rZA/strings.xml @@ -609,6 +609,10 @@ Use Custom Image Use custom image for lockscreen clock. Custom Image Picker + Custom Device Name + Set custom device name for lockscreen clock.\nKeep blank to use System\'s Device Name. + Custom User Name + Set custom user name for lockscreen clock.\nKeep blank to use System\'s User Name. Select Battery Charging Battery Discharging diff --git a/app/src/main/res/values-ar-rSA/strings.xml b/app/src/main/res/values-ar-rSA/strings.xml index 37e13e181..d591bdcb4 100644 --- a/app/src/main/res/values-ar-rSA/strings.xml +++ b/app/src/main/res/values-ar-rSA/strings.xml @@ -609,6 +609,10 @@ استخدام صورة مخصصة استخدم صورة مخصصة لساعة قفل الشاشة. منتقي صورة مخصص + Custom Device Name + Set custom device name for lockscreen clock.\nKeep blank to use System\'s Device Name. + Custom User Name + Set custom user name for lockscreen clock.\nKeep blank to use System\'s User Name. اختر شحن البطارية تفريغ البطارية @@ -761,7 +765,7 @@ تم حفظ الإعدادات بنجاح لا شيء - النمط %d + Style %d استمر إعداة تشغيل diff --git a/app/src/main/res/values-ca-rES/strings.xml b/app/src/main/res/values-ca-rES/strings.xml index c6f35a7c3..9d0770c07 100644 --- a/app/src/main/res/values-ca-rES/strings.xml +++ b/app/src/main/res/values-ca-rES/strings.xml @@ -609,6 +609,10 @@ Use Custom Image Use custom image for lockscreen clock. Custom Image Picker + Custom Device Name + Set custom device name for lockscreen clock.\nKeep blank to use System\'s Device Name. + Custom User Name + Set custom user name for lockscreen clock.\nKeep blank to use System\'s User Name. Select Battery Charging Battery Discharging diff --git a/app/src/main/res/values-cs-rCZ/strings.xml b/app/src/main/res/values-cs-rCZ/strings.xml index 397e011c6..c3505df62 100644 --- a/app/src/main/res/values-cs-rCZ/strings.xml +++ b/app/src/main/res/values-cs-rCZ/strings.xml @@ -609,6 +609,10 @@ Use Custom Image Use custom image for lockscreen clock. Custom Image Picker + Custom Device Name + Set custom device name for lockscreen clock.\nKeep blank to use System\'s Device Name. + Custom User Name + Set custom user name for lockscreen clock.\nKeep blank to use System\'s User Name. Select Battery Charging Battery Discharging diff --git a/app/src/main/res/values-da-rDK/strings.xml b/app/src/main/res/values-da-rDK/strings.xml index c6f35a7c3..9d0770c07 100644 --- a/app/src/main/res/values-da-rDK/strings.xml +++ b/app/src/main/res/values-da-rDK/strings.xml @@ -609,6 +609,10 @@ Use Custom Image Use custom image for lockscreen clock. Custom Image Picker + Custom Device Name + Set custom device name for lockscreen clock.\nKeep blank to use System\'s Device Name. + Custom User Name + Set custom user name for lockscreen clock.\nKeep blank to use System\'s User Name. Select Battery Charging Battery Discharging diff --git a/app/src/main/res/values-de-rDE/strings.xml b/app/src/main/res/values-de-rDE/strings.xml index bdbfc9b0f..448f7267c 100644 --- a/app/src/main/res/values-de-rDE/strings.xml +++ b/app/src/main/res/values-de-rDE/strings.xml @@ -610,6 +610,10 @@ transparent machen Use Custom Image Use custom image for lockscreen clock. Custom Image Picker + Custom Device Name + Set custom device name for lockscreen clock.\nKeep blank to use System\'s Device Name. + Custom User Name + Set custom user name for lockscreen clock.\nKeep blank to use System\'s User Name. Auswählen Akku ladend Akku entladend @@ -762,7 +766,7 @@ transparent machen Einstellungen Speichern erfolgreich Nichts - Stil %d + Style %d Weiter Neustart diff --git a/app/src/main/res/values-el-rGR/strings.xml b/app/src/main/res/values-el-rGR/strings.xml index 896b087ca..d1077138a 100644 --- a/app/src/main/res/values-el-rGR/strings.xml +++ b/app/src/main/res/values-el-rGR/strings.xml @@ -609,6 +609,10 @@ Use Custom Image Use custom image for lockscreen clock. Custom Image Picker + Custom Device Name + Set custom device name for lockscreen clock.\nKeep blank to use System\'s Device Name. + Custom User Name + Set custom user name for lockscreen clock.\nKeep blank to use System\'s User Name. Select Battery Charging Battery Discharging diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index 1e4bc4252..54af8298e 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -609,6 +609,10 @@ Use Custom Image Use custom image for lockscreen clock. Custom Image Picker + Custom Device Name + Set custom device name for lockscreen clock.\nKeep blank to use System\'s Device Name. + Custom User Name + Set custom user name for lockscreen clock.\nKeep blank to use System\'s User Name. Seleccionar Batería cargándose Batería descargándose @@ -761,7 +765,7 @@ Configuración guardada con éxito Ninguno - Estilo %d + Style %d CONTINUAR Reiniciar diff --git a/app/src/main/res/values-fa-rIR/strings.xml b/app/src/main/res/values-fa-rIR/strings.xml index c06095108..8d152ec25 100644 --- a/app/src/main/res/values-fa-rIR/strings.xml +++ b/app/src/main/res/values-fa-rIR/strings.xml @@ -609,6 +609,10 @@ Use Custom Image Use custom image for lockscreen clock. Custom Image Picker + Custom Device Name + Set custom device name for lockscreen clock.\nKeep blank to use System\'s Device Name. + Custom User Name + Set custom user name for lockscreen clock.\nKeep blank to use System\'s User Name. Select باتری در حال شارژ باتری خارج از شارژ diff --git a/app/src/main/res/values-fi-rFI/strings.xml b/app/src/main/res/values-fi-rFI/strings.xml index c6f35a7c3..9d0770c07 100644 --- a/app/src/main/res/values-fi-rFI/strings.xml +++ b/app/src/main/res/values-fi-rFI/strings.xml @@ -609,6 +609,10 @@ Use Custom Image Use custom image for lockscreen clock. Custom Image Picker + Custom Device Name + Set custom device name for lockscreen clock.\nKeep blank to use System\'s Device Name. + Custom User Name + Set custom user name for lockscreen clock.\nKeep blank to use System\'s User Name. Select Battery Charging Battery Discharging diff --git a/app/src/main/res/values-fr-rFR/strings.xml b/app/src/main/res/values-fr-rFR/strings.xml index 36cd43219..2f2bafaff 100644 --- a/app/src/main/res/values-fr-rFR/strings.xml +++ b/app/src/main/res/values-fr-rFR/strings.xml @@ -609,6 +609,10 @@ Use Custom Image Use custom image for lockscreen clock. Custom Image Picker + Custom Device Name + Set custom device name for lockscreen clock.\nKeep blank to use System\'s Device Name. + Custom User Name + Set custom user name for lockscreen clock.\nKeep blank to use System\'s User Name. Select Battery Charging Battery Discharging diff --git a/app/src/main/res/values-hu-rHU/strings.xml b/app/src/main/res/values-hu-rHU/strings.xml index fa9014f5c..983cdedad 100644 --- a/app/src/main/res/values-hu-rHU/strings.xml +++ b/app/src/main/res/values-hu-rHU/strings.xml @@ -609,6 +609,10 @@ Egyéni kép használata Saját képet használhat a záróképernyő órájához. Egyéni kép-kijelölés + Egyéni Készüléknév + Állítson be egyéni nevet a zárolási képernyő órájához.\nHagyja üresen, ha a rendszer nevezze el. + Egyéni Felhasználónév + Állítson be egyéni nevet a zárolási képernyő órájához.\nHagyja üresen, ha a rendszer nevezze el. Választás Az akku töltödik Az akku nem töltödik @@ -654,7 +658,7 @@ A Gyorsbeállításokban nem látszik a szolgáltató Az Állapotikonok elrejtése Az Idő, a Dátum és az Akkujelzés sem látható - Statusbar Clock Size + Az állapotsori Óra mérete Záróképernyő Nincs Szolgáltató a képernyőzáron A záróképernyőről eltűnik a Szolgáltató neve @@ -761,7 +765,7 @@ A beállítások mentése sikeres volt Nincs - %d.stílus + %d stílus Folytatás Újraindítás diff --git a/app/src/main/res/values-in-rID/strings.xml b/app/src/main/res/values-in-rID/strings.xml index 94e8b04a9..b92f48325 100644 --- a/app/src/main/res/values-in-rID/strings.xml +++ b/app/src/main/res/values-in-rID/strings.xml @@ -609,6 +609,10 @@ Use Custom Image Use custom image for lockscreen clock. Custom Image Picker + Custom Device Name + Set custom device name for lockscreen clock.\nKeep blank to use System\'s Device Name. + Custom User Name + Set custom user name for lockscreen clock.\nKeep blank to use System\'s User Name. Select Battery Charging Battery Discharging diff --git a/app/src/main/res/values-it-rIT/strings.xml b/app/src/main/res/values-it-rIT/strings.xml index 8140fa36c..a50ff1c02 100644 --- a/app/src/main/res/values-it-rIT/strings.xml +++ b/app/src/main/res/values-it-rIT/strings.xml @@ -609,6 +609,10 @@ Use Custom Image Use custom image for lockscreen clock. Custom Image Picker + Custom Device Name + Set custom device name for lockscreen clock.\nKeep blank to use System\'s Device Name. + Custom User Name + Set custom user name for lockscreen clock.\nKeep blank to use System\'s User Name. Seleziona Batteria in Carica Batteria in Scaricamento @@ -761,7 +765,7 @@ Impostazioni salvate con successo Nessuno - Stile %d + Style %d Continua Riavvia diff --git a/app/src/main/res/values-ja-rJP/strings.xml b/app/src/main/res/values-ja-rJP/strings.xml index 4cc6cb49c..4db35d62c 100644 --- a/app/src/main/res/values-ja-rJP/strings.xml +++ b/app/src/main/res/values-ja-rJP/strings.xml @@ -609,6 +609,10 @@ Use Custom Image Use custom image for lockscreen clock. Custom Image Picker + Custom Device Name + Set custom device name for lockscreen clock.\nKeep blank to use System\'s Device Name. + Custom User Name + Set custom user name for lockscreen clock.\nKeep blank to use System\'s User Name. 選択 バッテリー充電中 バッテリー放電中 @@ -761,7 +765,7 @@ 設定の保存が完了しました なし - スタイル %d + Style %d 続ける 再起動 diff --git a/app/src/main/res/values-ko-rKR/strings.xml b/app/src/main/res/values-ko-rKR/strings.xml index 7ec205c1b..a9ef0aa1b 100644 --- a/app/src/main/res/values-ko-rKR/strings.xml +++ b/app/src/main/res/values-ko-rKR/strings.xml @@ -609,6 +609,10 @@ Use Custom Image Use custom image for lockscreen clock. Custom Image Picker + Custom Device Name + Set custom device name for lockscreen clock.\nKeep blank to use System\'s Device Name. + Custom User Name + Set custom user name for lockscreen clock.\nKeep blank to use System\'s User Name. Select Battery Charging Battery Discharging diff --git a/app/src/main/res/values-nl-rNL/strings.xml b/app/src/main/res/values-nl-rNL/strings.xml index c6f35a7c3..9d0770c07 100644 --- a/app/src/main/res/values-nl-rNL/strings.xml +++ b/app/src/main/res/values-nl-rNL/strings.xml @@ -609,6 +609,10 @@ Use Custom Image Use custom image for lockscreen clock. Custom Image Picker + Custom Device Name + Set custom device name for lockscreen clock.\nKeep blank to use System\'s Device Name. + Custom User Name + Set custom user name for lockscreen clock.\nKeep blank to use System\'s User Name. Select Battery Charging Battery Discharging diff --git a/app/src/main/res/values-no-rNO/strings.xml b/app/src/main/res/values-no-rNO/strings.xml index c6f35a7c3..9d0770c07 100644 --- a/app/src/main/res/values-no-rNO/strings.xml +++ b/app/src/main/res/values-no-rNO/strings.xml @@ -609,6 +609,10 @@ Use Custom Image Use custom image for lockscreen clock. Custom Image Picker + Custom Device Name + Set custom device name for lockscreen clock.\nKeep blank to use System\'s Device Name. + Custom User Name + Set custom user name for lockscreen clock.\nKeep blank to use System\'s User Name. Select Battery Charging Battery Discharging diff --git a/app/src/main/res/values-pl-rPL/strings.xml b/app/src/main/res/values-pl-rPL/strings.xml index dfe3fa716..23a31d602 100644 --- a/app/src/main/res/values-pl-rPL/strings.xml +++ b/app/src/main/res/values-pl-rPL/strings.xml @@ -609,6 +609,10 @@ Use Custom Image Use custom image for lockscreen clock. Custom Image Picker + Custom Device Name + Set custom device name for lockscreen clock.\nKeep blank to use System\'s Device Name. + Custom User Name + Set custom user name for lockscreen clock.\nKeep blank to use System\'s User Name. Select Battery Charging Battery Discharging @@ -761,7 +765,7 @@ Ustawienia wyeksportowane pomyślnie Brak - Styl %d + Style %d Kontynuuj Zrestartuj diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 38c0a92c4..fdba78ad7 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -609,6 +609,10 @@ Usar imagem personalizada Use uma imagem personalizada para o relógio da tela de bloqueio. Seletor de imagens personalizado + Nome do dispositivo personalizado + Defina um nome de dispositivo personalizado para o relógio da tela de bloqueio.\nMantenha em branco para usar o nome do dispositivo do sistema. + Nome do usuário personalizado + Defina um nome de usuário personalizado para o relógio da tela de bloqueio.\nMantenha em branco para usar o nome de usuário do sistema. Selecionar Bateria carregando Bateria descarregando diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index 582e7b126..e068f2dc3 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -609,6 +609,10 @@ Use Custom Image Use custom image for lockscreen clock. Custom Image Picker + Custom Device Name + Set custom device name for lockscreen clock.\nKeep blank to use System\'s Device Name. + Custom User Name + Set custom user name for lockscreen clock.\nKeep blank to use System\'s User Name. Select Battery Charging Battery Discharging @@ -761,7 +765,7 @@ Definições guardadas com sucesso Nenhum - Estilo %d + Style %d CONTINUAR Reiniciar diff --git a/app/src/main/res/values-ro-rRO/strings.xml b/app/src/main/res/values-ro-rRO/strings.xml index c6f35a7c3..9d0770c07 100644 --- a/app/src/main/res/values-ro-rRO/strings.xml +++ b/app/src/main/res/values-ro-rRO/strings.xml @@ -609,6 +609,10 @@ Use Custom Image Use custom image for lockscreen clock. Custom Image Picker + Custom Device Name + Set custom device name for lockscreen clock.\nKeep blank to use System\'s Device Name. + Custom User Name + Set custom user name for lockscreen clock.\nKeep blank to use System\'s User Name. Select Battery Charging Battery Discharging diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml index fff11a9d0..dac9b48d6 100644 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ b/app/src/main/res/values-ru-rRU/strings.xml @@ -609,6 +609,10 @@ Use Custom Image Use custom image for lockscreen clock. Custom Image Picker + Custom Device Name + Set custom device name for lockscreen clock.\nKeep blank to use System\'s Device Name. + Custom User Name + Set custom user name for lockscreen clock.\nKeep blank to use System\'s User Name. Выбрыть Зарядка батареи Разрядка батареи @@ -761,7 +765,7 @@ Настройки успешно сохранены Нет - Стиль %d + Style %d ПРОДОЛЖИТЬ Перезапуск diff --git a/app/src/main/res/values-sr-rSP/strings.xml b/app/src/main/res/values-sr-rSP/strings.xml index c6f35a7c3..9d0770c07 100644 --- a/app/src/main/res/values-sr-rSP/strings.xml +++ b/app/src/main/res/values-sr-rSP/strings.xml @@ -609,6 +609,10 @@ Use Custom Image Use custom image for lockscreen clock. Custom Image Picker + Custom Device Name + Set custom device name for lockscreen clock.\nKeep blank to use System\'s Device Name. + Custom User Name + Set custom user name for lockscreen clock.\nKeep blank to use System\'s User Name. Select Battery Charging Battery Discharging diff --git a/app/src/main/res/values-sv-rSE/strings.xml b/app/src/main/res/values-sv-rSE/strings.xml index 758e6ce54..38d2ff533 100644 --- a/app/src/main/res/values-sv-rSE/strings.xml +++ b/app/src/main/res/values-sv-rSE/strings.xml @@ -609,6 +609,10 @@ Use Custom Image Use custom image for lockscreen clock. Custom Image Picker + Custom Device Name + Set custom device name for lockscreen clock.\nKeep blank to use System\'s Device Name. + Custom User Name + Set custom user name for lockscreen clock.\nKeep blank to use System\'s User Name. Select Battery Charging Battery Discharging diff --git a/app/src/main/res/values-tr-rTR/strings.xml b/app/src/main/res/values-tr-rTR/strings.xml index 6e4abef72..adc7b604f 100644 --- a/app/src/main/res/values-tr-rTR/strings.xml +++ b/app/src/main/res/values-tr-rTR/strings.xml @@ -609,6 +609,10 @@ Özel Resim Kullan Kilit ekranı saati için özel resim kullan. Özel Resim Seçici + Özel Cihaz Adı + Kilit ekranı saati için özel cihaz adı ayarlayın.\nSistemin Cihaz Adını kullanmak için boş bırakın. + Özel Kullanıcı Adı + Kilit ekranı saati için özel kullanıcı adı ayarlayın.\nSistemin Kullanıcı Adını kullanmak için boş bırakın. Seç Pil şarj ediliyor Pil şarj edilmiyor @@ -761,7 +765,7 @@ Ayarlar başarıyla kaydedildi Yok - Stil %d + Style %d Devam et Yeniden Başlat diff --git a/app/src/main/res/values-uk-rUA/strings.xml b/app/src/main/res/values-uk-rUA/strings.xml index c6f35a7c3..d07fc55b6 100644 --- a/app/src/main/res/values-uk-rUA/strings.xml +++ b/app/src/main/res/values-uk-rUA/strings.xml @@ -1,162 +1,162 @@ - Customize Boring Android UI + Освіжити нудний інтерфейс Android - Initializing setup - Step - Step %1$d/%2$d - Creating module shell - Extracting necessary files - Creating overlay APKs - Aligning overlay APKs - Signing overlay APKs - Cleaning directories - Got Bored of Stock UI ? - Let\'s customize everything to our likings. - Ditch the stock UI monotony – personalize every tech detail to match your style and preferences. - Is My Device Supported ? - Iconify supports all Pixel and AOSP ROMs. - Compatible with all Pixel and AOSP-based ROMs, ensuring broad support for Android devices. - Shall We Begin Now ? - It is time for iconify to do some internal work. - Starting internal tasks, marking the initiation of essential work. Ready to begin? - Need Storage Permission - Storage permission is required to build the necessary files. - Could Not Find Compatible Root Method - Use any popular root solutions to proceed. - Root Is Not Accessible - Looks like your device is not rooted! - Need Device Reboot - Reboot your device to put all files in place. - Oops Did Not Expect That - Logs have been saved in documents folder. - Logs + Початок встановлення + Крок + Крок %1$d / %2$d + Створення оболонки модуля + Витягування необхідних файлів + Створення APK для накладання + Вирівнювання APK для накладання + Затвердження APK для накладання + Очищення каталогів + Набрид стандартний інтерфейс? + Налаштуймо все на свій смак. + Забудьте про одноманітність стандартного інтерфейсу – персоналізуйте кожну технічну деталь відповідно до свого стилю та вподобань. + Чи підтримується мій пристрій? + Iconify підтримує на всіх Pixel та AOSP прошивках. + Сумісний з усіма прошивками на базі Pixel та AOSP, що забезпечує широку підтримку пристроїв на базі Android. + Почнемо зараз? + Настав час Iconify виконати деяку внутрішню роботу. + Початок внутрішніх завдань, що знаменують початок важливої роботи. Готові розпочати? + Потрібен дозвіл на доступ до сховища + Для створення необхідних файлів потрібен дозвіл на зберігання. + Не вдалося знайти сумісний root-доступ + Використовуйте будь-який популярний root-доступ, щоби продовжити. + Root-доступ недоступний + Схоже, що ваш пристрій не має root-прав! + Потрібно перезавантажити пристрій + Перезавантажте пристрій, щоб розмістити всі файли. + Упс... Не очікував такого + Журнали були збережені в теці «Documents». + Журнали Iconify - Icon Pack - Change system icon pack - Signal Icons - Change system signal icons - WiFi Icons - Change system WiFi icons - Brightness Bar - Customize progress slider - QS Panel Tiles - Customize QS panel tiles - Notification - Customize notification style - Progress Bar - Use different progress style - Switch - Customize switch appearance - Toast Frame - Change toast notification style - Icon Shape - Change system icon shapes - Iconify Just Got Updated! - Reboot your phone to use the latest added features and options. + Набір значків + Змінити системний набір значків + Значки сигналу + Змінити системні значки сигналу + Значки Wi-Fi + Змінити системні значки Wi-Fi + Індикатор яскравості + Налаштувати повзунок яскравості + Плитки панелі швидких налаштувань + Налаштування плиток швидких налаштувань + Сповіщення + Налаштувати стиль сповіщення + Смуга прогресу + Використовувати інший стиль прогресу + Перемикач + Змінити зовнішній вигляд перемикача + Toast-сповіщення + Змінити стиль toast-сповіщень + Форма значка + Змінити форми системних значків + Iconify тільки що оновлено! + Перезавантажте телефон, щоби використовувати останні додані функції та налаштування. - Design It Your Way - Unleash Your Imagination, Make It Yours - Hide + Оформте по-своєму + Дайте волю своїй уяві, творіть як бажаєте + Приховати - Color Engine - Have control over colors - UI Roundness - Change corner radius of interface - Row and Column - Change Qs tile rows and columns - Icon and Label - Change icon and label options - QS Tile Size - Change height of QS panel tile - QS Panel Margin - Modify quick settings margins - Statusbar - Modify statusbar interface - Navigation Bar - Tweak navigation options - Volume Panel - Customize volume panel design - Media Player - Change how media player looks - Miscellaneous - Miscellaneous customization - Xposed Menu - LSPosed required for these options - Extras - Additional tweaks and options + Редактор кольорів + Змінити системні кольори + Заокруглення інтерфейсу + Змінити радіус заокруглення інтерфейсу + Рядок і стовпчик + Змінити рядки та стовпчики плиток швидких налаштувань + Значки та підписи + Змінити параметри значків та підписів + Розмір плитки швидких налаштувань + Змінити висоту плиток швидких налаштувань + Відступи панелі швидких налаштувань + Змінити відступи панелі швидких налаштувань + Рядок стану + Змінити вигляд рядка стану + Панель навігації + Змінити панель навігації + Панель гучності + Змінити дизайн панелі гучності + Медіаплеєр + Змінити вигляд медіаплеєра + Різне + Різні налаштування + Меню Xposed + LSPosed обов\'язковий для цих параметрів + Додатково + Додаткові твіки та налаштування - General - Language - App Icon - Default Icon - Themed Icon - Retro Icon - App Theme - Light Theme - Dark Theme - Follow System - Update - Check For Update - Current version: %s - Auto Update - Check for new versions in background. - Check Over WiFi Only - Check for updates over wifi only. + Загальні + Мова + Значок застосунку + Типовий значок + Тематичний значок + Ретро значок + Тема застосунку + Світла тема + Темна тема + Системна тема + Оновлення + Перевірити наявність оновлень + Поточна версія: %s + Автооновлення + Перевіряти наявність нових версій у фоновому режимі. + Перевіряти лише по Wi-Fi + Перевіряти оновлення лише через Wi-Fi. Xposed - Show Warning - Show warning on how to re-optimize module in Xposed Menu. - Mod Applying Method - Automatically restart SystemUI - Automatically force reload UI - Notify for manual SystemUI restart - SystemUI restart required - Miscellaneous - Restart SystemUI After Boot - Some options like blur intensity doesn\'t take effect until systemui is restarted - Show Home Page Card - Show a beautiful card on the home page. - Clear App Cache - Clear caches generated due to the usage of custom fonts, images, or gifs. - Experimental - Try out experimental functionalities. - Disable Everything - Disable all Iconify overlays, colors, and miscellaneous changes. - About - Github Repository - Telegram Group - Credits - Thanking those who made this possible. + Показувати попередження + Показувати попередження про повторну оптимізацію модуля в меню Xposed. + Метод застосування модифікації + Автоматично перезавантажувати SystemUI + Примусово перезавантажувати інтерфейс + Сповіщати про перезапуск SystemUI вручну + Необхідно перезапустити SystemUI + Різне + Перезапустити SystemUI після завантаження + Деякі параметри, як-от інтенсивність розмиття, не набувають чинності, доки систему не буде перезапущено + Показувати картку на головній + Показувати красиву картку на головній. + Очистити кеш застосунку + Очищення кешу, створеного через використання власних шрифтів, зображень або gif-файлів. + Експериментальні + Спробувати експериментальні функції. + Вимкнути все + Вимкнути всі накладення значків, кольорів та різні зміни. + Про застосунок + Репозиторій Github + Група в Telegram + Подяка + Дякую тим, хто зробив це можливим. - Colored Battery - Change battery icon color - Media Icons - Change media player icons - Settings Icons - Change settings icon pack - Icon Pack Styles - Dual tone linear icon pack - Gradient shaded filled icon pack - Thick linear icon pack - Dual tone filled icon pack - Acherus sub icon pack - Thin line icon pack - Dual tone filled icon pack - Thin line icon pack - Oxygen OS icon pack - Thin outline icon pack - Thick dualtone icon pack - Rounded corner icon pack - Filled icon pack - Edgy icon pack + Кольорова батарея + Змінити колір значка батареї + Значки медіа + Змінити значки медіаплеєра + Значки налаштувань + Змінити набір значків налаштувань + Стилі набору значків + Двотональний набір лінійних значків + Градієнто-затінений заповнений набір значків + Товстий лінійний набір значків + Двотональний заповнений набір значків + Піднабір значків Acherus + Тонкий лінійний набір значків + Двотональний заповнений набір значків + Тонкий лінійний набір значків + Набір значків Oxygen OS + Тонкий контурний набір значків + Товстий двотонний набір значків + Заокруглений набір значків + Заповнений набір значків + Кутовий набір значків - Enable Colored Battery - Use custom color for battery icon - Background Color - Battery fill container color - Filled Color - Battery level indicator color + Ввімкнути кольорову батарею + Використовувати свій колір для значка батареї + Колір тла + Колір контейнера для заливки батареї + Колір заливки + Колір індикатора рівня заряду батареї Supported Music Player Not Found Android 13 Default Player @@ -216,105 +216,105 @@ Tapered\nRectangle Vessel Rohie Meow - Force Round + Тільки коло - Basic Colors - Change primary and secondary color - Monet Engine - Override monet color palette - Stock Colors - Monet Accent - Use system monet as accent - Monet Gradient - Use system monet as gradient - Dark Theme - Pitch Black (Dark) - Enable pitch black dark theme - Pitch Black (Amoled) - Enable pitch black amoled theme - Misc. - Minimal QS Panel - Remove top shade of QS panel - Disable System Monet - Helps to retain custom colors\nSystemUI restart required + Основні кольори + Змінити основний та додатковий колір + Рушій Monet + Перевизначити палітру кольорів Monet + Основні кольори + Акцент Monet + Використовувати Monet як системний акцент + Градієнт Monet + Використовувати Monet як системний градієнт + Темна тема + Суцільна темрява (Темна) + Ввімкнути тему «Суцільна темрява (Темна)» + Суцільна темрява (Чорна) + Ввімкнути тему «Суцільна темрява (Чорна)» + Різне + Мінімалістична панель швидких налаштувань + Прибрати верхній відтінок панелі швидких налаштувань + Вимкнути системний Monet + Допомагає зберегти користувацькі кольори\nНеобхідне перезавантаження SystemUI - Primary Color - Pick primary accent color - Secondary Color - Pick secondary accent color + Основний колір + Вибрати основний колір акценту + Додатковий колір + Вибрати додатковий колір акценту - Accurate Shades - Disable this to get exact chosen colors - Monet Style - Neutral - Monochrome - Tonal Spot - Vibrant - Rainbow - Expressive - Fidelity - Fruit Salad - Content - Primary Accent Saturation - Secondary Accent Saturation - Background Saturation - Background Lightness + Точні відтінки + Вимкніть це, щоб отримати точні відтінки + Стиль Monet + Нейтральний + Монохромний + Тональна пляма + Яскравий + Різнобарвний + Виразний + Точний + Фруктовий салат + Вміст + Основна насиченість акценту + Додаткова насиченість акценту + Насиченість тла + Яскравість тла - Corner Radius - Internet - RIP in Peace - Airplane - Off - Location - Off + Радіус заокруглення + Інтернет + Спочивай з миром + У літаку + Вимк + Розташування + Вимк Bluetooth - On + Ввімк - Certain combinations may not be compatible with certain ROMs. In such instances, simply experiment with alternative combinations until you find the one that best suits your needs. - Quick QS Panel Row - QS Panel Row - QS Panel Column + Певні комбінації можуть бути несумісними з певними прошивками. У таких випадках просто поекспериментуйте з альтернативними комбінаціями, поки не знайдете ту, яка найкраще підходить для вас. + Рядків згорнутої панелі швидких налаштувань + Рядків панелі швидких налаштувань + Стовпців панелі швидких налаштувань - Size and Position - Hide Label - Remove QS tile labels - Text Size - Icon Size - Move Icon - QS Text Color - Normal + Розмір і розташування + Приховати підписи + Приховати підписи панелі швидких налаштувань + Розмір тексту + Розмір значків + Перемістити значок + Колір тексту панелі швидких налаштувань + Звичайний Pixel - Always White - Title white, subtitle white - Always White v2 - Title white, subtitle accent - Follow System - Title system, subtitle system - Follow System v2 - Title system, subtitle accent - Fix Text Color - Use if above ones did not work - Follow Accent - Title accent, subtitle accent + Завжди білий + Білий заголовок і підзаголовок + Завжди білий v2 + Білий заголовок і акцент для підзаголовка + Як у системі + Системний заголовок і підзаголовок + Як у системі v2 + Системний заголовок і акцент для підзаголовка + Виправити колір тексту + Використайте, якщо наведені вище не спрацювали + Як в акценту + Акцент для заголовка та підзаголовка - Portrait Mode - Landscape Mode - Non-Expanded Height - Expanded Height + Портретний режим + Альбомний режим + Нерозгорнута висота + Розгорнута висота - QQS Panel Top Margin - QS Panel Top Margin + Верхній відступ панелі швидких налаштувань + Верхнє поле швидких налаштувань - Spacing - Left Padding - Right Padding - Height - Color - Color Tint - Tint statusbar icons and texts - Default System Tint - Monet/Accent Tint - Custom Tint (Color Picker) + Інтервал + Лівий відступ + Правий відступ + Висота + Колір + Колір відтінку + Відтінок значків рядка стану та тексту + Типовий системний відтінок + Monet / Акцент відтінки + Свій колір (Вибір кольору) Display Mode Fullscreen @@ -367,111 +367,111 @@ Outline Neumorph Outline Create Module - Module created successfully - Read Carefully! - This option will create a magisk module inside Download folder in your Internal Storage. Flash the module named IconifyCompanion.zip in Magisk. Always uninstall previous Iconify Companion module (if installed) and reboot before flashing new one.\n\nNote:\n• Uninstall the module before updating rom.\n• Recreate the module if you change or update rom.\n• Do not flash a module which wasn\'t created based on your rom. + Модуль успішно створено + Уважно прочитайте! + Цей параметр створить модуль Magisk у теці «Завантаження».Прошийте модуль з назвою IconifyCompanion.zip у Magisk. Завжди видаляйте попередній модуль Iconify Companion (якщо він встановлений) і перезавантажуйтеся перед прошивкою нового.\n\nПримітка:\n• Видаліть модуль перед оновленням прошивки.\n• Перезавантажте модуль, якщо ви змінили або оновили прошивку.\n• Не прошивайте модуль, який не був створений для вашої прошивки. - Media Player Preview - Music Title - Artist Name - Phone speaker - Background Color - Accent Background - Make background follow accent - System Background - Make background follow system - Pitch Black Background - Make background pitch black + Передперегляд медіаплеєра + Назва пісні + Ім\'я виконавця + Динамік телефона + Колір тла + Тло акценту + Встановити тло як в акценту + Системне тло + Встановити тло як у системі + Тло «Суцільна темрява» + Встановити тло «Суцільна темрява» - Tablet Mode - Tablet Landscape - Also known as Better QS - Notch Bar Killer - Kill empty space of notch bar - Tablet Header - Enable large screen shade header - Privacy Chip - Accent Privacy Chip - Make privacy chip accent colored - Media Player - Disable Progress Wave - Disable progress bar wave animation + Режим планшета + Планшет (Альбомний) + Також відомий як Better QS + Прибрати виріз екрана + Прибрати пусте місце вирізу + Планшетний заголовок + Ввімкнути великий заголовок тіні екрана + Індикатор приватності + Акцентований індикатор приватності + Зробити колір індикатора приватності як в акценту + Медіаплеєр + Вимкнути хвилю прогресу + Вимкнути анімацію хвилі прогресу - Before enabling Iconify from LSPosed modules, long press on Iconify and click on Re-optimize. After that enable Iconify and restart your SystemUI. This is necessary for a smoother experience. - You are currently in Xposed Only mode. This requires iconify to be enabled in LSPosed app. Also make sure that Iconify module is shown in Magisk manager. To get access to all features, clear data of iconify app and go through the installation process! - Module Not Activated - System service not running - Transparency & Blur - Enable QS blur and transparency - Themes - Personalize with themes - Quick Settings - Tweaks related to QS panel - Battery Style - Customize battery icon view - Header Image - Add custom image on QS panel - Header Clock - Add custom clock on QS panel - Lockscreen Clock - Add custom clock on lockscreen - Depth Wallpaper - Show iOS like depth wallpaper - Background Chip - Add colored chip behind clock - Others - Miscellaneous xposed tweaks + Перш ніж увімкнути Iconify з модулями LSPosed, натисніть і утримуйте кнопку Iconify, а потім натисніть «Re-optimize». Після цього увімкніть Iconify і перезапустіть SystemUI. Це необхідно для більш плавної роботи. + Наразі ви перебуваєте у режимі «Тільки Xposed». Для цього потрібно, щоб в застосунку LSPosed була ввімкнений Iconify. Також переконайтеся, що модуль Iconify показується в Magisk manager. Щоб отримати доступ до всіх функцій, очистіть дані застосунку Iconify та пройдіть процес встановлення! + Модуль не активовано + Системна служба не працює + Прозорість та розмиття + Увімкнути розмивання та прозорість швидких налаштувань + Теми + Персоналізувати з темами + Швидкі налаштування + Твіки панелі швидких налаштувань + Стиль батареї + Налаштування вигляду значка батареї + Зображення у заголовку + Додати своє зображення на панель швидких налаштувань + Годинник в заголовку + Додати свій годинник на панель швидких налаштувань + Годинник на екрані блокування + Додати свій годинник на екран блокування + Шпалери з ефектом глибини + Показувати шпалери з ефектом глибини як в iOS + Тло годинника та значка + Додати кольорове тло за годинником та значками рядка стану + Інше + Різні твіки xposed - Transparency - Transparent QS Panel - Make QS panel background transparent - Transparency Alpha - Transparent Notif Shade Only - Make only notification shade transparent - Dim Lockscreen Wallpaper - Suitable for light-colored wallpapers - Blur - Window Level Blur - Requires reboot to work - Aggressive Blur Enabler - Might bootloop in some roms - Blur Intensity + Прозорість + Прозорість панелі швидких налаштувань + Зробити тло панелі швидких налаштувань прозорим + Прозорість каналу Альфа + Прозорість тільки тла сповіщень + Зробити прозорим тільки тло сповіщень + Затемнити шпалери екрану блокування + Підходить для світлих шпалер + Розмиття + Рівень розмиття вікна + Необхідно перезавантажити для початку роботи + Примусове ввімкнення розмиття + Може виникнути постійне перезавантаження в деяких прошивках + Інтенсивність розмития - For Pixel Roms - Light Theme - Light QS theme in light mode\nMust use custom QS Shape - Dual Tone - Use different color for header - For Custom Roms - Pixel Black Theme - Black QS theme in light mode\nMust use Pixel QS Shape\nSwitch dark theme to fix text color - Translucent Theme - Fluid QS Theme - Two tone translucent QS theme\nSwitch theme to fix color\nDo not use custom shapes - Notification Transparency - Notification transparency for Fluid QS\nDo not use custom notification style - Power Menu Transparency - Power menu transparency for Fluid QS\nDo not use custom notification style - Others - Fix Notification Color - Fix custom notification style on android 14 + Для прошивок Pixel + Світла тема + Світла тема швидких налаштувань у світловому режимі\nНеобхідно використовувати свою форму плиток + Двотоновий + Використовувати інший колір для заголовка + Для користувальницьких прошивок + Чорна тема Pixel + Чорна тема швидких налаштувань у світлому режимі\nНеобхідно використовувати форму плиток Pixel\nПеремкніть темну тему для виправлення кольору тексту + Напівпрозора тема + Fluid тема швидких налаштувань + Двоколірна напівпрозора тема швидких налаштувань\nПеремкніть тему, щоби виправити колір\nНе використовуйте користувацькі форми + Прозорість сповіщень + Прозорість сповіщень для швидких налаштувань Fluid\nНе використовуйте власний стиль сповіщень + Прозорість меню живлення + Прозорість меню живлення для швидких налаштувань Fluid\nНе використовуйте власний стиль сповіщень + Інше + Виправити колір сповіщень + Виправити користувацький стиль сповіщень на Android 14 - QS Tile - Vertical QS Tile - Show label below QS icon - Hide QS Tile Label - Use only with vertical tiles - Text Size Scaling - QS Margin - QS Elements - Hide Silent Text - Hide silent text shown as header of silent notifications (Requires SystemUI restart) - Hide Footer Buttons - Hide footer buttons shown under notification stack + Плитки швидких налаштувань + Вертикальні плитки швидких налаштувань + Показувати підпис під значком швидких налаштувань + Приховати підпис плиток швидких налаштувань + Використовувати тільки вертикальні плитки + Масштабування розміру тексту + Відступи швидких налаштувань + Елементи швидких налаштувань + Приховати напис «Без звуку» в сповіщеннях + Приховати напис «Без звуку», що показується у заголовку беззвучних сповіщень (Потребує перезапуску SystemUI) + Приховати кнопки нижнього колонтитула + Приховати кнопки нижнього колонтитула, показані під купою сповіщень - Battery Style - Battery Width - Battery Height + Стиль батареї + Ширина батареї + Висота батареї Battery Margin Hide Battery Keep only charging icon and percentage @@ -522,59 +522,59 @@ Portrait Lorn Portrait Mx Portrait Airoo - Landscape R Style A - Landscape L Style A - Landscape R Style B - Landscape L Style B - Landscape iOS 15 - Landscape iOS 16 - Portrait Origami - Landscape Smiley - Landscape MIUI Pill - Landscape L ColorOS - Landscape R ColorOS - Landscape Battery A - Landscape Battery B - Landscape Battery C - Landscape Battery D - Landscape Battery E - Landscape Battery F - Landscape Battery G - Landscape Battery H - Landscape Battery I - Landscape Battery J - Landscape Battery K - Landscape Battery L - Landscape Battery M - Landscape Battery N - Landscape Battery O - Circle Battery - Dotted Circle Battery - Filled Circle Battery + Горизонтальний П, стиль A + Горизонтальний Л, стиль A + Горизонтальний П, стиль B + Горизонтальний Л, стиль B + Альбомний iOS 15 + Альбомний iOS 16 + Портретний оригамі + Горизонтальний смайлик + Горизонтальна пігулка MIUI + Горизонтальний Л ColorOS + Горизонтальний П ColorOS + Горизонтальна батарея A + Горизонтальна батарея B + Горизонтальна батарея C + Горизонтальна батарея D + Горизонтальна батарея E + Горизонтальна батарея F + Горизонтальна батарея G + Горизонтальна батарея H + Горизонтальна батарея I + Горизонтальна батарея J + Горизонтальна батарея K + Горизонтальна батарея L + Горизонтальна батарея M + Горизонтальна батарея N + Горизонтальна батарея O + Кругла батарея + Пунктирне коло батареї + Заповнене коло батареї - Volume Percentage - Show percentage above volume slider - Safety Warning - Show warning on high volume + Відсотки гучності + Показати відсотки над повзунком гучності + Попередження про безпеку + Показувати попередження при високій гучності - Pick Header Image - Add header image on QS panel\nDo not select file from Recent - Pick Image - Image Height - Image Alpha - Bottom Fade Amount - Zoom To Fit - Image is stretched to fit by default - Hide in Landscape - Hide image in landscape mode - Alpha Gradient - Add faded effect to the header image + Вибрати зображення заголовка + Додати зображення заголовка на панель швидких налаштувань\nНе вибирайте файл з «Нещодавні» + Обрати зображення + Висота зображення + Прозорість зображення + Нижня величина затухання + Масштаб за розміром + По стандарту зображення розтягнуто + Сховати в альбомному режимі + Сховати зображення в альбомному режимі + Альфа градієнт + Додавання ефекту вицвітання до зображення заголовка - Custom Header Clock - Add a custom clock on QS panel - Clock Style - Clock Font - Use custom font for header clock\nDo not select file from Recent + Власний годинник в заголовку + Додати власний годинник на панель швидких налаштувань + Стиль годинника + Шрифт будильника + Використовувати власний шрифт для годинника в заголовку\nНе вибирайте файл з «Нещодавні» Custom Clock Color Custom color instead of primary color Clock Color Picker @@ -609,6 +609,10 @@ Use Custom Image Use custom image for lockscreen clock. Custom Image Picker + Custom Device Name + Set custom device name for lockscreen clock.\nKeep blank to use System\'s Device Name. + Custom User Name + Set custom user name for lockscreen clock.\nKeep blank to use System\'s User Name. Select Battery Charging Battery Discharging @@ -623,26 +627,26 @@ Animate wallpaper and fade away in AOD Foreground Image Foreground image for depth wallpaper - Foreground Image Alpha - Background Image - Background image for depth wallpaper - This feature is currently in beta stage. So bugs are expected.\n\nKnown Bug(s):\n• Tapping on lockscreen makes the wallpaper jump. - Parallax Effect - Move background and foreground layers at different speeds - Foreground Sensitivity - Background Sensitivity + Альфа-прозорість для переднього плану + Зображення на тлі + Зображення на тлі для шпалер з ефектом глибини + Наразі ця функція знаходиться на стадії бета-тестування. Тому можливі помилки.\n\nВідомі помилки:\n• Натискання на екран блокування змушує шпалери стрибати. + Ефект паралакса + Переміщувати тло і передній план з різними швидкостями + Чутливість переднього плану + Чутливість тла - Status Bar - Statusbar Clock Chip - Display chip behind statusbar clock - Statusbar Clock Color - Follow System - Transparent Text - Custom Color - Clock Color Picker - Set color of statubsar clock text - Status Icons - Chip Style + Рядок стану + Тло годинника в рядку стану + Показувати тло за годинником в рядку стану + Колір годинника в рядку стану + Як у системі + Прозорий текст + Свій колір + Палітра кольорів для годинника + Змінити колір тексту годинника в рядку стану + Значки рядка стану + Стиль тла Status Icons Chip Display chip behind status icons Chip Style diff --git a/app/src/main/res/values-vi-rVN/strings.xml b/app/src/main/res/values-vi-rVN/strings.xml index e039a2151..9a6fdbe80 100644 --- a/app/src/main/res/values-vi-rVN/strings.xml +++ b/app/src/main/res/values-vi-rVN/strings.xml @@ -609,6 +609,10 @@ Use Custom Image Use custom image for lockscreen clock. Custom Image Picker + Custom Device Name + Set custom device name for lockscreen clock.\nKeep blank to use System\'s Device Name. + Custom User Name + Set custom user name for lockscreen clock.\nKeep blank to use System\'s User Name. Select Battery Charging Battery Discharging @@ -761,7 +765,7 @@ Đã lưu cài đặt thành công Không có - kiểu %d + Style %d TIẾP TỤC Khởi động lại diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index ba96b9e1a..8464bc482 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -609,6 +609,10 @@ Use Custom Image Use custom image for lockscreen clock. Custom Image Picker + Custom Device Name + Set custom device name for lockscreen clock.\nKeep blank to use System\'s Device Name. + Custom User Name + Set custom user name for lockscreen clock.\nKeep blank to use System\'s User Name. 选择 电池充电 电池放电 @@ -761,7 +765,7 @@ 成功保存了设置 - 样式 %d + Style %d 继续 重启 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 15af9182b..3e83437c3 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -609,6 +609,10 @@ Use Custom Image Use custom image for lockscreen clock. Custom Image Picker + Custom Device Name + Set custom device name for lockscreen clock.\nKeep blank to use System\'s Device Name. + Custom User Name + Set custom user name for lockscreen clock.\nKeep blank to use System\'s User Name. Select Battery Charging Battery Discharging @@ -761,7 +765,7 @@ 成功存儲了設定 - 樣式 %d + Style %d 繼續 重新啓動 From 0bc7f64be07c31e153793d71d0843ca99f9f4c49 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Sun, 4 Aug 2024 12:05:00 +0200 Subject: [PATCH 059/369] Use String.format for Style names --- .../drdisagree/iconify/ui/fragments/XposedBackgroundChip.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedBackgroundChip.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedBackgroundChip.kt index f24dc02c7..b54d58915 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedBackgroundChip.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedBackgroundChip.kt @@ -168,7 +168,7 @@ class XposedBackgroundChip : BaseFragment() { clockContainer.background = ContextCompat.getDrawable(appContext, pack[i][0] as Int) val styleName = list.findViewById(R.id.style_name) - styleName.text = resources.getString(pack[i][1] as Int) + styleName.text = pack[i][1] as String list.setOnClickListener { RPrefs.putInt(CHIP_STATUSBAR_CLOCKBG_STYLE, i) @@ -205,7 +205,7 @@ class XposedBackgroundChip : BaseFragment() { iconContainer.background = ContextCompat.getDrawable(appContext, pack[i][0] as Int) val styleName = list.findViewById(R.id.style_name) - styleName.text = resources.getString(pack[i][1] as Int) + styleName.text = pack[i][1] as String list.setOnClickListener { RPrefs.putInt(CHIP_QSSTATUSICONS_STYLE, i) From faa90c6bde99de37ff8005278828b064468bd275 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Thu, 8 Aug 2024 21:29:35 +0200 Subject: [PATCH 060/369] Added a Switch for Statusbar Clock Size to avoid hooking when disabled --- .../com/drdisagree/iconify/common/Preferences.kt | 1 + .../iconify/ui/fragments/XposedOthers.kt | 16 ++++++++++++++++ .../iconify/xposed/modules/Miscellaneous.kt | 7 ++++++- .../main/res/layout/fragment_xposed_others.xml | 7 +++++++ app/src/main/res/values/strings.xml | 2 ++ 5 files changed, 32 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt index fcc2c5fdf..1d6b9d715 100644 --- a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt +++ b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt @@ -63,6 +63,7 @@ object Preferences { const val FIXED_STATUS_ICONS_SIDEMARGIN = "xposed_fixedstatusiconssidemargin" const val FIXED_STATUS_ICONS_TOPMARGIN = "xposed_fixedstatusiconstopmargin" const val HIDE_LOCKSCREEN_STATUSBAR = "xposed_hidelockscreenstatusbar" + const val SB_CLOCK_SIZE_SWITCH = "xposed_sbclocksizeswitch" const val SB_CLOCK_SIZE = "xposed_sbclocksize" const val HIDE_LOCKSCREEN_CARRIER = "xposed_hidelockscreencarrier" const val HIDE_LOCKSCREEN_LOCK_ICON = "xposed_hidelockscreenlockicon" diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedOthers.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedOthers.kt index 6ee409dec..51fa9651a 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedOthers.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedOthers.kt @@ -20,6 +20,7 @@ import com.drdisagree.iconify.common.Preferences.HIDE_STATUS_ICONS_SWITCH import com.drdisagree.iconify.common.Preferences.QSPANEL_HIDE_CARRIER import com.drdisagree.iconify.common.Preferences.QSPANEL_STATUSICONSBG_SWITCH import com.drdisagree.iconify.common.Preferences.SB_CLOCK_SIZE +import com.drdisagree.iconify.common.Preferences.SB_CLOCK_SIZE_SWITCH import com.drdisagree.iconify.config.RPrefs.getBoolean import com.drdisagree.iconify.config.RPrefs.getInt import com.drdisagree.iconify.config.RPrefs.putBoolean @@ -73,6 +74,16 @@ class XposedOthers : BaseFragment() { } // SB Clock Size + binding.sbClockSizeSwitch.isSwitchChecked = getBoolean(SB_CLOCK_SIZE_SWITCH, false) + binding.sbClockSizeSwitch.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> + binding.sbClockSize.visibility = if (isChecked) { + View.VISIBLE + } else { + View.GONE + } + putBoolean(SB_CLOCK_SIZE_SWITCH, isChecked) + } + binding.sbClockSize.sliderValue = getInt(SB_CLOCK_SIZE, 14) binding.sbClockSize.setOnSliderTouchListener(object : Slider.OnSliderTouchListener { override fun onStartTrackingTouch(slider: Slider) {} @@ -81,6 +92,11 @@ class XposedOthers : BaseFragment() { putInt(SB_CLOCK_SIZE, slider.value.toInt()) } }) + binding.sbClockSize.visibility = if (getBoolean(SB_CLOCK_SIZE_SWITCH, false)) { + View.VISIBLE + } else { + View.GONE + } // Hide lockscreen carrier binding.hideLockscreenCarrier.isSwitchChecked = getBoolean(HIDE_LOCKSCREEN_CARRIER, false) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt index 9a00a4add..1a3edc943 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt @@ -24,6 +24,7 @@ import com.drdisagree.iconify.common.Preferences.HIDE_LOCKSCREEN_STATUSBAR import com.drdisagree.iconify.common.Preferences.HIDE_STATUS_ICONS_SWITCH import com.drdisagree.iconify.common.Preferences.QSPANEL_HIDE_CARRIER import com.drdisagree.iconify.common.Preferences.SB_CLOCK_SIZE +import com.drdisagree.iconify.common.Preferences.SB_CLOCK_SIZE_SWITCH import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.HookRes.Companion.resParams import com.drdisagree.iconify.xposed.ModPack @@ -59,6 +60,7 @@ class Miscellaneous(context: Context?) : ModPack(context!!) { private var statusIcons: LinearLayout? = null private var statusIconContainer: LinearLayout? = null private var mobileSignalControllerParam: Any? = null + private var sbClockSizeSwitch = false private var sbClockSize = 14 private var mClockView: TextView? = null private var mCenterClockView: TextView? = null @@ -77,6 +79,7 @@ class Miscellaneous(context: Context?) : ModPack(context!!) { hideLockscreenStatusbar = getBoolean(HIDE_LOCKSCREEN_STATUSBAR, false) hideLockscreenLockIcon = getBoolean(HIDE_LOCKSCREEN_LOCK_ICON, false) hideDataDisabledIcon = getBoolean(HIDE_DATA_DISABLED_ICON, false) + sbClockSizeSwitch = getBoolean(SB_CLOCK_SIZE_SWITCH, false) sbClockSize = getInt(SB_CLOCK_SIZE, 14) } @@ -98,7 +101,7 @@ class Miscellaneous(context: Context?) : ModPack(context!!) { fixedStatusIconsA12() } - if (it == SB_CLOCK_SIZE) { + if (it == SB_CLOCK_SIZE_SWITCH || it == SB_CLOCK_SIZE) { setClockSize() } @@ -834,6 +837,8 @@ class Miscellaneous(context: Context?) : ModPack(context!!) { @SuppressLint("RtlHardcoded") private fun setClockSize() { + if (!sbClockSizeSwitch) return + if (mClockView != null) mClockView!!.setTextSize(TypedValue.COMPLEX_UNIT_SP, sbClockSize.toFloat()) if (mCenterClockView != null) mCenterClockView!!.setTextSize(TypedValue.COMPLEX_UNIT_SP, sbClockSize.toFloat()) if (mRightClockView != null) mRightClockView!!.setTextSize(TypedValue.COMPLEX_UNIT_SP, sbClockSize.toFloat()) diff --git a/app/src/main/res/layout/fragment_xposed_others.xml b/app/src/main/res/layout/fragment_xposed_others.xml index dc63b4acd..b50b270b5 100644 --- a/app/src/main/res/layout/fragment_xposed_others.xml +++ b/app/src/main/res/layout/fragment_xposed_others.xml @@ -45,6 +45,13 @@ android:layout_height="wrap_content" app:titleText="@string/section_title_status_bar" /> + + Hide carrier group from QS panel Hide Status Icons Remove time, date and battery icons + Custom Statusbar Clock Size + Set a custom size for Statusbar Clock Statusbar Clock Size Lock Screen Hide LS Carrier From 1b01ac49a579600840d26929961a8ae644fc2e91 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Fri, 9 Aug 2024 16:14:12 +0600 Subject: [PATCH 061/369] Bump AGP & dependencies --- gradle/libs.versions.toml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 0a32f3e59..19f3ad076 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -agp = "8.5.1" +agp = "8.5.2" appcompat = "1.7.0" bcpkixJdk18on = "1.78.1" circleindicator = "2.1.6" @@ -16,11 +16,11 @@ fadingedgelayout = "1.0.0" glide = "4.16.0" flexbox = "3.0.0" guava = "33.2.1-jre" -jsoup = "1.17.2" +jsoup = "1.18.1" kapt = "2.0.0" kotlin = "2.0.0" kotlinxCoroutinesAndroid = "1.8.1" -library = "8.5.1" +library = "8.5.2" libsuVersion = "5.2.2" lottie = "6.4.1" navigationUiKtx = "2.7.7" @@ -30,7 +30,7 @@ viewpager2 = "1.1.0" recyclerviewSelection = "1.1.0" recyclerview = "1.3.2" remotepreferences = "0.8" -workRuntime = "2.9.0" +workRuntime = "2.9.1" zip4j = "2.11.5" material = "1.12.0" parcelize = "2.0.0" From 7eff155335182404fb398effefdbff0c3641b345 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Sat, 10 Aug 2024 14:29:28 +0600 Subject: [PATCH 062/369] Volume Panel: Add option to fix invisible ringer icon --- .../drdisagree/iconify/common/Preferences.kt | 1 + .../iconify/ui/fragments/XposedVolumePanel.kt | 7 +++ .../iconify/xposed/modules/VolumePanel.kt | 55 ++++++++++++++++++- .../layout/fragment_xposed_volume_panel.xml | 7 +++ app/src/main/res/values/strings.xml | 2 + 5 files changed, 71 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt index fcc2c5fdf..d7644ef93 100644 --- a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt +++ b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt @@ -21,6 +21,7 @@ object Preferences { const val HIDE_QSLABEL_SWITCH = "xposed_hideqslabel" const val VOLUME_PANEL_PERCENTAGE = "xposed_volumepanelpercentage" const val VOLUME_PANEL_SAFETY_WARNING = "xposed_volumepanelsafetywarning" + const val VOLUME_COLORED_RINGER_ICON = "xposed_volumecoloredringericon" const val HEADER_IMAGE_SWITCH = "xposed_headerimage" const val HEADER_IMAGE_LANDSCAPE_SWITCH = "xposed_headerimagelandscape" const val HEADER_IMAGE_BOTTOM_FADE_AMOUNT = "xposed_headerimagebottomfadeamount" diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedVolumePanel.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedVolumePanel.kt index 621a9de8b..3c83e7995 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedVolumePanel.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedVolumePanel.kt @@ -9,6 +9,7 @@ import android.view.ViewGroup import android.widget.CompoundButton import com.drdisagree.iconify.R import com.drdisagree.iconify.common.Const.SWITCH_ANIMATION_DELAY +import com.drdisagree.iconify.common.Preferences.VOLUME_COLORED_RINGER_ICON import com.drdisagree.iconify.common.Preferences.VOLUME_PANEL_PERCENTAGE import com.drdisagree.iconify.common.Preferences.VOLUME_PANEL_SAFETY_WARNING import com.drdisagree.iconify.config.RPrefs.getBoolean @@ -55,6 +56,12 @@ class XposedVolumePanel : BaseFragment() { putBoolean(VOLUME_PANEL_SAFETY_WARNING, isChecked) } + // Colored ringer icon + binding.coloredRingerIcon.isSwitchChecked = getBoolean(VOLUME_COLORED_RINGER_ICON, false) + binding.coloredRingerIcon.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> + putBoolean(VOLUME_COLORED_RINGER_ICON, isChecked) + } + return view } } \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/VolumePanel.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/VolumePanel.kt index 2291f8c27..ee7eea2fb 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/VolumePanel.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/VolumePanel.kt @@ -2,16 +2,20 @@ package com.drdisagree.iconify.xposed.modules import android.annotation.SuppressLint import android.content.Context +import android.content.res.ColorStateList import android.view.Gravity import android.view.View import android.view.ViewGroup +import android.widget.ImageView import android.widget.LinearLayout import android.widget.TextView import com.drdisagree.iconify.common.Const.SYSTEMUI_PACKAGE +import com.drdisagree.iconify.common.Preferences.VOLUME_COLORED_RINGER_ICON import com.drdisagree.iconify.common.Preferences.VOLUME_PANEL_PERCENTAGE import com.drdisagree.iconify.common.Preferences.VOLUME_PANEL_SAFETY_WARNING import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.ModPack +import com.drdisagree.iconify.xposed.modules.utils.SettingsLibUtils import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.toPx import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge.hookAllMethods @@ -21,24 +25,73 @@ import de.robv.android.xposed.XposedHelpers.getObjectField import de.robv.android.xposed.XposedHelpers.setObjectField import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam import kotlin.math.ceil +import kotlin.properties.Delegates @SuppressLint("DiscouragedApi", "DefaultLocale") class VolumePanel(context: Context?) : ModPack(context!!) { private var showPercentage = false private var showWarning = true + private var coloredRingerIcon = false + private lateinit var mSelectedRingerIcon: ImageView; + private var ringerIconDefaultColor by Delegates.notNull(); + private var ringerIconTextColor by Delegates.notNull(); override fun updatePrefs(vararg key: String) { if (Xprefs == null) return showPercentage = Xprefs!!.getBoolean(VOLUME_PANEL_PERCENTAGE, false) showWarning = Xprefs!!.getBoolean(VOLUME_PANEL_SAFETY_WARNING, true) + coloredRingerIcon = Xprefs!!.getBoolean(VOLUME_COLORED_RINGER_ICON, false) + + if (key.isNotEmpty()) { + key[0].let { + if (it == VOLUME_COLORED_RINGER_ICON) { + setRingerIconColor() + } + } + } } override fun handleLoadPackage(loadPackageParam: LoadPackageParam) { + coloredSelectedRingerIcon(loadPackageParam) showVolumePercentage(loadPackageParam) } + private fun coloredSelectedRingerIcon(loadPackageParam: LoadPackageParam) { + val volumeDialogImplClass = findClass( + "$SYSTEMUI_PACKAGE.volume.VolumeDialogImpl", + loadPackageParam.classLoader + ) + + hookAllMethods(volumeDialogImplClass, "initDialog", object : XC_MethodHook() { + override fun afterHookedMethod(param: MethodHookParam) { + mSelectedRingerIcon = getObjectField( + param.thisObject, + "mSelectedRingerIcon" + ) as ImageView + + ringerIconDefaultColor = mSelectedRingerIcon.imageTintList!!.defaultColor + ringerIconTextColor = SettingsLibUtils.getColorAttrDefaultColor( + mSelectedRingerIcon.context, + android.R.attr.textColorPrimary + ) + + setRingerIconColor() + } + }) + } + + private fun setRingerIconColor() { + mSelectedRingerIcon.imageTintList = ColorStateList.valueOf( + if (coloredRingerIcon) { + ringerIconTextColor + } else { + ringerIconDefaultColor + } + ) + } + private fun showVolumePercentage(loadPackageParam: LoadPackageParam) { val volumeDialogImplClass = findClass( "$SYSTEMUI_PACKAGE.volume.VolumeDialogImpl", @@ -50,7 +103,7 @@ class VolumePanel(context: Context?) : ModPack(context!!) { if (!showPercentage) return val rowHeader: TextView = getObjectField( - param.args[0], + param.thisObject, "header" ) as TextView diff --git a/app/src/main/res/layout/fragment_xposed_volume_panel.xml b/app/src/main/res/layout/fragment_xposed_volume_panel.xml index 51637bfab..b1dd50388 100644 --- a/app/src/main/res/layout/fragment_xposed_volume_panel.xml +++ b/app/src/main/res/layout/fragment_xposed_volume_panel.xml @@ -36,6 +36,13 @@ app:summaryText="@string/safety_warning_desc" app:titleText="@string/safety_warning_title" /> + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c43362478..333aff883 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -593,6 +593,8 @@ Show percentage above volume slider Safety Warning Show warning on high volume + Colored Ringer Icon + Enable if selected ringer icon is invisible Pick Header Image From e2a55e982f5f69b0429958b4778372777d28feaa Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Sat, 10 Aug 2024 14:45:08 +0600 Subject: [PATCH 063/369] Clock Chip: Revert methods to fix missing mClockController --- .../iconify/xposed/modules/BackgroundChip.kt | 18 +- .../xposed/modules/utils/StatusBarClock.kt | 182 ++++++++++++------ 2 files changed, 134 insertions(+), 66 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/BackgroundChip.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/BackgroundChip.kt index d61d17160..e0d698ae7 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/BackgroundChip.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/BackgroundChip.kt @@ -38,10 +38,8 @@ import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.HookRes.Companion.resParams import com.drdisagree.iconify.xposed.ModPack import com.drdisagree.iconify.xposed.modules.utils.Helpers.findClassInArray +import com.drdisagree.iconify.xposed.modules.utils.StatusBarClock import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.toPx -import com.drdisagree.iconify.xposed.modules.utils.StatusBarClock.getCenterClockView -import com.drdisagree.iconify.xposed.modules.utils.StatusBarClock.getLeftClockView -import com.drdisagree.iconify.xposed.modules.utils.StatusBarClock.getRightClockView import com.drdisagree.iconify.xposed.modules.utils.StatusBarClock.setClockGravity import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge.hookAllMethods @@ -152,9 +150,9 @@ class BackgroundChip(context: Context?) : ModPack(context!!) { Bundle::class.java, object : XC_MethodHook() { override fun afterHookedMethod(param: MethodHookParam) { - mClockView = getLeftClockView(mContext, param) - mCenterClockView = getCenterClockView(mContext, param) - mRightClockView = getRightClockView(mContext, param) + mClockView = StatusBarClock.getLeftClockView(mContext, param) + mCenterClockView = StatusBarClock.getCenterClockView(mContext, param) + mRightClockView = StatusBarClock.getRightClockView(mContext, param) (getObjectField( param.thisObject, @@ -435,10 +433,10 @@ class BackgroundChip(context: Context?) : ModPack(context!!) { (clockView as TextView).paint.setXfermode(null) try { callMethod( - callStaticMethod(dependencyClass, "get", darkIconDispatcherClass), - "removeDarkReceiver", - clockView - ) + callStaticMethod(dependencyClass, "get", darkIconDispatcherClass), + "removeDarkReceiver", + clockView + ) } catch (ignored: Throwable) { callMethod( callMethod( diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/StatusBarClock.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/StatusBarClock.kt index ec6190183..2c8c46bb1 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/StatusBarClock.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/StatusBarClock.kt @@ -19,67 +19,137 @@ object StatusBarClock { private val TAG = "Iconify - ${StatusBarClock::class.java.simpleName}: " - fun getLeftClockView(mContext: Context, param: XC_MethodHook.MethodHookParam): View? { - return getClockView( - mContext, - param, - listOf("mClockView", "mLeftClock"), - "getClock", - "clock" - ) - } - - fun getCenterClockView(mContext: Context, param: XC_MethodHook.MethodHookParam): View? { - return getClockView( - mContext, - param, - listOf("mCenterClockView", "mCenterClock"), - "getCenterClock", - "clock_center" - ) ?: try { - (getObjectField(param.thisObject, "mCenterClockLayout") as LinearLayout).getChildAt(0) - } catch (ignored: Throwable) { - null + fun getLeftClockView(mContext: Context, param: XC_MethodHook.MethodHookParam) = try { + getObjectField(param.thisObject, "mClockView") as View + } catch (throwable1: Throwable) { + try { + getObjectField(param.thisObject, "mLeftClock") as View + } catch (throwable2: Throwable) { + try { + callMethod( + getObjectField( + param.thisObject, + "mClockController" + ), + "getClock" + ) as View + } catch (throwable3: Throwable) { + try { + val mActiveClock = getObjectField( + getObjectField( + param.thisObject, + "mClockController" + ), + "mActiveClock" + ) as View + val mLeftClockId = mContext.resources.getIdentifier( + "clock", + "id", + mContext.packageName + ) + + if (mActiveClock.id == mLeftClockId) { + mActiveClock + } else { + null + } + } catch (throwable4: Throwable) { + log(TAG + throwable4) + null + } + } } } - fun getRightClockView(mContext: Context, param: XC_MethodHook.MethodHookParam): View? { - return getClockView( - mContext, - param, - listOf("mRightClockView", "mRightClock"), - "getRightClock", - "clock_right" - ) - } - - @SuppressLint("DiscouragedApi") - private fun getClockView( - mContext: Context, - param: XC_MethodHook.MethodHookParam, - fieldNames: List, - methodName: String, - resourceIdName: String - ): View? { - for (fieldName in fieldNames) { + fun getCenterClockView(mContext: Context, param: XC_MethodHook.MethodHookParam) = try { + getObjectField(param.thisObject, "mCenterClockView") as View + } catch (throwable1: Throwable) { + try { + getObjectField( + param.thisObject, + "mCenterClock" + ) as View + } catch (throwable2: Throwable) { try { - return getObjectField(param.thisObject, fieldName) as View - } catch (ignored: Throwable) { + callMethod( + getObjectField( + param.thisObject, + "mClockController" + ), + "mCenterClockView" + ) as View + } catch (throwable3: Throwable) { + try { + val mActiveClock = getObjectField( + getObjectField( + param.thisObject, + "mClockController" + ), + "mActiveClock" + ) as View + val mCenterClockId = mContext.resources.getIdentifier( + "clock_center", + "id", + mContext.packageName + ) + + if (mActiveClock.id == mCenterClockId) { + mActiveClock + } else { + null + } + } catch (throwable4: Throwable) { + try { + (getObjectField( + param.thisObject, + "mCenterClockLayout" + ) as LinearLayout).getChildAt(0) + } catch (throwable5: Throwable) { + null + } + } } } + } + fun getRightClockView(mContext: Context, param: XC_MethodHook.MethodHookParam) = try { + getObjectField(param.thisObject, "mRightClockView") as View + } catch (throwable1: Throwable) { try { - return callMethod(getObjectField(param.thisObject, "mClockController"), methodName) as View - } catch (ignored: Throwable) { - } - - return try { - val mActiveClock = getObjectField(getObjectField(param.thisObject, "mClockController"), "mActiveClock") as View - val mClockId = mContext.resources.getIdentifier(resourceIdName, "id", mContext.packageName) - if (mActiveClock.id == mClockId) mActiveClock else null - } catch (throwable: Throwable) { - log(TAG + throwable) - null + getObjectField(param.thisObject, "mRightClock") as View + } catch (throwable2: Throwable) { + try { + callMethod( + getObjectField( + param.thisObject, + "mClockController" + ), + "mRightClockView" + ) as View + } catch (throwable3: Throwable) { + try { + val mActiveClock = getObjectField( + getObjectField( + param.thisObject, + "mClockController" + ), + "mActiveClock" + ) as View + val mRightClockId = mContext.resources.getIdentifier( + "clock_right", + "id", + mContext.packageName + ) + + if (mActiveClock.id == mRightClockId) { + mActiveClock + } else { + null + } + } catch (throwable4: Throwable) { + null + } + } } } @@ -89,7 +159,7 @@ object StatusBarClock { val layoutParams = clockView.layoutParams when (layoutParams) { - is LinearLayout.LayoutParams, -> { + is LinearLayout.LayoutParams -> { layoutParams.gravity = gravity } @@ -115,7 +185,7 @@ object StatusBarClock { else -> { Log.w( - "${TAG} LayoutParamsCheck", + "$TAG LayoutParamsCheck", "Unsupported gravity type for RelativeLayout: $gravity" ) } @@ -124,7 +194,7 @@ object StatusBarClock { else -> { Log.w( - "${TAG} LayoutParamsCheck", + "$TAG LayoutParamsCheck", "Unknown LayoutParams type: ${layoutParams.javaClass.name}" ) } From e140731d823fc3414ade6500da441e056fd6f434 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Sat, 10 Aug 2024 15:24:36 +0600 Subject: [PATCH 064/369] Fix gravity when changing statusbar clock size --- .../iconify/xposed/modules/Miscellaneous.kt | 64 +++++++++++-------- 1 file changed, 39 insertions(+), 25 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt index 1a3edc943..5252739df 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt @@ -32,9 +32,9 @@ import com.drdisagree.iconify.xposed.modules.utils.Helpers.findClassInArray import com.drdisagree.iconify.xposed.modules.utils.StatusBarClock.getCenterClockView import com.drdisagree.iconify.xposed.modules.utils.StatusBarClock.getLeftClockView import com.drdisagree.iconify.xposed.modules.utils.StatusBarClock.getRightClockView -import com.drdisagree.iconify.xposed.modules.utils.StatusBarClock.setClockGravity import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge.hookAllMethods +import de.robv.android.xposed.XposedBridge.log import de.robv.android.xposed.XposedHelpers.callMethod import de.robv.android.xposed.XposedHelpers.findAndHookMethod import de.robv.android.xposed.XposedHelpers.findClass @@ -805,10 +805,12 @@ class Miscellaneous(context: Context?) : ModPack(context!!) { loadPackageParam, "$SYSTEMUI_PACKAGE.statusbar.phone.CollapsedStatusBarFragment", "$SYSTEMUI_PACKAGE.statusbar.phone.fragment.CollapsedStatusBarFragment" - ) - if (collapsedStatusBarFragment == null) return + if (collapsedStatusBarFragment == null) { + log("$TAG - applyClockSize: CollapsedStatusBarFragment not found") + return + } findAndHookMethod(collapsedStatusBarFragment, "onViewCreated", @@ -822,14 +824,31 @@ class Miscellaneous(context: Context?) : ModPack(context!!) { setClockSize() - val textClock = mClockView ?: mCenterClockView ?: mRightClockView as TextView - textClock.addTextChangedListener(object : TextWatcher { - override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {} - override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {} + val textChangeListener = object : TextWatcher { + override fun beforeTextChanged( + s: CharSequence, + start: Int, + count: Int, + after: Int + ) { + } + + override fun onTextChanged( + s: CharSequence, + start: Int, + before: Int, + count: Int + ) { + } + override fun afterTextChanged(s: Editable) { setClockSize() } - }) + } + + mClockView?.addTextChangedListener(textChangeListener) + mCenterClockView?.addTextChangedListener(textChangeListener) + mRightClockView?.addTextChangedListener(textChangeListener) } }) @@ -839,25 +858,20 @@ class Miscellaneous(context: Context?) : ModPack(context!!) { private fun setClockSize() { if (!sbClockSizeSwitch) return - if (mClockView != null) mClockView!!.setTextSize(TypedValue.COMPLEX_UNIT_SP, sbClockSize.toFloat()) - if (mCenterClockView != null) mCenterClockView!!.setTextSize(TypedValue.COMPLEX_UNIT_SP, sbClockSize.toFloat()) - if (mRightClockView != null) mRightClockView!!.setTextSize(TypedValue.COMPLEX_UNIT_SP, sbClockSize.toFloat()) - - setClockGravity( - mClockView, - Gravity.LEFT or Gravity.CENTER - ) - - setClockGravity( - mCenterClockView, - Gravity.CENTER - ) + mClockView?.let { + it.setTextSize(TypedValue.COMPLEX_UNIT_SP, sbClockSize.toFloat()) + it.requestLayout() + } - setClockGravity( - mRightClockView, - Gravity.RIGHT or Gravity.CENTER - ) + mCenterClockView?.let { + it.setTextSize(TypedValue.COMPLEX_UNIT_SP, sbClockSize.toFloat()) + it.requestLayout() + } + mRightClockView?.let { + it.setTextSize(TypedValue.COMPLEX_UNIT_SP, sbClockSize.toFloat()) + it.requestLayout() + } } companion object { From da437ea2a379f514790636c851d14734695a87fa Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Mon, 12 Aug 2024 02:18:17 +0600 Subject: [PATCH 065/369] Volume Panel: Fix volume percentage --- .../java/com/drdisagree/iconify/xposed/modules/VolumePanel.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/VolumePanel.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/VolumePanel.kt index ee7eea2fb..8cb603a64 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/VolumePanel.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/VolumePanel.kt @@ -103,7 +103,7 @@ class VolumePanel(context: Context?) : ModPack(context!!) { if (!showPercentage) return val rowHeader: TextView = getObjectField( - param.thisObject, + param.args[0], "header" ) as TextView From 320cc937557571977af932229e2553ddf2747d8d Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Mon, 12 Aug 2024 17:19:23 +0600 Subject: [PATCH 066/369] Depth Wallpaper: Add MLKit-based subject extraction for dynamic depth wallpapers (#562) * Initial commit of MLKit Depth Wallpaper * Removed XposedBridge.log * Force connect root service in loadModPacks * RootProviderProxy * Include various fixes for MLKit, RootService and AIDL * Fix tags * Ignore if the main shell was already created * Fix context initialize exception * Fix toast not showing * Fix toast * Extract string resources * Remove root service connection log * Depth Wallpaper: Add support for custom images * Lockscreen Clock: Fix support for depth wallpaper --------- Co-authored-by: DHD2280 --- app/build.gradle.kts | 5 + app/proguard-rules.pro | 14 +- app/src/main/AndroidManifest.xml | 13 +- .../iconify/IExtractSubjectCallback.aidl | 6 + .../iconify/IRootProviderProxy.aidl | 10 + .../com/drdisagree/iconify/SplashActivity.kt | 2 + .../drdisagree/iconify/common/Preferences.kt | 2 + .../iconify/services/RootProviderProxy.kt | 193 ++++++ .../ui/fragments/XposedDepthWallpaper.kt | 112 +++- .../drdisagree/iconify/xposed/EntryList.kt | 5 +- .../drdisagree/iconify/xposed/HookEntry.kt | 157 ++++- .../xposed/modules/DepthWallpaperA14.kt | 577 ++++++++++++++++++ .../iconify/xposed/modules/LockscreenClock.kt | 21 +- .../xposed/modules/themes/QSLightThemeA12.kt | 4 +- .../xposed/modules/themes/QSLightThemeA13.kt | 4 +- .../xposed/modules/themes/QSLightThemeA14.kt | 4 +- .../modules/utils/BitmapSubjectSegmenter.kt | 106 ++++ .../iconify/xposed/modules/utils/Helpers.kt | 38 +- .../iconify/xposed/utils/SystemUtil.kt | 39 +- .../fragment_xposed_depth_wallpaper.xml | 17 + app/src/main/res/values-af-rZA/strings.xml | 2 +- app/src/main/res/values-ar-rSA/strings.xml | 2 +- app/src/main/res/values-ca-rES/strings.xml | 2 +- app/src/main/res/values-cs-rCZ/strings.xml | 2 +- app/src/main/res/values-da-rDK/strings.xml | 2 +- app/src/main/res/values-de-rDE/strings.xml | 2 +- app/src/main/res/values-el-rGR/strings.xml | 2 +- app/src/main/res/values-es-rES/strings.xml | 2 +- app/src/main/res/values-fa-rIR/strings.xml | 2 +- app/src/main/res/values-fi-rFI/strings.xml | 2 +- app/src/main/res/values-fr-rFR/strings.xml | 2 +- app/src/main/res/values-hu-rHU/strings.xml | 2 +- app/src/main/res/values-in-rID/strings.xml | 2 +- app/src/main/res/values-it-rIT/strings.xml | 2 +- app/src/main/res/values-iw-rIL/strings.xml | 2 +- app/src/main/res/values-ja-rJP/strings.xml | 2 +- app/src/main/res/values-ko-rKR/strings.xml | 2 +- app/src/main/res/values-nl-rNL/strings.xml | 2 +- app/src/main/res/values-no-rNO/strings.xml | 2 +- app/src/main/res/values-pl-rPL/strings.xml | 2 +- app/src/main/res/values-pt-rBR/strings.xml | 2 +- app/src/main/res/values-pt-rPT/strings.xml | 2 +- app/src/main/res/values-ro-rRO/strings.xml | 2 +- app/src/main/res/values-ru-rRU/strings.xml | 2 +- app/src/main/res/values-sr-rSP/strings.xml | 2 +- app/src/main/res/values-sv-rSE/strings.xml | 2 +- app/src/main/res/values-tr-rTR/strings.xml | 2 +- app/src/main/res/values-uk-rUA/strings.xml | 2 +- app/src/main/res/values-vi-rVN/strings.xml | 2 +- app/src/main/res/values-zh-rCN/strings.xml | 2 +- app/src/main/res/values-zh-rTW/strings.xml | 2 +- app/src/main/res/values/arrays.xml | 3 + app/src/main/res/values/strings.xml | 12 +- gradle/libs.versions.toml | 4 + 54 files changed, 1306 insertions(+), 104 deletions(-) create mode 100644 app/src/main/aidl/com/drdisagree/iconify/IExtractSubjectCallback.aidl create mode 100644 app/src/main/aidl/com/drdisagree/iconify/IRootProviderProxy.aidl create mode 100644 app/src/main/java/com/drdisagree/iconify/services/RootProviderProxy.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/xposed/modules/DepthWallpaperA14.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/BitmapSubjectSegmenter.kt diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 92623826b..7ec4584f7 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -65,6 +65,7 @@ android { viewBinding = true dataBinding = true buildConfig = true + aidl = true } compileOptions { @@ -190,6 +191,10 @@ dependencies { // Fading Edge Layout implementation(libs.fadingedgelayout) + // Google Subject Segmentation - MLKit + implementation(libs.com.google.android.gms.play.services.mlkit.subject.segmentation) + implementation(libs.play.services.base) + // Misc implementation(libs.androidx.appcompat) implementation(libs.androidx.constraintlayout) diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index bd62f20fe..7dbf3a2fb 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -29,6 +29,9 @@ -keep class com.drdisagree.iconify.xposed.** { (android.content.Context); } +-keep class com.drdisagree.iconify.services.RootProviderProxy +-keep class com.drdisagree.iconify.IRootProviderProxy +-keepclassmembers class com.drdisagree.iconify.services.RootProviderProxy # EventBus -keepattributes *Annotation* @@ -59,4 +62,13 @@ # Obfuscation -repackageclasses --allowaccessmodification \ No newline at end of file +-allowaccessmodification + +# Root Service +-keep class com.drdisagree.iconify.services.RootProviderProxy { *; } +-keep class com.drdisagree.iconify.IRootProviderProxy { *; } + +# AIDL Classes +-keep interface **.I* { *; } +-keep class **.I*$Stub { *; } +-keep class **.I*$Stub$Proxy { *; } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index fa1853191..fbf9bb1a3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -22,7 +22,8 @@ - --> + + @@ -172,6 +180,9 @@ + ( + *context.resources.getStringArray(R.array.root_requirement) + ) + } + + @Throws(RemoteException::class) + override fun runCommand(command: String): Array { + try { + ensureEnvironment() + + val result = Shell.cmd(command).exec().out + return result.toTypedArray() + } catch (ignored: Throwable) { + return arrayOfNulls(0) + } + } + + @Throws(RemoteException::class) + override fun enableOverlay(packageName: String) { + ensureEnvironment() + + try { + Shell.cmd( + "cmd overlay enable --user current $packageName", + "cmd overlay set-priority $packageName highest" + ).submit() + } catch (throwable: Throwable) { + Log.e(TAG, "enableOverlay: ", throwable) + } + } + + @Throws(RemoteException::class) + override fun disableOverlay(packageName: String) { + ensureEnvironment() + + try { + Shell.cmd( + "cmd overlay disable --user current $packageName", + ).submit() + } catch (throwable: Throwable) { + Log.e(TAG, "disableOverlay: ", throwable) + } + } + + @Throws(RemoteException::class) + override fun extractSubject( + input: Bitmap, + resultPath: String, + callback: IExtractSubjectCallback + ) { + ensureEnvironment() + + try { + val bitmapSubjectSegmenter = BitmapSubjectSegmenter(applicationContext) + + bitmapSubjectSegmenter + .segmentSubject( + input, + object : SegmentResultListener { + override fun onStart() { + callback.onStart(getString(R.string.depth_wallpaper_subject_extraction_started)) + } + + override fun onSuccess(result: Bitmap?) { + try { + val tempFile = File.createTempFile( + "depth_wallpaper_fg", + ".png" + ) + + val outputStream = FileOutputStream(tempFile) + result!!.compress(Bitmap.CompressFormat.PNG, 100, outputStream) + + outputStream.close() + result.recycle() + + val isSuccess = FileUtil.moveToIconifyHiddenDir( + tempFile.absolutePath, + resultPath + ) + + tempFile.delete() + + callback.onResult( + true, + if (isSuccess) { + getString(R.string.depth_wallpaper_subject_extraction_success) + } else { + getString(R.string.depth_wallpaper_subject_extraction_failed) + } + ) + } catch (throwable: Throwable) { + Log.e( + TAG, + "BitmapSubjectSegmenter - onSuccess: $throwable" + ) + + callback.onResult( + false, + getString(R.string.depth_wallpaper_subject_extraction_failed) + ) + } + } + + override fun onFail() { + bitmapSubjectSegmenter.checkModelAvailability { moduleAvailabilityResponse: ModuleAvailabilityResponse? -> + callback.onResult( + false, + if (moduleAvailabilityResponse?.areModulesAvailable() == true) { + getString(R.string.depth_wallpaper_subject_extraction_failed) + } else { + getString(R.string.depth_wallpaper_missing_ai_model) + } + ) + } + } + }) + } catch (throwable: Throwable) { + Log.e(TAG, "BitmapSubjectSegmenter - segmentSubject: $throwable") + + callback.onResult( + false, + getString(R.string.depth_wallpaper_subject_extraction_failed) + ) + } + } + + @Throws(RemoteException::class) + private fun ensureEnvironment() { + if (!rootGranted) { + throw RemoteException("Root permission denied") + } + + ensureSecurity(getCallingUid()) + } + + @Throws(RemoteException::class) + private fun ensureSecurity(uid: Int) { + for (packageName in packageManager.getPackagesForUid(uid)!!) { + if (rootAllowedPacks.contains(packageName)) return + } + + throw RemoteException("$packageName is not allowed to use root commands") + } + } + + companion object { + var TAG: String = "Iconify - ${RootProviderProxy::class.java.simpleName}: " + private var rootAllowedPacks: List = listOf() + private var rootGranted: Boolean = false + } +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedDepthWallpaper.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedDepthWallpaper.kt index 17ae285c0..55678197e 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedDepthWallpaper.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedDepthWallpaper.kt @@ -1,6 +1,7 @@ package com.drdisagree.iconify.ui.fragments import android.app.Activity +import android.os.Build import android.os.Bundle import android.os.Handler import android.os.Looper @@ -15,11 +16,13 @@ import com.drdisagree.iconify.Iconify.Companion.appContext import com.drdisagree.iconify.Iconify.Companion.appContextLocale import com.drdisagree.iconify.R import com.drdisagree.iconify.common.Const.SWITCH_ANIMATION_DELAY +import com.drdisagree.iconify.common.Preferences.CUSTOM_DEPTH_WALLPAPER_SWITCH import com.drdisagree.iconify.common.Preferences.DEPTH_WALLPAPER_BACKGROUND_MOVEMENT_MULTIPLIER import com.drdisagree.iconify.common.Preferences.DEPTH_WALLPAPER_CHANGED import com.drdisagree.iconify.common.Preferences.DEPTH_WALLPAPER_FADE_ANIMATION import com.drdisagree.iconify.common.Preferences.DEPTH_WALLPAPER_FOREGROUND_ALPHA import com.drdisagree.iconify.common.Preferences.DEPTH_WALLPAPER_FOREGROUND_MOVEMENT_MULTIPLIER +import com.drdisagree.iconify.common.Preferences.DEPTH_WALLPAPER_ON_AOD import com.drdisagree.iconify.common.Preferences.DEPTH_WALLPAPER_PARALLAX_EFFECT import com.drdisagree.iconify.common.Preferences.DEPTH_WALLPAPER_SWITCH import com.drdisagree.iconify.common.Resources.DEPTH_WALL_BG_DIR @@ -35,8 +38,11 @@ import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader import com.drdisagree.iconify.utils.FileUtil.getRealPath import com.drdisagree.iconify.utils.FileUtil.moveToIconifyHiddenDir import com.drdisagree.iconify.utils.SystemUtil +import com.drdisagree.iconify.xposed.modules.utils.BitmapSubjectSegmenter +import com.google.android.gms.common.moduleinstall.ModuleAvailabilityResponse import com.google.android.material.slider.Slider + class XposedDepthWallpaper : BaseFragment() { private lateinit var binding: FragmentXposedDepthWallpaperBinding @@ -127,10 +133,43 @@ class XposedDepthWallpaper : BaseFragment() { putBoolean(DEPTH_WALLPAPER_SWITCH, isSwitchChecked) updateEnabledState() - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) + if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.TIRAMISU) { + Handler(Looper.getMainLooper()).postDelayed( + { SystemUtil.handleSystemUIRestart() }, + SWITCH_ANIMATION_DELAY + ) + } + } + BitmapSubjectSegmenter(requireContext()) + .checkModelAvailability { moduleAvailabilityResponse: ModuleAvailabilityResponse? -> + binding.depthWallpaper.setSummary( + getString( + R.string.enable_depth_wallpaper_desc, + getString( + if (moduleAvailabilityResponse?.areModulesAvailable() == true) { + R.string.depth_wallpaper_model_ready + } else { + R.string.depth_wallpaper_model_not_available + } + ) + ) + ) + } + + // Custom depth wallpaper + binding.customDepthWallpaper.visibility = + if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.TIRAMISU) { + View.GONE + } else { + View.VISIBLE + } + binding.customDepthWallpaper.isSwitchChecked = getBoolean( + CUSTOM_DEPTH_WALLPAPER_SWITCH, + false + ) + binding.customDepthWallpaper.setSwitchChangeListener { _: CompoundButton?, isSwitchChecked: Boolean -> + putBoolean(CUSTOM_DEPTH_WALLPAPER_SWITCH, isSwitchChecked) + updateEnabledState() } // Foreground image @@ -152,18 +191,40 @@ class XposedDepthWallpaper : BaseFragment() { } }) + // Show on AOD + binding.depthWallpaperOnAod.visibility = + if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.TIRAMISU) { + View.GONE + } else { + View.VISIBLE + } + binding.depthWallpaperOnAod.setEnabled(binding.depthWallpaper.isSwitchChecked) + binding.depthWallpaperOnAod.isSwitchChecked = getBoolean(DEPTH_WALLPAPER_ON_AOD, true) + binding.depthWallpaperOnAod.setSwitchChangeListener { _: CompoundButton?, isSwitchChecked: Boolean -> + putBoolean(DEPTH_WALLPAPER_ON_AOD, isSwitchChecked) + } + // Fade animation + binding.wallpaperFadeAnimation.visibility = + if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.TIRAMISU) { + View.VISIBLE + } else { + View.GONE + } binding.wallpaperFadeAnimation.setEnabled(binding.depthWallpaper.isSwitchChecked) binding.wallpaperFadeAnimation.isSwitchChecked = getBoolean(DEPTH_WALLPAPER_FADE_ANIMATION, false) binding.wallpaperFadeAnimation.setSwitchChangeListener { _: CompoundButton?, isSwitchChecked: Boolean -> - putBoolean( - DEPTH_WALLPAPER_FADE_ANIMATION, - isSwitchChecked - ) + putBoolean(DEPTH_WALLPAPER_FADE_ANIMATION, isSwitchChecked) } // Parallax effect + binding.parallaxEffect.visibility = + if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.TIRAMISU) { + View.VISIBLE + } else { + View.GONE + } binding.parallaxEffect.setEnabled(binding.depthWallpaper.isSwitchChecked) binding.parallaxEffect.isSwitchChecked = getBoolean(DEPTH_WALLPAPER_PARALLAX_EFFECT, false) binding.parallaxEffect.setSwitchChangeListener { _: CompoundButton?, isSwitchChecked: Boolean -> @@ -215,6 +276,8 @@ class XposedDepthWallpaper : BaseFragment() { private fun updateEnabledState() { val isDepthWallpaperEnabled = binding.depthWallpaper.isSwitchChecked + binding.customDepthWallpaper.setEnabled(isDepthWallpaperEnabled) + binding.depthWallpaperOnAod.setEnabled(isDepthWallpaperEnabled) binding.wallpaperFadeAnimation.setEnabled(isDepthWallpaperEnabled) binding.foregroundImage.setEnabled(isDepthWallpaperEnabled) binding.backgroundImage.setEnabled(isDepthWallpaperEnabled) @@ -223,7 +286,26 @@ class XposedDepthWallpaper : BaseFragment() { binding.foregroundSensitivity.setEnabled(isDepthWallpaperEnabled) binding.backgroundSensitivity.setEnabled(isDepthWallpaperEnabled) + val isBelowA14Feature = Build.VERSION.SDK_INT <= Build.VERSION_CODES.TIRAMISU + + binding.wallpaperFadeAnimation.visibility = if (isBelowA14Feature) { + View.VISIBLE + } else { + View.GONE + } + binding.parallaxEffect.visibility = if (isBelowA14Feature) { + View.VISIBLE + } else { + View.GONE + } + binding.depthWallpaperOnAod.visibility = if (isBelowA14Feature) { + View.GONE + } else { + View.VISIBLE + } + val isParallaxEffectEnabled = binding.parallaxEffect.isSwitchChecked + && isBelowA14Feature binding.backgroundSensitivity.visibility = if (isParallaxEffectEnabled) { View.VISIBLE @@ -235,5 +317,19 @@ class XposedDepthWallpaper : BaseFragment() { } else { View.GONE } + + val isImagePickersEnabled = binding.customDepthWallpaper.isSwitchChecked + || isBelowA14Feature + + binding.foregroundImage.visibility = if (isImagePickersEnabled) { + View.VISIBLE + } else { + View.GONE + } + binding.backgroundImage.visibility = if (isImagePickersEnabled) { + View.VISIBLE + } else { + View.GONE + } } } \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/EntryList.kt b/app/src/main/java/com/drdisagree/iconify/xposed/EntryList.kt index d315fe5ca..f51d8f89d 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/EntryList.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/EntryList.kt @@ -6,6 +6,7 @@ import com.drdisagree.iconify.common.Const.SYSTEMUI_PACKAGE import com.drdisagree.iconify.xposed.modules.BackgroundChip import com.drdisagree.iconify.xposed.modules.BatteryStyleManager import com.drdisagree.iconify.xposed.modules.DepthWallpaper +import com.drdisagree.iconify.xposed.modules.DepthWallpaperA14 import com.drdisagree.iconify.xposed.modules.HeaderClock import com.drdisagree.iconify.xposed.modules.HeaderImage import com.drdisagree.iconify.xposed.modules.IconUpdater @@ -35,7 +36,6 @@ object EntryList { BackgroundChip::class.java, HeaderClock::class.java, HeaderImage::class.java, - DepthWallpaper::class.java, LockscreenClock::class.java, Miscellaneous::class.java, QSTransparency::class.java, @@ -45,18 +45,21 @@ object EntryList { ) private val systemUiAndroid12ModPacks = listOf( + DepthWallpaper::class.java, QSFluidThemeA13::class.java, QSBlackThemeA13::class.java, QSLightThemeA12::class.java ) private val systemUiAndroid13ModPacks = listOf( + DepthWallpaper::class.java, QSFluidThemeA13::class.java, QSBlackThemeA13::class.java, QSLightThemeA13::class.java ) private val systemUiAndroid14ModPacks = listOf( + DepthWallpaperA14::class.java, QSFluidThemeA14::class.java, QSBlackThemeA14::class.java, QSLightThemeA14::class.java diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/HookEntry.kt b/app/src/main/java/com/drdisagree/iconify/xposed/HookEntry.kt index 5f791506a..52b236859 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/HookEntry.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/HookEntry.kt @@ -1,35 +1,40 @@ package com.drdisagree.iconify.xposed +import android.annotation.SuppressLint import android.app.Instrumentation +import android.content.ComponentName import android.content.Context +import android.content.Intent +import android.content.ServiceConnection +import android.os.IBinder +import android.os.RemoteException import com.drdisagree.iconify.BuildConfig +import com.drdisagree.iconify.IRootProviderProxy +import com.drdisagree.iconify.R import com.drdisagree.iconify.common.Const.FRAMEWORK_PACKAGE import com.drdisagree.iconify.config.XPrefs import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.utils.BootLoopProtector import com.drdisagree.iconify.xposed.utils.SystemUtil -import de.robv.android.xposed.IXposedHookLoadPackage import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge.hookAllMethods import de.robv.android.xposed.XposedBridge.log import de.robv.android.xposed.XposedHelpers.findAndHookMethod import de.robv.android.xposed.XposedHelpers.findClass import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam +import java.util.LinkedList +import java.util.Queue import java.util.concurrent.CompletableFuture -class HookEntry : IXposedHookLoadPackage { +class HookEntry : ServiceConnection { - companion object { - var isChildProcess = false + private var mContext: Context? = null - @JvmField - val runningMods = ArrayList() + init { + instance = this } - private var mContext: Context? = null - private val tag = "Iconify - ${this::class.java.simpleName}: " - - override fun handleLoadPackage(loadPackageParam: LoadPackageParam) { + fun handleLoadPackage(loadPackageParam: LoadPackageParam) { isChildProcess = try { loadPackageParam.processName.contains(":") } catch (ignored: Throwable) { @@ -59,7 +64,7 @@ class HookEntry : IXposedHookLoadPackage { CompletableFuture.runAsync { waitForXprefsLoad(loadPackageParam) } } } catch (throwable: Throwable) { - log(tag + throwable) + log(TAG + throwable) } } }) @@ -109,6 +114,13 @@ class HookEntry : IXposedHookLoadPackage { } private fun loadModPacks(loadPackageParam: LoadPackageParam) { + if (HookRes.modRes!!.getStringArray(R.array.root_requirement).toList().contains( + loadPackageParam.packageName + ) + ) { + forceConnectRootService() + } + for (mod in EntryList.getEntries(loadPackageParam.packageName)) { try { val instance = mod.getConstructor(Context::class.java).newInstance(mContext) @@ -122,7 +134,7 @@ class HookEntry : IXposedHookLoadPackage { runningMods.add(instance) } catch (throwable: Throwable) { log("Start Error Dump - Occurred in ${mod.name}") - log(tag + throwable) + log(TAG + throwable) } } } @@ -144,4 +156,125 @@ class HookEntry : IXposedHookLoadPackage { onXPrefsReady(loadPackageParam) } + + private fun forceConnectRootService() { + Thread { + while (SystemUtil.UserManager == null || !SystemUtil.UserManager!!.isUserUnlocked) { + // device is still CE encrypted + SystemUtil.sleep(2000) + } + + SystemUtil.sleep(5000) // wait for the unlocked account to settle down a bit + + while (rootProxyIPC == null) { + connectRootService() + SystemUtil.sleep(5000) + } + }.start() + } + + private fun connectRootService() { + try { + val intent = Intent().apply { + setComponent( + ComponentName( + BuildConfig.APPLICATION_ID, + "${ + BuildConfig.APPLICATION_ID.replace( + ".debug", + "" + ) + }.services.RootProviderProxy" + ) + ) + } + + mContext!!.bindService( + intent, + instance!!, + Context.BIND_AUTO_CREATE or Context.BIND_ADJUST_WITH_ACTIVITY + ) + } catch (throwable: Throwable) { + log(TAG + throwable) + } + } + + override fun onServiceConnected(name: ComponentName?, service: IBinder?) { + rootProxyIPC = IRootProviderProxy.Stub.asInterface(service) + + synchronized(proxyQueue) { + while (!proxyQueue.isEmpty()) { + try { + proxyQueue.poll()!!.run(rootProxyIPC) + } catch (ignored: Throwable) { + } + } + } + } + + override fun onServiceDisconnected(name: ComponentName?) { + rootProxyIPC = null + forceConnectRootService() + } + + fun interface ProxyRunnable { + @Throws(RemoteException::class) + fun run(proxy: IRootProviderProxy?) + } + + companion object { + private val TAG = "Iconify - ${HookEntry::class.java.simpleName}: " + + @SuppressLint("StaticFieldLeak") + var instance: HookEntry? = null + + @JvmField + val runningMods = ArrayList() + var isChildProcess = false + var rootProxyIPC: IRootProviderProxy? = null + val proxyQueue: Queue = LinkedList() + + fun enqueueProxyCommand(runnable: ProxyRunnable) { + rootProxyIPC?.let { + try { + runnable.run(it) + } catch (ignored: RemoteException) { + } + } ?: run { + synchronized(proxyQueue) { + proxyQueue.add(runnable) + } + + instance!!.forceConnectRootService() + } + } + + fun enableOverlay(packageName: String) { + enqueueProxyCommand { proxy -> + proxy?.enableOverlay(packageName) + } + } + + fun enableOverlays(vararg packageNames: String) { + enqueueProxyCommand { proxy -> + packageNames.forEach { packageName -> + proxy?.enableOverlay(packageName) + } + } + } + + fun disableOverlay(packageName: String) { + enqueueProxyCommand { proxy -> + proxy?.disableOverlay(packageName) + } + } + + fun disableOverlays(vararg packageNames: String) { + enqueueProxyCommand { proxy -> + packageNames.forEach { packageName -> + proxy?.disableOverlay(packageName) + } + } + } + } } diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/DepthWallpaperA14.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/DepthWallpaperA14.kt new file mode 100644 index 000000000..6847c457b --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/DepthWallpaperA14.kt @@ -0,0 +1,577 @@ +package com.drdisagree.iconify.xposed.modules + +import android.annotation.SuppressLint +import android.app.WallpaperManager +import android.content.Context +import android.graphics.Bitmap +import android.graphics.Color +import android.graphics.drawable.BitmapDrawable +import android.graphics.drawable.Drawable +import android.graphics.drawable.LayerDrawable +import android.os.Build +import android.os.Environment +import android.os.Handler +import android.os.Looper +import android.view.View +import android.view.ViewGroup +import android.view.WindowManager +import android.widget.FrameLayout +import android.widget.Toast +import androidx.annotation.RequiresApi +import com.drdisagree.iconify.IExtractSubjectCallback +import com.drdisagree.iconify.common.Const.SYSTEMUI_PACKAGE +import com.drdisagree.iconify.common.Preferences.CUSTOM_DEPTH_WALLPAPER_SWITCH +import com.drdisagree.iconify.common.Preferences.DEPTH_WALLPAPER_BACKGROUND_MOVEMENT_MULTIPLIER +import com.drdisagree.iconify.common.Preferences.DEPTH_WALLPAPER_CHANGED +import com.drdisagree.iconify.common.Preferences.DEPTH_WALLPAPER_FOREGROUND_ALPHA +import com.drdisagree.iconify.common.Preferences.DEPTH_WALLPAPER_FOREGROUND_MOVEMENT_MULTIPLIER +import com.drdisagree.iconify.common.Preferences.DEPTH_WALLPAPER_ON_AOD +import com.drdisagree.iconify.common.Preferences.DEPTH_WALLPAPER_SWITCH +import com.drdisagree.iconify.config.XPrefs.Xprefs +import com.drdisagree.iconify.xposed.HookEntry.Companion.enqueueProxyCommand +import com.drdisagree.iconify.xposed.ModPack +import com.drdisagree.iconify.xposed.modules.utils.Helpers.findClassInArray +import de.robv.android.xposed.XC_MethodHook +import de.robv.android.xposed.XposedBridge.hookAllConstructors +import de.robv.android.xposed.XposedBridge.hookAllMethods +import de.robv.android.xposed.XposedHelpers.callMethod +import de.robv.android.xposed.XposedHelpers.findClass +import de.robv.android.xposed.XposedHelpers.getFloatField +import de.robv.android.xposed.XposedHelpers.getObjectField +import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam +import java.io.ByteArrayOutputStream +import java.io.File +import java.io.FileInputStream +import java.io.FileOutputStream +import java.util.concurrent.Executors +import java.util.concurrent.TimeUnit +import kotlin.math.max + +@SuppressLint("DiscouragedApi") +class DepthWallpaperA14(context: Context?) : ModPack(context!!) { + + private var showDepthWallpaper = false + private var showCustomImages = false + private var backgroundMovement = 1.0f + private var foregroundMovement = 3.0f + private var foregroundAlpha = 1.0f + private var mScrimController: Any? = null + private var mForegroundDimmingOverlay: Drawable? = null + private var mWallpaperForeground: FrameLayout? = null + private var mWallpaperBackground: FrameLayout? = null + private var mWallpaperBitmapContainer: FrameLayout? = null + private var mWallpaperDimmingOverlay: FrameLayout? = null + private var mWallpaperForegroundCacheValid = false + private var mLayersCreated = false + private var showOnAOD = true + private var foregroundPath = Environment.getExternalStorageDirectory() + .toString() + "/.iconify_files/depth_wallpaper_fg.png" + private var backgroundPath = Environment.getExternalStorageDirectory() + .toString() + "/.iconify_files/depth_wallpaper_bg.png" + + override fun updatePrefs(vararg key: String) { + if (Xprefs == null) return + + showDepthWallpaper = Xprefs!!.getBoolean(DEPTH_WALLPAPER_SWITCH, false) + showCustomImages = Xprefs!!.getBoolean(CUSTOM_DEPTH_WALLPAPER_SWITCH, false) + backgroundMovement = Xprefs!!.getFloat(DEPTH_WALLPAPER_BACKGROUND_MOVEMENT_MULTIPLIER, 1.0f) + foregroundMovement = Xprefs!!.getFloat(DEPTH_WALLPAPER_FOREGROUND_MOVEMENT_MULTIPLIER, 3.0f) + foregroundAlpha = Xprefs!!.getInt(DEPTH_WALLPAPER_FOREGROUND_ALPHA, 80) / 100.0f + showOnAOD = Xprefs!!.getBoolean(DEPTH_WALLPAPER_ON_AOD, true) + + if (key.isNotEmpty()) { + key[0].let { + if (it == DEPTH_WALLPAPER_SWITCH || + it == DEPTH_WALLPAPER_CHANGED || + it == CUSTOM_DEPTH_WALLPAPER_SWITCH + ) { + if (it == DEPTH_WALLPAPER_CHANGED) { + mWallpaperForegroundCacheValid = false + } + + if (it == CUSTOM_DEPTH_WALLPAPER_SWITCH && !showCustomImages) { + invalidateCache() + } + + setCustomDepthWallpaper() + } + } + } + } + + override fun handleLoadPackage(loadPackageParam: LoadPackageParam) { + val qsImplClass = findClassInArray( + loadPackageParam, + "$SYSTEMUI_PACKAGE.qs.QSImpl", + "$SYSTEMUI_PACKAGE.qs.QSFragment" + ) + val canvasEngineClass = findClass( + "$SYSTEMUI_PACKAGE.wallpapers.ImageWallpaper\$CanvasEngine", + loadPackageParam.classLoader + ) + val centralSurfacesImplClass = findClass( + "$SYSTEMUI_PACKAGE.statusbar.phone.CentralSurfacesImpl", + loadPackageParam.classLoader + ) + val scrimControllerClass = findClass( + "$SYSTEMUI_PACKAGE.statusbar.phone.ScrimController", + loadPackageParam.classLoader + ) + val scrimViewClass = findClass( + "$SYSTEMUI_PACKAGE.scrim.ScrimView", + loadPackageParam.classLoader + ) + + hookAllMethods(scrimViewClass, "setViewAlpha", object : XC_MethodHook() { + @Throws(Throwable::class) + override fun beforeHookedMethod(param: MethodHookParam) { + if (!mLayersCreated) return + + if (showOnAOD && getObjectField( + mScrimController, + "mState" + ).toString() != "KEYGUARD" + ) { + mWallpaperForeground?.post { mWallpaperForeground?.setAlpha(foregroundAlpha) } + } else if (getObjectField( + mScrimController, + "mNotificationsScrim" + ) == param.thisObject + ) { // instead of using the mScrimName since older ones don't have that field + val mScrimBehindAlphaKeyguard = getFloatField( + mScrimController, + "mScrimBehindAlphaKeyguard" + ) + + var notificationAlpha = param.args[0] as Float + + if (notificationAlpha < mScrimBehindAlphaKeyguard) { + notificationAlpha = 0f + } + + val foregroundAlpha = if (notificationAlpha > mScrimBehindAlphaKeyguard) { + (1f - notificationAlpha) / (1f - mScrimBehindAlphaKeyguard) + } else { + 1f + } + + mWallpaperForeground?.post { mWallpaperForeground?.setAlpha(foregroundAlpha) } + } + } + }) + + hookAllMethods(centralSurfacesImplClass, "start", object : XC_MethodHook() { + @Throws(Throwable::class) + override fun afterHookedMethod(param: MethodHookParam) { + val scrimBehind = getObjectField(mScrimController, "mScrimBehind") as View + val rootView = scrimBehind.parent as ViewGroup + + val targetView = rootView.findViewById( + mContext.resources.getIdentifier( + "notification_container_parent", + "id", + mContext.packageName + ) + ) + + if (!mLayersCreated) { + createLayers() + } + + rootView.addView(mWallpaperBackground, 0) + + targetView.addView(mWallpaperForeground, 1) + } + }) + + hookAllMethods(centralSurfacesImplClass, "onStartedWakingUp", object : XC_MethodHook() { + @Throws(Throwable::class) + override fun afterHookedMethod(param: MethodHookParam) { + setDepthWallpaper() + } + }) + + hookAllMethods(canvasEngineClass, "onSurfaceDestroyed", object : XC_MethodHook() { + // lockscreen wallpaper changed + @Throws(Throwable::class) + override fun afterHookedMethod(param: MethodHookParam) { + if (showDepthWallpaper && !showCustomImages && isLockScreenWallpaper(param.thisObject)) { + invalidateCache() + } + } + }) + + hookAllMethods(canvasEngineClass, "onCreate", object : XC_MethodHook() { + @Throws(Throwable::class) + override fun afterHookedMethod(param: MethodHookParam) { + if (callMethod( + getObjectField( + param.thisObject, + "mWallpaperManager" + ), + "getWallpaperInfo", + WallpaperManager.FLAG_LOCK + ) != null && !showCustomImages + ) { // it's live wallpaper. we can't use that + invalidateCache() + } + } + }) + + hookAllMethods(canvasEngineClass, "drawFrameOnCanvas", object : XC_MethodHook() { + @RequiresApi(Build.VERSION_CODES.TIRAMISU) + @Throws(Throwable::class) + override fun afterHookedMethod(param: MethodHookParam) { + if (showDepthWallpaper && !showCustomImages && isLockScreenWallpaper(param.thisObject)) { + val wallpaperBitmap = Bitmap.createBitmap((param.args[0] as Bitmap)) + + val cacheIsValid: Boolean = assertCache(wallpaperBitmap) + + val displayBounds = (callMethod( + param.thisObject, + "getDisplayContext" + ) as Context) + .getSystemService( + WindowManager::class.java + ) + .currentWindowMetrics + .bounds + + val ratioW = 1f * displayBounds.width() / wallpaperBitmap.width + val ratioH = 1f * displayBounds.height() / wallpaperBitmap.height + + val desiredHeight = Math.round( + max( + ratioH.toDouble(), + ratioW.toDouble() + ) * wallpaperBitmap.height + ).toInt() + val desiredWidth = Math.round( + max( + ratioH.toDouble(), + ratioW.toDouble() + ) * wallpaperBitmap.width + ).toInt() + + val xPixelShift = (desiredWidth - displayBounds.width()) / 2 + val yPixelShift = (desiredHeight - displayBounds.height()) / 2 + + var scaledWallpaperBitmap = Bitmap.createScaledBitmap( + wallpaperBitmap, + desiredWidth, + desiredHeight, + true + ) + + // crop to display bounds + scaledWallpaperBitmap = Bitmap.createBitmap( + scaledWallpaperBitmap, + xPixelShift, + yPixelShift, + displayBounds.width(), + displayBounds.height() + ) + val finalScaledWallpaperBitmap = scaledWallpaperBitmap + + if (!mLayersCreated) { + createLayers() + } + + mWallpaperBackground!!.post { + mWallpaperBitmapContainer!!.background = BitmapDrawable( + mContext.resources, + finalScaledWallpaperBitmap + ) + if (mScrimController != null) { + mWallpaperDimmingOverlay!!.setBackgroundColor(Color.BLACK) + mWallpaperDimmingOverlay!!.alpha = getFloatField( + mScrimController, + "mScrimBehindAlphaKeyguard" + ) + } + } + + if (!cacheIsValid) { + val callback = object : IExtractSubjectCallback.Stub() { + override fun onStart(message: String) { + Handler(Looper.getMainLooper()).post { + Toast.makeText(mContext, message, Toast.LENGTH_LONG).show() + } + } + + override fun onResult(success: Boolean, message: String) { + Handler(Looper.getMainLooper()).post { + Toast.makeText(mContext, message, Toast.LENGTH_SHORT).show() + } + } + } + + enqueueProxyCommand { proxy -> + proxy?.extractSubject( + finalScaledWallpaperBitmap, + foregroundPath, + callback + ) + } + } + } + } + }) + + hookAllConstructors(scrimControllerClass, object : XC_MethodHook() { + @Throws(Throwable::class) + override fun afterHookedMethod(param: MethodHookParam) { + mScrimController = param.thisObject + } + }) + + hookAllMethods(scrimControllerClass, "applyAndDispatchState", object : XC_MethodHook() { + @Throws(Throwable::class) + override fun afterHookedMethod(param: MethodHookParam) { + setDepthWallpaper() + } + }) + + hookAllMethods(qsImplClass, "setQsExpansion", object : XC_MethodHook() { + @Throws(Throwable::class) + override fun beforeHookedMethod(param: MethodHookParam) { + if (callMethod(param.thisObject, "isKeyguardState") as Boolean) { + setDepthWallpaper() + } + } + }) + + /* + * Custom depth wallpaper images + */ + val keyguardBottomAreaViewClass = findClass( + "$SYSTEMUI_PACKAGE.statusbar.phone.KeyguardBottomAreaView", + loadPackageParam.classLoader + ) + + hookAllMethods( + keyguardBottomAreaViewClass, + "onConfigurationChanged", + object : XC_MethodHook() { + override fun afterHookedMethod(param: MethodHookParam) { + setCustomDepthWallpaper() + } + }) + + setCustomDepthWallpaper() + } + + @RequiresApi(Build.VERSION_CODES.TIRAMISU) + private fun assertCache(wallpaperBitmap: Bitmap): Boolean { + var cacheIsValid = false + + try { + val wallpaperCacheFile = File(backgroundPath) + + val compressedBitmap = ByteArrayOutputStream() + wallpaperBitmap.compress(Bitmap.CompressFormat.JPEG, 100, compressedBitmap) + if (wallpaperCacheFile.exists()) { + val cacheStream = FileInputStream(wallpaperCacheFile) + + if (cacheStream.readAllBytes().contentEquals(compressedBitmap.toByteArray())) { + cacheIsValid = true + } else { + val newCacheStream = FileOutputStream(wallpaperCacheFile) + compressedBitmap.writeTo(newCacheStream) + newCacheStream.close() + } + cacheStream.close() + } + compressedBitmap.close() + } catch (ignored: Throwable) { + } + + if (!cacheIsValid) { + invalidateCache() + } + + return cacheIsValid + } + + private fun createLayers() { + mWallpaperBackground = FrameLayout(mContext) + mWallpaperDimmingOverlay = FrameLayout(mContext) + mWallpaperBitmapContainer = FrameLayout(mContext) + val layoutParams = FrameLayout.LayoutParams(-1, -1) + + mWallpaperDimmingOverlay!!.setBackgroundColor( + if (File(backgroundPath).exists()) { + Color.BLACK + } else { + Color.TRANSPARENT + } + ) + mWallpaperDimmingOverlay!!.layoutParams = layoutParams + mWallpaperBitmapContainer!!.setLayoutParams(layoutParams) + + mWallpaperBackground!!.addView(mWallpaperBitmapContainer) + mWallpaperBackground!!.addView(mWallpaperDimmingOverlay) + mWallpaperBackground!!.setLayoutParams(layoutParams) + + mWallpaperForeground = FrameLayout(mContext) + mWallpaperForeground!!.setLayoutParams(layoutParams) + + mLayersCreated = true + } + + private fun isLockScreenWallpaper(canvasEngine: Any): Boolean { + return ((getWallpaperFlag(canvasEngine) and WallpaperManager.FLAG_LOCK) == WallpaperManager.FLAG_LOCK) + } + + private fun setDepthWallpaper() { + if (mScrimController == null) return + + val state = getObjectField(mScrimController, "mState").toString() + val showForeground = (showDepthWallpaper && + (state == "KEYGUARD" || (showOnAOD && (state == "AOD" || state == "PULSING")))) + + if (showForeground) { + if (!mWallpaperForegroundCacheValid && File(foregroundPath).exists()) { + try { + FileInputStream(foregroundPath).use { inputStream -> + val bitmapDrawable = BitmapDrawable.createFromStream( + inputStream, + "" + ) + bitmapDrawable!!.alpha = 255 + + mForegroundDimmingOverlay = bitmapDrawable.constantState!! + .newDrawable().mutate() + mForegroundDimmingOverlay!!.setTint(Color.BLACK) + + mWallpaperForeground!!.background = LayerDrawable( + arrayOf( + bitmapDrawable, + mForegroundDimmingOverlay + ) + ) + mWallpaperForegroundCacheValid = true + } + } catch (ignored: Throwable) { + } + } + + if (mWallpaperForegroundCacheValid) { + mWallpaperForeground!!.background.alpha = (foregroundAlpha * 255).toInt() + + if (state != "KEYGUARD") { // AOD + mForegroundDimmingOverlay!!.alpha = 192 + } else { + // this is the dimmed wallpaper coverage + mForegroundDimmingOverlay!!.alpha = Math.round( + getFloatField( + mScrimController, + "mScrimBehindAlphaKeyguard" + ) * 240 + ) // A tad bit lower than max. show it a bit lighter than other stuff + + mWallpaperDimmingOverlay!!.alpha = getFloatField( + mScrimController, + "mScrimBehindAlphaKeyguard" + ) + } + + mWallpaperBackground!!.visibility = View.VISIBLE + mWallpaperForeground!!.visibility = View.VISIBLE + } + } else if (mLayersCreated) { + mWallpaperForeground!!.visibility = View.GONE + + if (state == "UNLOCKED") { + mWallpaperBackground!!.visibility = View.GONE + } + } + } + + private fun getWallpaperFlag(canvasEngine: Any): Int { + return callMethod(canvasEngine, "getWallpaperFlags") as Int + } + + private fun invalidateCache() { // invalidate lock screen wallpaper subject cache + mWallpaperForegroundCacheValid = false + + if (mLayersCreated) { + mWallpaperForeground!!.post { + mWallpaperForeground!!.visibility = View.GONE + mWallpaperForeground!!.background = null + mWallpaperBackground!!.visibility = View.GONE + mWallpaperBitmapContainer!!.background = null + } + } + + try { + if (File(foregroundPath).exists()) { + File(foregroundPath).delete() + } + } catch (ignored: Throwable) { + } + } + + /* + * Custom depth wallpaper images + */ + private fun setCustomDepthWallpaper() { + if (!showDepthWallpaper || !showCustomImages) return + + if (!mLayersCreated) { + createLayers() + } + + try { + val mainHandler = Handler(Looper.getMainLooper()) + val executor = Executors.newSingleThreadScheduledExecutor() + + executor.scheduleAtFixedRate({ + val androidDir = + File(Environment.getExternalStorageDirectory().toString() + "/Android") + + if (androidDir.isDirectory()) { + mainHandler.post { + try { + if (File(backgroundPath).exists()) { + FileInputStream(backgroundPath).use { inputStream -> + val bitmapDrawable = BitmapDrawable.createFromStream( + inputStream, + "" + ) + bitmapDrawable!!.alpha = 255 + + mWallpaperBackground!!.post { + mWallpaperBitmapContainer!!.background = bitmapDrawable + + if (mScrimController != null) { + mWallpaperDimmingOverlay!!.setBackgroundColor(Color.BLACK) + mWallpaperDimmingOverlay!!.alpha = getFloatField( + mScrimController, + "mScrimBehindAlphaKeyguard" + ) + } + + mWallpaperBackground!!.visibility = View.VISIBLE + } + } + } + } catch (ignored: Throwable) { + } + + // this sets the dimmed foreground wallpaper + setDepthWallpaper() + } + + executor.shutdown() + executor.shutdownNow() + } + }, 0, 5, TimeUnit.SECONDS) + } catch (ignored: Throwable) { + } + } + + companion object { + private val TAG = "Iconify - ${DepthWallpaperA14::class.java.simpleName}: " + } +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenClock.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenClock.kt index cbf4cea74..2f7a9c979 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenClock.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenClock.kt @@ -81,7 +81,7 @@ import java.util.concurrent.TimeUnit class LockscreenClock(context: Context?) : ModPack(context!!) { private var showLockscreenClock = false - private var showDepthWallpaper = false + private var showDepthWallpaper = false // was used in android 13 and below private var mClockViewContainer: ViewGroup? = null private var mStatusViewContainer: ViewGroup? = null private var mUserManager: UserManager? = null @@ -119,12 +119,14 @@ class LockscreenClock(context: Context?) : ModPack(context!!) { override fun updatePrefs(vararg key: String) { if (Xprefs == null) return + val isAndroid13OrBelow = Build.VERSION.SDK_INT <= Build.VERSION_CODES.TIRAMISU + showLockscreenClock = Xprefs!!.getBoolean(LSCLOCK_SWITCH, false) showDepthWallpaper = Xprefs!!.getBoolean(DEPTH_WALLPAPER_SWITCH, false) + && isAndroid13OrBelow if (key.isNotEmpty() && (key[0] == LSCLOCK_SWITCH || - key[0] == DEPTH_WALLPAPER_SWITCH || key[0] == LSCLOCK_COLOR_SWITCH || key[0] == LSCLOCK_COLOR_CODE_ACCENT1 || key[0] == LSCLOCK_COLOR_CODE_ACCENT2 || @@ -139,7 +141,11 @@ class LockscreenClock(context: Context?) : ModPack(context!!) { key[0] == LSCLOCK_FONT_TEXT_SCALING || key[0] == LSCLOCK_USERNAME || key[0] == LSCLOCK_DEVICENAME || - key[0] == DEPTH_WALLPAPER_FADE_ANIMATION) + (isAndroid13OrBelow && + (key[0] == DEPTH_WALLPAPER_SWITCH || + key[0] == DEPTH_WALLPAPER_FADE_ANIMATION) + ) + ) ) { updateClockView() } @@ -305,7 +311,8 @@ class LockscreenClock(context: Context?) : ModPack(context!!) { val currentTime = System.currentTimeMillis() val isClockAdded = mClockViewContainer!!.findViewWithTag(ICONIFY_LOCKSCREEN_CLOCK_TAG) != null - val isDepthClock = mClockViewContainer!!.tag === ICONIFY_DEPTH_WALLPAPER_TAG + val isDepthClock = mClockViewContainer!!.tag === ICONIFY_DEPTH_WALLPAPER_TAG && + Build.VERSION.SDK_INT <= Build.VERSION_CODES.TIRAMISU if (isClockAdded && currentTime - lastUpdated < THRESHOLD_TIME) { return @@ -492,8 +499,7 @@ class LockscreenClock(context: Context?) : ModPack(context!!) { 7 -> { val usernameView = clockView.findViewContainsTag("summary") as TextView? - usernameView?.text = if (customUserName.isNotEmpty()) customUserName - else userName + usernameView?.text = customUserName.ifEmpty { userName } val imageView = clockView.findViewContainsTag("user_profile_image") as ImageView? userImage?.let { imageView?.setImageDrawable(it) } } @@ -506,8 +512,7 @@ class LockscreenClock(context: Context?) : ModPack(context!!) { clockView.findViewContainsTag("volume_progress") as ImageView? mRamUsageArcProgress = clockView.findViewContainsTag("ram_usage_info") as ImageView? val devName = clockView.findViewContainsTag("device_name") as TextView? - devName!!.text = if (customDeviceName.isNotEmpty()) customDeviceName - else Build.MODEL + devName!!.text = customDeviceName.ifEmpty { Build.MODEL } } 22 -> { diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA12.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA12.kt index 717ea81cb..b59a3920a 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA12.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA12.kt @@ -10,8 +10,8 @@ import com.drdisagree.iconify.common.Preferences.DUALTONE_QSPANEL import com.drdisagree.iconify.common.Preferences.LIGHT_QSPANEL import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.ModPack -import com.drdisagree.iconify.xposed.modules.utils.Helpers.disableOverlays -import com.drdisagree.iconify.xposed.modules.utils.Helpers.enableOverlay +import com.drdisagree.iconify.xposed.HookEntry.Companion.disableOverlays +import com.drdisagree.iconify.xposed.HookEntry.Companion.enableOverlay import com.drdisagree.iconify.xposed.utils.SystemUtil import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge.hookAllConstructors diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA13.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA13.kt index 4655d8ba2..d490bd725 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA13.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA13.kt @@ -17,9 +17,9 @@ import com.drdisagree.iconify.common.Preferences.LIGHT_QSPANEL import com.drdisagree.iconify.common.Preferences.QS_TEXT_ALWAYS_WHITE import com.drdisagree.iconify.common.Preferences.QS_TEXT_FOLLOW_ACCENT import com.drdisagree.iconify.config.XPrefs.Xprefs +import com.drdisagree.iconify.xposed.HookEntry.Companion.disableOverlays +import com.drdisagree.iconify.xposed.HookEntry.Companion.enableOverlay import com.drdisagree.iconify.xposed.ModPack -import com.drdisagree.iconify.xposed.modules.utils.Helpers.disableOverlays -import com.drdisagree.iconify.xposed.modules.utils.Helpers.enableOverlay import com.drdisagree.iconify.xposed.modules.utils.SettingsLibUtils.Companion.getColorAttr import com.drdisagree.iconify.xposed.modules.utils.SettingsLibUtils.Companion.getColorAttrDefaultColor import com.drdisagree.iconify.xposed.utils.SystemUtil diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA14.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA14.kt index 836383e59..1ff178f39 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA14.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA14.kt @@ -20,8 +20,8 @@ import com.drdisagree.iconify.common.Preferences.QS_TEXT_ALWAYS_WHITE import com.drdisagree.iconify.common.Preferences.QS_TEXT_FOLLOW_ACCENT import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.ModPack -import com.drdisagree.iconify.xposed.modules.utils.Helpers.disableOverlays -import com.drdisagree.iconify.xposed.modules.utils.Helpers.enableOverlay +import com.drdisagree.iconify.xposed.HookEntry.Companion.disableOverlays +import com.drdisagree.iconify.xposed.HookEntry.Companion.enableOverlay import com.drdisagree.iconify.xposed.modules.utils.SettingsLibUtils.Companion.getColorAttr import com.drdisagree.iconify.xposed.modules.utils.SettingsLibUtils.Companion.getColorAttrDefaultColor import com.drdisagree.iconify.xposed.utils.SystemUtil diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/BitmapSubjectSegmenter.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/BitmapSubjectSegmenter.kt new file mode 100644 index 000000000..1a6d98f00 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/BitmapSubjectSegmenter.kt @@ -0,0 +1,106 @@ +package com.drdisagree.iconify.xposed.modules.utils + +import android.content.Context +import android.graphics.Bitmap +import android.graphics.Color +import android.util.Log +import com.drdisagree.iconify.services.RootProviderProxy.Companion.TAG +import com.google.android.gms.common.moduleinstall.ModuleAvailabilityResponse +import com.google.android.gms.common.moduleinstall.ModuleInstall +import com.google.android.gms.common.moduleinstall.ModuleInstallClient +import com.google.android.gms.common.moduleinstall.ModuleInstallRequest +import com.google.android.gms.tasks.OnSuccessListener +import com.google.mlkit.common.MlKit +import com.google.mlkit.vision.common.InputImage; +import com.google.mlkit.vision.segmentation.subject.SubjectSegmentation +import com.google.mlkit.vision.segmentation.subject.SubjectSegmenter +import com.google.mlkit.vision.segmentation.subject.SubjectSegmenterOptions +import java.nio.FloatBuffer + + +class BitmapSubjectSegmenter(context: Context) { + + private val mSegmenter: SubjectSegmenter + private val mContext: Context = context + + init { + try { + MlKit.initialize(context) + } catch (ignored: Throwable) { + } + + mSegmenter = SubjectSegmentation.getClient( + SubjectSegmenterOptions + .Builder() + .enableForegroundConfidenceMask() + .build() + ) + + downloadModelIfNeeded() + } + + private fun downloadModelIfNeeded() { + val moduleInstallClient: ModuleInstallClient = ModuleInstall.getClient(mContext) + + moduleInstallClient + .areModulesAvailable(mSegmenter) + .addOnSuccessListener { response -> + if (!response.areModulesAvailable()) { + moduleInstallClient + .installModules( + ModuleInstallRequest + .newBuilder() + .addApi(mSegmenter) + .build() + ) + } + } + } + + fun checkModelAvailability(resultListener: OnSuccessListener?) { + val moduleInstallClient: ModuleInstallClient = ModuleInstall.getClient(mContext) + + if (resultListener != null) { + moduleInstallClient.areModulesAvailable(mSegmenter).addOnSuccessListener(resultListener) + } + } + + fun segmentSubject(inputBitmap: Bitmap, listener: SegmentResultListener) { + val transparentColor = Color.alpha(Color.TRANSPARENT) + val resultBitmap = inputBitmap.copy(Bitmap.Config.ARGB_8888, true) + + listener.onStart() + + mSegmenter + .process(InputImage.fromBitmap(inputBitmap, 0)) + .addOnSuccessListener { subjectSegmentationResult -> + val mSubjectMask: FloatBuffer? = subjectSegmentationResult.foregroundConfidenceMask + resultBitmap.setHasAlpha(true) + + for (y in 0 until inputBitmap.height) { + for (x in 0 until inputBitmap.width) { + if (mSubjectMask != null) { + if (mSubjectMask.get() < .5f) { + resultBitmap.setPixel(x, y, transparentColor) + } + } + } + } + + inputBitmap.recycle() + listener.onSuccess(resultBitmap) + } + .addOnFailureListener { e -> + Log.e(TAG, "BitmapSubjectSegmenter - onFail:", e) + + inputBitmap.recycle() + listener.onFail() + } + } + + interface SegmentResultListener { + fun onStart() + fun onSuccess(result: Bitmap?) + fun onFail() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/Helpers.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/Helpers.kt index cca501dac..9c000fd20 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/Helpers.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/Helpers.kt @@ -11,51 +11,25 @@ import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge.hookAllConstructors import de.robv.android.xposed.XposedBridge.hookAllMethods import de.robv.android.xposed.XposedBridge.log -import de.robv.android.xposed.XposedHelpers +import de.robv.android.xposed.XposedHelpers.findClass import de.robv.android.xposed.XposedHelpers.findClassIfExists import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam @Suppress("unused") object Helpers { - fun enableOverlay(pkgName: String) { - Shell.cmd( - "cmd overlay enable --user current $pkgName", - "cmd overlay set-priority $pkgName highest" - ).exec() - } - - fun disableOverlay(pkgName: String) { - Shell.cmd("cmd overlay disable --user current $pkgName").exec() - } - - fun enableOverlays(vararg pkgNames: String?) { - val command = StringBuilder() - for (pkgName in pkgNames) { - command.append("cmd overlay enable --user current $pkgName; cmd overlay set-priority $pkgName highest; ") - } - Shell.cmd(command.toString().trim()).submit() - } - - fun disableOverlays(vararg pkgNames: String?) { - val command = StringBuilder() - for (pkgName in pkgNames) { - command.append("cmd overlay disable --user current $pkgName; ") - } - Shell.cmd(command.toString().trim()).submit() - } fun findAndDumpClass(className: String, classLoader: ClassLoader?): Class<*> { dumpClass(className, classLoader) - return XposedHelpers.findClass(className, classLoader) + return findClass(className, classLoader) } fun findAndDumpClassIfExists(className: String, classLoader: ClassLoader?): Class<*> { dumpClass(className, classLoader) - return XposedHelpers.findClassIfExists(className, classLoader) + return findClassIfExists(className, classLoader) } - fun dumpClass(className: String, classLoader: ClassLoader?) { - val ourClass = XposedHelpers.findClassIfExists(className, classLoader) + private fun dumpClass(className: String, classLoader: ClassLoader?) { + val ourClass = findClassIfExists(className, classLoader) if (ourClass == null) { log("Class: $className not found") return @@ -63,7 +37,7 @@ object Helpers { dumpClass(ourClass) } - fun dumpClass(ourClass: Class<*>) { + private fun dumpClass(ourClass: Class<*>) { val ms = ourClass.getDeclaredMethods() log("\n\nClass: ${ourClass.getName()}") log("extends: ${ourClass.superclass.getName()}") diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/utils/SystemUtil.kt b/app/src/main/java/com/drdisagree/iconify/xposed/utils/SystemUtil.kt index 8f1d605c1..c413f7f3e 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/utils/SystemUtil.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/utils/SystemUtil.kt @@ -6,12 +6,17 @@ import android.content.Context import android.content.res.Configuration import android.os.Build import android.os.Process +import android.os.UserManager import com.drdisagree.iconify.xposed.utils.BootLoopProtector.resetCounter import com.topjohnwu.superuser.Shell +import de.robv.android.xposed.XposedBridge.log import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.delay import kotlinx.coroutines.launch +import org.jetbrains.annotations.Contract +import javax.annotation.Nullable + class SystemUtil(var mContext: Context) { @@ -20,14 +25,40 @@ class SystemUtil(var mContext: Context) { } private val isDark: Boolean - get() = mContext.resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_YES == Configuration.UI_MODE_NIGHT_YES + get() = mContext.resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_YES == + Configuration.UI_MODE_NIGHT_YES + + private fun getUserManager(): UserManager { + if (mUserManager == null) { + try { + mUserManager = mContext.getSystemService(Context.USER_SERVICE) as UserManager + } catch (throwable: Throwable) { + log(TAG + throwable) + } + } + + return mUserManager!! + } companion object { @SuppressLint("StaticFieldLeak") var instance: SystemUtil? = null + private var darkSwitching = false - val isDarkMode: Boolean - get() = if (instance == null) false else instance!!.isDark + private var mUserManager: UserManager? = null + + val isDarkMode: Boolean get() = instance?.isDark ?: false + + @Nullable + @get:Contract(pure = true) + val UserManager: UserManager? get() = instance?.getUserManager() + + fun sleep(millis: Int) { + try { + Thread.sleep(millis.toLong()) + } catch (ignored: Throwable) { + } + } fun doubleToggleDarkMode() { val isDark = isDarkMode @@ -59,5 +90,7 @@ class SystemUtil(var mContext: Context) { } Process.killProcess(Process.myPid()) } + + private val TAG = "Iconify - ${this::class.java.simpleName}: " } } diff --git a/app/src/main/res/layout/fragment_xposed_depth_wallpaper.xml b/app/src/main/res/layout/fragment_xposed_depth_wallpaper.xml index e778ccdd9..7a9d196ee 100644 --- a/app/src/main/res/layout/fragment_xposed_depth_wallpaper.xml +++ b/app/src/main/res/layout/fragment_xposed_depth_wallpaper.xml @@ -28,10 +28,18 @@ app:summaryText="@string/enable_depth_wallpaper_desc" app:titleText="@string/enable_depth_wallpaper_title" /> + + + + User Enable Depth Wallpaper - Show iOS like depth wallpaper\nMust use custom lockscreen clock + Show iOS like depth wallpaper\n%s Fade in AOD Animate wallpaper and fade away in AOD Foreground Image diff --git a/app/src/main/res/values-ar-rSA/strings.xml b/app/src/main/res/values-ar-rSA/strings.xml index d591bdcb4..5ca177299 100644 --- a/app/src/main/res/values-ar-rSA/strings.xml +++ b/app/src/main/res/values-ar-rSA/strings.xml @@ -622,7 +622,7 @@ المستخدم تمكين خلفية العمق - إظهار نظام التشغيل iOS كخلفية للعمق\n يجب استخدام ساعة قفل مخصصة + إظهار نظام التشغيل iOS كخلفية للعمق\n%s التلاشي في AOD تحريك الخلفية والتلاشي في AOD الصورة الأمامية diff --git a/app/src/main/res/values-ca-rES/strings.xml b/app/src/main/res/values-ca-rES/strings.xml index 9d0770c07..7fffb0e05 100644 --- a/app/src/main/res/values-ca-rES/strings.xml +++ b/app/src/main/res/values-ca-rES/strings.xml @@ -622,7 +622,7 @@ User Enable Depth Wallpaper - Show iOS like depth wallpaper\nMust use custom lockscreen clock + Show iOS like depth wallpaper\n%s Fade in AOD Animate wallpaper and fade away in AOD Foreground Image diff --git a/app/src/main/res/values-cs-rCZ/strings.xml b/app/src/main/res/values-cs-rCZ/strings.xml index c3505df62..15750bbe6 100644 --- a/app/src/main/res/values-cs-rCZ/strings.xml +++ b/app/src/main/res/values-cs-rCZ/strings.xml @@ -622,7 +622,7 @@ User Enable Depth Wallpaper - Show iOS like depth wallpaper\nMust use custom lockscreen clock + Show iOS like depth wallpaper\n%s Fade in AOD Animate wallpaper and fade away in AOD Foreground Image diff --git a/app/src/main/res/values-da-rDK/strings.xml b/app/src/main/res/values-da-rDK/strings.xml index 9d0770c07..7fffb0e05 100644 --- a/app/src/main/res/values-da-rDK/strings.xml +++ b/app/src/main/res/values-da-rDK/strings.xml @@ -622,7 +622,7 @@ User Enable Depth Wallpaper - Show iOS like depth wallpaper\nMust use custom lockscreen clock + Show iOS like depth wallpaper\n%s Fade in AOD Animate wallpaper and fade away in AOD Foreground Image diff --git a/app/src/main/res/values-de-rDE/strings.xml b/app/src/main/res/values-de-rDE/strings.xml index 448f7267c..449c9b3c1 100644 --- a/app/src/main/res/values-de-rDE/strings.xml +++ b/app/src/main/res/values-de-rDE/strings.xml @@ -623,7 +623,7 @@ transparent machen Benutzer Aktiviere Tiefenwallpaper - Zeige ein Wallpaper mit iOS ähnlichem Tiefeneffekt\nEs muss eine angepasste Uhr für den Sperrbildschirm verwendet werden + Zeige ein Wallpaper mit iOS ähnlichem Tiefeneffekt\n%s Einblenden AOD Animiere Hintergrundbild und verblassen im AOD Vordergrund Bild diff --git a/app/src/main/res/values-el-rGR/strings.xml b/app/src/main/res/values-el-rGR/strings.xml index d1077138a..f4a661c1f 100644 --- a/app/src/main/res/values-el-rGR/strings.xml +++ b/app/src/main/res/values-el-rGR/strings.xml @@ -622,7 +622,7 @@ User Enable Depth Wallpaper - Show iOS like depth wallpaper\nMust use custom lockscreen clock + Show iOS like depth wallpaper\n%s Fade in AOD Animate wallpaper and fade away in AOD Foreground Image diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index 54af8298e..3ef74e742 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -622,7 +622,7 @@ Usuario Habilitar fondo de pantalla con profundidad - Mostrar fondo de pantalla parecido a iOS\nDebes utilizar reloj personalizado en pantalla de bloqueo + Mostrar fondo de pantalla parecido a iOS\n%s Desvanecer en AOD Anima el fondo de pantalla y desvanecer en AOD Imagen del primer plano diff --git a/app/src/main/res/values-fa-rIR/strings.xml b/app/src/main/res/values-fa-rIR/strings.xml index 8d152ec25..f80041e1d 100644 --- a/app/src/main/res/values-fa-rIR/strings.xml +++ b/app/src/main/res/values-fa-rIR/strings.xml @@ -622,7 +622,7 @@ User Enable Depth Wallpaper - Show iOS like depth wallpaper\nMust use custom lockscreen clock + Show iOS like depth wallpaper\n%s Fade in AOD Animate wallpaper and fade away in AOD Foreground Image diff --git a/app/src/main/res/values-fi-rFI/strings.xml b/app/src/main/res/values-fi-rFI/strings.xml index 9d0770c07..7fffb0e05 100644 --- a/app/src/main/res/values-fi-rFI/strings.xml +++ b/app/src/main/res/values-fi-rFI/strings.xml @@ -622,7 +622,7 @@ User Enable Depth Wallpaper - Show iOS like depth wallpaper\nMust use custom lockscreen clock + Show iOS like depth wallpaper\n%s Fade in AOD Animate wallpaper and fade away in AOD Foreground Image diff --git a/app/src/main/res/values-fr-rFR/strings.xml b/app/src/main/res/values-fr-rFR/strings.xml index 2f2bafaff..48adccd81 100644 --- a/app/src/main/res/values-fr-rFR/strings.xml +++ b/app/src/main/res/values-fr-rFR/strings.xml @@ -622,7 +622,7 @@ User Activer le fond d\'écran en profondeur - Afficher un fond d\'écran comme dans iOS en profondeur.\nVous devez utiliser une horloge d\'écran de verrouillage personnalisée + Afficher un fond d\'écran comme dans iOS en profondeur.\n%s Fondu en AOD Animer le fond d\'écran et le faire disparaître dans AOD Image de devant diff --git a/app/src/main/res/values-hu-rHU/strings.xml b/app/src/main/res/values-hu-rHU/strings.xml index 983cdedad..9b8a87849 100644 --- a/app/src/main/res/values-hu-rHU/strings.xml +++ b/app/src/main/res/values-hu-rHU/strings.xml @@ -622,7 +622,7 @@ Felhasználó A mélységi háttérkép engedélyezése - Az iOS-hez hasonló mélységi háttérképet jelenít meg\nEgyéni zárképernyő-órát kell használni + Az iOS-hez hasonló mélységi háttérképet jelenít meg\n%s Átúszás \'Mindig bekapcsolvá\'-ra Animálja a háttérképet, és áttűnik az AOD-ba Előtérkép diff --git a/app/src/main/res/values-in-rID/strings.xml b/app/src/main/res/values-in-rID/strings.xml index b92f48325..349afc102 100644 --- a/app/src/main/res/values-in-rID/strings.xml +++ b/app/src/main/res/values-in-rID/strings.xml @@ -622,7 +622,7 @@ User Enable Depth Wallpaper - Show iOS like depth wallpaper\nMust use custom lockscreen clock + Show iOS like depth wallpaper\n%s Fade in AOD Animate wallpaper and fade away in AOD Foreground Image diff --git a/app/src/main/res/values-it-rIT/strings.xml b/app/src/main/res/values-it-rIT/strings.xml index a50ff1c02..51bf78b5c 100644 --- a/app/src/main/res/values-it-rIT/strings.xml +++ b/app/src/main/res/values-it-rIT/strings.xml @@ -622,7 +622,7 @@ Utente Abilita Sfondo Di Profondità - Mostra sfondo di profondità come iOS\nRichiede l\'utilizzo dell\'orologio personalizzato nella schermata di blocco + Mostra sfondo di profondità come iOS\n%s Dissolvenza AOD Anima lo sfondo e sfuma in AOD Immagine in Primo Piano diff --git a/app/src/main/res/values-iw-rIL/strings.xml b/app/src/main/res/values-iw-rIL/strings.xml index d7e1391a5..4872d94ef 100644 --- a/app/src/main/res/values-iw-rIL/strings.xml +++ b/app/src/main/res/values-iw-rIL/strings.xml @@ -595,7 +595,7 @@ Force all colors to be white Enable Depth Wallpaper - Show iOS like depth wallpaper\nMust use custom lockscreen clock + Show iOS like depth wallpaper\n%s Fade in AOD Animate wallpaper and fade away in AOD Foreground Image diff --git a/app/src/main/res/values-ja-rJP/strings.xml b/app/src/main/res/values-ja-rJP/strings.xml index 4db35d62c..3afc313e8 100644 --- a/app/src/main/res/values-ja-rJP/strings.xml +++ b/app/src/main/res/values-ja-rJP/strings.xml @@ -622,7 +622,7 @@ ユーザー 奥行きのある壁紙を有効化 - iOS のような深みのある壁紙を表示します\nカスタムロック画面の時計を使用する必要があります + iOS のような深みのある壁紙を表示します\n%s AOD をフェードイン AOD で壁紙をアニメーション化してフェードアウトさせます 前景の画像 diff --git a/app/src/main/res/values-ko-rKR/strings.xml b/app/src/main/res/values-ko-rKR/strings.xml index a9ef0aa1b..1b0c07204 100644 --- a/app/src/main/res/values-ko-rKR/strings.xml +++ b/app/src/main/res/values-ko-rKR/strings.xml @@ -622,7 +622,7 @@ User Enable Depth Wallpaper - Show iOS like depth wallpaper\nMust use custom lockscreen clock + Show iOS like depth wallpaper\n%s Fade in AOD Animate wallpaper and fade away in AOD Foreground Image diff --git a/app/src/main/res/values-nl-rNL/strings.xml b/app/src/main/res/values-nl-rNL/strings.xml index 9d0770c07..7fffb0e05 100644 --- a/app/src/main/res/values-nl-rNL/strings.xml +++ b/app/src/main/res/values-nl-rNL/strings.xml @@ -622,7 +622,7 @@ User Enable Depth Wallpaper - Show iOS like depth wallpaper\nMust use custom lockscreen clock + Show iOS like depth wallpaper\n%s Fade in AOD Animate wallpaper and fade away in AOD Foreground Image diff --git a/app/src/main/res/values-no-rNO/strings.xml b/app/src/main/res/values-no-rNO/strings.xml index 9d0770c07..7fffb0e05 100644 --- a/app/src/main/res/values-no-rNO/strings.xml +++ b/app/src/main/res/values-no-rNO/strings.xml @@ -622,7 +622,7 @@ User Enable Depth Wallpaper - Show iOS like depth wallpaper\nMust use custom lockscreen clock + Show iOS like depth wallpaper\n%s Fade in AOD Animate wallpaper and fade away in AOD Foreground Image diff --git a/app/src/main/res/values-pl-rPL/strings.xml b/app/src/main/res/values-pl-rPL/strings.xml index 23a31d602..2af2ae7c0 100644 --- a/app/src/main/res/values-pl-rPL/strings.xml +++ b/app/src/main/res/values-pl-rPL/strings.xml @@ -622,7 +622,7 @@ User Włącz głębię tapety - Włącz efekt głębi tapety w stylu iOS\nWymagane używanie niestandardowego zegara na ekranie blokady + Włącz efekt głębi tapety w stylu iOS\n%s Zanikanie na AOD Animacja zanikania tapety na AOD Obraz pierwszoplanowy diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index fdba78ad7..600e903ee 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -622,7 +622,7 @@ Usuário Ativar plano de fundo com profundidade - Mostre o plano de fundo com profundidade semelhante ao iOS.\nÉ necessário usar relógio da tela de bloqueio personalizado. + Mostre o plano de fundo com profundidade semelhante ao iOS.\n%s Desaparecer na Tela ambiente Anime o plano de fundo e desapareça na Tela ambiente Imagem de primeiro plano diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index e068f2dc3..13942c8ab 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -622,7 +622,7 @@ User Enable Depth Wallpaper - Show iOS like depth wallpaper\nMust use custom lockscreen clock + Show iOS like depth wallpaper\n%s Fade in AOD Animate wallpaper and fade away in AOD Foreground Image diff --git a/app/src/main/res/values-ro-rRO/strings.xml b/app/src/main/res/values-ro-rRO/strings.xml index 9d0770c07..7fffb0e05 100644 --- a/app/src/main/res/values-ro-rRO/strings.xml +++ b/app/src/main/res/values-ro-rRO/strings.xml @@ -622,7 +622,7 @@ User Enable Depth Wallpaper - Show iOS like depth wallpaper\nMust use custom lockscreen clock + Show iOS like depth wallpaper\n%s Fade in AOD Animate wallpaper and fade away in AOD Foreground Image diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml index dac9b48d6..a257cb7eb 100644 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ b/app/src/main/res/values-ru-rRU/strings.xml @@ -622,7 +622,7 @@ Пользователь Включить глубинные обои - Показывать iOS-подобные глубинные обои\nНеобходимо использовать пользовательские часы блокировки экрана + Показывать iOS-подобные глубинные обои\n%s Угасание в AOD Анимировать обои и угасать в AOD Изображение на переднем плане diff --git a/app/src/main/res/values-sr-rSP/strings.xml b/app/src/main/res/values-sr-rSP/strings.xml index 9d0770c07..7fffb0e05 100644 --- a/app/src/main/res/values-sr-rSP/strings.xml +++ b/app/src/main/res/values-sr-rSP/strings.xml @@ -622,7 +622,7 @@ User Enable Depth Wallpaper - Show iOS like depth wallpaper\nMust use custom lockscreen clock + Show iOS like depth wallpaper\n%s Fade in AOD Animate wallpaper and fade away in AOD Foreground Image diff --git a/app/src/main/res/values-sv-rSE/strings.xml b/app/src/main/res/values-sv-rSE/strings.xml index 38d2ff533..8b7c1573d 100644 --- a/app/src/main/res/values-sv-rSE/strings.xml +++ b/app/src/main/res/values-sv-rSE/strings.xml @@ -622,7 +622,7 @@ User Enable Depth Wallpaper - Show iOS like depth wallpaper\nMust use custom lockscreen clock + Show iOS like depth wallpaper\n%s Fade in AOD Animate wallpaper and fade away in AOD Foreground Image diff --git a/app/src/main/res/values-tr-rTR/strings.xml b/app/src/main/res/values-tr-rTR/strings.xml index adc7b604f..e95f48092 100644 --- a/app/src/main/res/values-tr-rTR/strings.xml +++ b/app/src/main/res/values-tr-rTR/strings.xml @@ -622,7 +622,7 @@ Kullanıcı Derinlikli Duvar Kağıdını Etkinleştir - iOS\'a benzer derinlik duvar kağıdını göster\nÖzel kilit ekranı saati kullanılmalıdır + iOS\'a benzer derinlik duvar kağıdını göster\n%s AOD\'da Solma Duvar kağıdını canlandır ve AOD\'da kaybol Ön Plan Resmi diff --git a/app/src/main/res/values-uk-rUA/strings.xml b/app/src/main/res/values-uk-rUA/strings.xml index d07fc55b6..90eb52a99 100644 --- a/app/src/main/res/values-uk-rUA/strings.xml +++ b/app/src/main/res/values-uk-rUA/strings.xml @@ -622,7 +622,7 @@ User Enable Depth Wallpaper - Show iOS like depth wallpaper\nMust use custom lockscreen clock + Show iOS like depth wallpaper\n%s Fade in AOD Animate wallpaper and fade away in AOD Foreground Image diff --git a/app/src/main/res/values-vi-rVN/strings.xml b/app/src/main/res/values-vi-rVN/strings.xml index 9a6fdbe80..40744e0e3 100644 --- a/app/src/main/res/values-vi-rVN/strings.xml +++ b/app/src/main/res/values-vi-rVN/strings.xml @@ -622,7 +622,7 @@ User Enable Depth Wallpaper - Show iOS like depth wallpaper\nMust use custom lockscreen clock + Show iOS like depth wallpaper\n%s Fade in AOD Animate wallpaper and fade away in AOD Foreground Image diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 8464bc482..55463599e 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -622,7 +622,7 @@ 用户 启用深度壁纸 - 显示类 iOS 系统的深度壁纸\n必须使用自定义锁屏时钟 + 显示类 iOS 系统的深度壁纸\n%s 息屏显示淡入 在息屏显示中使壁纸动画化并具有淡出的动画 前景图 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 3e83437c3..d18f25974 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -622,7 +622,7 @@ User 啓用深度桌布 - 顯示類似iOS系統的深度桌布\n必須使用自訂鎖屏時鐘 + 顯示類似iOS系統的深度桌布\n%s 淡入AOD 在AOD中為壁紙製作動畫並淡入淡出 前景圖 diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index f25458836..2f76e70fe 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -5,6 +5,9 @@ com.android.systemui com.google.android.apps.nexuslauncher + + com.android.systemui + Afrikaans Arabic diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f43dc31a3..3852c0922 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -666,7 +666,11 @@ Enable Depth Wallpaper - Show iOS like depth wallpaper\nMust use custom lockscreen clock + Show iOS like depth wallpaper\n%s + Custom Images + Set custom images as depth wallpaper + Show on AOD + Show subject on always on display Fade in AOD Animate wallpaper and fade away in AOD Foreground Image @@ -679,6 +683,12 @@ Move background and foreground layers at different speeds Foreground Sensitivity Background Sensitivity + AI model is downloaded on the device + AI model isn\'t available on the device (yet) + Extracting wallpaper subject… + Extracted wallpaper subject! + Failed to extract wallpaper subject! + AI model is not available! Status Bar diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 19f3ad076..6cb686d1b 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -15,6 +15,7 @@ eventbus = "3.3.1" fadingedgelayout = "1.0.0" glide = "4.16.0" flexbox = "3.0.0" +googlePlayServicesMlkitSubjectSegmentationVersion = "16.0.0-beta1" guava = "33.2.1-jre" jsoup = "1.18.1" kapt = "2.0.0" @@ -25,6 +26,7 @@ libsuVersion = "5.2.2" lottie = "6.4.1" navigationUiKtx = "2.7.7" navigationFragmentKtx = "2.7.7" +playServicesBase = "18.5.0" slf4jApi = "2.0.13" viewpager2 = "1.1.0" recyclerviewSelection = "1.1.0" @@ -52,6 +54,7 @@ androidx-core-splashscreen = { module = "androidx.core:core-splashscreen", versi circleindicator = { module = "me.relex:circleindicator", version.ref = "circleindicator" } collapsingtoolbarlayout-subtitle = { module = "com.hendraanggrian.material:collapsingtoolbarlayout-subtitle", version.ref = "collapsingtoolbarlayoutSubtitle" } colorpicker = { module = "com.github.PolideaInternal:ColorPicker", version.ref = "colorpicker" } +com-google-android-gms-play-services-mlkit-subject-segmentation = { module = "com.google.android.gms:play-services-mlkit-subject-segmentation", version.ref = "googlePlayServicesMlkitSubjectSegmentationVersion" } compiler = { module = "com.github.bumptech.glide:compiler", version.ref = "compiler" } core = { module = "com.github.topjohnwu.libsu:core", version.ref = "libsuVersion" } dotsindicator = { module = "com.tbuonomo:dotsindicator", version.ref = "dotsindicator" } @@ -66,6 +69,7 @@ library = { module = "com.android.databinding:library", version.ref = "library" lottie = { module = "com.airbnb.android:lottie", version.ref = "lottie" } material = { module = "com.google.android.material:material", version.ref = "material" } nio = { module = "com.github.topjohnwu.libsu:nio", version.ref = "libsuVersion" } +play-services-base = { module = "com.google.android.gms:play-services-base", version.ref = "playServicesBase" } remotepreferences = { module = "com.crossbowffs.remotepreferences:remotepreferences", version.ref = "remotepreferences" } service = { module = "com.github.topjohnwu.libsu:service", version.ref = "libsuVersion" } slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "slf4jApi" } From 1e954896383e5ec79e52008991cd9e68ac1f0bec Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Mon, 12 Aug 2024 19:22:07 +0600 Subject: [PATCH 067/369] SB Clock Size: Automatically revert when disabled --- .../iconify/ui/fragments/XposedOthers.kt | 10 +++++--- .../iconify/xposed/modules/Miscellaneous.kt | 25 +++++++++++++++---- .../res/layout/fragment_xposed_others.xml | 7 +++--- 3 files changed, 30 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedOthers.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedOthers.kt index 51fa9651a..e6c76bc62 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedOthers.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedOthers.kt @@ -73,17 +73,21 @@ class XposedOthers : BaseFragment() { ) } - // SB Clock Size + // SB Clock Size Switch binding.sbClockSizeSwitch.isSwitchChecked = getBoolean(SB_CLOCK_SIZE_SWITCH, false) binding.sbClockSizeSwitch.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> binding.sbClockSize.visibility = if (isChecked) { + putBoolean(SB_CLOCK_SIZE_SWITCH, true) + putInt(SB_CLOCK_SIZE, binding.sbClockSize.sliderValue) View.VISIBLE } else { + putInt(SB_CLOCK_SIZE, 14) + putBoolean(SB_CLOCK_SIZE_SWITCH, false) View.GONE } - putBoolean(SB_CLOCK_SIZE_SWITCH, isChecked) } + // SB Clock Size Slider binding.sbClockSize.sliderValue = getInt(SB_CLOCK_SIZE, 14) binding.sbClockSize.setOnSliderTouchListener(object : Slider.OnSliderTouchListener { override fun onStartTrackingTouch(slider: Slider) {} @@ -92,7 +96,7 @@ class XposedOthers : BaseFragment() { putInt(SB_CLOCK_SIZE, slider.value.toInt()) } }) - binding.sbClockSize.visibility = if (getBoolean(SB_CLOCK_SIZE_SWITCH, false)) { + binding.sbClockSize.visibility = if (binding.sbClockSizeSwitch.isSwitchChecked) { View.VISIBLE } else { View.GONE diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt index 5252739df..bf1f9cc17 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt @@ -65,6 +65,9 @@ class Miscellaneous(context: Context?) : ModPack(context!!) { private var mClockView: TextView? = null private var mCenterClockView: TextView? = null private var mRightClockView: TextView? = null + private var mLeftClockSize = 14 + private var mCenterClockSize = 14 + private var mRightClockSize = 14 override fun updatePrefs(vararg key: String) { if (Xprefs == null) return @@ -101,7 +104,9 @@ class Miscellaneous(context: Context?) : ModPack(context!!) { fixedStatusIconsA12() } - if (it == SB_CLOCK_SIZE_SWITCH || it == SB_CLOCK_SIZE) { + if (it == SB_CLOCK_SIZE_SWITCH || + it == SB_CLOCK_SIZE + ) { setClockSize() } @@ -822,6 +827,10 @@ class Miscellaneous(context: Context?) : ModPack(context!!) { mCenterClockView = getCenterClockView(mContext, param) as? TextView mRightClockView = getRightClockView(mContext, param) as? TextView + mLeftClockSize = mClockView?.textSize?.toInt() ?: 14 + mCenterClockSize = mCenterClockView?.textSize?.toInt() ?: 14 + mRightClockSize = mRightClockView?.textSize?.toInt() ?: 14 + setClockSize() val textChangeListener = object : TextWatcher { @@ -856,20 +865,26 @@ class Miscellaneous(context: Context?) : ModPack(context!!) { @SuppressLint("RtlHardcoded") private fun setClockSize() { - if (!sbClockSizeSwitch) return + val leftClockSize = if (sbClockSizeSwitch) sbClockSize else mLeftClockSize + val centerClockSize = if (sbClockSizeSwitch) sbClockSize else mCenterClockSize + val rightClockSize = if (sbClockSizeSwitch) sbClockSize else mRightClockSize + val unit = if (sbClockSizeSwitch) TypedValue.COMPLEX_UNIT_SP else TypedValue.COMPLEX_UNIT_PX mClockView?.let { - it.setTextSize(TypedValue.COMPLEX_UNIT_SP, sbClockSize.toFloat()) + it.setTextSize(unit, leftClockSize.toFloat()) + it.gravity = Gravity.LEFT or Gravity.CENTER it.requestLayout() } mCenterClockView?.let { - it.setTextSize(TypedValue.COMPLEX_UNIT_SP, sbClockSize.toFloat()) + it.setTextSize(unit, centerClockSize.toFloat()) + it.gravity = Gravity.CENTER it.requestLayout() } mRightClockView?.let { - it.setTextSize(TypedValue.COMPLEX_UNIT_SP, sbClockSize.toFloat()) + it.setTextSize(unit, rightClockSize.toFloat()) + it.gravity = Gravity.RIGHT or Gravity.CENTER it.requestLayout() } } diff --git a/app/src/main/res/layout/fragment_xposed_others.xml b/app/src/main/res/layout/fragment_xposed_others.xml index b50b270b5..101e1a97b 100644 --- a/app/src/main/res/layout/fragment_xposed_others.xml +++ b/app/src/main/res/layout/fragment_xposed_others.xml @@ -46,17 +46,16 @@ app:titleText="@string/section_title_status_bar" /> + app:summaryText="@string/sb_clock_size_switch_desc" + app:titleText="@string/sb_clock_size_switch_title" /> Date: Mon, 12 Aug 2024 19:45:09 +0600 Subject: [PATCH 068/369] SB Clock Size: Revert gravity method --- .../drdisagree/iconify/xposed/modules/Miscellaneous.kt | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt index bf1f9cc17..9f0f26895 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt @@ -32,6 +32,7 @@ import com.drdisagree.iconify.xposed.modules.utils.Helpers.findClassInArray import com.drdisagree.iconify.xposed.modules.utils.StatusBarClock.getCenterClockView import com.drdisagree.iconify.xposed.modules.utils.StatusBarClock.getLeftClockView import com.drdisagree.iconify.xposed.modules.utils.StatusBarClock.getRightClockView +import com.drdisagree.iconify.xposed.modules.utils.StatusBarClock.setClockGravity import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge.hookAllMethods import de.robv.android.xposed.XposedBridge.log @@ -872,20 +873,17 @@ class Miscellaneous(context: Context?) : ModPack(context!!) { mClockView?.let { it.setTextSize(unit, leftClockSize.toFloat()) - it.gravity = Gravity.LEFT or Gravity.CENTER - it.requestLayout() + setClockGravity(it, Gravity.LEFT or Gravity.CENTER) } mCenterClockView?.let { it.setTextSize(unit, centerClockSize.toFloat()) - it.gravity = Gravity.CENTER - it.requestLayout() + setClockGravity(it, Gravity.CENTER) } mRightClockView?.let { it.setTextSize(unit, rightClockSize.toFloat()) - it.gravity = Gravity.RIGHT or Gravity.CENTER - it.requestLayout() + setClockGravity(it, Gravity.RIGHT or Gravity.CENTER) } } From 50116880e422f8f29552498b3d862fb306da1f7d Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Tue, 13 Aug 2024 00:19:27 +0600 Subject: [PATCH 069/369] Refactor findClassInArray method --- .../com/drdisagree/iconify/xposed/modules/BackgroundChip.kt | 6 ++---- .../drdisagree/iconify/xposed/modules/DepthWallpaperA14.kt | 2 +- .../com/drdisagree/iconify/xposed/modules/Miscellaneous.kt | 2 +- .../com/drdisagree/iconify/xposed/modules/utils/Helpers.kt | 5 ++--- 4 files changed, 6 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/BackgroundChip.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/BackgroundChip.kt index e0d698ae7..545189dde 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/BackgroundChip.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/BackgroundChip.kt @@ -8,14 +8,12 @@ import android.graphics.PorterDuff import android.graphics.PorterDuffXfermode import android.os.Build import android.os.Bundle -import android.util.Log import android.util.TypedValue import android.view.Gravity import android.view.View import android.view.ViewGroup import android.widget.FrameLayout import android.widget.LinearLayout -import android.widget.RelativeLayout import android.widget.TextView import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintSet @@ -39,8 +37,8 @@ import com.drdisagree.iconify.xposed.HookRes.Companion.resParams import com.drdisagree.iconify.xposed.ModPack import com.drdisagree.iconify.xposed.modules.utils.Helpers.findClassInArray import com.drdisagree.iconify.xposed.modules.utils.StatusBarClock -import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.toPx import com.drdisagree.iconify.xposed.modules.utils.StatusBarClock.setClockGravity +import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.toPx import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge.hookAllMethods import de.robv.android.xposed.XposedBridge.log @@ -129,7 +127,7 @@ class BackgroundChip(context: Context?) : ModPack(context!!) { private fun statusBarClockChip(loadPackageParam: LoadPackageParam) { val collapsedStatusBarFragment = findClassInArray( - loadPackageParam, + loadPackageParam.classLoader, "$SYSTEMUI_PACKAGE.statusbar.phone.CollapsedStatusBarFragment", "$SYSTEMUI_PACKAGE.statusbar.phone.fragment.CollapsedStatusBarFragment" diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/DepthWallpaperA14.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/DepthWallpaperA14.kt index 6847c457b..6442beaf2 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/DepthWallpaperA14.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/DepthWallpaperA14.kt @@ -101,7 +101,7 @@ class DepthWallpaperA14(context: Context?) : ModPack(context!!) { override fun handleLoadPackage(loadPackageParam: LoadPackageParam) { val qsImplClass = findClassInArray( - loadPackageParam, + loadPackageParam.classLoader, "$SYSTEMUI_PACKAGE.qs.QSImpl", "$SYSTEMUI_PACKAGE.qs.QSFragment" ) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt index 9f0f26895..a8accc907 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt @@ -808,7 +808,7 @@ class Miscellaneous(context: Context?) : ModPack(context!!) { private fun applyClockSize(loadPackageParam: LoadPackageParam) { val collapsedStatusBarFragment = findClassInArray( - loadPackageParam, + loadPackageParam.classLoader, "$SYSTEMUI_PACKAGE.statusbar.phone.CollapsedStatusBarFragment", "$SYSTEMUI_PACKAGE.statusbar.phone.fragment.CollapsedStatusBarFragment" ) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/Helpers.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/Helpers.kt index 9c000fd20..df47cc61e 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/Helpers.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/Helpers.kt @@ -13,7 +13,6 @@ import de.robv.android.xposed.XposedBridge.hookAllMethods import de.robv.android.xposed.XposedBridge.log import de.robv.android.xposed.XposedHelpers.findClass import de.robv.android.xposed.XposedHelpers.findClassIfExists -import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam @Suppress("unused") object Helpers { @@ -131,9 +130,9 @@ object Helpers { } } - fun findClassInArray(lpparam: LoadPackageParam, vararg classNames: String): Class<*>? { + fun findClassInArray(classLoader: ClassLoader, vararg classNames: String): Class<*>? { for (className in classNames) { - val clazz = findClassIfExists(className, lpparam.classLoader) + val clazz = findClassIfExists(className, classLoader) if (clazz != null) return clazz } return null From e508fee2300b91609b5faf61d5faa7daad7f7c41 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Tue, 13 Aug 2024 00:29:48 +0600 Subject: [PATCH 070/369] QS Themes: Fix header components color --- .../xposed/modules/themes/QSBlackThemeA13.kt | 33 ++++++++++++------- .../xposed/modules/themes/QSLightThemeA13.kt | 29 ++++++++++++---- .../xposed/modules/themes/QSLightThemeA14.kt | 32 +++++++++++++----- 3 files changed, 67 insertions(+), 27 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA13.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA13.kt index f3ed12ca9..40b001a6e 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA13.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA13.kt @@ -168,18 +168,29 @@ class QSBlackThemeA13(context: Context?) : ModPack(context!!) { "configurationControllerListener" ) - hookAllMethods( - configurationControllerListener.javaClass, + val applyComponentColors = object : XC_MethodHook() { + override fun afterHookedMethod(param: MethodHookParam) { + setHeaderComponentsColor(mView, iconManager, batteryIcon) + } + } + + val methods = listOf( "onConfigChanged", - object : XC_MethodHook() { - override fun afterHookedMethod(param: MethodHookParam) { - setHeaderComponentsColor( - mView, - iconManager, - batteryIcon - ) - } - }) + "onDensityOrFontScaleChanged", + "onUiModeChanged", + "onThemeChanged" + ) + + for (method in methods) { + try { + hookAllMethods( + configurationControllerListener.javaClass, + method, + applyComponentColors + ) + } catch (ignored: Throwable) { + } + } setHeaderComponentsColor(mView, iconManager, batteryIcon) } catch (throwable: Throwable) { diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA13.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA13.kt index d490bd725..6768117c2 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA13.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA13.kt @@ -298,14 +298,29 @@ class QSLightThemeA13(context: Context?) : ModPack(context!!) { "configurationControllerListener" ) - hookAllMethods( - configurationControllerListener.javaClass, + val applyComponentColors = object : XC_MethodHook() { + override fun afterHookedMethod(param: MethodHookParam) { + setHeaderComponentsColor(mView, iconManager, batteryIcon) + } + } + + val methods = listOf( "onConfigChanged", - object : XC_MethodHook() { - override fun afterHookedMethod(param: MethodHookParam) { - setHeaderComponentsColor(mView, iconManager, batteryIcon) - } - }) + "onDensityOrFontScaleChanged", + "onUiModeChanged", + "onThemeChanged" + ) + + for (method in methods) { + try { + hookAllMethods( + configurationControllerListener.javaClass, + method, + applyComponentColors + ) + } catch (ignored: Throwable) { + } + } setHeaderComponentsColor(mView, iconManager, batteryIcon) } catch (throwable: Throwable) { diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA14.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA14.kt index 1ff178f39..fadec45ce 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA14.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA14.kt @@ -19,9 +19,9 @@ import com.drdisagree.iconify.common.Preferences.LIGHT_QSPANEL import com.drdisagree.iconify.common.Preferences.QS_TEXT_ALWAYS_WHITE import com.drdisagree.iconify.common.Preferences.QS_TEXT_FOLLOW_ACCENT import com.drdisagree.iconify.config.XPrefs.Xprefs -import com.drdisagree.iconify.xposed.ModPack import com.drdisagree.iconify.xposed.HookEntry.Companion.disableOverlays import com.drdisagree.iconify.xposed.HookEntry.Companion.enableOverlay +import com.drdisagree.iconify.xposed.ModPack import com.drdisagree.iconify.xposed.modules.utils.SettingsLibUtils.Companion.getColorAttr import com.drdisagree.iconify.xposed.modules.utils.SettingsLibUtils.Companion.getColorAttrDefaultColor import com.drdisagree.iconify.xposed.utils.SystemUtil @@ -234,15 +234,29 @@ class QSLightThemeA14(context: Context?) : ModPack(context!!) { "configurationControllerListener" ) - hookAllMethods( - configurationControllerListener.javaClass, + val applyComponentColors = object : XC_MethodHook() { + override fun afterHookedMethod(param: MethodHookParam) { + setHeaderComponentsColor(mView, iconManager, batteryIcon) + } + } + + val methods = listOf( "onConfigChanged", - object : XC_MethodHook() { - @Throws(Throwable::class) - override fun afterHookedMethod(param: MethodHookParam) { - setHeaderComponentsColor(mView, iconManager, batteryIcon) - } - }) + "onDensityOrFontScaleChanged", + "onUiModeChanged", + "onThemeChanged" + ) + + for (method in methods) { + try { + hookAllMethods( + configurationControllerListener.javaClass, + method, + applyComponentColors + ) + } catch (ignored: Throwable) { + } + } setHeaderComponentsColor(mView, iconManager, batteryIcon) } catch (throwable: Throwable) { From c8034fc2216e14fa8b717f4280233dab2437cc68 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Tue, 13 Aug 2024 00:31:54 +0600 Subject: [PATCH 071/369] QS Themes: Fix wrong number of arguments exception --- .../xposed/modules/themes/QSFluidThemeA14.kt | 14 +++++++++++--- .../xposed/modules/themes/QSLightThemeA14.kt | 13 ++++++++++--- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSFluidThemeA14.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSFluidThemeA14.kt index 45af0064c..7b85da3a6 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSFluidThemeA14.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSFluidThemeA14.kt @@ -374,12 +374,20 @@ class QSFluidThemeA14(context: Context?) : ModPack(context!!) { ) try { - val zeroAlphaFlow = - stateFlowImplClass.getConstructor(Any::class.java).newInstance(0f) + val zeroAlphaFlow = stateFlowImplClass + .getConstructor(Any::class.java) + .newInstance(0f) + + val readonlyStateFlowInstance = try { + readonlyStateFlowClass.constructors[0].newInstance(zeroAlphaFlow) + } catch (ignored: Throwable) { + readonlyStateFlowClass.constructors[0].newInstance(zeroAlphaFlow, null) + } + setObjectField( param.thisObject, "backgroundAlpha", - readonlyStateFlowClass.constructors[0].newInstance(zeroAlphaFlow) + readonlyStateFlowInstance ) } catch (throwable: Throwable) { log(TAG + throwable) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA14.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA14.kt index fadec45ce..9907b9cee 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA14.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA14.kt @@ -742,13 +742,20 @@ class QSLightThemeA14(context: Context?) : ModPack(context!!) { ) try { - val zeroAlphaFlow = - stateFlowImplClass.getConstructor(Any::class.java).newInstance(0f) + val zeroAlphaFlow = stateFlowImplClass + .getConstructor(Any::class.java) + .newInstance(0f) + + val readonlyStateFlowInstance = try { + readonlyStateFlowClass.constructors[0].newInstance(zeroAlphaFlow) + } catch (ignored: Throwable) { + readonlyStateFlowClass.constructors[0].newInstance(zeroAlphaFlow, null) + } setObjectField( param.thisObject, "backgroundAlpha", - readonlyStateFlowClass.constructors[0].newInstance(zeroAlphaFlow) + readonlyStateFlowInstance ) } catch (throwable: Throwable) { log(TAG + throwable) From f6b5da9ddc8fa7c22cd552232eac27d26f19983b Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Tue, 13 Aug 2024 02:12:51 +0600 Subject: [PATCH 072/369] QS Black Theme: Fix for android 14 QPR3 bug: security footer text is invisible --- .../xposed/modules/themes/QSBlackThemeA14.kt | 740 ++++++++++-------- 1 file changed, 411 insertions(+), 329 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA14.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA14.kt index bc24d49b9..341edfc09 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA14.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA14.kt @@ -19,6 +19,7 @@ import com.drdisagree.iconify.common.Preferences.QS_TEXT_ALWAYS_WHITE import com.drdisagree.iconify.common.Preferences.QS_TEXT_FOLLOW_ACCENT import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.ModPack +import com.drdisagree.iconify.xposed.modules.utils.Helpers.findClassInArray import com.drdisagree.iconify.xposed.modules.utils.SettingsLibUtils.Companion.getColorAttr import com.drdisagree.iconify.xposed.utils.SystemUtil import de.robv.android.xposed.XC_MethodHook @@ -34,7 +35,7 @@ import de.robv.android.xposed.XposedHelpers.getIntField import de.robv.android.xposed.XposedHelpers.getObjectField import de.robv.android.xposed.XposedHelpers.setObjectField import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam -import java.util.function.Consumer + @SuppressLint("DiscouragedApi") class QSBlackThemeA14(context: Context?) : ModPack(context!!) { @@ -48,6 +49,8 @@ class QSBlackThemeA14(context: Context?) : ModPack(context!!) { private var qsTextFollowAccent = false private var shadeCarrierGroupController: Any? = null private val modernShadeCarrierGroupMobileViews = ArrayList() + private var colorActive: Int = -1 + private var colorInactive: Int = -1 init { isDark = SystemUtil.isDarkMode @@ -164,16 +167,11 @@ class QSBlackThemeA14(context: Context?) : ModPack(context!!) { "$SYSTEMUI_PACKAGE.qs.footer.ui.binder.FooterActionsViewBinder", loadPackageParam.classLoader ) - var shadeHeaderControllerClass = findClassIfExists( + val shadeHeaderControllerClass = findClassInArray( + loadPackageParam.classLoader, "$SYSTEMUI_PACKAGE.shade.ShadeHeaderController", - loadPackageParam.classLoader + "$SYSTEMUI_PACKAGE.shade.LargeScreenShadeHeaderController" ) - if (shadeHeaderControllerClass == null) { - shadeHeaderControllerClass = findClass( - "$SYSTEMUI_PACKAGE.shade.LargeScreenShadeHeaderController", - loadPackageParam.classLoader - ) - } // Background color of android 14's charging chip. Fix for light QS theme situation val batteryStatusChipColorHook: XC_MethodHook = object : XC_MethodHook() { @@ -213,14 +211,29 @@ class QSBlackThemeA14(context: Context?) : ModPack(context!!) { "configurationControllerListener" ) - hookAllMethods( - configurationControllerListener.javaClass, + val applyComponentColors = object : XC_MethodHook() { + override fun afterHookedMethod(param: MethodHookParam) { + setHeaderComponentsColor(mView, iconManager, batteryIcon) + } + } + + val methods = listOf( "onConfigChanged", - object : XC_MethodHook() { - override fun afterHookedMethod(param: MethodHookParam) { - setHeaderComponentsColor(mView, iconManager, batteryIcon) - } - }) + "onDensityOrFontScaleChanged", + "onUiModeChanged", + "onThemeChanged" + ) + + for (method in methods) { + try { + hookAllMethods( + configurationControllerListener.javaClass, + method, + applyComponentColors + ) + } catch (ignored: Throwable) { + } + } setHeaderComponentsColor(mView, iconManager, batteryIcon) } catch (throwable: Throwable) { @@ -265,102 +278,111 @@ class QSBlackThemeA14(context: Context?) : ModPack(context!!) { override fun afterHookedMethod(param: MethodHookParam) { if (!blackQSHeaderEnabled) return - val view = (param.thisObject as ViewGroup).findViewById( - mContext.resources.getIdentifier( - "qs_footer_actions", - "id", - mContext.packageName - ) - ).also { - it.background?.setTint(Color.BLACK) - it.elevation = 0f - } - - // Settings button - view.findViewById( - mContext.resources.getIdentifier( - "settings_button_container", - "id", - mContext.packageName - ) - ).findViewById( - mContext.resources.getIdentifier( - "icon", - "id", - mContext.packageName - ) - ).setImageTintList(ColorStateList.valueOf(Color.WHITE)) - - // Power menu button try { - view.findViewById( + val view = (param.thisObject as ViewGroup).findViewById( mContext.resources.getIdentifier( - "pm_lite", + "qs_footer_actions", "id", mContext.packageName ) - ) - } catch (ignored: ClassCastException) { - view.findViewById( + ).also { + it.background?.setTint(Color.BLACK) + it.elevation = 0f + } + + // Settings button + view.findViewById( mContext.resources.getIdentifier( - "pm_lite", + "settings_button_container", "id", mContext.packageName ) - ) - }?.apply { - if (this is ImageView) { - setImageTintList(ColorStateList.valueOf(Color.BLACK)) - } else if (this is ViewGroup) { - (getChildAt(0) as ImageView).setColorFilter( - Color.WHITE, - PorterDuff.Mode.SRC_IN + ).findViewById( + mContext.resources.getIdentifier( + "icon", + "id", + mContext.packageName ) + ).setImageTintList(ColorStateList.valueOf(Color.WHITE)) + + // Power menu button + try { + view.findViewById( + mContext.resources.getIdentifier( + "pm_lite", + "id", + mContext.packageName + ) + ) + } catch (ignored: ClassCastException) { + view.findViewById( + mContext.resources.getIdentifier( + "pm_lite", + "id", + mContext.packageName + ) + ) + }?.apply { + if (this is ImageView) { + setImageTintList(ColorStateList.valueOf(Color.BLACK)) + } else if (this is ViewGroup) { + (getChildAt(0) as ImageView).setColorFilter( + Color.WHITE, + PorterDuff.Mode.SRC_IN + ) + } } + } catch (ignored: Throwable) { + // it will fail on compose implementation } } }) // QS Customize panel - hookAllConstructors(qsCustomizerClass, object : XC_MethodHook() { - override fun afterHookedMethod(param: MethodHookParam) { - if (blackQSHeaderEnabled) { - val mainView = param.thisObject as ViewGroup + hookAllConstructors(qsCustomizerClass, + object : XC_MethodHook() { + override fun afterHookedMethod(param: MethodHookParam) { + if (blackQSHeaderEnabled) { + val mainView = param.thisObject as ViewGroup - for (i in 0 until mainView.childCount) { - mainView.getChildAt(i).setBackgroundColor(Color.BLACK) + for (i in 0 until mainView.childCount) { + mainView.getChildAt(i).setBackgroundColor(Color.BLACK) + } } } - } - }) + }) // Mobile signal icons - this is the legacy model. new model uses viewmodels - hookAllMethods(shadeCarrierClass, "updateState", object : XC_MethodHook() { - override fun afterHookedMethod(param: MethodHookParam) { - if (!blackQSHeaderEnabled) return + hookAllMethods(shadeCarrierClass, "updateState", + object : XC_MethodHook() { + override fun afterHookedMethod(param: MethodHookParam) { + if (!blackQSHeaderEnabled) return - (getObjectField(param.thisObject, "mMobileSignal") as ImageView) - .setImageTintList(ColorStateList.valueOf(Color.WHITE)) - } - }) + (getObjectField(param.thisObject, "mMobileSignal") as ImageView) + .setImageTintList(ColorStateList.valueOf(Color.WHITE)) + } + }) // QS security footer count circle - hookAllConstructors(numberButtonViewHolderClass, object : XC_MethodHook() { - override fun afterHookedMethod(param: MethodHookParam) { - if (blackQSHeaderEnabled) { - (getObjectField(param.thisObject, "newDot") as ImageView) - .setColorFilter(Color.WHITE) + hookAllConstructors(numberButtonViewHolderClass, + object : XC_MethodHook() { + override fun afterHookedMethod(param: MethodHookParam) { + if (blackQSHeaderEnabled) { + (getObjectField(param.thisObject, "newDot") as ImageView) + .setColorFilter(Color.WHITE) - (getObjectField(param.thisObject, "number") as TextView) - .setTextColor(Color.WHITE) + (getObjectField(param.thisObject, "number") as TextView) + .setTextColor(Color.WHITE) + } } - } - }) + }) // QS security footer - hookAllConstructors(textButtonViewHolderClass, object : XC_MethodHook() { - override fun afterHookedMethod(param: MethodHookParam) { - if (blackQSHeaderEnabled) { + hookAllConstructors(textButtonViewHolderClass, + object : XC_MethodHook() { + override fun afterHookedMethod(param: MethodHookParam) { + if (!blackQSHeaderEnabled) return + (getObjectField(param.thisObject, "chevron") as ImageView) .setColorFilter(Color.WHITE) @@ -373,8 +395,8 @@ class QSBlackThemeA14(context: Context?) : ModPack(context!!) { (getObjectField(param.thisObject, "text") as TextView) .setTextColor(Color.WHITE) } - } - }) + }) + try { //QS Footer built text row hookAllMethods(qsFooterViewClass, "onFinishInflate", object : XC_MethodHook() { @@ -407,19 +429,20 @@ class QSBlackThemeA14(context: Context?) : ModPack(context!!) { } // QS tile primary label color - hookAllMethods(qsTileViewImplClass, "getLabelColorForState", object : XC_MethodHook() { - override fun beforeHookedMethod(param: MethodHookParam) { - if (!blackQSHeaderEnabled) return + hookAllMethods(qsTileViewImplClass, "getLabelColorForState", + object : XC_MethodHook() { + override fun beforeHookedMethod(param: MethodHookParam) { + if (!blackQSHeaderEnabled) return - try { - if (param.args[0] as Int == Tile.STATE_ACTIVE) { - param.result = colorText + try { + if (param.args[0] as Int == Tile.STATE_ACTIVE) { + param.result = colorText + } + } catch (throwable: Throwable) { + log(TAG + throwable) } - } catch (throwable: Throwable) { - log(TAG + throwable) } - } - }) + }) // QS tile secondary label color hookAllMethods( @@ -440,18 +463,21 @@ class QSBlackThemeA14(context: Context?) : ModPack(context!!) { }) // Auto Brightness Icon Color - hookAllMethods(brightnessControllerClass, "updateIcon", object : XC_MethodHook() { - override fun afterHookedMethod(param: MethodHookParam) { - if (!blackQSHeaderEnabled) return + hookAllMethods(brightnessControllerClass, "updateIcon", + object : XC_MethodHook() { + override fun afterHookedMethod(param: MethodHookParam) { + if (!blackQSHeaderEnabled) return - try { - (getObjectField(param.thisObject, "mIcon") as ImageView) - .setImageTintList(ColorStateList.valueOf(colorText!!)) - } catch (throwable: Throwable) { - log(TAG + throwable) + try { + val iconColor = if (param.args[0] as Boolean) Color.BLACK else Color.WHITE + val mIcon = getObjectField(param.thisObject, "mIcon") as ImageView + + mIcon.setImageTintList(ColorStateList.valueOf(iconColor)) + } catch (throwable: Throwable) { + log(TAG + throwable) + } } - } - }) + }) if (brightnessSliderControllerClass != null) { hookAllConstructors(brightnessSliderControllerClass, object : XC_MethodHook() { @@ -472,63 +498,47 @@ class QSBlackThemeA14(context: Context?) : ModPack(context!!) { }) } - hookAllMethods(brightnessMirrorControllerClass, "updateIcon", object : XC_MethodHook() { - override fun afterHookedMethod(param: MethodHookParam) { - if (!blackQSHeaderEnabled) return - - try { - (getObjectField(param.thisObject, "mIcon") as ImageView) - .setImageTintList(ColorStateList.valueOf(colorText!!)) - } catch (throwable: Throwable) { - log(TAG + throwable) - } - } - }) + hookAllMethods(brightnessMirrorControllerClass, "updateIcon", + object : XC_MethodHook() { + override fun afterHookedMethod(param: MethodHookParam) { + if (!blackQSHeaderEnabled) return - hookAllMethods(qsIconViewImplClass, "updateIcon", object : XC_MethodHook() { - override fun afterHookedMethod(param: MethodHookParam) { - if (blackQSHeaderEnabled) { try { - if (getIntField(param.args[1], "state") == Tile.STATE_ACTIVE - ) { - (param.args[0] as ImageView) - .setImageTintList(ColorStateList.valueOf(colorText!!)) - } + val mIcon = getObjectField(param.thisObject, "mIcon") as ImageView + mIcon.setImageTintList(ColorStateList.valueOf(colorText!!)) } catch (throwable: Throwable) { log(TAG + throwable) } } - } - }) + }) - hookAllMethods(qsIconViewImplClass, "setIcon", object : XC_MethodHook() { - override fun beforeHookedMethod(param: MethodHookParam) { - if (blackQSHeaderEnabled) { - try { - if (param.args[0] is ImageView && - getIntField(param.args[1], "state") == Tile.STATE_ACTIVE - ) { - setObjectField(param.thisObject, "mTint", colorText) + hookAllMethods(qsIconViewImplClass, "updateIcon", + object : XC_MethodHook() { + override fun afterHookedMethod(param: MethodHookParam) { + if (blackQSHeaderEnabled) { + try { + if (getIntField(param.args[1], "state") == Tile.STATE_ACTIVE + ) { + (param.args[0] as ImageView) + .setImageTintList(ColorStateList.valueOf(colorText!!)) + } + } catch (throwable: Throwable) { + log(TAG + throwable) } - } catch (throwable: Throwable) { - log(TAG + throwable) } } - } - }) - - try { - // White QS Clock bug - hookAllMethods(quickStatusBarHeaderClass, "onFinishInflate", object : XC_MethodHook() { - override fun afterHookedMethod(param: MethodHookParam) { - try { - mClockViewQSHeader = getObjectField(param.thisObject, "mClockView") - } catch (ignored: Throwable) { - } + }) - if (blackQSHeaderEnabled && mClockViewQSHeader != null) { + hookAllMethods(qsIconViewImplClass, "setIcon", + object : XC_MethodHook() { + override fun beforeHookedMethod(param: MethodHookParam) { + if (blackQSHeaderEnabled) { try { - (mClockViewQSHeader as TextView).setTextColor(Color.WHITE) + if (param.args[0] is ImageView && + getIntField(param.args[1], "state") == Tile.STATE_ACTIVE + ) { + setObjectField(param.thisObject, "mTint", colorText) + } } catch (throwable: Throwable) { log(TAG + throwable) } @@ -536,7 +546,29 @@ class QSBlackThemeA14(context: Context?) : ModPack(context!!) { } }) - // White QS Clock bug + try { + // Black QS Clock bug + hookAllMethods( + quickStatusBarHeaderClass, + "onFinishInflate", + object : XC_MethodHook() { + override fun afterHookedMethod(param: MethodHookParam) { + try { + mClockViewQSHeader = getObjectField(param.thisObject, "mClockView") + } catch (ignored: Throwable) { + } + + if (blackQSHeaderEnabled && mClockViewQSHeader != null) { + try { + (mClockViewQSHeader as TextView).setTextColor(Color.WHITE) + } catch (throwable: Throwable) { + log(TAG + throwable) + } + } + } + }) + + // Black QS Clock bug hookAllMethods(clockClass, "onColorsChanged", object : XC_MethodHook() { override fun afterHookedMethod(param: MethodHookParam) { if (blackQSHeaderEnabled && mClockViewQSHeader != null) { @@ -558,70 +590,80 @@ class QSBlackThemeA14(context: Context?) : ModPack(context!!) { } }) - hookAllMethods(centralSurfacesImplClass, "updateTheme", object : XC_MethodHook() { - override fun afterHookedMethod(param: MethodHookParam) { - initColors(false) - } - }) + hookAllMethods( + centralSurfacesImplClass, + "updateTheme", + object : XC_MethodHook() { + override fun afterHookedMethod(param: MethodHookParam) { + initColors(false) + } + }) } - hookAllConstructors(qsTileViewImplClass, object : XC_MethodHook() { - override fun afterHookedMethod(param: MethodHookParam) { - if (!blackQSHeaderEnabled) return - try { - if (!qsTextAlwaysWhite && !qsTextFollowAccent) { - setObjectField(param.thisObject, "colorLabelActive", colorText) + hookAllConstructors(qsTileViewImplClass, + object : XC_MethodHook() { + override fun afterHookedMethod(param: MethodHookParam) { + if (!blackQSHeaderEnabled) return + + try { + if (!qsTextAlwaysWhite && !qsTextFollowAccent) { + setObjectField(param.thisObject, "colorLabelActive", colorText) + setObjectField( + param.thisObject, + "colorSecondaryLabelActive", + colorTextAlpha + ) + } + + setObjectField(param.thisObject, "colorLabelInactive", Color.WHITE) setObjectField( param.thisObject, - "colorSecondaryLabelActive", - colorTextAlpha + "colorSecondaryLabelInactive", + -0x7f000001 ) - } - - setObjectField(param.thisObject, "colorLabelInactive", Color.WHITE) - setObjectField(param.thisObject, "colorSecondaryLabelInactive", -0x7f000001) - val sideView = getObjectField(param.thisObject, "sideView") as ViewGroup + val sideView = getObjectField(param.thisObject, "sideView") as ViewGroup - val customDrawable = sideView.findViewById( - mContext.resources.getIdentifier( - "customDrawable", - "id", - mContext.packageName + val customDrawable = sideView.findViewById( + mContext.resources.getIdentifier( + "customDrawable", + "id", + mContext.packageName + ) ) - ) - customDrawable.setImageTintList(ColorStateList.valueOf(colorText!!)) + customDrawable.setImageTintList(ColorStateList.valueOf(colorText!!)) - val chevron = sideView.findViewById( - mContext.resources.getIdentifier( - "chevron", - "id", - mContext.packageName + val chevron = sideView.findViewById( + mContext.resources.getIdentifier( + "chevron", + "id", + mContext.packageName + ) ) - ) - chevron.setImageTintList(ColorStateList.valueOf(colorText!!)) - } catch (throwable: Throwable) { - log(TAG + throwable) + chevron.setImageTintList(ColorStateList.valueOf(colorText!!)) + } catch (throwable: Throwable) { + log(TAG + throwable) + } } - } - }) + }) - hookAllMethods(qsIconViewImplClass, "getIconColorForState", object : XC_MethodHook() { - override fun beforeHookedMethod(param: MethodHookParam) { - val (isDisabledState: Boolean, - isActiveState: Boolean) = Utils.getTileState(param) + hookAllMethods(qsIconViewImplClass, "getIconColorForState", + object : XC_MethodHook() { + override fun beforeHookedMethod(param: MethodHookParam) { + val (isDisabledState: Boolean, + isActiveState: Boolean) = Utils.getTileState(param) - if (blackQSHeaderEnabled) { - if (isDisabledState) { - param.result = -0x7f000001 - } else if (isActiveState && !qsTextAlwaysWhite && !qsTextFollowAccent) { - param.result = colorText - } else if (!isActiveState) { - param.result = Color.WHITE + if (blackQSHeaderEnabled) { + if (isDisabledState) { + param.result = -0x7f000001 + } else if (isActiveState && !qsTextAlwaysWhite && !qsTextFollowAccent) { + param.result = colorText + } else if (!isActiveState) { + param.result = Color.WHITE + } } } - } - }) + }) try { hookAllMethods(qsIconViewImplClass, "updateIcon", object : XC_MethodHook() { @@ -648,48 +690,51 @@ class QSBlackThemeA14(context: Context?) : ModPack(context!!) { } try { - hookAllMethods(qsContainerImplClass, "updateResources", object : XC_MethodHook() { - override fun afterHookedMethod(param: MethodHookParam) { - if (!blackQSHeaderEnabled) return - - try { - val res = mContext.resources - val view = (param.thisObject as ViewGroup).findViewById( - res.getIdentifier( - "qs_footer_actions", - "id", - mContext.packageName - ) - ) + hookAllMethods( + qsContainerImplClass, + "updateResources", + object : XC_MethodHook() { + override fun afterHookedMethod(param: MethodHookParam) { + if (!blackQSHeaderEnabled) return try { - val pmButtonContainer = view.findViewById( + val res = mContext.resources + val view = (param.thisObject as ViewGroup).findViewById( res.getIdentifier( - "pm_lite", + "qs_footer_actions", "id", mContext.packageName ) ) - (pmButtonContainer.getChildAt(0) as ImageView).setColorFilter( - Color.BLACK, - PorterDuff.Mode.SRC_IN - ) - } catch (ignored: Throwable) { - val pmButton = view.findViewById( - res.getIdentifier( - "pm_lite", - "id", - mContext.packageName + try { + val pmButtonContainer = view.findViewById( + res.getIdentifier( + "pm_lite", + "id", + mContext.packageName + ) + ) + + (pmButtonContainer.getChildAt(0) as ImageView).setColorFilter( + Color.BLACK, + PorterDuff.Mode.SRC_IN + ) + } catch (ignored: Throwable) { + val pmButton = view.findViewById( + res.getIdentifier( + "pm_lite", + "id", + mContext.packageName + ) ) - ) - pmButton.setImageTintList(ColorStateList.valueOf(Color.BLACK)) + pmButton.setImageTintList(ColorStateList.valueOf(Color.BLACK)) + } + } catch (ignored: Throwable) { } - } catch (ignored: Throwable) { } - } - }) + }) } catch (ignored: Throwable) { } @@ -714,13 +759,18 @@ class QSBlackThemeA14(context: Context?) : ModPack(context!!) { val code = param.args[0] as Int var result = 0 - if (code != PM_LITE_BACKGROUND_CODE) { + if (code == PM_LITE_BACKGROUND_CODE) { + result = colorActive + } else { try { - if (mContext.resources.getResourceName(code).split("/".toRegex()) - .dropLastWhile { it.isEmpty() } - .toTypedArray()[1] == "onShadeInactiveVariant" - ) { - result = Color.WHITE // number button text + when (mContext.resources.getResourceName(code).split("/")[1]) { + "underSurface", "onShadeActive", "shadeInactive" -> { + result = colorInactive // button backgrounds + } + + "onShadeInactiveVariant" -> { + result = Color.WHITE // "number button" text + } } } catch (ignored: Throwable) { } @@ -739,6 +789,7 @@ class QSBlackThemeA14(context: Context?) : ModPack(context!!) { // Power button val power = getObjectField(param.thisObject, "power") setObjectField(power, "iconTint", Color.BLACK) + setObjectField(power, "backgroundColor", PM_LITE_BACKGROUND_CODE); // Settings button val settings = getObjectField(param.thisObject, "settings") @@ -755,12 +806,20 @@ class QSBlackThemeA14(context: Context?) : ModPack(context!!) { ) try { - val zeroAlphaFlow = - stateFlowImplClass.getConstructor(Any::class.java).newInstance(0f) + val zeroAlphaFlow = stateFlowImplClass + .getConstructor(Any::class.java) + .newInstance(0f) + + val readonlyStateFlowInstance = try { + readonlyStateFlowClass.constructors[0].newInstance(zeroAlphaFlow) + } catch (ignored: Throwable) { + readonlyStateFlowClass.constructors[0].newInstance(zeroAlphaFlow, null) + } + setObjectField( param.thisObject, "backgroundAlpha", - readonlyStateFlowClass.constructors[0].newInstance(zeroAlphaFlow) + readonlyStateFlowInstance ) } catch (throwable: Throwable) { log(TAG + throwable) @@ -786,91 +845,95 @@ class QSBlackThemeA14(context: Context?) : ModPack(context!!) { log(TAG + throwable) } - hookAllMethods(scrimControllerClass, "updateScrims", object : XC_MethodHook() { - override fun afterHookedMethod(param: MethodHookParam) { - if (!blackQSHeaderEnabled) return + hookAllMethods(scrimControllerClass, "updateScrims", + object : XC_MethodHook() { + override fun afterHookedMethod(param: MethodHookParam) { + if (!blackQSHeaderEnabled) return - try { - val mScrimBehind = - getObjectField(param.thisObject, "mScrimBehind") - val mBlankScreen = - getObjectField(param.thisObject, "mBlankScreen") as Boolean - val alpha = getFloatField(mScrimBehind, "mViewAlpha") - val animateBehindScrim = alpha != 0f && !mBlankScreen + try { + val mScrimBehind = + getObjectField(param.thisObject, "mScrimBehind") + val mBlankScreen = + getObjectField(param.thisObject, "mBlankScreen") as Boolean + val alpha = getFloatField(mScrimBehind, "mViewAlpha") + val animateBehindScrim = alpha != 0f && !mBlankScreen - callMethod( - mScrimBehind, - "setColors", - mBehindColors, - animateBehindScrim - ) - } catch (throwable: Throwable) { - log(TAG + throwable) + callMethod( + mScrimBehind, + "setColors", + mBehindColors, + animateBehindScrim + ) + } catch (throwable: Throwable) { + log(TAG + throwable) + } } - } - }) + }) - hookAllMethods(scrimControllerClass, "updateThemeColors", object : XC_MethodHook() { - override fun afterHookedMethod(param: MethodHookParam) { - calculateColors() - } - }) + hookAllMethods(scrimControllerClass, "updateThemeColors", + object : XC_MethodHook() { + override fun afterHookedMethod(param: MethodHookParam) { + calculateColors() + } + }) - hookAllMethods(scrimControllerClass, "updateThemeColors", object : XC_MethodHook() { - override fun afterHookedMethod(param: MethodHookParam) { - if (!blackQSHeaderEnabled) return + hookAllMethods(scrimControllerClass, "updateThemeColors", + object : XC_MethodHook() { + override fun afterHookedMethod(param: MethodHookParam) { + if (!blackQSHeaderEnabled) return - try { - val states: ColorStateList = getColorAttr( - mContext.resources.getIdentifier( - "android:attr/colorBackgroundFloating", - "attr", - mContext.packageName - ), mContext - ) - val surfaceBackground = states.defaultColor - val accentStates: ColorStateList = - getColorAttr( + try { + val states: ColorStateList = getColorAttr( mContext.resources.getIdentifier( - "colorAccent", + "android:attr/colorBackgroundFloating", "attr", - "android" + mContext.packageName ), mContext ) - val accent = accentStates.defaultColor + val surfaceBackground = states.defaultColor + val accentStates: ColorStateList = + getColorAttr( + mContext.resources.getIdentifier( + "colorAccent", + "attr", + "android" + ), mContext + ) + val accent = accentStates.defaultColor - callMethod(mBehindColors, "setMainColor", surfaceBackground) - callMethod(mBehindColors, "setSecondaryColor", accent) + callMethod(mBehindColors, "setMainColor", surfaceBackground) + callMethod(mBehindColors, "setSecondaryColor", accent) - val contrast = ColorUtils.calculateContrast( - callMethod( - mBehindColors, - "getMainColor" - ) as Int, Color.WHITE - ) + val contrast = ColorUtils.calculateContrast( + callMethod( + mBehindColors, + "getMainColor" + ) as Int, Color.WHITE + ) - callMethod(mBehindColors, "setSupportsDarkText", contrast > 4.5) - } catch (throwable: Throwable) { - log(TAG + throwable) + callMethod(mBehindColors, "setSupportsDarkText", contrast > 4.5) + } catch (throwable: Throwable) { + log(TAG + throwable) + } } - } - }) + }) - hookAllMethods(scrimControllerClass, "applyState", object : XC_MethodHook() { - override fun afterHookedMethod(param: MethodHookParam) { - if (!blackQSHeaderEnabled) return + hookAllMethods(scrimControllerClass, "applyState", + object : XC_MethodHook() { + override fun afterHookedMethod(param: MethodHookParam) { + if (!blackQSHeaderEnabled) return - try { - val mClipsQsScrim = - getObjectField(param.thisObject, "mClipsQsScrim") as Boolean - if (mClipsQsScrim) { - setObjectField(param.thisObject, "mBehindTint", Color.BLACK) + try { + val mClipsQsScrim = + getObjectField(param.thisObject, "mClipsQsScrim") as Boolean + if (mClipsQsScrim) { + setObjectField(param.thisObject, "mBehindTint", Color.BLACK) + } + } catch (throwable: Throwable) { + log(TAG + throwable) } - } catch (throwable: Throwable) { - log(TAG + throwable) } - } - }) + }) try { val constants: Array? = scrimStateEnum.getEnumConstants() @@ -1027,21 +1090,22 @@ class QSBlackThemeA14(context: Context?) : ModPack(context!!) { log(TAG + throwable) } - hookAllConstructors(fragmentHostManagerClass, object : XC_MethodHook() { - override fun beforeHookedMethod(param: MethodHookParam) { - try { - setObjectField( - param.thisObject, - "mConfigChanges", - interestingConfigChangesClass.getDeclaredConstructor( - Int::class.javaPrimitiveType - ).newInstance(0x40000000 or 0x0004 or 0x0100 or -0x80000000 or 0x0200) - ) - } catch (throwable: Throwable) { - log(TAG + throwable) + hookAllConstructors(fragmentHostManagerClass, + object : XC_MethodHook() { + override fun beforeHookedMethod(param: MethodHookParam) { + try { + setObjectField( + param.thisObject, + "mConfigChanges", + interestingConfigChangesClass.getDeclaredConstructor( + Int::class.javaPrimitiveType + ).newInstance(0x40000000 or 0x0004 or 0x0100 or -0x80000000 or 0x0200) + ) + } catch (throwable: Throwable) { + log(TAG + throwable) + } } - } - }) + }) } private fun initColors(force: Boolean) { @@ -1055,6 +1119,22 @@ class QSBlackThemeA14(context: Context?) : ModPack(context!!) { private fun calculateColors() { try { + colorActive = mContext.resources.getColor( + mContext.resources.getIdentifier( + "android:color/system_accent1_100", + "color", + mContext.packageName + ), mContext.theme + ) + + colorInactive = mContext.resources.getColor( + mContext.resources.getIdentifier( + "android:color/system_neutral2_800", + "color", + mContext.packageName + ), mContext.theme + ) + colorText = mContext.resources.getColor( mContext.resources.getIdentifier( "android:color/system_neutral1_900", @@ -1073,7 +1153,11 @@ class QSBlackThemeA14(context: Context?) : ModPack(context!!) { } } - private fun setHeaderComponentsColor(mView: View, iconManager: Any, batteryIcon: Any) { + private fun setHeaderComponentsColor( + mView: View, + iconManager: Any, + batteryIcon: Any + ) { if (!blackQSHeaderEnabled) return val textColor = Color.WHITE @@ -1101,12 +1185,12 @@ class QSBlackThemeA14(context: Context?) : ModPack(context!!) { try { // A14 ap11 callMethod(iconManager, "setTint", textColor, textColor) - modernShadeCarrierGroupMobileViews.forEach(Consumer { view: Any -> + modernShadeCarrierGroupMobileViews.forEach { view -> setMobileIconTint( view, textColor ) - }) + } setModernSignalTextColor(textColor) } catch (ignored: Throwable) { // A14 older @@ -1114,13 +1198,11 @@ class QSBlackThemeA14(context: Context?) : ModPack(context!!) { } for (i in 1..3) { - val id = String.format("carrier%s", i) - try { (getObjectField( mView.findViewById( mContext.resources.getIdentifier( - id, + "carrier$i", "id", mContext.packageName ) @@ -1130,7 +1212,7 @@ class QSBlackThemeA14(context: Context?) : ModPack(context!!) { (getObjectField( mView.findViewById( mContext.resources.getIdentifier( - id, + "carrier$i", "id", mContext.packageName ) @@ -1140,7 +1222,7 @@ class QSBlackThemeA14(context: Context?) : ModPack(context!!) { (getObjectField( mView.findViewById( mContext.resources.getIdentifier( - id, + "carrier$i", "id", mContext.packageName ) From cf767e79480f2c9d5e3568bffc805795bfbdba11 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Tue, 13 Aug 2024 02:33:44 +0600 Subject: [PATCH 073/369] QS Fluid Theme: Fix for android 14 QPR3 --- .../xposed/modules/themes/QSFluidThemeA14.kt | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSFluidThemeA14.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSFluidThemeA14.kt index 7b85da3a6..82b4f5de2 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSFluidThemeA14.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSFluidThemeA14.kt @@ -279,12 +279,12 @@ class QSFluidThemeA14(context: Context?) : ModPack(context!!) { // Security footer view.let { it.getChildAt(0)?.apply { - background.setTint(colorInactiveAlpha[0]) - background.alpha = (INACTIVE_ALPHA * 255).toInt() + background?.setTint(colorInactiveAlpha[0]) + background?.alpha = (INACTIVE_ALPHA * 255).toInt() } it.getChildAt(1)?.apply { - background.setTint(colorInactiveAlpha[0]) - background.alpha = (INACTIVE_ALPHA * 255).toInt() + background?.setTint(colorInactiveAlpha[0]) + background?.alpha = (INACTIVE_ALPHA * 255).toInt() } } @@ -437,8 +437,8 @@ class QSFluidThemeA14(context: Context?) : ModPack(context!!) { mSlider!!.progressDrawable = createBrightnessDrawable(mContext) val progress = mSlider!!.progressDrawable as LayerDrawable - val progressSlider = - progress.findDrawableByLayerId(android.R.id.progress) as DrawableWrapper + val progressSlider = progress + .findDrawableByLayerId(android.R.id.progress) as DrawableWrapper try { val actualProgressSlider = progressSlider.drawable as LayerDrawable? @@ -952,13 +952,15 @@ class QSFluidThemeA14(context: Context?) : ModPack(context!!) { val backgroundShape = ShapeDrawable(RoundRectShape(radiusF, null, null)) backgroundShape.setIntrinsicHeight(height) - backgroundShape.paint.setColor(changeAlpha(colorInactiveAlpha[0], UNAVAILABLE_ALPHA)) + backgroundShape.paint.setColor(changeAlpha(colorInactiveAlpha[0], INACTIVE_ALPHA)) + backgroundShape.setTint(colorInactiveAlpha[0]) // Create the progress drawable var progressDrawable: RoundedCornerProgressDrawable? = null try { - progressDrawable = - RoundedCornerProgressDrawable(createBrightnessForegroundDrawable(context)) + progressDrawable = RoundedCornerProgressDrawable( + createBrightnessForegroundDrawable(context) + ) progressDrawable.alpha = (ACTIVE_ALPHA * 255).toInt() progressDrawable.setTint(colorActive[0]) } catch (ignored: Throwable) { From e8b04382ecc3c4a872311a5657dc01898230d735 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Tue, 13 Aug 2024 13:02:34 +0600 Subject: [PATCH 074/369] Get UserManager from application's main thread --- .../iconify/xposed/utils/SystemUtil.kt | 25 +++++++++++++++---- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/utils/SystemUtil.kt b/app/src/main/java/com/drdisagree/iconify/xposed/utils/SystemUtil.kt index c413f7f3e..e8e1df653 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/utils/SystemUtil.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/utils/SystemUtil.kt @@ -5,6 +5,8 @@ import android.app.Application import android.content.Context import android.content.res.Configuration import android.os.Build +import android.os.Handler +import android.os.Looper import android.os.Process import android.os.UserManager import com.drdisagree.iconify.xposed.utils.BootLoopProtector.resetCounter @@ -15,6 +17,7 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.delay import kotlinx.coroutines.launch import org.jetbrains.annotations.Contract +import java.util.concurrent.CountDownLatch import javax.annotation.Nullable @@ -28,16 +31,28 @@ class SystemUtil(var mContext: Context) { get() = mContext.resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_YES == Configuration.UI_MODE_NIGHT_YES - private fun getUserManager(): UserManager { + private fun getUserManager(): UserManager? { if (mUserManager == null) { + val latch = CountDownLatch(1) + + Handler(Looper.getMainLooper()).post { + try { + mUserManager = mContext.getSystemService(Context.USER_SERVICE) as UserManager + } catch (throwable: Throwable) { + log(TAG + throwable) + } finally { + latch.countDown() + } + } + try { - mUserManager = mContext.getSystemService(Context.USER_SERVICE) as UserManager - } catch (throwable: Throwable) { - log(TAG + throwable) + latch.await() + } catch (e: InterruptedException) { + log(TAG + e.message) } } - return mUserManager!! + return mUserManager } companion object { From aa12287dfc272c84ab9000655c8037f42a3d3b51 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Tue, 13 Aug 2024 13:53:33 +0600 Subject: [PATCH 075/369] Remove duplicate proguard rules --- app/proguard-rules.pro | 3 --- 1 file changed, 3 deletions(-) diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 7dbf3a2fb..6bd43b94c 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -29,9 +29,6 @@ -keep class com.drdisagree.iconify.xposed.** { (android.content.Context); } --keep class com.drdisagree.iconify.services.RootProviderProxy --keep class com.drdisagree.iconify.IRootProviderProxy --keepclassmembers class com.drdisagree.iconify.services.RootProviderProxy # EventBus -keepattributes *Annotation* From 6691bb232335cebf81716912c12a13f845e298a6 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Tue, 13 Aug 2024 13:58:43 +0600 Subject: [PATCH 076/369] Refactor mod resource initialization --- .../drdisagree/iconify/xposed/HookEntry.kt | 16 +- .../com/drdisagree/iconify/xposed/HookRes.kt | 2 +- .../xposed/modules/BatteryStyleManager.kt | 218 +++++++++--------- 3 files changed, 115 insertions(+), 121 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/HookEntry.kt b/app/src/main/java/com/drdisagree/iconify/xposed/HookEntry.kt index 52b236859..829169373 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/HookEntry.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/HookEntry.kt @@ -114,9 +114,10 @@ class HookEntry : ServiceConnection { } private fun loadModPacks(loadPackageParam: LoadPackageParam) { - if (HookRes.modRes!!.getStringArray(R.array.root_requirement).toList().contains( - loadPackageParam.packageName - ) + if (HookRes.modRes + .getStringArray(R.array.root_requirement) + .toList() + .contains(loadPackageParam.packageName) ) { forceConnectRootService() } @@ -142,13 +143,10 @@ class HookEntry : ServiceConnection { private fun waitForXprefsLoad(loadPackageParam: LoadPackageParam) { while (true) { try { - Xprefs?.getBoolean("LoadTestBooleanValue", false) + Xprefs!!.getBoolean("LoadTestBooleanValue", false) break } catch (ignored: Throwable) { - try { - Thread.sleep(1000) - } catch (ignored1: Throwable) { - } + SystemUtil.sleep(1000); } } @@ -227,8 +225,6 @@ class HookEntry : ServiceConnection { @SuppressLint("StaticFieldLeak") var instance: HookEntry? = null - - @JvmField val runningMods = ArrayList() var isChildProcess = false var rootProxyIPC: IRootProviderProxy? = null diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/HookRes.kt b/app/src/main/java/com/drdisagree/iconify/xposed/HookRes.kt index 31e2730ca..459dbdf9c 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/HookRes.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/HookRes.kt @@ -18,7 +18,7 @@ class HookRes : IXposedHookInitPackageResources, IXposedHookZygoteInit { } companion object { - var modRes: Resources? = null + lateinit var modRes: Resources val resParams = HashMap() } } \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/BatteryStyleManager.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/BatteryStyleManager.kt index 7b5fc549d..73127bc49 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/BatteryStyleManager.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/BatteryStyleManager.kt @@ -1006,137 +1006,135 @@ class BatteryStyleManager(context: Context?) : ModPack(context!!) { thisObject.addView(mChargingIconView, 1) } - val drawable = if (modRes != null) { - when (mChargingIconStyle) { - 0 -> ResourcesCompat.getDrawable( - modRes!!, - R.drawable.ic_charging_bold, - mContext.theme - ) + val drawable = when (mChargingIconStyle) { + 0 -> ResourcesCompat.getDrawable( + modRes, + R.drawable.ic_charging_bold, + mContext.theme + ) - 1 -> ResourcesCompat.getDrawable( - modRes!!, - R.drawable.ic_charging_asus, - mContext.theme - ) + 1 -> ResourcesCompat.getDrawable( + modRes, + R.drawable.ic_charging_asus, + mContext.theme + ) - 2 -> ResourcesCompat.getDrawable( - modRes!!, - R.drawable.ic_charging_buddy, - mContext.theme - ) + 2 -> ResourcesCompat.getDrawable( + modRes, + R.drawable.ic_charging_buddy, + mContext.theme + ) - 3 -> ResourcesCompat.getDrawable( - modRes!!, - R.drawable.ic_charging_evplug, - mContext.theme - ) + 3 -> ResourcesCompat.getDrawable( + modRes, + R.drawable.ic_charging_evplug, + mContext.theme + ) - 4 -> ResourcesCompat.getDrawable( - modRes!!, - R.drawable.ic_charging_idc, - mContext.theme - ) + 4 -> ResourcesCompat.getDrawable( + modRes, + R.drawable.ic_charging_idc, + mContext.theme + ) - 5 -> ResourcesCompat.getDrawable( - modRes!!, - R.drawable.ic_charging_ios, - mContext.theme - ) + 5 -> ResourcesCompat.getDrawable( + modRes, + R.drawable.ic_charging_ios, + mContext.theme + ) - 6 -> ResourcesCompat.getDrawable( - modRes!!, - R.drawable.ic_charging_koplak, - mContext.theme - ) + 6 -> ResourcesCompat.getDrawable( + modRes, + R.drawable.ic_charging_koplak, + mContext.theme + ) - 7 -> ResourcesCompat.getDrawable( - modRes!!, - R.drawable.ic_charging_miui, - mContext.theme - ) + 7 -> ResourcesCompat.getDrawable( + modRes, + R.drawable.ic_charging_miui, + mContext.theme + ) - 8 -> ResourcesCompat.getDrawable( - modRes!!, - R.drawable.ic_charging_mmk, - mContext.theme - ) + 8 -> ResourcesCompat.getDrawable( + modRes, + R.drawable.ic_charging_mmk, + mContext.theme + ) - 9 -> ResourcesCompat.getDrawable( - modRes!!, - R.drawable.ic_charging_moto, - mContext.theme - ) + 9 -> ResourcesCompat.getDrawable( + modRes, + R.drawable.ic_charging_moto, + mContext.theme + ) - 10 -> ResourcesCompat.getDrawable( - modRes!!, - R.drawable.ic_charging_nokia, - mContext.theme - ) + 10 -> ResourcesCompat.getDrawable( + modRes, + R.drawable.ic_charging_nokia, + mContext.theme + ) - 11 -> ResourcesCompat.getDrawable( - modRes!!, - R.drawable.ic_charging_plug, - mContext.theme - ) + 11 -> ResourcesCompat.getDrawable( + modRes, + R.drawable.ic_charging_plug, + mContext.theme + ) - 12 -> ResourcesCompat.getDrawable( - modRes!!, - R.drawable.ic_charging_powercable, - mContext.theme - ) + 12 -> ResourcesCompat.getDrawable( + modRes, + R.drawable.ic_charging_powercable, + mContext.theme + ) - 13 -> ResourcesCompat.getDrawable( - modRes!!, - R.drawable.ic_charging_powercord, - mContext.theme - ) + 13 -> ResourcesCompat.getDrawable( + modRes, + R.drawable.ic_charging_powercord, + mContext.theme + ) - 14 -> ResourcesCompat.getDrawable( - modRes!!, - R.drawable.ic_charging_powerstation, - mContext.theme - ) + 14 -> ResourcesCompat.getDrawable( + modRes, + R.drawable.ic_charging_powerstation, + mContext.theme + ) - 15 -> ResourcesCompat.getDrawable( - modRes!!, - R.drawable.ic_charging_realme, - mContext.theme - ) + 15 -> ResourcesCompat.getDrawable( + modRes, + R.drawable.ic_charging_realme, + mContext.theme + ) - 16 -> ResourcesCompat.getDrawable( - modRes!!, - R.drawable.ic_charging_soak, - mContext.theme - ) + 16 -> ResourcesCompat.getDrawable( + modRes, + R.drawable.ic_charging_soak, + mContext.theme + ) - 17 -> ResourcesCompat.getDrawable( - modRes!!, - R.drawable.ic_charging_stres, - mContext.theme - ) + 17 -> ResourcesCompat.getDrawable( + modRes, + R.drawable.ic_charging_stres, + mContext.theme + ) - 18 -> ResourcesCompat.getDrawable( - modRes!!, - R.drawable.ic_charging_strip, - mContext.theme - ) + 18 -> ResourcesCompat.getDrawable( + modRes, + R.drawable.ic_charging_strip, + mContext.theme + ) - 19 -> ResourcesCompat.getDrawable( - modRes!!, - R.drawable.ic_charging_usbcable, - mContext.theme - ) + 19 -> ResourcesCompat.getDrawable( + modRes, + R.drawable.ic_charging_usbcable, + mContext.theme + ) - 20 -> ResourcesCompat.getDrawable( - modRes!!, - R.drawable.ic_charging_xiaomi, - mContext.theme - ) + 20 -> ResourcesCompat.getDrawable( + modRes, + R.drawable.ic_charging_xiaomi, + mContext.theme + ) - else -> null - } - } else null + else -> null + } if (drawable != null && drawable !== mChargingIconView.getDrawable()) { mChargingIconView.setImageDrawable(drawable) From 160af9499a314bc5e5b6f46e87e435356b0248cc Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Tue, 13 Aug 2024 15:26:55 +0600 Subject: [PATCH 077/369] QS Black Theme: Handle no param args availability --- .../iconify/xposed/modules/themes/QSBlackThemeA14.kt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA14.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA14.kt index 341edfc09..6152406c7 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA14.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA14.kt @@ -469,7 +469,11 @@ class QSBlackThemeA14(context: Context?) : ModPack(context!!) { if (!blackQSHeaderEnabled) return try { - val iconColor = if (param.args[0] as Boolean) Color.BLACK else Color.WHITE + val iconColor = if ((param.args?.get(0) ?: false) as Boolean) { + Color.BLACK + } else { + Color.WHITE + } val mIcon = getObjectField(param.thisObject, "mIcon") as ImageView mIcon.setImageTintList(ColorStateList.valueOf(iconColor)) @@ -789,7 +793,7 @@ class QSBlackThemeA14(context: Context?) : ModPack(context!!) { // Power button val power = getObjectField(param.thisObject, "power") setObjectField(power, "iconTint", Color.BLACK) - setObjectField(power, "backgroundColor", PM_LITE_BACKGROUND_CODE); + setObjectField(power, "backgroundColor", PM_LITE_BACKGROUND_CODE) // Settings button val settings = getObjectField(param.thisObject, "settings") From 8660c5ab759f06d93c6da2ee5627bb2abebe8a88 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Tue, 13 Aug 2024 15:49:11 +0600 Subject: [PATCH 078/369] QS Light Theme: Fix for android 14 QPR3 bug: security footer text is invisible --- .../xposed/modules/themes/QSLightThemeA14.kt | 284 ++++++++++-------- 1 file changed, 156 insertions(+), 128 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA14.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA14.kt index 9907b9cee..4231d7a96 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA14.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA14.kt @@ -22,6 +22,7 @@ import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.HookEntry.Companion.disableOverlays import com.drdisagree.iconify.xposed.HookEntry.Companion.enableOverlay import com.drdisagree.iconify.xposed.ModPack +import com.drdisagree.iconify.xposed.modules.utils.Helpers.findClassInArray import com.drdisagree.iconify.xposed.modules.utils.SettingsLibUtils.Companion.getColorAttr import com.drdisagree.iconify.xposed.modules.utils.SettingsLibUtils.Companion.getColorAttrDefaultColor import com.drdisagree.iconify.xposed.utils.SystemUtil @@ -46,7 +47,7 @@ class QSLightThemeA14(context: Context?) : ModPack(context!!) { private var mBehindColors: Any? = null private var isDark: Boolean - private var colorInactive: Int? = null + private var colorInactive: Int = -1 private var unlockedScrimState: Any? = null private var qsTextAlwaysWhite = false private var qsTextFollowAccent = false @@ -166,23 +167,18 @@ class QSLightThemeA14(context: Context?) : ModPack(context!!) { "$SYSTEMUI_PACKAGE.qs.footer.ui.binder.FooterActionsViewBinder", loadPackageParam.classLoader ) - var shadeHeaderControllerClass = findClassIfExists( + val shadeHeaderControllerClass = findClassInArray( + loadPackageParam.classLoader, "$SYSTEMUI_PACKAGE.shade.ShadeHeaderController", - loadPackageParam.classLoader + "$SYSTEMUI_PACKAGE.shade.LargeScreenShadeHeaderController", ) - if (shadeHeaderControllerClass == null) { - shadeHeaderControllerClass = findClass( - "$SYSTEMUI_PACKAGE.shade.LargeScreenShadeHeaderController", - loadPackageParam.classLoader - ) - } // Background color of android 14's charging chip. Fix for light QS theme situation val batteryStatusChipColorHook: XC_MethodHook = object : XC_MethodHook() { override fun afterHookedMethod(param: MethodHookParam) { if (lightQSHeaderEnabled && !isDark) { (getObjectField(param.thisObject, "roundedContainer") as LinearLayout) - .background.setTint(colorInactive!!) + .background.setTint(colorInactive) val colorPrimary: Int = getColorAttrDefaultColor(mContext, android.R.attr.textColorPrimaryInverse) @@ -305,58 +301,62 @@ class QSLightThemeA14(context: Context?) : ModPack(context!!) { override fun afterHookedMethod(param: MethodHookParam) { if (isDark || !lightQSHeaderEnabled) return - val view = (param.thisObject as ViewGroup).findViewById( - mContext.resources.getIdentifier( - "qs_footer_actions", - "id", - mContext.packageName - ) - ).also { - it.background?.setTint(Color.TRANSPARENT) - it.elevation = 0f - } - - // Settings button - view.findViewById( - mContext.resources.getIdentifier( - "settings_button_container", - "id", - mContext.packageName - ) - ).findViewById( - mContext.resources.getIdentifier( - "icon", - "id", - mContext.packageName - ) - ).setImageTintList(ColorStateList.valueOf(Color.BLACK)) - - // Power menu button try { - view.findViewById( + val view = (param.thisObject as ViewGroup).findViewById( mContext.resources.getIdentifier( - "pm_lite", + "qs_footer_actions", "id", mContext.packageName ) - ) - } catch (ignored: ClassCastException) { - view.findViewById( + ).also { + it.background?.setTint(Color.TRANSPARENT) + it.elevation = 0f + } + + // Settings button + view.findViewById( mContext.resources.getIdentifier( - "pm_lite", + "settings_button_container", "id", mContext.packageName ) - ) - }?.apply { - if (this is ImageView) { - setImageTintList(ColorStateList.valueOf(Color.WHITE)) - } else if (this is ViewGroup) { - (getChildAt(0) as ImageView).setColorFilter( - Color.WHITE, - PorterDuff.Mode.SRC_IN + ).findViewById( + mContext.resources.getIdentifier( + "icon", + "id", + mContext.packageName ) + ).setImageTintList(ColorStateList.valueOf(Color.BLACK)) + + // Power menu button + try { + view.findViewById( + mContext.resources.getIdentifier( + "pm_lite", + "id", + mContext.packageName + ) + ) + } catch (ignored: ClassCastException) { + view.findViewById( + mContext.resources.getIdentifier( + "pm_lite", + "id", + mContext.packageName + ) + ) + }?.apply { + if (this is ImageView) { + setImageTintList(ColorStateList.valueOf(Color.WHITE)) + } else if (this is ViewGroup) { + (getChildAt(0) as ImageView).setColorFilter( + Color.WHITE, + PorterDuff.Mode.SRC_IN + ) + } } + } catch (ignored: Throwable) { + // it will fail on compose implementation } } }) @@ -364,12 +364,12 @@ class QSLightThemeA14(context: Context?) : ModPack(context!!) { // QS Customize panel hookAllConstructors(qsCustomizerClass, object : XC_MethodHook() { override fun afterHookedMethod(param: MethodHookParam) { - if (!isDark && lightQSHeaderEnabled) { - val mainView = param.thisObject as ViewGroup + if (isDark || !lightQSHeaderEnabled) return - for (i in 0 until mainView.childCount) { - mainView.getChildAt(i).setBackgroundColor(mScrimBehindTint) - } + val mainView = param.thisObject as ViewGroup + + for (i in 0 until mainView.childCount) { + mainView.getChildAt(i).setBackgroundColor(mScrimBehindTint) } } }) @@ -387,32 +387,32 @@ class QSLightThemeA14(context: Context?) : ModPack(context!!) { // QS security footer count circle hookAllConstructors(numberButtonViewHolderClass, object : XC_MethodHook() { override fun afterHookedMethod(param: MethodHookParam) { - if (!isDark && lightQSHeaderEnabled) { - (getObjectField(param.thisObject, "newDot") as ImageView) - .setColorFilter(Color.BLACK) + if (isDark || !lightQSHeaderEnabled) return - (getObjectField(param.thisObject, "number") as TextView) - .setTextColor(Color.BLACK) - } + (getObjectField(param.thisObject, "newDot") as ImageView) + .setColorFilter(Color.BLACK) + + (getObjectField(param.thisObject, "number") as TextView) + .setTextColor(Color.BLACK) } }) // QS security footer hookAllConstructors(textButtonViewHolderClass, object : XC_MethodHook() { override fun afterHookedMethod(param: MethodHookParam) { - if (!isDark && lightQSHeaderEnabled) { - (getObjectField(param.thisObject, "chevron") as ImageView) - .setColorFilter(Color.BLACK) + if (isDark || !lightQSHeaderEnabled) return - (getObjectField(param.thisObject, "icon") as ImageView) - .setColorFilter(Color.BLACK) + (getObjectField(param.thisObject, "chevron") as ImageView) + .setColorFilter(Color.BLACK) - (getObjectField(param.thisObject, "newDot") as ImageView) - .setColorFilter(Color.BLACK) + (getObjectField(param.thisObject, "icon") as ImageView) + .setColorFilter(Color.BLACK) - (getObjectField(param.thisObject, "text") as TextView) - .setTextColor(Color.BLACK) - } + (getObjectField(param.thisObject, "newDot") as ImageView) + .setColorFilter(Color.BLACK) + + (getObjectField(param.thisObject, "text") as TextView) + .setTextColor(Color.BLACK) } }) @@ -420,27 +420,27 @@ class QSLightThemeA14(context: Context?) : ModPack(context!!) { hookAllMethods(qsFooterViewClass, "onFinishInflate", object : XC_MethodHook() { // QS Footer built text row override fun afterHookedMethod(param: MethodHookParam) { - if (!isDark && lightQSHeaderEnabled) { - try { - (getObjectField(param.thisObject, "mBuildText") as TextView) - .setTextColor(Color.BLACK) - } catch (ignored: Throwable) { - } + if (isDark || !lightQSHeaderEnabled) return - try { - (getObjectField(param.thisObject, "mEditButton") as ImageView) - .setColorFilter(Color.BLACK) - } catch (ignored: Throwable) { - } + try { + (getObjectField(param.thisObject, "mBuildText") as TextView) + .setTextColor(Color.BLACK) + } catch (ignored: Throwable) { + } - try { - setObjectField( - getObjectField(param.thisObject, "mPageIndicator"), - "mTint", - ColorStateList.valueOf(Color.BLACK) - ) - } catch (ignored: Throwable) { - } + try { + (getObjectField(param.thisObject, "mEditButton") as ImageView) + .setColorFilter(Color.BLACK) + } catch (ignored: Throwable) { + } + + try { + setObjectField( + getObjectField(param.thisObject, "mPageIndicator"), + "mTint", + ColorStateList.valueOf(Color.BLACK) + ) + } catch (ignored: Throwable) { } } }) @@ -485,8 +485,14 @@ class QSLightThemeA14(context: Context?) : ModPack(context!!) { if (isDark || !lightQSHeaderEnabled) return try { - (getObjectField(param.thisObject, "mIcon") as ImageView) - .setImageTintList(ColorStateList.valueOf(Color.BLACK)) + val iconColor = if ((param.args?.get(0) ?: false) as Boolean) { + Color.WHITE + } else { + Color.BLACK + } + val mIcon = getObjectField(param.thisObject, "mIcon") as ImageView + + mIcon.setImageTintList(ColorStateList.valueOf(iconColor)) } catch (throwable: Throwable) { log(TAG + throwable) } @@ -500,7 +506,7 @@ class QSLightThemeA14(context: Context?) : ModPack(context!!) { ) { try { (param.args[0] as ImageView) - .setImageTintList(ColorStateList.valueOf(colorInactive!!)) + .setImageTintList(ColorStateList.valueOf(colorInactive)) } catch (throwable: Throwable) { log(TAG + throwable) } @@ -526,22 +532,25 @@ class QSLightThemeA14(context: Context?) : ModPack(context!!) { try { // White QS Clock bug - hookAllMethods(quickStatusBarHeaderClass, "onFinishInflate", object : XC_MethodHook() { - override fun afterHookedMethod(param: MethodHookParam) { - try { - mClockViewQSHeader = getObjectField(param.thisObject, "mClockView") - } catch (ignored: Throwable) { - } - - if (!isDark && lightQSHeaderEnabled && mClockViewQSHeader != null) { + hookAllMethods( + quickStatusBarHeaderClass, + "onFinishInflate", + object : XC_MethodHook() { + override fun afterHookedMethod(param: MethodHookParam) { try { - (mClockViewQSHeader as TextView).setTextColor(Color.WHITE) - } catch (throwable: Throwable) { - log(TAG + throwable) + mClockViewQSHeader = getObjectField(param.thisObject, "mClockView") + } catch (ignored: Throwable) { + } + + if (!isDark && lightQSHeaderEnabled && mClockViewQSHeader != null) { + try { + (mClockViewQSHeader as TextView).setTextColor(Color.WHITE) + } catch (throwable: Throwable) { + log(TAG + throwable) + } } } - } - }) + }) // White QS Clock bug hookAllMethods(clockClass, "onColorsChanged", object : XC_MethodHook() { @@ -584,6 +593,26 @@ class QSLightThemeA14(context: Context?) : ModPack(context!!) { setObjectField(param.thisObject, "colorLabelInactive", Color.BLACK) setObjectField(param.thisObject, "colorSecondaryLabelInactive", -0x80000000) + + val sideView = getObjectField(param.thisObject, "sideView") as ViewGroup + + val customDrawable = sideView.findViewById( + mContext.resources.getIdentifier( + "customDrawable", + "id", + mContext.packageName + ) + ) + customDrawable.setImageTintList(ColorStateList.valueOf(Color.WHITE)) + + val chevron = sideView.findViewById( + mContext.resources.getIdentifier( + "chevron", + "id", + mContext.packageName + ) + ) + chevron.setImageTintList(ColorStateList.valueOf(Color.WHITE)) } catch (throwable: Throwable) { log(TAG + throwable) } @@ -702,11 +731,14 @@ class QSLightThemeA14(context: Context?) : ModPack(context!!) { if (code != PM_LITE_BACKGROUND_CODE) { try { - if (mContext.resources.getResourceName(code).split("/".toRegex()) - .dropLastWhile { it.isEmpty() } - .toTypedArray()[1] == "onShadeInactiveVariant" - ) { - result = Color.BLACK // number button text + when (mContext.resources.getResourceName(code).split("/")[1]) { + "underSurface", "onShadeActive", "shadeInactive" -> { + result = colorInactive // button backgrounds + } + + "onShadeInactiveVariant" -> { + result = Color.BLACK // "number button" text + } } } catch (ignored: Throwable) { } @@ -725,11 +757,11 @@ class QSLightThemeA14(context: Context?) : ModPack(context!!) { // Power button val power = getObjectField(param.thisObject, "power") setObjectField(power, "iconTint", Color.WHITE) + setObjectField(power, "backgroundColor", PM_LITE_BACKGROUND_CODE) // Settings button val settings = getObjectField(param.thisObject, "settings") setObjectField(settings, "iconTint", Color.BLACK) - // setObjectField(settings, "backgroundColor", colorInactive); // We must use the classes defined in the apk. Using our own will fail. val stateFlowImplClass = findClass( @@ -820,18 +852,16 @@ class QSLightThemeA14(context: Context?) : ModPack(context!!) { ), mContext ) val surfaceBackground = states.defaultColor - val accentStates: ColorStateList = - getColorAttr( - mContext.resources.getIdentifier( - "colorAccent", - "attr", - "android" - ), mContext - ) - val accent = accentStates.defaultColor + val accentColor = getColorAttr( + mContext.resources.getIdentifier( + "colorAccent", + "attr", + "android" + ), mContext + ).defaultColor callMethod(mBehindColors, "setMainColor", surfaceBackground) - callMethod(mBehindColors, "setSecondaryColor", accent) + callMethod(mBehindColors, "setSecondaryColor", accentColor) val contrast = ColorUtils.calculateContrast( callMethod( @@ -1139,13 +1169,11 @@ class QSLightThemeA14(context: Context?) : ModPack(context!!) { } for (i in 1..3) { - val id = String.format("carrier%s", i) - try { (getObjectField( mView.findViewById( mContext.resources.getIdentifier( - id, + "carrier$i", "id", mContext.packageName ) @@ -1155,7 +1183,7 @@ class QSLightThemeA14(context: Context?) : ModPack(context!!) { (getObjectField( mView.findViewById( mContext.resources.getIdentifier( - id, + "carrier$i", "id", mContext.packageName ) @@ -1165,7 +1193,7 @@ class QSLightThemeA14(context: Context?) : ModPack(context!!) { (getObjectField( mView.findViewById( mContext.resources.getIdentifier( - id, + "carrier$i", "id", mContext.packageName ) From 5cc0443d0288d3939f31341a789c615bc6ba9116 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Tue, 13 Aug 2024 16:09:42 +0600 Subject: [PATCH 079/369] SB Clock Size: Do not change gravity if not enabled --- .../iconify/xposed/modules/Miscellaneous.kt | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt index a8accc907..a3c65bf15 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt @@ -873,17 +873,26 @@ class Miscellaneous(context: Context?) : ModPack(context!!) { mClockView?.let { it.setTextSize(unit, leftClockSize.toFloat()) - setClockGravity(it, Gravity.LEFT or Gravity.CENTER) + + if (sbClockSizeSwitch) { + setClockGravity(it, Gravity.LEFT or Gravity.CENTER) + } } mCenterClockView?.let { it.setTextSize(unit, centerClockSize.toFloat()) - setClockGravity(it, Gravity.CENTER) + + if (sbClockSizeSwitch) { + setClockGravity(it, Gravity.CENTER) + } } mRightClockView?.let { it.setTextSize(unit, rightClockSize.toFloat()) - setClockGravity(it, Gravity.RIGHT or Gravity.CENTER) + + if (sbClockSizeSwitch) { + setClockGravity(it, Gravity.RIGHT or Gravity.CENTER) + } } } From 32cb14f641b1c11978b8277e3f99aac64d79f80b Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Tue, 13 Aug 2024 16:56:21 +0600 Subject: [PATCH 080/369] Ignore child process while checking for bootloop --- app/src/main/java/com/drdisagree/iconify/xposed/HookEntry.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/HookEntry.kt b/app/src/main/java/com/drdisagree/iconify/xposed/HookEntry.kt index 829169373..8d89b45e8 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/HookEntry.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/HookEntry.kt @@ -103,7 +103,7 @@ class HookEntry : ServiceConnection { } private fun onXPrefsReady(loadPackageParam: LoadPackageParam) { - if (BootLoopProtector.isBootLooped(loadPackageParam.packageName)) { + if (!isChildProcess && BootLoopProtector.isBootLooped(loadPackageParam.packageName)) { log("Possible bootloop in ${loadPackageParam.packageName} ; Iconify will not load for now...") return } From 6702be3318900876a6b5f79b0fd040abb53f3686 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Tue, 13 Aug 2024 17:21:29 +0600 Subject: [PATCH 081/369] Remove AI model from devices below android 14 --- .../com/drdisagree/iconify/SplashActivity.kt | 5 ++- .../ui/fragments/XposedDepthWallpaper.kt | 33 ++++++++++++------- app/src/main/res/values/strings.xml | 1 + 3 files changed, 26 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/SplashActivity.kt b/app/src/main/java/com/drdisagree/iconify/SplashActivity.kt index 274b6b887..43a6605d2 100644 --- a/app/src/main/java/com/drdisagree/iconify/SplashActivity.kt +++ b/app/src/main/java/com/drdisagree/iconify/SplashActivity.kt @@ -2,6 +2,7 @@ package com.drdisagree.iconify import android.annotation.SuppressLint import android.content.Intent +import android.os.Build import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import androidx.core.splashscreen.SplashScreen @@ -49,7 +50,9 @@ class SplashActivity : AppCompatActivity() { isVersionCodeCorrect ) { keepShowing = false - BitmapSubjectSegmenter(this@SplashActivity) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { + BitmapSubjectSegmenter(this@SplashActivity) + } Intent(this@SplashActivity, MainActivity::class.java) } else { keepShowing = false diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedDepthWallpaper.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedDepthWallpaper.kt index 55678197e..cdabbf61c 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedDepthWallpaper.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedDepthWallpaper.kt @@ -140,21 +140,30 @@ class XposedDepthWallpaper : BaseFragment() { ) } } - BitmapSubjectSegmenter(requireContext()) - .checkModelAvailability { moduleAvailabilityResponse: ModuleAvailabilityResponse? -> - binding.depthWallpaper.setSummary( - getString( - R.string.enable_depth_wallpaper_desc, + if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.TIRAMISU) { + binding.depthWallpaper.setSummary( + getString( + R.string.enable_depth_wallpaper_desc, + getString(R.string.use_custom_lockscreen_clock) + ) + ) + } else { + BitmapSubjectSegmenter(requireContext()) + .checkModelAvailability { moduleAvailabilityResponse: ModuleAvailabilityResponse? -> + binding.depthWallpaper.setSummary( getString( - if (moduleAvailabilityResponse?.areModulesAvailable() == true) { - R.string.depth_wallpaper_model_ready - } else { - R.string.depth_wallpaper_model_not_available - } + R.string.enable_depth_wallpaper_desc, + getString( + if (moduleAvailabilityResponse?.areModulesAvailable() == true) { + R.string.depth_wallpaper_model_ready + } else { + R.string.depth_wallpaper_model_not_available + } + ) ) ) - ) - } + } + } // Custom depth wallpaper binding.customDepthWallpaper.visibility = diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3852c0922..2776f6519 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -689,6 +689,7 @@ Extracted wallpaper subject! Failed to extract wallpaper subject! AI model is not available! + Must use custom lockscreen clock Status Bar From 2873abae911d5998824e8c534c6138151ef2c074 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Tue, 13 Aug 2024 17:31:54 +0600 Subject: [PATCH 082/369] Add some helper methods thanks to tg@siavash7999 --- .../iconify/xposed/modules/utils/Helpers.kt | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/Helpers.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/Helpers.kt index df47cc61e..d0f6f9663 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/Helpers.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/Helpers.kt @@ -1,6 +1,7 @@ package com.drdisagree.iconify.xposed.modules.utils import android.content.Context +import android.util.ArraySet import android.util.TypedValue import android.view.View import android.view.ViewGroup @@ -10,9 +11,12 @@ import com.topjohnwu.superuser.Shell import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge.hookAllConstructors import de.robv.android.xposed.XposedBridge.hookAllMethods +import de.robv.android.xposed.XposedBridge.hookMethod import de.robv.android.xposed.XposedBridge.log import de.robv.android.xposed.XposedHelpers.findClass import de.robv.android.xposed.XposedHelpers.findClassIfExists +import java.lang.reflect.Method +import java.util.regex.Pattern @Suppress("unused") object Helpers { @@ -86,6 +90,45 @@ object Helpers { } } + fun hookAllMethodsMatchPattern( + clazz: Class<*>, + namePattern: String, + callback: XC_MethodHook + ): Set { + val result: MutableSet = ArraySet() + + for (method in findMethods(clazz, namePattern)) { + result.add(hookMethod(method, callback)) + } + + return result + } + + private fun findMethods(clazz: Class<*>, namePattern: String): Set { + val result: MutableSet = ArraySet() + val methods: Array = clazz.methods + + for (method in methods) { + if (Pattern.matches(namePattern, method.name)) { + result.add(method) + } + } + + return result + } + + fun findMethod(clazz: Class<*>, namePattern: String): Method? { + val methods: Array = clazz.methods + + for (method in methods) { + if (Pattern.matches(namePattern, method.name)) { + return method + } + } + + return null + } + fun dumpChildViews(context: Context, view: View) { if (view is ViewGroup) { logViewInfo(context, view, 0) From e2aa2ca301a9b00a6c4583d3426bb4cef009658c Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Tue, 13 Aug 2024 17:58:15 +0600 Subject: [PATCH 083/369] LS Clock: Fix crash loop when using fancy android 14 clocks --- .../drdisagree/iconify/ui/fragments/XposedLockscreenClock.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenClock.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenClock.kt index f3af399eb..b058b1e13 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenClock.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenClock.kt @@ -108,7 +108,7 @@ class XposedLockscreenClock : BaseFragment() { binding.enableLockscreenClock.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> if (isChecked && isAtleastA14) { Shell.cmd( - "adb shell settings put secure lock_screen_custom_clock_face default" + "settings put secure lock_screen_custom_clock_face default" ).exec() } From 4bd2c8242e7296e25e60a80ce132c153449b504b Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Tue, 13 Aug 2024 18:08:40 +0600 Subject: [PATCH 084/369] Hide Silent Text: Restart SystemUI for android 14+ --- .../iconify/ui/fragments/XposedQuickSettings.kt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedQuickSettings.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedQuickSettings.kt index 940ce7470..10cc300da 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedQuickSettings.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedQuickSettings.kt @@ -9,6 +9,7 @@ import android.view.ViewGroup import android.widget.CompoundButton import com.drdisagree.iconify.R import com.drdisagree.iconify.common.Const.SWITCH_ANIMATION_DELAY +import com.drdisagree.iconify.common.Dynamic.isAtleastA14 import com.drdisagree.iconify.common.Preferences.HIDE_QSLABEL_SWITCH import com.drdisagree.iconify.common.Preferences.HIDE_QS_FOOTER_BUTTONS import com.drdisagree.iconify.common.Preferences.HIDE_QS_SILENT_TEXT @@ -135,6 +136,13 @@ class XposedQuickSettings : BaseFragment() { binding.hideSilentText.isSwitchChecked = getBoolean(HIDE_QS_SILENT_TEXT, false) binding.hideSilentText.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> putBoolean(HIDE_QS_SILENT_TEXT, isChecked) + + if (isAtleastA14) { + Handler(Looper.getMainLooper()).postDelayed( + { SystemUtil.handleSystemUIRestart() }, + SWITCH_ANIMATION_DELAY + ) + } } // Hide footer buttons From 4260880900c2f06cf8caa66c29a3468dce945396 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Tue, 13 Aug 2024 18:38:35 +0600 Subject: [PATCH 085/369] Reinit header clock and image on boot --- .../com/drdisagree/iconify/common/Const.kt | 1 + .../iconify/receiver/BootReceiver.kt | 11 ++++- .../iconify/xposed/modules/HeaderClock.kt | 35 ++++++++++++++++ .../iconify/xposed/modules/HeaderImage.kt | 40 ++++++++++++++++++- 4 files changed, 85 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/common/Const.kt b/app/src/main/java/com/drdisagree/iconify/common/Const.kt index c53acdb00..0540076bd 100644 --- a/app/src/main/java/com/drdisagree/iconify/common/Const.kt +++ b/app/src/main/java/com/drdisagree/iconify/common/Const.kt @@ -44,6 +44,7 @@ object Const { ) const val ACTION_HOOK_CHECK_REQUEST = "${BuildConfig.APPLICATION_ID}.ACTION_HOOK_CHECK_REQUEST" const val ACTION_HOOK_CHECK_RESULT = "${BuildConfig.APPLICATION_ID}.ACTION_HOOK_CHECK_RESULT" + const val ACTION_BOOT_COMPLETED = "${BuildConfig.APPLICATION_ID}.ACTION_BOOT_COMPLETED" // Module script val MAGISK_UPDATE_BINARY = """ diff --git a/app/src/main/java/com/drdisagree/iconify/receiver/BootReceiver.kt b/app/src/main/java/com/drdisagree/iconify/receiver/BootReceiver.kt index 41e3e0d0d..242c60bfd 100644 --- a/app/src/main/java/com/drdisagree/iconify/receiver/BootReceiver.kt +++ b/app/src/main/java/com/drdisagree/iconify/receiver/BootReceiver.kt @@ -4,16 +4,25 @@ import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.util.Log +import com.drdisagree.iconify.common.Const.ACTION_BOOT_COMPLETED +import com.drdisagree.iconify.common.Const.SYSTEMUI_PACKAGE import com.drdisagree.iconify.services.UpdateScheduler class BootReceiver : BroadcastReceiver() { - private val tag =this::class.java.simpleName + private val tag = this::class.java.simpleName override fun onReceive(context: Context, intent: Intent) { if (Intent.ACTION_BOOT_COMPLETED == intent.action) { Log.i(tag, "Broadcast received: " + intent.action) + + // Schedule updates UpdateScheduler.scheduleUpdates(context) + + // Update QS clock on boot + val broadcast: Intent = Intent(ACTION_BOOT_COMPLETED) + broadcast.putExtra("packageName", SYSTEMUI_PACKAGE) + context.sendBroadcast(broadcast) } } } \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/HeaderClock.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/HeaderClock.kt index 2fa451214..b82c56a87 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/HeaderClock.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/HeaderClock.kt @@ -1,8 +1,10 @@ package com.drdisagree.iconify.xposed.modules import android.annotation.SuppressLint +import android.content.BroadcastReceiver import android.content.Context import android.content.Intent +import android.content.IntentFilter import android.content.pm.PackageManager import android.content.res.Configuration import android.graphics.Bitmap @@ -29,6 +31,7 @@ import androidx.core.content.res.ResourcesCompat import androidx.core.text.TextUtilsCompat import com.drdisagree.iconify.BuildConfig import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Const.ACTION_BOOT_COMPLETED import com.drdisagree.iconify.common.Const.SYSTEMUI_PACKAGE import com.drdisagree.iconify.common.Preferences.HEADER_CLOCK_CENTERED import com.drdisagree.iconify.common.Preferences.HEADER_CLOCK_COLOR_CODE_ACCENT1 @@ -73,6 +76,7 @@ import java.util.Locale import java.util.concurrent.Executors import java.util.concurrent.TimeUnit + @SuppressLint("DiscouragedApi") class HeaderClock(context: Context?) : ModPack(context!!) { @@ -91,6 +95,16 @@ class HeaderClock(context: Context?) : ModPack(context!!) { onDateClick() } } + private var mBroadcastRegistered = false + private val mReceiver: BroadcastReceiver = object : BroadcastReceiver() { + override fun onReceive(context: Context?, intent: Intent?) { + if (intent != null && intent.action != null) { + if (intent.action == ACTION_BOOT_COMPLETED) { + updateClockView() + } + } + } + } override fun updatePrefs(vararg key: String) { if (Xprefs == null) return @@ -119,7 +133,28 @@ class HeaderClock(context: Context?) : ModPack(context!!) { } } + @SuppressLint("UnspecifiedRegisterReceiverFlag") override fun handleLoadPackage(loadPackageParam: LoadPackageParam) { + if (!mBroadcastRegistered) { + val intentFilter = IntentFilter() + intentFilter.addAction(ACTION_BOOT_COMPLETED) + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + mContext.registerReceiver( + mReceiver, + intentFilter, + Context.RECEIVER_EXPORTED + ) + } else { + mContext.registerReceiver( + mReceiver, + intentFilter + ) + } + + mBroadcastRegistered = true + } + initResources(mContext) val qsSecurityFooterUtilsClass = findClassIfExists( diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/HeaderImage.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/HeaderImage.kt index d9fb90b4e..d40ee41aa 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/HeaderImage.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/HeaderImage.kt @@ -1,9 +1,14 @@ package com.drdisagree.iconify.xposed.modules +import android.annotation.SuppressLint +import android.content.BroadcastReceiver import android.content.Context +import android.content.Intent +import android.content.IntentFilter import android.content.res.Configuration import android.graphics.ImageDecoder import android.graphics.drawable.AnimatedImageDrawable +import android.os.Build import android.os.Environment import android.util.TypedValue import android.view.Gravity @@ -14,6 +19,7 @@ import android.widget.ImageView import android.widget.LinearLayout import android.widget.RelativeLayout import com.bosphere.fadingedgelayout.FadingEdgeLayout +import com.drdisagree.iconify.common.Const.ACTION_BOOT_COMPLETED import com.drdisagree.iconify.common.Const.SYSTEMUI_PACKAGE import com.drdisagree.iconify.common.Preferences.HEADER_IMAGE_ALPHA import com.drdisagree.iconify.common.Preferences.HEADER_IMAGE_BOTTOM_FADE_AMOUNT @@ -49,6 +55,16 @@ class HeaderImage(context: Context?) : ModPack(context!!) { private var mQsHeaderLayout: FadingEdgeLayout? = null private var mQsHeaderImageView: ImageView? = null private var bottomFadeAmount = 0 + private var mBroadcastRegistered = false + private val mReceiver: BroadcastReceiver = object : BroadcastReceiver() { + override fun onReceive(context: Context?, intent: Intent?) { + if (intent != null && intent.action != null) { + if (intent.action == ACTION_BOOT_COMPLETED) { + updateQSHeaderImage() + } + } + } + } override fun updatePrefs(vararg key: String) { if (Xprefs == null) return @@ -73,7 +89,28 @@ class HeaderImage(context: Context?) : ModPack(context!!) { } } + @SuppressLint("UnspecifiedRegisterReceiverFlag") override fun handleLoadPackage(loadPackageParam: LoadPackageParam) { + if (!mBroadcastRegistered) { + val intentFilter = IntentFilter() + intentFilter.addAction(ACTION_BOOT_COMPLETED) + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + mContext.registerReceiver( + mReceiver, + intentFilter, + Context.RECEIVER_EXPORTED + ) + } else { + mContext.registerReceiver( + mReceiver, + intentFilter + ) + } + + mBroadcastRegistered = true + } + val quickStatusBarHeader = findClass( "$SYSTEMUI_PACKAGE.qs.QuickStatusBarHeader", loadPackageParam.classLoader @@ -232,9 +269,10 @@ class HeaderImage(context: Context?) : ModPack(context!!) { private fun loadImageOrGif(iv: ImageView) { try { val executor = Executors.newSingleThreadScheduledExecutor() - executor.scheduleAtFixedRate({ + executor.scheduleWithFixedDelay({ val androidDir = File(Environment.getExternalStorageDirectory().toString() + "/Android") + if (androidDir.isDirectory()) { try { val source = ImageDecoder.createSource( From 01534a99e0ebc7310a5b6db9519ca8e6861155aa Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Tue, 13 Aug 2024 21:11:15 +0600 Subject: [PATCH 086/369] Pitch Black: Add more resources for android 14 --- .../QSPBA/res/values-night/iconify.xml | 5 +++ .../QSPBD/res/values-night/iconify.xml | 5 +++ .../overlay/compiler/OnboardingCompiler.kt | 28 ++++++++++---- .../utils/overlay/compiler/OverlayCompiler.kt | 37 ++++++++++--------- 4 files changed, 50 insertions(+), 25 deletions(-) diff --git a/app/src/main/assets/Overlays/android/QSPBA/res/values-night/iconify.xml b/app/src/main/assets/Overlays/android/QSPBA/res/values-night/iconify.xml index 3b3e92095..76385aee4 100644 --- a/app/src/main/assets/Overlays/android/QSPBA/res/values-night/iconify.xml +++ b/app/src/main/assets/Overlays/android/QSPBA/res/values-night/iconify.xml @@ -1,6 +1,8 @@ + @*android:color/black + @*android:color/black @*android:color/black @*android:color/black @*android:color/black @@ -14,5 +16,8 @@ @*android:color/black diff --git a/app/src/main/assets/Overlays/android/QSPBD/res/values-night/iconify.xml b/app/src/main/assets/Overlays/android/QSPBD/res/values-night/iconify.xml index 799c3435e..991bebba4 100644 --- a/app/src/main/assets/Overlays/android/QSPBD/res/values-night/iconify.xml +++ b/app/src/main/assets/Overlays/android/QSPBD/res/values-night/iconify.xml @@ -1,6 +1,8 @@ + @*android:color/black + @*android:color/black @*android:color/black @*android:color/black @*android:color/black @@ -14,5 +16,8 @@ @*android:color/black diff --git a/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/OnboardingCompiler.kt b/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/OnboardingCompiler.kt index 4a393af4a..17c33260b 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/OnboardingCompiler.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/OnboardingCompiler.kt @@ -64,16 +64,28 @@ object OnboardingCompiler { while (attempt-- != 0) { result = Shell.cmd(command).exec() - if (!result.isSuccess && OverlayCompiler.listContains( - result.out, - "colorSurfaceHeader" + if (!result.isSuccess) { + val keywords = listOf( + "colorSurfaceHeader", + "materialColorOnSurface", + "materialColorSurfaceContainerHigh", + "materialColorSurfaceContainerHighest" ) - ) { - Shell.cmd( - "find $source/res -type f -name \"*.xml\" -exec sed -i '/colorSurfaceHeader/d' {} +" - ).exec() - result = Shell.cmd(command).exec() + + val foundKeywords = keywords.filter { keyword -> + result!!.out.any { it.contains(keyword, ignoreCase = true) } + } + + if (foundKeywords.isNotEmpty()) { + foundKeywords.forEach { keyword -> + Shell.cmd( + "find $source/res -type f -name \"*.xml\" -exec sed -i '/$keyword/d' {} +" + ).exec() + } + result = Shell.cmd(command).exec() + } } + if (result.isSuccess) { Log.i("$TAG - AAPT", "Successfully built APK for $name") break diff --git a/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/OverlayCompiler.kt b/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/OverlayCompiler.kt index f5aeae6f9..814b82404 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/OverlayCompiler.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/OverlayCompiler.kt @@ -15,7 +15,6 @@ import com.drdisagree.iconify.utils.helper.Logger.writeLog import com.topjohnwu.superuser.Shell import java.security.PrivateKey import java.security.cert.X509Certificate -import java.util.Locale object OverlayCompiler { @@ -75,10 +74,26 @@ object OverlayCompiler { val command = aaptCommand.toString() var result = Shell.cmd(command).exec() - if (!result.isSuccess && listContains(result.out, "colorSurfaceHeader")) { - Shell.cmd("find $source/res -type f -name \"*.xml\" -exec sed -i '/colorSurfaceHeader/d' {} +") - .exec() - result = Shell.cmd(command).exec() + if (!result.isSuccess) { + val keywords = listOf( + "colorSurfaceHeader", + "materialColorOnSurface", + "materialColorSurfaceContainerHigh", + "materialColorSurfaceContainerHighest" + ) + + val foundKeywords = keywords.filter { keyword -> + result.out.any { it.contains(keyword, ignoreCase = true) } + } + + if (foundKeywords.isNotEmpty()) { + foundKeywords.forEach { keyword -> + Shell.cmd( + "find $source/res -type f -name \"*.xml\" -exec sed -i '/$keyword/d' {} +" + ).exec() + } + result = Shell.cmd(command).exec() + } } if (result.isSuccess) { @@ -168,16 +183,4 @@ object OverlayCompiler { return false } - - fun listContains(list: List, target: String): Boolean { - for (item in list) { - if (item.lowercase(Locale.getDefault()) - .contains(target.lowercase(Locale.getDefault())) - ) { - return true - } - } - - return false - } } From 2669ecf231475f2c5994c13a9d685d25fe2457fe Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Tue, 13 Aug 2024 21:38:25 +0600 Subject: [PATCH 087/369] Pitch Black: Remove potentially redundant resource --- .../assets/Overlays/android/QSPBA/res/values-night/iconify.xml | 1 - .../assets/Overlays/android/QSPBD/res/values-night/iconify.xml | 1 - .../iconify/utils/overlay/compiler/OnboardingCompiler.kt | 1 - .../drdisagree/iconify/utils/overlay/compiler/OverlayCompiler.kt | 1 - 4 files changed, 4 deletions(-) diff --git a/app/src/main/assets/Overlays/android/QSPBA/res/values-night/iconify.xml b/app/src/main/assets/Overlays/android/QSPBA/res/values-night/iconify.xml index 76385aee4..73f98acae 100644 --- a/app/src/main/assets/Overlays/android/QSPBA/res/values-night/iconify.xml +++ b/app/src/main/assets/Overlays/android/QSPBA/res/values-night/iconify.xml @@ -16,7 +16,6 @@ @*android:color/black diff --git a/app/src/main/assets/Overlays/android/QSPBD/res/values-night/iconify.xml b/app/src/main/assets/Overlays/android/QSPBD/res/values-night/iconify.xml index 991bebba4..1c6d3e5fc 100644 --- a/app/src/main/assets/Overlays/android/QSPBD/res/values-night/iconify.xml +++ b/app/src/main/assets/Overlays/android/QSPBD/res/values-night/iconify.xml @@ -16,7 +16,6 @@ @*android:color/black diff --git a/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/OnboardingCompiler.kt b/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/OnboardingCompiler.kt index 17c33260b..85cf105ac 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/OnboardingCompiler.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/OnboardingCompiler.kt @@ -67,7 +67,6 @@ object OnboardingCompiler { if (!result.isSuccess) { val keywords = listOf( "colorSurfaceHeader", - "materialColorOnSurface", "materialColorSurfaceContainerHigh", "materialColorSurfaceContainerHighest" ) diff --git a/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/OverlayCompiler.kt b/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/OverlayCompiler.kt index 814b82404..91b824eb1 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/OverlayCompiler.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/OverlayCompiler.kt @@ -77,7 +77,6 @@ object OverlayCompiler { if (!result.isSuccess) { val keywords = listOf( "colorSurfaceHeader", - "materialColorOnSurface", "materialColorSurfaceContainerHigh", "materialColorSurfaceContainerHighest" ) From 0310ee41fafd30a9c18dededfe188d2515bc6200 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Wed, 14 Aug 2024 16:52:36 +0600 Subject: [PATCH 088/369] Pitch Black: Fix for android 14 QPR3 --- .../Overlays/android/QSPBA/res/values-night/iconify.xml | 3 +-- .../Overlays/android/QSPBD/res/values-night/iconify.xml | 3 +-- .../iconify/utils/overlay/compiler/OnboardingCompiler.kt | 4 +--- .../iconify/utils/overlay/compiler/OverlayCompiler.kt | 4 +--- 4 files changed, 4 insertions(+), 10 deletions(-) diff --git a/app/src/main/assets/Overlays/android/QSPBA/res/values-night/iconify.xml b/app/src/main/assets/Overlays/android/QSPBA/res/values-night/iconify.xml index 73f98acae..2d42498a7 100644 --- a/app/src/main/assets/Overlays/android/QSPBA/res/values-night/iconify.xml +++ b/app/src/main/assets/Overlays/android/QSPBA/res/values-night/iconify.xml @@ -3,6 +3,7 @@ @*android:color/black @*android:color/black + @*android:color/black @*android:color/black @*android:color/black @*android:color/black @@ -16,7 +17,5 @@ @*android:color/black diff --git a/app/src/main/assets/Overlays/android/QSPBD/res/values-night/iconify.xml b/app/src/main/assets/Overlays/android/QSPBD/res/values-night/iconify.xml index 1c6d3e5fc..1afddfcd9 100644 --- a/app/src/main/assets/Overlays/android/QSPBD/res/values-night/iconify.xml +++ b/app/src/main/assets/Overlays/android/QSPBD/res/values-night/iconify.xml @@ -3,6 +3,7 @@ @*android:color/black @*android:color/black + @*android:color/system_neutral1_800 @*android:color/black @*android:color/black @*android:color/black @@ -16,7 +17,5 @@ @*android:color/black diff --git a/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/OnboardingCompiler.kt b/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/OnboardingCompiler.kt index 85cf105ac..fdfa05c2c 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/OnboardingCompiler.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/OnboardingCompiler.kt @@ -66,9 +66,7 @@ object OnboardingCompiler { if (!result.isSuccess) { val keywords = listOf( - "colorSurfaceHeader", - "materialColorSurfaceContainerHigh", - "materialColorSurfaceContainerHighest" + "colorSurfaceHeader" ) val foundKeywords = keywords.filter { keyword -> diff --git a/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/OverlayCompiler.kt b/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/OverlayCompiler.kt index 91b824eb1..4787535f2 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/OverlayCompiler.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/OverlayCompiler.kt @@ -76,9 +76,7 @@ object OverlayCompiler { if (!result.isSuccess) { val keywords = listOf( - "colorSurfaceHeader", - "materialColorSurfaceContainerHigh", - "materialColorSurfaceContainerHighest" + "colorSurfaceHeader" ) val foundKeywords = keywords.filter { keyword -> From 351604dd43eb60358a750de3103a350e968ff43a Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Wed, 14 Aug 2024 16:02:12 +0200 Subject: [PATCH 089/369] Initial commit for LockscreenWeather --- app/src/main/AndroidManifest.xml | 25 + .../drdisagree/iconify/common/Preferences.kt | 22 + .../iconify/receiver/BootReceiver.kt | 4 + .../iconify/services/WeatherScheduler.kt | 72 +++ .../ui/fragments/XposedLockscreenClock.kt | 34 +- .../ui/fragments/XposedLockscreenWeather.kt | 355 ++++++++++++ .../drdisagree/iconify/ui/utils/ViewHelper.kt | 25 + .../iconify/ui/widgets/BottomSheetWidget.kt | 5 + .../iconify/utils/NetworkUtils.java | 159 ++++++ .../iconify/utils/OmniJawsClient.java | 404 ++++++++++++++ .../weather/AbstractWeatherProvider.kt | 172 ++++++ .../com/drdisagree/iconify/weather/Config.kt | 149 +++++ .../iconify/weather/WeatherContentProvider.kt | 218 ++++++++ .../drdisagree/iconify/weather/WeatherInfo.kt | 288 ++++++++++ .../drdisagree/iconify/weather/WeatherWork.kt | 263 +++++++++ .../weather/providers/OpenMeteoProvider.kt | 359 ++++++++++++ .../drdisagree/iconify/xposed/EntryList.kt | 2 + .../xposed/modules/LockscreenWeather.kt | 176 ++++++ .../xposed/views/CurrentWeatherView.kt | 514 ++++++++++++++++++ app/src/main/res/drawable-nodpi/google_0.png | Bin 0 -> 961 bytes app/src/main/res/drawable-nodpi/google_1.png | Bin 0 -> 1274 bytes app/src/main/res/drawable-nodpi/google_10.png | Bin 0 -> 1030 bytes app/src/main/res/drawable-nodpi/google_11.png | Bin 0 -> 1030 bytes app/src/main/res/drawable-nodpi/google_12.png | Bin 0 -> 1030 bytes app/src/main/res/drawable-nodpi/google_13.png | Bin 0 -> 868 bytes app/src/main/res/drawable-nodpi/google_14.png | Bin 0 -> 868 bytes app/src/main/res/drawable-nodpi/google_15.png | Bin 0 -> 868 bytes app/src/main/res/drawable-nodpi/google_16.png | Bin 0 -> 868 bytes app/src/main/res/drawable-nodpi/google_17.png | Bin 0 -> 868 bytes app/src/main/res/drawable-nodpi/google_18.png | Bin 0 -> 868 bytes app/src/main/res/drawable-nodpi/google_19.png | Bin 0 -> 881 bytes app/src/main/res/drawable-nodpi/google_2.png | Bin 0 -> 961 bytes app/src/main/res/drawable-nodpi/google_20.png | Bin 0 -> 881 bytes app/src/main/res/drawable-nodpi/google_21.png | Bin 0 -> 881 bytes app/src/main/res/drawable-nodpi/google_22.png | Bin 0 -> 881 bytes app/src/main/res/drawable-nodpi/google_23.png | Bin 0 -> 784 bytes app/src/main/res/drawable-nodpi/google_24.png | Bin 0 -> 784 bytes app/src/main/res/drawable-nodpi/google_25.png | Bin 0 -> 733 bytes app/src/main/res/drawable-nodpi/google_26.png | Bin 0 -> 674 bytes app/src/main/res/drawable-nodpi/google_27.png | Bin 0 -> 958 bytes app/src/main/res/drawable-nodpi/google_28.png | Bin 0 -> 1189 bytes app/src/main/res/drawable-nodpi/google_29.png | Bin 0 -> 976 bytes app/src/main/res/drawable-nodpi/google_3.png | Bin 0 -> 1274 bytes app/src/main/res/drawable-nodpi/google_30.png | Bin 0 -> 1115 bytes app/src/main/res/drawable-nodpi/google_31.png | Bin 0 -> 833 bytes app/src/main/res/drawable-nodpi/google_32.png | Bin 0 -> 709 bytes app/src/main/res/drawable-nodpi/google_33.png | Bin 0 -> 833 bytes app/src/main/res/drawable-nodpi/google_34.png | Bin 0 -> 709 bytes app/src/main/res/drawable-nodpi/google_35.png | Bin 0 -> 1030 bytes app/src/main/res/drawable-nodpi/google_36.png | Bin 0 -> 686 bytes app/src/main/res/drawable-nodpi/google_37.png | Bin 0 -> 1323 bytes app/src/main/res/drawable-nodpi/google_38.png | Bin 0 -> 1323 bytes app/src/main/res/drawable-nodpi/google_39.png | Bin 0 -> 1323 bytes app/src/main/res/drawable-nodpi/google_4.png | Bin 0 -> 1274 bytes app/src/main/res/drawable-nodpi/google_40.png | Bin 0 -> 1176 bytes app/src/main/res/drawable-nodpi/google_41.png | Bin 0 -> 868 bytes app/src/main/res/drawable-nodpi/google_42.png | Bin 0 -> 1261 bytes app/src/main/res/drawable-nodpi/google_43.png | Bin 0 -> 868 bytes app/src/main/res/drawable-nodpi/google_44.png | Bin 0 -> 976 bytes app/src/main/res/drawable-nodpi/google_45.png | Bin 0 -> 1536 bytes app/src/main/res/drawable-nodpi/google_46.png | Bin 0 -> 1261 bytes app/src/main/res/drawable-nodpi/google_47.png | Bin 0 -> 1536 bytes app/src/main/res/drawable-nodpi/google_5.png | Bin 0 -> 1030 bytes app/src/main/res/drawable-nodpi/google_6.png | Bin 0 -> 1030 bytes app/src/main/res/drawable-nodpi/google_7.png | Bin 0 -> 1030 bytes app/src/main/res/drawable-nodpi/google_8.png | Bin 0 -> 1030 bytes app/src/main/res/drawable-nodpi/google_9.png | Bin 0 -> 1030 bytes app/src/main/res/drawable-nodpi/google_na.png | Bin 0 -> 998 bytes .../res/drawable-v24/ic_humidity_symbol.xml | 8 + .../main/res/drawable-v24/ic_wind_symbol.xml | 8 + .../ambient_indication_pill_background.xml | 21 + .../main/res/drawable/date_box_str_border.xml | 13 + app/src/main/res/drawable/date_str_accent.xml | 10 + app/src/main/res/drawable/date_str_border.xml | 13 + .../main/res/drawable/date_str_borderacc.xml | 38 ++ .../main/res/drawable/date_str_bordergrad.xml | 39 ++ .../main/res/drawable/date_str_gradient.xml | 14 + .../drawable/ic_xposed_lockscreen_weather.xml | 20 + .../fragment_xposed_lockscreen_clock.xml | 7 + .../fragment_xposed_lockscreen_weather.xml | 180 ++++++ .../main/res/layout/view_current_weather.xml | 97 ++++ .../main/res/navigation/nav_xposed_menu.xml | 20 + .../res/raw/com_drdisagree_iconify_keep.xml | 3 + app/src/main/res/values/arrays.xml | 29 + app/src/main/res/values/dimens.xml | 10 + app/src/main/res/values/strings.xml | 93 ++++ 86 files changed, 3856 insertions(+), 13 deletions(-) create mode 100644 app/src/main/java/com/drdisagree/iconify/services/WeatherScheduler.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/utils/NetworkUtils.java create mode 100644 app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.java create mode 100644 app/src/main/java/com/drdisagree/iconify/weather/AbstractWeatherProvider.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/weather/Config.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/weather/WeatherContentProvider.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/weather/WeatherInfo.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/weather/WeatherWork.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/weather/providers/OpenMeteoProvider.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/xposed/views/CurrentWeatherView.kt create mode 100644 app/src/main/res/drawable-nodpi/google_0.png create mode 100644 app/src/main/res/drawable-nodpi/google_1.png create mode 100644 app/src/main/res/drawable-nodpi/google_10.png create mode 100644 app/src/main/res/drawable-nodpi/google_11.png create mode 100644 app/src/main/res/drawable-nodpi/google_12.png create mode 100644 app/src/main/res/drawable-nodpi/google_13.png create mode 100644 app/src/main/res/drawable-nodpi/google_14.png create mode 100644 app/src/main/res/drawable-nodpi/google_15.png create mode 100644 app/src/main/res/drawable-nodpi/google_16.png create mode 100644 app/src/main/res/drawable-nodpi/google_17.png create mode 100644 app/src/main/res/drawable-nodpi/google_18.png create mode 100644 app/src/main/res/drawable-nodpi/google_19.png create mode 100644 app/src/main/res/drawable-nodpi/google_2.png create mode 100644 app/src/main/res/drawable-nodpi/google_20.png create mode 100644 app/src/main/res/drawable-nodpi/google_21.png create mode 100644 app/src/main/res/drawable-nodpi/google_22.png create mode 100644 app/src/main/res/drawable-nodpi/google_23.png create mode 100644 app/src/main/res/drawable-nodpi/google_24.png create mode 100644 app/src/main/res/drawable-nodpi/google_25.png create mode 100644 app/src/main/res/drawable-nodpi/google_26.png create mode 100644 app/src/main/res/drawable-nodpi/google_27.png create mode 100644 app/src/main/res/drawable-nodpi/google_28.png create mode 100644 app/src/main/res/drawable-nodpi/google_29.png create mode 100644 app/src/main/res/drawable-nodpi/google_3.png create mode 100644 app/src/main/res/drawable-nodpi/google_30.png create mode 100644 app/src/main/res/drawable-nodpi/google_31.png create mode 100644 app/src/main/res/drawable-nodpi/google_32.png create mode 100644 app/src/main/res/drawable-nodpi/google_33.png create mode 100644 app/src/main/res/drawable-nodpi/google_34.png create mode 100644 app/src/main/res/drawable-nodpi/google_35.png create mode 100644 app/src/main/res/drawable-nodpi/google_36.png create mode 100644 app/src/main/res/drawable-nodpi/google_37.png create mode 100644 app/src/main/res/drawable-nodpi/google_38.png create mode 100644 app/src/main/res/drawable-nodpi/google_39.png create mode 100644 app/src/main/res/drawable-nodpi/google_4.png create mode 100644 app/src/main/res/drawable-nodpi/google_40.png create mode 100644 app/src/main/res/drawable-nodpi/google_41.png create mode 100644 app/src/main/res/drawable-nodpi/google_42.png create mode 100644 app/src/main/res/drawable-nodpi/google_43.png create mode 100644 app/src/main/res/drawable-nodpi/google_44.png create mode 100644 app/src/main/res/drawable-nodpi/google_45.png create mode 100644 app/src/main/res/drawable-nodpi/google_46.png create mode 100644 app/src/main/res/drawable-nodpi/google_47.png create mode 100644 app/src/main/res/drawable-nodpi/google_5.png create mode 100644 app/src/main/res/drawable-nodpi/google_6.png create mode 100644 app/src/main/res/drawable-nodpi/google_7.png create mode 100644 app/src/main/res/drawable-nodpi/google_8.png create mode 100644 app/src/main/res/drawable-nodpi/google_9.png create mode 100644 app/src/main/res/drawable-nodpi/google_na.png create mode 100644 app/src/main/res/drawable-v24/ic_humidity_symbol.xml create mode 100644 app/src/main/res/drawable-v24/ic_wind_symbol.xml create mode 100644 app/src/main/res/drawable/ambient_indication_pill_background.xml create mode 100644 app/src/main/res/drawable/date_box_str_border.xml create mode 100644 app/src/main/res/drawable/date_str_accent.xml create mode 100644 app/src/main/res/drawable/date_str_border.xml create mode 100644 app/src/main/res/drawable/date_str_borderacc.xml create mode 100644 app/src/main/res/drawable/date_str_bordergrad.xml create mode 100644 app/src/main/res/drawable/date_str_gradient.xml create mode 100644 app/src/main/res/drawable/ic_xposed_lockscreen_weather.xml create mode 100644 app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml create mode 100644 app/src/main/res/layout/view_current_weather.xml create mode 100644 app/src/main/res/raw/com_drdisagree_iconify_keep.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index fbf9bb1a3..5e5672a7c 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -26,6 +26,14 @@ android:name="android.permission.QUERY_ALL_PACKAGES" tools:ignore="QueryAllPackagesPermission" /> + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt index 8ffbf78cd..c3cb0b169 100644 --- a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt +++ b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt @@ -246,6 +246,28 @@ object Preferences { const val NAVBAR_LOW_SENS = "navbarlowsens" const val NAVBAR_HIDE_PILL = "navbarhidepill" + // Weather + const val WEATHER_SWITCH: String = "weather_switch" + const val WEATHER_ICON_PACK: String = "weather_icon_pack" + const val WEATHER_UPDATE_INTERVAL: String = "weather_update_interval" + const val WEATHER_SHOW_LOCATION: String = "weather_show_location" + const val WEATHER_SHOW_CONDITION: String = "weather_show_condition" + const val WEATHER_SHOW_HUMIDITY: String = "weather_show_humidity" + const val WEATHER_SHOW_WIND: String = "weather_show_wind" + const val WEATHER_TEXT_SIZE: String = "weather_text_size" + const val WEATHER_ICON_SIZE: String = "weather_icon_size" + const val WEATHER_TEXT_COLOR_SWITCH: String = "weather_text_color_switch" + const val WEATHER_TEXT_COLOR: String = "weather_text_color" + const val WEATHER_PROVIDER: String = "weather_provider" + const val WEATHER_OWM_KEY: String = "owm_key" + const val WEATHER_UNITS: String = "weather_units" + const val WEATHER_CUSTOM_LOCATION: String = "weather_custom_location_switch" + const val WEATHER_CUSTOM_LOCATION_NAME: String = "weather_custom_location_name" + const val WEATHER_CUSTOM_MARGINS: String = "weather_custom_margins" + const val WEATHER_CUSTOM_MARGINS_TOP: String = "weather_custom_margins_top" + const val WEATHER_CUSTOM_MARGINS_LEFT: String = "weather_custom_margins_left" + const val WEATHER_STYLE: String = "weather_style" + // Settings const val APP_LANGUAGE = "IconifyAppLanguage" const val APP_ICON = "IconifyAppIcon" diff --git a/app/src/main/java/com/drdisagree/iconify/receiver/BootReceiver.kt b/app/src/main/java/com/drdisagree/iconify/receiver/BootReceiver.kt index 242c60bfd..12f75fb90 100644 --- a/app/src/main/java/com/drdisagree/iconify/receiver/BootReceiver.kt +++ b/app/src/main/java/com/drdisagree/iconify/receiver/BootReceiver.kt @@ -7,6 +7,7 @@ import android.util.Log import com.drdisagree.iconify.common.Const.ACTION_BOOT_COMPLETED import com.drdisagree.iconify.common.Const.SYSTEMUI_PACKAGE import com.drdisagree.iconify.services.UpdateScheduler +import com.drdisagree.iconify.services.WeatherScheduler class BootReceiver : BroadcastReceiver() { @@ -19,6 +20,9 @@ class BootReceiver : BroadcastReceiver() { // Schedule updates UpdateScheduler.scheduleUpdates(context) + // Schedule Weather Updates + WeatherScheduler.scheduleUpdates(context) + // Update QS clock on boot val broadcast: Intent = Intent(ACTION_BOOT_COMPLETED) broadcast.putExtra("packageName", SYSTEMUI_PACKAGE) diff --git a/app/src/main/java/com/drdisagree/iconify/services/WeatherScheduler.kt b/app/src/main/java/com/drdisagree/iconify/services/WeatherScheduler.kt new file mode 100644 index 000000000..76176e52e --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/services/WeatherScheduler.kt @@ -0,0 +1,72 @@ +package com.drdisagree.iconify.services + +import android.content.Context +import android.util.Log +import androidx.work.BackoffPolicy +import androidx.work.Configuration +import androidx.work.ExistingPeriodicWorkPolicy +import androidx.work.OneTimeWorkRequest +import androidx.work.PeriodicWorkRequest +import androidx.work.WorkManager +import com.drdisagree.iconify.BuildConfig +import com.drdisagree.iconify.weather.Config +import com.drdisagree.iconify.weather.WeatherWork +import java.util.concurrent.TimeUnit + +object WeatherScheduler { + private const val UPDATE_WORK_NAME: String = BuildConfig.APPLICATION_ID + ".WeatherSchedule" + + fun scheduleUpdates(context: Context?) { + Log.d("Weather Scheduler", "Updating update schedule...") + + if (!WorkManager.isInitialized()) { + WorkManager.initialize(context!!, Configuration.Builder().build()) + } + + val workManager = WorkManager.getInstance(context!!) + + val weatherEnabled: Boolean = Config.isEnabled(context) + + Log.d("Weather Scheduler", "Weather enabled: $weatherEnabled") + + if (weatherEnabled) { + Log.d("Weather Scheduler", "Scheduling updates") + val builder: PeriodicWorkRequest.Builder = + PeriodicWorkRequest.Builder(WeatherWork::class.java, + Config.getUpdateInterval(context).toLong(), TimeUnit.HOURS) + .setBackoffCriteria(BackoffPolicy.LINEAR, 1, TimeUnit.HOURS) + + workManager.enqueueUniquePeriodicWork( + UPDATE_WORK_NAME, + ExistingPeriodicWorkPolicy.UPDATE, + builder.build() + ) + } else { + workManager.cancelUniqueWork(UPDATE_WORK_NAME) + } + } + + fun unscheduleUpdates(context: Context?) { + if (!WorkManager.isInitialized()) { + WorkManager.initialize(context!!, Configuration.Builder().build()) + } + + val workManager = WorkManager.getInstance(context!!) + + workManager.cancelUniqueWork(UPDATE_WORK_NAME) + } + + fun scheduleUpdateNow(context: Context?) { + Log.d("Weather Scheduler", "Check update now") + + if (!WorkManager.isInitialized()) { + WorkManager.initialize(context!!, Configuration.Builder().build()) + } + + val workManager = WorkManager.getInstance(context!!) + + val builder: OneTimeWorkRequest.Builder = OneTimeWorkRequest.Builder(WeatherWork::class.java) + + workManager.enqueue(builder.build()) + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenClock.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenClock.kt index b058b1e13..2fde46bd6 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenClock.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenClock.kt @@ -14,6 +14,7 @@ import android.widget.Toast import androidx.activity.result.ActivityResult import androidx.activity.result.contract.ActivityResultContracts import androidx.core.content.ContextCompat +import androidx.navigation.Navigation.findNavController import androidx.recyclerview.widget.LinearSnapHelper import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.SnapHelper @@ -374,6 +375,12 @@ class XposedLockscreenClock : BaseFragment() { } }) + binding.lsWeather.setOnClickListener { + findNavController(binding.lsWeather).navigate( + (R.id.action_xposedLockscreenClock_to_xposedLockscreenWeather) + ) + } + return view } @@ -430,19 +437,20 @@ class XposedLockscreenClock : BaseFragment() { } private fun updateEnabled(enabled: Boolean) { - binding.lockscreenClockFont.setEnabled(enabled) - binding.lsClockCustomColor.setEnabled(enabled) - binding.colorPickerAccent1.setEnabled(enabled) - binding.colorPickerAccent2.setEnabled(enabled) - binding.colorPickerAccent3.setEnabled(enabled) - binding.colorPickerText1.setEnabled(enabled) - binding.colorPickerText2.setEnabled(enabled) - binding.lsclockLineHeight.setEnabled(enabled) - binding.lsClockTextscaling.setEnabled(enabled) - binding.lsclockTopMargin.setEnabled(enabled) - binding.lsclockBottomMargin.setEnabled(enabled) - binding.lsclockCustomUsername.setEnabled(enabled) - binding.lsclockCustomDevicename.setEnabled(enabled) + binding.lockscreenClockFont.isEnabled = enabled + binding.lsClockCustomColor.isEnabled = enabled + binding.colorPickerAccent1.isEnabled = enabled + binding.colorPickerAccent2.isEnabled = enabled + binding.colorPickerAccent3.isEnabled = enabled + binding.colorPickerText1.isEnabled = enabled + binding.colorPickerText2.isEnabled = enabled + binding.lsclockLineHeight.isEnabled = enabled + binding.lsClockTextscaling.isEnabled = enabled + binding.lsclockTopMargin.isEnabled = enabled + binding.lsclockBottomMargin.isEnabled = enabled + binding.lsclockCustomUsername.isEnabled = enabled + binding.lsclockCustomDevicename.isEnabled = enabled + binding.lsWeather.isEnabled = enabled } private fun showMoreLsSettings() { diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt new file mode 100644 index 000000000..18cdb2b3f --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt @@ -0,0 +1,355 @@ +package com.drdisagree.iconify.ui.fragments + +import android.Manifest +import android.app.Dialog +import android.content.Context +import android.content.DialogInterface +import android.content.Intent +import android.content.pm.PackageManager +import android.location.LocationManager +import android.net.Uri +import android.os.Bundle +import android.provider.Settings +import android.util.Log +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.CompoundButton +import androidx.activity.result.ActivityResultLauncher +import androidx.activity.result.contract.ActivityResultContracts +import com.drdisagree.iconify.BuildConfig +import com.drdisagree.iconify.Iconify.Companion.appContextLocale +import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_LOCATION +import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS +import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_LEFT +import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_TOP +import com.drdisagree.iconify.common.Preferences.WEATHER_ICON_SIZE +import com.drdisagree.iconify.common.Preferences.WEATHER_SHOW_CONDITION +import com.drdisagree.iconify.common.Preferences.WEATHER_SHOW_HUMIDITY +import com.drdisagree.iconify.common.Preferences.WEATHER_SHOW_LOCATION +import com.drdisagree.iconify.common.Preferences.WEATHER_SHOW_WIND +import com.drdisagree.iconify.common.Preferences.WEATHER_STYLE +import com.drdisagree.iconify.common.Preferences.WEATHER_SWITCH +import com.drdisagree.iconify.common.Preferences.WEATHER_TEXT_COLOR +import com.drdisagree.iconify.common.Preferences.WEATHER_TEXT_COLOR_SWITCH +import com.drdisagree.iconify.common.Preferences.WEATHER_TEXT_SIZE +import com.drdisagree.iconify.common.Preferences.WEATHER_UNITS +import com.drdisagree.iconify.common.Preferences.WEATHER_UPDATE_INTERVAL +import com.drdisagree.iconify.config.RPrefs.getBoolean +import com.drdisagree.iconify.config.RPrefs.getInt +import com.drdisagree.iconify.config.RPrefs.putBoolean +import com.drdisagree.iconify.config.RPrefs.putInt +import com.drdisagree.iconify.config.RPrefs.putString +import com.drdisagree.iconify.databinding.FragmentXposedLockscreenWeatherBinding +import com.drdisagree.iconify.services.WeatherScheduler +import com.drdisagree.iconify.ui.base.BaseFragment +import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader +import com.drdisagree.iconify.utils.OmniJawsClient +import com.drdisagree.iconify.weather.Config +import com.google.android.material.dialog.MaterialAlertDialogBuilder +import com.google.android.material.slider.Slider + +class XposedLockscreenWeather:BaseFragment(), + OmniJawsClient.OmniJawsObserver { + + private lateinit var binding: FragmentXposedLockscreenWeatherBinding + private lateinit var mWeatherClient: OmniJawsClient + private var mTriggerPermissionCheck = false + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View { + binding = FragmentXposedLockscreenWeatherBinding.inflate(inflater, container, false) + val view: View = binding.getRoot() + + // Header + setHeader( + requireContext(), + getParentFragmentManager(), + binding.header.toolbar, + R.string.activity_title_lockscreen_weather + ) + + mWeatherClient = OmniJawsClient(requireContext(), false) + + return view + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + + if (!hasPermissions()) { + requestPermissionLauncher.launch( + arrayOf( + Manifest.permission.ACCESS_FINE_LOCATION, + Manifest.permission.ACCESS_COARSE_LOCATION, + Manifest.permission.ACCESS_BACKGROUND_LOCATION + ) + ) + } + + binding.enableLockscreenWeather.isSwitchChecked = getBoolean(WEATHER_SWITCH, false) + binding.enableLockscreenWeather.setSwitchChangeListener{ _: CompoundButton?, isChecked: Boolean -> + + putBoolean(WEATHER_SWITCH, isChecked) + Config.setEnabled(requireContext(), isChecked, WEATHER_SWITCH) + +// updateEnabled(isChecked) + + if (!hasPermissions()) { + showPermissionDialog() + } else { + checkLocationPermissions(false) + } + } + + binding.lockscreenWeatherUpdateInterval.setSelectedIndex(getInt(WEATHER_UPDATE_INTERVAL, 1)) + binding.lockscreenWeatherUpdateInterval.setOnItemSelectedListener{ + putInt(WEATHER_UPDATE_INTERVAL, it) + forceRefreshWeatherSettings() + } + + binding.lockscreenWeatherLastUpdate.setOnClickListener { + checkLocationPermissions(false) + forceRefreshWeatherSettings() + } + + binding.lockscreenWeatherUnits.setSelectedIndex(if (Config.isMetric(requireContext())) 0 else 1) + binding.lockscreenWeatherUnits.setOnItemSelectedListener{ + putString(WEATHER_UNITS, it.toString()) + forceRefreshWeatherSettings() + } + + binding.lockscreenWeatherShowLocation.isSwitchChecked = getBoolean(WEATHER_SHOW_LOCATION, true) + binding.lockscreenWeatherShowLocation.setSwitchChangeListener{ _: CompoundButton?, isChecked: Boolean -> + putBoolean(WEATHER_SHOW_LOCATION, isChecked) + } + + binding.lockscreenWeatherShowCondition.isSwitchChecked = getBoolean(WEATHER_SHOW_CONDITION, true) + binding.lockscreenWeatherShowCondition.setSwitchChangeListener{ _: CompoundButton?, isChecked: Boolean -> + putBoolean(WEATHER_SHOW_CONDITION, isChecked) + } + + binding.lockscreenWeatherShowHumidity.isSwitchChecked = getBoolean(WEATHER_SHOW_HUMIDITY, false) + binding.lockscreenWeatherShowHumidity.setSwitchChangeListener{ _: CompoundButton?, isChecked: Boolean -> + putBoolean(WEATHER_SHOW_HUMIDITY, isChecked) + } + + binding.lockscreenWeatherShowWind.isSwitchChecked = getBoolean(WEATHER_SHOW_WIND, false) + binding.lockscreenWeatherShowWind.setSwitchChangeListener{ _: CompoundButton?, isChecked: Boolean -> + putBoolean(WEATHER_SHOW_WIND, isChecked) + } + + binding.lockscreenWeatherTextSize.sliderValue = getInt(WEATHER_TEXT_SIZE, 16) + binding.lockscreenWeatherTextSize.setOnSliderChangeListener{ _: Slider?, value: Float, _: Boolean -> + putInt(WEATHER_TEXT_SIZE, value.toInt()) + } + + binding.lockscreenWeatherImageSize.sliderValue = getInt(WEATHER_ICON_SIZE, 18) + binding.lockscreenWeatherImageSize.setOnSliderChangeListener{ _: Slider?, value: Float, _: Boolean -> + putInt(WEATHER_ICON_SIZE, value.toInt()) + } + + binding.lockscreenWeatherCustomColorSwitch.isSwitchChecked = getBoolean(WEATHER_TEXT_COLOR_SWITCH, false) + binding.lockscreenWeatherCustomColorSwitch.setSwitchChangeListener{ _: CompoundButton?, isChecked: Boolean -> + putBoolean(WEATHER_TEXT_COLOR_SWITCH, isChecked) + binding.lockscreenWeatherCustomColor.visibility = if (isChecked) View.VISIBLE else View.GONE + } + + binding.lockscreenWeatherCustomColor.previewColor = getInt(WEATHER_TEXT_COLOR, 0xFFFFFFFF.toInt()) + binding.lockscreenWeatherCustomColor.setOnColorSelectedListener { color: Int -> + putInt(WEATHER_TEXT_COLOR, color) + } + + binding.lockscreenWeatherCustomLocation.isSwitchChecked = getBoolean(WEATHER_CUSTOM_LOCATION, false) + binding.lockscreenWeatherCustomLocation.setSwitchChangeListener{ _: CompoundButton?, isChecked: Boolean -> + putBoolean(WEATHER_CUSTOM_LOCATION, isChecked) + } + + binding.lockscreenWeatherCustomLocationMenu.setOnClickListener(View.OnClickListener { + //TODO: Implement custom location + }) + + binding.lockscreenWeatherCustomMargins.isSwitchChecked = getBoolean(WEATHER_CUSTOM_MARGINS, false) + binding.lockscreenWeatherCustomMargins.setSwitchChangeListener{ _: CompoundButton?, isChecked: Boolean -> + putBoolean(WEATHER_CUSTOM_MARGINS, isChecked) + if (isChecked) { + binding.lockscreenWeatherMarginTop.visibility = View.VISIBLE + binding.lockscreenWeatherMarginLeft.visibility = View.VISIBLE + } else { + binding.lockscreenWeatherMarginTop.visibility = View.GONE + binding.lockscreenWeatherMarginLeft.visibility = View.GONE + } + } + + binding.lockscreenWeatherMarginTop.sliderValue = getInt(WEATHER_CUSTOM_MARGINS_TOP, 0) + binding.lockscreenWeatherMarginTop.setOnSliderChangeListener{ _: Slider?, value: Float, _: Boolean -> + putInt(WEATHER_CUSTOM_MARGINS_TOP, value.toInt()) + } + + binding.lockscreenWeatherMarginLeft.sliderValue = getInt(WEATHER_CUSTOM_MARGINS_LEFT, 0) + binding.lockscreenWeatherMarginLeft.setOnSliderChangeListener{ _: Slider?, value: Float, _: Boolean -> + putInt(WEATHER_CUSTOM_MARGINS_LEFT, value.toInt()) + } + + binding.lockscreenWeatherBg.setSelectedIndex(getInt(WEATHER_STYLE, 0)) + binding.lockscreenWeatherBg.setOnItemSelectedListener{ + putInt(WEATHER_STYLE, it) + } + +// updateUI(getBoolean(WEATHER_SWITCH, false)) + } + + override fun onResume() { + super.onResume() + mWeatherClient.addObserver(this) + if (mTriggerPermissionCheck) { + checkLocationPermissions(true) + mTriggerPermissionCheck = false + } + queryAndUpdateWeather() + } + + private fun hasPermissions(): Boolean { + return ( + requireContext().checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) + == PackageManager.PERMISSION_GRANTED) && + (requireContext().checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) + == PackageManager.PERMISSION_GRANTED) && + (requireContext().checkSelfPermission(Manifest.permission.ACCESS_BACKGROUND_LOCATION) + == PackageManager.PERMISSION_GRANTED) + } + + private fun showPermissionDialog() { + val builder = MaterialAlertDialogBuilder(requireContext()) + builder.setTitle(R.string.weather_permission_dialog_title) + builder.setMessage(R.string.weather_permission_dialog_message) + builder.setCancelable(false) + builder.setPositiveButton(android.R.string.ok) { dialog: DialogInterface?, which: Int -> + val intent = + Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS) + val uri = + Uri.fromParts("package", BuildConfig.APPLICATION_ID, null) + intent.setData(uri) + startActivity(intent) + } + builder.show() + } + + private fun showDialog() { + val builder = MaterialAlertDialogBuilder(requireContext()) + + // Build and show the dialog + builder.setTitle(R.string.weather_retrieve_location_dialog_title) + builder.setMessage(R.string.weather_retrieve_location_dialog_message) + builder.setCancelable(false) + builder.setPositiveButton( + R.string.weather_retrieve_location_dialog_enable_button + ) { dialog1, whichButton -> + mTriggerPermissionCheck = true + val intent = + Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS) + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP) + startActivity(intent) + } + builder.setNegativeButton(android.R.string.cancel, null) + val dialog: Dialog = builder.create() + dialog.show() + } + + private fun checkLocationPermissions(force: Boolean) { + if (!hasPermissions()) { + requestPermissionLauncher.launch( + arrayOf( + Manifest.permission.ACCESS_FINE_LOCATION, + Manifest.permission.ACCESS_COARSE_LOCATION, + Manifest.permission.ACCESS_BACKGROUND_LOCATION + ) + ) + } else { + if (force) { + forceRefreshWeatherSettings() + } + queryAndUpdateWeather() + } + } + + private fun checkLocationEnabled() { + if (!doCheckLocationEnabled()) { + showDialog() + } else { + checkLocationPermissions(false) + } + } + + private fun checkLocationEnabledInitial() { + if (!doCheckLocationEnabled()) { + showDialog() + } else { + checkLocationPermissions(true) + } + } + + private fun doCheckLocationEnabled(): Boolean { + val lm = requireContext().getSystemService(Context.LOCATION_SERVICE) as LocationManager + return lm.isLocationEnabled + } + + private var requestPermissionLauncher: ActivityResultLauncher> = + registerForActivityResult( + ActivityResultContracts.RequestMultiplePermissions() + ) { result -> + val fineLocationGranted: Boolean = result.getOrDefault( + Manifest.permission.ACCESS_FINE_LOCATION, false + ) + val coarseLocationGranted: Boolean = result.getOrDefault( + Manifest.permission.ACCESS_COARSE_LOCATION, false + ) + if ((fineLocationGranted) || + (coarseLocationGranted) + ) { + forceRefreshWeatherSettings() + } + } + + private fun forceRefreshWeatherSettings() { + WeatherScheduler.scheduleUpdateNow(context) + } + + private fun queryAndUpdateWeather() { + mWeatherClient.queryWeather() + Log.d("Weather", "Querying weather " + mWeatherClient.getWeatherInfo().toString()) + if (mWeatherClient.getWeatherInfo() != null) { + requireActivity().runOnUiThread { + binding.lockscreenWeatherLastUpdate.setSummary(mWeatherClient.getWeatherInfo()!!.lastUpdateTime) + } + } + } + + override fun weatherUpdated() { + queryAndUpdateWeather() + } + + override fun weatherError(errorReason: Int) { + var errorString: String? = null + errorString = if (errorReason == OmniJawsClient.EXTRA_ERROR_DISABLED) { + appContextLocale.getString(R.string.omnijaws_service_disabled) + } else if (errorReason == OmniJawsClient.EXTRA_ERROR_LOCATION) { + appContextLocale.getString(R.string.omnijaws_service_error_location) + } else if (errorReason == OmniJawsClient.EXTRA_ERROR_NETWORK) { + appContextLocale.getString(R.string.omnijaws_service_error_network) + } else if (errorReason == OmniJawsClient.EXTRA_ERROR_NO_PERMISSIONS) { + appContextLocale.getString(R.string.omnijaws_service_error_permissions) + } else { + appContextLocale.getString(R.string.omnijaws_service_error_long) + } + val s: String = errorString + requireActivity().runOnUiThread { + binding.lockscreenWeatherLastUpdate.setSummary(s) + } + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/utils/ViewHelper.kt b/app/src/main/java/com/drdisagree/iconify/ui/utils/ViewHelper.kt index 317914460..9aca64d14 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/utils/ViewHelper.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/utils/ViewHelper.kt @@ -8,6 +8,8 @@ import android.os.BatteryManager import android.os.Handler import android.os.Looper import android.util.TypedValue +import android.view.ViewGroup +import android.widget.TextView import androidx.annotation.DrawableRes import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.widget.Toolbar @@ -251,4 +253,27 @@ object ViewHelper { private fun getDrawable(context: Context, @DrawableRes batteryRes: Int): Drawable? { return ResourcesCompat.getDrawable(context.resources, batteryRes, context.theme) } + + fun setTextRecursively(viewGroup: ViewGroup, text: String?) { + for (i in 0 until viewGroup.childCount) { + val child = viewGroup.getChildAt(i) + if (child is ViewGroup) { + setTextRecursively(child, text) + } else if (child is TextView) { + child.text = text + } + } + } + + fun applyTextSizeRecursively(viewGroup: ViewGroup, textSize: Int) { + for (i in 0 until viewGroup.childCount) { + val child = viewGroup.getChildAt(i) + if (child is ViewGroup) { + applyTextSizeRecursively(child, textSize) + } else if (child is TextView) { + child.setTextSize(TypedValue.COMPLEX_UNIT_SP, textSize.toFloat()) + } + } + } + } diff --git a/app/src/main/java/com/drdisagree/iconify/ui/widgets/BottomSheetWidget.kt b/app/src/main/java/com/drdisagree/iconify/ui/widgets/BottomSheetWidget.kt index f159be955..402f496f9 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/widgets/BottomSheetWidget.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/widgets/BottomSheetWidget.kt @@ -103,6 +103,11 @@ class BottomSheetWidget : RelativeLayout, IconsAdapter.OnItemClickListener { } private fun buildEntries() { + if (arrayResId == 0) { + mEntries = emptyArray() + mEntryValues = emptyArray() + return + } mEntries = resources.getTextArray(arrayResId) val mValues: MutableList = ArrayList() diff --git a/app/src/main/java/com/drdisagree/iconify/utils/NetworkUtils.java b/app/src/main/java/com/drdisagree/iconify/utils/NetworkUtils.java new file mode 100644 index 000000000..680e0db11 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/utils/NetworkUtils.java @@ -0,0 +1,159 @@ +package com.drdisagree.iconify.utils; + +/* + * Copyright (C) 2018 The OmniROM Project + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +import android.util.Log; + +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.net.URL; +import java.nio.charset.StandardCharsets; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +import javax.net.ssl.HttpsURLConnection; + +public class NetworkUtils { + private static final boolean DEBUG = false; + private static final String TAG = "NetworkUtils"; + + private static final int HTTP_READ_TIMEOUT = 60000; + private static final int HTTP_CONNECTION_TIMEOUT = 60000; + + private static final ExecutorService executor = Executors.newSingleThreadExecutor(); + + public static void downloadUrlMemoryAsString(String url, DownloadCallback callback) { + executor.submit(() -> { + String result = downloadUrlMemoryAsString(url); + if (callback != null) { + callback.onDownloadComplete(result); + } + }); + } + + public static HttpsURLConnection setupHttpsRequest(String urlStr) { + URL url; + HttpsURLConnection urlConnection = null; + try { + url = new URL(urlStr); + urlConnection = (HttpsURLConnection) url.openConnection(); + urlConnection.setConnectTimeout(HTTP_CONNECTION_TIMEOUT); + urlConnection.setReadTimeout(HTTP_READ_TIMEOUT); + urlConnection.setRequestMethod("GET"); + urlConnection.setDoInput(true); + urlConnection.connect(); + int code = urlConnection.getResponseCode(); + if (code != HttpsURLConnection.HTTP_OK) { + Log.d(TAG, "response:" + code); + return null; + } + return urlConnection; + } catch (Exception e) { + Log.e(TAG, "Failed to connect to server", e); + return null; + } + } + + public static boolean downloadUrlFile(String url, File f) { + if (DEBUG) Log.d(TAG, "download:" + url); + + HttpsURLConnection urlConnection = null; + + if (f.exists()) + f.delete(); + + try { + urlConnection = setupHttpsRequest(url); + if (urlConnection == null) { + return false; + } + long len = urlConnection.getContentLength(); + if ((len > 0) && (len < 4L * 1024L * 1024L * 1024L)) { + byte[] buffer = new byte[262144]; + + InputStream is = urlConnection.getInputStream(); + FileOutputStream os = new FileOutputStream(f, false); + try { + int r; + while ((r = is.read(buffer)) > 0) { + os.write(buffer, 0, r); + } + } finally { + os.close(); + } + + return true; + } + return false; + } catch (Exception e) { + // Download failed for any number of reasons, timeouts, connection + // drops, etc. Just log it in debugging mode. + Log.e(TAG, "", e); + return false; + } finally { + if (urlConnection != null) { + urlConnection.disconnect(); + } + } + } + + + public static String downloadUrlMemoryAsString(String url) { + if (DEBUG) Log.d(TAG, "download: " + url); + + HttpsURLConnection urlConnection = null; + try { + urlConnection = setupHttpsRequest(url); + if (urlConnection == null) { + return null; + } + + InputStream is = urlConnection.getInputStream(); + ByteArrayOutputStream byteArray = new ByteArrayOutputStream(); + int byteInt; + + while ((byteInt = is.read()) >= 0) { + byteArray.write(byteInt); + } + + byte[] bytes = byteArray.toByteArray(); + if (bytes == null) { + return null; + } + + return new String(bytes, StandardCharsets.UTF_8); + } catch (Exception e) { + // Download failed for any number of reasons, timeouts, connection + // drops, etc. Just log it in debugging mode. + Log.e(TAG, "", e); + return null; + } finally { + if (urlConnection != null) { + urlConnection.disconnect(); + } + } + } + + public interface DownloadCallback { + void onDownloadComplete(String result); + } + +} diff --git a/app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.java b/app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.java new file mode 100644 index 000000000..b2c6703a6 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.java @@ -0,0 +1,404 @@ +package com.drdisagree.iconify.utils; + +/* + * Copyright (C) 2021 The OmniROM Project + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + + +import static com.drdisagree.iconify.xposed.HookRes.modRes; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.content.pm.PackageManager; +import android.content.res.Resources; +import android.database.Cursor; +import android.graphics.Color; +import android.graphics.drawable.ColorDrawable; +import android.graphics.drawable.Drawable; +import android.net.Uri; +import android.text.TextUtils; +import android.util.Log; + +import androidx.core.content.res.ResourcesCompat; + +import com.drdisagree.iconify.BuildConfig; +import com.drdisagree.iconify.xposed.HookRes; + +import java.text.DecimalFormat; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + + +public class OmniJawsClient { + private static final String TAG = "OmniJawsClient"; + private static final boolean DEBUG = BuildConfig.DEBUG; + public static final String SERVICE_PACKAGE = BuildConfig.APPLICATION_ID; + public static final Uri WEATHER_URI + = Uri.parse("content://com.drdisagree.iconify.weatherprovider/weather"); + public static final Uri SETTINGS_URI + = Uri.parse("content://com.drdisagree.iconify.weatherprovider/settings"); + public static final Uri CONTROL_URI + = Uri.parse("content://com.drdisagree.iconify.weatherprovider/control"); + + private static final String ICON_PACKAGE_DEFAULT = BuildConfig.APPLICATION_ID; + private static final String ICON_PREFIX_DEFAULT = "google"; + private static final String ICON_PREFIX_OUTLINE = "outline"; + private static final String EXTRA_ERROR = "error"; + public static final int EXTRA_ERROR_NETWORK = 0; // No Network + public static final int EXTRA_ERROR_LOCATION = 1; // No Location Found + public static final int EXTRA_ERROR_DISABLED = 2; // Disabled + public static final int EXTRA_ERROR_NO_PERMISSIONS = 3; // No Permissions + + public static final String[] WEATHER_PROJECTION = new String[]{ + "city", + "wind_speed", + "wind_direction", + "condition_code", + "temperature", + "humidity", + "condition", + "forecast_low", + "forecast_high", + "forecast_condition", + "forecast_condition_code", + "time_stamp", + "forecast_date", + "pin_wheel" + }; + + public static final String[] SETTINGS_PROJECTION = new String[] { + "enabled", + "units", + "provider", + "setup", + "icon_pack" + }; + + private static final String WEATHER_UPDATE = SERVICE_PACKAGE + ".WEATHER_UPDATE"; + private static final String WEATHER_ERROR = SERVICE_PACKAGE + ".WEATHER_ERROR"; + + private static final DecimalFormat sNoDigitsFormat = new DecimalFormat("0"); + + public static class WeatherInfo { + public String city; + public String windSpeed; + public String windDirection; + public int conditionCode; + public String temp; + public String humidity; + public String condition; + public Long timeStamp; + public List forecasts; + public String tempUnits; + public String windUnits; + public String provider; + public String pinWheel; + public String iconPack; + + public String toString() { + return city + ":" + new Date(timeStamp) + ": " + windSpeed + ":" + windDirection + ":" +conditionCode + ":" + temp + ":" + humidity + ":" + condition + ":" + tempUnits + ":" + windUnits + ": " + forecasts + ": " + iconPack; + } + + public String getLastUpdateTime() { + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); + return sdf.format(new Date(timeStamp)); + } + } + + public static class DayForecast { + public String low; + public String high; + public int conditionCode; + public String condition; + public String date; + + public String toString() { + return "[" + low + ":" + high + ":" +conditionCode + ":" + condition + ":" + date + "]"; + } + } + + public interface OmniJawsObserver { + void weatherUpdated(); + void weatherError(int errorReason); + default void updateSettings() {}; + } + + private class WeatherUpdateReceiver extends BroadcastReceiver { + @Override + public void onReceive(final Context context, Intent intent) { + String action = intent.getAction(); + for (OmniJawsObserver observer : mObserver) { + if (action.equals(WEATHER_UPDATE)) { + observer.weatherUpdated(); + } + if (action.equals(WEATHER_ERROR)) { + int errorReason = intent.getIntExtra(EXTRA_ERROR, 0); + observer.weatherError(errorReason); + } + } + } + } + + private Context mContext; + private WeatherInfo mCachedInfo; + private Resources mRes; + private String mPackageName; + private String mIconPrefix; + private String mGoogleImages = "google_%d"; + private String mSettingIconPackage; + private boolean mMetric; + private List mObserver; + private WeatherUpdateReceiver mReceiver; + private boolean mXposed = false; + + public OmniJawsClient(Context context, boolean xposed) { + mContext = context; + mXposed = xposed; + mObserver = new ArrayList<>(); + } + + public WeatherInfo getWeatherInfo() { + return mCachedInfo; + } + + private static String getFormattedValue(float value) { + if (Float.isNaN(value)) { + return "-"; + } + String formatted = sNoDigitsFormat.format(value); + if (formatted.equals("-0")) { + formatted = "0"; + } + return formatted; + } + + public void queryWeather() { + try { + mCachedInfo = null; + Cursor c = mContext.getContentResolver().query(WEATHER_URI, WEATHER_PROJECTION, + null, null, null); + if (c != null) { + try { + int count = c.getCount(); + if (count > 0) { + mCachedInfo = new WeatherInfo(); + List forecastList = new ArrayList(); + int i = 0; + for (i = 0; i < count; i++) { + c.moveToPosition(i); + if (i == 0) { + mCachedInfo.city = c.getString(0); + mCachedInfo.windSpeed = getFormattedValue(c.getFloat(1)); + mCachedInfo.windDirection = String.valueOf(c.getInt(2)) + "\u00b0"; + mCachedInfo.conditionCode = c.getInt(3); + mCachedInfo.temp = getFormattedValue(c.getFloat(4)); + mCachedInfo.humidity = c.getString(5); + mCachedInfo.condition = c.getString(6); + mCachedInfo.timeStamp = Long.valueOf(c.getString(11)); + mCachedInfo.pinWheel = c.getString(13); + } else { + DayForecast day = new DayForecast(); + day.low = getFormattedValue(c.getFloat(7)); + day.high = getFormattedValue(c.getFloat(8)); + day.condition = c.getString(9); + day.conditionCode = c.getInt(10); + day.date = c.getString(12); + forecastList.add(day); + } + } + mCachedInfo.forecasts = forecastList; + } + } finally { + c.close(); + } + } + c = mContext.getContentResolver().query(SETTINGS_URI, SETTINGS_PROJECTION, + null, null, null); + if (c != null) { + try { + int count = c.getCount(); + if (count == 1) { + c.moveToPosition(0); + mMetric = c.getInt(1) == 0; + if (mCachedInfo != null) { + mCachedInfo.tempUnits = getTemperatureUnit(); + mCachedInfo.windUnits = getWindUnit(); + mCachedInfo.provider = c.getString(2); + mCachedInfo.iconPack = c.getString(4); + } + } + } finally { + c.close(); + } + } + + if (DEBUG) Log.d(TAG, "queryWeather " + mCachedInfo); + updateSettings(); + } catch (Exception e) { + Log.e(TAG, "queryWeather", e); + } + } + + private void loadDefaultIconsPackage() { + mPackageName = ICON_PACKAGE_DEFAULT; + mIconPrefix = ICON_PREFIX_DEFAULT; + mSettingIconPackage = mPackageName + "." + mIconPrefix; + if (DEBUG) Log.d(TAG, "Load default icon pack " + mSettingIconPackage + " " + mPackageName + " " + mIconPrefix); + try { + if (!mXposed) { + PackageManager packageManager = mContext.getPackageManager(); + mRes = packageManager.getResourcesForApplication(mPackageName); + } else { + mRes = modRes; + } + } catch (Exception e) { + Log.e(TAG, "loadDefaultIconsPackage", e); + mRes = null; + } + if (mRes == null) { + Log.e(TAG, "mRes null"); + } + } + + private Drawable getDefaultConditionImage() { + String packageName = ICON_PACKAGE_DEFAULT; + String iconPrefix = ICON_PREFIX_DEFAULT; + + try { + PackageManager packageManager = mContext.getPackageManager(); + Resources res = packageManager.getResourcesForApplication(packageName); + if (res != null) { + int resId = res.getIdentifier(iconPrefix + "_na", "drawable", packageName); + Drawable d = ResourcesCompat.getDrawable(mRes, resId, mContext.getTheme()); + if (d != null) { + return d; + } + } else { + int resId = modRes.getIdentifier(iconPrefix + "_na", "drawable", packageName); + Drawable d = ResourcesCompat.getDrawable(modRes, resId, mContext.getTheme()); + if (d != null) { + return d; + } + } + } catch (Exception ignored) { + } + // absolute absolute fallback + Log.w(TAG, "No default package found"); + return new ColorDrawable(Color.RED); + } + + private void loadCustomIconPackage() { + if (DEBUG) Log.d(TAG, "Load custom icon pack " + mSettingIconPackage); + int idx = mSettingIconPackage.lastIndexOf("."); + mPackageName = mSettingIconPackage.substring(0, idx); + mIconPrefix = mSettingIconPackage.substring(idx + 1); + if (DEBUG) Log.d(TAG, "Load custom icon pack " + mPackageName + " " + mIconPrefix); + try { + if (!mXposed) { + PackageManager packageManager = mContext.getPackageManager(); + mRes = packageManager.getResourcesForApplication(mPackageName); + } else { + mRes = modRes; + } + + } catch (Exception e) { + mRes = null; + } + if (mRes == null) { + Log.w(TAG, "Icon pack loading failed - loading default"); + loadDefaultIconsPackage(); + } + } + + public Drawable getWeatherConditionImage(int conditionCode) { + try { + int resId = mRes.getIdentifier(mIconPrefix + "_" + conditionCode, "drawable", mPackageName); + Drawable d = ResourcesCompat.getDrawable(mRes, resId, mContext.getTheme()); + if (d != null) { + return d; + } + Log.w(TAG, "Failed to get condition image for " + conditionCode + " use default"); + + resId = mRes.getIdentifier(String.format(mGoogleImages, "na"), "drawable", mPackageName); + d = ResourcesCompat.getDrawable(mRes, resId, mContext.getTheme()); + if (d != null) { + return d; + } + } catch(Exception e) { + Log.e(TAG, "getWeatherConditionImage", e); + } + Log.w(TAG, "Failed to get condition image for " + conditionCode); + return getDefaultConditionImage(); + } + + public boolean isOmniJawsEnabled() { + return true; + } + + private String getTemperatureUnit() { + return "\u00b0" + (mMetric ? "C" : "F"); + } + + private String getWindUnit() { + return mMetric ? "km/h":"mph"; + } + + private void updateSettings() { + final String iconPack = mCachedInfo != null ? mCachedInfo.iconPack : null; + if (TextUtils.isEmpty(iconPack)) { + loadDefaultIconsPackage(); + } else if (mSettingIconPackage == null || !iconPack.equals(mSettingIconPackage)) { + mSettingIconPackage = iconPack; + loadCustomIconPackage(); + } + } + + public void addObserver(OmniJawsObserver observer) { + if (mObserver.isEmpty()) { + if (mReceiver != null) { + try { + mContext.unregisterReceiver(mReceiver); + } catch (Exception ignored) { + } + } + mReceiver = new WeatherUpdateReceiver(); + IntentFilter filter = new IntentFilter(); + filter.addAction(WEATHER_UPDATE); + filter.addAction(WEATHER_ERROR); + if (DEBUG) Log.d(TAG, "registerReceiver"); + mContext.registerReceiver(mReceiver, filter, Context.RECEIVER_EXPORTED); + } + mObserver.add(observer); + } + + public void removeObserver(OmniJawsObserver observer) { + mObserver.remove(observer); + if (mObserver.isEmpty() && mReceiver != null) { + try { + if (DEBUG) Log.d(TAG, "unregisterReceiver"); + mContext.unregisterReceiver(mReceiver); + } catch (Exception ignored) { + } + mReceiver = null; + } + } + +} diff --git a/app/src/main/java/com/drdisagree/iconify/weather/AbstractWeatherProvider.kt b/app/src/main/java/com/drdisagree/iconify/weather/AbstractWeatherProvider.kt new file mode 100644 index 000000000..57907ee93 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/weather/AbstractWeatherProvider.kt @@ -0,0 +1,172 @@ +package com.drdisagree.iconify.weather + +import android.content.Context +import android.location.Geocoder +import android.location.Location +import android.text.TextUtils +import android.util.Log +import com.drdisagree.iconify.R +import com.drdisagree.iconify.utils.NetworkUtils +import com.drdisagree.iconify.weather.Config.getLocationName +import com.drdisagree.iconify.weather.Config.isCustomLocation +import org.json.JSONObject +import java.io.IOException +import java.text.SimpleDateFormat +import java.util.Calendar +import java.util.Locale +import java.util.concurrent.CountDownLatch + +abstract class AbstractWeatherProvider(protected var mContext: Context) { + protected fun retrieve(url: String?): String { + response = "" + val latch = CountDownLatch(1) + + NetworkUtils.downloadUrlMemoryAsString(url) { result: String? -> + if (result != null) { + Log.d( + TAG, + "Download success $result" + ) + response = result + } else { + response = "" + Log.d(TAG, "Download failed") + } + latch.countDown() + } + + try { + latch.await() // Wait until the response is set + } catch (e: InterruptedException) { + Thread.currentThread().interrupt() // Restore interrupt status + Log.e(TAG, "retrieve interrupted", e) + } + + return response + } + + abstract fun getCustomWeather(id: String?, metric: Boolean): WeatherInfo? + + abstract fun getLocationWeather(location: Location?, metric: Boolean): WeatherInfo? + + abstract fun shouldRetry(): Boolean + + protected fun log(tag: String, msg: String?) { + if (DEBUG) Log.d( + "WeatherService:$tag", + msg!! + ) + } + + private fun getCoordinatesLocalityWithGoogle(coordinate: String): String? { + val latitude = + coordinate.substring(coordinate.indexOf("=") + 1, coordinate.indexOf("&")).toDouble() + val longitude = coordinate.substring(coordinate.lastIndexOf("=") + 1).toDouble() + + val geocoder = Geocoder(mContext.applicationContext, Locale.getDefault()) + try { + val listAddresses = geocoder.getFromLocation(latitude, longitude, 1) + if (!listAddresses.isNullOrEmpty()) { + val a = listAddresses[0] + return if (TextUtils.isEmpty(a.locality)) a.adminArea else a.locality + } + } catch (e: IOException) { + e.printStackTrace() + } + return null + } + + protected fun getCoordinatesLocality(coordinate: String): String? { + val cityGoogle = getCoordinatesLocalityWithGoogle(coordinate) + if (!TextUtils.isEmpty(cityGoogle)) { + return cityGoogle + } + val latitude = + coordinate.substring(coordinate.indexOf("=") + 1, coordinate.indexOf("&")).toDouble() + val longitude = coordinate.substring(coordinate.lastIndexOf("=") + 1).toDouble() + + val lang = Locale.getDefault().language.replaceFirst("_".toRegex(), "-") + val url = String.format(URL_LOCALITY, latitude, longitude, lang) + val response = retrieve(url) ?: return null + log(TAG, "URL = $url returning a response of $response") + + try { + val jsonResults = JSONObject(response) + if (jsonResults.has("address")) { + val address = jsonResults.getJSONObject("address") + val city = address.getString("placename") + val area = address.getString("adminName2") + if (!TextUtils.isEmpty(city)) { + return city + } + if (!TextUtils.isEmpty(area)) { + return area + } + } else if (jsonResults.has("geonames")) { + val jsonResultsArray = jsonResults.getJSONArray("geonames") + val count = jsonResultsArray.length() + + for (i in count - 1 downTo 0) { + val geoname = jsonResultsArray.getJSONObject(i) + val fcode = geoname.getString("fcode") + val name = geoname.getString("name") + if (TextUtils.isEmpty(name)) { + continue + } + if (fcode == "ADM3") { + return name + } + if (fcode == "ADM2") { + return name + } + if (fcode == "ADM1") { + return name + } + } + } + } catch (e: Exception) { + Log.w( + TAG, + "Received malformed location data (coordinate=$coordinate)", e + ) + } + return null + } + + protected fun getWeatherDataLocality(coordinates: String): String? { + var city: String? + if (isCustomLocation(mContext)) { + city = getLocationName(mContext) + if (TextUtils.isEmpty(city)) { + city = getCoordinatesLocality(coordinates) + } + } else { + city = getCoordinatesLocality(coordinates) + } + if (TextUtils.isEmpty(city)) { + city = mContext.resources.getString(R.string.omnijaws_city_unkown) + } + log(TAG, "getWeatherDataLocality = $city") + return city + } + + protected fun getDay(i: Int): String { + val calendar = Calendar.getInstance() + if (i > 0) { + calendar.add(Calendar.DATE, i) + } + return dayFormat.format(calendar.time) + } + + companion object { + private const val TAG = "AbstractWeatherProvider" + private const val DEBUG = false + private val dayFormat = SimpleDateFormat("yyyy-MM-dd", Locale.US) + private const val URL_PLACES = + "https://secure.geonames.org/searchJSON?name_startsWith=%s&lang=%s&username=omnijaws&maxRows=20" + private const val URL_LOCALITY = + "https://secure.geonames.org/extendedFindNearbyJSON?lat=%f&lng=%f&lang=%s&username=omnijaws" + const val PART_COORDINATES: String = "lat=%f&lon=%f" + private var response = "" + } +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/weather/Config.kt b/app/src/main/java/com/drdisagree/iconify/weather/Config.kt new file mode 100644 index 000000000..c8ca6f1f5 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/weather/Config.kt @@ -0,0 +1,149 @@ +package com.drdisagree.iconify.weather + +import android.Manifest +import android.content.Context +import android.content.SharedPreferences +import android.content.pm.PackageManager +import android.util.Log +import androidx.preference.PreferenceManager +import com.drdisagree.iconify.BuildConfig +import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_LOCATION +import com.drdisagree.iconify.common.Preferences.WEATHER_ICON_PACK +import com.drdisagree.iconify.common.Preferences.WEATHER_OWM_KEY +import com.drdisagree.iconify.common.Preferences.WEATHER_PROVIDER +import com.drdisagree.iconify.common.Preferences.WEATHER_SWITCH +import com.drdisagree.iconify.common.Preferences.WEATHER_UNITS +import com.drdisagree.iconify.common.Preferences.WEATHER_UPDATE_INTERVAL +import com.drdisagree.iconify.config.XPrefs.Xprefs +import com.drdisagree.iconify.weather.providers.OpenMeteoProvider + +object Config { + const val SharedXPref: String = BuildConfig.APPLICATION_ID + "_preferences" + const val PREF_KEY_PROVIDER: String = "provider" + const val PREF_KEY_UNITS: String = "units" + const val PREF_KEY_LOCATION_ID: String = "location_id" + const val PREF_KEY_LOCATION_NAME: String = "location_name" + const val PREF_KEY_WEATHER_DATA: String = "weather_data" + const val PREF_KEY_LAST_UPDATE: String = "last_update" + const val PREF_KEY_ENABLE: String = "enable" + const val PREF_KEY_UPDATE_INTERVAL: String = "update_interval" + const val PREF_KEY_ICON_PACK: String = "icon_pack" + const val PREF_KEY_UPDATE_ERROR: String = "update_error" + const val PREF_KEY_OWM_KEY: String = "owm_key" + const val PREF_KEY_HISTORY: String = "history" + const val PREF_KEY_HISTORY_SIZE: String = "history_size" + const val WEATHER_PREFS: String = BuildConfig.APPLICATION_ID + "_weatherprefs" + + private fun getPrefs(context: Context): SharedPreferences { + try { + if (Xprefs != null) return Xprefs as SharedPreferences + return PreferenceManager.getDefaultSharedPreferences(context.createDeviceProtectedStorageContext()) + } catch (t: Throwable) { + return PreferenceManager.getDefaultSharedPreferences(context.createDeviceProtectedStorageContext()) + } + } + + private fun getWeatherPrefs(context: Context): SharedPreferences { + val deviceProtectedContext = context.createDeviceProtectedStorageContext() + return deviceProtectedContext.getSharedPreferences(WEATHER_PREFS, Context.MODE_PRIVATE) + } + + fun getProvider(context: Context): AbstractWeatherProvider { + return OpenMeteoProvider(context) + } + + fun getProviderId(context: Context): String { + val provider = getPrefs(context).getString(WEATHER_PROVIDER, "0") + + return when (provider) { + "1" -> "MET Norway" + "2" -> "OpenMeteo" + else -> "OpenWeatherMap" + } + } + + fun isMetric(context: Context): Boolean { + return getPrefs(context).getString(WEATHER_UNITS, "0") == "0" + } + + fun isCustomLocation(context: Context): Boolean { + return getPrefs(context).getBoolean(WEATHER_CUSTOM_LOCATION, false) + } + + fun getLocationId(context: Context): String? { + return getWeatherPrefs(context).getString(PREF_KEY_LOCATION_ID, null) + } + + fun setLocationId(context: Context, id: String?) { + getWeatherPrefs(context).edit().putString(PREF_KEY_LOCATION_ID, id).apply() + } + + fun getLocationName(context: Context): String? { + return getWeatherPrefs(context).getString(PREF_KEY_LOCATION_NAME, null) + } + + fun setLocationName(context: Context, name: String?) { + getWeatherPrefs(context).edit().putString(PREF_KEY_LOCATION_NAME, name).apply() + } + + fun getWeatherData(context: Context): WeatherInfo? { + var str: String? = null + try { + str = getWeatherPrefs(context).getString(PREF_KEY_WEATHER_DATA, null) + } catch (ignored: Throwable) { + } + + if (str != null) { + return WeatherInfo.fromSerializedString(context, str) + } + return null + } + + fun setWeatherData(data: WeatherInfo, context: Context) { + Log.d("Weather", "Setting weather data " + data.toSerializedString()) + getWeatherPrefs(context).edit().putString(PREF_KEY_WEATHER_DATA, data.toSerializedString()) + .apply() + getWeatherPrefs(context).edit().putLong(PREF_KEY_LAST_UPDATE, System.currentTimeMillis()) + .apply() + } + + fun clearLastUpdateTime(context: Context) { + getWeatherPrefs(context).edit().putLong(PREF_KEY_LAST_UPDATE, 0).apply() + } + + fun isEnabled(context: Context): Boolean { + val lsWeather = getPrefs(context).getBoolean(WEATHER_SWITCH, false) + return lsWeather + } + + fun setEnabled(context: Context, value: Boolean, key: String?) { + getPrefs(context).edit().putBoolean(key, value).apply() + } + + fun getUpdateInterval(context: Context): Int { + var updateValue = 2 + try { + updateValue = getPrefs(context).getString(WEATHER_UPDATE_INTERVAL, "2")!!.toInt() + } catch (ignored: Throwable) { + } + + return updateValue + } + + fun getIconPack(context: Context): String? { + return getPrefs(context).getString(WEATHER_ICON_PACK, null) + } + + fun setUpdateError(context: Context, value: Boolean) { + getWeatherPrefs(context).edit().putBoolean(PREF_KEY_UPDATE_ERROR, value).apply() + } + + fun isSetupDone(context: Context): Boolean { + return (context.checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) + == PackageManager.PERMISSION_GRANTED) + } + + fun getOwmKey(context: Context): String? { + return getPrefs(context).getString(WEATHER_OWM_KEY, null) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/weather/WeatherContentProvider.kt b/app/src/main/java/com/drdisagree/iconify/weather/WeatherContentProvider.kt new file mode 100644 index 000000000..a9fb8d51b --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/weather/WeatherContentProvider.kt @@ -0,0 +1,218 @@ +package com.drdisagree.iconify.weather + +import android.annotation.SuppressLint +import android.content.ContentProvider +import android.content.ContentValues +import android.content.Context +import android.content.UriMatcher +import android.database.Cursor +import android.database.MatrixCursor +import android.net.Uri +import android.util.Log +import com.drdisagree.iconify.BuildConfig +import com.drdisagree.iconify.services.WeatherScheduler.scheduleUpdateNow + +class WeatherContentProvider : ContentProvider() { + private var mContext: Context? = null + + override fun onCreate(): Boolean { + mContext = context + sCachedWeatherInfo = mContext?.let { Config.getWeatherData(it) } + return true + } + + override fun query( + uri: Uri, + projection: Array?, + selection: String?, + selectionArgs: Array?, + sortOrder: String? + ): Cursor? { + val projectionType = sUriMatcher.match(uri) + val result = MatrixCursor(resolveProjection(projection, projectionType)) + + + if (projectionType == URI_TYPE_SETTINGS) { + result.newRow() + .add(COLUMN_ENABLED, if (Config.isEnabled(mContext!!)) 1 else 0) + .add(COLUMN_PROVIDER, Config.getProviderId(mContext!!)) + .add(COLUMN_INTERVAL, Config.getUpdateInterval(mContext!!)) + .add(COLUMN_UNITS, if (Config.isMetric(mContext!!)) 0 else 1) + .add( + COLUMN_LOCATION, + if (Config.isCustomLocation(mContext!!)) Config.getLocationName(mContext!!) else "" + ) + .add( + COLUMN_SETUP, + if (!Config.isSetupDone(mContext!!) && sCachedWeatherInfo == null) 0 else 1 + ) + .add( + COLUMN_ICON_PACK, + if (Config.getIconPack(mContext!!) != null) Config.getIconPack(mContext!!) else "" + ) + + + return result + } else if (projectionType == URI_TYPE_WEATHER) { + val weather = sCachedWeatherInfo + if (weather != null) { + // current + result.newRow() + .add(COLUMN_CURRENT_CITY, weather.city) + .add(COLUMN_CURRENT_CITY_ID, weather.id) + .add(COLUMN_CURRENT_CONDITION, weather.getCondition()) + .add(COLUMN_CURRENT_HUMIDITY, weather.formattedHumidity) + .add(COLUMN_CURRENT_WIND_SPEED, weather.windSpeed) + .add(COLUMN_CURRENT_WIND_DIRECTION, weather.windDirection) + .add(COLUMN_CURRENT_TEMPERATURE, weather.temperature) + .add(COLUMN_CURRENT_TIME_STAMP, weather.timestamp.toString()) + .add(COLUMN_CURRENT_PIN_WHEEL, weather.pinWheel) + .add(COLUMN_CURRENT_CONDITION_CODE, weather.conditionCode) + + // forecast + for (day in weather.forecasts) { + result.newRow() + .add(COLUMN_FORECAST_CONDITION, day.getCondition(mContext!!)) + .add(COLUMN_FORECAST_LOW, day.low) + .add(COLUMN_FORECAST_HIGH, day.high) + .add(COLUMN_FORECAST_CONDITION_CODE, day.conditionCode) + .add(COLUMN_FORECAST_DATE, day.date) + } + + + return result + } + } + return null + } + + private fun resolveProjection(projection: Array?, uriType: Int): Array { + if (projection != null) return projection + return when (uriType) { + URI_TYPE_SETTINGS -> PROJECTION_DEFAULT_SETTINGS + else -> { + PROJECTION_DEFAULT_WEATHER + PROJECTION_DEFAULT_SETTINGS + } + } + } + + override fun getType(uri: Uri): String? { + return null + } + + override fun insert(uri: Uri, values: ContentValues?): Uri? { + return null + } + + override fun delete(uri: Uri, selection: String?, selectionArgs: Array?): Int { + return 0 + } + + override fun update( + uri: Uri, + values: ContentValues?, + selection: String?, + selectionArgs: Array? + ): Int { + val projectionType = sUriMatcher.match(uri) + if (projectionType == URI_TYPE_CONTROL) { + if (values!!.containsKey(COLUMN_FORCE_REFRESH) && values.getAsBoolean( + COLUMN_FORCE_REFRESH + ) + ) { + if (DEBUG) Log.i( + TAG, + "update: $uri $values" + ) + scheduleUpdateNow(mContext) + } + } + return 0 + } + + companion object { + private const val TAG = "WeatherService:WeatherContentProvider" + private const val DEBUG = true + + @SuppressLint("StaticFieldLeak") + var sCachedWeatherInfo: WeatherInfo? = null + + private const val URI_TYPE_WEATHER = 1 + private const val URI_TYPE_SETTINGS = 2 + private const val URI_TYPE_CONTROL = 3 + + private const val COLUMN_CURRENT_CITY_ID = "city_id" + private const val COLUMN_CURRENT_CITY = "city" + private const val COLUMN_CURRENT_CONDITION = "condition" + private const val COLUMN_CURRENT_TEMPERATURE = "temperature" + private const val COLUMN_CURRENT_HUMIDITY = "humidity" + private const val COLUMN_CURRENT_WIND_SPEED = "wind_speed" + private const val COLUMN_CURRENT_WIND_DIRECTION = "wind_direction" + private const val COLUMN_CURRENT_TIME_STAMP = "time_stamp" + private const val COLUMN_CURRENT_CONDITION_CODE = "condition_code" + private const val COLUMN_CURRENT_PIN_WHEEL = "pin_wheel" + + private const val COLUMN_FORECAST_LOW = "forecast_low" + private const val COLUMN_FORECAST_HIGH = "forecast_high" + private const val COLUMN_FORECAST_CONDITION = "forecast_condition" + private const val COLUMN_FORECAST_CONDITION_CODE = "forecast_condition_code" + private const val COLUMN_FORECAST_DATE = "forecast_date" + + private const val COLUMN_ENABLED = "enabled" + private const val COLUMN_PROVIDER = "provider" + private const val COLUMN_INTERVAL = "interval" + private const val COLUMN_UNITS = "units" + private const val COLUMN_LOCATION = "location" + private const val COLUMN_SETUP = "setup" + private const val COLUMN_ICON_PACK = "icon_pack" + + const val COLUMN_FORCE_REFRESH: String = "update" + + private val PROJECTION_DEFAULT_WEATHER = arrayOf( + COLUMN_CURRENT_CITY_ID, + COLUMN_CURRENT_CITY, + COLUMN_CURRENT_CONDITION, + COLUMN_CURRENT_TEMPERATURE, + COLUMN_CURRENT_HUMIDITY, + COLUMN_CURRENT_WIND_SPEED, + COLUMN_CURRENT_WIND_DIRECTION, + COLUMN_CURRENT_TIME_STAMP, + COLUMN_CURRENT_PIN_WHEEL, + COLUMN_CURRENT_CONDITION_CODE, + COLUMN_FORECAST_LOW, + COLUMN_FORECAST_HIGH, + COLUMN_FORECAST_CONDITION, + COLUMN_FORECAST_CONDITION_CODE, + COLUMN_FORECAST_DATE + ) + + private val PROJECTION_DEFAULT_SETTINGS = arrayOf( + COLUMN_ENABLED, + COLUMN_PROVIDER, + COLUMN_INTERVAL, + COLUMN_UNITS, + COLUMN_LOCATION, + COLUMN_SETUP, + COLUMN_ICON_PACK + ) + + private const val AUTHORITY: String = "com.drdisagree.iconify.weatherprovider" + + private val sUriMatcher = UriMatcher(URI_TYPE_WEATHER) + + init { + sUriMatcher.addURI(AUTHORITY, "weather", URI_TYPE_WEATHER) + sUriMatcher.addURI(AUTHORITY, "settings", URI_TYPE_SETTINGS) + sUriMatcher.addURI(AUTHORITY, "control", URI_TYPE_CONTROL) + } + + fun updateCachedWeatherInfo(context: Context) { + if (DEBUG) Log.d(TAG, "updateCachedWeatherInfo()") + sCachedWeatherInfo = Config.getWeatherData(context) + context.contentResolver.notifyChange( + Uri.parse("content://$AUTHORITY/weather"), null + ) + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/weather/WeatherInfo.kt b/app/src/main/java/com/drdisagree/iconify/weather/WeatherInfo.kt new file mode 100644 index 000000000..4f1976062 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/weather/WeatherInfo.kt @@ -0,0 +1,288 @@ +package com.drdisagree.iconify.weather + +import android.content.Context +import java.text.DecimalFormat +import java.util.Date + +class WeatherInfo private constructor( + context: Context, val id: String, + val city: String, private val condition: String, val conditionCode: Int, var temperature: Float, + private val humidity: Float, private val wind: Float, val windDirection: Int, + private val metric: Boolean, val forecasts: ArrayList, val timestamp: Long, + var pinWheel: String +) { + private val mContext: Context = context.applicationContext + + constructor( + context: Context, id: String, + city: String, condition: String, conditionCode: Int, temp: Float, + humidity: Float, wind: Float, windDir: Int, + metric: Boolean, forecasts: ArrayList, timestamp: Long + ) : this( + context, id, city, condition, conditionCode, temp, humidity, wind, windDir, + metric, forecasts, timestamp, "" + ) { + this.pinWheel = getFormattedWindDirection(windDir) + } + + class WeatherLocation { + var id: String? = null + var city: String? = null + var postal: String? = null + var countryId: String? = null + var country: String? = null + } + + class DayForecast( + val low: Float, + val high: Float, + val condition: String, + val conditionCode: Int, + var date: String, + var metric: Boolean + ) { + fun getCondition(context: Context): String { + return getCondition(context, conditionCode, condition) + } + } + + + fun getCondition(): String { + return getCondition(mContext, conditionCode, condition) + } + + val formattedTimestamp: Date + get() = Date(timestamp) + + val formattedHumidity: String + get() = getFormattedValue(humidity, "%") + + val windSpeed: Float + get() { + if (wind < 0) { + return 0F + } + return wind + } + + private val formattedWindSpeed: String + get() { + if (wind < 0) { + return "0" + } + return getFormattedValue(wind, if (metric) "km/h" else "m/h") + } + + private fun getFormattedWindDirection(direction: Int): String { + val value = ((direction / 22.5) + 0.5).toInt() + val pw = WIND_DIRECTION[value % 16] + return pw + } + + private val temperatureUnit: String + get() = "\u00b0" + (if (metric) "C" else "F") + + override fun toString(): String { + val builder = StringBuilder() + builder.append("WeatherInfo for ") + builder.append(city) + builder.append(" (") + builder.append(id) + builder.append(") @ ") + builder.append(formattedTimestamp) + builder.append(": ") + builder.append(getCondition()) + builder.append("(") + builder.append(conditionCode) + builder.append("), temperature ") + builder.append( + getFormattedValue( + temperature, + temperatureUnit + ) + ) + builder.append(", humidity ") + builder.append(formattedHumidity) + builder.append(", wind ") + builder.append(formattedWindSpeed) + builder.append(" at ") + builder.append(windDirection) + if (!forecasts.isEmpty()) { + builder.append(", forecasts:") + } + for (i in forecasts.indices) { + val d = forecasts[i] + if (i != 0) { + builder.append(";") + } + builder.append(" day ").append(i + 1).append(":") + builder.append(d.date) + builder.append(" high ").append( + getFormattedValue( + d.high, + temperatureUnit + ) + ) + builder.append(", low ").append( + getFormattedValue( + d.low, + temperatureUnit + ) + ) + builder.append(", ").append(d.condition) + builder.append("(").append(d.conditionCode).append(")") + } + return builder.toString() + } + + fun toSerializedString(): String { + val builder = StringBuilder() + builder.append(id).append('|') + builder.append(city).append('|') + builder.append(condition).append('|') + builder.append(conditionCode).append('|') + builder.append(temperature).append('|') + builder.append(humidity).append('|') + builder.append(wind).append('|') + builder.append(windDirection).append('|') + builder.append(metric).append('|') + builder.append(timestamp).append('|') + builder.append(pinWheel) + if (!forecasts.isEmpty()) { + serializeForecasts(builder) + } + return builder.toString() + } + + private fun serializeForecasts(builder: StringBuilder) { + builder.append('|') + builder.append(forecasts.size) + for (d in forecasts) { + builder.append(';') + builder.append(d.high).append(';') + builder.append(d.low).append(';') + builder.append(d.condition).append(';') + builder.append(d.conditionCode).append(';') + builder.append(d.date) + } + } + + companion object { + private val sNoDigitsFormat = DecimalFormat("0") + + val WIND_DIRECTION: Array = arrayOf( + "N", + "NNE", + "NE", + "ENE", + "E", + "ESE", + "SE", + "SSE", + "S", + "SSW", + "SW", + "WSW", + "W", + "WNW", + "NW", + "NNW" + ) + + private fun getCondition(context: Context, conditionCode: Int, condition: String): String { + val res = context.resources + val resId = res.getIdentifier("weather_$conditionCode", "string", context.packageName) + if (resId != 0) { + return res.getString(resId) + } + return condition + } + + private fun getFormattedValue(value: Float, unit: String): String { + if (java.lang.Float.isNaN(value)) { + return "-" + } + var formatted = sNoDigitsFormat.format(value.toDouble()) + if (formatted == "-0") { + formatted = "0" + } + return formatted + unit + } + + fun fromSerializedString(context: Context, input: String?): WeatherInfo? { + if (input == null) { + return null + } + + val parts = input.split("\\|".toRegex()).dropLastWhile { it.isEmpty() } + .toTypedArray() + val hasForecast = parts.size == 12 + + val conditionCode: Int + val windDirection: Int + val timestamp: Long + val temperature: Float + val humidity: Float + val wind: Float + val metric: Boolean + val pinWheel: String + var forecastParts: Array? = null + if (hasForecast) { + forecastParts = + parts[11].split(";".toRegex()).dropLastWhile { it.isEmpty() }.toTypedArray() + } + val forecastItems: Int + val forecasts = ArrayList() + + // Parse the core data + try { + conditionCode = parts[3].toInt() + temperature = parts[4].toFloat() + humidity = parts[5].toFloat() + wind = parts[6].toFloat() + windDirection = parts[7].toInt() + metric = parts[8].toBoolean() + timestamp = parts[9].toLong() + pinWheel = parts[10] + forecastItems = forecastParts?.get(0)?.toInt() ?: 0 + } catch (e: NumberFormatException) { + return null + } + + if (hasForecast && (forecastItems == 0 || forecastParts!!.size != 5 * forecastItems + 1)) { + return null + } + + // Parse the forecast data + try { + for (item in 0 until forecastItems) { + val offset = item * 5 + 1 + val day = DayForecast( /* low */ + forecastParts!![offset + 1].toFloat(), /* high */ + forecastParts[offset].toFloat(), /* condition */ + forecastParts[offset + 2], /* conditionCode */ + forecastParts[offset + 3].toInt(), + forecastParts[offset + 4], + metric + ) + if (!java.lang.Float.isNaN(day.low) && !java.lang.Float.isNaN(day.high) /*&& day.conditionCode >= 0*/) { + forecasts.add(day) + } + } + } catch (ignored: NumberFormatException) { + } + + if (hasForecast && forecasts.isEmpty()) { + return null + } + + return WeatherInfo( + context, /* id */ + parts[0], /* city */parts[1], /* condition */parts[2], + conditionCode, temperature, + humidity, wind, windDirection, metric, /* forecasts */ + forecasts, timestamp, pinWheel + ) + } + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/weather/WeatherWork.kt b/app/src/main/java/com/drdisagree/iconify/weather/WeatherWork.kt new file mode 100644 index 000000000..6fef3377a --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/weather/WeatherWork.kt @@ -0,0 +1,263 @@ +package com.drdisagree.iconify.weather + +import android.Manifest +import android.annotation.SuppressLint +import android.content.Context +import android.content.Intent +import android.content.pm.PackageManager +import android.location.Criteria +import android.location.Location +import android.location.LocationManager +import android.text.TextUtils +import android.util.Log +import androidx.concurrent.futures.CallbackToFutureAdapter +import androidx.work.ListenableWorker +import androidx.work.WorkerParameters +import com.drdisagree.iconify.BuildConfig +import com.drdisagree.iconify.utils.OmniJawsClient.EXTRA_ERROR_DISABLED +import com.drdisagree.iconify.utils.OmniJawsClient.EXTRA_ERROR_LOCATION +import com.drdisagree.iconify.utils.OmniJawsClient.EXTRA_ERROR_NETWORK +import com.drdisagree.iconify.utils.OmniJawsClient.EXTRA_ERROR_NO_PERMISSIONS +import com.drdisagree.iconify.weather.Config.getLocationId +import com.drdisagree.iconify.weather.Config.getProvider +import com.drdisagree.iconify.weather.Config.isCustomLocation +import com.drdisagree.iconify.weather.Config.isEnabled +import com.drdisagree.iconify.weather.Config.isMetric +import com.drdisagree.iconify.weather.Config.setUpdateError +import com.drdisagree.iconify.weather.Config.setWeatherData +import com.google.common.util.concurrent.ListenableFuture +import java.text.SimpleDateFormat +import java.util.Locale +import java.util.concurrent.ExecutorService +import java.util.concurrent.Executors +import java.util.concurrent.atomic.AtomicReference + +class WeatherWork(val mContext: Context, workerParams: WorkerParameters) : + ListenableWorker(mContext, workerParams) { + override fun startWork(): ListenableFuture { + if (DEBUG) Log.d(TAG, "startWork") + + return CallbackToFutureAdapter.getFuture { completer: CallbackToFutureAdapter.Completer -> + if (!isEnabled(mContext)) { + handleError( + completer, + EXTRA_ERROR_DISABLED, + "Service started, but not enabled ... stopping" + ) + return@getFuture completer + } + if (!checkPermissions()) { + handleError( + completer, + EXTRA_ERROR_NO_PERMISSIONS, + "Location permissions are not granted" + ) + return@getFuture completer + } + + if (!doCheckLocationEnabled()) { + handleError(completer, EXTRA_ERROR_NETWORK, "Location services are disabled") + return@getFuture completer + } + + executor.execute { + val location = currentLocation + if (location != null) { + Log.d(TAG, "Location retrieved") + updateWeather(location, completer) + } else if (isCustomLocation(mContext)) { + Log.d( + TAG, + "Using custom location configuration" + ) + updateWeather(null, completer) + } else { + handleError(completer, EXTRA_ERROR_LOCATION, "Failed to retrieve location") + } + } + completer + } + } + + private fun handleError( + completer: CallbackToFutureAdapter.Completer, + errorExtra: Int, + logMessage: String + ) { + Log.w(TAG, logMessage) + val errorIntent = Intent(ACTION_ERROR) + errorIntent.putExtra(EXTRA_ERROR, errorExtra) + mContext.sendBroadcast(errorIntent) + completer.set(Result.retry()) + } + + private fun doCheckLocationEnabled(): Boolean { + val locationManager = mContext.getSystemService(Context.LOCATION_SERVICE) as LocationManager + var gpsEnabled = false + var networkEnabled = false + + try { + gpsEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER) + } catch (ex: Exception) { + Log.d(TAG, "doCheckLocationEnabled: " + ex.message) + } + + try { + networkEnabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER) + } catch (ex: Exception) { + Log.d(TAG, "doCheckLocationEnabled: " + ex.message) + } + + if (DEBUG) Log.d( + TAG, + "gpsEnabled: $gpsEnabled networkEnabled: $networkEnabled" + ) + + return gpsEnabled || networkEnabled + } + + @get:SuppressLint("MissingPermission") + private val currentLocation: Location? + get() { + val lm = mContext.getSystemService(Context.LOCATION_SERVICE) as LocationManager + + if (!doCheckLocationEnabled()) { + Log.w(TAG, "locations disabled") + return null + } + + val location = + AtomicReference(lm.getLastKnownLocation(LocationManager.PASSIVE_PROVIDER)) + Log.d(TAG, "Current location is $location") + + if (location.get() != null && location.get()!!.accuracy > LOCATION_ACCURACY_THRESHOLD_METERS) { + Log.w(TAG, "Ignoring inaccurate location") + location.set(null) + } + + var needsUpdate = location.get() == null + if (location.get() != null) { + val delta = System.currentTimeMillis() - location.get()!!.time + needsUpdate = delta > OUTDATED_LOCATION_THRESHOLD_MILLIS + Log.d(TAG, "Location is " + delta + "ms old") + if (needsUpdate) { + Log.w( + TAG, "Ignoring too old location from " + dayFormat.format( + location.get()!!.time + ) + ) + location.set(null) + } + } + + if (needsUpdate) { + Log.d(TAG, "Requesting current location") + val locationProvider = lm.getBestProvider(sLocationCriteria, true) + if (TextUtils.isEmpty(locationProvider)) { + Log.e(TAG, "No available location providers matching criteria.") + } else { + Log.d( + TAG, + "Getting current location with provider $locationProvider" + ) + lm.getCurrentLocation( + locationProvider!!, null, mContext.mainExecutor + ) { location1: Location? -> + if (location1 != null) { + Log.d( + TAG, + "Got valid location now update" + ) + location.set(location1) + } else { + Log.w( + TAG, + "Failed to retrieve location" + ) + } + } + } + } + + return location.get() + } + + private fun updateWeather( + location: Location?, + completer: CallbackToFutureAdapter.Completer + ) { + var w: WeatherInfo? = null + try { + val provider = getProvider(mContext) + val isMetric = isMetric(mContext) + var i = 0 + while (i < RETRY_MAX_NUM) { + w = if (location != null && !isCustomLocation(mContext)) { + provider.getLocationWeather(location, isMetric) + } else if (getLocationId(mContext) != null) { + provider.getCustomWeather(getLocationId(mContext), isMetric) + } else { + Log.w(TAG, "No valid custom location and location is null") + break + } + + if (w != null) { + setWeatherData(w, mContext) + WeatherContentProvider.updateCachedWeatherInfo(mContext) + Log.d(TAG, "Weather updated updateCachedWeatherInfo") + completer.set(Result.success()) + return + } else { + if (!provider.shouldRetry()) { + break + } else { + Log.w(TAG, "retry count = $i") + try { + Thread.sleep(RETRY_DELAY_MS.toLong()) + } catch (ignored: InterruptedException) { + } + } + } + i++ + } + } finally { + if (w == null) { + Log.d(TAG, "error updating weather") + setUpdateError(mContext, true) + completer.set(Result.retry()) + } + val updateIntent = Intent(ACTION_BROADCAST) + mContext.sendBroadcast(updateIntent) + } + } + + private fun checkPermissions(): Boolean { + return mContext.checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED && + mContext.checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED + } + + companion object { + private const val TAG = "WeatherWork" + private const val DEBUG = false + private val ACTION_BROADCAST = BuildConfig.APPLICATION_ID.replace(".debug", "") + ".WEATHER_UPDATE" + private val ACTION_ERROR = BuildConfig.APPLICATION_ID.replace(".debug", "") + ".WEATHER_ERROR" + + private const val EXTRA_ERROR = "error" + + private const val LOCATION_ACCURACY_THRESHOLD_METERS = 10000f + private const val OUTDATED_LOCATION_THRESHOLD_MILLIS = 10L * 60L * 1000L // 10 minutes + private const val RETRY_DELAY_MS = 5000 + private const val RETRY_MAX_NUM = 5 + + private val executor: ExecutorService = Executors.newSingleThreadExecutor() + private val dayFormat = SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.US) + + private val sLocationCriteria = Criteria() + + init { + sLocationCriteria.powerRequirement = Criteria.POWER_LOW + sLocationCriteria.accuracy = Criteria.ACCURACY_COARSE + sLocationCriteria.isCostAllowed = false + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/weather/providers/OpenMeteoProvider.kt b/app/src/main/java/com/drdisagree/iconify/weather/providers/OpenMeteoProvider.kt new file mode 100644 index 000000000..371d43ba3 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/weather/providers/OpenMeteoProvider.kt @@ -0,0 +1,359 @@ +package com.drdisagree.iconify.weather.providers + +import android.content.Context +import android.location.Location +import android.util.Log +import com.drdisagree.iconify.weather.AbstractWeatherProvider +import com.drdisagree.iconify.weather.WeatherInfo +import org.json.JSONException +import org.json.JSONObject +import java.text.SimpleDateFormat +import java.util.Calendar +import java.util.Locale +import java.util.TimeZone + +class OpenMeteoProvider(context: Context?) : AbstractWeatherProvider(context!!) { + override fun getCustomWeather(id: String?, metric: Boolean): WeatherInfo? { + return handleWeatherRequest(id, metric) + } + + override fun getLocationWeather(location: Location?, metric: Boolean): WeatherInfo? { + val coordinates = + String.format(Locale.US, PART_COORDINATES, location!!.latitude, location.longitude) + return handleWeatherRequest(coordinates, metric) + } + + private fun handleWeatherRequest(selection: String?, metric: Boolean): WeatherInfo? { + val tempUnit = if (metric) "celsius" else "fahrenheit" + val speedUnit = if (metric) "kmh" else "mph" + val timeZone = TimeZone.getDefault().id + val conditionUrl = String.format( + Locale.US, + URL_WEATHER + PART_PARAMETERS, + selection, + tempUnit, + speedUnit, + timeZone + ) + Log.d(TAG, "Condition URL = $conditionUrl") + val conditionResponse = retrieve(conditionUrl) ?: return null + log( + TAG, + "Condition URL = $conditionUrl returning a response of $conditionResponse" + ) + + try { + val weather = JSONObject(conditionResponse).getJSONObject("current_weather") + + val city = getWeatherDataLocality(selection!!) + + val weathercode = weather.getInt("weathercode") + val isDay = weather.getInt("is_day") == 1 + + val w: WeatherInfo = WeatherInfo( + mContext, /* id */ + selection, /* cityId */ + city!!, /* condition */ + getWeatherDescription(weathercode), /* conditionCode */ + mapConditionIconToCode(weathercode, isDay), /* temperature */ + weather.getDouble("temperature") + .toFloat(), // Api: Possibly future inclusion humidity in current weather; may eliminate need for hourly forecast request. + /* humidity */ + getCurrentHumidity(JSONObject(conditionResponse).getJSONObject("hourly")), /* wind */ + weather.getDouble("windspeed").toFloat(), /* windDir */ + weather.getInt("winddirection"), + metric, + parseForecasts(JSONObject(conditionResponse).getJSONObject("daily"), metric), + System.currentTimeMillis() + ) + + log(TAG, "Weather updated: $w") + return w + } catch (e: JSONException) { + Log.w( + TAG, + "Received malformed weather data (coordinates = $selection)", e + ) + } + + + return null + } + + @Throws(JSONException::class) + private fun parseForecasts( + dailyForecasts: JSONObject, + metric: Boolean + ): ArrayList { + val result: ArrayList = ArrayList(5) + + val timeJson = dailyForecasts.getJSONArray("time") + val temperatureMinJson = dailyForecasts.getJSONArray("temperature_2m_min_best_match") + val temperatureMaxJson = dailyForecasts.getJSONArray("temperature_2m_max_best_match") + val weatherCodeJson = dailyForecasts.getJSONArray("weathercode_best_match") + val altWeatherCodeJson = dailyForecasts.getJSONArray("weathercode_gfs_seamless") + val currentDay = + SimpleDateFormat("yyyy-MM-dd", Locale.US).format(Calendar.getInstance().time) + + var startIndex = 1 + if (currentDay == timeJson.getString(0)) startIndex = 0 + else if (currentDay == timeJson.getString(2)) startIndex = 2 + + var i = startIndex + while (i < timeJson.length() && result.size < 5) { + var item: WeatherInfo.DayForecast + var weatherCode = weatherCodeJson.getInt(i) + if (weatherCode == 45 || weatherCode == 48) weatherCode = altWeatherCodeJson.getInt(i) + + try { + item = WeatherInfo.DayForecast( /* low */ + temperatureMinJson.getDouble(i).toFloat(), /* high */ + temperatureMaxJson.getDouble(i).toFloat(), /* condition */ + getWeatherDescription(weatherCode), /* conditionCode */ + mapConditionIconToCode(weatherCode, true), + timeJson.getString(i), + metric + ) + } catch (e: JSONException) { + Log.w( + TAG, + "Invalid forecast for day $i creating dummy", e + ) + item = WeatherInfo.DayForecast( /* low */ + 0F, /* high */ + 0F, /* condition */ + "", /* conditionCode */ + -1, + "NaN", + metric + ) + } + result.add(item) + i++ + } + // clients assume there are 5 entries - so fill with dummy if needed + if (result.size < 5) { + for (i in result.size..4) { + Log.w( + TAG, + "Missing forecast for day $i creating dummy" + ) + val item: WeatherInfo.DayForecast = WeatherInfo.DayForecast( /* low */ + 0F, /* high */ + 0F, /* condition */ + "", /* conditionCode */ + -1, + "NaN", + metric + ) + result.add(item) + } + } + + return result + } + + private val languageCode: String + get() { + val locale = mContext.resources.configuration.locale + val selector = locale.language + "-" + locale.country + + for ((key, value) in LANGUAGE_CODE_MAPPING) { + if (selector.startsWith(key)) { + return value + } + } + + return "en" + } + + private fun mapConditionIconToCode(code: Int, isDay: Boolean): Int { + return when (code) { + 0 -> // Clear sky + if (isDay) 32 else 31 + + 1 -> // Mainly clear + if (isDay) 34 else 33 + + 2 -> // Partly cloudy + if (isDay) 30 else 29 + + 3 -> // Overcast + 26 + + 45, 48 -> // Depositing rime fog + 20 + + 51 -> // Light intensity drizzle + 9 + + 53 -> // Moderate intensity drizzle + 9 + + 55 -> // Dense intensity drizzle + 12 + + 56 -> // Light intensity freezing drizzle + 8 + + 57 -> // Dense intensity freezing drizzle + 8 + + 61 -> // Slight intensity rain + 9 + + 63 -> // Moderate intensity rain + 11 + + 65 -> // Heavy intensity rain + 12 + + 66 -> // Light intensity freezing rain + 10 + + 67 -> // Heavy intensity freezing rain + 10 + + 71 -> // Slight intensity snowfall + 14 + + 73 -> // Moderate intensity snowfall + 16 + + 75 -> // Heavy intensity snowfall + 43 + + 77 -> // Snow grains + 16 + + 80 -> // Slight intensity rain showers + 11 + + 81 -> // Moderate intensity rain showers + 40 + + 82 -> // Violent intensity rain showers + 40 + + 85 -> // Slight intensity snow showers + 14 + + 86 -> // Heavy intensity snow showers + 43 + + 95 -> // Slight or moderate thunderstorm + 4 + + 96, 99 -> // Thunderstorm with heavy hail + 38 + + else -> // Unknown + -1 + } + } + + override fun shouldRetry(): Boolean { + return false + } + + companion object { + private const val TAG = "OpenWeatherMapProvider" + + private const val FORECAST_DAYS = 5 + private const val URL_WEATHER = "https://api.open-meteo.com/v1/forecast?" + private const val PART_COORDINATES = "latitude=%f&longitude=%f" + private const val PART_PARAMETERS = + "%s&hourly=relativehumidity_2m&daily=weathercode,temperature_2m_max,temperature_2m_min¤t_weather=true&temperature_unit=%s&windspeed_unit=%s&timezone=%s&past_days=1&models=best_match,gfs_seamless" + + + private fun getWeatherDescription(code: Int): String { + return when (code) { + 0 -> "Clear sky" + 1 -> "Mainly clear" + 2 -> "Partly cloudy" + 3 -> "Overcast" + 45 -> "Fog" + 48 -> "Depositing rime fog" + 51 -> "Light intensity drizzle" + 53 -> "Moderate intensity drizzle" + 55 -> "Dense intensity drizzle" + 56 -> "Light intensity freezing drizzle" + 57 -> "Dense intensity freezing drizzle" + 61 -> "Slight intensity rain" + 63 -> "Moderate intensity rain" + 65 -> "Heavy intensity rain" + 66 -> "Light intensity freezing rain" + 67 -> "Heavy intensity freezing rain" + 71 -> "Slight intensity snowfall" + 73 -> "Moderate intensity snowfall" + 75 -> "Heavy intensity snowfall" + 77 -> "Snow grains" + 80 -> "Slight intensity rain showers" + 81 -> "Moderate intensity rain showers" + 82 -> "Violent intensity rain showers" + 85 -> "Slight intensity snow showers" + 86 -> "Heavy intensity snow showers" + 95 -> "Slight or moderate thunderstorm" + 96 -> "Thunderstorm with slight hail" + 99 -> "Thunderstorm with heavy hail" + else -> "Unknown" + } + } + + @Throws(JSONException::class) + private fun getCurrentHumidity(hourlyJson: JSONObject): Float { + val currentHour = + SimpleDateFormat("yyyy-MM-dd'T'HH", Locale.US).format(Calendar.getInstance().time) + val hourlyTimes = hourlyJson.getJSONArray("time") + val hourlyHumidity = hourlyJson.getJSONArray("relativehumidity_2m_best_match") + + var currentIndex = 36 + for (i in 0 until hourlyTimes.length()) if (hourlyTimes.getString(i) + .startsWith(currentHour) + ) { + currentIndex = i + break + } + + return hourlyHumidity.getDouble(currentIndex).toFloat() + } + + // OpenWeatherMap sometimes returns temperatures in Kelvin even if we ask it + // for deg C or deg F. Detect this and convert accordingly. + private fun sanitizeTemperature(value: Double, metric: Boolean): Float { + // threshold chosen to work for both C and F. 170 deg F is hotter + // than the hottest place on earth. + var value = value + if (value > 170) { + // K -> deg C + value -= 273.15 + if (!metric) { + // deg C -> deg F + value = (value * 1.8) + 32 + } + } + return value.toFloat() + } + + private val LANGUAGE_CODE_MAPPING = HashMap() + + init { + LANGUAGE_CODE_MAPPING["bg-"] = "bg" + LANGUAGE_CODE_MAPPING["de-"] = "de" + LANGUAGE_CODE_MAPPING["es-"] = "sp" + LANGUAGE_CODE_MAPPING["fi-"] = "fi" + LANGUAGE_CODE_MAPPING["fr-"] = "fr" + LANGUAGE_CODE_MAPPING["it-"] = "it" + LANGUAGE_CODE_MAPPING["nl-"] = "nl" + LANGUAGE_CODE_MAPPING["pl-"] = "pl" + LANGUAGE_CODE_MAPPING["pt-"] = "pt" + LANGUAGE_CODE_MAPPING["ro-"] = "ro" + LANGUAGE_CODE_MAPPING["ru-"] = "ru" + LANGUAGE_CODE_MAPPING["se-"] = "se" + LANGUAGE_CODE_MAPPING["tr-"] = "tr" + LANGUAGE_CODE_MAPPING["uk-"] = "ua" + LANGUAGE_CODE_MAPPING["zh-CN"] = "zh_cn" + LANGUAGE_CODE_MAPPING["zh-TW"] = "zh_tw" + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/EntryList.kt b/app/src/main/java/com/drdisagree/iconify/xposed/EntryList.kt index f51d8f89d..85c42ceaa 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/EntryList.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/EntryList.kt @@ -11,6 +11,7 @@ import com.drdisagree.iconify.xposed.modules.HeaderClock import com.drdisagree.iconify.xposed.modules.HeaderImage import com.drdisagree.iconify.xposed.modules.IconUpdater import com.drdisagree.iconify.xposed.modules.LockscreenClock +import com.drdisagree.iconify.xposed.modules.LockscreenWeather import com.drdisagree.iconify.xposed.modules.Miscellaneous import com.drdisagree.iconify.xposed.modules.QSTransparency import com.drdisagree.iconify.xposed.modules.QuickSettings @@ -37,6 +38,7 @@ object EntryList { HeaderClock::class.java, HeaderImage::class.java, LockscreenClock::class.java, + LockscreenWeather::class.java, Miscellaneous::class.java, QSTransparency::class.java, QuickSettings::class.java, diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt new file mode 100644 index 000000000..b3183e1ac --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt @@ -0,0 +1,176 @@ +package com.drdisagree.iconify.xposed.modules + +import android.content.Context +import android.graphics.Color +import android.view.View +import android.view.ViewGroup +import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS +import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_LEFT +import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_TOP +import com.drdisagree.iconify.common.Preferences.WEATHER_ICON_SIZE +import com.drdisagree.iconify.common.Preferences.WEATHER_SHOW_CONDITION +import com.drdisagree.iconify.common.Preferences.WEATHER_SHOW_HUMIDITY +import com.drdisagree.iconify.common.Preferences.WEATHER_SHOW_LOCATION +import com.drdisagree.iconify.common.Preferences.WEATHER_SHOW_WIND +import com.drdisagree.iconify.common.Preferences.WEATHER_STYLE +import com.drdisagree.iconify.common.Preferences.WEATHER_SWITCH +import com.drdisagree.iconify.common.Preferences.WEATHER_TEXT_COLOR +import com.drdisagree.iconify.common.Preferences.WEATHER_TEXT_COLOR_SWITCH +import com.drdisagree.iconify.common.Preferences.WEATHER_TEXT_SIZE +import com.drdisagree.iconify.config.XPrefs.Xprefs +import com.drdisagree.iconify.xposed.ModPack +import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.setMargins +import com.drdisagree.iconify.xposed.views.CurrentWeatherView +import de.robv.android.xposed.XC_MethodHook +import de.robv.android.xposed.XposedBridge.hookAllMethods +import de.robv.android.xposed.XposedHelpers.findClass +import de.robv.android.xposed.XposedHelpers.getObjectField +import de.robv.android.xposed.callbacks.XC_LoadPackage + +class LockscreenWeather(context: Context?) : ModPack(context!!) { + + private var weatherEnabled = false + private var weatherShowLocation = true + private var weatherShowCondition = true + private var weatherShowHumidity = false + private var weatherShowWind = false + private var weatherCustomColor = false + private var weatherColor = Color.WHITE + private var weatherStartPadding = 0 + private var weatherTextSize:Int = 16 + private var weatherImageSize:Int = 18 + private var mCustomMargins = false + private var mLeftMargin = 0 + private var mTopMargin:Int = 0 + private var mWeatherBackground = 0 + + private var mStatusViewContainer: ViewGroup? = null + + + override fun updatePrefs(vararg key: String) { + if (Xprefs == null) return + + weatherEnabled = Xprefs!!.getBoolean(WEATHER_SWITCH, false) + weatherShowLocation = Xprefs!!.getBoolean(WEATHER_SHOW_LOCATION, true) + weatherShowCondition = Xprefs!!.getBoolean(WEATHER_SHOW_CONDITION, true) + weatherShowHumidity = Xprefs!!.getBoolean(WEATHER_SHOW_HUMIDITY, false) + weatherShowWind = Xprefs!!.getBoolean(WEATHER_SHOW_WIND, false) + weatherCustomColor = Xprefs!!.getBoolean(WEATHER_TEXT_COLOR_SWITCH, false) + weatherColor = Xprefs!!.getInt(WEATHER_TEXT_COLOR, Color.WHITE) + weatherTextSize = Xprefs!!.getInt(WEATHER_TEXT_SIZE, 16) + weatherImageSize = Xprefs!!.getInt(WEATHER_ICON_SIZE, 18) + mCustomMargins = Xprefs!!.getBoolean(WEATHER_CUSTOM_MARGINS, false) + mLeftMargin = Xprefs!!.getInt(WEATHER_CUSTOM_MARGINS_TOP, 0) + mTopMargin = Xprefs!!.getInt(WEATHER_CUSTOM_MARGINS_LEFT, 0) + mWeatherBackground = Xprefs!!.getInt(WEATHER_STYLE, 0) + + if (key.isNotEmpty() && + (key[0] == (WEATHER_SHOW_LOCATION) || + key[0] == (WEATHER_SHOW_CONDITION) || + key[0] == (WEATHER_SHOW_HUMIDITY) || + key[0] == (WEATHER_SHOW_WIND) || + key[0] == (WEATHER_TEXT_COLOR_SWITCH) || + key[0] == (WEATHER_TEXT_COLOR) || + key[0] == (WEATHER_TEXT_SIZE) || + key[0] == (WEATHER_ICON_SIZE) || + key[0] == (WEATHER_STYLE))) { + updateWeatherView() + } + + } + + override fun handleLoadPackage(loadPackageParam: XC_LoadPackage.LoadPackageParam) { + + val keyguardStatusViewClass = findClass( + "com.android.keyguard.KeyguardStatusView", + loadPackageParam.classLoader + ) + + hookAllMethods(keyguardStatusViewClass, "onFinishInflate", object : XC_MethodHook() { + override fun afterHookedMethod(param: MethodHookParam) { + if (!weatherEnabled) return + + mStatusViewContainer = getObjectField( + param.thisObject, + "mStatusViewContainer" + ) as ViewGroup + + placeWeatherView() + + } + }) + } + + private fun placeWeatherView() { + try { + val currentWeatherView: CurrentWeatherView = + CurrentWeatherView.getInstance(mContext, LOCKSCREEN_WEATHER) + try { + (currentWeatherView.parent as ViewGroup).removeView(currentWeatherView) + } catch (ignored: Throwable) { + } + mStatusViewContainer!!.addView(currentWeatherView) + refreshWeatherView(currentWeatherView) + updateMargins(currentWeatherView) + } catch (ignored: Throwable) { + } + } + + private fun updateMargins(weatherView: CurrentWeatherView?) { + if (weatherView == null) return + if (mCustomMargins) { + setMargins( + weatherView, + mContext, + mTopMargin, + mLeftMargin, + 0, + 0 + ) + } else { + setMargins( + weatherView, + mContext, + 0, + 0, + 0, + 0 + ) + } + } + + private fun refreshWeatherView(currentWeatherView: CurrentWeatherView?) { + if (currentWeatherView == null) return + currentWeatherView.updateSizes( + weatherTextSize, + weatherImageSize, + LOCKSCREEN_WEATHER + ) + currentWeatherView.updateColors( + if (weatherCustomColor) weatherColor else Color.WHITE, + LOCKSCREEN_WEATHER + ) + currentWeatherView.updateWeatherSettings( + weatherShowLocation, + weatherShowCondition, + weatherShowHumidity, + weatherShowWind, + LOCKSCREEN_WEATHER + ) + currentWeatherView.visibility = if (weatherEnabled) View.VISIBLE else View.GONE + currentWeatherView.updateWeatherBg( + mWeatherBackground, + LOCKSCREEN_WEATHER + ) + updateMargins(currentWeatherView) + } + + private fun updateWeatherView() { + refreshWeatherView(CurrentWeatherView.getInstance(LOCKSCREEN_WEATHER)) + } + + companion object { + const val LOCKSCREEN_WEATHER = "iconify_ls_weather" + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/views/CurrentWeatherView.kt b/app/src/main/java/com/drdisagree/iconify/xposed/views/CurrentWeatherView.kt new file mode 100644 index 000000000..30a1aded1 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/xposed/views/CurrentWeatherView.kt @@ -0,0 +1,514 @@ +package com.drdisagree.iconify.xposed.views + +import android.annotation.SuppressLint +import android.content.Context +import android.content.pm.PackageManager +import android.content.res.Resources +import android.graphics.drawable.Drawable +import android.text.TextUtils +import android.util.Log +import android.util.TypedValue +import android.view.Gravity +import android.widget.ImageView +import android.widget.LinearLayout +import android.widget.TextView +import androidx.core.content.ContextCompat +import androidx.core.content.res.ResourcesCompat +import com.drdisagree.iconify.BuildConfig +import com.drdisagree.iconify.R +import com.drdisagree.iconify.ui.utils.ViewHelper.applyTextSizeRecursively +import com.drdisagree.iconify.ui.utils.ViewHelper.setTextRecursively +import com.drdisagree.iconify.utils.OmniJawsClient +import com.drdisagree.iconify.xposed.HookRes.Companion.modRes +import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.findViewWithTagAndChangeColor +import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.setMargins +import de.robv.android.xposed.XposedBridge +import java.util.Locale +import java.util.function.Consumer + +@SuppressLint("ViewConstructor") +class CurrentWeatherView(context: Context, name: String) : LinearLayout(context), + OmniJawsClient.OmniJawsObserver { + private var mCurrentImage: ImageView? = null + private var mHumImage: ImageView? = null + private var mWindImage: ImageView? = null + private val mWeatherClient: OmniJawsClient? + private var mWeatherInfo: OmniJawsClient.WeatherInfo? = null + private var mLeftText: TextView? = null + private var mRightText: TextView? = null + private var mWeatherText: TextView? = null // Weather Layout + private var mHumText: TextView? = null + private var mWindText: TextView? = null + private val mWeatherLayout: LinearLayout? = null + private var mHumLayout: LinearLayout? = null + private var mWindLayout: LinearLayout? = null + private var mHumDrawable: Drawable? = null + private var mWindDrawable: Drawable? = null + private var mWeatherBgSelection = 0 + + private var mShowWeatherLocation = false + private var mShowWeatherText = false + private var mShowWeatherHumidity = false + private var mShowWeatherWind = false + private var mWeatherHorPadding = 0 + private var mWeatherVerPadding = 0 + private val mContext: Context + private var appContext: Context? = null + + init { + instances.add(arrayOf(this, name)) + mContext = context + try { + appContext = context.createPackageContext( + BuildConfig.APPLICATION_ID, + Context.CONTEXT_IGNORE_SECURITY + ) + } catch (ignored: PackageManager.NameNotFoundException) { + } + mWeatherClient = OmniJawsClient(appContext, true) + + inflateView() + + enableUpdates() + + } + + private fun inflateView() { + inflate(appContext, R.layout.view_current_weather, this) + setupViews() + } + + private fun setupViews() { + mLeftText = findViewById(R.id.leftText) + mCurrentImage = findViewById(R.id.currentImage) + mRightText = findViewById(R.id.rightText) + mWeatherText = findViewById(R.id.weatherText) + mHumLayout = findViewById(R.id.humLayout) + mHumImage = findViewById(R.id.humImage) + mHumText = findViewById(R.id.humText) + mWindLayout = findViewById(R.id.windLayout) + mWindImage = findViewById(R.id.windImage) + mWindText = findViewById(R.id.windText) + + mWindDrawable = ContextCompat.getDrawable( + appContext!!, + R.drawable.ic_wind_symbol + ) + + mHumDrawable = ContextCompat.getDrawable( + appContext!!, + R.drawable.ic_humidity_symbol + ) + } + + fun updateSizes(weatherTextSize: Int, weatherImageSize: Int, name: String) { + if (instances.isEmpty()) return + updateIconsSize(weatherImageSize, name) + instances + .stream() + .filter { obj: Array -> + obj[1] == name + } + .forEach { obj: Array -> + applyTextSizeRecursively( + obj[0] as CurrentWeatherView, + weatherTextSize + ) + } + } + + fun updateColors(color: Int, name: String) { + if (instances.isEmpty()) return + instances + .stream() + .filter { obj: Array -> + obj[1] == name + } + .forEach { obj: Array -> + val instance = obj[0] as CurrentWeatherView + findViewWithTagAndChangeColor(instance, "text", color) + } + } + + private fun enableUpdates() { + XposedBridge.log(TAG + "enableUpdates") + if (mWeatherClient != null) { + mWeatherClient.addObserver(this) + //WeatherScheduler.scheduleUpdateNow(mContext); + queryAndUpdateWeather() + } + } + + fun disableUpdates() { + mWeatherClient?.removeObserver(this) + } + + private fun setErrorView(errorReason: Int) { + var reQuery = false + val errorText = when (errorReason) { + OmniJawsClient.EXTRA_ERROR_DISABLED -> modRes.getString(R.string.omnijaws_service_disabled) + OmniJawsClient.EXTRA_ERROR_NO_PERMISSIONS -> modRes.getString(R.string.omnijaws_service_error_permissions) + else -> "" + } + if (!TextUtils.isEmpty(errorText)) { + mLeftText!!.text = errorText + } else { + reQuery = true + } + if (reQuery) { + queryAndUpdateWeather() + } else { + setTextRecursively(this, "") + mCurrentImage!!.setImageDrawable(null) + mHumImage!!.setImageDrawable(null) + mWindImage!!.setImageDrawable(null) + } + } + + override fun weatherError(errorReason: Int) { + // Show only Disabled and Permission errors + XposedBridge.log(TAG + "weatherError " + errorReason) + if (errorReason == OmniJawsClient.EXTRA_ERROR_DISABLED) { + mWeatherInfo = null + } + setErrorView(errorReason) + } + + override fun weatherUpdated() { + queryAndUpdateWeather() + } + + override fun updateSettings() { + queryAndUpdateWeather() + } + + @SuppressLint("SetTextI18n") + private fun queryAndUpdateWeather() { + try { + if (mWeatherClient == null || !mWeatherClient.isOmniJawsEnabled) { + setErrorView(2) + return + } + mWeatherClient.queryWeather() + mWeatherInfo = mWeatherClient.getWeatherInfo() + if (mWeatherInfo != null) { + var formattedCondition: String = mWeatherInfo!!.condition.toString() + if (formattedCondition.lowercase(Locale.getDefault()).contains("clouds")) { + formattedCondition = modRes.getString(R.string.weather_condition_clouds) + } else if (formattedCondition.lowercase(Locale.getDefault()).contains("rain")) { + formattedCondition = modRes.getString(R.string.weather_condition_rain) + } else if (formattedCondition.lowercase(Locale.getDefault()).contains("clear")) { + formattedCondition = modRes.getString(R.string.weather_condition_clear) + } else if (formattedCondition.lowercase(Locale.getDefault()).contains("storm")) { + formattedCondition = modRes.getString(R.string.weather_condition_storm) + } else if (formattedCondition.lowercase(Locale.getDefault()).contains("snow")) { + formattedCondition = modRes.getString(R.string.weather_condition_snow) + } else if (formattedCondition.lowercase(Locale.getDefault()).contains("wind")) { + formattedCondition = modRes.getString(R.string.weather_condition_wind) + } else if (formattedCondition.lowercase(Locale.getDefault()).contains("mist")) { + formattedCondition = modRes.getString(R.string.weather_condition_mist) + } + val d: Drawable = + mWeatherClient.getWeatherConditionImage(mWeatherInfo!!.conditionCode) + mCurrentImage!!.setImageDrawable(d) + mRightText!!.text = mWeatherInfo!!.temp + " " + mWeatherInfo!!.tempUnits + mLeftText!!.text = mWeatherInfo!!.city + mLeftText!!.visibility = if (mShowWeatherLocation) VISIBLE else GONE + mWeatherText!!.text = " · $formattedCondition" + mWeatherText!!.visibility = if (mShowWeatherText) VISIBLE else GONE + + mHumImage!!.setImageDrawable(mHumDrawable) + mHumText!!.text = mWeatherInfo!!.humidity + mHumLayout!!.visibility = if (mShowWeatherHumidity) VISIBLE else GONE + + mWindImage!!.setImageDrawable(mWindDrawable) + mWindText!!.text = ((mWeatherInfo!!.windDirection + " " + mWeatherInfo!!.pinWheel) + " · " + mWeatherInfo!!.windSpeed) + " " + mWeatherInfo!!.windUnits + mWindLayout!!.visibility = if (mShowWeatherWind) VISIBLE else GONE + } + } catch (e: Exception) { + XposedBridge.log(TAG + "Weather query failed" + e.message) + Log.e(TAG, "Weather query failed", e) + } + } + + fun updateWeatherBg(selection: Int, name: String) { + if (instances.isEmpty()) return + instances + .stream() + .filter { obj: Array -> + obj[1] == name + } + .forEach { obj: Array -> + val instance = obj[0] as CurrentWeatherView + instance.mWeatherBgSelection = selection + instance.updateWeatherBg() + } + } + + fun reloadWeatherBg() { + if (instances.isEmpty()) return + instances.forEach(Consumer { obj: Array -> + val instance = obj[0] as CurrentWeatherView + instance.updateWeatherBg() + }) + } + + private fun updateWeatherBg() { + var bg: Drawable? = null + try { + appContext = mContext.createPackageContext( + BuildConfig.APPLICATION_ID, + Context.CONTEXT_IGNORE_SECURITY + ) + } catch (ignored: PackageManager.NameNotFoundException) { + } + when (mWeatherBgSelection) { + 0 -> { + bg = null + mWeatherHorPadding = 0 + mWeatherVerPadding = 0 + } + + 1 -> { + bg = ResourcesCompat.getDrawable( + appContext!!.resources, + R.drawable.date_box_str_border, + appContext!!.theme + ) + mWeatherHorPadding = Math.round( + TypedValue.applyDimension( + TypedValue.COMPLEX_UNIT_PX, + modRes.getDimensionPixelSize(R.dimen.widget_date_box_padding_hor).toFloat(), + mContext.resources.displayMetrics + ) + ) + mWeatherVerPadding = Math.round( + TypedValue.applyDimension( + TypedValue.COMPLEX_UNIT_PX, + modRes.getDimensionPixelSize(R.dimen.widget_date_box_padding_ver).toFloat(), + mContext.resources.displayMetrics + ) + ) + } + + 2 -> { + bg = ResourcesCompat.getDrawable( + appContext!!.resources, + R.drawable.date_str_border, + appContext!!.theme + ) + mWeatherHorPadding = Math.round( + TypedValue.applyDimension( + TypedValue.COMPLEX_UNIT_PX, + modRes.getDimensionPixelSize(R.dimen.widget_date_box_padding_hor).toFloat(), + mContext.resources.displayMetrics + ) + ) + mWeatherVerPadding = Math.round( + TypedValue.applyDimension( + TypedValue.COMPLEX_UNIT_PX, + modRes.getDimensionPixelSize(R.dimen.widget_date_box_padding_ver).toFloat(), + mContext.resources.displayMetrics + ) + ) + } + + 3 -> { + bg = ResourcesCompat.getDrawable( + appContext!!.resources, + R.drawable.ambient_indication_pill_background, + appContext!!.theme + ) + mWeatherHorPadding = Math.round( + TypedValue.applyDimension( + TypedValue.COMPLEX_UNIT_PX, + modRes.getDimensionPixelSize(R.dimen.q_nowplay_pill_padding_hor).toFloat(), + mContext.resources.displayMetrics + ) + ) + mWeatherVerPadding = Math.round( + TypedValue.applyDimension( + TypedValue.COMPLEX_UNIT_PX, + modRes.getDimensionPixelSize(R.dimen.q_nowplay_pill_padding_ver).toFloat(), + mContext.resources.displayMetrics + ) + ) + } + + 4, 5 -> { + bg = ResourcesCompat.getDrawable( + appContext!!.resources, + R.drawable.date_str_accent, + appContext!!.theme + ) + mWeatherHorPadding = Math.round( + TypedValue.applyDimension( + TypedValue.COMPLEX_UNIT_PX, + modRes.getDimensionPixelSize(R.dimen.widget_date_accent_box_padding_hor).toFloat(), + mContext.resources.displayMetrics + ) + ) + mWeatherVerPadding = Math.round( + TypedValue.applyDimension( + TypedValue.COMPLEX_UNIT_PX, + modRes.getDimensionPixelSize(R.dimen.widget_date_accent_box_padding_ver).toFloat(), + mContext.resources.displayMetrics + ) + ) + } + + 6 -> { + bg = ResourcesCompat.getDrawable( + appContext!!.resources, + R.drawable.date_str_gradient, + appContext!!.theme + ) + mWeatherHorPadding = Math.round( + TypedValue.applyDimension( + TypedValue.COMPLEX_UNIT_PX, + modRes.getDimensionPixelSize(R.dimen.widget_date_accent_box_padding_hor).toFloat(), + mContext.resources.displayMetrics + ) + ) + mWeatherVerPadding = Math.round( + TypedValue.applyDimension( + TypedValue.COMPLEX_UNIT_PX, + modRes.getDimensionPixelSize(R.dimen.widget_date_accent_box_padding_ver).toFloat(), + mContext.resources.displayMetrics + ) + ) + } + + 7 -> { + bg = ResourcesCompat.getDrawable( + appContext!!.resources, + R.drawable.date_str_borderacc, + appContext!!.theme + ) + mWeatherHorPadding = Math.round( + TypedValue.applyDimension( + TypedValue.COMPLEX_UNIT_PX, + modRes.getDimensionPixelSize(R.dimen.widget_date_accent_box_padding_hor).toFloat(), + mContext.resources.displayMetrics + ) + ) + mWeatherVerPadding = Math.round( + TypedValue.applyDimension( + TypedValue.COMPLEX_UNIT_PX, + modRes.getDimensionPixelSize(R.dimen.widget_date_accent_box_padding_ver).toFloat(), + mContext.resources.displayMetrics + ) + ) + } + + 8 -> { + bg = ResourcesCompat.getDrawable( + appContext!!.resources, + R.drawable.date_str_bordergrad, + appContext!!.theme + ) + mWeatherHorPadding = Math.round( + TypedValue.applyDimension( + TypedValue.COMPLEX_UNIT_PX, + modRes.getDimensionPixelSize(R.dimen.widget_date_accent_box_padding_hor).toFloat(), + mContext.resources.displayMetrics + ) + ) + mWeatherVerPadding = Math.round( + TypedValue.applyDimension( + TypedValue.COMPLEX_UNIT_PX, + modRes.getDimensionPixelSize(R.dimen.widget_date_accent_box_padding_ver).toFloat(), + mContext.resources.displayMetrics + ) + ) + } + + else -> {} + } + setViewBackground(bg, if ((bg != null && mWeatherBgSelection == 5)) 160 else 255) + setPadding(mWeatherHorPadding, mWeatherVerPadding, mWeatherHorPadding, mWeatherVerPadding) + } + + private fun setViewBackground(drawRes: Drawable?, bgAlpha: Int) { + drawRes?.mutate() + background = drawRes + if (drawRes != null) background.alpha = bgAlpha + } + + fun updateWeatherSettings( + showLocation: Boolean, showText: Boolean, + showHumidity: Boolean, showWind: Boolean, name: String + ) { + if (BuildConfig.DEBUG) XposedBridge.log(TAG + "updateWeatherSettings " + (instances.isEmpty())) + instances.stream() + .filter { obj: Array -> + obj[1] == name + } + .forEach { obj: Array -> + val instance = obj[0] as CurrentWeatherView + instance.mShowWeatherLocation = showLocation + instance.mShowWeatherText = showText + instance.mShowWeatherHumidity = showHumidity + instance.mShowWeatherWind = showWind + instance.mLeftText!!.visibility = if (showLocation) VISIBLE else GONE + instance.mWeatherText!!.visibility = if (showText) VISIBLE else GONE + instance.mHumLayout!!.visibility = if (showHumidity) VISIBLE else GONE + instance.mWindLayout!!.visibility = if (showWind) VISIBLE else GONE + instance.updateSettings() + } + } + + companion object { + const val TAG: String = "CurrentWeatherView: " + + val Int.dp: Int + get() = (this * Resources.getSystem().displayMetrics.density + 0.5f).toInt() + + @SuppressLint("StaticFieldLeak") + var instances: ArrayList> = ArrayList() + fun updateIconsSize(size: Int, name: String) { + instances + .stream() + .filter { obj: Array -> + obj[1] == name + } + .forEach { obj: Array -> + val instance = obj[0] as CurrentWeatherView + val params = LayoutParams( + size.dp, + size.dp + ) + params.gravity = Gravity.CENTER_VERTICAL + instance.mCurrentImage!!.layoutParams = params + instance.mHumImage!!.layoutParams = params + instance.mWindImage!!.layoutParams = params + setMargins( + instance.mCurrentImage!!, instance.mContext, + if (instance.mShowWeatherLocation) 1.dp else 2.dp, + 0, + if (instance.mShowWeatherLocation) 1.dp else 2.dp, + 0 + ) + } + } + + fun getInstance(c: Context, name: String): CurrentWeatherView { + for (obj in instances) { + if (obj[1] == name) { + return obj[0] as CurrentWeatherView + } + } + return CurrentWeatherView(c, name) + } + + fun getInstance(name: String): CurrentWeatherView? { + for (obj in instances) { + if (obj[1] == name) { + return obj[0] as CurrentWeatherView + } + } + return null + } + } + +} \ No newline at end of file diff --git a/app/src/main/res/drawable-nodpi/google_0.png b/app/src/main/res/drawable-nodpi/google_0.png new file mode 100644 index 0000000000000000000000000000000000000000..fc9e40efd603620b89ddbaf8146f00d9fa487a88 GIT binary patch literal 961 zcmV;y13vtTP)A9QWu2X!<>lq?@9*mB z>aws*D*ylh5Oh*bQvm+^0(8$?@+&^!z8R$pk}&95MgRZRCt{2mf3QoFbqZU zzTx%%KX$HVvvfBT()}<~sfr$w5I91Xt|XS_*M9Avo7n9W^7%jSvuU+XYbmAHHsQwi z;DK5#WAKKTR=YLkqrLMmVX!%P4zRUS7#{{lTz}FgjW zcsMe!e#v;1mmv_HTvogvb%u+-j0#z5=PYcM2!+?HGfWz<9&ZMWgoUi#D)y8LX?g%E ziK~|nnxY2GRg^9r^~4iN`U<{r_Z$E&SE(kAS2Gp06^9ha|0;cJ9Pc;JJg#i^8Z`b@t_^5fT!z`M7*CBXsarn z_F^4MCNV<7NWMZJMoww0XCWt#!W1u0F|AJKVAxPHbX$snBH*u%qgH_ z2dYe&9mIxl6+##HI7#z3syH$ry8}Gj+XQ#()_sV(!-a0Pw&kIOo~d&RUEAAqc0Ai` z`)45-VU=0rha#p>59E=YI4*kx9*u$I*cTD6p%(rM?hbGS<9j#D3^CT1Ng{fKLS-Gl z@&Vo>hsw}k;O1hI2w_p*avZ*}#|ZifW>uiMi+PG5FbMDvJE!o-2-_-Jcq^CFw5xB` zG(ykQmvUc5Imr;$g$0@ zfw^F7yp_Nl|E6sWKQf6jtjoO#N`{OWYHc?ZbK5oFaWPhcg{Wh1VueIVWb&;qv(q=3 z*e3nEpLQa_#A!LdiAyz2E^os$>1$72|55b^9>fxx8RauIf8;=8pOS{^>zB+oJ;Y(z jE&s_r|FHkHpJ;yoyP+}F-&qZj00000NkvXXu0mjfPPWbJ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_1.png b/app/src/main/res/drawable-nodpi/google_1.png new file mode 100644 index 0000000000000000000000000000000000000000..be0b0130f4ec44dbbfd6c29e721bb3a80e61cfd1 GIT binary patch literal 1274 zcmV5&L{k*Rvz3l~tmZW%c#- z^z`-r)&Tz10RH~|`uh4j$p7Z%=j!U{|Jw%N-{arcv-tSIRF3v zBXm+uQvd<}`~&*@*!pG@Uqm0_ouf~}cvT4m=LI&jZz{;ghoD6?4!z#Y000B+Nkla42@uv+w_KTa^SvIcK;0L{#dh&ZHouT`2j_LWQ8u zCx0bYCk(@<@1ySyZ+~^!PlF(st}inm5r3gh30>`Znr4NRGRv}5t!Lr*c))eDAk8EP zVIc6KiZqywB?#j0(}Hs;nUY$V1Xz)-kD~~Jtegzg8IuozFN_y#Hi96?ER|f=wM#QN zOWy}WiTa$i=p%vgK>{W7E`3Yr_kt47X|?}BkiC(lWS@2G>o^o^N_+HIX`j9(^f^K4 zwBWK=6qiBRoq_p)0Vqy76I&5QQM0`$S!M$Upb5pgX7V!uQox1`fGhar9c4E6o)NkR zq#eMAYZ%&-XBaF~@sk zfz|Yx`boaOa;cc?Bk2ATrVh$N0&UDu9s>Xgs*k{Uw%0yDC1zaJ9N>Qv1Pl_OK_e5y zFp%7;g9H30F@W0ufhijV-Hi$}08TTW-xKY^?RIl|2~08H`mifFwqxl)Y%LfdaOwC} zBB2tL(FX_O(t>^hs}?B;W1$yyW*sO2dEQ6BC5G14Bq%^EA&8&`pgs`tE`rjfD9RdLGn_>wVLMi`%7mo8nz>aaU({Y9ce|y=8+u#mSR8IPeAj;-wdyEOtv!=1LtdWqvBZ8+e&Hf~iM;}4iqadxEmKc0zl?4&Il?CD++jQ{sv z_BNC(j<#(ND`2*b&=edj$}dd<1Ky0e6xFT^ zwA$NDuIH#@PN{zWz*vI*sdP6wUni669O`6&Cx?!KPZ-$>@WnV#E;eAm1Wh2`1W(TW zL#xeZ*kjoOig-Tm0kY$w kBh1+UFMc5yz+C6n{c4D_V)Jl^z{1r`sU{5+S=Ow{{EpYjKlx{02p*qPE!E>{sI93 z{Tb5eU<%26NtHb+x~SRSEK`8>iO2u|14BtfK~#90rB~~ks~`+S5fSgLb{A0J|20p- zMeME>+>;;MwBOD+35f}WoLW&7xWGh1%*U1LDu&h9b&Pkop3T4A)UW{^S)Nq7a;1oF=8!HG#_XbRmI80*D9E z2pJ`iRl)v400z<1h8p`xz(}Q22&O~M-jDDhRf^@Ev3i6~KfWo_B0yV|h7R4dn8ss+ zQ8MTx0=cYthNkp39U3ex1xS#uONK>d8f**DRv$TLGAs4K;!B!mb;K}7li%Ge6Xa*qdwFe?hoV-~?X0XzI{R6rW!=cbm~ z8Zzijh*p9*)wj9BX3uv^L?dyzi#A0&91xj%L@#kCWPu zJw_PLQP^1NZs0oMmpd?ho16Ym_#w7J!>sMP-ad(;|L}f~espVva)2am=8&*U!A!w0 zGT;iFurb1%f`ig#^l^o~qfE|5jpsMV@DPB?u}(WoXD`vm$HE?|(O2;xxG6c*U64^? z*~k&E4YkHr&N+!nfGLsb8UK;d7X8-DKt7{C#IwknL5LQV79fF7LclHoF2vRfF*JeD!H#jUcQpFAMxZ_mQTAuFp568 z#X!k-31&73C;{}p@94JzN)V1;Aei#L1OqC~ad6|lZe2mCRq(_sW5KL{D+EY9pk7~i z3~-X@y>6Ouym^ZD1si6s`+jEs046b?6vj(&BLDyZ07*qoM6N<$f_qQx AW&i*H literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_11.png b/app/src/main/res/drawable-nodpi/google_11.png new file mode 100644 index 0000000000000000000000000000000000000000..c582b6a45d7e1d40390a7bc4de0b30294293a0bd GIT binary patch literal 1030 zcmV+h1o``kP)C%Mf$#6{&(F_Jy6ugUmBhrvrKhNEn6A;$ z(R-DnYNy2M>FHXo)%N!G^z`)Z?(Y2j{65G3>FMd=;o;cW*z?jW<^TWy7j#liQvm$~ z0r~;~(_s$+=gZU}he%SRJ9gEcHp#tq0009)NklJdG82LzAs>TtPJRu}*b0vAKYv57A9>F9--82(*IA#AWm%55Cad9l z5e|o;d6o*Lln_GVC%t8iBs?6Sl}brUsg!t83M69|Dk3IBssxofyEK6ux0Fi$ca|;3B`@L|$U)ukbKIBTv5001B}93khtEHz5g0)u{o$RKXR!I8I@$ z4d8VdOQRzjawr==JCM=?hXIRJI?8_7FEB=W?Lc}7p09~w08d|U47vn!Kdy0|0?***=D89LP z&p)jdD2}^BTdI#Dz`rd3=9g=F)tonMM(SR?`w;Z`+6rjZ3&1DuI}~Z*h$Wm!#7_W6 z{MLlHlvJ6K4;vkxPTRf|cuG_F*T4a6go!oErv9>5V^#9D>2E2-%|?2NThrzj2R9bm z-6CPTNRk9|#weV#qPRLb7G$^^fe72R%6-6z_Z^|(F<;HyyTzDvb9H&naRaM4it6)7 zST0dCSN;Pd2%T}{`8bkregW7AT~{0YfLRB_ zPUUf5KD$oD=8pyDxkl;@K`0{5$E5Nqu0^WGOc!3Fl z(z9P*gJD7*RrScp@9)vjSHIccOh7IFCx1Zv1B}$D%GeA9iU0rr07*qoM6N<$f-4Q? AUH||9 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_12.png b/app/src/main/res/drawable-nodpi/google_12.png new file mode 100644 index 0000000000000000000000000000000000000000..c582b6a45d7e1d40390a7bc4de0b30294293a0bd GIT binary patch literal 1030 zcmV+h1o``kP)C%Mf$#6{&(F_Jy6ugUmBhrvrKhNEn6A;$ z(R-DnYNy2M>FHXo)%N!G^z`)Z?(Y2j{65G3>FMd=;o;cW*z?jW<^TWy7j#liQvm$~ z0r~;~(_s$+=gZU}he%SRJ9gEcHp#tq0009)NklJdG82LzAs>TtPJRu}*b0vAKYv57A9>F9--82(*IA#AWm%55Cad9l z5e|o;d6o*Lln_GVC%t8iBs?6Sl}brUsg!t83M69|Dk3IBssxofyEK6ux0Fi$ca|;3B`@L|$U)ukbKIBTv5001B}93khtEHz5g0)u{o$RKXR!I8I@$ z4d8VdOQRzjawr==JCM=?hXIRJI?8_7FEB=W?Lc}7p09~w08d|U47vn!Kdy0|0?***=D89LP z&p)jdD2}^BTdI#Dz`rd3=9g=F)tonMM(SR?`w;Z`+6rjZ3&1DuI}~Z*h$Wm!#7_W6 z{MLlHlvJ6K4;vkxPTRf|cuG_F*T4a6go!oErv9>5V^#9D>2E2-%|?2NThrzj2R9bm z-6CPTNRk9|#weV#qPRLb7G$^^fe72R%6-6z_Z^|(F<;HyyTzDvb9H&naRaM4it6)7 zST0dCSN;Pd2%T}{`8bkregW7AT~{0YfLRB_ zPUUf5KD$oD=8pyDxkl;@K`0{5$E5Nqu0^WGOc!3Fl z(z9P*gJD7*RrScp@9)vjSHIccOh7IFCx1Zv1B}$D%GeA9iU0rr07*qoM6N<$f-4Q? AUH||9 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_13.png b/app/src/main/res/drawable-nodpi/google_13.png new file mode 100644 index 0000000000000000000000000000000000000000..283e387f2f44753a4c62bf8e43030a45c00413e5 GIT binary patch literal 868 zcmV-q1DpJbP)(mw6w&;#GRd;(9qEJ_4WMx{OIWD+S=MX2d4A@ z000eiQchC<{{98!8PrP1VTCiJna5w@0008hNkli#f<-m&WP`v~03i`N*|huKV{p=O@|AYtGS5Plw$Flz)0 zitRgqo%`X@5;`T3O3)*6c+**lS%4JGa0DrlAYD)LQviB-x(EFY=B5V1%WrsQ5FHHj z6Mkc8Wf7Bj!j~*$!xA<<MwZgXyNn1$3Hk6vC4F`MS+(_az+CEI61jRW7kF+p4E1^yym9E+huQDSiHsXN7y=i zaBoxB`5$%0#2@>;`qKn_S))Z@LO3ps7{YN6x)8cXUq|%|<$0#NbSrqEvUW_2cuU|$ z0k3Q5&CoYj~XjyFC_>2ySO#;JKDMy{i3W$dYijFGqw4nKg z3cIZU&$11jl$SB5DniiOZ%WOg^*&2Pd>ayaEP#iqEMFGBKL4+W20|(4j)EEIhL?`` z=4XGSft?0)d;hKi$WEJu3>!d?X^81;dvxoF9t+(Fik&C}==9(v1q&p*q(JF_9ZNwO ui=As5VWLjS4i=GM=hi6~e{)dJ8}NV4`%;Hldc>Xp0000XqOC literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_14.png b/app/src/main/res/drawable-nodpi/google_14.png new file mode 100644 index 0000000000000000000000000000000000000000..283e387f2f44753a4c62bf8e43030a45c00413e5 GIT binary patch literal 868 zcmV-q1DpJbP)(mw6w&;#GRd;(9qEJ_4WMx{OIWD+S=MX2d4A@ z000eiQchC<{{98!8PrP1VTCiJna5w@0008hNkli#f<-m&WP`v~03i`N*|huKV{p=O@|AYtGS5Plw$Flz)0 zitRgqo%`X@5;`T3O3)*6c+**lS%4JGa0DrlAYD)LQviB-x(EFY=B5V1%WrsQ5FHHj z6Mkc8Wf7Bj!j~*$!xA<<MwZgXyNn1$3Hk6vC4F`MS+(_az+CEI61jRW7kF+p4E1^yym9E+huQDSiHsXN7y=i zaBoxB`5$%0#2@>;`qKn_S))Z@LO3ps7{YN6x)8cXUq|%|<$0#NbSrqEvUW_2cuU|$ z0k3Q5&CoYj~XjyFC_>2ySO#;JKDMy{i3W$dYijFGqw4nKg z3cIZU&$11jl$SB5DniiOZ%WOg^*&2Pd>ayaEP#iqEMFGBKL4+W20|(4j)EEIhL?`` z=4XGSft?0)d;hKi$WEJu3>!d?X^81;dvxoF9t+(Fik&C}==9(v1q&p*q(JF_9ZNwO ui=As5VWLjS4i=GM=hi6~e{)dJ8}NV4`%;Hldc>Xp0000XqOC literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_15.png b/app/src/main/res/drawable-nodpi/google_15.png new file mode 100644 index 0000000000000000000000000000000000000000..283e387f2f44753a4c62bf8e43030a45c00413e5 GIT binary patch literal 868 zcmV-q1DpJbP)(mw6w&;#GRd;(9qEJ_4WMx{OIWD+S=MX2d4A@ z000eiQchC<{{98!8PrP1VTCiJna5w@0008hNkli#f<-m&WP`v~03i`N*|huKV{p=O@|AYtGS5Plw$Flz)0 zitRgqo%`X@5;`T3O3)*6c+**lS%4JGa0DrlAYD)LQviB-x(EFY=B5V1%WrsQ5FHHj z6Mkc8Wf7Bj!j~*$!xA<<MwZgXyNn1$3Hk6vC4F`MS+(_az+CEI61jRW7kF+p4E1^yym9E+huQDSiHsXN7y=i zaBoxB`5$%0#2@>;`qKn_S))Z@LO3ps7{YN6x)8cXUq|%|<$0#NbSrqEvUW_2cuU|$ z0k3Q5&CoYj~XjyFC_>2ySO#;JKDMy{i3W$dYijFGqw4nKg z3cIZU&$11jl$SB5DniiOZ%WOg^*&2Pd>ayaEP#iqEMFGBKL4+W20|(4j)EEIhL?`` z=4XGSft?0)d;hKi$WEJu3>!d?X^81;dvxoF9t+(Fik&C}==9(v1q&p*q(JF_9ZNwO ui=As5VWLjS4i=GM=hi6~e{)dJ8}NV4`%;Hldc>Xp0000XqOC literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_16.png b/app/src/main/res/drawable-nodpi/google_16.png new file mode 100644 index 0000000000000000000000000000000000000000..283e387f2f44753a4c62bf8e43030a45c00413e5 GIT binary patch literal 868 zcmV-q1DpJbP)(mw6w&;#GRd;(9qEJ_4WMx{OIWD+S=MX2d4A@ z000eiQchC<{{98!8PrP1VTCiJna5w@0008hNkli#f<-m&WP`v~03i`N*|huKV{p=O@|AYtGS5Plw$Flz)0 zitRgqo%`X@5;`T3O3)*6c+**lS%4JGa0DrlAYD)LQviB-x(EFY=B5V1%WrsQ5FHHj z6Mkc8Wf7Bj!j~*$!xA<<MwZgXyNn1$3Hk6vC4F`MS+(_az+CEI61jRW7kF+p4E1^yym9E+huQDSiHsXN7y=i zaBoxB`5$%0#2@>;`qKn_S))Z@LO3ps7{YN6x)8cXUq|%|<$0#NbSrqEvUW_2cuU|$ z0k3Q5&CoYj~XjyFC_>2ySO#;JKDMy{i3W$dYijFGqw4nKg z3cIZU&$11jl$SB5DniiOZ%WOg^*&2Pd>ayaEP#iqEMFGBKL4+W20|(4j)EEIhL?`` z=4XGSft?0)d;hKi$WEJu3>!d?X^81;dvxoF9t+(Fik&C}==9(v1q&p*q(JF_9ZNwO ui=As5VWLjS4i=GM=hi6~e{)dJ8}NV4`%;Hldc>Xp0000XqOC literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_17.png b/app/src/main/res/drawable-nodpi/google_17.png new file mode 100644 index 0000000000000000000000000000000000000000..283e387f2f44753a4c62bf8e43030a45c00413e5 GIT binary patch literal 868 zcmV-q1DpJbP)(mw6w&;#GRd;(9qEJ_4WMx{OIWD+S=MX2d4A@ z000eiQchC<{{98!8PrP1VTCiJna5w@0008hNkli#f<-m&WP`v~03i`N*|huKV{p=O@|AYtGS5Plw$Flz)0 zitRgqo%`X@5;`T3O3)*6c+**lS%4JGa0DrlAYD)LQviB-x(EFY=B5V1%WrsQ5FHHj z6Mkc8Wf7Bj!j~*$!xA<<MwZgXyNn1$3Hk6vC4F`MS+(_az+CEI61jRW7kF+p4E1^yym9E+huQDSiHsXN7y=i zaBoxB`5$%0#2@>;`qKn_S))Z@LO3ps7{YN6x)8cXUq|%|<$0#NbSrqEvUW_2cuU|$ z0k3Q5&CoYj~XjyFC_>2ySO#;JKDMy{i3W$dYijFGqw4nKg z3cIZU&$11jl$SB5DniiOZ%WOg^*&2Pd>ayaEP#iqEMFGBKL4+W20|(4j)EEIhL?`` z=4XGSft?0)d;hKi$WEJu3>!d?X^81;dvxoF9t+(Fik&C}==9(v1q&p*q(JF_9ZNwO ui=As5VWLjS4i=GM=hi6~e{)dJ8}NV4`%;Hldc>Xp0000XqOC literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_18.png b/app/src/main/res/drawable-nodpi/google_18.png new file mode 100644 index 0000000000000000000000000000000000000000..283e387f2f44753a4c62bf8e43030a45c00413e5 GIT binary patch literal 868 zcmV-q1DpJbP)(mw6w&;#GRd;(9qEJ_4WMx{OIWD+S=MX2d4A@ z000eiQchC<{{98!8PrP1VTCiJna5w@0008hNkli#f<-m&WP`v~03i`N*|huKV{p=O@|AYtGS5Plw$Flz)0 zitRgqo%`X@5;`T3O3)*6c+**lS%4JGa0DrlAYD)LQviB-x(EFY=B5V1%WrsQ5FHHj z6Mkc8Wf7Bj!j~*$!xA<<MwZgXyNn1$3Hk6vC4F`MS+(_az+CEI61jRW7kF+p4E1^yym9E+huQDSiHsXN7y=i zaBoxB`5$%0#2@>;`qKn_S))Z@LO3ps7{YN6x)8cXUq|%|<$0#NbSrqEvUW_2cuU|$ z0k3Q5&CoYj~XjyFC_>2ySO#;JKDMy{i3W$dYijFGqw4nKg z3cIZU&$11jl$SB5DniiOZ%WOg^*&2Pd>ayaEP#iqEMFGBKL4+W20|(4j)EEIhL?`` z=4XGSft?0)d;hKi$WEJu3>!d?X^81;dvxoF9t+(Fik&C}==9(v1q&p*q(JF_9ZNwO ui=As5VWLjS4i=GM=hi6~e{)dJ8}NV4`%;Hldc>Xp0000XqOC literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_19.png b/app/src/main/res/drawable-nodpi/google_19.png new file mode 100644 index 0000000000000000000000000000000000000000..79202ffbdfafc4c6b060748778c99e192e82b15f GIT binary patch literal 881 zcmV-%1CIQOP)+9=}kB_FNrt0eI-{0S~w6xRH)5*!n_4W1p`}^A3+J`ueBme*a40KXX zQvm+{1N<9A@YQ3&lD-;#LjV8*=Sf6CRCt_?RnKb^K@?sXQj9&#q6cA9n8D*j211*9 zOxa_QP_Y&9P$()MJb9?42%=!Cw9tzu6?zf;(Lzp^T6)N^wt|yFf>@;8TOhan8+@}r zI=izQ@q-+~`|`c_zBlj1vi=)2_2DDKC=R2M@zUFmOHaPM8Noo-^=;pmUBCaSI0-L5 zJ+mo*`LC=33My>~CZv=?lJ19sB>Y{EQK=vp=`G|W(0HFQ8H2GuISGDXizF_EsBW4P z<(?J*3HsZR;CHDOP!e9t@OV8f01}n0Ob%4;r3FBuW8|o3FaDv>P@acRqo@XN;JS|LhL7yR#SP^- z^Z`EP;^G(-up>pK4TN%m!m(1oAn^=RlpJct*~Fl62{#5!Ky4Cj z$XGv9CYu<#N`Me@isI!?J0Uud0R#xO>E&c~q?1ZA5rhJiBqe~vgT7u*F9>_EZ9B=J zF3fhH#%Vf15XA}Zw)J+6ZJ*H)5Ffg(vJrQe(;Gas+x30_%nP7GJL+krm0EIyN)NxS zt$kKl3-NldmDzE`QO!cNa}=Dy@DOVTGB{}Dl}<1RwxjzR#+|apnpco@TXhoSGiNlE$*xMM){%(#Zd7 zAbr>3ucHCK<~c%1tKUpAW{g^O&#|;=)ppGy>w;>0hnrAc$W}O;^62Uzx`3PQY?678 zXvQHL|7BWTZl*S)ZB4HKG^?D`lfI|ksQKrZZX4c~em{Q!3uUWpaqN^`00000NkvXX Hu0mjfD_o;H literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_2.png b/app/src/main/res/drawable-nodpi/google_2.png new file mode 100644 index 0000000000000000000000000000000000000000..fc9e40efd603620b89ddbaf8146f00d9fa487a88 GIT binary patch literal 961 zcmV;y13vtTP)A9QWu2X!<>lq?@9*mB z>aws*D*ylh5Oh*bQvm+^0(8$?@+&^!z8R$pk}&95MgRZRCt{2mf3QoFbqZU zzTx%%KX$HVvvfBT()}<~sfr$w5I91Xt|XS_*M9Avo7n9W^7%jSvuU+XYbmAHHsQwi z;DK5#WAKKTR=YLkqrLMmVX!%P4zRUS7#{{lTz}FgjW zcsMe!e#v;1mmv_HTvogvb%u+-j0#z5=PYcM2!+?HGfWz<9&ZMWgoUi#D)y8LX?g%E ziK~|nnxY2GRg^9r^~4iN`U<{r_Z$E&SE(kAS2Gp06^9ha|0;cJ9Pc;JJg#i^8Z`b@t_^5fT!z`M7*CBXsarn z_F^4MCNV<7NWMZJMoww0XCWt#!W1u0F|AJKVAxPHbX$snBH*u%qgH_ z2dYe&9mIxl6+##HI7#z3syH$ry8}Gj+XQ#()_sV(!-a0Pw&kIOo~d&RUEAAqc0Ai` z`)45-VU=0rha#p>59E=YI4*kx9*u$I*cTD6p%(rM?hbGS<9j#D3^CT1Ng{fKLS-Gl z@&Vo>hsw}k;O1hI2w_p*avZ*}#|ZifW>uiMi+PG5FbMDvJE!o-2-_-Jcq^CFw5xB` zG(ykQmvUc5Imr;$g$0@ zfw^F7yp_Nl|E6sWKQf6jtjoO#N`{OWYHc?ZbK5oFaWPhcg{Wh1VueIVWb&;qv(q=3 z*e3nEpLQa_#A!LdiAyz2E^os$>1$72|55b^9>fxx8RauIf8;=8pOS{^>zB+oJ;Y(z jE&s_r|FHkHpJ;yoyP+}F-&qZj00000NkvXXu0mjfPPWbJ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_20.png b/app/src/main/res/drawable-nodpi/google_20.png new file mode 100644 index 0000000000000000000000000000000000000000..79202ffbdfafc4c6b060748778c99e192e82b15f GIT binary patch literal 881 zcmV-%1CIQOP)+9=}kB_FNrt0eI-{0S~w6xRH)5*!n_4W1p`}^A3+J`ueBme*a40KXX zQvm+{1N<9A@YQ3&lD-;#LjV8*=Sf6CRCt_?RnKb^K@?sXQj9&#q6cA9n8D*j211*9 zOxa_QP_Y&9P$()MJb9?42%=!Cw9tzu6?zf;(Lzp^T6)N^wt|yFf>@;8TOhan8+@}r zI=izQ@q-+~`|`c_zBlj1vi=)2_2DDKC=R2M@zUFmOHaPM8Noo-^=;pmUBCaSI0-L5 zJ+mo*`LC=33My>~CZv=?lJ19sB>Y{EQK=vp=`G|W(0HFQ8H2GuISGDXizF_EsBW4P z<(?J*3HsZR;CHDOP!e9t@OV8f01}n0Ob%4;r3FBuW8|o3FaDv>P@acRqo@XN;JS|LhL7yR#SP^- z^Z`EP;^G(-up>pK4TN%m!m(1oAn^=RlpJct*~Fl62{#5!Ky4Cj z$XGv9CYu<#N`Me@isI!?J0Uud0R#xO>E&c~q?1ZA5rhJiBqe~vgT7u*F9>_EZ9B=J zF3fhH#%Vf15XA}Zw)J+6ZJ*H)5Ffg(vJrQe(;Gas+x30_%nP7GJL+krm0EIyN)NxS zt$kKl3-NldmDzE`QO!cNa}=Dy@DOVTGB{}Dl}<1RwxjzR#+|apnpco@TXhoSGiNlE$*xMM){%(#Zd7 zAbr>3ucHCK<~c%1tKUpAW{g^O&#|;=)ppGy>w;>0hnrAc$W}O;^62Uzx`3PQY?678 zXvQHL|7BWTZl*S)ZB4HKG^?D`lfI|ksQKrZZX4c~em{Q!3uUWpaqN^`00000NkvXX Hu0mjfD_o;H literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_21.png b/app/src/main/res/drawable-nodpi/google_21.png new file mode 100644 index 0000000000000000000000000000000000000000..79202ffbdfafc4c6b060748778c99e192e82b15f GIT binary patch literal 881 zcmV-%1CIQOP)+9=}kB_FNrt0eI-{0S~w6xRH)5*!n_4W1p`}^A3+J`ueBme*a40KXX zQvm+{1N<9A@YQ3&lD-;#LjV8*=Sf6CRCt_?RnKb^K@?sXQj9&#q6cA9n8D*j211*9 zOxa_QP_Y&9P$()MJb9?42%=!Cw9tzu6?zf;(Lzp^T6)N^wt|yFf>@;8TOhan8+@}r zI=izQ@q-+~`|`c_zBlj1vi=)2_2DDKC=R2M@zUFmOHaPM8Noo-^=;pmUBCaSI0-L5 zJ+mo*`LC=33My>~CZv=?lJ19sB>Y{EQK=vp=`G|W(0HFQ8H2GuISGDXizF_EsBW4P z<(?J*3HsZR;CHDOP!e9t@OV8f01}n0Ob%4;r3FBuW8|o3FaDv>P@acRqo@XN;JS|LhL7yR#SP^- z^Z`EP;^G(-up>pK4TN%m!m(1oAn^=RlpJct*~Fl62{#5!Ky4Cj z$XGv9CYu<#N`Me@isI!?J0Uud0R#xO>E&c~q?1ZA5rhJiBqe~vgT7u*F9>_EZ9B=J zF3fhH#%Vf15XA}Zw)J+6ZJ*H)5Ffg(vJrQe(;Gas+x30_%nP7GJL+krm0EIyN)NxS zt$kKl3-NldmDzE`QO!cNa}=Dy@DOVTGB{}Dl}<1RwxjzR#+|apnpco@TXhoSGiNlE$*xMM){%(#Zd7 zAbr>3ucHCK<~c%1tKUpAW{g^O&#|;=)ppGy>w;>0hnrAc$W}O;^62Uzx`3PQY?678 zXvQHL|7BWTZl*S)ZB4HKG^?D`lfI|ksQKrZZX4c~em{Q!3uUWpaqN^`00000NkvXX Hu0mjfD_o;H literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_22.png b/app/src/main/res/drawable-nodpi/google_22.png new file mode 100644 index 0000000000000000000000000000000000000000..79202ffbdfafc4c6b060748778c99e192e82b15f GIT binary patch literal 881 zcmV-%1CIQOP)+9=}kB_FNrt0eI-{0S~w6xRH)5*!n_4W1p`}^A3+J`ueBme*a40KXX zQvm+{1N<9A@YQ3&lD-;#LjV8*=Sf6CRCt_?RnKb^K@?sXQj9&#q6cA9n8D*j211*9 zOxa_QP_Y&9P$()MJb9?42%=!Cw9tzu6?zf;(Lzp^T6)N^wt|yFf>@;8TOhan8+@}r zI=izQ@q-+~`|`c_zBlj1vi=)2_2DDKC=R2M@zUFmOHaPM8Noo-^=;pmUBCaSI0-L5 zJ+mo*`LC=33My>~CZv=?lJ19sB>Y{EQK=vp=`G|W(0HFQ8H2GuISGDXizF_EsBW4P z<(?J*3HsZR;CHDOP!e9t@OV8f01}n0Ob%4;r3FBuW8|o3FaDv>P@acRqo@XN;JS|LhL7yR#SP^- z^Z`EP;^G(-up>pK4TN%m!m(1oAn^=RlpJct*~Fl62{#5!Ky4Cj z$XGv9CYu<#N`Me@isI!?J0Uud0R#xO>E&c~q?1ZA5rhJiBqe~vgT7u*F9>_EZ9B=J zF3fhH#%Vf15XA}Zw)J+6ZJ*H)5Ffg(vJrQe(;Gas+x30_%nP7GJL+krm0EIyN)NxS zt$kKl3-NldmDzE`QO!cNa}=Dy@DOVTGB{}Dl}<1RwxjzR#+|apnpco@TXhoSGiNlE$*xMM){%(#Zd7 zAbr>3ucHCK<~c%1tKUpAW{g^O&#|;=)ppGy>w;>0hnrAc$W}O;^62Uzx`3PQY?678 zXvQHL|7BWTZl*S)ZB4HKG^?D`lfI|ksQKrZZX4c~em{Q!3uUWpaqN^`00000NkvXX Hu0mjfD_o;H literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_23.png b/app/src/main/res/drawable-nodpi/google_23.png new file mode 100644 index 0000000000000000000000000000000000000000..4a4eb7e17da90b72b6c4c53059fef4797048aa6d GIT binary patch literal 784 zcmV+r1MmEaP)VI8=i=hxsHmvk-rkaulC`z9?(XjX{{Hjx^YnJ4cmMzZ40KXX zQvm(_1-yy(*GcsqWL?(zTL1t8hDk(0RCt_?RnKb^K@?utieYnlIf$Se$cVW(hJ_K* z;w555DH0+yQ0d7?0|gI?f?f*2BB-DTkxD=$hP(g;kiUvXUkUfZ$Z2pGM z{zx)AJG<@2hQPj$?|t*;y|^e`4P)nO_sx~(squ@~izC(_7p|qm z^Y=ywV}#J~kycYy~iM^ggsEYzzqEeGA7DNFqf&Rw{)p(pUzDsAo5&>5>2_d2diNHb= zldCtVOrU73*<9V6+(W(~3ou%89A~f+5stZu6sR%=FrB54G3Uy0j7s3+XD1*Wr^ys8 zo&sPP)_j2`70NAyO@N|bbA3UfQ0{iSuego-Y6X5ypK%L{e|5D7-kjyF^(}xCmhuz< zqupLV4`wH*15<%B-htP!cqLT|fsePgdDp*-sG%ha-9s&a+v?kle6(!SCs;2rP9a1J zRi#TlWOqUj+Ps^hPy(-}>gq^<(OvMigSPresUihM(QWa`aupImQ~Zva>RVI^Bm(o6 z*`JIK3$_F5j|K3!Hyz_=E+0=?v18yF^y!AFyJ*shGdPXebmi(JBomx-;+C4f*&kJ$ z7}k36J@#aI@u7eRtMM(t?T{F>#8xKpH#*Uh*lA9&qFU>7qQ$cc!l$8dNb_=%@L~u> z7={lNeVqZ!OKz!-wSTX)~yix8X-d*m!ya!j@0L zSN{}^^lzlW>i~mZMh4z)-k*#NWW#g@oeYBZq5b-cmI-2!LkOCs9T5kKh<`z2JA-oo O0000VI8=i=hxsHmvk-rkaulC`z9?(XjX{{Hjx^YnJ4cmMzZ40KXX zQvm(_1-yy(*GcsqWL?(zTL1t8hDk(0RCt_?RnKb^K@?utieYnlIf$Se$cVW(hJ_K* z;w555DH0+yQ0d7?0|gI?f?f*2BB-DTkxD=$hP(g;kiUvXUkUfZ$Z2pGM z{zx)AJG<@2hQPj$?|t*;y|^e`4P)nO_sx~(squ@~izC(_7p|qm z^Y=ywV}#J~kycYy~iM^ggsEYzzqEeGA7DNFqf&Rw{)p(pUzDsAo5&>5>2_d2diNHb= zldCtVOrU73*<9V6+(W(~3ou%89A~f+5stZu6sR%=FrB54G3Uy0j7s3+XD1*Wr^ys8 zo&sPP)_j2`70NAyO@N|bbA3UfQ0{iSuego-Y6X5ypK%L{e|5D7-kjyF^(}xCmhuz< zqupLV4`wH*15<%B-htP!cqLT|fsePgdDp*-sG%ha-9s&a+v?kle6(!SCs;2rP9a1J zRi#TlWOqUj+Ps^hPy(-}>gq^<(OvMigSPresUihM(QWa`aupImQ~Zva>RVI^Bm(o6 z*`JIK3$_F5j|K3!Hyz_=E+0=?v18yF^y!AFyJ*shGdPXebmi(JBomx-;+C4f*&kJ$ z7}k36J@#aI@u7eRtMM(t?T{F>#8xKpH#*Uh*lA9&qFU>7qQ$cc!l$8dNb_=%@L~u> z7={lNeVqZ!OKz!-wSTX)~yix8X-d*m!ya!j@0L zSN{}^^lzlW>i~mZMh4z)-k*#NWW#g@oeYBZq5b-cmI-2!LkOCs9T5kKh<`z2JA-oo O0000kitTkSB%B6D{Gug zHgS^7>`NQK51PgBGX~abgSu`AX5p>taBti*=$t)Qkqiu$h6AmbhAwn{`)S@_) zbC9AkOq2Vq0GpBJ7ec1P^#ig;oY7Mf{*m36S|=!&3| z_`XyX=_C*kmr3k@&D{V@-m>W{co?L43A$Sek7Zv>mV3Pn({?O_mtkazSVJEGO`Ys? z>;-%q7y$PHAT36B7Q;Nie=}?&hq8)!?=bfz$&op|&=conFx{jJsec|!H-kr>EHQav zMvl4HLI6%@lCAMs&!FwFXK||iF0zy}a@2@T?pj`~PYAor9SpKsEHn7su{hx}j z{ssSNn#bTDJ+maRp8x;?97#k$RCt{2l)q~fK@`Ui78A64LlEJe#ViLFdx3?8)7Eg6 za*!qjB*lSP2o_?*%0jR(poL(epv5&tE$28vcx#b`c*<=h*WUkHnMh}YqXjbe6bZkyl(>WlZdP^CaSv+-h!1^c$g%0Gp?Q30)#h?j@~>f z>jYOa2cWI{l;+n1KjZfJFFv2KLS56jQB7`&(Be~ zt2_2@4GmS>@gsVr{lS98X1KUi?{XJxo$oso0Jj?V2~--qZR;xPtBv1*mi;2OKm|2=#S02 zIgpmZ%2)u9{fYNk|27psfcO=cvm3QsjFzk**rPZt-~Y#~>0)Loa2l#9O3EDGAV9t%hZvvxlt_K7LO5 zVmjjA%c9t=$JV~ni?k6BKG=K6{v5ljDo*%Y{!2`BF5^OR2E$hpZeG$KH~;_u07*qo IM6N<$g1!1dFaQ7m literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_27.png b/app/src/main/res/drawable-nodpi/google_27.png new file mode 100644 index 0000000000000000000000000000000000000000..2bcffcf3b6f406b2d4d3c9cc1638c2b37ac5c0db GIT binary patch literal 958 zcmV;v13~0s#a2PWLGY7|e`sH^<}krw^`flF9-2%W`8WCjbBf z;7LS5RCt`-SJ`r-Fc1{z;Km2`I$0rEBJlsexHIBd9D^-L?aMY!<*0P4=g>$H^8bRe zAJG~85j}*j_!<+so1TcnsZPmWJ}VA&U1$5~;94L(s?RQx?aL?m3E1$-$&NZO665mD zL9s(1B&A#435e|iGrkiDH}m6DJz|FgO44clT{#HJ;V*wj6+&{I@m(Km5}@-0IDx~a z^}huG&{4IGUq15Tw{lAzM*~{xz)uosUYU>|?8KUWZxQTo~jBfr4FA|R2s z(dLVSB*$d~m`QF#3`i4abtMC0&480I_>CVgf~=&&MWELBV{1xlZ{>1dQF1Y_9E{oE zMy?EMb~8%81yn?tWd+C~mtG2seMNl*Tvz;ptA~@IA)78C?C2AM%ZK90V*z{I4EIw& z3nEUdB&pI;#b3`|`~X?is8^MKQu4-sgc zB_H#KC^>ecdc)_l2p-2R%mjtq^db(08E6Irk)t;P7}+`~$jkE*ult!}jLe=pE&u*K25$UC7Cgg6FNnvL0RpUw zY`$=xyWlMPR1+Tw5<87?b_ChEz}$OZ{G87!7DbLIM2y2D+;;bcsU5Nq$9L~)$Ezfg g2ZTR+5&ft513?s`TF$QmGXMYp07*qoM6N<$f=kQF?EnA( literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_28.png b/app/src/main/res/drawable-nodpi/google_28.png new file mode 100644 index 0000000000000000000000000000000000000000..8952def4df84b5fe7464b67eb17a86cccaff5e4c GIT binary patch literal 1189 zcmV;W1X}xvP))qsC~^}Yt}unXC~IP>%Jr=ESusyO4qEWf2gv7cL?lxviW zZ}-y|iimy0!ocR{=8ubf?Z6HE*c7z1wAk6(_4W1t)&l?61@-jv|JMus(gF7Q{r}hs z|J?=k+4!N!+4Q!TAWtV-R5 zEROU4BJ?PwUTEJwW>atag-1Wp@Q{7W&&e?b9Fuc?>%QGJI$W15y()mzFQu+&cCoj9 zAKr0J$0ra=(u0*sJ&z}Sa|bc6XwuC>10vhmv5UGy$ z_X?hKzA8Z^(D7nSls!NUTwKrZ6%rU8$3~Q5;&NkN8rj zKr94Gh6<}uP|X*XuS>9SP@(`T(6#ZiF@MznIAE*-582X#=bXm=r4V9ed}btwIxQ5! z+g0lF33H)0CF`0Is#OfCo*($On|gw+Y&CTXbk8e^2w7GI;kRJ z45kB^HPQeg)3JbO3&I3}}Umtt53$Jf885iMnwK zV@qzI1Zo}pspC1{Xw)y4b^XAqnFDwxsja~}AL9t3imd~tg~SMi-ggmi@WDc4T9eHU zu*#MJG5`kFft83{(dr&wSdeC7qR!W*fawf;3v_E%(;OIq?FhPZ;#Jp0Q%!AD-JEcb zIp22BH6}(wCJKEL^X&+heKjbMzKo|m0;VL5JF-BenOQ>+;JXwciq`EDNf@!M3 zU=WQzgit>0oOa=y@8d%hu3MRws)qIH_O^^O3oqZb?a-wFRQ}X^L$Ctf+S0A5KXuIc z2Ljck3m}oVpxB*7El}w;=%y10nd8k}_M_WO)w#`R>-%H3YAopR8@t&=WmX zP;Se04HGUH-A^ui&MXv9Ob=hPEb#fO9(Zb^&JKhj79>e+-vif;(&R+Vom~j=$Id-J zX9*xX=XY)GqtmBH2RqpJbnl^Y>;n(I8lRth|0VtcneYbBh;_$300000NkvXXu0mjf D4q!S& literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_29.png b/app/src/main/res/drawable-nodpi/google_29.png new file mode 100644 index 0000000000000000000000000000000000000000..5e6d872d1157eb8b741a27f2aa41641cdf4a6fdc GIT binary patch literal 976 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_31.png b/app/src/main/res/drawable-nodpi/google_31.png new file mode 100644 index 0000000000000000000000000000000000000000..4d379cc0425271b966e71600c941025fd3d170c3 GIT binary patch literal 833 zcmV-H1HSx;P)iyfU%7AnuE)Rfsc)Wr=*A5goB8SgPg00>wbQHw2J?;i2t{Z z|J}5-MgRZ+5Oh*bQvmw|0{USA+fd&}+Z*35NL#w}{adiA&&GHt<(XDhr5ASfL zm^C_tVA!iTa9D}>I0pGjKrlNaPJfaOZ}?RcP688CFZ`Ed;zNM7-vhy9IQS6y1#tWm zhkgOY*73umKyMDzw&-wLe-#Ecp8+HR(Z^3A4`2*)p8y3g79qGEysSVJfYEkkQIrk@ z;9W@&rvs2)VT8G(3`Gfm_!L9C+0uWAb!d+vMF0g40D9S)1@Z_Ep7%^f_sJo^{s!RD zg{Dd>O2PQSA>mYr#=bbPH6|e8AD)7knu3Vy0B$(>&^8^Z2t2tE3LZGPr9ok@;+0Mc zv-qtL1t8pc?@3|#nTNxJ3Qr2o{;CBg5o$Q`q@XAE-3crs{=Ul7_uL2CslRxE6Ny*w zT@!V9aFRm(;)Vl$!~OY$PB=;D1tA6%i=qZ0@+_LbbKGYk#Yd9RW);t6I6UwdJmrF% zK#8DdIjweC7HcPIOt#eaBqTad=%Kc2&}pP}_ zUwEkU5Bn}I2_K{QIy~`DdmhdPekwfR$Upa4i~=*s;pj%S;W7R%eVPv26b4jBCtUwH zKgQ!eO7N=lIK2JUF(7TIy*KUm=;XEmOG!jQRCt`tRWWbWFcgl|E1exNIBYqA6yL-ENOUS7kYK8Sg_|mYiqxqSqTODW z+G7ex_HE6nRCm9UXZt0N6CW#h$nt&pzR%D0ds+6st=At;PoI9=3GaVhZEa6N2Fv5F+=-}8OMUY8?ztIT+NjG~bcHn&-SlR$9=?O1k2QJw|I;?c7aR{Ofx}hzZmJ|M`gF<*p!gMdH--`B~K9`Kk6TE zmBPd0%?@r79$bXyKVy7i0t1IE`&3ROc>ZhH#IDB@03zyx&&Lux{}DG*T}2FDt5LUp zADN)RqZr3#UIzw1HEHJA-lAr7CX7|>WE|i?5lv|+jO9g}7$`WBzHb0W(wwiZk|W6u rwF;-&rrtHwGCLNZeg4Z>{8#G_D1Bx|VaB{p00000NkvXXu0mjfy2?2| literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_33.png b/app/src/main/res/drawable-nodpi/google_33.png new file mode 100644 index 0000000000000000000000000000000000000000..4d379cc0425271b966e71600c941025fd3d170c3 GIT binary patch literal 833 zcmV-H1HSx;P)iyfU%7AnuE)Rfsc)Wr=*A5goB8SgPg00>wbQHw2J?;i2t{Z z|J}5-MgRZ+5Oh*bQvmw|0{USA+fd&}+Z*35NL#w}{adiA&&GHt<(XDhr5ASfL zm^C_tVA!iTa9D}>I0pGjKrlNaPJfaOZ}?RcP688CFZ`Ed;zNM7-vhy9IQS6y1#tWm zhkgOY*73umKyMDzw&-wLe-#Ecp8+HR(Z^3A4`2*)p8y3g79qGEysSVJfYEkkQIrk@ z;9W@&rvs2)VT8G(3`Gfm_!L9C+0uWAb!d+vMF0g40D9S)1@Z_Ep7%^f_sJo^{s!RD zg{Dd>O2PQSA>mYr#=bbPH6|e8AD)7knu3Vy0B$(>&^8^Z2t2tE3LZGPr9ok@;+0Mc zv-qtL1t8pc?@3|#nTNxJ3Qr2o{;CBg5o$Q`q@XAE-3crs{=Ul7_uL2CslRxE6Ny*w zT@!V9aFRm(;)Vl$!~OY$PB=;D1tA6%i=qZ0@+_LbbKGYk#Yd9RW);t6I6UwdJmrF% zK#8DdIjweC7HcPIOt#eaBqTad=%Kc2&}pP}_ zUwEkU5Bn}I2_K{QIy~`DdmhdPekwfR$Upa4i~=*s;pj%S;W7R%eVPv26b4jBCtUwH zKgQ!eO7N=lIK2JUF(7TIy*KUm=;XEmOG!jQRCt`tRWWbWFcgl|E1exNIBYqA6yL-ENOUS7kYK8Sg_|mYiqxqSqTODW z+G7ex_HE6nRCm9UXZt0N6CW#h$nt&pzR%D0ds+6st=At;PoI9=3GaVhZEa6N2Fv5F+=-}8OMUY8?ztIT+NjG~bcHn&-SlR$9=?O1k2QJw|I;?c7aR{Ofx}hzZmJ|M`gF<*p!gMdH--`B~K9`Kk6TE zmBPd0%?@r79$bXyKVy7i0t1IE`&3ROc>ZhH#IDB@03zyx&&Lux{}DG*T}2FDt5LUp zADN)RqZr3#UIzw1HEHJA-lAr7CX7|>WE|i?5lv|+jO9g}7$`WBzHb0W(wwiZk|W6u rwF;-&rrtHwGCLNZeg4Z>{8#G_D1Bx|VaB{p00000NkvXXu0mjfy2?2| literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_35.png b/app/src/main/res/drawable-nodpi/google_35.png new file mode 100644 index 0000000000000000000000000000000000000000..fbb99c76eb5ab68c973010346ac70174005bae16 GIT binary patch literal 1030 zcmV+h1o``kP)FMc5yz+C6n{c4D_V)Jl^z{1r`sU{5+S=Ow{{EpYjKlx{02p*qPE!E>{sI93 z{Tb5eU<%26NtHb+x~SRSEK`8>iO2u|14BtfK~#90rB~~ks~`+S5fSgLb{A0J|20p- zMeME>+>;;MwBOD+35f}WoLW&7xWGh1%*U1LDu&h9b&Pkop3T4A)UW{^S)Nq7a;1oF=8!HG#_XbRmI80*D9E z2pJ`iRl)v400z<1h8p`xz(}Q22&O~M-jDDhRf^@Ev3i6~KfWo_B0yV|h7R4dn8ss+ zQ8MTx0=cYthNkp39U3ex1xS#uONK>d8f**DRv$TLGAs4K;!B!mb;K}7li%Ge6Xa*qdwFe?hoV-~?X0XzI{R6rW!=cbm~ z8Zzijh*p9*)wj9BX3uv^L?dyzi#A0&91xj%L@#kCWPu zJw_PLQP^1NZs0oMmpd?ho16Ym_#w7J!>sMP-ad(;|L}f~espVva)2am=8&*U!A!w0 zGT;iFurb1%f`ig#^l^o~qfE|5jpsMV@DPB?u}(WoXD`vm$HE?|(O2;xxG6c*U64^? z*~k&E4YkHr&N+!nfGLsb8UK;d7X8-DKt7{C#IwknL5LQV79fF7LclHoF2vRfF*JeD!H#jUcQpFAMxZ_mQTAuFp568 z#X!k-31&73C;{}p@94JzN)V1;Aei#L1OqC~ad6|lZe2mCRq(_sW5KL{D+EY9pk7~i z3~-X@y>6Ouym^ZD1si6s`+jEs046b?6vj(&BLDyZ07*qoM6N<$f_qQx AW&i*H literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_36.png b/app/src/main/res/drawable-nodpi/google_36.png new file mode 100644 index 0000000000000000000000000000000000000000..40a462a09cf2469d8ba82ae9094adc836dd47618 GIT binary patch literal 686 zcmV;f0#W^mP)>`hfX?iQb(dpEy-3bXH!h%StwssQsikpw^1!xSXTULHU4lr5PI=70000E zbW%=J0Q><1V>p(|A?y+AwFhkCQp5lN0v}04K~#90wUxh196=PvAG3GikXS6FNSfK< z45VFl14$|2NZvI-kaI^4!|o%*>xR;r(Ik96Bj{<1F+xUKTre1(dKPfojmq^ z?{It>99_Qj%lDg`V5=ozyhi|jZM0?>5lGZ`bB0t3?Iya8 zF$L>H0Y<^Y01>Q&@eT#rU4FrV8wIcfv;x0XCDVC%E$p=o0$D0EGP-VUjhIQXb&Z7iF2zv@@cNB%S(d6_y3hjWk}wzpba9QyYkoL02aiRfv2_c41`rn U)S{|y9smFU07*qoM6N<$f^SbTrvLx| literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_37.png b/app/src/main/res/drawable-nodpi/google_37.png new file mode 100644 index 0000000000000000000000000000000000000000..6c3cef69f4da85dd8b4fca5842399df1e695ad6e GIT binary patch literal 1323 zcmV+`1=RY9P)+S=NbrLBd8fy~Uz-QC`Yhk~n^Q@f~0R;<;xx3=xd z8-Rz3@bK{Z(h9||M~;zziHnCpx$>W%pJSoFkCBUUl&0UkBvHHT>gwwE(-)|gS<<&P z_4f7u*8%nP^#9cW{QUdp=jZM1>;K#YJjnmw;N_vQvd<|0t5W~`q)keo4gEFUY%yn6X)@ED;wuJZy`Fd$JygRmRZD*mjD0+9Z5t% zRCt_?m)U}KRe`w#`k^ayO#N5->zFs-FiJ71&76AaR^4Uow*($?i>-NHv^>3tf}!Ce;l!$+h->oaMRCQvc)4m27@EQDg(EK! zp{Ilu;MM1(_ z^_p?9zk%8GA%-4s;4dw@Gm=Ox_+|^xOqigk1K}OKaEbEuTb0Vu-LI1ve-HAWmt=TS``KQ3uT%C?diQ=f~` zs}ZLj0L)S!uMEb=HEN7$80|c-4w%543Vjn(^}kxtQb-$P9!5V903f{P2!YYmcudj1 zA)?qBp{@QaujS8Mu1(hl*?I5ln}44N>y|l}o+gF;npAkvXW6ttcAmnWQMehL_pD`5 zwn0raKm}kn8ngX*FgSlholMo@U(2*k8N41a=Ce-)fB<%7vjGPN$^{e-)MEest%D&0 zu!CeBFxd0~c=;ULnEcHdYzTi%)#6{vtX~Cyttzczwcl(&#!xujY^FZy_MkBdug686 z!w{h!0GP$8QzYv5v8o~T-hb=Csdk+z;whw|OI-l+-^Ny}Y8(u9Jzg9Y00O982uDrr z;Jycd0^rnemFXf><=9Dpw(!%e)e_Jn3mBc&7&ieb1?njFu-8tqDHQRr-`jV~MXT?y h=i7T*a$4TH{{z}gFbp8$s)PUl002ovPDHLkV1fipiy{C3 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_38.png b/app/src/main/res/drawable-nodpi/google_38.png new file mode 100644 index 0000000000000000000000000000000000000000..6c3cef69f4da85dd8b4fca5842399df1e695ad6e GIT binary patch literal 1323 zcmV+`1=RY9P)+S=NbrLBd8fy~Uz-QC`Yhk~n^Q@f~0R;<;xx3=xd z8-Rz3@bK{Z(h9||M~;zziHnCpx$>W%pJSoFkCBUUl&0UkBvHHT>gwwE(-)|gS<<&P z_4f7u*8%nP^#9cW{QUdp=jZM1>;K#YJjnmw;N_vQvd<|0t5W~`q)keo4gEFUY%yn6X)@ED;wuJZy`Fd$JygRmRZD*mjD0+9Z5t% zRCt_?m)U}KRe`w#`k^ayO#N5->zFs-FiJ71&76AaR^4Uow*($?i>-NHv^>3tf}!Ce;l!$+h->oaMRCQvc)4m27@EQDg(EK! zp{Ilu;MM1(_ z^_p?9zk%8GA%-4s;4dw@Gm=Ox_+|^xOqigk1K}OKaEbEuTb0Vu-LI1ve-HAWmt=TS``KQ3uT%C?diQ=f~` zs}ZLj0L)S!uMEb=HEN7$80|c-4w%543Vjn(^}kxtQb-$P9!5V903f{P2!YYmcudj1 zA)?qBp{@QaujS8Mu1(hl*?I5ln}44N>y|l}o+gF;npAkvXW6ttcAmnWQMehL_pD`5 zwn0raKm}kn8ngX*FgSlholMo@U(2*k8N41a=Ce-)fB<%7vjGPN$^{e-)MEest%D&0 zu!CeBFxd0~c=;ULnEcHdYzTi%)#6{vtX~Cyttzczwcl(&#!xujY^FZy_MkBdug686 z!w{h!0GP$8QzYv5v8o~T-hb=Csdk+z;whw|OI-l+-^Ny}Y8(u9Jzg9Y00O982uDrr z;Jycd0^rnemFXf><=9Dpw(!%e)e_Jn3mBc&7&ieb1?njFu-8tqDHQRr-`jV~MXT?y h=i7T*a$4TH{{z}gFbp8$s)PUl002ovPDHLkV1fipiy{C3 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_39.png b/app/src/main/res/drawable-nodpi/google_39.png new file mode 100644 index 0000000000000000000000000000000000000000..6c3cef69f4da85dd8b4fca5842399df1e695ad6e GIT binary patch literal 1323 zcmV+`1=RY9P)+S=NbrLBd8fy~Uz-QC`Yhk~n^Q@f~0R;<;xx3=xd z8-Rz3@bK{Z(h9||M~;zziHnCpx$>W%pJSoFkCBUUl&0UkBvHHT>gwwE(-)|gS<<&P z_4f7u*8%nP^#9cW{QUdp=jZM1>;K#YJjnmw;N_vQvd<|0t5W~`q)keo4gEFUY%yn6X)@ED;wuJZy`Fd$JygRmRZD*mjD0+9Z5t% zRCt_?m)U}KRe`w#`k^ayO#N5->zFs-FiJ71&76AaR^4Uow*($?i>-NHv^>3tf}!Ce;l!$+h->oaMRCQvc)4m27@EQDg(EK! zp{Ilu;MM1(_ z^_p?9zk%8GA%-4s;4dw@Gm=Ox_+|^xOqigk1K}OKaEbEuTb0Vu-LI1ve-HAWmt=TS``KQ3uT%C?diQ=f~` zs}ZLj0L)S!uMEb=HEN7$80|c-4w%543Vjn(^}kxtQb-$P9!5V903f{P2!YYmcudj1 zA)?qBp{@QaujS8Mu1(hl*?I5ln}44N>y|l}o+gF;npAkvXW6ttcAmnWQMehL_pD`5 zwn0raKm}kn8ngX*FgSlholMo@U(2*k8N41a=Ce-)fB<%7vjGPN$^{e-)MEest%D&0 zu!CeBFxd0~c=;ULnEcHdYzTi%)#6{vtX~Cyttzczwcl(&#!xujY^FZy_MkBdug686 z!w{h!0GP$8QzYv5v8o~T-hb=Csdk+z;whw|OI-l+-^Ny}Y8(u9Jzg9Y00O982uDrr z;Jycd0^rnemFXf><=9Dpw(!%e)e_Jn3mBc&7&ieb1?njFu-8tqDHQRr-`jV~MXT?y h=i7T*a$4TH{{z}gFbp8$s)PUl002ovPDHLkV1fipiy{C3 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_4.png b/app/src/main/res/drawable-nodpi/google_4.png new file mode 100644 index 0000000000000000000000000000000000000000..be0b0130f4ec44dbbfd6c29e721bb3a80e61cfd1 GIT binary patch literal 1274 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_42.png b/app/src/main/res/drawable-nodpi/google_42.png new file mode 100644 index 0000000000000000000000000000000000000000..25a9756cc7888ef7a5911ee4acd610350f3eda8f GIT binary patch literal 1261 zcmVFjkUG4hlhyV+}weIfuf+M9*~a>87iIYX0019!QchC<{r&#_0t8j!*%o69zXL|o>;^ZJDjs~z z{iyw$>3%N)QRUwCH#&AOU)r~O*8 z&f(01aU^8Y0(iaHmXPp7R#=c_LBDwVqCTB3BwK>J9|TE~j6b7Yj+;%mM1WtnyCyB7 zGAhz0Y^^u;?F4ur2;Pb(B-y3H7^SrkN*P1bFmnMpZ8n=F1%Tg0MoCI3LxcZ9nIgpa zg-1(p!BEcQ_o)$-2?2lBa7ndETN0lwesg-`LO^y*0i5-4O97v$D)WoOZ_d@5@O6e! zF-G??s8ru~&ydeaKs;_Q!~_Fl1H;#B6nArY$Dn(L={!LE#4KJ2DWv8{ABA>`AqWah zXYt6u)Nk*^1Vexhyuky5d<61bL&$u^_Y6rSm=teK>YGo*=6H!;Gk^jX@FNMEAy}p0`g5aFG8<9;eZTbhtk7&N!IdF_fH(a( z7ElH26!4!LGDwUlW96Rw7eUWJb+H}Q;aV4f;3}o{ftp?4!|^1ojls2N0E(#kpb$~@ z%@c5BKnbqP+d5dGfDHtmfvUz=VrW(=kS+v(=avD&=v`>(io?J#3D=$g8J>f%DB$4% z=Z=AjGVzB2d{~em(E~?d;gnNU;P1es!bHlqDYOD^{q~%q=_2TRVufl${+Q|ab zT1QPgGpXR!IPVT=QT&;(0$(sb#$xCT zpVwVi58>&$Jy|p;YHf^Z+d)|1q&U^gYKWPJ2DYMvo&?wu!YX!?xUkjm34w+V!f}FtdNf?Z z!`Ej7RRN{1O6Nie1!;=UTp;^G=*XSDtd6uOR-EK#%jzL@L6X7eCx@E3lsJi XH6z#&&Ghv!00000NkvXXu0mjfA@_jH literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_43.png b/app/src/main/res/drawable-nodpi/google_43.png new file mode 100644 index 0000000000000000000000000000000000000000..283e387f2f44753a4c62bf8e43030a45c00413e5 GIT binary patch literal 868 zcmV-q1DpJbP)(mw6w&;#GRd;(9qEJ_4WMx{OIWD+S=MX2d4A@ z000eiQchC<{{98!8PrP1VTCiJna5w@0008hNkli#f<-m&WP`v~03i`N*|huKV{p=O@|AYtGS5Plw$Flz)0 zitRgqo%`X@5;`T3O3)*6c+**lS%4JGa0DrlAYD)LQviB-x(EFY=B5V1%WrsQ5FHHj z6Mkc8Wf7Bj!j~*$!xA<<MwZgXyNn1$3Hk6vC4F`MS+(_az+CEI61jRW7kF+p4E1^yym9E+huQDSiHsXN7y=i zaBoxB`5$%0#2@>;`qKn_S))Z@LO3ps7{YN6x)8cXUq|%|<$0#NbSrqEvUW_2cuU|$ z0k3Q5&CoYj~XjyFC_>2ySO#;JKDMy{i3W$dYijFGqw4nKg z3cIZU&$11jl$SB5DniiOZ%WOg^*&2Pd>ayaEP#iqEMFGBKL4+W20|(4j)EEIhL?`` z=4XGSft?0)d;hKi$WEJu3>!d?X^81;dvxoF9t+(Fik&C}==9(v1q&p*q(JF_9ZNwO ui=As5VWLjS4i=GM=hi6~e{)dJ8}NV4`%;Hldc>Xp0000XqOC literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_44.png b/app/src/main/res/drawable-nodpi/google_44.png new file mode 100644 index 0000000000000000000000000000000000000000..5e6d872d1157eb8b741a27f2aa41641cdf4a6fdc GIT binary patch literal 976 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 XH6z#&&Ghv!00000NkvXXu0mjfA@_jH literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_47.png b/app/src/main/res/drawable-nodpi/google_47.png new file mode 100644 index 0000000000000000000000000000000000000000..a1305059578e3ed1e90019c7ec1521e3089e9e0e GIT binary patch literal 1536 zcmV+b2LJhqP)Ttv8Z;!tKg9q=4%9 z-A?uO_4M@h|JDJsi2wf80sQ^@=H}<>>gxFU_dUt~;^N}}+yJkF|K8cd``a+?@cjSU z0N&o^xQqY7pZ@dSdhzMP>gD#kmHyPe`}4DMasU7THgr->Qvd=1{`&*{`~Ca`K6(ri ziA?9DrfSZ&H5e})f9MCs*rDI=Wjl+|umfc1Cs#8|r2dP6{?q&{bxP;}00fLlL_t(| zoSm18R@zDwhUb!y5F}iRhzKGmidK8no-+f93_VaNw%GT7obI^D8al?FzjAEg7}e;c*B6-H61*L?XcM)y*mAKfQffT@}#Hx!IoIw%uirQ{<_ z8a+@$2K^)eOkcA?CUuN)_{SuPg_Rl<5X2JD86@eO^^jXy83hLh3+v5}0*vy@o1;ar z(OE_8$TfmnVdY~wQh?FjF%KA>S;E?rO9E$>m`8-=u};8EiyhRfBrLI7DndTrYaS$! z_Nh3gSCtSyA`_j)0Rl#)@VH(P!rxP+2f__hOtlxmn*t>2buB+4!m{u0b&xcWtf%5x zR{`pf@Ab=Q)A{|+c@}=A%RWM)${vk3Q0^&U)ypGc?Km{!I%(Y^$tc}QB=dau(HZc z2=SbM-R!GVK@W{gCv-aA6$p8pR-LM7_)Nnb~tpf&z!BA)L29ZRtM0XH7Q{x5{ zKv2n3E4Yhz#-0mey$^)l)+MOaj=fHW`+HW`eM5;zrS2*)1`YXh+i#>WWq zadjHIa>;|$jSOsOFm?|R)RFKd{-`D%G_*D#0pFvTxrYew(T%qA`r$%K^Zx=v7zQT3 zLJqF$?wk&4{?p>lopFHvSvXM!`p?jrjTInHkS#|+-`u%$64HDyLKC3>xq6d&DoxPn ztb~h?2f&O;AOy|+C&z>5*e?=i+V4*|nApz$J zdDynGhsu)+)W+Du&B-OaIe6p8FP}`@4jp4a=Sfhrm7B;DoD42=fJ*zta3X6d4S3Om z=W>$EwS3~C3wV<|KXTPHKN8yZiR`Ap37+&+1l>s4XZw+BKC+32EGlq;11u-Gx65YUZj3%JSP zVXsaE`7N~)=>!`9k9*^6-Gr@TmJD8Q_ve9jR!wxC{?i#Uc-kL@(Uoe)2FehJ78=?S mYLL6gQblwyOCVex(fFMc5yz+C6n{c4D_V)Jl^z{1r`sU{5+S=Ow{{EpYjKlx{02p*qPE!E>{sI93 z{Tb5eU<%26NtHb+x~SRSEK`8>iO2u|14BtfK~#90rB~~ks~`+S5fSgLb{A0J|20p- zMeME>+>;;MwBOD+35f}WoLW&7xWGh1%*U1LDu&h9b&Pkop3T4A)UW{^S)Nq7a;1oF=8!HG#_XbRmI80*D9E z2pJ`iRl)v400z<1h8p`xz(}Q22&O~M-jDDhRf^@Ev3i6~KfWo_B0yV|h7R4dn8ss+ zQ8MTx0=cYthNkp39U3ex1xS#uONK>d8f**DRv$TLGAs4K;!B!mb;K}7li%Ge6Xa*qdwFe?hoV-~?X0XzI{R6rW!=cbm~ z8Zzijh*p9*)wj9BX3uv^L?dyzi#A0&91xj%L@#kCWPu zJw_PLQP^1NZs0oMmpd?ho16Ym_#w7J!>sMP-ad(;|L}f~espVva)2am=8&*U!A!w0 zGT;iFurb1%f`ig#^l^o~qfE|5jpsMV@DPB?u}(WoXD`vm$HE?|(O2;xxG6c*U64^? z*~k&E4YkHr&N+!nfGLsb8UK;d7X8-DKt7{C#IwknL5LQV79fF7LclHoF2vRfF*JeD!H#jUcQpFAMxZ_mQTAuFp568 z#X!k-31&73C;{}p@94JzN)V1;Aei#L1OqC~ad6|lZe2mCRq(_sW5KL{D+EY9pk7~i z3~-X@y>6Ouym^ZD1si6s`+jEs046b?6vj(&BLDyZ07*qoM6N<$f_qQx AW&i*H literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_6.png b/app/src/main/res/drawable-nodpi/google_6.png new file mode 100644 index 0000000000000000000000000000000000000000..fbb99c76eb5ab68c973010346ac70174005bae16 GIT binary patch literal 1030 zcmV+h1o``kP)FMc5yz+C6n{c4D_V)Jl^z{1r`sU{5+S=Ow{{EpYjKlx{02p*qPE!E>{sI93 z{Tb5eU<%26NtHb+x~SRSEK`8>iO2u|14BtfK~#90rB~~ks~`+S5fSgLb{A0J|20p- zMeME>+>;;MwBOD+35f}WoLW&7xWGh1%*U1LDu&h9b&Pkop3T4A)UW{^S)Nq7a;1oF=8!HG#_XbRmI80*D9E z2pJ`iRl)v400z<1h8p`xz(}Q22&O~M-jDDhRf^@Ev3i6~KfWo_B0yV|h7R4dn8ss+ zQ8MTx0=cYthNkp39U3ex1xS#uONK>d8f**DRv$TLGAs4K;!B!mb;K}7li%Ge6Xa*qdwFe?hoV-~?X0XzI{R6rW!=cbm~ z8Zzijh*p9*)wj9BX3uv^L?dyzi#A0&91xj%L@#kCWPu zJw_PLQP^1NZs0oMmpd?ho16Ym_#w7J!>sMP-ad(;|L}f~espVva)2am=8&*U!A!w0 zGT;iFurb1%f`ig#^l^o~qfE|5jpsMV@DPB?u}(WoXD`vm$HE?|(O2;xxG6c*U64^? z*~k&E4YkHr&N+!nfGLsb8UK;d7X8-DKt7{C#IwknL5LQV79fF7LclHoF2vRfF*JeD!H#jUcQpFAMxZ_mQTAuFp568 z#X!k-31&73C;{}p@94JzN)V1;Aei#L1OqC~ad6|lZe2mCRq(_sW5KL{D+EY9pk7~i z3~-X@y>6Ouym^ZD1si6s`+jEs046b?6vj(&BLDyZ07*qoM6N<$f_qQx AW&i*H literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_7.png b/app/src/main/res/drawable-nodpi/google_7.png new file mode 100644 index 0000000000000000000000000000000000000000..fbb99c76eb5ab68c973010346ac70174005bae16 GIT binary patch literal 1030 zcmV+h1o``kP)FMc5yz+C6n{c4D_V)Jl^z{1r`sU{5+S=Ow{{EpYjKlx{02p*qPE!E>{sI93 z{Tb5eU<%26NtHb+x~SRSEK`8>iO2u|14BtfK~#90rB~~ks~`+S5fSgLb{A0J|20p- zMeME>+>;;MwBOD+35f}WoLW&7xWGh1%*U1LDu&h9b&Pkop3T4A)UW{^S)Nq7a;1oF=8!HG#_XbRmI80*D9E z2pJ`iRl)v400z<1h8p`xz(}Q22&O~M-jDDhRf^@Ev3i6~KfWo_B0yV|h7R4dn8ss+ zQ8MTx0=cYthNkp39U3ex1xS#uONK>d8f**DRv$TLGAs4K;!B!mb;K}7li%Ge6Xa*qdwFe?hoV-~?X0XzI{R6rW!=cbm~ z8Zzijh*p9*)wj9BX3uv^L?dyzi#A0&91xj%L@#kCWPu zJw_PLQP^1NZs0oMmpd?ho16Ym_#w7J!>sMP-ad(;|L}f~espVva)2am=8&*U!A!w0 zGT;iFurb1%f`ig#^l^o~qfE|5jpsMV@DPB?u}(WoXD`vm$HE?|(O2;xxG6c*U64^? z*~k&E4YkHr&N+!nfGLsb8UK;d7X8-DKt7{C#IwknL5LQV79fF7LclHoF2vRfF*JeD!H#jUcQpFAMxZ_mQTAuFp568 z#X!k-31&73C;{}p@94JzN)V1;Aei#L1OqC~ad6|lZe2mCRq(_sW5KL{D+EY9pk7~i z3~-X@y>6Ouym^ZD1si6s`+jEs046b?6vj(&BLDyZ07*qoM6N<$f_qQx AW&i*H literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_8.png b/app/src/main/res/drawable-nodpi/google_8.png new file mode 100644 index 0000000000000000000000000000000000000000..fbb99c76eb5ab68c973010346ac70174005bae16 GIT binary patch literal 1030 zcmV+h1o``kP)FMc5yz+C6n{c4D_V)Jl^z{1r`sU{5+S=Ow{{EpYjKlx{02p*qPE!E>{sI93 z{Tb5eU<%26NtHb+x~SRSEK`8>iO2u|14BtfK~#90rB~~ks~`+S5fSgLb{A0J|20p- zMeME>+>;;MwBOD+35f}WoLW&7xWGh1%*U1LDu&h9b&Pkop3T4A)UW{^S)Nq7a;1oF=8!HG#_XbRmI80*D9E z2pJ`iRl)v400z<1h8p`xz(}Q22&O~M-jDDhRf^@Ev3i6~KfWo_B0yV|h7R4dn8ss+ zQ8MTx0=cYthNkp39U3ex1xS#uONK>d8f**DRv$TLGAs4K;!B!mb;K}7li%Ge6Xa*qdwFe?hoV-~?X0XzI{R6rW!=cbm~ z8Zzijh*p9*)wj9BX3uv^L?dyzi#A0&91xj%L@#kCWPu zJw_PLQP^1NZs0oMmpd?ho16Ym_#w7J!>sMP-ad(;|L}f~espVva)2am=8&*U!A!w0 zGT;iFurb1%f`ig#^l^o~qfE|5jpsMV@DPB?u}(WoXD`vm$HE?|(O2;xxG6c*U64^? z*~k&E4YkHr&N+!nfGLsb8UK;d7X8-DKt7{C#IwknL5LQV79fF7LclHoF2vRfF*JeD!H#jUcQpFAMxZ_mQTAuFp568 z#X!k-31&73C;{}p@94JzN)V1;Aei#L1OqC~ad6|lZe2mCRq(_sW5KL{D+EY9pk7~i z3~-X@y>6Ouym^ZD1si6s`+jEs046b?6vj(&BLDyZ07*qoM6N<$f_qQx AW&i*H literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_9.png b/app/src/main/res/drawable-nodpi/google_9.png new file mode 100644 index 0000000000000000000000000000000000000000..c582b6a45d7e1d40390a7bc4de0b30294293a0bd GIT binary patch literal 1030 zcmV+h1o``kP)C%Mf$#6{&(F_Jy6ugUmBhrvrKhNEn6A;$ z(R-DnYNy2M>FHXo)%N!G^z`)Z?(Y2j{65G3>FMd=;o;cW*z?jW<^TWy7j#liQvm$~ z0r~;~(_s$+=gZU}he%SRJ9gEcHp#tq0009)NklJdG82LzAs>TtPJRu}*b0vAKYv57A9>F9--82(*IA#AWm%55Cad9l z5e|o;d6o*Lln_GVC%t8iBs?6Sl}brUsg!t83M69|Dk3IBssxofyEK6ux0Fi$ca|;3B`@L|$U)ukbKIBTv5001B}93khtEHz5g0)u{o$RKXR!I8I@$ z4d8VdOQRzjawr==JCM=?hXIRJI?8_7FEB=W?Lc}7p09~w08d|U47vn!Kdy0|0?***=D89LP z&p)jdD2}^BTdI#Dz`rd3=9g=F)tonMM(SR?`w;Z`+6rjZ3&1DuI}~Z*h$Wm!#7_W6 z{MLlHlvJ6K4;vkxPTRf|cuG_F*T4a6go!oErv9>5V^#9D>2E2-%|?2NThrzj2R9bm z-6CPTNRk9|#weV#qPRLb7G$^^fe72R%6-6z_Z^|(F<;HyyTzDvb9H&naRaM4it6)7 zST0dCSN;Pd2%T}{`8bkregW7AT~{0YfLRB_ zPUUf5KD$oD=8pyDxkl;@K`0{5$E5Nqu0^WGOc!3Fl z(z9P*gJD7*RrScp@9)vjSHIccOh7IFCx1Zv1B}$D%GeA9iU0rr07*qoM6N<$f-4Q? AUH||9 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_na.png b/app/src/main/res/drawable-nodpi/google_na.png new file mode 100644 index 0000000000000000000000000000000000000000..21e3dfb27c07e25495b1326a18fbd9839fe3d119 GIT binary patch literal 998 zcmV1D0GZ+wuC){r~_2SV=@dRCt`tR|%HmDh!P90vH3%{V)5478cv_ zr2ovDH%dC)ouo=7AqjZB{$Vqn{U7x6|KFgOd7jATdHE@aG4r(ARL!o_{52fExJ({F zu9-zLKP~j(H*iD)!4yv~$$mj$UIyXfbu@enDaio!2pP;LJTyE4H~Jyl zllQ-1DDgM{wqb=~>ltqHfcY0ZrF_KlYwQ@VYhlc4ReRkCZRIGxf+(F z@(Y3bCwR_5H0*GMS`LE*%0O#B5lr|{EN2##j;su)EEq4nW2J`h0dK++MRuG9d?Ts^ zZ-yEIZa=FEQi*{57XqjR%FtI6M^L-oh2wZ15`b_tf*9j9hFU~ihJXx||4=2^o*-&5 zwKcGH0I|M6$?r_^dN4s8*P*phV~9;XMlAyNcmyVhLlP*5eF)_ln}8U+6mu2=U;3&i zn0f`$(Xr_lJPOE)$KGyP90_zDDns?Z+p?^LM}p`-5@;Y!8MKuS7C`u7PXtyqp#N>e zD;$G(B4`XfK2ZGemf#Zu&!&oR{-GzBWgHK9+h)_gUHyA+`#Lx&&`rc{GFmFW`bPz= zo0ijF+V&p~*`lS|j@Ph9)jx6i+S#_>B>-@j-70l0%y UX@4}Ung9R*07*qoM6N<$g4f~N0RR91 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-v24/ic_humidity_symbol.xml b/app/src/main/res/drawable-v24/ic_humidity_symbol.xml new file mode 100644 index 000000000..c52b21cbf --- /dev/null +++ b/app/src/main/res/drawable-v24/ic_humidity_symbol.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/ic_wind_symbol.xml b/app/src/main/res/drawable-v24/ic_wind_symbol.xml new file mode 100644 index 000000000..236f1c338 --- /dev/null +++ b/app/src/main/res/drawable-v24/ic_wind_symbol.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ambient_indication_pill_background.xml b/app/src/main/res/drawable/ambient_indication_pill_background.xml new file mode 100644 index 000000000..d64e2748f --- /dev/null +++ b/app/src/main/res/drawable/ambient_indication_pill_background.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/date_box_str_border.xml b/app/src/main/res/drawable/date_box_str_border.xml new file mode 100644 index 000000000..c29214c49 --- /dev/null +++ b/app/src/main/res/drawable/date_box_str_border.xml @@ -0,0 +1,13 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/date_str_accent.xml b/app/src/main/res/drawable/date_str_accent.xml new file mode 100644 index 000000000..5ba7bf7d7 --- /dev/null +++ b/app/src/main/res/drawable/date_str_accent.xml @@ -0,0 +1,10 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/date_str_border.xml b/app/src/main/res/drawable/date_str_border.xml new file mode 100644 index 000000000..a31c282df --- /dev/null +++ b/app/src/main/res/drawable/date_str_border.xml @@ -0,0 +1,13 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/date_str_borderacc.xml b/app/src/main/res/drawable/date_str_borderacc.xml new file mode 100644 index 000000000..f9ab608be --- /dev/null +++ b/app/src/main/res/drawable/date_str_borderacc.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/date_str_bordergrad.xml b/app/src/main/res/drawable/date_str_bordergrad.xml new file mode 100644 index 000000000..767bfbe10 --- /dev/null +++ b/app/src/main/res/drawable/date_str_bordergrad.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/date_str_gradient.xml b/app/src/main/res/drawable/date_str_gradient.xml new file mode 100644 index 000000000..619ad0c09 --- /dev/null +++ b/app/src/main/res/drawable/date_str_gradient.xml @@ -0,0 +1,14 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_xposed_lockscreen_weather.xml b/app/src/main/res/drawable/ic_xposed_lockscreen_weather.xml new file mode 100644 index 000000000..fa68fe1f3 --- /dev/null +++ b/app/src/main/res/drawable/ic_xposed_lockscreen_weather.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/layout/fragment_xposed_lockscreen_clock.xml b/app/src/main/res/layout/fragment_xposed_lockscreen_clock.xml index 61669aaef..8b37e5edf 100644 --- a/app/src/main/res/layout/fragment_xposed_lockscreen_clock.xml +++ b/app/src/main/res/layout/fragment_xposed_lockscreen_clock.xml @@ -199,6 +199,13 @@ app:titleText="@string/lockscreen_clock_custom_username" app:summaryText="@string/lockscreen_clock_custom_username_desc" /> + + diff --git a/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml b/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml new file mode 100644 index 000000000..df91b432e --- /dev/null +++ b/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml @@ -0,0 +1,180 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/view_current_weather.xml b/app/src/main/res/layout/view_current_weather.xml new file mode 100644 index 000000000..c33e72086 --- /dev/null +++ b/app/src/main/res/layout/view_current_weather.xml @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/navigation/nav_xposed_menu.xml b/app/src/main/res/navigation/nav_xposed_menu.xml index d850a3937..9a1b22326 100644 --- a/app/src/main/res/navigation/nav_xposed_menu.xml +++ b/app/src/main/res/navigation/nav_xposed_menu.xml @@ -204,6 +204,26 @@ app:exitAnim="@anim/fragment_fade_out" app:popEnterAnim="@anim/fragment_fade_in" app:popExitAnim="@anim/fragment_fade_out" /> + + + + + diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index 2f76e70fe..947d99d39 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -143,4 +143,33 @@ @string/settings_auto_force_reload_ui @string/settings_manual_restart_systemui + + + + @string/unit_metric + @string/unit_imperial + + + + + @string/interval_1_hour + @string/interval_2_hour + @string/interval_4_hour + @string/interval_6_hour + @string/interval_12_hour + + + + + @string/lockscreen_weather_selection_default + @string/lockscreen_weather_selection_str_box + @string/lockscreen_weather_selection_str_round + @string/lockscreen_weather_selection_qbeta_style + @string/lockscreen_weather_selection_str_accent + @string/lockscreen_weather_selection_str_accent_transparent + @string/lockscreen_weather_selection_str_gradient + @string/lockscreen_weather_selection_str_border_accent + @string/lockscreen_weather_selection_str_border_gradient + + diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index b1ea8d0eb..d8543b2f2 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -34,4 +34,14 @@ -20dp 4dp + + 12dp + 8dp + 17.0sp + 8.0sp + + + 10dp + 6dp + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2776f6519..a965d5dcb 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -446,6 +446,8 @@ Add custom clock on QS panel Lockscreen Clock Add custom clock on lockscreen + Lockscreen Weather + Add weather on lockscreen Depth Wallpaper Show iOS like depth wallpaper Background Chip @@ -984,4 +986,95 @@ Tap on preview to select Don\'t show again To ensure proper functionality, enabling the Iconify module in LSPosed is mandatory for android 14 and above.\n\nAfter that, enable the fixes from: Tweaks > Xposed Menu > Themes > Others. + + + + Unit + Verifying location + Select location + Custom location + Enter location + Location + Set custom location + Cannot retrieve location! + Network geolocation is disabled.\n\nSet a custom location or enable network location + Enable + Settings + Automatic updates + Check for new versions once in a while + Check updates over WiFi only + Check for updates in background only when connected to wifi + Metric (\u00b0C) + Imperial (\u00b0F) + Update + Enable + Update interval + 1 hour + 2 hours + 4 hours + 6 hours + 12 hours + Weather + Condition icon pack + Find icon packs + Disabled + Error + Waiting \u2026 + No weather data + Error loading weather data + Waiting\u2026 + Updating\u2026 + Service disabled + Now + Background shadow + Service settings + * + Unknown + Error loading weather data + Weather + Last update: + No location available + No network found + Location permissions not granted + Select location + Search for a location + Custom Margins + Top margin + Center Layout + Left Margin + Enable Location Permissions + Location permissions are required to fetch weather data. Click OK to open Settings. + + + Cloudy + Rainy + Sunny + Stormy + Snowy + Windy + Misty + + + Show Weather on Lockscreen + Last update time + Show Location + Show Condition + Show Humidity + Show Wind + Text Size + Image Size + Weather Text Custom Color + + + Weather Background Style + Default + Semi-transparent box + Semi-transparent box (round) + Q-Beta pill + Rounded, simple and with accent + Rounded, transparent and with accent + Gradient + Dark with accented borders + Dark with gradient borders + From 926a6c6575f86cb1675e652f1fa1ed727a3c85d0 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Wed, 14 Aug 2024 17:38:12 +0200 Subject: [PATCH 090/369] IconsAdapter: add a new ViewHolder for Weather Icons --- .../iconify/ui/adapters/IconsAdapter.kt | 86 +++++++++++++++++-- .../iconify/ui/widgets/BottomSheetWidget.kt | 29 +++++-- 2 files changed, 102 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/adapters/IconsAdapter.kt b/app/src/main/java/com/drdisagree/iconify/ui/adapters/IconsAdapter.kt index 9ba682989..9e72749cd 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/adapters/IconsAdapter.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/adapters/IconsAdapter.kt @@ -1,5 +1,6 @@ package com.drdisagree.iconify.ui.adapters +import android.content.Context import android.graphics.Color import android.graphics.drawable.Drawable import android.view.LayoutInflater @@ -10,14 +11,24 @@ import androidx.recyclerview.widget.RecyclerView import com.drdisagree.iconify.Iconify.Companion.appContext import com.drdisagree.iconify.R import com.drdisagree.iconify.databinding.ViewListIconItemBinding +import com.drdisagree.iconify.databinding.ViewListOptionWeatherIconsBinding +import com.drdisagree.iconify.ui.dialogs.LoadingDialog +import com.drdisagree.iconify.ui.models.IconPackModel class IconsAdapter( private val mEntries: Array, private val mEntryValues: Array, private var mValue: String, + private val mAdapterType: Int, private val onItemClickListener: OnItemClickListener ) : RecyclerView.Adapter() { + + companion object { + const val ICONS_ADAPTER = 0 + const val WEATHER_ICONS_ADAPTER = 1 + } + private var mEntryDrawables: Array? = null private var mEntryResIds: IntArray? = null @@ -39,17 +50,40 @@ class IconsAdapter( } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { - return IconsViewHolder( - ViewListIconItemBinding.inflate( - LayoutInflater.from(parent.context), - parent, - false + if (mAdapterType == ICONS_ADAPTER) { + return IconsViewHolder( + ViewListIconItemBinding.inflate( + LayoutInflater.from(parent.context), + parent, + false + ) ) - ) + } else if (mAdapterType == WEATHER_ICONS_ADAPTER) { + return WeatherIconsViewHolder( + ViewListOptionWeatherIconsBinding.inflate( + LayoutInflater.from(parent.context), + parent, + false + ) + ) + } else { + throw IllegalStateException(javaClass.getSimpleName() + " - No adapter type provided") + } } override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { - (holder as IconsViewHolder).binding.typeTitle.text = mEntries[position] + when (mAdapterType) { + ICONS_ADAPTER -> { + bindIconsViewHolder(holder as IconsViewHolder, position) + } + WEATHER_ICONS_ADAPTER -> { + bindWeatherIconsViewHolder(holder as WeatherIconsViewHolder, position) + } + } + } + + private fun bindIconsViewHolder(holder: IconsViewHolder, position: Int) { + holder.binding.typeTitle.text = mEntries[position] if (mEntryDrawables != null) { holder.binding.batteryIcon.setImageDrawable(mEntryDrawables!![position]) @@ -81,6 +115,39 @@ class IconsAdapter( } } + private fun bindWeatherIconsViewHolder(holder: WeatherIconsViewHolder, position: Int) { + holder.binding.text.text = mEntries[position] + + if (mEntryDrawables != null) { + holder.binding.image.setImageDrawable(mEntryDrawables!![position]) + } else if (mEntryResIds != null) { + holder.binding.image.setImageDrawable( + ContextCompat.getDrawable( + holder.binding.getRoot().context, + mEntryResIds!![position] + ) + ) + } else { + throw IllegalStateException(javaClass.getSimpleName() + " - No icons provided") + } + + if (mEntryValues[position].toString().contentEquals(mValue)) { + holder.binding.rootLayout.strokeColor = appContext.getColor(R.color.colorAccent) + } else { + holder.binding.rootLayout.strokeColor = Color.TRANSPARENT + } + + holder.binding.rootLayout.setOnClickListener { v: View -> + val previousPosition = mEntryValues.indexOf(mValue) + mValue = mEntryValues[position].toString() + + notifyItemChanged(previousPosition) + notifyItemChanged(position) + + onItemClickListener.onItemClick(v, position) + } + } + override fun getItemCount(): Int { return mEntries.size } @@ -94,6 +161,11 @@ class IconsAdapter( binding.getRoot() ) + class WeatherIconsViewHolder internal constructor(val binding: ViewListOptionWeatherIconsBinding) : + RecyclerView.ViewHolder( + binding.getRoot() + ) + /** * Interface for the click on the item */ diff --git a/app/src/main/java/com/drdisagree/iconify/ui/widgets/BottomSheetWidget.kt b/app/src/main/java/com/drdisagree/iconify/ui/widgets/BottomSheetWidget.kt index 402f496f9..6439ea461 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/widgets/BottomSheetWidget.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/widgets/BottomSheetWidget.kt @@ -17,6 +17,7 @@ import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.RecyclerView import com.drdisagree.iconify.R import com.drdisagree.iconify.ui.adapters.IconsAdapter +import com.drdisagree.iconify.ui.adapters.IconsAdapter.Companion.ICONS_ADAPTER import com.drdisagree.iconify.utils.SystemUtil import com.google.android.material.appbar.MaterialToolbar import com.google.android.material.bottomsheet.BottomSheetDialog @@ -37,7 +38,8 @@ class BottomSheetWidget : RelativeLayout, IconsAdapter.OnItemClickListener { private lateinit var mEntryValues: Array private var mDrawables: Array? = null private var mValue: String = selectedIndex.toString() - private var mAdapter: IconsAdapter? = null + private var mAdapter: RecyclerView.Adapter? = null + private var mLayoutManager: RecyclerView.LayoutManager? = null private var onItemClickListener: OnItemClickListener? = null constructor(context: Context) : super(context) { @@ -126,6 +128,10 @@ class BottomSheetWidget : RelativeLayout, IconsAdapter.OnItemClickListener { titleTextView.text = title } + fun setSummary(summary: String) { + summaryTextView.text = summary + } + private fun setSelectedText(summaryResId: Int) { setSelectedText(context.getString(summaryResId)) } @@ -149,12 +155,16 @@ class BottomSheetWidget : RelativeLayout, IconsAdapter.OnItemClickListener { fun setDrawable(drawable: Array) { mDrawables = drawable - mAdapter?.setDrawables(drawable) + if (mAdapter is IconsAdapter) (mAdapter as IconsAdapter).setDrawables(drawable) } fun setCurrentValue(currentValue: String) { mValue = currentValue - mAdapter?.setCurrentValue(currentValue) + if (mAdapter is IconsAdapter) (mAdapter as IconsAdapter).setCurrentValue(currentValue) + } + + fun setLayoutManager(layoutManager: RecyclerView.LayoutManager) { + mLayoutManager = layoutManager } fun setIconVisibility(visibility: Int) { @@ -190,15 +200,22 @@ class BottomSheetWidget : RelativeLayout, IconsAdapter.OnItemClickListener { toolbar.title = titleTextView.text toolbar.isTitleCentered = true - recyclerView.layoutManager = GridLayoutManager(context, 3) + recyclerView.layoutManager = mLayoutManager ?: GridLayoutManager(context, 3) - mAdapter = IconsAdapter(mEntries, mEntryValues, mValue, this) - mAdapter!!.setDrawables(mDrawables) + if (mAdapter == null) { + mAdapter = IconsAdapter(mEntries, mEntryValues, mValue, ICONS_ADAPTER, this) + (mAdapter!! as IconsAdapter).setDrawables(mDrawables) + } recyclerView.adapter = mAdapter mBottomSheetDialog.setContentView(view) } + fun setAdapter(adapter: RecyclerView.Adapter) { + mAdapter = adapter + initBottomSheetDialog() + } + override fun setEnabled(enabled: Boolean) { super.setEnabled(enabled) From 42a904866e7d905e92f532484dccf009e150f3fa Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Wed, 14 Aug 2024 17:38:46 +0200 Subject: [PATCH 091/369] Add summary for weather prefs --- .../fragment_xposed_lockscreen_weather.xml | 18 +++++++++--------- app/src/main/res/values/strings.xml | 17 ++++++++++++----- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml b/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml index df91b432e..ecd5dd515 100644 --- a/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml +++ b/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml @@ -52,28 +52,28 @@ android:layout_width="match_parent" android:layout_height="wrap_content" app:titleText="@string/weather_show_location" - app:summaryText="@string/general_on" /> + app:summaryText="@string/weather_show_location_summary" /> + app:summaryText="@string/weather_show_condition_summary" /> + app:summaryText="@string/weather_show_humidity_summary" /> + app:summaryText="@string/weather_show_wind_summary" /> + app:summaryText="@string/weather_custom_color_summary" /> + app:titleText="@string/weather_custom_color"/> + app:summaryText="@string/custom_location_summary" /> @@ -136,7 +136,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" app:titleText="@string/weather_custom_margins" - app:summaryText="@string/general_off" /> + app:summaryText="@string/weather_custom_margins_summary" /> Unit Verifying location Select location - Custom location Enter location Location Set custom location @@ -1038,10 +1037,6 @@ Location permissions not granted Select location Search for a location - Custom Margins - Top margin - Center Layout - Left Margin Enable Location Permissions Location permissions are required to fetch weather data. Click OK to open Settings. @@ -1058,12 +1053,24 @@ Show Weather on Lockscreen Last update time Show Location + Show Location before icon Show Condition + Show Condition after temperature Show Humidity + Show Humidity in a new row Show Wind + Show Wind in a new row Text Size Image Size Weather Text Custom Color + Custom color for all text in weather view + Custom location + Set custom location for weather + Custom Margins + Set custom margins for weather + Top margin + Center Layout + Left Margin Weather Background Style From fe6ad84fa4235006ac82507c6a2cc9a3df07bbc9 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Wed, 14 Aug 2024 17:42:33 +0200 Subject: [PATCH 092/369] Weather Icon list option --- .../layout/view_list_option_weather_icons.xml | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 app/src/main/res/layout/view_list_option_weather_icons.xml diff --git a/app/src/main/res/layout/view_list_option_weather_icons.xml b/app/src/main/res/layout/view_list_option_weather_icons.xml new file mode 100644 index 000000000..8a03f43b3 --- /dev/null +++ b/app/src/main/res/layout/view_list_option_weather_icons.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + \ No newline at end of file From 2c79c823aa40e489490d72db96153bae4d86b805 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Wed, 14 Aug 2024 17:44:13 +0200 Subject: [PATCH 093/369] More Weather Icons --- app/src/main/AndroidManifest.xml | 141 +++++++++++++++++- .../drawable-nodpi/icons8_color_hand_0.png | Bin 0 -> 1209 bytes .../drawable-nodpi/icons8_color_hand_1.png | Bin 0 -> 983 bytes .../drawable-nodpi/icons8_color_hand_10.png | Bin 0 -> 911 bytes .../drawable-nodpi/icons8_color_hand_11.png | Bin 0 -> 837 bytes .../drawable-nodpi/icons8_color_hand_12.png | Bin 0 -> 837 bytes .../drawable-nodpi/icons8_color_hand_13.png | Bin 0 -> 808 bytes .../drawable-nodpi/icons8_color_hand_14.png | Bin 0 -> 808 bytes .../drawable-nodpi/icons8_color_hand_15.png | Bin 0 -> 808 bytes .../drawable-nodpi/icons8_color_hand_16.png | Bin 0 -> 808 bytes .../drawable-nodpi/icons8_color_hand_17.png | Bin 0 -> 808 bytes .../drawable-nodpi/icons8_color_hand_18.png | Bin 0 -> 808 bytes .../drawable-nodpi/icons8_color_hand_19.png | Bin 0 -> 606 bytes .../drawable-nodpi/icons8_color_hand_2.png | Bin 0 -> 1209 bytes .../drawable-nodpi/icons8_color_hand_20.png | Bin 0 -> 606 bytes .../drawable-nodpi/icons8_color_hand_21.png | Bin 0 -> 606 bytes .../drawable-nodpi/icons8_color_hand_22.png | Bin 0 -> 606 bytes .../drawable-nodpi/icons8_color_hand_23.png | Bin 0 -> 688 bytes .../drawable-nodpi/icons8_color_hand_24.png | Bin 0 -> 688 bytes .../drawable-nodpi/icons8_color_hand_25.png | Bin 0 -> 891 bytes .../drawable-nodpi/icons8_color_hand_26.png | Bin 0 -> 560 bytes .../drawable-nodpi/icons8_color_hand_27.png | Bin 0 -> 953 bytes .../drawable-nodpi/icons8_color_hand_28.png | Bin 0 -> 930 bytes .../drawable-nodpi/icons8_color_hand_29.png | Bin 0 -> 953 bytes .../drawable-nodpi/icons8_color_hand_3.png | Bin 0 -> 983 bytes .../drawable-nodpi/icons8_color_hand_30.png | Bin 0 -> 930 bytes .../drawable-nodpi/icons8_color_hand_31.png | Bin 0 -> 1104 bytes .../drawable-nodpi/icons8_color_hand_32.png | Bin 0 -> 1062 bytes .../drawable-nodpi/icons8_color_hand_33.png | Bin 0 -> 1104 bytes .../drawable-nodpi/icons8_color_hand_34.png | Bin 0 -> 1062 bytes .../drawable-nodpi/icons8_color_hand_35.png | Bin 0 -> 911 bytes .../drawable-nodpi/icons8_color_hand_36.png | Bin 0 -> 448 bytes .../drawable-nodpi/icons8_color_hand_37.png | Bin 0 -> 983 bytes .../drawable-nodpi/icons8_color_hand_38.png | Bin 0 -> 983 bytes .../drawable-nodpi/icons8_color_hand_39.png | Bin 0 -> 983 bytes .../drawable-nodpi/icons8_color_hand_4.png | Bin 0 -> 911 bytes .../drawable-nodpi/icons8_color_hand_40.png | Bin 0 -> 837 bytes .../drawable-nodpi/icons8_color_hand_41.png | Bin 0 -> 808 bytes .../drawable-nodpi/icons8_color_hand_42.png | Bin 0 -> 1217 bytes .../drawable-nodpi/icons8_color_hand_43.png | Bin 0 -> 808 bytes .../drawable-nodpi/icons8_color_hand_44.png | Bin 0 -> 953 bytes .../drawable-nodpi/icons8_color_hand_45.png | Bin 0 -> 837 bytes .../drawable-nodpi/icons8_color_hand_46.png | Bin 0 -> 1217 bytes .../drawable-nodpi/icons8_color_hand_47.png | Bin 0 -> 1231 bytes .../drawable-nodpi/icons8_color_hand_5.png | Bin 0 -> 911 bytes .../drawable-nodpi/icons8_color_hand_6.png | Bin 0 -> 911 bytes .../drawable-nodpi/icons8_color_hand_7.png | Bin 0 -> 911 bytes .../drawable-nodpi/icons8_color_hand_8.png | Bin 0 -> 911 bytes .../drawable-nodpi/icons8_color_hand_9.png | Bin 0 -> 837 bytes .../drawable-nodpi/icons8_color_hand_na.png | Bin 0 -> 1062 bytes .../main/res/drawable-nodpi/marshmallow_0.png | Bin 0 -> 471 bytes .../main/res/drawable-nodpi/marshmallow_1.png | Bin 0 -> 471 bytes .../res/drawable-nodpi/marshmallow_10.png | Bin 0 -> 1282 bytes .../res/drawable-nodpi/marshmallow_11.png | Bin 0 -> 1388 bytes .../res/drawable-nodpi/marshmallow_12.png | Bin 0 -> 1388 bytes .../res/drawable-nodpi/marshmallow_13.png | Bin 0 -> 1353 bytes .../res/drawable-nodpi/marshmallow_14.png | Bin 0 -> 1480 bytes .../res/drawable-nodpi/marshmallow_15.png | Bin 0 -> 1506 bytes .../res/drawable-nodpi/marshmallow_16.png | Bin 0 -> 1573 bytes .../res/drawable-nodpi/marshmallow_17.png | Bin 0 -> 1225 bytes .../res/drawable-nodpi/marshmallow_18.png | Bin 0 -> 1649 bytes .../res/drawable-nodpi/marshmallow_19.png | Bin 0 -> 2239 bytes .../main/res/drawable-nodpi/marshmallow_2.png | Bin 0 -> 471 bytes .../res/drawable-nodpi/marshmallow_20.png | Bin 0 -> 1878 bytes .../res/drawable-nodpi/marshmallow_21.png | Bin 0 -> 2239 bytes .../res/drawable-nodpi/marshmallow_22.png | Bin 0 -> 2239 bytes .../res/drawable-nodpi/marshmallow_23.png | Bin 0 -> 1805 bytes .../res/drawable-nodpi/marshmallow_24.png | Bin 0 -> 1805 bytes .../res/drawable-nodpi/marshmallow_25.png | Bin 0 -> 622 bytes .../res/drawable-nodpi/marshmallow_26.png | Bin 0 -> 966 bytes .../res/drawable-nodpi/marshmallow_27.png | Bin 0 -> 1257 bytes .../res/drawable-nodpi/marshmallow_28.png | Bin 0 -> 1645 bytes .../res/drawable-nodpi/marshmallow_29.png | Bin 0 -> 1257 bytes .../main/res/drawable-nodpi/marshmallow_3.png | Bin 0 -> 1467 bytes .../res/drawable-nodpi/marshmallow_30.png | Bin 0 -> 1645 bytes .../res/drawable-nodpi/marshmallow_31.png | Bin 0 -> 1199 bytes .../res/drawable-nodpi/marshmallow_32.png | Bin 0 -> 1617 bytes .../res/drawable-nodpi/marshmallow_33.png | Bin 0 -> 1199 bytes .../res/drawable-nodpi/marshmallow_34.png | Bin 0 -> 1617 bytes .../res/drawable-nodpi/marshmallow_35.png | Bin 0 -> 1282 bytes .../res/drawable-nodpi/marshmallow_36.png | Bin 0 -> 636 bytes .../res/drawable-nodpi/marshmallow_37.png | Bin 0 -> 2096 bytes .../res/drawable-nodpi/marshmallow_38.png | Bin 0 -> 2096 bytes .../res/drawable-nodpi/marshmallow_39.png | Bin 0 -> 2096 bytes .../main/res/drawable-nodpi/marshmallow_4.png | Bin 0 -> 1467 bytes .../res/drawable-nodpi/marshmallow_40.png | Bin 0 -> 1977 bytes .../res/drawable-nodpi/marshmallow_41.png | Bin 0 -> 1595 bytes .../res/drawable-nodpi/marshmallow_42.png | Bin 0 -> 1478 bytes .../res/drawable-nodpi/marshmallow_43.png | Bin 0 -> 1595 bytes .../res/drawable-nodpi/marshmallow_44.png | Bin 0 -> 1645 bytes .../res/drawable-nodpi/marshmallow_45.png | Bin 0 -> 1467 bytes .../res/drawable-nodpi/marshmallow_46.png | Bin 0 -> 1478 bytes .../res/drawable-nodpi/marshmallow_47.png | Bin 0 -> 1467 bytes .../main/res/drawable-nodpi/marshmallow_5.png | Bin 0 -> 1649 bytes .../main/res/drawable-nodpi/marshmallow_6.png | Bin 0 -> 1560 bytes .../main/res/drawable-nodpi/marshmallow_7.png | Bin 0 -> 1649 bytes .../main/res/drawable-nodpi/marshmallow_8.png | Bin 0 -> 1282 bytes .../main/res/drawable-nodpi/marshmallow_9.png | Bin 0 -> 1039 bytes .../res/drawable-nodpi/marshmallow_na.png | Bin 0 -> 108 bytes .../main/res/drawable-nodpi/stickers_0.png | Bin 0 -> 1762 bytes .../main/res/drawable-nodpi/stickers_1.png | Bin 0 -> 1622 bytes .../main/res/drawable-nodpi/stickers_10.png | Bin 0 -> 1570 bytes .../main/res/drawable-nodpi/stickers_11.png | Bin 0 -> 1466 bytes .../main/res/drawable-nodpi/stickers_12.png | Bin 0 -> 1466 bytes .../main/res/drawable-nodpi/stickers_13.png | Bin 0 -> 1385 bytes .../main/res/drawable-nodpi/stickers_14.png | Bin 0 -> 1385 bytes .../main/res/drawable-nodpi/stickers_15.png | Bin 0 -> 1385 bytes .../main/res/drawable-nodpi/stickers_16.png | Bin 0 -> 1385 bytes .../main/res/drawable-nodpi/stickers_17.png | Bin 0 -> 1385 bytes .../main/res/drawable-nodpi/stickers_18.png | Bin 0 -> 1385 bytes .../main/res/drawable-nodpi/stickers_19.png | Bin 0 -> 1238 bytes .../main/res/drawable-nodpi/stickers_2.png | Bin 0 -> 1762 bytes .../main/res/drawable-nodpi/stickers_20.png | Bin 0 -> 1238 bytes .../main/res/drawable-nodpi/stickers_21.png | Bin 0 -> 1238 bytes .../main/res/drawable-nodpi/stickers_22.png | Bin 0 -> 1238 bytes .../main/res/drawable-nodpi/stickers_23.png | Bin 0 -> 1404 bytes .../main/res/drawable-nodpi/stickers_24.png | Bin 0 -> 1404 bytes .../main/res/drawable-nodpi/stickers_25.png | Bin 0 -> 1537 bytes .../main/res/drawable-nodpi/stickers_26.png | Bin 0 -> 1384 bytes .../main/res/drawable-nodpi/stickers_27.png | Bin 0 -> 1462 bytes .../main/res/drawable-nodpi/stickers_28.png | Bin 0 -> 1710 bytes .../main/res/drawable-nodpi/stickers_29.png | Bin 0 -> 1666 bytes .../main/res/drawable-nodpi/stickers_3.png | Bin 0 -> 1622 bytes .../main/res/drawable-nodpi/stickers_30.png | Bin 0 -> 1549 bytes .../main/res/drawable-nodpi/stickers_31.png | Bin 0 -> 1853 bytes .../main/res/drawable-nodpi/stickers_32.png | Bin 0 -> 1952 bytes .../main/res/drawable-nodpi/stickers_33.png | Bin 0 -> 1853 bytes .../main/res/drawable-nodpi/stickers_34.png | Bin 0 -> 1952 bytes .../main/res/drawable-nodpi/stickers_35.png | Bin 0 -> 1570 bytes .../main/res/drawable-nodpi/stickers_36.png | Bin 0 -> 951 bytes .../main/res/drawable-nodpi/stickers_37.png | Bin 0 -> 1622 bytes .../main/res/drawable-nodpi/stickers_38.png | Bin 0 -> 1622 bytes .../main/res/drawable-nodpi/stickers_39.png | Bin 0 -> 1622 bytes .../main/res/drawable-nodpi/stickers_4.png | Bin 0 -> 1622 bytes .../main/res/drawable-nodpi/stickers_40.png | Bin 0 -> 1466 bytes .../main/res/drawable-nodpi/stickers_41.png | Bin 0 -> 1385 bytes .../main/res/drawable-nodpi/stickers_42.png | Bin 0 -> 1385 bytes .../main/res/drawable-nodpi/stickers_43.png | Bin 0 -> 1385 bytes .../main/res/drawable-nodpi/stickers_44.png | Bin 0 -> 1462 bytes .../main/res/drawable-nodpi/stickers_45.png | Bin 0 -> 1622 bytes .../main/res/drawable-nodpi/stickers_46.png | Bin 0 -> 1385 bytes .../main/res/drawable-nodpi/stickers_47.png | Bin 0 -> 1622 bytes .../main/res/drawable-nodpi/stickers_5.png | Bin 0 -> 1570 bytes .../main/res/drawable-nodpi/stickers_6.png | Bin 0 -> 1570 bytes .../main/res/drawable-nodpi/stickers_7.png | Bin 0 -> 1570 bytes .../main/res/drawable-nodpi/stickers_8.png | Bin 0 -> 1570 bytes .../main/res/drawable-nodpi/stickers_9.png | Bin 0 -> 1466 bytes .../main/res/drawable-nodpi/stickers_na.png | Bin 0 -> 1763 bytes .../res/drawable-nodpi/weather_color_0.png | Bin 0 -> 4315 bytes .../res/drawable-nodpi/weather_color_1.png | Bin 0 -> 2780 bytes .../res/drawable-nodpi/weather_color_10.png | Bin 0 -> 2951 bytes .../res/drawable-nodpi/weather_color_11.png | Bin 0 -> 3508 bytes .../res/drawable-nodpi/weather_color_12.png | Bin 0 -> 3508 bytes .../res/drawable-nodpi/weather_color_13.png | Bin 0 -> 3567 bytes .../res/drawable-nodpi/weather_color_14.png | Bin 0 -> 3567 bytes .../res/drawable-nodpi/weather_color_15.png | Bin 0 -> 3567 bytes .../res/drawable-nodpi/weather_color_16.png | Bin 0 -> 3567 bytes .../res/drawable-nodpi/weather_color_17.png | Bin 0 -> 3221 bytes .../res/drawable-nodpi/weather_color_18.png | Bin 0 -> 3754 bytes .../res/drawable-nodpi/weather_color_19.png | Bin 0 -> 636 bytes .../res/drawable-nodpi/weather_color_2.png | Bin 0 -> 2780 bytes .../res/drawable-nodpi/weather_color_20.png | Bin 0 -> 652 bytes .../res/drawable-nodpi/weather_color_21.png | Bin 0 -> 3994 bytes .../res/drawable-nodpi/weather_color_22.png | Bin 0 -> 667 bytes .../res/drawable-nodpi/weather_color_23.png | Bin 0 -> 1177 bytes .../res/drawable-nodpi/weather_color_24.png | Bin 0 -> 1177 bytes .../res/drawable-nodpi/weather_color_25.png | Bin 0 -> 965 bytes .../res/drawable-nodpi/weather_color_26.png | Bin 0 -> 2844 bytes .../res/drawable-nodpi/weather_color_27.png | Bin 0 -> 2122 bytes .../res/drawable-nodpi/weather_color_28.png | Bin 0 -> 3976 bytes .../res/drawable-nodpi/weather_color_29.png | Bin 0 -> 2428 bytes .../res/drawable-nodpi/weather_color_3.png | Bin 0 -> 4315 bytes .../res/drawable-nodpi/weather_color_30.png | Bin 0 -> 4158 bytes .../res/drawable-nodpi/weather_color_31.png | Bin 0 -> 1990 bytes .../res/drawable-nodpi/weather_color_32.png | Bin 0 -> 3290 bytes .../res/drawable-nodpi/weather_color_33.png | Bin 0 -> 2485 bytes .../res/drawable-nodpi/weather_color_34.png | Bin 0 -> 3921 bytes .../res/drawable-nodpi/weather_color_35.png | Bin 0 -> 3400 bytes .../res/drawable-nodpi/weather_color_36.png | Bin 0 -> 1034 bytes .../res/drawable-nodpi/weather_color_37.png | Bin 0 -> 5455 bytes .../res/drawable-nodpi/weather_color_38.png | Bin 0 -> 5455 bytes .../res/drawable-nodpi/weather_color_39.png | Bin 0 -> 5455 bytes .../res/drawable-nodpi/weather_color_4.png | Bin 0 -> 4315 bytes .../res/drawable-nodpi/weather_color_40.png | Bin 0 -> 5165 bytes .../res/drawable-nodpi/weather_color_41.png | Bin 0 -> 3798 bytes .../res/drawable-nodpi/weather_color_42.png | Bin 0 -> 3567 bytes .../res/drawable-nodpi/weather_color_43.png | Bin 0 -> 3798 bytes .../res/drawable-nodpi/weather_color_44.png | Bin 0 -> 2485 bytes .../res/drawable-nodpi/weather_color_45.png | Bin 0 -> 3097 bytes .../res/drawable-nodpi/weather_color_46.png | Bin 0 -> 3423 bytes .../res/drawable-nodpi/weather_color_47.png | Bin 0 -> 3850 bytes .../res/drawable-nodpi/weather_color_5.png | Bin 0 -> 3754 bytes .../res/drawable-nodpi/weather_color_6.png | Bin 0 -> 3754 bytes .../res/drawable-nodpi/weather_color_7.png | Bin 0 -> 3567 bytes .../res/drawable-nodpi/weather_color_8.png | Bin 0 -> 2735 bytes .../res/drawable-nodpi/weather_color_9.png | Bin 0 -> 2810 bytes .../res/drawable-nodpi/weather_color_na.png | Bin 0 -> 1473 bytes .../res/drawable-nodpi/weather_faded_0.png | Bin 0 -> 903 bytes .../res/drawable-nodpi/weather_faded_1.png | Bin 0 -> 937 bytes .../res/drawable-nodpi/weather_faded_10.png | Bin 0 -> 2237 bytes .../res/drawable-nodpi/weather_faded_11.png | Bin 0 -> 1860 bytes .../res/drawable-nodpi/weather_faded_12.png | Bin 0 -> 1683 bytes .../res/drawable-nodpi/weather_faded_13.png | Bin 0 -> 1634 bytes .../res/drawable-nodpi/weather_faded_14.png | Bin 0 -> 1866 bytes .../res/drawable-nodpi/weather_faded_15.png | Bin 0 -> 1755 bytes .../res/drawable-nodpi/weather_faded_16.png | Bin 0 -> 1446 bytes .../res/drawable-nodpi/weather_faded_17.png | Bin 0 -> 1104 bytes .../res/drawable-nodpi/weather_faded_18.png | Bin 0 -> 1133 bytes .../res/drawable-nodpi/weather_faded_19.png | Bin 0 -> 2258 bytes .../res/drawable-nodpi/weather_faded_2.png | Bin 0 -> 903 bytes .../res/drawable-nodpi/weather_faded_20.png | Bin 0 -> 1525 bytes .../res/drawable-nodpi/weather_faded_21.png | Bin 0 -> 2258 bytes .../res/drawable-nodpi/weather_faded_22.png | Bin 0 -> 1525 bytes .../res/drawable-nodpi/weather_faded_23.png | Bin 0 -> 1333 bytes .../res/drawable-nodpi/weather_faded_24.png | Bin 0 -> 1417 bytes .../res/drawable-nodpi/weather_faded_25.png | Bin 0 -> 1634 bytes .../res/drawable-nodpi/weather_faded_26.png | Bin 0 -> 1236 bytes .../res/drawable-nodpi/weather_faded_27.png | Bin 0 -> 950 bytes .../res/drawable-nodpi/weather_faded_28.png | Bin 0 -> 977 bytes .../res/drawable-nodpi/weather_faded_29.png | Bin 0 -> 978 bytes .../res/drawable-nodpi/weather_faded_3.png | Bin 0 -> 1683 bytes .../res/drawable-nodpi/weather_faded_30.png | Bin 0 -> 1236 bytes .../res/drawable-nodpi/weather_faded_31.png | Bin 0 -> 846 bytes .../res/drawable-nodpi/weather_faded_32.png | Bin 0 -> 1706 bytes .../res/drawable-nodpi/weather_faded_33.png | Bin 0 -> 846 bytes .../res/drawable-nodpi/weather_faded_34.png | Bin 0 -> 1706 bytes .../res/drawable-nodpi/weather_faded_35.png | Bin 0 -> 1755 bytes .../res/drawable-nodpi/weather_faded_36.png | Bin 0 -> 1706 bytes .../res/drawable-nodpi/weather_faded_37.png | Bin 0 -> 1683 bytes .../res/drawable-nodpi/weather_faded_38.png | Bin 0 -> 1683 bytes .../res/drawable-nodpi/weather_faded_39.png | Bin 0 -> 1860 bytes .../res/drawable-nodpi/weather_faded_4.png | Bin 0 -> 1683 bytes .../res/drawable-nodpi/weather_faded_40.png | Bin 0 -> 1837 bytes .../res/drawable-nodpi/weather_faded_41.png | Bin 0 -> 1866 bytes .../res/drawable-nodpi/weather_faded_42.png | Bin 0 -> 1755 bytes .../res/drawable-nodpi/weather_faded_43.png | Bin 0 -> 1755 bytes .../res/drawable-nodpi/weather_faded_44.png | Bin 0 -> 1236 bytes .../res/drawable-nodpi/weather_faded_45.png | Bin 0 -> 1860 bytes .../res/drawable-nodpi/weather_faded_46.png | Bin 0 -> 1755 bytes .../res/drawable-nodpi/weather_faded_47.png | Bin 0 -> 1860 bytes .../res/drawable-nodpi/weather_faded_5.png | Bin 0 -> 2237 bytes .../res/drawable-nodpi/weather_faded_6.png | Bin 0 -> 1866 bytes .../res/drawable-nodpi/weather_faded_7.png | Bin 0 -> 1866 bytes .../res/drawable-nodpi/weather_faded_8.png | Bin 0 -> 2237 bytes .../res/drawable-nodpi/weather_faded_9.png | Bin 0 -> 2223 bytes .../res/drawable-nodpi/weather_faded_na.png | Bin 0 -> 1815 bytes .../drawable-nodpi/weather_faded_refresh.png | Bin 0 -> 1815 bytes .../main/res/drawable-nodpi/weather_gs6_0.png | Bin 0 -> 1886 bytes .../main/res/drawable-nodpi/weather_gs6_1.png | Bin 0 -> 1886 bytes .../res/drawable-nodpi/weather_gs6_10.png | Bin 0 -> 1516 bytes .../res/drawable-nodpi/weather_gs6_11.png | Bin 0 -> 1516 bytes .../res/drawable-nodpi/weather_gs6_12.png | Bin 0 -> 1516 bytes .../res/drawable-nodpi/weather_gs6_13.png | Bin 0 -> 1899 bytes .../res/drawable-nodpi/weather_gs6_14.png | Bin 0 -> 1899 bytes .../res/drawable-nodpi/weather_gs6_15.png | Bin 0 -> 1899 bytes .../res/drawable-nodpi/weather_gs6_16.png | Bin 0 -> 1899 bytes .../res/drawable-nodpi/weather_gs6_17.png | Bin 0 -> 1637 bytes .../res/drawable-nodpi/weather_gs6_18.png | Bin 0 -> 1637 bytes .../res/drawable-nodpi/weather_gs6_19.png | Bin 0 -> 1886 bytes .../main/res/drawable-nodpi/weather_gs6_2.png | Bin 0 -> 1886 bytes .../res/drawable-nodpi/weather_gs6_20.png | Bin 0 -> 1254 bytes .../res/drawable-nodpi/weather_gs6_21.png | Bin 0 -> 2202 bytes .../res/drawable-nodpi/weather_gs6_22.png | Bin 0 -> 1459 bytes .../res/drawable-nodpi/weather_gs6_23.png | Bin 0 -> 1886 bytes .../res/drawable-nodpi/weather_gs6_24.png | Bin 0 -> 1886 bytes .../res/drawable-nodpi/weather_gs6_25.png | Bin 0 -> 2287 bytes .../res/drawable-nodpi/weather_gs6_26.png | Bin 0 -> 1254 bytes .../res/drawable-nodpi/weather_gs6_27.png | Bin 0 -> 2093 bytes .../res/drawable-nodpi/weather_gs6_28.png | Bin 0 -> 2202 bytes .../res/drawable-nodpi/weather_gs6_29.png | Bin 0 -> 2093 bytes .../main/res/drawable-nodpi/weather_gs6_3.png | Bin 0 -> 1857 bytes .../res/drawable-nodpi/weather_gs6_30.png | Bin 0 -> 2202 bytes .../res/drawable-nodpi/weather_gs6_31.png | Bin 0 -> 1308 bytes .../res/drawable-nodpi/weather_gs6_32.png | Bin 0 -> 1724 bytes .../res/drawable-nodpi/weather_gs6_33.png | Bin 0 -> 1308 bytes .../res/drawable-nodpi/weather_gs6_34.png | Bin 0 -> 1724 bytes .../res/drawable-nodpi/weather_gs6_35.png | Bin 0 -> 1917 bytes .../res/drawable-nodpi/weather_gs6_36.png | Bin 0 -> 1959 bytes .../res/drawable-nodpi/weather_gs6_37.png | Bin 0 -> 2932 bytes .../res/drawable-nodpi/weather_gs6_38.png | Bin 0 -> 2932 bytes .../res/drawable-nodpi/weather_gs6_39.png | Bin 0 -> 2932 bytes .../main/res/drawable-nodpi/weather_gs6_4.png | Bin 0 -> 1857 bytes .../res/drawable-nodpi/weather_gs6_40.png | Bin 0 -> 2573 bytes .../res/drawable-nodpi/weather_gs6_41.png | Bin 0 -> 1899 bytes .../res/drawable-nodpi/weather_gs6_42.png | Bin 0 -> 1899 bytes .../res/drawable-nodpi/weather_gs6_43.png | Bin 0 -> 1899 bytes .../res/drawable-nodpi/weather_gs6_44.png | Bin 0 -> 2093 bytes .../res/drawable-nodpi/weather_gs6_45.png | Bin 0 -> 1857 bytes .../res/drawable-nodpi/weather_gs6_46.png | Bin 0 -> 1899 bytes .../res/drawable-nodpi/weather_gs6_47.png | Bin 0 -> 1857 bytes .../main/res/drawable-nodpi/weather_gs6_5.png | Bin 0 -> 1674 bytes .../main/res/drawable-nodpi/weather_gs6_6.png | Bin 0 -> 1674 bytes .../main/res/drawable-nodpi/weather_gs6_7.png | Bin 0 -> 1674 bytes .../main/res/drawable-nodpi/weather_gs6_8.png | Bin 0 -> 1917 bytes .../main/res/drawable-nodpi/weather_gs6_9.png | Bin 0 -> 1917 bytes .../res/drawable-nodpi/weather_gs6_na.png | Bin 0 -> 1692 bytes .../drawable-nodpi/weather_gs6_refresh.png | Bin 0 -> 1739 bytes .../res/drawable-nodpi/weather_magical_0.png | Bin 0 -> 12113 bytes .../res/drawable-nodpi/weather_magical_1.png | Bin 0 -> 14341 bytes .../res/drawable-nodpi/weather_magical_10.png | Bin 0 -> 12440 bytes .../res/drawable-nodpi/weather_magical_11.png | Bin 0 -> 13693 bytes .../res/drawable-nodpi/weather_magical_12.png | Bin 0 -> 13693 bytes .../res/drawable-nodpi/weather_magical_13.png | Bin 0 -> 15756 bytes .../res/drawable-nodpi/weather_magical_14.png | Bin 0 -> 12440 bytes .../res/drawable-nodpi/weather_magical_15.png | Bin 0 -> 15756 bytes .../res/drawable-nodpi/weather_magical_16.png | Bin 0 -> 15756 bytes .../res/drawable-nodpi/weather_magical_17.png | Bin 0 -> 16497 bytes .../res/drawable-nodpi/weather_magical_18.png | Bin 0 -> 12440 bytes .../res/drawable-nodpi/weather_magical_19.png | Bin 0 -> 14681 bytes .../res/drawable-nodpi/weather_magical_2.png | Bin 0 -> 14341 bytes .../res/drawable-nodpi/weather_magical_20.png | Bin 0 -> 14681 bytes .../res/drawable-nodpi/weather_magical_21.png | Bin 0 -> 14681 bytes .../res/drawable-nodpi/weather_magical_22.png | Bin 0 -> 9474 bytes .../res/drawable-nodpi/weather_magical_23.png | Bin 0 -> 9069 bytes .../res/drawable-nodpi/weather_magical_24.png | Bin 0 -> 9069 bytes .../res/drawable-nodpi/weather_magical_25.png | Bin 0 -> 13914 bytes .../res/drawable-nodpi/weather_magical_26.png | Bin 0 -> 12280 bytes .../res/drawable-nodpi/weather_magical_27.png | Bin 0 -> 15155 bytes .../res/drawable-nodpi/weather_magical_28.png | Bin 0 -> 14213 bytes .../res/drawable-nodpi/weather_magical_29.png | Bin 0 -> 11215 bytes .../res/drawable-nodpi/weather_magical_3.png | Bin 0 -> 14341 bytes .../res/drawable-nodpi/weather_magical_30.png | Bin 0 -> 12633 bytes .../res/drawable-nodpi/weather_magical_31.png | Bin 0 -> 3754 bytes .../res/drawable-nodpi/weather_magical_32.png | Bin 0 -> 10469 bytes .../res/drawable-nodpi/weather_magical_33.png | Bin 0 -> 8773 bytes .../res/drawable-nodpi/weather_magical_34.png | Bin 0 -> 14244 bytes .../res/drawable-nodpi/weather_magical_35.png | Bin 0 -> 13345 bytes .../res/drawable-nodpi/weather_magical_36.png | Bin 0 -> 9746 bytes .../res/drawable-nodpi/weather_magical_37.png | Bin 0 -> 14767 bytes .../res/drawable-nodpi/weather_magical_38.png | Bin 0 -> 14502 bytes .../res/drawable-nodpi/weather_magical_39.png | Bin 0 -> 14502 bytes .../res/drawable-nodpi/weather_magical_4.png | Bin 0 -> 14341 bytes .../res/drawable-nodpi/weather_magical_40.png | Bin 0 -> 13232 bytes .../res/drawable-nodpi/weather_magical_41.png | Bin 0 -> 15756 bytes .../res/drawable-nodpi/weather_magical_42.png | Bin 0 -> 15756 bytes .../res/drawable-nodpi/weather_magical_43.png | Bin 0 -> 14940 bytes .../res/drawable-nodpi/weather_magical_44.png | Bin 0 -> 15155 bytes .../res/drawable-nodpi/weather_magical_45.png | Bin 0 -> 12223 bytes .../res/drawable-nodpi/weather_magical_46.png | Bin 0 -> 12421 bytes .../res/drawable-nodpi/weather_magical_47.png | Bin 0 -> 14996 bytes .../res/drawable-nodpi/weather_magical_5.png | Bin 0 -> 12440 bytes .../res/drawable-nodpi/weather_magical_6.png | Bin 0 -> 12440 bytes .../res/drawable-nodpi/weather_magical_7.png | Bin 0 -> 15756 bytes .../res/drawable-nodpi/weather_magical_8.png | Bin 0 -> 13232 bytes .../res/drawable-nodpi/weather_magical_9.png | Bin 0 -> 10834 bytes .../res/drawable-nodpi/weather_magical_na.png | Bin 0 -> 2460 bytes .../res/drawable-nodpi/weather_miui_0.png | Bin 0 -> 7383 bytes .../res/drawable-nodpi/weather_miui_1.png | Bin 0 -> 7383 bytes .../res/drawable-nodpi/weather_miui_10.png | Bin 0 -> 6314 bytes .../res/drawable-nodpi/weather_miui_11.png | Bin 0 -> 7506 bytes .../res/drawable-nodpi/weather_miui_12.png | Bin 0 -> 7506 bytes .../res/drawable-nodpi/weather_miui_13.png | Bin 0 -> 8002 bytes .../res/drawable-nodpi/weather_miui_14.png | Bin 0 -> 6314 bytes .../res/drawable-nodpi/weather_miui_15.png | Bin 0 -> 8002 bytes .../res/drawable-nodpi/weather_miui_16.png | Bin 0 -> 8002 bytes .../res/drawable-nodpi/weather_miui_17.png | Bin 0 -> 7506 bytes .../res/drawable-nodpi/weather_miui_18.png | Bin 0 -> 6314 bytes .../res/drawable-nodpi/weather_miui_19.png | Bin 0 -> 4690 bytes .../res/drawable-nodpi/weather_miui_2.png | Bin 0 -> 7383 bytes .../res/drawable-nodpi/weather_miui_20.png | Bin 0 -> 5556 bytes .../res/drawable-nodpi/weather_miui_21.png | Bin 0 -> 5556 bytes .../res/drawable-nodpi/weather_miui_22.png | Bin 0 -> 4690 bytes .../res/drawable-nodpi/weather_miui_23.png | Bin 0 -> 4690 bytes .../res/drawable-nodpi/weather_miui_24.png | Bin 0 -> 5558 bytes .../res/drawable-nodpi/weather_miui_25.png | Bin 0 -> 4690 bytes .../res/drawable-nodpi/weather_miui_26.png | Bin 0 -> 5558 bytes .../res/drawable-nodpi/weather_miui_27.png | Bin 0 -> 9077 bytes .../res/drawable-nodpi/weather_miui_28.png | Bin 0 -> 7489 bytes .../res/drawable-nodpi/weather_miui_29.png | Bin 0 -> 9157 bytes .../res/drawable-nodpi/weather_miui_3.png | Bin 0 -> 7383 bytes .../res/drawable-nodpi/weather_miui_30.png | Bin 0 -> 6917 bytes .../res/drawable-nodpi/weather_miui_31.png | Bin 0 -> 7492 bytes .../res/drawable-nodpi/weather_miui_32.png | Bin 0 -> 4551 bytes .../res/drawable-nodpi/weather_miui_33.png | Bin 0 -> 7492 bytes .../res/drawable-nodpi/weather_miui_34.png | Bin 0 -> 4551 bytes .../res/drawable-nodpi/weather_miui_35.png | Bin 0 -> 6314 bytes .../res/drawable-nodpi/weather_miui_36.png | Bin 0 -> 4551 bytes .../res/drawable-nodpi/weather_miui_37.png | Bin 0 -> 10104 bytes .../res/drawable-nodpi/weather_miui_38.png | Bin 0 -> 10104 bytes .../res/drawable-nodpi/weather_miui_39.png | Bin 0 -> 10104 bytes .../res/drawable-nodpi/weather_miui_4.png | Bin 0 -> 7383 bytes .../res/drawable-nodpi/weather_miui_40.png | Bin 0 -> 8977 bytes .../res/drawable-nodpi/weather_miui_41.png | Bin 0 -> 8002 bytes .../res/drawable-nodpi/weather_miui_42.png | Bin 0 -> 8002 bytes .../res/drawable-nodpi/weather_miui_43.png | Bin 0 -> 8002 bytes .../res/drawable-nodpi/weather_miui_44.png | Bin 0 -> 5558 bytes .../res/drawable-nodpi/weather_miui_45.png | Bin 0 -> 9756 bytes .../res/drawable-nodpi/weather_miui_46.png | Bin 0 -> 8002 bytes .../res/drawable-nodpi/weather_miui_47.png | Bin 0 -> 9303 bytes .../res/drawable-nodpi/weather_miui_5.png | Bin 0 -> 6314 bytes .../res/drawable-nodpi/weather_miui_6.png | Bin 0 -> 6314 bytes .../res/drawable-nodpi/weather_miui_7.png | Bin 0 -> 8002 bytes .../res/drawable-nodpi/weather_miui_8.png | Bin 0 -> 6314 bytes .../res/drawable-nodpi/weather_miui_9.png | Bin 0 -> 6924 bytes .../res/drawable-nodpi/weather_miui_na.png | Bin 0 -> 890 bytes .../res/drawable-nodpi/weather_sthul_0.png | Bin 0 -> 7059 bytes .../res/drawable-nodpi/weather_sthul_1.png | Bin 0 -> 8394 bytes .../res/drawable-nodpi/weather_sthul_10.png | Bin 0 -> 5516 bytes .../res/drawable-nodpi/weather_sthul_11.png | Bin 0 -> 4716 bytes .../res/drawable-nodpi/weather_sthul_12.png | Bin 0 -> 4545 bytes .../res/drawable-nodpi/weather_sthul_13.png | Bin 0 -> 6696 bytes .../res/drawable-nodpi/weather_sthul_14.png | Bin 0 -> 6526 bytes .../res/drawable-nodpi/weather_sthul_15.png | Bin 0 -> 8109 bytes .../res/drawable-nodpi/weather_sthul_16.png | Bin 0 -> 6717 bytes .../res/drawable-nodpi/weather_sthul_17.png | Bin 0 -> 3847 bytes .../res/drawable-nodpi/weather_sthul_18.png | Bin 0 -> 4694 bytes .../res/drawable-nodpi/weather_sthul_19.png | Bin 0 -> 3271 bytes .../res/drawable-nodpi/weather_sthul_2.png | Bin 0 -> 9267 bytes .../res/drawable-nodpi/weather_sthul_20.png | Bin 0 -> 3466 bytes .../res/drawable-nodpi/weather_sthul_21.png | Bin 0 -> 5515 bytes .../res/drawable-nodpi/weather_sthul_22.png | Bin 0 -> 2911 bytes .../res/drawable-nodpi/weather_sthul_23.png | Bin 0 -> 4574 bytes .../res/drawable-nodpi/weather_sthul_24.png | Bin 0 -> 3861 bytes .../res/drawable-nodpi/weather_sthul_25.png | Bin 0 -> 3708 bytes .../res/drawable-nodpi/weather_sthul_26.png | Bin 0 -> 3076 bytes .../res/drawable-nodpi/weather_sthul_27.png | Bin 0 -> 4039 bytes .../res/drawable-nodpi/weather_sthul_28.png | Bin 0 -> 5002 bytes .../res/drawable-nodpi/weather_sthul_29.png | Bin 0 -> 3905 bytes .../res/drawable-nodpi/weather_sthul_3.png | Bin 0 -> 4887 bytes .../res/drawable-nodpi/weather_sthul_30.png | Bin 0 -> 4681 bytes .../res/drawable-nodpi/weather_sthul_31.png | Bin 0 -> 3844 bytes .../res/drawable-nodpi/weather_sthul_32.png | Bin 0 -> 4825 bytes .../res/drawable-nodpi/weather_sthul_33.png | Bin 0 -> 4008 bytes .../res/drawable-nodpi/weather_sthul_34.png | Bin 0 -> 4524 bytes .../res/drawable-nodpi/weather_sthul_35.png | Bin 0 -> 5100 bytes .../res/drawable-nodpi/weather_sthul_36.png | Bin 0 -> 5516 bytes .../res/drawable-nodpi/weather_sthul_37.png | Bin 0 -> 4888 bytes .../res/drawable-nodpi/weather_sthul_38.png | Bin 0 -> 5049 bytes .../res/drawable-nodpi/weather_sthul_39.png | Bin 0 -> 4094 bytes .../res/drawable-nodpi/weather_sthul_4.png | Bin 0 -> 5032 bytes .../res/drawable-nodpi/weather_sthul_40.png | Bin 0 -> 4508 bytes .../res/drawable-nodpi/weather_sthul_41.png | Bin 0 -> 8167 bytes .../res/drawable-nodpi/weather_sthul_42.png | Bin 0 -> 6413 bytes .../res/drawable-nodpi/weather_sthul_43.png | Bin 0 -> 7261 bytes .../res/drawable-nodpi/weather_sthul_44.png | Bin 0 -> 3677 bytes .../res/drawable-nodpi/weather_sthul_45.png | Bin 0 -> 5159 bytes .../res/drawable-nodpi/weather_sthul_46.png | Bin 0 -> 6174 bytes .../res/drawable-nodpi/weather_sthul_47.png | Bin 0 -> 4291 bytes .../res/drawable-nodpi/weather_sthul_5.png | Bin 0 -> 5632 bytes .../res/drawable-nodpi/weather_sthul_6.png | Bin 0 -> 5347 bytes .../res/drawable-nodpi/weather_sthul_7.png | Bin 0 -> 5675 bytes .../res/drawable-nodpi/weather_sthul_8.png | Bin 0 -> 5089 bytes .../res/drawable-nodpi/weather_sthul_9.png | Bin 0 -> 4718 bytes .../res/drawable-nodpi/weather_sthul_na.png | Bin 0 -> 4718 bytes .../res/drawable-nodpi/weather_tapas_0.png | Bin 0 -> 8587 bytes .../res/drawable-nodpi/weather_tapas_1.png | Bin 0 -> 10177 bytes .../res/drawable-nodpi/weather_tapas_10.png | Bin 0 -> 6548 bytes .../res/drawable-nodpi/weather_tapas_11.png | Bin 0 -> 5048 bytes .../res/drawable-nodpi/weather_tapas_12.png | Bin 0 -> 5048 bytes .../res/drawable-nodpi/weather_tapas_13.png | Bin 0 -> 8399 bytes .../res/drawable-nodpi/weather_tapas_14.png | Bin 0 -> 8399 bytes .../res/drawable-nodpi/weather_tapas_15.png | Bin 0 -> 10157 bytes .../res/drawable-nodpi/weather_tapas_16.png | Bin 0 -> 9435 bytes .../res/drawable-nodpi/weather_tapas_17.png | Bin 0 -> 4050 bytes .../res/drawable-nodpi/weather_tapas_18.png | Bin 0 -> 8439 bytes .../res/drawable-nodpi/weather_tapas_19.png | Bin 0 -> 2449 bytes .../res/drawable-nodpi/weather_tapas_2.png | Bin 0 -> 10177 bytes .../res/drawable-nodpi/weather_tapas_20.png | Bin 0 -> 3331 bytes .../res/drawable-nodpi/weather_tapas_21.png | Bin 0 -> 4378 bytes .../res/drawable-nodpi/weather_tapas_22.png | Bin 0 -> 2412 bytes .../res/drawable-nodpi/weather_tapas_23.png | Bin 0 -> 4334 bytes .../res/drawable-nodpi/weather_tapas_24.png | Bin 0 -> 3922 bytes .../res/drawable-nodpi/weather_tapas_25.png | Bin 0 -> 3724 bytes .../res/drawable-nodpi/weather_tapas_26.png | Bin 0 -> 2405 bytes .../res/drawable-nodpi/weather_tapas_27.png | Bin 0 -> 4329 bytes .../res/drawable-nodpi/weather_tapas_28.png | Bin 0 -> 5006 bytes .../res/drawable-nodpi/weather_tapas_29.png | Bin 0 -> 4278 bytes .../res/drawable-nodpi/weather_tapas_3.png | Bin 0 -> 4544 bytes .../res/drawable-nodpi/weather_tapas_30.png | Bin 0 -> 5319 bytes .../res/drawable-nodpi/weather_tapas_31.png | Bin 0 -> 3871 bytes .../res/drawable-nodpi/weather_tapas_32.png | Bin 0 -> 4944 bytes .../res/drawable-nodpi/weather_tapas_33.png | Bin 0 -> 3871 bytes .../res/drawable-nodpi/weather_tapas_34.png | Bin 0 -> 4944 bytes .../res/drawable-nodpi/weather_tapas_35.png | Bin 0 -> 6659 bytes .../res/drawable-nodpi/weather_tapas_36.png | Bin 0 -> 6295 bytes .../res/drawable-nodpi/weather_tapas_37.png | Bin 0 -> 5117 bytes .../res/drawable-nodpi/weather_tapas_38.png | Bin 0 -> 5117 bytes .../res/drawable-nodpi/weather_tapas_39.png | Bin 0 -> 5117 bytes .../res/drawable-nodpi/weather_tapas_4.png | Bin 0 -> 4544 bytes .../res/drawable-nodpi/weather_tapas_40.png | Bin 0 -> 6284 bytes .../res/drawable-nodpi/weather_tapas_41.png | Bin 0 -> 9452 bytes .../res/drawable-nodpi/weather_tapas_42.png | Bin 0 -> 9067 bytes .../res/drawable-nodpi/weather_tapas_43.png | Bin 0 -> 9650 bytes .../res/drawable-nodpi/weather_tapas_44.png | Bin 0 -> 4194 bytes .../res/drawable-nodpi/weather_tapas_45.png | Bin 0 -> 5891 bytes .../res/drawable-nodpi/weather_tapas_46.png | Bin 0 -> 8510 bytes .../res/drawable-nodpi/weather_tapas_47.png | Bin 0 -> 5010 bytes .../res/drawable-nodpi/weather_vclouds_0.png | Bin 0 -> 8098 bytes .../res/drawable-nodpi/weather_vclouds_1.png | Bin 0 -> 8098 bytes .../res/drawable-nodpi/weather_vclouds_10.png | Bin 0 -> 7734 bytes .../res/drawable-nodpi/weather_vclouds_11.png | Bin 0 -> 6179 bytes .../res/drawable-nodpi/weather_vclouds_12.png | Bin 0 -> 7654 bytes .../res/drawable-nodpi/weather_vclouds_13.png | Bin 0 -> 5262 bytes .../res/drawable-nodpi/weather_vclouds_14.png | Bin 0 -> 5679 bytes .../res/drawable-nodpi/weather_vclouds_15.png | Bin 0 -> 7885 bytes .../res/drawable-nodpi/weather_vclouds_16.png | Bin 0 -> 5804 bytes .../res/drawable-nodpi/weather_vclouds_17.png | Bin 0 -> 8098 bytes .../res/drawable-nodpi/weather_vclouds_18.png | Bin 0 -> 6284 bytes .../res/drawable-nodpi/weather_vclouds_19.png | Bin 0 -> 2332 bytes .../res/drawable-nodpi/weather_vclouds_2.png | Bin 0 -> 8098 bytes .../res/drawable-nodpi/weather_vclouds_20.png | Bin 0 -> 1696 bytes .../res/drawable-nodpi/weather_vclouds_21.png | Bin 0 -> 2316 bytes .../res/drawable-nodpi/weather_vclouds_22.png | Bin 0 -> 2170 bytes .../res/drawable-nodpi/weather_vclouds_23.png | Bin 0 -> 5604 bytes .../res/drawable-nodpi/weather_vclouds_24.png | Bin 0 -> 5604 bytes .../res/drawable-nodpi/weather_vclouds_25.png | Bin 0 -> 4646 bytes .../res/drawable-nodpi/weather_vclouds_26.png | Bin 0 -> 5084 bytes .../res/drawable-nodpi/weather_vclouds_27.png | Bin 0 -> 5170 bytes .../res/drawable-nodpi/weather_vclouds_28.png | Bin 0 -> 7085 bytes .../res/drawable-nodpi/weather_vclouds_29.png | Bin 0 -> 3840 bytes .../res/drawable-nodpi/weather_vclouds_3.png | Bin 0 -> 8098 bytes .../res/drawable-nodpi/weather_vclouds_30.png | Bin 0 -> 5210 bytes .../res/drawable-nodpi/weather_vclouds_31.png | Bin 0 -> 2347 bytes .../res/drawable-nodpi/weather_vclouds_32.png | Bin 0 -> 3192 bytes .../res/drawable-nodpi/weather_vclouds_33.png | Bin 0 -> 3487 bytes .../res/drawable-nodpi/weather_vclouds_34.png | Bin 0 -> 4583 bytes .../res/drawable-nodpi/weather_vclouds_35.png | Bin 0 -> 8098 bytes .../res/drawable-nodpi/weather_vclouds_36.png | Bin 0 -> 3031 bytes .../res/drawable-nodpi/weather_vclouds_37.png | Bin 0 -> 7128 bytes .../res/drawable-nodpi/weather_vclouds_38.png | Bin 0 -> 7128 bytes .../res/drawable-nodpi/weather_vclouds_39.png | Bin 0 -> 7068 bytes .../res/drawable-nodpi/weather_vclouds_4.png | Bin 0 -> 8098 bytes .../res/drawable-nodpi/weather_vclouds_40.png | Bin 0 -> 7654 bytes .../res/drawable-nodpi/weather_vclouds_41.png | Bin 0 -> 6141 bytes .../res/drawable-nodpi/weather_vclouds_42.png | Bin 0 -> 5804 bytes .../res/drawable-nodpi/weather_vclouds_43.png | Bin 0 -> 7885 bytes .../res/drawable-nodpi/weather_vclouds_44.png | Bin 0 -> 3589 bytes .../res/drawable-nodpi/weather_vclouds_45.png | Bin 0 -> 6470 bytes .../res/drawable-nodpi/weather_vclouds_46.png | Bin 0 -> 5440 bytes .../res/drawable-nodpi/weather_vclouds_47.png | Bin 0 -> 7123 bytes .../res/drawable-nodpi/weather_vclouds_5.png | Bin 0 -> 7162 bytes .../res/drawable-nodpi/weather_vclouds_6.png | Bin 0 -> 7668 bytes .../res/drawable-nodpi/weather_vclouds_7.png | Bin 0 -> 7419 bytes .../res/drawable-nodpi/weather_vclouds_8.png | Bin 0 -> 6454 bytes .../res/drawable-nodpi/weather_vclouds_9.png | Bin 0 -> 6298 bytes .../res/drawable-nodpi/weather_vclouds_na.png | Bin 0 -> 3589 bytes .../res/drawable-nodpi/weather_weezle_0.png | Bin 0 -> 5617 bytes .../res/drawable-nodpi/weather_weezle_1.png | Bin 0 -> 530 bytes .../res/drawable-nodpi/weather_weezle_10.png | Bin 0 -> 4231 bytes .../res/drawable-nodpi/weather_weezle_11.png | Bin 0 -> 5150 bytes .../res/drawable-nodpi/weather_weezle_12.png | Bin 0 -> 5150 bytes .../res/drawable-nodpi/weather_weezle_13.png | Bin 0 -> 4923 bytes .../res/drawable-nodpi/weather_weezle_14.png | Bin 0 -> 4699 bytes .../res/drawable-nodpi/weather_weezle_15.png | Bin 0 -> 4699 bytes .../res/drawable-nodpi/weather_weezle_16.png | Bin 0 -> 4923 bytes .../res/drawable-nodpi/weather_weezle_17.png | Bin 0 -> 4231 bytes .../res/drawable-nodpi/weather_weezle_18.png | Bin 0 -> 4231 bytes .../res/drawable-nodpi/weather_weezle_19.png | Bin 0 -> 530 bytes .../res/drawable-nodpi/weather_weezle_2.png | Bin 0 -> 530 bytes .../res/drawable-nodpi/weather_weezle_20.png | Bin 0 -> 530 bytes .../res/drawable-nodpi/weather_weezle_21.png | Bin 0 -> 530 bytes .../res/drawable-nodpi/weather_weezle_22.png | Bin 0 -> 530 bytes .../res/drawable-nodpi/weather_weezle_23.png | Bin 0 -> 3929 bytes .../res/drawable-nodpi/weather_weezle_24.png | Bin 0 -> 2712 bytes .../res/drawable-nodpi/weather_weezle_25.png | Bin 0 -> 1304 bytes .../res/drawable-nodpi/weather_weezle_26.png | Bin 0 -> 3929 bytes .../res/drawable-nodpi/weather_weezle_27.png | Bin 0 -> 3877 bytes .../res/drawable-nodpi/weather_weezle_28.png | Bin 0 -> 5481 bytes .../res/drawable-nodpi/weather_weezle_29.png | Bin 0 -> 3877 bytes .../res/drawable-nodpi/weather_weezle_3.png | Bin 0 -> 5617 bytes .../res/drawable-nodpi/weather_weezle_30.png | Bin 0 -> 5130 bytes .../res/drawable-nodpi/weather_weezle_31.png | Bin 0 -> 3489 bytes .../res/drawable-nodpi/weather_weezle_32.png | Bin 0 -> 3526 bytes .../res/drawable-nodpi/weather_weezle_33.png | Bin 0 -> 4024 bytes .../res/drawable-nodpi/weather_weezle_34.png | Bin 0 -> 4625 bytes .../res/drawable-nodpi/weather_weezle_35.png | Bin 0 -> 5607 bytes .../res/drawable-nodpi/weather_weezle_36.png | Bin 0 -> 1278 bytes .../res/drawable-nodpi/weather_weezle_37.png | Bin 0 -> 6668 bytes .../res/drawable-nodpi/weather_weezle_38.png | Bin 0 -> 6668 bytes .../res/drawable-nodpi/weather_weezle_39.png | Bin 0 -> 6668 bytes .../res/drawable-nodpi/weather_weezle_4.png | Bin 0 -> 5617 bytes .../res/drawable-nodpi/weather_weezle_40.png | Bin 0 -> 6257 bytes .../res/drawable-nodpi/weather_weezle_41.png | Bin 0 -> 4923 bytes .../res/drawable-nodpi/weather_weezle_42.png | Bin 0 -> 4699 bytes .../res/drawable-nodpi/weather_weezle_43.png | Bin 0 -> 4923 bytes .../res/drawable-nodpi/weather_weezle_44.png | Bin 0 -> 3877 bytes .../res/drawable-nodpi/weather_weezle_45.png | Bin 0 -> 5017 bytes .../res/drawable-nodpi/weather_weezle_46.png | Bin 0 -> 4159 bytes .../res/drawable-nodpi/weather_weezle_47.png | Bin 0 -> 5017 bytes .../res/drawable-nodpi/weather_weezle_5.png | Bin 0 -> 5607 bytes .../res/drawable-nodpi/weather_weezle_6.png | Bin 0 -> 5607 bytes .../res/drawable-nodpi/weather_weezle_7.png | Bin 0 -> 5607 bytes .../res/drawable-nodpi/weather_weezle_8.png | Bin 0 -> 4231 bytes .../res/drawable-nodpi/weather_weezle_9.png | Bin 0 -> 4762 bytes .../res/drawable-nodpi/weather_weezle_na.png | Bin 0 -> 1588 bytes app/src/main/res/drawable/outline_0.xml | 44 ++++++ app/src/main/res/drawable/outline_1.xml | 50 +++++++ app/src/main/res/drawable/outline_10.xml | 76 ++++++++++ app/src/main/res/drawable/outline_11.xml | 102 +++++++++++++ app/src/main/res/drawable/outline_12.xml | 94 ++++++++++++ app/src/main/res/drawable/outline_13.xml | 82 ++++++++++ app/src/main/res/drawable/outline_14.xml | 92 ++++++++++++ app/src/main/res/drawable/outline_15.xml | 133 +++++++++++++++++ app/src/main/res/drawable/outline_16.xml | 92 ++++++++++++ app/src/main/res/drawable/outline_17.xml | 99 ++++++++++++ app/src/main/res/drawable/outline_18.xml | 76 ++++++++++ app/src/main/res/drawable/outline_19.xml | 25 ++++ app/src/main/res/drawable/outline_2.xml | 44 ++++++ app/src/main/res/drawable/outline_20.xml | 25 ++++ app/src/main/res/drawable/outline_21.xml | 25 ++++ app/src/main/res/drawable/outline_22.xml | 25 ++++ app/src/main/res/drawable/outline_23.xml | 25 ++++ app/src/main/res/drawable/outline_24.xml | 44 ++++++ app/src/main/res/drawable/outline_25.xml | 44 ++++++ app/src/main/res/drawable/outline_26.xml | 54 +++++++ app/src/main/res/drawable/outline_27.xml | 53 +++++++ app/src/main/res/drawable/outline_28.xml | 53 +++++++ app/src/main/res/drawable/outline_29.xml | 45 ++++++ app/src/main/res/drawable/outline_3.xml | 50 +++++++ app/src/main/res/drawable/outline_30.xml | 113 ++++++++++++++ app/src/main/res/drawable/outline_31.xml | 19 +++ app/src/main/res/drawable/outline_32.xml | 113 ++++++++++++++ app/src/main/res/drawable/outline_33.xml | 19 +++ app/src/main/res/drawable/outline_34.xml | 113 ++++++++++++++ app/src/main/res/drawable/outline_35.xml | 76 ++++++++++ app/src/main/res/drawable/outline_36.xml | 44 ++++++ app/src/main/res/drawable/outline_37.xml | 140 +++++++++++++++++ app/src/main/res/drawable/outline_38.xml | 140 +++++++++++++++++ app/src/main/res/drawable/outline_39.xml | 140 +++++++++++++++++ app/src/main/res/drawable/outline_4.xml | 50 +++++++ app/src/main/res/drawable/outline_40.xml | 70 +++++++++ app/src/main/res/drawable/outline_41.xml | 133 +++++++++++++++++ app/src/main/res/drawable/outline_42.xml | 92 ++++++++++++ app/src/main/res/drawable/outline_43.xml | 133 +++++++++++++++++ app/src/main/res/drawable/outline_44.xml | 113 ++++++++++++++ app/src/main/res/drawable/outline_45.xml | 140 +++++++++++++++++ app/src/main/res/drawable/outline_46.xml | 106 +++++++++++++ app/src/main/res/drawable/outline_47.xml | 140 +++++++++++++++++ app/src/main/res/drawable/outline_5.xml | 106 +++++++++++++ app/src/main/res/drawable/outline_6.xml | 106 +++++++++++++ app/src/main/res/drawable/outline_7.xml | 106 +++++++++++++ app/src/main/res/drawable/outline_8.xml | 82 ++++++++++ app/src/main/res/drawable/outline_9.xml | 99 ++++++++++++ app/src/main/res/drawable/outline_na.xml | 30 ++++ app/src/main/res/drawable/weatherclient_0.xml | 36 +++++ app/src/main/res/drawable/weatherclient_1.xml | 36 +++++ .../main/res/drawable/weatherclient_10.xml | 54 +++++++ .../main/res/drawable/weatherclient_11.xml | 39 +++++ .../main/res/drawable/weatherclient_12.xml | 39 +++++ .../main/res/drawable/weatherclient_13.xml | 54 +++++++ .../main/res/drawable/weatherclient_14.xml | 54 +++++++ .../main/res/drawable/weatherclient_15.xml | 54 +++++++ .../main/res/drawable/weatherclient_16.xml | 54 +++++++ .../main/res/drawable/weatherclient_17.xml | 54 +++++++ .../main/res/drawable/weatherclient_18.xml | 54 +++++++ .../main/res/drawable/weatherclient_19.xml | 26 ++++ .../main/res/drawable/weatherclient_20.xml | 26 ++++ .../main/res/drawable/weatherclient_21.xml | 26 ++++ .../main/res/drawable/weatherclient_22.xml | 26 ++++ .../main/res/drawable/weatherclient_23.xml | 9 ++ .../main/res/drawable/weatherclient_24.xml | 9 ++ .../main/res/drawable/weatherclient_25.xml | 8 + .../main/res/drawable/weatherclient_26.xml | 33 ++++ .../main/res/drawable/weatherclient_27.xml | 33 ++++ .../main/res/drawable/weatherclient_28.xml | 36 +++++ .../main/res/drawable/weatherclient_29.xml | 33 ++++ app/src/main/res/drawable/weatherclient_3.xml | 36 +++++ .../main/res/drawable/weatherclient_30.xml | 36 +++++ .../main/res/drawable/weatherclient_31.xml | 33 ++++ .../main/res/drawable/weatherclient_32.xml | 24 +++ .../main/res/drawable/weatherclient_33.xml | 9 ++ .../main/res/drawable/weatherclient_34.xml | 24 +++ .../main/res/drawable/weatherclient_35.xml | 36 +++++ .../main/res/drawable/weatherclient_36.xml | 24 +++ .../main/res/drawable/weatherclient_37.xml | 45 ++++++ .../main/res/drawable/weatherclient_38.xml | 45 ++++++ .../main/res/drawable/weatherclient_39.xml | 45 ++++++ app/src/main/res/drawable/weatherclient_4.xml | 36 +++++ .../main/res/drawable/weatherclient_40.xml | 42 ++++++ .../main/res/drawable/weatherclient_41.xml | 54 +++++++ .../main/res/drawable/weatherclient_42.xml | 54 +++++++ .../main/res/drawable/weatherclient_43.xml | 36 +++++ .../main/res/drawable/weatherclient_44.xml | 36 +++++ .../main/res/drawable/weatherclient_45.xml | 36 +++++ .../main/res/drawable/weatherclient_46.xml | 54 +++++++ .../main/res/drawable/weatherclient_47.xml | 45 ++++++ app/src/main/res/drawable/weatherclient_5.xml | 36 +++++ app/src/main/res/drawable/weatherclient_6.xml | 54 +++++++ app/src/main/res/drawable/weatherclient_7.xml | 54 +++++++ app/src/main/res/drawable/weatherclient_8.xml | 54 +++++++ app/src/main/res/drawable/weatherclient_9.xml | 39 +++++ .../main/res/drawable/weatherclient_na.xml | 8 + .../res/raw/com_drdisagree_iconify_keep.xml | 17 ++- 683 files changed, 5819 insertions(+), 2 deletions(-) create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_0.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_1.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_10.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_11.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_12.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_13.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_14.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_15.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_16.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_17.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_18.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_19.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_2.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_20.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_21.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_22.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_23.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_24.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_25.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_26.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_27.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_28.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_29.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_3.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_30.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_31.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_32.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_33.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_34.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_35.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_36.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_37.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_38.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_39.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_4.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_40.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_41.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_42.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_43.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_44.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_45.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_46.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_47.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_5.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_6.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_7.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_8.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_9.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_na.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_0.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_1.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_10.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_11.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_12.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_13.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_14.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_15.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_16.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_17.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_18.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_19.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_2.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_20.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_21.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_22.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_23.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_24.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_25.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_26.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_27.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_28.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_29.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_3.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_30.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_31.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_32.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_33.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_34.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_35.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_36.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_37.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_38.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_39.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_4.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_40.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_41.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_42.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_43.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_44.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_45.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_46.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_47.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_5.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_6.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_7.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_8.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_9.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_na.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_0.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_1.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_10.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_11.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_12.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_13.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_14.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_15.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_16.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_17.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_18.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_19.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_2.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_20.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_21.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_22.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_23.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_24.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_25.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_26.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_27.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_28.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_29.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_3.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_30.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_31.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_32.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_33.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_34.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_35.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_36.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_37.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_38.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_39.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_4.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_40.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_41.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_42.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_43.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_44.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_45.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_46.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_47.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_5.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_6.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_7.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_8.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_9.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_na.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_0.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_1.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_10.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_11.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_12.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_13.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_14.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_15.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_16.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_17.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_18.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_19.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_2.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_20.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_21.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_22.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_23.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_24.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_25.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_26.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_27.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_28.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_29.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_3.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_30.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_31.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_32.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_33.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_34.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_35.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_36.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_37.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_38.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_39.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_4.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_40.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_41.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_42.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_43.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_44.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_45.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_46.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_47.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_5.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_6.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_7.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_8.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_9.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_na.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_0.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_1.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_10.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_11.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_12.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_13.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_14.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_15.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_16.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_17.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_18.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_19.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_2.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_20.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_21.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_22.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_23.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_24.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_25.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_26.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_27.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_28.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_29.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_3.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_30.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_31.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_32.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_33.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_34.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_35.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_36.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_37.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_38.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_39.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_4.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_40.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_41.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_42.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_43.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_44.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_45.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_46.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_47.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_5.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_6.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_7.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_8.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_9.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_na.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_refresh.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_0.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_1.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_10.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_11.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_12.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_13.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_14.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_15.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_16.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_17.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_18.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_19.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_2.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_20.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_21.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_22.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_23.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_24.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_25.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_26.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_27.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_28.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_29.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_3.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_30.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_31.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_32.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_33.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_34.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_35.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_36.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_37.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_38.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_39.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_4.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_40.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_41.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_42.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_43.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_44.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_45.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_46.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_47.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_5.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_6.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_7.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_8.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_9.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_na.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_refresh.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_0.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_1.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_10.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_11.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_12.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_13.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_14.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_15.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_16.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_17.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_18.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_19.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_2.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_20.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_21.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_22.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_23.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_24.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_25.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_26.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_27.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_28.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_29.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_3.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_30.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_31.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_32.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_33.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_34.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_35.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_36.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_37.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_38.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_39.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_4.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_40.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_41.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_42.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_43.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_44.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_45.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_46.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_47.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_5.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_6.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_7.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_8.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_9.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_na.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_0.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_1.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_10.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_11.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_12.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_13.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_14.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_15.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_16.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_17.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_18.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_19.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_2.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_20.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_21.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_22.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_23.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_24.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_25.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_26.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_27.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_28.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_29.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_3.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_30.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_31.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_32.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_33.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_34.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_35.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_36.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_37.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_38.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_39.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_4.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_40.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_41.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_42.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_43.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_44.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_45.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_46.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_47.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_5.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_6.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_7.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_8.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_9.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_na.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_0.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_1.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_10.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_11.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_12.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_13.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_14.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_15.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_16.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_17.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_18.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_19.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_2.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_20.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_21.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_22.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_23.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_24.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_25.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_26.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_27.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_28.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_29.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_3.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_30.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_31.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_32.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_33.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_34.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_35.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_36.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_37.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_38.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_39.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_4.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_40.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_41.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_42.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_43.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_44.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_45.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_46.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_47.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_5.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_6.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_7.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_8.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_9.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_na.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_0.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_1.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_10.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_11.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_12.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_13.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_14.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_15.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_16.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_17.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_18.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_19.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_2.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_20.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_21.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_22.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_23.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_24.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_25.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_26.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_27.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_28.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_29.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_3.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_30.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_31.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_32.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_33.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_34.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_35.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_36.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_37.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_38.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_39.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_4.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_40.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_41.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_42.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_43.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_44.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_45.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_46.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_47.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_0.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_1.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_10.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_11.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_12.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_13.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_14.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_15.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_16.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_17.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_18.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_19.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_2.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_20.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_21.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_22.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_23.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_24.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_25.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_26.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_27.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_28.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_29.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_3.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_30.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_31.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_32.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_33.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_34.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_35.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_36.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_37.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_38.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_39.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_4.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_40.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_41.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_42.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_43.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_44.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_45.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_46.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_47.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_5.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_6.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_7.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_8.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_9.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_na.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_0.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_1.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_10.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_11.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_12.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_13.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_14.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_15.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_16.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_17.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_18.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_19.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_2.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_20.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_21.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_22.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_23.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_24.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_25.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_26.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_27.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_28.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_29.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_3.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_30.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_31.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_32.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_33.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_34.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_35.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_36.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_37.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_38.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_39.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_4.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_40.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_41.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_42.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_43.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_44.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_45.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_46.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_47.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_5.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_6.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_7.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_8.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_9.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_na.png create mode 100644 app/src/main/res/drawable/outline_0.xml create mode 100644 app/src/main/res/drawable/outline_1.xml create mode 100644 app/src/main/res/drawable/outline_10.xml create mode 100644 app/src/main/res/drawable/outline_11.xml create mode 100644 app/src/main/res/drawable/outline_12.xml create mode 100644 app/src/main/res/drawable/outline_13.xml create mode 100644 app/src/main/res/drawable/outline_14.xml create mode 100644 app/src/main/res/drawable/outline_15.xml create mode 100644 app/src/main/res/drawable/outline_16.xml create mode 100644 app/src/main/res/drawable/outline_17.xml create mode 100644 app/src/main/res/drawable/outline_18.xml create mode 100644 app/src/main/res/drawable/outline_19.xml create mode 100644 app/src/main/res/drawable/outline_2.xml create mode 100644 app/src/main/res/drawable/outline_20.xml create mode 100644 app/src/main/res/drawable/outline_21.xml create mode 100644 app/src/main/res/drawable/outline_22.xml create mode 100644 app/src/main/res/drawable/outline_23.xml create mode 100644 app/src/main/res/drawable/outline_24.xml create mode 100644 app/src/main/res/drawable/outline_25.xml create mode 100644 app/src/main/res/drawable/outline_26.xml create mode 100644 app/src/main/res/drawable/outline_27.xml create mode 100644 app/src/main/res/drawable/outline_28.xml create mode 100644 app/src/main/res/drawable/outline_29.xml create mode 100644 app/src/main/res/drawable/outline_3.xml create mode 100644 app/src/main/res/drawable/outline_30.xml create mode 100644 app/src/main/res/drawable/outline_31.xml create mode 100644 app/src/main/res/drawable/outline_32.xml create mode 100644 app/src/main/res/drawable/outline_33.xml create mode 100644 app/src/main/res/drawable/outline_34.xml create mode 100644 app/src/main/res/drawable/outline_35.xml create mode 100644 app/src/main/res/drawable/outline_36.xml create mode 100644 app/src/main/res/drawable/outline_37.xml create mode 100644 app/src/main/res/drawable/outline_38.xml create mode 100644 app/src/main/res/drawable/outline_39.xml create mode 100644 app/src/main/res/drawable/outline_4.xml create mode 100644 app/src/main/res/drawable/outline_40.xml create mode 100644 app/src/main/res/drawable/outline_41.xml create mode 100644 app/src/main/res/drawable/outline_42.xml create mode 100644 app/src/main/res/drawable/outline_43.xml create mode 100644 app/src/main/res/drawable/outline_44.xml create mode 100644 app/src/main/res/drawable/outline_45.xml create mode 100644 app/src/main/res/drawable/outline_46.xml create mode 100644 app/src/main/res/drawable/outline_47.xml create mode 100644 app/src/main/res/drawable/outline_5.xml create mode 100644 app/src/main/res/drawable/outline_6.xml create mode 100644 app/src/main/res/drawable/outline_7.xml create mode 100644 app/src/main/res/drawable/outline_8.xml create mode 100644 app/src/main/res/drawable/outline_9.xml create mode 100644 app/src/main/res/drawable/outline_na.xml create mode 100644 app/src/main/res/drawable/weatherclient_0.xml create mode 100644 app/src/main/res/drawable/weatherclient_1.xml create mode 100644 app/src/main/res/drawable/weatherclient_10.xml create mode 100644 app/src/main/res/drawable/weatherclient_11.xml create mode 100644 app/src/main/res/drawable/weatherclient_12.xml create mode 100644 app/src/main/res/drawable/weatherclient_13.xml create mode 100644 app/src/main/res/drawable/weatherclient_14.xml create mode 100644 app/src/main/res/drawable/weatherclient_15.xml create mode 100644 app/src/main/res/drawable/weatherclient_16.xml create mode 100644 app/src/main/res/drawable/weatherclient_17.xml create mode 100644 app/src/main/res/drawable/weatherclient_18.xml create mode 100644 app/src/main/res/drawable/weatherclient_19.xml create mode 100644 app/src/main/res/drawable/weatherclient_20.xml create mode 100644 app/src/main/res/drawable/weatherclient_21.xml create mode 100644 app/src/main/res/drawable/weatherclient_22.xml create mode 100644 app/src/main/res/drawable/weatherclient_23.xml create mode 100644 app/src/main/res/drawable/weatherclient_24.xml create mode 100644 app/src/main/res/drawable/weatherclient_25.xml create mode 100644 app/src/main/res/drawable/weatherclient_26.xml create mode 100644 app/src/main/res/drawable/weatherclient_27.xml create mode 100644 app/src/main/res/drawable/weatherclient_28.xml create mode 100644 app/src/main/res/drawable/weatherclient_29.xml create mode 100644 app/src/main/res/drawable/weatherclient_3.xml create mode 100644 app/src/main/res/drawable/weatherclient_30.xml create mode 100644 app/src/main/res/drawable/weatherclient_31.xml create mode 100644 app/src/main/res/drawable/weatherclient_32.xml create mode 100644 app/src/main/res/drawable/weatherclient_33.xml create mode 100644 app/src/main/res/drawable/weatherclient_34.xml create mode 100644 app/src/main/res/drawable/weatherclient_35.xml create mode 100644 app/src/main/res/drawable/weatherclient_36.xml create mode 100644 app/src/main/res/drawable/weatherclient_37.xml create mode 100644 app/src/main/res/drawable/weatherclient_38.xml create mode 100644 app/src/main/res/drawable/weatherclient_39.xml create mode 100644 app/src/main/res/drawable/weatherclient_4.xml create mode 100644 app/src/main/res/drawable/weatherclient_40.xml create mode 100644 app/src/main/res/drawable/weatherclient_41.xml create mode 100644 app/src/main/res/drawable/weatherclient_42.xml create mode 100644 app/src/main/res/drawable/weatherclient_43.xml create mode 100644 app/src/main/res/drawable/weatherclient_44.xml create mode 100644 app/src/main/res/drawable/weatherclient_45.xml create mode 100644 app/src/main/res/drawable/weatherclient_46.xml create mode 100644 app/src/main/res/drawable/weatherclient_47.xml create mode 100644 app/src/main/res/drawable/weatherclient_5.xml create mode 100644 app/src/main/res/drawable/weatherclient_6.xml create mode 100644 app/src/main/res/drawable/weatherclient_7.xml create mode 100644 app/src/main/res/drawable/weatherclient_8.xml create mode 100644 app/src/main/res/drawable/weatherclient_9.xml create mode 100644 app/src/main/res/drawable/weatherclient_na.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5e5672a7c..6cf3dbb6f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -209,7 +209,146 @@ android:exported="false" android:label="Google"> - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_0.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_0.png new file mode 100644 index 0000000000000000000000000000000000000000..67f7027012d06db8f960786171522b1fad899efd GIT binary patch literal 1209 zcmV;q1V;ObP)YqPXSNBl{UvRylHZD)Jwo*~7tFZj6vJB`7JSFm-F0<#)83 zg#n6qBn5~6=BJ}9bEI)UY+@RS@^K1hgX4l6N!AeLIb3TbIU{jQECHtkIV(wNbk!N; zuHE6Vuw1DYr1+*vf);)HNE+Eay4fV z4v(4FMxE2*JvA-LB)Vcgqm3(dND4~=^}2gaUCd$CeBSa=CqgzPZl*wlqobDRLVLtB z;C=;Z_MV1&poy**d9^#5IIX3BzhX|T1g;>+_jfQSCszKu%gR{x+?F8T)7stngINVSCSPrEpkPKLt(NG$0q6; z-g*Ln%ly`c7hDb~-lFMvQ~tn2!L;Uo+g>&Kz*bhFl(9FEEv>zgA% zfcLY&q+(2T2Rv~;K&%a8Y|s%NxbXee2S~^xAVX2=;aeW0vG0-D@59tkufu(})13)e z*I?s>0$Z%s8j3IQZ}0CvFTZV}b#L!qYv@nykzI&v++h%v3yXu)ApKk(f>ezF6N;*(?1^^#xXTe?0;Bv_CG_Hya~+ewKL|m_DyY^$+R~ X*n74$JKN-j00000NkvXXu0mjfK;KgO literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_1.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_1.png new file mode 100644 index 0000000000000000000000000000000000000000..38e4fec6288b3e6191d6d409e893934b66a3aae2 GIT binary patch literal 983 zcmV;|11S87P)G$ST49v~_oAuAvvD<2{&AtNo9n7^Q)&7z{reSM&!qRby5EB*DUJ3LB>img>u zW3jA$m6C34Zi{|@pyJz^&dHC0e`9NERyhhP4FCWD4RlgYQvfdf6LOj1zDxc!wn5(?U9sBa1gV^CG-7MBVE9Ge&lAL7#GQ0-etRHLb%N}`25jMcuowi_Zl zGpVKgwOpZnmq`ITt4rZ*H7;QjQt=&sXTuNJS&crlS-r90m*|$;$~Z%7{_Lj^$kl3e zYb$T=_mzL3Yva_7`E#G{0_j#8T7-=~g|O$x_zwe_VXc~)$LFI{L6s!q1DQb9wSF!( zj{SMJ1KXn&JV)WmW`z5mTLY2di$6cbd&+7(60B4|n!ilCp3_72=f_`h9dfz!T{q7P zMe!l}K>dg-ahQBREVrt_b%16&#daTt76e}Wy_UVA^nv)9vg`El z;2~4all5L4I?d#*!mq6gfy}Trb7gD7YIpFxRl)uVZV%Xm5N@NtWI5gYKqkpbQVJ1H z)dG8cRbh_z6iXl~^o_e-!ZnvwYlrlgzSli>U4A*2Qzok(`(cucMuqdFGE}Z%=@8#@ z!5tmQ43MF6i#3p6-|ve%1XQ2xol%8)_;qeb-4>GGtut9wm_!WHwc_fIzMRP_=L;b& z`dfGOS%zn++(2ogzZ-!(pH+S-W^a1fEoero+^^QXn5(a2m_W2u$G&~W>)PZ;!Q|0a znO;=6-vvJ*_P@sb82wCnv{lBeqpi}2+&y=4a&mHV!#|cHiBOFLqqG13002ovPDHLk FV1gcm*5LpE literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_10.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_10.png new file mode 100644 index 0000000000000000000000000000000000000000..fb65d0bd7129019d67ebb674ba972a6e7c916e28 GIT binary patch literal 911 zcmV;A191F_P)4*Vx9#$y;1wt*)_eaCd=% zhnSh2EzVpD0000AbW%=J05KG6>adAR(KN}sK)e6|0{BTpK~#90?O0j1q$&_pAb}^7 z=>GTmKuhFafs!ih{%GQ-hJywfnHdbj(9zM+(b3WIk7C5Y2_YOPdx!yHE=~}N9^k-4 z2x(WXl+v@6j;A>d0!J}VCuSoAADeQFE{vFBqjAx+OpW6(YP!G*fzL4vv+)Z7k>i+B zSdLg2ki8x_{*;FcIZYWB;$AxXvXjOdUk(I+#6g8r8Is8e7_ehl^!8J&jt4#n23>Q0 zLOF$mu+b!D_fI_w2s`DmiZF+D-NMnbp2Y>C3nY^aaV}PF^`WGol_WS*SwXOP3VQO4 zy1IdQAtR~4>{fKVRxMRSqU5rbLzUyOY>#B1eF|+|R&cSlQdkzxbXzaPFb1(yl4u{g zb2W_F`$}f8+tFG{GI_n^{w$QM%r79qSZj=~B{8lXSLvS>WsmWmx2owQm=L>KN-G<3 z##Tw~VPZ2?OBxGZ#s{{Bf+nv7Zrz z{DE)~Qs(mR<<-AyH2%gx;^%31!+#f0czt1f|AcrvzjbyUf8czA(lC?ITYJZ$X#DUU z#;|w8<8R&;7`MfN98n>3;r$v2Cywr6gG^^%> zUVDVjcAMSn;HzG~$45dbX?777>4hT_XEdzgWm`B!owWCyY;qr#3x=hwr_06Q`h$)qz5Aja5-Vm lr9R+ktvWh7IyyRH{12b3W(N$7;OhVY002ovPDHLkV1nc;n)v_# literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_11.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_11.png new file mode 100644 index 0000000000000000000000000000000000000000..8c2c1e21dc0f2874953162b639c5a229c01cd581 GIT binary patch literal 837 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_2.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_2.png new file mode 100644 index 0000000000000000000000000000000000000000..67f7027012d06db8f960786171522b1fad899efd GIT binary patch literal 1209 zcmV;q1V;ObP)YqPXSNBl{UvRylHZD)Jwo*~7tFZj6vJB`7JSFm-F0<#)83 zg#n6qBn5~6=BJ}9bEI)UY+@RS@^K1hgX4l6N!AeLIb3TbIU{jQECHtkIV(wNbk!N; zuHE6Vuw1DYr1+*vf);)HNE+Eay4fV z4v(4FMxE2*JvA-LB)Vcgqm3(dND4~=^}2gaUCd$CeBSa=CqgzPZl*wlqobDRLVLtB z;C=;Z_MV1&poy**d9^#5IIX3BzhX|T1g;>+_jfQSCszKu%gR{x+?F8T)7stngINVSCSPrEpkPKLt(NG$0q6; z-g*Ln%ly`c7hDb~-lFMvQ~tn2!L;Uo+g>&Kz*bhFl(9FEEv>zgA% zfcLY&q+(2T2Rv~;K&%a8Y|s%NxbXee2S~^xAVX2=;aeW0vG0-D@59tkufu(})13)e z*I?s>0$Z%s8j3IQZ}0CvFTZV}b#L!qYv@nykzI&v++h%v3yXu)ApKk(f>ezF6N;*(?1^^#xXTe?0;Bv_CG_Hya~+ewKL|m_DyY^$+R~ X*n74$JKN-j00000NkvXXu0mjfK;KgO literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_20.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_20.png new file mode 100644 index 0000000000000000000000000000000000000000..f8c7055fdabb8975efdb8a18371ca07d18b693b2 GIT binary patch literal 606 zcmV-k0-^nhP)Jr50ozGLK~#90?UlVw!ay9rivf)rCKAGihG>|50ZcH44P1uhVQRq5X-DeT{5uE8(cFQConfKoCkgqm$4fqKhKj_E~rYWPbm7L zeGP#c25E%SaDpmXS}77HaoRWSQj`rDQ{V;KRGw%GRtnzA*&|iaDaB;^ROSA`v-o12 zt~9#E)QXX|&Xqw`n%39ca<@R5s2Ww_)rkT-q>`6S9Kef^B!g%{25u>BV!L`cm`2BC zB#_3S5Ce@%EC$xknO23!tj)A4#B{n$t3oJZXoc^DSHvGBw#hO{vV6uSyH5?{C`Vb> z#vp^iXn}i`Gc1`+MfWDhAvg@L+z>~sB-y*HlJpJh;TWT(zj+*iYTyBhX$}U%Ph$*F zT{`^MO?-9W0|>V(zZkCKd&5NpXLZHL_XN{a__VR$l%E srPo4@eFh3O_8FD`GxmsxhzK7(0HN%;Ttb}mxBvhE07*qoM6N<$f?+iUu>b%7 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_21.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_21.png new file mode 100644 index 0000000000000000000000000000000000000000..f8c7055fdabb8975efdb8a18371ca07d18b693b2 GIT binary patch literal 606 zcmV-k0-^nhP)Jr50ozGLK~#90?UlVw!ay9rivf)rCKAGihG>|50ZcH44P1uhVQRq5X-DeT{5uE8(cFQConfKoCkgqm$4fqKhKj_E~rYWPbm7L zeGP#c25E%SaDpmXS}77HaoRWSQj`rDQ{V;KRGw%GRtnzA*&|iaDaB;^ROSA`v-o12 zt~9#E)QXX|&Xqw`n%39ca<@R5s2Ww_)rkT-q>`6S9Kef^B!g%{25u>BV!L`cm`2BC zB#_3S5Ce@%EC$xknO23!tj)A4#B{n$t3oJZXoc^DSHvGBw#hO{vV6uSyH5?{C`Vb> z#vp^iXn}i`Gc1`+MfWDhAvg@L+z>~sB-y*HlJpJh;TWT(zj+*iYTyBhX$}U%Ph$*F zT{`^MO?-9W0|>V(zZkCKd&5NpXLZHL_XN{a__VR$l%E srPo4@eFh3O_8FD`GxmsxhzK7(0HN%;Ttb}mxBvhE07*qoM6N<$f?+iUu>b%7 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_22.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_22.png new file mode 100644 index 0000000000000000000000000000000000000000..f8c7055fdabb8975efdb8a18371ca07d18b693b2 GIT binary patch literal 606 zcmV-k0-^nhP)Jr50ozGLK~#90?UlVw!ay9rivf)rCKAGihG>|50ZcH44P1uhVQRq5X-DeT{5uE8(cFQConfKoCkgqm$4fqKhKj_E~rYWPbm7L zeGP#c25E%SaDpmXS}77HaoRWSQj`rDQ{V;KRGw%GRtnzA*&|iaDaB;^ROSA`v-o12 zt~9#E)QXX|&Xqw`n%39ca<@R5s2Ww_)rkT-q>`6S9Kef^B!g%{25u>BV!L`cm`2BC zB#_3S5Ce@%EC$xknO23!tj)A4#B{n$t3oJZXoc^DSHvGBw#hO{vV6uSyH5?{C`Vb> z#vp^iXn}i`Gc1`+MfWDhAvg@L+z>~sB-y*HlJpJh;TWT(zj+*iYTyBhX$}U%Ph$*F zT{`^MO?-9W0|>V(zZkCKd&5NpXLZHL_XN{a__VR$l%E srPo4@eFh3O_8FD`GxmsxhzK7(0HN%;Ttb}mxBvhE07*qoM6N<$f?+iUu>b%7 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_23.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_23.png new file mode 100644 index 0000000000000000000000000000000000000000..61c07a8b73707eb3326eeff4320f812168a58538 GIT binary patch literal 688 zcmV;h0#E&kP)yC|AlvP{0v>@zVV zW>#H==#X)q4DYI4f?N}i8Vw^a&`yj6R$}JciVjp+lUCY8<{T5dq>UA*qIDPJJ1fW|h ze2`nxl}%v7C{XRL5Iezc*QJ0#*4crkUqzHcQD{~8=?sXh3SUf0XjNF=GoBJJi7B;2 zcqJp2nC6?91bNiZp?!ifD3+@naf;%;z5ILT7sPo-noiMQzfHaq?$Nx~ zallM8U&I%O4hO(eoN=D*`y5KLN^u*nvY>B@-kBI>8Bs>N$5Q#+Wc7zr+GaBvPl+g5 zzQZE@lG!4LlL;v-v5U}3zu>>09uy@d4V{KlV#ZW16HbwHU`Qc}&;Q~YM?^&Y13m#W Wol1LQKl>s80000yC|AlvP{0v>@zVV zW>#H==#X)q4DYI4f?N}i8Vw^a&`yj6R$}JciVjp+lUCY8<{T5dq>UA*qIDPJJ1fW|h ze2`nxl}%v7C{XRL5Iezc*QJ0#*4crkUqzHcQD{~8=?sXh3SUf0XjNF=GoBJJi7B;2 zcqJp2nC6?91bNiZp?!ifD3+@naf;%;z5ILT7sPo-noiMQzfHaq?$Nx~ zallM8U&I%O4hO(eoN=D*`y5KLN^u*nvY>B@-kBI>8Bs>N$5Q#+Wc7zr+GaBvPl+g5 zzQZE@lG!4LlL;v-v5U}3zu>>09uy@d4V{KlV#ZW16HbwHU`Qc}&;Q~YM?^&Y13m#W Wol1LQKl>s800001BCpEP)9V9C z422sIcLQqs{;xXF+AT|1M5k&dKX3K@>Les5@%8%ef>9y_q3kJ~q8;%Fk_rK{97j2W z5cCn=JRUJWKx9HJ<1d!{th)~VGbg9MT_efkRR9bZ2%{B{Cz00xHAgEr+rT-miWJrr zuwN1(ZJ^A`xdV_A04bvoqZ2}8B|Hzqj3r$LR0$6%u%wHCOeL&=5_#z_P#BQ}5}mM) z8ORgB>Ja#mSUr$3{R-3)=>tIW6*vrwmvadaVE6^V1Hk%JD4{L{n%+Xp8WyHpna|nn zZN0a47XZfFh7$nt8#6U{{m$$C;mZR$-lFubib#PLmDXURitTAKC4R!duEFj`7 zyd!l@I>cdffDvyg0>-?h1h^->Hyye~t^%pqb?KxhB&;8(7FkX!@Z9P;kbIkXZ{*|# zo2K3g8_3{vf~XmYGre#3KXwb~2+WWe2Ub=E18eCD&~U!61L8ouZOGY! z;k9%HSi2cxTjWa0?i-_f?h5d6g*R%51F74F*zs`%$owLvM&++fO2EFDGb%EBmP3B1 z{MsNcY0pmCm%bTH$0mubQenW#C9bnlDd#nV*Gz90_?{ZuPrBnwP=`YIy3Rw0yrcR~ zpj~Q-a+LQWV*hIX4gVBvah@i&aVZS#9`zs_4&0oF@wDns(Fzd=eIOt%k?3>Ln;0Gx z_>mZS0J?vQx-HH^72K=HVg+12P0q42j^@k{!|-mgCY-U(xd|t{;^@4=Y5vShVi0)O}|Uf-}$`qiCc=N>bNgK z^jC^#Ar&skOGK-VnKx_-x^19vQ_ElXg16?O)ZUYKAX(d})SISdch&u~@drEWb;@;k RYv2F?002ovPDHLkV1kSSrT+i` literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_26.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_26.png new file mode 100644 index 0000000000000000000000000000000000000000..1ef60681fcddd4063c6feff6d8fdcf6a1e90c4da GIT binary patch literal 560 zcmV-00?+-4P)ymEG-WG6`|vi zmqKK~YS2LAC7ko>D;C|z*RELLrjPeWpD_Ez9A1%=;3LS5(rJUf0F$C>Qu+*U4yoHs ztmQK)Fae#slRzrCbfT4aM(AT@vewYRE>4obtxhS4WK&w}BmsH8O@L}pwVj*+$gYxe zWK0I|<4t5A3e@P&p|s~+S-OO$jz&_wgK%i(`cDPfZ*xD2eeAgNN} zPLjY*2gtIEfFMp{p!nrmA0aC%Ej>(Bi$6tf*~wIdd_kp} zNor*~#<)=K+*z5&N*@3K019+cPE!CiVE!86l>E6~bA2Wq0009VNkl6q<}uz8+u!#0?yxAQklw!YyV=027U} z-ghkIh5{yz&=ZAM7=ounZV*BoF^w*C(Jj0o5drXwBgTGxY3YJF`cVa&c7t0L7~(Kb zG4A?imw;4PVP;skoP^Ax(7l;uVlL0UjAo&|m81X)+%2l>auT@}a(yOMOeD-XF0U>P zNaG~<1&N31QW6O)LM`07sN)N%1lRQ&!|)sn`w-V@T@FhxBdl}jh~@msqD$U+Rm(u8u^X1+ zY){fQ2da6DXj&p%6@fLh+3U@#9neQx5Ka`4MvZ&X6TRaL#9WPF^~ocewjlLbp&ePQ zH)J0gZ)+Rqp+zO75JJi^!c-;XRr`3nVCja}A1^7cudP!6v)}mi30-Y0b<5$zKj zariPoeWpNeLxb231s3o2RLWi2L=od?-^sm=-QkCZX~$-F6i7-R@=)aG@5bILKDB;Q zc?{FjlqnnnQcJfnowK+~DJ}FOxjkA$g{u;5k`j^oMKzJM?9lp`DUF!Yf*+C4i8`SL zcl7O7mq>T(Ey-^5a<2t<(d?6)SCT-YFR*LB8~;Uh(NT3SlqRK5^e|QM9Tckg;k#E! zo53=&G#@a0_*zHmmS4`d-=m=?--_h$<@IsUpQZ2F^Bc(_RL3q6S{%o%|A5HI$jHdZ b_%-+gyDNKaN^c$2!dgY4y>gr>@#nsfJv9@+o^01tFhPE!Cg`l82Baor959QywKIm!nT zYybcP^hrcPRCt{2n2V09AP_)XL=+#ZGa%^y|L7gm-L_U}rS2v-;iSnnZtHQFhuF&{ zkw_#GiA3V>sj~d?>*SDKew`#qlK)2{c(rr1+WlyBhh|W0&sgQT5F+0kE;HbJ1!-HnkNo0)*b0+h!b6$f^&m^B(8kosO9T(7DCRNWK9y`?sUeW>C?^+i(`$8HC; z%oZ{4D8pNQP4&@105qlXr8y=doip#X&EDtOMh_js;cM?BBe$ZBT=a7yL6R2&?7W> zL5|(0&>b|eH=@BC6~PnQZxP<%9+4f-FfJLK6Gu1C7~u&ds&4mDo>2ICfpo4h_p(w& zjS??%cfBG?fW|csNnQVE^ZxGuLbI?IhQ2 zkirmyan+a07*qoM6N<$ Eg3~^*B>(^b literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_29.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_29.png new file mode 100644 index 0000000000000000000000000000000000000000..26f43604a39d43a6e0e41c0dbf2f672dffee46e0 GIT binary patch literal 953 zcmV;q14jIbP){p!nrmA0aC%Ej>(Bi$6tf*~wIdd_kp} zNor*~#<)=K+*z5&N*@3K019+cPE!CiVE!86l>E6~bA2Wq0009VNkl6q<}uz8+u!#0?yxAQklw!YyV=027U} z-ghkIh5{yz&=ZAM7=ounZV*BoF^w*C(Jj0o5drXwBgTGxY3YJF`cVa&c7t0L7~(Kb zG4A?imw;4PVP;skoP^Ax(7l;uVlL0UjAo&|m81X)+%2l>auT@}a(yOMOeD-XF0U>P zNaG~<1&N31QW6O)LM`07sN)N%1lRQ&!|)sn`w-V@T@FhxBdl}jh~@msqD$U+Rm(u8u^X1+ zY){fQ2da6DXj&p%6@fLh+3U@#9neQx5Ka`4MvZ&X6TRaL#9WPF^~ocewjlLbp&ePQ zH)J0gZ)+Rqp+zO75JJi^!c-;XRr`3nVCja}A1^7cudP!6v)}mi30-Y0b<5$zKj zariPoeWpNeLxb231s3o2RLWi2L=od?-^sm=-QkCZX~$-F6i7-R@=)aG@5bILKDB;Q zc?{FjlqnnnQcJfnowK+~DJ}FOxjkA$g{u;5k`j^oMKzJM?9lp`DUF!Yf*+C4i8`SL zcl7O7mq>T(Ey-^5a<2t<(d?6)SCT-YFR*LB8~;Uh(NT3SlqRK5^e|QM9Tckg;k#E! zo53=&G#@a0_*zHmmS4`d-=m=?--_h$<@IsUpQZ2F^Bc(_RL3q6S{%o%|A5HI$jHdZ b_%-+gG$ST49v~_oAuAvvD<2{&AtNo9n7^Q)&7z{reSM&!qRby5EB*DUJ3LB>img>u zW3jA$m6C34Zi{|@pyJz^&dHC0e`9NERyhhP4FCWD4RlgYQvfdf6LOj1zDxc!wn5(?U9sBa1gV^CG-7MBVE9Ge&lAL7#GQ0-etRHLb%N}`25jMcuowi_Zl zGpVKgwOpZnmq`ITt4rZ*H7;QjQt=&sXTuNJS&crlS-r90m*|$;$~Z%7{_Lj^$kl3e zYb$T=_mzL3Yva_7`E#G{0_j#8T7-=~g|O$x_zwe_VXc~)$LFI{L6s!q1DQb9wSF!( zj{SMJ1KXn&JV)WmW`z5mTLY2di$6cbd&+7(60B4|n!ilCp3_72=f_`h9dfz!T{q7P zMe!l}K>dg-ahQBREVrt_b%16&#daTt76e}Wy_UVA^nv)9vg`El z;2~4all5L4I?d#*!mq6gfy}Trb7gD7YIpFxRl)uVZV%Xm5N@NtWI5gYKqkpbQVJ1H z)dG8cRbh_z6iXl~^o_e-!ZnvwYlrlgzSli>U4A*2Qzok(`(cucMuqdFGE}Z%=@8#@ z!5tmQ43MF6i#3p6-|ve%1XQ2xol%8)_;qeb-4>GGtut9wm_!WHwc_fIzMRP_=L;b& z`dfGOS%zn++(2ogzZ-!(pH+S-W^a1fEoero+^^QXn5(a2m_W2u$G&~W>)PZ;!Q|0a znO;=6-vvJ*_P@sb82wCnv{lBeqpi}2+&y=4a&mHV!#|cHiBOFLqqG13002ovPDHLk FV1gcm*5LpE literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_30.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_30.png new file mode 100644 index 0000000000000000000000000000000000000000..43277558588c4642a66e816692e695d2890a722c GIT binary patch literal 930 zcmV;T16}-yP)yDNKaN^c$2!dgY4y>gr>@#nsfJv9@+o^01tFhPE!Cg`l82Baor959QywKIm!nT zYybcP^hrcPRCt{2n2V09AP_)XL=+#ZGa%^y|L7gm-L_U}rS2v-;iSnnZtHQFhuF&{ zkw_#GiA3V>sj~d?>*SDKew`#qlK)2{c(rr1+WlyBhh|W0&sgQT5F+0kE;HbJ1!-HnkNo0)*b0+h!b6$f^&m^B(8kosO9T(7DCRNWK9y`?sUeW>C?^+i(`$8HC; z%oZ{4D8pNQP4&@105qlXr8y=doip#X&EDtOMh_js;cM?BBe$ZBT=a7yL6R2&?7W> zL5|(0&>b|eH=@BC6~PnQZxP<%9+4f-FfJLK6Gu1C7~u&ds&4mDo>2ICfpo4h_p(w& zjS??%cfBG?fW|csNnQVE^ZxGuLbI?IhQ2 zkirmyan+a07*qoM6N<$ Eg3~^*B>(^b literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_31.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_31.png new file mode 100644 index 0000000000000000000000000000000000000000..7a19b27adc8624d0fb5abc395386ad7d9e33ef61 GIT binary patch literal 1104 zcmV-W1h4yvP)Y*`S9&Hw*s7h_UQK+)>Wx%AR@GP4V_Y>MK-g$oxh zTo_T)su6;)_AG*eHUdV7a~SGsVBpRHu%aw)aA*#v^e!b}9!??Lq;;F)Bq0ayf(9qiEMW8{ zkg=nBj53hHDr+46;ID#|wEg~W=_kz&eI)@GZ0d)?TOece62|52COISTf3RI2a>$`? z2gj6z>Sf~B4e>?j{P$D(mLPy@^+NX&5^Vgr-G11dBdKo*4VdnaL-o@mLVgf$|1603kvMu*;gI_B38dtBcF zY694{`gv)+l_X(sTwfXu@Nkc~SKa>__&5wg?&hzB4QwfB7OFuA_i93NcpeJyLCEBo zFgQ98OJHb}>?b4u2XmlXcxh>-PgT+ex4fKioKO=6cm}zhlJKLui-LJ~>-ck0g=@?5 zDM!wU--ZUTuX;BlvFZ7D-%Qbl;7L_?~*cFq(cBniLINU-wJqU_4t01}#O7K_Qd zeplv>B>Iy?v)D;_W-i;@-~i$DsW-T&lpUEnA^AWD(eoJ3+*+&!=}?nTxL6k_GPeP? zk3^eDgT*tqWU$r=LkmY>A=CR>tiN4{OE_*A$vO~i#shh{R-%S+5E-$81#zoaT?JC5 zS;}<|ux|Cz9B}*5Jl~Mk#P_5gvZZW#nkh(tZWYTxij1Zb(gA@?0v!FVj!IdbNbkvB1+*w5*G| z#06Dg06EScK5LCc!RSR6r9Fo^c>hw*^QI25RQe~6?Ikx1nBlVb6MyaGdAVGAqjrPm zPBvntDofp$DFk~3ShtTOnh41Tllw^e4I4__N9;1p!j`GIf<$&LqBGm(*|(KMUP1WA zbuNbJW)_*5oii5RZROZJfno8tXwedOOnG6=X|k)Ik(x=zayuDghU|P-hOCnrmW7OI z_rF~$0&G=`H~-vympH2#zmzYQFXVnM!nWS@3Da~?LH_?Xu8ZN@6Yf7ct@Dxvii6e_ zv<;$3! literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_32.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_32.png new file mode 100644 index 0000000000000000000000000000000000000000..954fb7db4e618ac2434caa0cbaf16d661e920c66 GIT binary patch literal 1062 zcmV+>1ljwEP)=NzG)NL()oCe@uc$;W;Gy!a-2hY&(5RQc3o?N(Mp1^EWp>wG$e6O809t z@~We0r99DTEfdy3#A2Uq)o{k7WQ;deOE~K(o{WVb702b5V0^fN?3&g`aiF;B#xsEJ zO{ay>o#`!jo~9nY{{rd;7gRkizl81;4maPScvg4{+ld4^i>JA0zQZv%QfRRQPs1-C zrezY$Bp_pzR|SA_X5uv<8O?;BRkW)Ll`$@dD!{cz#XJ1akJNaWNM!Y)=SMHJ`W`vl zu#$sm(YM}V9C2$Fuf!uoJ)4y#k)t1Fq7s_#oET2oFIl{uG{;w`MLqLT#_hymXSKut zJF&Fe`9~sSqxECR3bN9$Z(UlcQDPx%MUps^S?!%t*k%V#9AFfq@-D7Em(;>KIFeKn zbT~&ZGN1v~QZwS6!CeJK9G~M2^GTd<24Pt%GGXa1A48E2wySeVy3_EscaUA%{l-x+ zIq+uVR6YkDg&4jn8J36Xo;#4S1#E{DF>B%BuJ>x5?xEHzZiaed+QNd`C!c81-D~ve zZmEFHkkFD*I9dr|(l{H!l`&y(f5;C~B1;u)%goYJ%O86~{&*CnG(jac^Rh3LLNQ_< zgrN+P#E>*U+!E-BBppffgK_1%lw9-TbNy;0ZyE#o=S!w6I6=TVm zh&1Yh&cu{(tKUkv3zQD;A}ENe%PJm-MbKPW&gGm^r*W88&ZP=dZO@W>QejFfv5k9k zyeGA1GTUty2;VGN3(b7oEXZnm_zzatQG{9%+a3uW#SI(?p~lThqBn372(75yR1!VS z7g|wenre?C?ZFa_&LS<_63yo#ZS)ck0#$*hjUtaUC7zp#Je(DI0xa^FnZ*6T{P&R* g`S*nzH~u~R51;gC3dE3>%m4rY07*qoM6N<$f-O1X#Q*>R literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_33.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_33.png new file mode 100644 index 0000000000000000000000000000000000000000..7a19b27adc8624d0fb5abc395386ad7d9e33ef61 GIT binary patch literal 1104 zcmV-W1h4yvP)Y*`S9&Hw*s7h_UQK+)>Wx%AR@GP4V_Y>MK-g$oxh zTo_T)su6;)_AG*eHUdV7a~SGsVBpRHu%aw)aA*#v^e!b}9!??Lq;;F)Bq0ayf(9qiEMW8{ zkg=nBj53hHDr+46;ID#|wEg~W=_kz&eI)@GZ0d)?TOece62|52COISTf3RI2a>$`? z2gj6z>Sf~B4e>?j{P$D(mLPy@^+NX&5^Vgr-G11dBdKo*4VdnaL-o@mLVgf$|1603kvMu*;gI_B38dtBcF zY694{`gv)+l_X(sTwfXu@Nkc~SKa>__&5wg?&hzB4QwfB7OFuA_i93NcpeJyLCEBo zFgQ98OJHb}>?b4u2XmlXcxh>-PgT+ex4fKioKO=6cm}zhlJKLui-LJ~>-ck0g=@?5 zDM!wU--ZUTuX;BlvFZ7D-%Qbl;7L_?~*cFq(cBniLINU-wJqU_4t01}#O7K_Qd zeplv>B>Iy?v)D;_W-i;@-~i$DsW-T&lpUEnA^AWD(eoJ3+*+&!=}?nTxL6k_GPeP? zk3^eDgT*tqWU$r=LkmY>A=CR>tiN4{OE_*A$vO~i#shh{R-%S+5E-$81#zoaT?JC5 zS;}<|ux|Cz9B}*5Jl~Mk#P_5gvZZW#nkh(tZWYTxij1Zb(gA@?0v!FVj!IdbNbkvB1+*w5*G| z#06Dg06EScK5LCc!RSR6r9Fo^c>hw*^QI25RQe~6?Ikx1nBlVb6MyaGdAVGAqjrPm zPBvntDofp$DFk~3ShtTOnh41Tllw^e4I4__N9;1p!j`GIf<$&LqBGm(*|(KMUP1WA zbuNbJW)_*5oii5RZROZJfno8tXwedOOnG6=X|k)Ik(x=zayuDghU|P-hOCnrmW7OI z_rF~$0&G=`H~-vympH2#zmzYQFXVnM!nWS@3Da~?LH_?Xu8ZN@6Yf7ct@Dxvii6e_ zv<;$3! literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_34.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_34.png new file mode 100644 index 0000000000000000000000000000000000000000..954fb7db4e618ac2434caa0cbaf16d661e920c66 GIT binary patch literal 1062 zcmV+>1ljwEP)=NzG)NL()oCe@uc$;W;Gy!a-2hY&(5RQc3o?N(Mp1^EWp>wG$e6O809t z@~We0r99DTEfdy3#A2Uq)o{k7WQ;deOE~K(o{WVb702b5V0^fN?3&g`aiF;B#xsEJ zO{ay>o#`!jo~9nY{{rd;7gRkizl81;4maPScvg4{+ld4^i>JA0zQZv%QfRRQPs1-C zrezY$Bp_pzR|SA_X5uv<8O?;BRkW)Ll`$@dD!{cz#XJ1akJNaWNM!Y)=SMHJ`W`vl zu#$sm(YM}V9C2$Fuf!uoJ)4y#k)t1Fq7s_#oET2oFIl{uG{;w`MLqLT#_hymXSKut zJF&Fe`9~sSqxECR3bN9$Z(UlcQDPx%MUps^S?!%t*k%V#9AFfq@-D7Em(;>KIFeKn zbT~&ZGN1v~QZwS6!CeJK9G~M2^GTd<24Pt%GGXa1A48E2wySeVy3_EscaUA%{l-x+ zIq+uVR6YkDg&4jn8J36Xo;#4S1#E{DF>B%BuJ>x5?xEHzZiaed+QNd`C!c81-D~ve zZmEFHkkFD*I9dr|(l{H!l`&y(f5;C~B1;u)%goYJ%O86~{&*CnG(jac^Rh3LLNQ_< zgrN+P#E>*U+!E-BBppffgK_1%lw9-TbNy;0ZyE#o=S!w6I6=TVm zh&1Yh&cu{(tKUkv3zQD;A}ENe%PJm-MbKPW&gGm^r*W88&ZP=dZO@W>QejFfv5k9k zyeGA1GTUty2;VGN3(b7oEXZnm_zzatQG{9%+a3uW#SI(?p~lThqBn372(75yR1!VS z7g|wenre?C?ZFa_&LS<_63yo#ZS)ck0#$*hjUtaUC7zp#Je(DI0xa^FnZ*6T{P&R* g`S*nzH~u~R51;gC3dE3>%m4rY07*qoM6N<$f-O1X#Q*>R literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_35.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_35.png new file mode 100644 index 0000000000000000000000000000000000000000..fb65d0bd7129019d67ebb674ba972a6e7c916e28 GIT binary patch literal 911 zcmV;A191F_P)4*Vx9#$y;1wt*)_eaCd=% zhnSh2EzVpD0000AbW%=J05KG6>adAR(KN}sK)e6|0{BTpK~#90?O0j1q$&_pAb}^7 z=>GTmKuhFafs!ih{%GQ-hJywfnHdbj(9zM+(b3WIk7C5Y2_YOPdx!yHE=~}N9^k-4 z2x(WXl+v@6j;A>d0!J}VCuSoAADeQFE{vFBqjAx+OpW6(YP!G*fzL4vv+)Z7k>i+B zSdLg2ki8x_{*;FcIZYWB;$AxXvXjOdUk(I+#6g8r8Is8e7_ehl^!8J&jt4#n23>Q0 zLOF$mu+b!D_fI_w2s`DmiZF+D-NMnbp2Y>C3nY^aaV}PF^`WGol_WS*SwXOP3VQO4 zy1IdQAtR~4>{fKVRxMRSqU5rbLzUyOY>#B1eF|+|R&cSlQdkzxbXzaPFb1(yl4u{g zb2W_F`$}f8+tFG{GI_n^{w$QM%r79qSZj=~B{8lXSLvS>WsmWmx2owQm=L>KN-G<3 z##Tw~VPZ2?OBxGZ#s{{Bf+nv7Zrz z{DE)~Qs(mR<<-AyH2%gx;^%31!+#f0czt1f|AcrvzjbyUf8czA(lC?ITYJZ$X#DUU z#;|w8<8R&;7`MfN98n>3;r$v2Cywr6gG^^%> zUVDVjcAMSn;HzG~$45dbX?777>4hT_XEdzgWm`B!owWCyY;qr#3x=hwr_06Q`h$)qz5Aja5-Vm lr9R+ktvWh7IyyRH{12b3W(N$7;OhVY002ovPDHLkV1nc;n)v_# literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_36.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_36.png new file mode 100644 index 0000000000000000000000000000000000000000..b845de2524b78c83fdb8d5c70c3045ab8de332a9 GIT binary patch literal 448 zcmV;x0YCnUP)#_m7X^>+;7#LwSsyPI|S{Q&aAMfV9HS-)Lye*x{Mb z%gz7*00?waPE!EclOj=-*;ez^l=T1r0WnELK~#90?bqE7gCGnAU_n7C6ZQRHcHrO8 zfQhBs*uuHm)t6JOm{rw}rx8+XDH3yxaiAv7oCcl0fO7;Bty-GoL4RGZ!#h5Vp&7%b6XWF^+iOvdt4$q(7AUp%%CR0000G$ST49v~_oAuAvvD<2{&AtNo9n7^Q)&7z{reSM&!qRby5EB*DUJ3LB>img>u zW3jA$m6C34Zi{|@pyJz^&dHC0e`9NERyhhP4FCWD4RlgYQvfdf6LOj1zDxc!wn5(?U9sBa1gV^CG-7MBVE9Ge&lAL7#GQ0-etRHLb%N}`25jMcuowi_Zl zGpVKgwOpZnmq`ITt4rZ*H7;QjQt=&sXTuNJS&crlS-r90m*|$;$~Z%7{_Lj^$kl3e zYb$T=_mzL3Yva_7`E#G{0_j#8T7-=~g|O$x_zwe_VXc~)$LFI{L6s!q1DQb9wSF!( zj{SMJ1KXn&JV)WmW`z5mTLY2di$6cbd&+7(60B4|n!ilCp3_72=f_`h9dfz!T{q7P zMe!l}K>dg-ahQBREVrt_b%16&#daTt76e}Wy_UVA^nv)9vg`El z;2~4all5L4I?d#*!mq6gfy}Trb7gD7YIpFxRl)uVZV%Xm5N@NtWI5gYKqkpbQVJ1H z)dG8cRbh_z6iXl~^o_e-!ZnvwYlrlgzSli>U4A*2Qzok(`(cucMuqdFGE}Z%=@8#@ z!5tmQ43MF6i#3p6-|ve%1XQ2xol%8)_;qeb-4>GGtut9wm_!WHwc_fIzMRP_=L;b& z`dfGOS%zn++(2ogzZ-!(pH+S-W^a1fEoero+^^QXn5(a2m_W2u$G&~W>)PZ;!Q|0a znO;=6-vvJ*_P@sb82wCnv{lBeqpi}2+&y=4a&mHV!#|cHiBOFLqqG13002ovPDHLk FV1gcm*5LpE literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_38.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_38.png new file mode 100644 index 0000000000000000000000000000000000000000..38e4fec6288b3e6191d6d409e893934b66a3aae2 GIT binary patch literal 983 zcmV;|11S87P)G$ST49v~_oAuAvvD<2{&AtNo9n7^Q)&7z{reSM&!qRby5EB*DUJ3LB>img>u zW3jA$m6C34Zi{|@pyJz^&dHC0e`9NERyhhP4FCWD4RlgYQvfdf6LOj1zDxc!wn5(?U9sBa1gV^CG-7MBVE9Ge&lAL7#GQ0-etRHLb%N}`25jMcuowi_Zl zGpVKgwOpZnmq`ITt4rZ*H7;QjQt=&sXTuNJS&crlS-r90m*|$;$~Z%7{_Lj^$kl3e zYb$T=_mzL3Yva_7`E#G{0_j#8T7-=~g|O$x_zwe_VXc~)$LFI{L6s!q1DQb9wSF!( zj{SMJ1KXn&JV)WmW`z5mTLY2di$6cbd&+7(60B4|n!ilCp3_72=f_`h9dfz!T{q7P zMe!l}K>dg-ahQBREVrt_b%16&#daTt76e}Wy_UVA^nv)9vg`El z;2~4all5L4I?d#*!mq6gfy}Trb7gD7YIpFxRl)uVZV%Xm5N@NtWI5gYKqkpbQVJ1H z)dG8cRbh_z6iXl~^o_e-!ZnvwYlrlgzSli>U4A*2Qzok(`(cucMuqdFGE}Z%=@8#@ z!5tmQ43MF6i#3p6-|ve%1XQ2xol%8)_;qeb-4>GGtut9wm_!WHwc_fIzMRP_=L;b& z`dfGOS%zn++(2ogzZ-!(pH+S-W^a1fEoero+^^QXn5(a2m_W2u$G&~W>)PZ;!Q|0a znO;=6-vvJ*_P@sb82wCnv{lBeqpi}2+&y=4a&mHV!#|cHiBOFLqqG13002ovPDHLk FV1gcm*5LpE literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_39.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_39.png new file mode 100644 index 0000000000000000000000000000000000000000..38e4fec6288b3e6191d6d409e893934b66a3aae2 GIT binary patch literal 983 zcmV;|11S87P)G$ST49v~_oAuAvvD<2{&AtNo9n7^Q)&7z{reSM&!qRby5EB*DUJ3LB>img>u zW3jA$m6C34Zi{|@pyJz^&dHC0e`9NERyhhP4FCWD4RlgYQvfdf6LOj1zDxc!wn5(?U9sBa1gV^CG-7MBVE9Ge&lAL7#GQ0-etRHLb%N}`25jMcuowi_Zl zGpVKgwOpZnmq`ITt4rZ*H7;QjQt=&sXTuNJS&crlS-r90m*|$;$~Z%7{_Lj^$kl3e zYb$T=_mzL3Yva_7`E#G{0_j#8T7-=~g|O$x_zwe_VXc~)$LFI{L6s!q1DQb9wSF!( zj{SMJ1KXn&JV)WmW`z5mTLY2di$6cbd&+7(60B4|n!ilCp3_72=f_`h9dfz!T{q7P zMe!l}K>dg-ahQBREVrt_b%16&#daTt76e}Wy_UVA^nv)9vg`El z;2~4all5L4I?d#*!mq6gfy}Trb7gD7YIpFxRl)uVZV%Xm5N@NtWI5gYKqkpbQVJ1H z)dG8cRbh_z6iXl~^o_e-!ZnvwYlrlgzSli>U4A*2Qzok(`(cucMuqdFGE}Z%=@8#@ z!5tmQ43MF6i#3p6-|ve%1XQ2xol%8)_;qeb-4>GGtut9wm_!WHwc_fIzMRP_=L;b& z`dfGOS%zn++(2ogzZ-!(pH+S-W^a1fEoero+^^QXn5(a2m_W2u$G&~W>)PZ;!Q|0a znO;=6-vvJ*_P@sb82wCnv{lBeqpi}2+&y=4a&mHV!#|cHiBOFLqqG13002ovPDHLk FV1gcm*5LpE literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_4.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_4.png new file mode 100644 index 0000000000000000000000000000000000000000..fb65d0bd7129019d67ebb674ba972a6e7c916e28 GIT binary patch literal 911 zcmV;A191F_P)4*Vx9#$y;1wt*)_eaCd=% zhnSh2EzVpD0000AbW%=J05KG6>adAR(KN}sK)e6|0{BTpK~#90?O0j1q$&_pAb}^7 z=>GTmKuhFafs!ih{%GQ-hJywfnHdbj(9zM+(b3WIk7C5Y2_YOPdx!yHE=~}N9^k-4 z2x(WXl+v@6j;A>d0!J}VCuSoAADeQFE{vFBqjAx+OpW6(YP!G*fzL4vv+)Z7k>i+B zSdLg2ki8x_{*;FcIZYWB;$AxXvXjOdUk(I+#6g8r8Is8e7_ehl^!8J&jt4#n23>Q0 zLOF$mu+b!D_fI_w2s`DmiZF+D-NMnbp2Y>C3nY^aaV}PF^`WGol_WS*SwXOP3VQO4 zy1IdQAtR~4>{fKVRxMRSqU5rbLzUyOY>#B1eF|+|R&cSlQdkzxbXzaPFb1(yl4u{g zb2W_F`$}f8+tFG{GI_n^{w$QM%r79qSZj=~B{8lXSLvS>WsmWmx2owQm=L>KN-G<3 z##Tw~VPZ2?OBxGZ#s{{Bf+nv7Zrz z{DE)~Qs(mR<<-AyH2%gx;^%31!+#f0czt1f|AcrvzjbyUf8czA(lC?ITYJZ$X#DUU z#;|w8<8R&;7`MfN98n>3;r$v2Cywr6gG^^%> zUVDVjcAMSn;HzG~$45dbX?777>4hT_XEdzgWm`B!owWCyY;qr#3x=hwr_06Q`h$)qz5Aja5-Vm lr9R+ktvWh7IyyRH{12b3W(N$7;OhVY002ovPDHLkV1nc;n)v_# literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_40.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_40.png new file mode 100644 index 0000000000000000000000000000000000000000..8c2c1e21dc0f2874953162b639c5a229c01cd581 GIT binary patch literal 837 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 fiYu_z literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_43.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_43.png new file mode 100644 index 0000000000000000000000000000000000000000..afd219db9f2c257492b774ba75c1f9a4f16db2fa GIT binary patch literal 808 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 fiYu_z literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_47.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_47.png new file mode 100644 index 0000000000000000000000000000000000000000..2d04cff7be46fecd7c228a68625cd65ccecf5e90 GIT binary patch literal 1231 zcmV;=1Tg!FP)E;TkdA0a9rA}bysDj_2-EG;n}ASxmxEOKs5H#}NMM>^`+SeuekQ(c`yLNdy` zQ&wM~_~lz4AuIj$sZUmtLP&I5SU}dsQ;UR7N>YdL=%Ku?QL3Y5%f^l0*_b9JrSAX$ z026dlPE!E=?EPrfMvo6AuKxc1{`zO`VpDq9$N&HY1xZ9fRCt{2S=*AMIt+|#z}(q6 zpl}Uj{{JVBd?6tT*)lu!zHItoYEo0W3mG3drV$kYN~m;fNUGSW1d!Kuo-F1c?108A=(5AF%|5K?GHSP?eqn z5eU+Zv7afB%1qT_maK|;L?;uWk|RWwc-#n;usA_iOf9*iB*(MmaS?H7`o?( z85uGcrB@PxebW?o;m4K@KnPhPtijclHL-Q1hLs#M?{%9!pc%f#B$}&FcqDfTq=#)tHTyl5hATnl#cpNgzi{`<#mqyZQ+&$eN^E z#muP1B5CF?Wn36)0}mtv-BEd6@32&5PbcMF*X6M4H;iAPSXo*P2-c7nha| zN6GCII6|l`(aC#xQ=ImJ1n<<^0pQ)0`N$A1UTfqn@_V-#z*ek)9ys9uiOlMvuSzw8 z+of-$JMNnV-ovE-0VtkISk)mlEY?l!G}ZQ)rdBoSzO*a#01xQ&LwCGf`_s$#5M z7Y8zTF9U39ggS3q{{Udqwhq+!E^?deD)^CFQm@nt$<%4+4}M6xby?I|M{?Mc39}2~ z3f$h4)6wkW{Bk~@zq$EtR@rr{lXf5K#?rs&Zw^=DxD@6-wyTr1;&a$Xo5Q63Hkm^g z$h?{@YxaCBQ?-Z8zFgw*t#I4Zia z0AvdPIvqe9r6GGj_)8)+j3CrUp$s`^bSY+I;pmYo!cmsQVvb8d8KQ9M9dRVAm*-tU z*K`~zLlmwY9BmCk{;kT+>}XSEh{6J)qve`FRdy@K34n7h1-sBn)zNcygq137wtnYG z&?0@L&vTE|r=A zL+2ZG)eJY?BXGWa)Xngrdn6uS1f+1KM(gV>+$v7xuF<|h0)6JRB=!)ZZ>iLqGUo5i ts|M|Hd`m@vc$Z2>;ysKHKKS5o;eQ7;yykM&kpTbz002ovPDHLkV1lMONGSjS literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_5.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_5.png new file mode 100644 index 0000000000000000000000000000000000000000..fb65d0bd7129019d67ebb674ba972a6e7c916e28 GIT binary patch literal 911 zcmV;A191F_P)4*Vx9#$y;1wt*)_eaCd=% zhnSh2EzVpD0000AbW%=J05KG6>adAR(KN}sK)e6|0{BTpK~#90?O0j1q$&_pAb}^7 z=>GTmKuhFafs!ih{%GQ-hJywfnHdbj(9zM+(b3WIk7C5Y2_YOPdx!yHE=~}N9^k-4 z2x(WXl+v@6j;A>d0!J}VCuSoAADeQFE{vFBqjAx+OpW6(YP!G*fzL4vv+)Z7k>i+B zSdLg2ki8x_{*;FcIZYWB;$AxXvXjOdUk(I+#6g8r8Is8e7_ehl^!8J&jt4#n23>Q0 zLOF$mu+b!D_fI_w2s`DmiZF+D-NMnbp2Y>C3nY^aaV}PF^`WGol_WS*SwXOP3VQO4 zy1IdQAtR~4>{fKVRxMRSqU5rbLzUyOY>#B1eF|+|R&cSlQdkzxbXzaPFb1(yl4u{g zb2W_F`$}f8+tFG{GI_n^{w$QM%r79qSZj=~B{8lXSLvS>WsmWmx2owQm=L>KN-G<3 z##Tw~VPZ2?OBxGZ#s{{Bf+nv7Zrz z{DE)~Qs(mR<<-AyH2%gx;^%31!+#f0czt1f|AcrvzjbyUf8czA(lC?ITYJZ$X#DUU z#;|w8<8R&;7`MfN98n>3;r$v2Cywr6gG^^%> zUVDVjcAMSn;HzG~$45dbX?777>4hT_XEdzgWm`B!owWCyY;qr#3x=hwr_06Q`h$)qz5Aja5-Vm lr9R+ktvWh7IyyRH{12b3W(N$7;OhVY002ovPDHLkV1nc;n)v_# literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_6.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_6.png new file mode 100644 index 0000000000000000000000000000000000000000..fb65d0bd7129019d67ebb674ba972a6e7c916e28 GIT binary patch literal 911 zcmV;A191F_P)4*Vx9#$y;1wt*)_eaCd=% zhnSh2EzVpD0000AbW%=J05KG6>adAR(KN}sK)e6|0{BTpK~#90?O0j1q$&_pAb}^7 z=>GTmKuhFafs!ih{%GQ-hJywfnHdbj(9zM+(b3WIk7C5Y2_YOPdx!yHE=~}N9^k-4 z2x(WXl+v@6j;A>d0!J}VCuSoAADeQFE{vFBqjAx+OpW6(YP!G*fzL4vv+)Z7k>i+B zSdLg2ki8x_{*;FcIZYWB;$AxXvXjOdUk(I+#6g8r8Is8e7_ehl^!8J&jt4#n23>Q0 zLOF$mu+b!D_fI_w2s`DmiZF+D-NMnbp2Y>C3nY^aaV}PF^`WGol_WS*SwXOP3VQO4 zy1IdQAtR~4>{fKVRxMRSqU5rbLzUyOY>#B1eF|+|R&cSlQdkzxbXzaPFb1(yl4u{g zb2W_F`$}f8+tFG{GI_n^{w$QM%r79qSZj=~B{8lXSLvS>WsmWmx2owQm=L>KN-G<3 z##Tw~VPZ2?OBxGZ#s{{Bf+nv7Zrz z{DE)~Qs(mR<<-AyH2%gx;^%31!+#f0czt1f|AcrvzjbyUf8czA(lC?ITYJZ$X#DUU z#;|w8<8R&;7`MfN98n>3;r$v2Cywr6gG^^%> zUVDVjcAMSn;HzG~$45dbX?777>4hT_XEdzgWm`B!owWCyY;qr#3x=hwr_06Q`h$)qz5Aja5-Vm lr9R+ktvWh7IyyRH{12b3W(N$7;OhVY002ovPDHLkV1nc;n)v_# literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_7.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_7.png new file mode 100644 index 0000000000000000000000000000000000000000..fb65d0bd7129019d67ebb674ba972a6e7c916e28 GIT binary patch literal 911 zcmV;A191F_P)4*Vx9#$y;1wt*)_eaCd=% zhnSh2EzVpD0000AbW%=J05KG6>adAR(KN}sK)e6|0{BTpK~#90?O0j1q$&_pAb}^7 z=>GTmKuhFafs!ih{%GQ-hJywfnHdbj(9zM+(b3WIk7C5Y2_YOPdx!yHE=~}N9^k-4 z2x(WXl+v@6j;A>d0!J}VCuSoAADeQFE{vFBqjAx+OpW6(YP!G*fzL4vv+)Z7k>i+B zSdLg2ki8x_{*;FcIZYWB;$AxXvXjOdUk(I+#6g8r8Is8e7_ehl^!8J&jt4#n23>Q0 zLOF$mu+b!D_fI_w2s`DmiZF+D-NMnbp2Y>C3nY^aaV}PF^`WGol_WS*SwXOP3VQO4 zy1IdQAtR~4>{fKVRxMRSqU5rbLzUyOY>#B1eF|+|R&cSlQdkzxbXzaPFb1(yl4u{g zb2W_F`$}f8+tFG{GI_n^{w$QM%r79qSZj=~B{8lXSLvS>WsmWmx2owQm=L>KN-G<3 z##Tw~VPZ2?OBxGZ#s{{Bf+nv7Zrz z{DE)~Qs(mR<<-AyH2%gx;^%31!+#f0czt1f|AcrvzjbyUf8czA(lC?ITYJZ$X#DUU z#;|w8<8R&;7`MfN98n>3;r$v2Cywr6gG^^%> zUVDVjcAMSn;HzG~$45dbX?777>4hT_XEdzgWm`B!owWCyY;qr#3x=hwr_06Q`h$)qz5Aja5-Vm lr9R+ktvWh7IyyRH{12b3W(N$7;OhVY002ovPDHLkV1nc;n)v_# literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_8.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_8.png new file mode 100644 index 0000000000000000000000000000000000000000..fb65d0bd7129019d67ebb674ba972a6e7c916e28 GIT binary patch literal 911 zcmV;A191F_P)4*Vx9#$y;1wt*)_eaCd=% zhnSh2EzVpD0000AbW%=J05KG6>adAR(KN}sK)e6|0{BTpK~#90?O0j1q$&_pAb}^7 z=>GTmKuhFafs!ih{%GQ-hJywfnHdbj(9zM+(b3WIk7C5Y2_YOPdx!yHE=~}N9^k-4 z2x(WXl+v@6j;A>d0!J}VCuSoAADeQFE{vFBqjAx+OpW6(YP!G*fzL4vv+)Z7k>i+B zSdLg2ki8x_{*;FcIZYWB;$AxXvXjOdUk(I+#6g8r8Is8e7_ehl^!8J&jt4#n23>Q0 zLOF$mu+b!D_fI_w2s`DmiZF+D-NMnbp2Y>C3nY^aaV}PF^`WGol_WS*SwXOP3VQO4 zy1IdQAtR~4>{fKVRxMRSqU5rbLzUyOY>#B1eF|+|R&cSlQdkzxbXzaPFb1(yl4u{g zb2W_F`$}f8+tFG{GI_n^{w$QM%r79qSZj=~B{8lXSLvS>WsmWmx2owQm=L>KN-G<3 z##Tw~VPZ2?OBxGZ#s{{Bf+nv7Zrz z{DE)~Qs(mR<<-AyH2%gx;^%31!+#f0czt1f|AcrvzjbyUf8czA(lC?ITYJZ$X#DUU z#;|w8<8R&;7`MfN98n>3;r$v2Cywr6gG^^%> zUVDVjcAMSn;HzG~$45dbX?777>4hT_XEdzgWm`B!owWCyY;qr#3x=hwr_06Q`h$)qz5Aja5-Vm lr9R+ktvWh7IyyRH{12b3W(N$7;OhVY002ovPDHLkV1nc;n)v_# literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_9.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_9.png new file mode 100644 index 0000000000000000000000000000000000000000..8c2c1e21dc0f2874953162b639c5a229c01cd581 GIT binary patch literal 837 zcmV-L1G@Z)P)=cR`5+T8Xndx)5FW4RBQnwZ;rfFbcU|?WiU|`@s0iPMh3S&l5Ck8TObplh;g92t2 zX0hH|>x>9AtvL`_VHSB}(Mqwl#&D(dGev+C3b%9(a2WXpub)^5;*_K28~|Y16r(K0 z1LHS22+nW>78Vu}!cJ?WbqKqAG)(CXhx9_x3F1yWzx@r4Qu8gbgwK)41r$=sJ;#Gu zt*Zo1=6HpH?6K>U6~ct4Mbz5@h7>rY-8n!jNYZFsZJx5CAux5KrPV$thAYz)D=RBt z0*kH`jORlu!(xJls>&3a&5@jZ!AH8zEAt1JT$|#)*NbpUv05rg799c%Q%d<~&1l@C zY$b_Qpjj+sbGc-O4Mb>Tw5jEg!71<^e5=Ye1`4lm@*eb&Io6bRHn78Z*#J;uvXu<0 zdX=tWMJ}3Yxn9-TlB+TGaa%wpF;PQ9f+_4;tyUgcab3vjOUVblu2PbI{@U^NA-oh!cbUS%YW1>(RpsgmKhHVe>b~R+!Pm7boJ=!CI3-{9xlPWCa0tsC zj^T`*u_gVt(;xJ5rGp+}FP)W4m+ZISyz-ai8@$uy!{pi{LO+neZ^wkN^0)x)Ui5P3 z+v1Bx0wvw1ljwEP)=NzG)NL()oCe@uc$;W;Gy!a-2hY&(5RQc3o?N(Mp1^EWp>wG$e6O809t z@~We0r99DTEfdy3#A2Uq)o{k7WQ;deOE~K(o{WVb702b5V0^fN?3&g`aiF;B#xsEJ zO{ay>o#`!jo~9nY{{rd;7gRkizl81;4maPScvg4{+ld4^i>JA0zQZv%QfRRQPs1-C zrezY$Bp_pzR|SA_X5uv<8O?;BRkW)Ll`$@dD!{cz#XJ1akJNaWNM!Y)=SMHJ`W`vl zu#$sm(YM}V9C2$Fuf!uoJ)4y#k)t1Fq7s_#oET2oFIl{uG{;w`MLqLT#_hymXSKut zJF&Fe`9~sSqxECR3bN9$Z(UlcQDPx%MUps^S?!%t*k%V#9AFfq@-D7Em(;>KIFeKn zbT~&ZGN1v~QZwS6!CeJK9G~M2^GTd<24Pt%GGXa1A48E2wySeVy3_EscaUA%{l-x+ zIq+uVR6YkDg&4jn8J36Xo;#4S1#E{DF>B%BuJ>x5?xEHzZiaed+QNd`C!c81-D~ve zZmEFHkkFD*I9dr|(l{H!l`&y(f5;C~B1;u)%goYJ%O86~{&*CnG(jac^Rh3LLNQ_< zgrN+P#E>*U+!E-BBppffgK_1%lw9-TbNy;0ZyE#o=S!w6I6=TVm zh&1Yh&cu{(tKUkv3zQD;A}ENe%PJm-MbKPW&gGm^r*W88&ZP=dZO@W>QejFfv5k9k zyeGA1GTUty2;VGN3(b7oEXZnm_zzatQG{9%+a3uW#SI(?p~lThqBn372(75yR1!VS z7g|wenre?C?ZFa_&LS<_63yo#ZS)ck0#$*hjUtaUC7zp#Je(DI0xa^FnZ*6T{P&R* g`S*nzH~u~R51;gC3dE3>%m4rY07*qoM6N<$f-O1X#Q*>R literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/marshmallow_0.png b/app/src/main/res/drawable-nodpi/marshmallow_0.png new file mode 100644 index 0000000000000000000000000000000000000000..d25b81149c5df78b1a6daa386b969f4acb9311e4 GIT binary patch literal 471 zcmV;|0Vw{7P)eL_t(| zob8s~Zi6rkg&mfV9~MSw-v3z#Yc(MtiEXU57x_TFsr2a(*#`g`jYgyKGJ-`A2tsQR z%y^%QKGhk5u+Yy+ROr2%WD^o1YNXIv*@VfD$cQ>RB*;@#-4~8tBZa!dq49(BxXP^m z!<(_jXE7G&L{r*j`tz!y&_rQj8YYkx`Wa+}^oTVfIbuzi3^8JLr?I=dF?RiWAATO! zvdlm=*4CLq$N)_2kbykTPvZHccy#aYPcP<%&v9y|AWVrDu^?nMVM&ED1Sf z4eECP&T)^7SzO-DeHQu-{~5DR6y&o?(T8jZ#W@C!;;NbbRGP;&qP N002ovPDHLkV1i#j)64(> literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/marshmallow_1.png b/app/src/main/res/drawable-nodpi/marshmallow_1.png new file mode 100644 index 0000000000000000000000000000000000000000..d25b81149c5df78b1a6daa386b969f4acb9311e4 GIT binary patch literal 471 zcmV;|0Vw{7P)eL_t(| zob8s~Zi6rkg&mfV9~MSw-v3z#Yc(MtiEXU57x_TFsr2a(*#`g`jYgyKGJ-`A2tsQR z%y^%QKGhk5u+Yy+ROr2%WD^o1YNXIv*@VfD$cQ>RB*;@#-4~8tBZa!dq49(BxXP^m z!<(_jXE7G&L{r*j`tz!y&_rQj8YYkx`Wa+}^oTVfIbuzi3^8JLr?I=dF?RiWAATO! zvdlm=*4CLq$N)_2kbykTPvZHccy#aYPcP<%&v9y|AWVrDu^?nMVM&ED1Sf z4eECP&T)^7SzO-DeHQu-{~5DR6y&o?(T8jZ#W@C!;;NbbRGP;&qP N002ovPDHLkV1i#j)64(> literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/marshmallow_10.png b/app/src/main/res/drawable-nodpi/marshmallow_10.png new file mode 100644 index 0000000000000000000000000000000000000000..6b9789ca8fb8c6041275c42258842e6cc3b5cffc GIT binary patch literal 1282 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 LNkvXXu0mjf)y}5G literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/marshmallow_14.png b/app/src/main/res/drawable-nodpi/marshmallow_14.png new file mode 100644 index 0000000000000000000000000000000000000000..259b46685b64019acebfecaa4aeca85f70a05b3b GIT binary patch literal 1480 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 X#=4w;mXX@#00000NkvXXu0mjftav7D literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/marshmallow_17.png b/app/src/main/res/drawable-nodpi/marshmallow_17.png new file mode 100644 index 0000000000000000000000000000000000000000..2e76eaa841786065d5671c94bfae9e03e7d91d31 GIT binary patch literal 1225 zcmV;)1UCDLP)Gt;a)7IGP>gv?l+|Ae9k(!>ixxA~jy0^i_%+l7%%*@Zz*4p3Vcz}cu5fPiEsn*@# zs;{!!-{Ed>a79K&ii?YekCK<5rQze`dVYbkzQdfPr<yd{@RWM*x3cf`=u`1ttf=;)C9PoDq)06TP2PE!E*1qvt_`1o^J{kjV% zGeNfc`1w-eaPIjR=lIyjH>31R`G}hOdt#UQ;K?iKddIZzT{u?Jor|a8;i()))&Kwl zgGod|RCt{2*V&SyFcb!02?P~XHkB4|#daUJcIh7E{amku<19}hGy7Mr4m)h&uit{8&mvU{ubC0@4&@J##ja2hE(4E3q6l>k6ADmK6#0?4Ib)EfLf@1Jxdl#{a-icK6ggA5F)&!A2lI{| zuw`BV(b1Cy;qE2yen&_jbz@cXclB9fIY? z*A?%3f@>miIr=b#jF%&t`+N_HP^x{eP``q9^Tf$=G+Hu3+RKW7=V!E98HVx4#2ym=1Tl>B?z=W_!6z>yEFv$eKdiH;C3Cex@1}{-r**`! z&tK};u7<~Tjx7%Tp?Lpf?G}sE;6sjsMI3q^jt6!IEMNf&`qxf){x>M-n@VB2T54Rp z1Nx~7VTCZ@)Jcq!H}P_f#Yj{ak`Fcsepmo*7KvJa4ilTS9*XKk^4GN~%LF29MPfg- zU(tgUh}r^sYu8;Diy#vF^T2DQYmDkco~y1&YLsT)MznB!4Z9uJ*w?hn829V?kx6R| z`|Zi98vYzX5BoIHZxF&7Mci+1sJd<^u2BlSp6o`Edn7eVxL;ZI#zZ2EAB>F{gW{&R zM1TfH^#vlx^dRDIR8b<{XN*^)HE-o!Y7kO-xJIkaQ4f3=bP>+x nZ}j|&@U5Qr)V$aG&Hs>psDc4p&7$a#00000NkvXXu0mjfWm{>L literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/marshmallow_18.png b/app/src/main/res/drawable-nodpi/marshmallow_18.png new file mode 100644 index 0000000000000000000000000000000000000000..61b5410645294f5307d48f637c4fce75ea464cd9 GIT binary patch literal 1649 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 N002ovPDHLkV1i#j)64(> literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/marshmallow_20.png b/app/src/main/res/drawable-nodpi/marshmallow_20.png new file mode 100644 index 0000000000000000000000000000000000000000..50562acece38acfb079a7a9bce4379eec9376b6f GIT binary patch literal 1878 zcmV-c2dVgpP)y)ByiZ6Ieqh+|aoph=rK<@#ItMT@1S2JH^7d8k?m6J)A6jKX|Nm|6^Z*71 zF8cZ|{QL{R`z+MdZ~6Npud;sr{!8)yBjf5Bl$r@cM{C&U6o`*x;^~9<{3qPv6u9p) z&He^zha$MkBfY&+-{T>bopaaMO78cC`~5NR`X|@dc>4Vw&DAW**&NQ;XZ`(#`uaEV z|3&KRFMWoH{r!UV{DS`e2B6tD&HiA>>0j^rb^H55^YbnE_%(upQStr-hPDi)*+{$G z4|sx$`T27G{xJXl3B&&$@Bc>s|LI8K?*IS*TXa%RQvd-3AqN-^3lshdLPa3-H|BrD`k`}5X+8N&5`}=v`_)ycQX>Q}wI7&k{G;YL$vT;BhOw>F)08D=Xr)e1w_>x+P|=K1DaPb8WU*4o(EjQfqO_MD z3R6|$dMHFyndcWyqu_q~pDLAenSJ{|E0v;`HpNQi=f1q+`B(<=J4@L5W0_}M^DLp; zk7eN)E|i+M5H{)j{L zAE9)RA^cGnKmMU0<%s!nQX3dz1Cxh)P=NrTA-CC#sF+qGck;4_5|czk7qNE_3m_g?IcSOj%C1cZD0hW z2CKQPcsvz>6jmk@ay*iX$G38-GLbltA;PK=jT#ysO}UI|l4UIhhgB-1A!N|p#zbQh z55y()NTEz4SePh;%TVw@=p{Mr@SD->|Eion*_zFT1=IgKeO~$1Z@y`?U+iz29KDr9 zV&zNP@3*tF;G0tV3m?JJGq?N2sZ}9-I~-PvNTO#8-rU<;*cpv{juZ4yu{s>yPN`gI z4{C;UKrdWUK4QP0-*JK-J%Ce=_FjIT${uX@PMa;eERUy46g87{YIUY{#SHJ<>Va-{MsDof$f=O}onX1Ev3ku(X4IDr5sRccjTj}__NuP0 z_T1{xydI6?S}rV&_4tT(me5$ElZvn@DFi4O7E`cV8uJDRPe#5t5ziG#^hzpLm}R&i zy?E1yDm8SI$P^Bk-TV;>E>>r-mPb zZPLF_()+vo+;AB^8xkbKho3)fziznw>GR>+tzEcv*fe>)oJ%C;L=&fI-<}$N6T5!6 zz(?@vYBmqIry84u>hPh3lp?R4_8f2G5ZijX$|;_6s5Qq&B#H`ZJq)V_bBdv48Q)8m zby0Px@#LOA7(CnE?ZckG#{pO-UKtfED{5-pKS4p+gk|y?%ceDee|DKB3-B7RogqYw z&e(CiV-P+WvbiQJx5m0KiGekRWi6M9rwqcfHE@J_DOiRI*SQjw>sK8YM_FC|^z zL)40tN|RyG78=n~3E1@-MSf`*VR4ozdksNZ$`I9{vz!d$Y^$oDU4)?z)nr)?RQ`~n zpl4TlcHVCzUX3(I&va$K@1YRh?tea%CC=pN1%3xo%5#s8bD}3sf8nwq@2$YKsIKNY zmt`}cUqPY=MGh5KJPEZ=@U{Z(AbF}L3c)(q`vcu;c(L1XF7gi6;|&9Pl9Yq{K!%et zikRCHa|-E_+Y&%;RHRzr1W>N`UZ5cWAp;8G|L|G(d{fnBv<1eZNA4)qs`rG zIRcIC0Hl7DWr1dh)qMQ;G!q5%umut*lpQSab{x-J@C?;x=JYt;2-?9CE1J&>^v05} zGVqqqM=ieJ_+%i*33`4CeZ2Y63uZY6%Pbz0TW$iIt@1(9d_LmO0xeV>=fQ1Nn-7jt zUHB`X$pVQ_1iSJDd{=xT_>)%s_aI$fGwSlSf`2Y>y0d*EAlX4O3GY literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/marshmallow_21.png b/app/src/main/res/drawable-nodpi/marshmallow_21.png new file mode 100644 index 0000000000000000000000000000000000000000..fba3b21d40a9cbce2e4f0adc4679c49bcf1a3463 GIT binary patch literal 2239 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/marshmallow_24.png b/app/src/main/res/drawable-nodpi/marshmallow_24.png new file mode 100644 index 0000000000000000000000000000000000000000..511d2a77b052d0bb87c265c76cf97530057e9d0b GIT binary patch literal 1805 zcmV+o2lDudP)An0|5a91Oxy90RaI3000071qGz9v_3Fe&ybqWPngM755?CCm!^rkMI165 z{qRuXJAA6wX`0YZ@aK5{^KY}-d!yD{+Vbk49wYBqB zmUyK-9w-zNwZ?fKKboVcuG4wqGP|)jT@^0A;EkENX;7=T3#hq(Aw*Je zD(I@hSC5%aZz^hqh^@A}@ z3$w-$(BiYi$(yRM{QUHVxJ3E$^!@grp~r2l(%1d@#p7d^%j4!*sI$4uqg$b?(>inc z;_Kymr165UaGIidrbU=NAxZ!M0DyE-PE!B@4+RJtBrp{^l~D{v`6tWpXZ-ygyBhb~ zhh6jy^XK!q)>ruI^ZJnR@cvNz!xfasF_3RKMAD+wzjB43+ht74H=is9`npctlEQ`D z;h+7wwg{$c#0marQy z!7cy*1Xf8zK~#90?U?yn8b=t%nVmh$F0F#1;Dt&=5YY&D#cDK-M>SrJsnMFVxtpU& z?`r`Y4DpIKX_DUmX=j&fk9pW3$&+8g_a~l*;lulV-|sNP+H4h7RM9I7yjfgixC`Rn zS$2&P#?aBJ1xaDAM@b|kDASP0%Tq*2<`Nx0+}lLjKg=l8U|?A%7-YXQb@88rO;!7I z7phlpt*?)}%RmB3xNRiPUyx%tq`t4CdRVWmkzea9a z8q(GHcM%xO0TpKO5@C@*WbHHl(iN&YGEYjRSt&YHME-e@=N&xJ0u!P62pQ1^dCnfa zecbPFXlU^Jhpz1BruShD)(RGoqdndZ4P z3%qL4!{yUwaduIGFE)5}1=MAyY1QHe+k-6+@fP+rsO%b1o1NA*x+GA%k;Vg^|L(n) z143%XBX`QmjHDudXoOs@^1)z=Q&SyNcdxy9$=B5kLsu@H54V-k$yk7gZ_20iB<900000NkvXXu0mjfYEFnr literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/marshmallow_25.png b/app/src/main/res/drawable-nodpi/marshmallow_25.png new file mode 100644 index 0000000000000000000000000000000000000000..f267c84f308d557f706efb8d4398770df8c606db GIT binary patch literal 622 zcmV-!0+IcRP)+AIN^rxq%4-XH`&CTuZ?%mzp<>lq&<>eF<6tlCl;Nalouy^*6B6E@NLZN*x1;Uv0&R5q#^E8I;a|Wv2Lw5Axx~c8ylW83wxDoc z-lUYKMIMOEibM!1rA%)@L{tc2K}iGDh)~XdL78S?@PZrh0u_AFI7<$otT7Zs*Ati$ zXo>g)s?eZ}U<4x=!3ahW4ywSQcz1A|=BHBO!0~g72nX_c2cI+;I2dpY0%i?Af)v`% z8Selppoj|7zP>Xv=wN~h_t5ye@awEFmSeGhJyM93SfnH4u{ow(`dhQ<-2Z3wR?P6T#2hT zL*`ds5I@X1oGYt5DVNzD7W3=rV=nz1g*w@^Fig$NLU{~->WM$vg z38zV2-Akxv#Etwg*|`7@Er#4f2*!b)f)L(=!o5|+#Qe8>0|fX{MHsze7ytkO07*qo IM6N<$g6y;`^Z)<= literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/marshmallow_26.png b/app/src/main/res/drawable-nodpi/marshmallow_26.png new file mode 100644 index 0000000000000000000000000000000000000000..689aa1f7580954d397b8eb1170a22a6784efe1f2 GIT binary patch literal 966 zcmV;%13CPOP)FEfh;y~^!L{BvoLM8Q0fVXlJS`1n=W zwjy8v00MeRL_t(|ob8s`mZC5ah8vJ{G$I6S#D#Xl-ErUT&ig;sgtpb7EFoUa9KPd~ z7vHJBid6FUmXVQ>k@3G!?(SEX<|s#L2Ez+plHCPx8dVLBlZV2rGCdLJUuV4TvZ_KpaXIIvgdm#r(c zHX;dt4rd?NmC?sXJ)h_UV5)NHdcIDQ8ia#ZH976NMs1SR1{^*BtfUeP71J+IQSyWf zT#YxX71J+IQn(8AiJyzQFn{tYQiE4G>Bjc&;*+F0XJXpMT}?0Fql8LPNQhQ}&@wA*5D}bmq;M`IB!OKf z9~faB5D|9lxz;OpVM(lsq@%OKgFQm)40*SSAWY$Z4ia~h0zlR#O^HD?3URD4P__StAR@_G7R z4e`=HQR_5p+AfTI=P)$onz9TP*^yM`9>oxZ1H2du~&AUPA-9WRbBO)%5 zl#@PabgnHoh9)$iT4u9wccflfC7Y()-On!l?>8eZeoR=hBrlLsRbeAAlB%=Yk)GS8 zu-v<^C$F~J86jhXlGrUdo&WJT{_r<2J)Ml1*?Wl0PF9bWlx!-{ zfP8&&?2Nzg0000vbW%=J0Qd(jI1Bs}AB1-N^!DZQY##glQgt}*w*CFsl1$yn2mWrl z4#6_p`%-Dn#pwC=_?4D)^q8Se;b2s_5&!@LheG$tZX;NKP%%w z?tA30Wv+ zu4UH8pLV$CRA~GkL>V?$H|LK(RW_SI(8@Tp$cYPUvjllJ&{&&LqRh3s)(5Aacbn~_ z3QMIy;Qo=TvZuIqtE1Z6uXhRHHixU1&KN5bwAOUJQy1H2#8!R5s&1#+2YENJB1y~T z@+sij!`MAf#X4Va7v#AkUKX^xmD&5JjDu6w-viV;1=`?5%WH}q&4AZvnKCu^gYZFt z6VJNX$}CFuJ-{&cs%CB|9g+AA{t5>@s$3T>r^uImkHn_lLXfV{nXPA>xV7dY5E zBA%q@^O`wbN<&iu^S1VG9O?r(J9;Oy#cU_nHBj=(oxFW|XHl5DyT)i(C%c{AGSQR} znIVIoUXLTQpQ2k?3gs!v+H=Cvq$3(1Ft)shLm`}}%s6DFEis^>9=0J1RJ14Ldm*QD zUS*H|k9VSk%{zgL!bdOQdy4?p&~8QpVTE^8snKZY;X$n75+Iw-9K734Gk3EV9(=+( ze8Q0wE`S6wlVplUTwmY$viV~3v0IBh{yJs?m$es@*gwpN6kfM9WqC5Z_(LJRI zFp#=|67$21tk0!I{nN;BD5V9s|RqlKmmZlllPi1J-b2=dhh zUm~w^F$erl7>067e32r0wHz66&mlnB5nrC8jk&g>0&ik8>59*hc49F{F~M&(hAa@p^>0J8oy5cT00000NkvXXu0mjf3=&iD literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/marshmallow_28.png b/app/src/main/res/drawable-nodpi/marshmallow_28.png new file mode 100644 index 0000000000000000000000000000000000000000..9cab75a1a2eaa7adbf0a3b45d61a4c58fd31df6d GIT binary patch literal 1645 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/marshmallow_3.png b/app/src/main/res/drawable-nodpi/marshmallow_3.png new file mode 100644 index 0000000000000000000000000000000000000000..26c7a43e9b521e22303f1dd13907a3e2009409a8 GIT binary patch literal 1467 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 LNkvXXu0mjf^w-|S literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/marshmallow_41.png b/app/src/main/res/drawable-nodpi/marshmallow_41.png new file mode 100644 index 0000000000000000000000000000000000000000..1d215345cf55baf6f1625cc31afcdbc30a84a367 GIT binary patch literal 1595 zcmV-B2E_S^P) z@$vC!XlU5L`>2Q7t%~Fz7c0}a{Mo_&gKMa%iP+Z3>0?)Sc5i?7_V#O5h*V2r`1ttC z%ggok_0_xngmIsebiSyR!A{2E$3nXlFB+uQYeEt3SFrtQ^^a;dPZRPLyjjDG?L zlJ#85@QN|($z?-_$$BAdOetKbEr*O}j%MI2rH=NN$R()djJe9?1A9EFrHl`h$_K0s z_?TxA19=4b1w4bMG6C`k_j1NUUGUc$o@_7X8R4JDyg-x>8$84emqn1g|Ci(88T0}z z#+}@6?h20vpTg&h>H^LgP7tD;Kx0uBkMDN{3z*^sE-3WzAB!f01_rl2j2SvSA@s-( z+|Jz0@0D|hC&Z%sK%-EY%iP~|ctR)$kd->OJ@aA!e}s{!VFX0Z*w*miYGg1laOUv{ ze(in&NK<>0#KtItLMUJk9bF_RBHq6m17pho!$19L1P9}igjSaUPHr0XYYY@t2gVYj zc`y$c+gb)VaZnI1Fc!SbOt%eh%;c}&N#as58~fgvQOgSqEyJS+KA?W(iTQ&%Q)9^V zM5nV7^#UOfyL=XDv~QZ`Fggvq^*Mxi#{-Pb%pxrmD5V1n_&i`1pTa)srZ0z(w644s zX9P`Cudju7pfS{jhL`vc`x{a8SY%lY(P^G(_6yMwaHyH`(38sOU*g*;5VzL6L1%>t z9(|Qfi|7KMt#{_rJ8)B85?VGc8dHqAuF`7H# zFq4WdN$akDupe8!#2jFGUB~3Zp$-Cqu_F4VpUwkT4#?u!9Rh$5I!Pvvkt-rrH!PLk zNr|+*QpLQJJ8V`e;~5%YF~XGg`m9vhiY^i!AiQbD(Qi|0qMN2OT3MD!QS(KsW(Zs5 zG8jKhv>ObVZ?v`c=p$IXY59{Y7FD&aRx+I7f{bj+#iFVGK9tSGXlil%RW?*c?UZby zy2nQZ3QLxznzE{yi8E)DLUd>~cDX7spxKdZqLxQ|KrE%*ZK0JSE|9cXiPfsETfm}d z6-Y~qTtL`t7dxt3%1*J}wBtgeR4!LVvTp-1j+E5V!xjly|Ki!Whsd!gwpuy?4v+vG zsYVp88bhr5H^U)u)`_AJI08a|70j1Gh);XHQpF9q*Xx~P_YVL-RXS+e{1Ti^PB^dICKoUP~tlN|s6002ovPDHLkV1n9*Df$2a literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/marshmallow_42.png b/app/src/main/res/drawable-nodpi/marshmallow_42.png new file mode 100644 index 0000000000000000000000000000000000000000..2208ac455c5a70bba96ef27c62678f92a6054a5d GIT binary patch literal 1478 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/marshmallow_44.png b/app/src/main/res/drawable-nodpi/marshmallow_44.png new file mode 100644 index 0000000000000000000000000000000000000000..9cab75a1a2eaa7adbf0a3b45d61a4c58fd31df6d GIT binary patch literal 1645 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�< KMNUMnLSTX-r2RVp literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/marshmallow_7.png b/app/src/main/res/drawable-nodpi/marshmallow_7.png new file mode 100644 index 0000000000000000000000000000000000000000..61b5410645294f5307d48f637c4fce75ea464cd9 GIT binary patch literal 1649 zcmV-%29EiOP)D4@>x`1mQU+~nlsCY;D)+5TRx%=`ZS9ebvQ*78PLWH&lH>+S9#ine>!^l`h` zgx&j>-133n{+*zqgUaI|d6-4h|7F_#cG>v{9x7;PXbLSpV%YrJ+S<_2(8to(L|Nr^<`RM5B zK+^t6)c^7L`r`Hcs^|QI;QguH?^M?Q+Uf65qs1`4{KfzP0915RPE!E*0R;*Y9QiQ* zK_^oDjs5xe^$hyx^PS=A1^)C}UTW+4cl(Jtw4MDr{{8-Qd2rm~StGa>E+P)np)CEI z#K^I}r?TkI+B`pb$De(Dui;#8aJLs2EgS#<1g1$uK~#90?U>nC;y@6FNjeE32`YqS|alq?q? zwrn9Iu}WW=CAoi+vysb4)~gr@D&h3P9&5%toJ((d!Ll%RuEMRx{**XO&0! zU6y%JE|%6~23@^zrShCk>p-lwcYWqC14ooSAVP*`v^BkPIRsLR0+m_g5!?lAJ5*+M zVeOdu3{bA@OhkNeIRg4^02L*xuSl>#jesj|#fHNA=?MO4fXm9_g08gABJ*nmq*e~? zI8=VujDY?XXvbn@R~s`k4%v3h8`_wexE4s+04lN`cypteF*{Q$ z(?P?2w_Ad)AyDphda{;y#OVuBJf*Z*biyfrh}0<#fv(>cwf=1a2n9I zOO%2-pfiKlx6xS}el^}d4u?SblxHRVEP)Vt;E%Oig-JqWLL+;gbV@O;218 z3=&9kX%&6{&8x(mDG_k_Rn?;BOr1ycR&a~d(>)#t*JTL<&m= zU)`TEVrFEK6Qo2!64dteZMU$3d&nXmkMk^0fh>NozyT{~Gr)49h}sF?3myrtmD~h) zbfBUe0%^dBoQ0Da$s_I!_0hYkL1GbKr%_7wFD@=#PywKu9E*zHtqy?o;Z6ueF5!GQ zY>7Uo4}fQ*mIW*lWAmRIn%f@$^W&DKu^cwV3aZ63fpvU|Q1M+cYv))Y;t7*xbt1+RxI|nWLw9f`uO0gNClMw86{IWMyTTp`~+mcd)v>ouj6KijDR4^_QWhuDQKh zVPkiFfqH#?mYSPhWM*x3cf`=u`1ttf>FLPR*ebCA0{{R3J9JV`Qvmn_2`Ts-6Ij9w z{c|+ByG8l?<{;YQVRY*CEBW2j(t7=|TbRW?yn)QWpu>ej05Y1I3_tdp>45Ric9&zbR^X*)wF zkMEanA+c0?=_OxfPyY(mZ%tht%bhkm<>zTr+i71ALip#>c9d!V87Anv4uMg+IBusf zuj7tTT$hnsFN7;M?F&j$rET{?fpDj7lq#o{n>c^OL#W-#nH%t!M~JyRf>s6(6PtO6 zeFtUA&QU&f9WltAv+`hzg@-C^L4$2`=&%88n2nn^Hyk%WjLNhK`wI?h$qF=biwfc0X1!i>H9G(F4}CE3msn1vHHY4ZgW6uv!S{Y*V%n zI~okW#wOGtEI%bJV3Re}108s=8X95*-wMfiS zhmilGV=iE^J%|8-c%*>cBD=VW087$Xpe+^%dMHK7FjF6M6N<+~JZ6>+?xgMQ<3 z0yo;-OB!kijt=@QxnD+Biop-@ZX^Op+X=T?#6&J3>e1wsO#IPerwAy@)HVv37@uR8 z$?23ttSn41{uY3|eDk;`9`D2Uc&AhBBwzWG`J`hG6wO0W-^=rWWah29uf%vUkAqz@ z56>LYRF5Rt%gO1yCk2j?*R8Ca1Kw$JiP$@seA+P#NW3YlyMec=w!-@T{qyH-wW?t) zPghyBK%1{)Pu9frV;wfho5N3URpY4k)Ltl6-B7@T>Z>Q4nkYRy)B)J~43;&%c`S|B zH1gL}ZotVHKl7f763jRwmajZa>_bn0{1PeP=L`n_$vzZQJWQnCwvtOdpD|x4;I=^l z_4RF`^gX#gH~ccLGh8A8|9&ItW2*k4W?T)9y~)y1lWZb5L!#MJKUCS{)jeJg zkA@$w=R*%YN+KyeNbxLIVi0fHU*`rM0jWrmr@HRb&eX>}Ci?vjTK+og{>-~J&Q}@h zQZ^C#9W_@17xx!W$uz7WX2X<9%v#%l3*`=oGj90i4Vh=SLWV}y;nwT-6CM*6*rT<` z!^5>a41mK}Sj3}cwbTPe~!^wWt?Phsf3c!WpJQBL|dY?`iz;-L`!pQcdntKq3!MMsoF z<~D!q+VTb49s83;&dJb~3585-clsf$`7Y+v{H*j?J zfj);&w)c0P-*doUVd5MX4zp`upa4E$taOVWpId?4!ou;0t|urYj7LxIky)lfML?Jv zJupoSl)i|N_-tr61F5hpB+OhI_?8Mm|CNZq_65;GAS4{pg90)_p+i(R-}fq1xJ}aj!>bno{IT^cz57C_htm{zZn*t9Rw zi;c?=7p*z5amRLM6<=#JqS4L#TJai$Qt{e^u-6WHl(D;7{X0f1do>$(XW)Bl7}T&A z?t-6Q%I6{Di_8~_`7&r5l6HTsgD6%SVLN4EW_-H2Xj6oSgtgM84xXG?x-!zU73w4D z2F4nyUSnY_z5FyQ$_XtEU5WqM;saUv3N6$U2Mx?zQwB|haQ2rK{>=nF9B&n3C*wOh zxQVc(y=5|+nYqU;lpLllx+66?!qeR`Xrt~JTBF3LQ(QY~YSUTcW(6ijV{ulR&cbN! zOJ-2mUi|(p+M)LdUowLv&oI2IF~FllNQ-aqqjXQ6JbCf}{sTYvtY*2xvGo7|002ov JPDHLkV1gR6_l5uf literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/marshmallow_na.png b/app/src/main/res/drawable-nodpi/marshmallow_na.png new file mode 100644 index 0000000000000000000000000000000000000000..9c7abaadfaeb1059ddb662e417f69d3f7215d536 GIT binary patch literal 108 zcmeAS@N?(olHy`uVBq!ia0vp^0U*rC3?#SQPk0BUm;-!5T-^(Nntoln1mrT71o;Is zI6S+N2IPo)x;TbZ%z1mjkP*l`wBW0MF1NnMgH+}M2F81$^PPZ#44$rjF6*2UngF8L B9jX8T literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/stickers_0.png b/app/src/main/res/drawable-nodpi/stickers_0.png new file mode 100644 index 0000000000000000000000000000000000000000..49bb8af8f10f87ddf220c82b3fa9722e9ae3ec11 GIT binary patch literal 1762 zcmV<81|9i{P)+1;#3E|-7@$vE3*Vn_t!|?F%^78WW@$vET@vN+@c6N4OUtjI* z?Ua<1K|w)qzyI>`@|4g2Ksj!C!~cxT|Aff@R8@vZMR`_XmC(=Gl8>uyuIpx;*sra@ zcXF3ui^W%Vu-+m-eEK*bKKegh@sEek5f1VG$1d*vGnmsLfywcGs~wK+&xH7IDswQE zcvi1EPqW|OEX(WaDQ))kDa5m?$-yZRL^`GL8RrX1kQY~oJ4MbGqN56 z5ivd}$k*T(ZnISp?f^Bi)_gurk_QOZKTf&5F3wzrt9c_YOu|D+qWuqfoeF|@ro99M zOx5TJozT&x<&g6{2xqu8b$DSxB$zq`e(XcOo!xv!K=U~7BNFLwM1DdRbIpL9e8p&b z2*cL~B;$_v=Ro#~p#m3iGnrwgLud%IiXTlwjy4AFYr#L2KQz>VjB=S`d@-NrdIB<2 zbrE1K^&xJl3&EY?Zk9u8T@Pj|)MH@%Q}QLM%L{(}x}9OHm+o_9hLqtEm5fx`W?qqG z#(I)3w}w0VrebVlYMXOa{Ly@b$Z}IHKagUW6)`c`EWSyEW$>C~QT!#0l@#fD!@ z{X{9qco<*32}J_kA?jIJe=5XV(ur_puc=CW5RsMkZGv?dAhQCaM;9_uiDRKi*$W^v zi}6rr${@t&9?5k@)W48sDmx<~F9_*)8-y@xrKTeI-bwCmh0%`~(oLigpUxm8<~fq- z{!}=s2;weAHa%3Hgu@WX_R6#t)|?{`UVOJRWFbB~&S(I?jDjMoiDnbM!eHYpPPw%R z#2bawdWE;VG1k-GWMJChRTJlyKLQ~SOp?SPbi0ZKj`?h&R|QS-AxNM4=rZ64W*y6< zxtckMZga%)rsd%kO-5I{Tn!O$C2xqsL8pj3`7M?rWKb)JH=6PJq$)jx3hHSH3$N;T z-1R*~r&Z-X8HB{Li5T)d>LZNPUq;t3`MqlADFU}W(a?d_x@LbuidkdWDF^3S}(b4e!;+GO#fK zDMhP&S#GS&#^nu6a~Dmw4O56bbk{K0I80s>V@c_qh-~@%oES_dtVO2Cj7>v{?bvGI zbgOs+;VfpTxt^Oz&yob>!46OvT8pj4TO@j-Bs_rowFT0U?djd?3TwrpKBn46sFU(o zxC5s56>gVpYYXGA$P(O9B;}0riagw$Llkcap|ORb&hrykU3N=EK=PQ!1qYAykH106#K=rZF)pTu_M1d&T<)gg>NVksfJ>pATFS%goE;oA;3Wa~N3jeuO& zkD@S)&Ja+ZxBHM50<-fx#}MyxI`lyv$cJ_KlYdkG0|EE1^+;SZf&c&j07*qoM6N<$ Ef-WsvI{*Lx literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/stickers_1.png b/app/src/main/res/drawable-nodpi/stickers_1.png new file mode 100644 index 0000000000000000000000000000000000000000..2f1a5bbd309a0829e2ecff8449cce3d2b2300383 GIT binary patch literal 1622 zcmV-c2C4apP)G1II@$vEGFMe5@$t#Y z$p#ua);=Wr__ zJV&Af9xj=Sfg;^jkOB>MJK?~`fW3WsJ$$^se;lqU%PKhH4p?TqR#8G986P$h4l(;1 zPsVvf7p{3kUprAK7!9QkIm@Wunu9No9Vu0C*=TSfzl6NcR&7~aUJ8;&aM);Zpezmx z8@D83#lmqt2WN?y`b(=7htJ;dND5!eL0HJoM;17}w_xsIK7__1uX@?sz=b3VEjFAF z%zJqtSuRmd*1POV`aMK9#COrBW8L$YBERn3XnM5+^Bx_;;%Z*~$&#%oSS2-Rm zv(}io<~wSKL3*X0e!W~a2Dn^!bV@e_Ftd@~0S1yCzHeILomytVSv;)+U}5XwVbdCi zP}sj?*Cs;y>0|Q%K4`D;RID0BvRjsGmG>#-54wiaVg8tl*n#4;1U#aP;E5vvMX zYF^+y05kI{s?1^YNH-571v6WszD|tx3n57D9I2 zuGQW4tEpD6I!N3}P#PoUOEMD)X5tNJyT$ny?Yk z1Km7ATAowK;gARa0gg}M9n~n(ySMV-$=F^^HpHX9MIuD@y*3L*VK*OAEj0F)Bc~z{ z>A5%H_#x_)e#g#e;n6}hl&YYyk%A@29*RWrrIfISdXZvn^8nD^81gl zkUd|HYKIN)=8ŒxdFE>=qE{Jvha=g3z(*f8gK+g5!AkK1rWS-u$Ze&X)+lixw{ zK)717?&l!8X0Wo+g@kh3+dBO#9nZ(H1Jo^ybBNB1_CoqVkQdHgzo3b zIaV(*6V^u1yh}7y0t1%V)Kqy~tP-V#qph@Z=opHNRRaBnP4`~-4zLd-4vCkS&mp_H zEd>TgNY8Ykz)b99`#scZ$x4wHtb7c0^S}&zY>bSTyuVg4nu-P%?ha#Uc|%y$Prx-@ zTyTs%;QIcXLLU-73Z-AA5U4bO*;$ijzKAtV;U}s(|1`AC+&ztgz&{e9ZK1>Ph-3u|?(ZN>wOu(8~j_b>T_oHuF zFcG?W>G4=olp^pUxK5D=>fm`bS$Sm6ADNsz9%2#W_Y*mK{6Jy1`_lJ|U;Nkj3p~}f U-jLvMz5oCK07*qoM6N<$g6ne~L;wH) literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/stickers_10.png b/app/src/main/res/drawable-nodpi/stickers_10.png new file mode 100644 index 0000000000000000000000000000000000000000..99cdb36aa940cc25b2f3ff9c65b0cc0daad607da GIT binary patch literal 1570 zcmV+-2Hp9IP)W+YG{*PS%!tQ<+-}da&?`~%-4^`_nDTk z%iZ#Nq0?)HxHeXekBzH?fup0Q!7yo{yUOFOcPn%N000zpQchC^ONHy9p@tOV=i{iqF>%wBrT)v7qOxUbMrR;c5Aa5F!XVdv(^6%|hez(eZTRLq z(vb`%GD+e=H=oK1F8vZT^QCb~-jtnK%0+NT4geE*uOD$}0bq1Zt@p<-+?RpK#{8_YNIVH> zED`_!3FGmE7zb}yxf0p(K;+Bab5<^Qx+hhnMqz8}bLZFAR4fSSd?;FL+YyY!0eT+1 zO!s}p66*naA0a1>)ptOYLzqW>pU^g-KMqPUoMktIzV1Lh6pAp^52+@wyEyzQA@7EG zs#H~&RmTx9fTxU4*RDtgKG4rCnHUJh_NT#x{UV|nC@*&$a$5126SC0AxiDx7Mywh&OA^GW4&W(nxfSSSO*pmley#_gj z;SB|sFpPub9)|Y@r1VNtE6*7jZCqJ(1b%CPZebW=5OPhEkD?Gj@MPU}EwmHli(<$^1_f4E!*G}(n8DbC8Xt* z)2IBLL*N5)5!1zIK7&xZ%Dw7^&`30SB##CuK$!4tubkfUs%ug%&TO`nt)4-$7@{lR zuq2U~s_MEC9e;K|b zjh}?rU4l1*YEnuUiH29MVpm!7ZWkk%@abxi#d-0V`L&fuU&*}kfTBaTe(NL4AP#mRcf>wIpH)t7vr}Sq>P; zAlon~tyS=b~g zevgljc6N61^753=|3EozCxpCUTZctMcT7rr+uGrTv*gUn)?{p(Lq2kk#r8B?l6Z8O zxwptJZ>DO5w|bz`k&dgGmawj?z=M9Ep`NyihNVm_0f7Jj02OpnPE!C__5RR8ClJ8h z6nr(LU~aXKgF%CM#fQ`Y00hcOL_t(|ob6fJmZ~}sH3=w)IP_^yKm;e$Zu|d#?^Xts z03lKFKDi&xT7A06rfSzjdNBClgAe+|c~*Sd%^} zoIrv8Xgm@qLA+il#@6k?&2=9od7ec3>*hvm^&rgzi^JA`@v?&WycWN}lfF3C`(*?B zbw4bEgIscYYLcDObh}N{Q`4+9EE1_XI7`Id z#Th>52n*I3Vx{B&7KqrH8Gbz)u!-lmmy&&Xo5DCyE;j}Xn>+PfiVmKI@S{2%-r@4AlhM0+u=5R3R~JTbFPfv)&cnJpzSb8!>5rZ zWy{32(h<-jdD0Ex46sDpm7zkBLw7qg@&zKsa?C}|)G8e*!WU7LuFQt5(SlYLzZ5JM zFvu~cz29(!ZK4;W;?n_&^TOsB8nsE185N%nP@EatEm1vQSV;1s>=daG1*3Wvv$h4% zd|46@1(c;lPyPpzfFShta1q=fd5iGq?I}#02FV+WanTU|9c`sS(tm>lNrrE4^$UcW zbF1f}+I$%2C(fIB$`gMZfR9L}tpV=x%`FFNBw5o$Pq#rB`~hFCtO zu=O9QLp1Xp3#)Fq$Tj)v3Y02$8#FeU&f8hm^mAm>PEY3Gh4}~lNR>#r7N}}#aP^)l5-+|Jpa+kUafNZ%U!Z1$Sh#x z)h6qd)ze_lSngJ(2{hgC_E zRXA$4GuzOSUlIPeTHFdx>b75cQJCt7io`$F)3_$F_>>A-ZGF8c<#x}WqYvJWBQ(2` zwj{BIqS6A zF7zbRTYYgHcojpOrAbNXx}dhziNf9nizj2AMsv1)eBGQOY?u#Kw)(y@6*aa`lIVP2 zZ0WCtbir^f$DfIHp~Kchm7o?H{&FK5mEc=Xhpi@HwI_*RS=L5F+eWrM92wYlvq*`A z7hRjwBepdxteV7KwywFY4Et+txws;6Pqs3Kb%}ejtzkr;y-VDi?FS!x@WJc&4;kvE Un0NjZQ2+n{07*qoM6N<$f>rs~g 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 Ef-WsvI{*Lx literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/stickers_20.png b/app/src/main/res/drawable-nodpi/stickers_20.png new file mode 100644 index 0000000000000000000000000000000000000000..35b0777bd6d529699d1cc11e986e8da516db5553 GIT binary patch literal 1238 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 KMNUMnLSTZ`cC0V} literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/stickers_24.png b/app/src/main/res/drawable-nodpi/stickers_24.png new file mode 100644 index 0000000000000000000000000000000000000000..4866291d84904519df50b8f98cbb2ffd65870973 GIT binary patch literal 1404 zcmV-?1%vvDP)+0+P008jt@B;$_1Ox=?>gx3L^z!oZ+uPgj?(TSac=Gb{#l^*|tE*E} zQ$RUx^78UkGLJK`xOy1r{5X0DPLB^Mr46%$F@&;xgSI%}$^J!7keD=K?N)@dQJf zlQqXlw|}o#j-48>s?J%KW~`|z+ATZUaU7*D$~xx~^12$abf&7Bbb##LF2i;#(j4zj z08{%f;sEN%Wu8uvmo6-D*5`2lTk00Iwj%Nb?EWZzev0C8XYhYbtXTqBnx&}_!3FTY z(gr@mfsBZkP$Ro@f)2$UlzGAT;bGk+AcspC?ysd=B!@V6KBRzUf|*H{%aB_h~)~iw}Js#O8wt!c#JYm&&&0sPYE7oo=K$TjN@UXip6Q=pIq&HeVA)eb$ zA(BJS;0s=MN0qg#UZiBOn;$XnNpdNT^?rgA2^LP*m{kcTrMqK-Fe`ee2s<(%v!R1! zw2@XUT2*3=D#!gz4-sbkgq*7VM3sVOa;T;=>>F|l%~T0Y9Kz3IO}N3h%d>iR8fjR* zG6VYaEWk|Fn^ZHO2zg~iwZ{=UGZl!*)Lydg(kDwbm_(NuIe4XA8c*#7K}+*g%c1h5 zTqSw7N<(~w$k(LbQ%eD+8^^*fLa6Re?ySByDlmQb2iK z_sBHb2|~7-sQcti>_}v^>q*Q$k+9JNVtC{eWFKAqqdf5} zGu{Q$jGvL1YnL_p+Lc1hInPLT$MBaNq_4t|@D!o>6&%Fm_6rQ}lS;Y->8`D765>yZ zhBu=uK<8<2DfkGX*qz{2%BZ}nP6DElXNlpKKlsl`iQZZkS-C(V`z~IA zatN)^sE9><(GtkMd)z_lVygul!(8*1FzkinB}JBN{vySwt49kSS-rjV@@MnOb;($t z`D9wG>2=XqpGOy;8QWql^w8(wxDj^ClkxN$UQG@$HNwsyJgy8J$KMxvr3TLrQ(SFvE#7Dh6rLeJj!s39kD<@;txs_nC%|B&_$X`}MU$W*{KLixD92AC6+oWn z`^%H4V<{;fpfrqA1h0O+8N9_x<<2CVyDW{ zxp^2)kukFKic`kZ$vljaoxL1uS2db-D6(|DTO&N3+AK-j8sYI91vOoR8rU?#)w`+7 zxlim#pb<6!8f5a;Mpx)U!W&`FL;^LTp5=*Qp!y8*_`BHBb=dG;OzTuXA1#R2j zcsoUQf%?s)62GVn-Y8Z^1V=>LVi2P3j0FbMu!y#IGh<0zra#C*Pr5A!uWiYY1}A7^ zTS*)|QK_luN|WnyPx>omh85J?UX4~8-}7Ww`d760;)^f-b^HO5!e?(H7W01q0000< KMNUMnLSTZ`cC0V} literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/stickers_25.png b/app/src/main/res/drawable-nodpi/stickers_25.png new file mode 100644 index 0000000000000000000000000000000000000000..490b1bc181dbe322582ed6da9e08cd7aedbeadf7 GIT binary patch literal 1537 zcmV+c2LAbpP)ER#l^+3v9VE6 zQN6vrp`oFho160T@^HWZKsjzjKXlpd|58tXR$!BBvhiAhyw=y@t*gIrY?EW0*}uQe zkBq9GoVJLAqkegu7+}4!0000MbW%=J09pO$FZUPNMZ*myiEfolzN>GvoN9&~7^DCI z1tLjAK~#90?OE%3qA(C`xQKYEh*qHCqNwfrzu_j63ka+G z=vp05JmaUM`X!i6L4=NY%%N6x4ewgzsfxUU-}e(3KFWlK0>!F$iopTJo!ibV+6ucA zEpFgZkw2{a)DP?p5@S|!Cy30S$zH|FwWmH&H@E^iP+Q!tB$I&t7#CR{Wnc7 z-zu(YdIIX%%wA!ir(81QxE_rX!APY+D!~fWnvI@SQuz`5{lHJ#$%08G9z>14F~nIo z%EqWy$~uEe&X7}lH;DKdUSrJ0B1i>A5_!)CSvn|{8b#v7_kifDVg(5`>uH&k0tspt zc+Uk{LV+$q9!ZjL&AqdlJrx8JslnH=KT6G1>) z;x0iVkV*=v?B-7daWx}(l3*$qb$4e35I8cz$zmP4ZYXCzbS)>tL=-FjWJ4u@;OG?d z65A=4uLvSLFs4$pqj z-xH9pbAncto7|sq8RQCBXzSq{?_zNZgJO00_3G>>mR8nkSwWiZveaT#9QR{uPs9om z>O_=ayQ!G5XI4h6oT$B|y?Uj|N*k`I6|-*=7LYYct7tk%TJ<1gsTgrv836gzYQ-to zjKLORC$pHSm7Nn;(~eV6j=`IH1@Uwmb`ZbUa&=p8!|}hU_GAzw>Vp(L5Q@`U=&3iv zi5`PD<>EbYO*t*ZaMCV_Z@kB4lz5ucLJVj`CI~+pZx2X(>LO3pne<__$(? zcFa`Lye^7b{)dqW&1tF5BztU{mBwaJ$`N&HOLl78`l-dHIW09S03$CFGvv54-cO|} z<6`tjn$!Ahicu!FQ8uMeyj=1u;}^4~(45wyv6p=eg>pWO2hnM%p~p?i&B(`whmQrI zIIR$qE(Sr845xP&Y8Rlc2~KN??3Ke9FbCCL3tEUEjscVCv~X68B?74cD|;4i1K0Q6 zU@KbgPM;$=t=_B{Vg>3IvDut8G3K=Vp_$S*8n;m!-{j0Zi8G&j_c^V;(YTF4<8hzU z@+lyhD#YAY0Gre5jrM*FeO+{))ABV4B@@;^*7+=>P76O$Z6m&Kp=_D3zfu>wIYxF` z_uLcKR~OA`H8*|~q`mP*u{TXyr8q6syEvhD#inf90YP$F6J5B#E*x}ED_2i-TGV-R zb6S6aPIOwt$tcRut@TEGE1J_ql-sM~OuE8>V zb^ml^cUpRb{DH3<^0F41tjjzzHppnW4Boa~{roAXW$wZ$yt(=pci~{H3^TTh0`X_b zAewes3%w&aM{Wq8Ysmn{*hlo*i9F@B7R@G7U4&X$d z6WKBDiZAyt6d;*rVRWTJmdxETWBZ^35$s9k{N7|(ycd%64`NM>_Az^Q8VF-7iJ+N} n*Mz5m=H9Ci-tmri{M+~gDz$=VT%Ft+00000NkvXXu0mjfgnjKS literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/stickers_26.png b/app/src/main/res/drawable-nodpi/stickers_26.png new file mode 100644 index 0000000000000000000000000000000000000000..30a6279f4d8956400328a3c8dfbf4ec8933fdc9b GIT binary patch literal 1384 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 Ef|zYNwEzGB literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/stickers_29.png b/app/src/main/res/drawable-nodpi/stickers_29.png new file mode 100644 index 0000000000000000000000000000000000000000..8476a2ce791e430da184c93dfaae4d92e87a9ac2 GIT binary patch literal 1666 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ŒxdFE>=qE{Jvha=g3z(*f8gK+g5!AkK1rWS-u$Ze&X)+lixw{ zK)717?&l!8X0Wo+g@kh3+dBO#9nZ(H1Jo^ybBNB1_CoqVkQdHgzo3b zIaV(*6V^u1yh}7y0t1%V)Kqy~tP-V#qph@Z=opHNRRaBnP4`~-4zLd-4vCkS&mp_H zEd>TgNY8Ykz)b99`#scZ$x4wHtb7c0^S}&zY>bSTyuVg4nu-P%?ha#Uc|%y$Prx-@ zTyTs%;QIcXLLU-73Z-AA5U4bO*;$ijzKAtV;U}s(|1`AC+&ztgz&{e9ZK1>Ph-3u|?(ZN>wOu(8~j_b>T_oHuF zFcG?W>G4=olp^pUxK5D=>fm`bS$Sm6ADNsz9%2#W_Y*mK{6Jy1`_lJ|U;Nkj3p~}f U-jLvMz5oCK07*qoM6N<$g6ne~L;wH) literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/stickers_30.png b/app/src/main/res/drawable-nodpi/stickers_30.png new file mode 100644 index 0000000000000000000000000000000000000000..d347d4f4476d153abaf8922f912779c4331258de GIT binary patch literal 1549 zcmV+o2J-odP)+9Iq*qWM}Wo2cAgoLiH zu2ND`FE20h^753=|3Eoz`M6L2#c@YJaa&MyypCB>M{xSSVBg;4l#{JxUy8%Y&v9OA zwzI{FhoFIdmzcuik#S&_ti*YAm7}7%-lkL2#-lfydmsP+02OpnPE!C__v1Zxzb2Lo z61gBk)R%aRpmJuu@>W>@00kXML_t(|ob8#}Vxlk14IxI-1`2nH(3Y} zh!DhHjsKOU*3Yw_q_f#uZ~ed8IJRwDo7pdFX}es`?ANq0T_JnYukAt?8$As#j5i0Ol)^d@sLlCkAZ@^PNg7bg~P zqJS`%Df|HqOL7W=8+-fb>IrYLd`0+_(CP@!^apB)=h2t=P8^m*alqb`(D#4L$3Yw( z?NR~x)}9vz0cQ|OdcIRsAl|`D`D2VTMOcE*7}b7~74qNsXJ1%ijEl-v^5e7E)BmQ>F}ki}QOhA0`rVRXL4 z)x;mzldFB&&8~b#p?jYpl_@m8a4c%&PamV&r!z4oaK9lHglDmT;utU=X3#RH>3fYY zkf=z04i6z!f`tLc@UmYFG1xf7c>$YBh9CmNCgl2IhVghr)C@m|9VNZ~Vxp5j=a2`c zI5i_Jph`a@EKx^gTQhR_K#6ut)R3hq#s`Wa)TbPj*=499Ru%IehJw+ckuoNH zZAj>L3*i`ws^WKsx=C8XSt%UQk1`}u?=lpIEVq^o%C74dLlCG;V5tjtBeHQSGlM~A zwH>COCvC>2anhkXDb$cEf7xWjWoETj39ES^yY^Iw(v*XG#>;jrr2`uv-=)xjz_zdC zZAH$kYIuO`bi|lWbS(x;u;xmH>E4xyy-R`!MigUl#<*%iTFafZLCRq-8Mg|7{EHqW z@nki3;V-F1c=>@V8&CPAfW<{GB4moSAkD2_GGxQ@3ebj#Z*ZgT)uiXNYSd1ueHD?@|QJ^gNlAs0AN z1#R*tEN-T}gDWJ4e%!_)_LB`#XIl~0Sh5E&3z3E4{tY?gCyvbTux>K<<`w-ja{ z*6q6ex`+#@kJi{_4@pYAfB}noTFIlGS>nIO5=bJ?zI1ziFw2qtikKADiL|u`*=6H; zMRr}Px!Zy`<>HXS=@QwsYeQaF@pYZ7+mNbvO*f^g_lrKij2+Al77 zfGP&~Hk4Pw<=z$hXo7H7HF@O$P8{2#{Aq+QPFHK=(FIg>$q{9FfX4!YW1jV%tpsJ~ zzC?YD*=)6b0Rrp|qxVX1^*Py?^|vv2c|PCozyvGSUxuM^LBE=R@7FtXGzplyHFcDs zcYC^;8xu6wzR_OHp90MnBmal>)?07A^}PN8js4@u11QB100000NkvXXu0mjf$TjM! literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/stickers_31.png b/app/src/main/res/drawable-nodpi/stickers_31.png new file mode 100644 index 0000000000000000000000000000000000000000..afb85c08789b5cf3c5144619cf68719d6fcb74c6 GIT binary patch literal 1853 zcmV-D2g3M?P)x@bB;M=H=)B008Of=?Mu51Ox=}@$u*9=kf9J^78WInzOH*dytH&fO2+gU~_eFmBg-ofP0?i%!1g#fQPy1f`lxi z0000QbW%=J09gL_`xOr^MdBsTLFJ`}yJ*l?aizR`hmC%n_p|^21~y4VK~#90?OE4) zvPu-C#oiN*KQM%DR3u{F|J}}1$}kLIxjA3fMO5;I?ErZ!|I-V)ikjS

_n!Vtro~NXOIhYM3q<5t}M~JS5?E_#@aGXrDkpy?)fG0V! zWRnkocT&|zs~=NBVj#T?p2W>7Y9TWntE|J+bxIs{<1H&Cld+mxq;9;HYT4z2mpKp# zS8;5{^Vgz?UEd9)Vg(gH5Kg6H%Ogb<>$mVq z6K3*~eIIbBl4N`r6hQN#P43qhG(Yuekc+xx1Dz%3&E()vI~##J4erjkGt+*f)jP}w zz7D@h%yaO~i`R+vOcV$XrI=~iQdn}0%%A*U9!{bC9c%R(V_60tgoSe14%WiCor6Bpn=0Y06~|m3P!u|Q7jcJ_n_7qs|nU3 z7@8-n0j(f~`o@(z_Wj&w3GFSwkg^n$QCss;<>M;lhE-iKxh=RXv8J1vRC#i_f(Bf| z4b___F~y_Xie+ufC0HeaU-cj%!M3EDTrVbIb!kD(l{ zlT16LFsqjY*PJg)GjR@gD8`axczC#hM6|sqhgn;RyO5ZNm^}HWJdfs)?9zl4j~k>f zYmj0Z8>DC74?{2X{ov}-ir3~MOOzQ-bJ#`At~i`7wg`CPSP9z-9$F~9Zf196apKfS za1s3zwiS|IS81;o;&zIY^|IUtLiwRjrEvchTf*||kx(wwcCJdpgRCoKu zf_4ihWMZjG8_3ZIKJe=7%TK{ESKGwG*cB{Ew@gO+9_2uW4BI)_AtXLb1s#mZ&=976 z=$~zwm9xyrzJYSgPO=VR*b&)T^nDjYDlC={@cFh(vlBjhIBEsQTSpRQLRk!aFl#3b zvoeb@MMT$cq*Zqg7|Vw4Y9TqpaN`^k9E$R`Ws9yK(SI{s;?pfV9Lz&@ z`-u~JL<0i$42hqpdvQSg%lFUl>eyoB#~bAEp*M%33^)0LtNT~L6FB8HcwRqz=qlNM zUfQHR|9Eu)aBK&-={X3C=LQWQH+8B(5k}kc&ff4iqOaEcIZe-CM%%e1g|S^f5(aff z-LD!CA@t2Z^>GSJGlD#Vc#IWccmf3$ZK$g2{dTpP&kfzu=kv{KyI&KA2fPsQjMN%N r&t%AnhNIDl+W+sL literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/stickers_32.png b/app/src/main/res/drawable-nodpi/stickers_32.png new file mode 100644 index 0000000000000000000000000000000000000000..6881ccb2590aaafdcd0a5896f4c32c74c5b07c19 GIT binary patch literal 1952 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 r&t%AnhNIDl+W+sL literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/stickers_34.png b/app/src/main/res/drawable-nodpi/stickers_34.png new file mode 100644 index 0000000000000000000000000000000000000000..6881ccb2590aaafdcd0a5896f4c32c74c5b07c19 GIT binary patch literal 1952 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 ZoBxgI+}q~8Q%3**002ovPDHLkV1fn$%NhUx literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/stickers_37.png b/app/src/main/res/drawable-nodpi/stickers_37.png new file mode 100644 index 0000000000000000000000000000000000000000..2f1a5bbd309a0829e2ecff8449cce3d2b2300383 GIT binary patch literal 1622 zcmV-c2C4apP)G1II@$vEGFMe5@$t#Y z$p#ua);=Wr__ zJV&Af9xj=Sfg;^jkOB>MJK?~`fW3WsJ$$^se;lqU%PKhH4p?TqR#8G986P$h4l(;1 zPsVvf7p{3kUprAK7!9QkIm@Wunu9No9Vu0C*=TSfzl6NcR&7~aUJ8;&aM);Zpezmx z8@D83#lmqt2WN?y`b(=7htJ;dND5!eL0HJoM;17}w_xsIK7__1uX@?sz=b3VEjFAF z%zJqtSuRmd*1POV`aMK9#COrBW8L$YBERn3XnM5+^Bx_;;%Z*~$&#%oSS2-Rm zv(}io<~wSKL3*X0e!W~a2Dn^!bV@e_Ftd@~0S1yCzHeILomytVSv;)+U}5XwVbdCi zP}sj?*Cs;y>0|Q%K4`D;RID0BvRjsGmG>#-54wiaVg8tl*n#4;1U#aP;E5vvMX zYF^+y05kI{s?1^YNH-571v6WszD|tx3n57D9I2 zuGQW4tEpD6I!N3}P#PoUOEMD)X5tNJyT$ny?Yk z1Km7ATAowK;gARa0gg}M9n~n(ySMV-$=F^^HpHX9MIuD@y*3L*VK*OAEj0F)Bc~z{ z>A5%H_#x_)e#g#e;n6}hl&YYyk%A@29*RWrrIfISdXZvn^8nD^81gl zkUd|HYKIN)=8ŒxdFE>=qE{Jvha=g3z(*f8gK+g5!AkK1rWS-u$Ze&X)+lixw{ zK)717?&l!8X0Wo+g@kh3+dBO#9nZ(H1Jo^ybBNB1_CoqVkQdHgzo3b zIaV(*6V^u1yh}7y0t1%V)Kqy~tP-V#qph@Z=opHNRRaBnP4`~-4zLd-4vCkS&mp_H zEd>TgNY8Ykz)b99`#scZ$x4wHtb7c0^S}&zY>bSTyuVg4nu-P%?ha#Uc|%y$Prx-@ zTyTs%;QIcXLLU-73Z-AA5U4bO*;$ijzKAtV;U}s(|1`AC+&ztgz&{e9ZK1>Ph-3u|?(ZN>wOu(8~j_b>T_oHuF zFcG?W>G4=olp^pUxK5D=>fm`bS$Sm6ADNsz9%2#W_Y*mK{6Jy1`_lJ|U;Nkj3p~}f U-jLvMz5oCK07*qoM6N<$g6ne~L;wH) literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/stickers_38.png b/app/src/main/res/drawable-nodpi/stickers_38.png new file mode 100644 index 0000000000000000000000000000000000000000..2f1a5bbd309a0829e2ecff8449cce3d2b2300383 GIT binary patch literal 1622 zcmV-c2C4apP)G1II@$vEGFMe5@$t#Y z$p#ua);=Wr__ zJV&Af9xj=Sfg;^jkOB>MJK?~`fW3WsJ$$^se;lqU%PKhH4p?TqR#8G986P$h4l(;1 zPsVvf7p{3kUprAK7!9QkIm@Wunu9No9Vu0C*=TSfzl6NcR&7~aUJ8;&aM);Zpezmx z8@D83#lmqt2WN?y`b(=7htJ;dND5!eL0HJoM;17}w_xsIK7__1uX@?sz=b3VEjFAF z%zJqtSuRmd*1POV`aMK9#COrBW8L$YBERn3XnM5+^Bx_;;%Z*~$&#%oSS2-Rm zv(}io<~wSKL3*X0e!W~a2Dn^!bV@e_Ftd@~0S1yCzHeILomytVSv;)+U}5XwVbdCi zP}sj?*Cs;y>0|Q%K4`D;RID0BvRjsGmG>#-54wiaVg8tl*n#4;1U#aP;E5vvMX zYF^+y05kI{s?1^YNH-571v6WszD|tx3n57D9I2 zuGQW4tEpD6I!N3}P#PoUOEMD)X5tNJyT$ny?Yk z1Km7ATAowK;gARa0gg}M9n~n(ySMV-$=F^^HpHX9MIuD@y*3L*VK*OAEj0F)Bc~z{ z>A5%H_#x_)e#g#e;n6}hl&YYyk%A@29*RWrrIfISdXZvn^8nD^81gl zkUd|HYKIN)=8ŒxdFE>=qE{Jvha=g3z(*f8gK+g5!AkK1rWS-u$Ze&X)+lixw{ zK)717?&l!8X0Wo+g@kh3+dBO#9nZ(H1Jo^ybBNB1_CoqVkQdHgzo3b zIaV(*6V^u1yh}7y0t1%V)Kqy~tP-V#qph@Z=opHNRRaBnP4`~-4zLd-4vCkS&mp_H zEd>TgNY8Ykz)b99`#scZ$x4wHtb7c0^S}&zY>bSTyuVg4nu-P%?ha#Uc|%y$Prx-@ zTyTs%;QIcXLLU-73Z-AA5U4bO*;$ijzKAtV;U}s(|1`AC+&ztgz&{e9ZK1>Ph-3u|?(ZN>wOu(8~j_b>T_oHuF zFcG?W>G4=olp^pUxK5D=>fm`bS$Sm6ADNsz9%2#W_Y*mK{6Jy1`_lJ|U;Nkj3p~}f U-jLvMz5oCK07*qoM6N<$g6ne~L;wH) literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/stickers_39.png b/app/src/main/res/drawable-nodpi/stickers_39.png new file mode 100644 index 0000000000000000000000000000000000000000..2f1a5bbd309a0829e2ecff8449cce3d2b2300383 GIT binary patch literal 1622 zcmV-c2C4apP)G1II@$vEGFMe5@$t#Y z$p#ua);=Wr__ zJV&Af9xj=Sfg;^jkOB>MJK?~`fW3WsJ$$^se;lqU%PKhH4p?TqR#8G986P$h4l(;1 zPsVvf7p{3kUprAK7!9QkIm@Wunu9No9Vu0C*=TSfzl6NcR&7~aUJ8;&aM);Zpezmx z8@D83#lmqt2WN?y`b(=7htJ;dND5!eL0HJoM;17}w_xsIK7__1uX@?sz=b3VEjFAF z%zJqtSuRmd*1POV`aMK9#COrBW8L$YBERn3XnM5+^Bx_;;%Z*~$&#%oSS2-Rm zv(}io<~wSKL3*X0e!W~a2Dn^!bV@e_Ftd@~0S1yCzHeILomytVSv;)+U}5XwVbdCi zP}sj?*Cs;y>0|Q%K4`D;RID0BvRjsGmG>#-54wiaVg8tl*n#4;1U#aP;E5vvMX zYF^+y05kI{s?1^YNH-571v6WszD|tx3n57D9I2 zuGQW4tEpD6I!N3}P#PoUOEMD)X5tNJyT$ny?Yk z1Km7ATAowK;gARa0gg}M9n~n(ySMV-$=F^^HpHX9MIuD@y*3L*VK*OAEj0F)Bc~z{ z>A5%H_#x_)e#g#e;n6}hl&YYyk%A@29*RWrrIfISdXZvn^8nD^81gl zkUd|HYKIN)=8ŒxdFE>=qE{Jvha=g3z(*f8gK+g5!AkK1rWS-u$Ze&X)+lixw{ zK)717?&l!8X0Wo+g@kh3+dBO#9nZ(H1Jo^ybBNB1_CoqVkQdHgzo3b zIaV(*6V^u1yh}7y0t1%V)Kqy~tP-V#qph@Z=opHNRRaBnP4`~-4zLd-4vCkS&mp_H zEd>TgNY8Ykz)b99`#scZ$x4wHtb7c0^S}&zY>bSTyuVg4nu-P%?ha#Uc|%y$Prx-@ zTyTs%;QIcXLLU-73Z-AA5U4bO*;$ijzKAtV;U}s(|1`AC+&ztgz&{e9ZK1>Ph-3u|?(ZN>wOu(8~j_b>T_oHuF zFcG?W>G4=olp^pUxK5D=>fm`bS$Sm6ADNsz9%2#W_Y*mK{6Jy1`_lJ|U;Nkj3p~}f U-jLvMz5oCK07*qoM6N<$g6ne~L;wH) literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/stickers_4.png b/app/src/main/res/drawable-nodpi/stickers_4.png new file mode 100644 index 0000000000000000000000000000000000000000..2f1a5bbd309a0829e2ecff8449cce3d2b2300383 GIT binary patch literal 1622 zcmV-c2C4apP)G1II@$vEGFMe5@$t#Y z$p#ua);=Wr__ zJV&Af9xj=Sfg;^jkOB>MJK?~`fW3WsJ$$^se;lqU%PKhH4p?TqR#8G986P$h4l(;1 zPsVvf7p{3kUprAK7!9QkIm@Wunu9No9Vu0C*=TSfzl6NcR&7~aUJ8;&aM);Zpezmx z8@D83#lmqt2WN?y`b(=7htJ;dND5!eL0HJoM;17}w_xsIK7__1uX@?sz=b3VEjFAF z%zJqtSuRmd*1POV`aMK9#COrBW8L$YBERn3XnM5+^Bx_;;%Z*~$&#%oSS2-Rm zv(}io<~wSKL3*X0e!W~a2Dn^!bV@e_Ftd@~0S1yCzHeILomytVSv;)+U}5XwVbdCi zP}sj?*Cs;y>0|Q%K4`D;RID0BvRjsGmG>#-54wiaVg8tl*n#4;1U#aP;E5vvMX zYF^+y05kI{s?1^YNH-571v6WszD|tx3n57D9I2 zuGQW4tEpD6I!N3}P#PoUOEMD)X5tNJyT$ny?Yk z1Km7ATAowK;gARa0gg}M9n~n(ySMV-$=F^^HpHX9MIuD@y*3L*VK*OAEj0F)Bc~z{ z>A5%H_#x_)e#g#e;n6}hl&YYyk%A@29*RWrrIfISdXZvn^8nD^81gl zkUd|HYKIN)=8ŒxdFE>=qE{Jvha=g3z(*f8gK+g5!AkK1rWS-u$Ze&X)+lixw{ zK)717?&l!8X0Wo+g@kh3+dBO#9nZ(H1Jo^ybBNB1_CoqVkQdHgzo3b zIaV(*6V^u1yh}7y0t1%V)Kqy~tP-V#qph@Z=opHNRRaBnP4`~-4zLd-4vCkS&mp_H zEd>TgNY8Ykz)b99`#scZ$x4wHtb7c0^S}&zY>bSTyuVg4nu-P%?ha#Uc|%y$Prx-@ zTyTs%;QIcXLLU-73Z-AA5U4bO*;$ijzKAtV;U}s(|1`AC+&ztgz&{e9ZK1>Ph-3u|?(ZN>wOu(8~j_b>T_oHuF zFcG?W>G4=olp^pUxK5D=>fm`bS$Sm6ADNsz9%2#W_Y*mK{6Jy1`_lJ|U;Nkj3p~}f U-jLvMz5oCK07*qoM6N<$g6ne~L;wH) literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/stickers_40.png b/app/src/main/res/drawable-nodpi/stickers_40.png new file mode 100644 index 0000000000000000000000000000000000000000..afdb9d523df2ff65744733b52de8914a249e7e9c GIT binary patch literal 1466 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ŒxdFE>=qE{Jvha=g3z(*f8gK+g5!AkK1rWS-u$Ze&X)+lixw{ zK)717?&l!8X0Wo+g@kh3+dBO#9nZ(H1Jo^ybBNB1_CoqVkQdHgzo3b zIaV(*6V^u1yh}7y0t1%V)Kqy~tP-V#qph@Z=opHNRRaBnP4`~-4zLd-4vCkS&mp_H zEd>TgNY8Ykz)b99`#scZ$x4wHtb7c0^S}&zY>bSTyuVg4nu-P%?ha#Uc|%y$Prx-@ zTyTs%;QIcXLLU-73Z-AA5U4bO*;$ijzKAtV;U}s(|1`AC+&ztgz&{e9ZK1>Ph-3u|?(ZN>wOu(8~j_b>T_oHuF zFcG?W>G4=olp^pUxK5D=>fm`bS$Sm6ADNsz9%2#W_Y*mK{6Jy1`_lJ|U;Nkj3p~}f U-jLvMz5oCK07*qoM6N<$g6ne~L;wH) literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/stickers_46.png b/app/src/main/res/drawable-nodpi/stickers_46.png new file mode 100644 index 0000000000000000000000000000000000000000..3cd97d6c1d8845a497bbddb84dd9072768217b56 GIT binary patch literal 1385 zcmV-v1(y1WP)+$jN($dnSqoaI$eDd=0l+XV_Id0kR|4Br5a&ns9-Q!YCeqCIOLp^bZg{Qv8*{!zF z$=mSN)ZK!w;gHDqmYTS1g|>>j>wBNjG_@*E0000NbW%=J09Z)p@c9xj*&NC+c)1CT zvusaq%AR{@j>8QA00ezWL_t(|ob6d@lcF#bl>5*TM%@(wxg1dR|Np;zBmsdW1O#_$ ztL!gRB{a=D(l23Fs}DZ-;J<^lb6i`|G{ttEo%I$4M>%$&I7{p7>>~s2Zb1pdJ#ye0 zOKCXTkqgaPM8bMzD!YYolq69c-m>OLdx6pzDtTC*2B#K+^h_?O#!?!2c%l&I%cvN* z9NH~GZy!F2`}KM+9wCYJE-n7zhd_?T~Ci(sn&pkA#7sP@*nN-Hp=7Qtau_zMc?O8>73^ zW&rHO8kgvlG*&AXX$(3!MHi6@v0QA2H6CJ-NBe$anHsOjaLuy-n|kHxkFxYepe*s- zXaEE_XQs~XU96E*c6jw(!nLx@1greoveqD4ALn4ms>CQNJ4G2&Wo{r(4R-CA`Zr8g609m;0S%obQx@M6uMxCX?`eo<9H6Y4f<@re+U z5p$4qR!PE9i%*0HF@IC)=SwAiIIFcV?xZLxC4wvkvN^jXP!y;vvKC4H7a|Jj;04pA zNYdXZy!8GS{-VSlcyu((g7GB;Up(Jar)kpKJK5DF9lIZEE)O+}7k)Z_*Ec2$; za^shgtrfkIm?+TONJx^z(CD5J6Z*7!iZY)dix`)a_9^n49Y||)7oXTjYmt<5LrgYz z+HYn>Ix5E;zC8rgBZ6lnjEnG{qTbzC8q$^{vNhBr8`Xg;{qg;uN}~FkCjHHPYr|b> z=qoNPo6Un7Tp)n>6#9O6iXo&6wVAJBeh+J`dWWEn$WOJiPJF*AaQMR$QK5H58g-A+ z=_2s`XCE*{AP#vuq+mEU`{UL*qD7)J^H$AthK^cR^M&pl20@s2R8sgQt3@)no^~|4 z43~R6HJVfJ8FgqtzbX8lWn_eRBkeI1PB7N;0#9o!d4{t zcS}XxNRp7TW{bpJivp3AW!4(Vo<=Zu>Ef8JSyA-OSM^_quMM)NF$`|ugIhf|Zo#vR zh_aO>0N!)E(e=|Af}wR_ZEdGB2FI`R&Du&$XS6pG{VA(#*!$<{ z40y9ceNT7F9=Q9p=?rA$^pr)$F6&D%05UygiLo!osI0s{Wr?vb$UuqiPTB2hwLGIg rW#7Z-P1!dwR-GyPHpT}Z{4e+eG1II@$vEGFMe5@$t#Y z$p#ua);=Wr__ zJV&Af9xj=Sfg;^jkOB>MJK?~`fW3WsJ$$^se;lqU%PKhH4p?TqR#8G986P$h4l(;1 zPsVvf7p{3kUprAK7!9QkIm@Wunu9No9Vu0C*=TSfzl6NcR&7~aUJ8;&aM);Zpezmx z8@D83#lmqt2WN?y`b(=7htJ;dND5!eL0HJoM;17}w_xsIK7__1uX@?sz=b3VEjFAF z%zJqtSuRmd*1POV`aMK9#COrBW8L$YBERn3XnM5+^Bx_;;%Z*~$&#%oSS2-Rm zv(}io<~wSKL3*X0e!W~a2Dn^!bV@e_Ftd@~0S1yCzHeILomytVSv;)+U}5XwVbdCi zP}sj?*Cs;y>0|Q%K4`D;RID0BvRjsGmG>#-54wiaVg8tl*n#4;1U#aP;E5vvMX zYF^+y05kI{s?1^YNH-571v6WszD|tx3n57D9I2 zuGQW4tEpD6I!N3}P#PoUOEMD)X5tNJyT$ny?Yk z1Km7ATAowK;gARa0gg}M9n~n(ySMV-$=F^^HpHX9MIuD@y*3L*VK*OAEj0F)Bc~z{ z>A5%H_#x_)e#g#e;n6}hl&YYyk%A@29*RWrrIfISdXZvn^8nD^81gl zkUd|HYKIN)=8ŒxdFE>=qE{Jvha=g3z(*f8gK+g5!AkK1rWS-u$Ze&X)+lixw{ zK)717?&l!8X0Wo+g@kh3+dBO#9nZ(H1Jo^ybBNB1_CoqVkQdHgzo3b zIaV(*6V^u1yh}7y0t1%V)Kqy~tP-V#qph@Z=opHNRRaBnP4`~-4zLd-4vCkS&mp_H zEd>TgNY8Ykz)b99`#scZ$x4wHtb7c0^S}&zY>bSTyuVg4nu-P%?ha#Uc|%y$Prx-@ zTyTs%;QIcXLLU-73Z-AA5U4bO*;$ijzKAtV;U}s(|1`AC+&ztgz&{e9ZK1>Ph-3u|?(ZN>wOu(8~j_b>T_oHuF zFcG?W>G4=olp^pUxK5D=>fm`bS$Sm6ADNsz9%2#W_Y*mK{6Jy1`_lJ|U;Nkj3p~}f U-jLvMz5oCK07*qoM6N<$g6ne~L;wH) literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/stickers_5.png b/app/src/main/res/drawable-nodpi/stickers_5.png new file mode 100644 index 0000000000000000000000000000000000000000..99cdb36aa940cc25b2f3ff9c65b0cc0daad607da GIT binary patch literal 1570 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

fe)fgGy_E)0pzpp`Gmyhpk$M&>mH@J> zj22~@vt7$v@+mk2=u zmj64rs_tS}2tscwQm8ThRb}qGB9b1RvJF0!?p2BzU>iCj;@YY0#(A|0y#uRKgHHN~ zvZ}9QApj>x)1V;m1qwA8K-W??5)vm(Z724NLcPT*)fGV1cab9sU_u=Hi?-2z)3CeK@#T#@ksB~EM)+$AV35FM+C^r)TWyc zcnpq@fh{C~2>_8>5O@Hfb~ubUz{rdQ0W8ZrLJ;Hx;U55y+m}TSU@TlQfa4kfqEZd> zXPceUp)h9v8%N9l<^^03IAsDaoPVhtp&bDPp)p#x$L?a=YYtGU)M1MbZ%=@n2pfweK6XmQCIzedA(ST0Iok*S`M)MAkapm$r{Rg$Ll8mJ92Ib z95e?Vp2>edkL1eqr&1s+Y~HJwW7G5ZsKJ~6;|<~psf?~a^+0i>gD0QrKLR@7J_CswUKq5231 zp*T&#+V(Cs5snkM3q#XI#w6TSs@ub1JX%=C27rVqD^_S>u{}$zf*{$80>GvcHl)6N zu`a27qdql*2TQcjW+x-7lw%IiNj)71%BSZij-6VU%hA5MelvNrJag8}1R%-B$bc;9 zI3$sN+|F*u^&>GH)MM)H)2_Wt`g4K41;>LRn z0KMD7j3vO%E$IgnQ09RVF4v!H;I>`c_zMhxj=LfSHDFML-rqh0D;kIwaZUKVe4nY@y zAQA=8jI~o!&jGCV8;l5IKo{E<8k?kPG(&)O`=vp&HUt4+P4M9aO-~5n(v4>K4QV4tnjrB#74Kg|(9g&SdfUS*@Zp*;}#A0*L7T#CncK;8UwA`8%iOKfab zb!M6-0oC9!Fc@vBhdu6Ma~sURPp9Qh=Y^e*&1`h933JkXs*|~TKI+A9qpv{!>3gQ* z&*V=hIzh!|NcdSnOZEJ+4cZJa-|nfu2emy_I$>R8NgVA z0sexV!4KOauK0si(tIjqP<)>GW-ePPeIIb58`oD0fGin}g+yga_^$A1P8ct6qc1Z}ZH0W#@WVNCaZe)O( z$HX7<;(gH+BMN@#H-^^IVBG~DpR3`9CA{vjo&XB$s60Y|KRj>B`>S%eowIP`9y?V% zCLRSG;LnK&NdIY$|FI&F92gx=$}E0tE?1O zq3Q>Oe9vQVf&|$;ypZc(VT(1N%A~&*ZZZLsJ?3Q|>jOad@MhEHayok-j}2q~J;yrS za6mxyz2`AefP6lo+gH?M&c07mQq^=o$Tg1vfYhrWDNP5|WX{gindsOr*A586Dm)gh z#DrJ{Dcs~6kBJQ>6#&dOHXUG(yE)Sp!@-09^vA0l5Sp&b`pU@X zxv{`{u*n3h{iGh)n1a74?IF5BQ8nB^nF^g?;W6={TvfiD|3VNTR zq-F#hmEi)<#ld5+yUWE8TI$_N`VR%=NRVm=&nO>J*$}$PJ3%&(&|@Rd(qHaOvN|_n zgL^iG8l}=qmGPPH05x|eS`ls#aODi4f%uuPK{a$HQ0Fv-4eBIKo#6A{IB4!nH1xHs zvi-pmJHh(^x1EVDXT#`IJHbYRo6aPwa}t05MtNo@co(3l&QWv70iM+f-t~drROi?s z_1sSI4gh<)s8;8iGo)7|c9$UUOv-icQSbg-fMLG3tkk*24C&ViJ|xgI x37RtG7YUj(ioXr{{R-cD!llyi`4)C002ovPDHLkV1nz2fph=> literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_11.png b/app/src/main/res/drawable-nodpi/weather_color_11.png new file mode 100644 index 0000000000000000000000000000000000000000..5f1b6b6c0ca4dcf4a97687c08dc787d91eaac3ef GIT binary patch literal 3508 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

C0002AP)t-sM{rC4 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

C0001)P)t-sM{rC4 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_14.png b/app/src/main/res/drawable-nodpi/weather_color_14.png new file mode 100644 index 0000000000000000000000000000000000000000..58936279df8b6201b9c458ca37ff45ddabf63038 GIT binary patch literal 3567 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_15.png b/app/src/main/res/drawable-nodpi/weather_color_15.png new file mode 100644 index 0000000000000000000000000000000000000000..58936279df8b6201b9c458ca37ff45ddabf63038 GIT binary patch literal 3567 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_16.png b/app/src/main/res/drawable-nodpi/weather_color_16.png new file mode 100644 index 0000000000000000000000000000000000000000..58936279df8b6201b9c458ca37ff45ddabf63038 GIT binary patch literal 3567 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_17.png b/app/src/main/res/drawable-nodpi/weather_color_17.png new file mode 100644 index 0000000000000000000000000000000000000000..c9a81c11aa2e71a4e494a0b50d1d49715039ff50 GIT binary patch literal 3221 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 Hu0mjfI?D$h literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_18.png b/app/src/main/res/drawable-nodpi/weather_color_18.png new file mode 100644 index 0000000000000000000000000000000000000000..e1d2691bbff8851842c456aaa86256376229af50 GIT binary patch literal 3754 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 UUf9%D`v3p{07*qoM6N<$g8O6v)Bpeg literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_19.png b/app/src/main/res/drawable-nodpi/weather_color_19.png new file mode 100644 index 0000000000000000000000000000000000000000..052cfc68dd39ea3d58456c7fcc6172b4e5723a0f GIT binary patch literal 636 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H3?#oinD`S&83*`;xVjhku%d#wZ8?{A%>#;U zm|0tw8E}5vjB9%rJUO*y&E)c}a)iI!U?vfzCUc0QKrI{giqwu2{8Bt5C|AqYBAiT4n#Q8cS z&>R$S;J;!>@wN%N?^k!OJ=2=>_xJ_zpSM2RmTwaK#QWo8*!eprqE1|2e(;cqU$Ua~ z!7YvVm@11Er5l(3{-I%zmm~k>dL{EQCqu?^{f{Si?)s^}L6oghaK~x)iKqG8Kf7k= zOxdnDQ8}F1x89+{c!i2sm*AgYEghSt_I!Q*NBN?1sQR}JSw+9xlBb=R5O79mc}f4G zzBgXCwB2qxzj)CzDNc0pyNNQ57j>+UKB?|GZWW~#VAdUS#x2BW*YOjzDy3We7UWE8 zN^|ZC8_(LBCv-7o{X7ycYjztg_~D z^LEis867TP^g1*CZ&MOH>7=sg-Fu;nZy4NPb9=IK3jSO($)vL*$9=P2;W3@`#XoW{ z8MeD${_=85_LSa9hR0npo=8})l_^eQ>dG$&6()& zJ!Zw8);XSWJg#1Xk>3Q2{0~f7ZhqDAOhw_Ir3>@Ux-IDUf7(2QHjT#65 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_2.png b/app/src/main/res/drawable-nodpi/weather_color_2.png new file mode 100644 index 0000000000000000000000000000000000000000..1664c72cacb62d206e18820c37cb88106479fa27 GIT binary patch literal 2780 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 ZtA;6NLywI3wSr?H0Z&&ymvv4FO#n|d8MXib literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_21.png b/app/src/main/res/drawable-nodpi/weather_color_21.png new file mode 100644 index 0000000000000000000000000000000000000000..5830cb4d602b371eb5cf51f661f5b8eba793610c GIT binary patch literal 3994 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_23.png b/app/src/main/res/drawable-nodpi/weather_color_23.png new file mode 100644 index 0000000000000000000000000000000000000000..d7a10eed9dace64d31f0bf3f9210efc1645704cf GIT binary patch literal 1177 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_26.png b/app/src/main/res/drawable-nodpi/weather_color_26.png new file mode 100644 index 0000000000000000000000000000000000000000..5c6057de8d555e3660762f4aa8ba3ff1f40f0432 GIT binary patch literal 2844 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 Y2N2B*#I0#6T>t<807*qoM6N<$g6fxj^8f$< literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_32.png b/app/src/main/res/drawable-nodpi/weather_color_32.png new file mode 100644 index 0000000000000000000000000000000000000000..da6d3d53b998183a66b5c591490487faf5a184f5 GIT binary patch literal 3290 zcmV<03?=i4P)C0000{P)t-sM{rC4 z0003200jd92L%BP2m%xi1P%!TT0RhXR2kZtD#nW^m1Y~Td?o9nD)z86|E?qW%64dO?5-NRf`?@l5|*rcI{#rorLC z4kDM!|IbG!%jn<#P<~Ou=l=?Vl004W?7u>gWqDp)<&@!25TC zXz7aLdlaajJjgmOTeN&7E}V9Vv-h9`8^#d z0F_jly> zyC&NL2t$SPtLws#n98~r?7ssm%(BmO2D-cf01!YHd}9)eeJdQI)>|!1GRC8UXvs#c$`sAgt=|I{*+s-UpBw=hboF z0Jz;B&$Mt4gHpte#cBb8;avcfSM{GT5EB5r{twc94BPGy$nISRl+5WmOkJn`mjWZd z0&v_l`%cgb|F9E6cs}ljMX=ZJ1AwwZ(h+mt1C+L#mfQLID3pDuPXU6*&DcTz8vuE! z>N*wv@gD%P82UZwvE!=&Y*7Oks&^A~M#)yN=)Zt`|N40M6ol0yfe^^{Hw3uk6PF)I zyxkHs7z7H!+ctPXzptp`)bVfS^m~&1lR}_!Q~etNMOo?U66N2>{6qP-*a;v|P`WuA zd;G3eY5`Ldl&Tco z0LnBKNd#I44duV*BP#z$o+yIH^I#>r0y4a)PDls!AbbTd`JTjGfA|m>0!mCwzUpzx zR{%%{txz5ilWzg+{5T9z1Uf5d2D;)!VAcRsr?EK?4DY`mB-99}uSodW3UBk(vjeS!ZM6aU zhMjX;M^iK1U3GCb4X=+^3Ruo3;2@*`bg-ut002}eDqJD5KSK+!?yrq6hJkTl?a=7p zzC&%;qzr&&zpNBvKCn3e#~u(Myw2Tl;8CEoK%oFUFs=X!K1F9KFnQ3{AVvX9|62T_ zCsQ5=aUI0p2e5)2$Z12Rg1Q$i36 zEdYYh*9k3v5}G;1fNul({t*g(V1N)5DNAf;k!HX%LMcrOlVKo;GGNuGba1ZC%}{Jk z+khViq&7q$gFx`34T!NW&y^{?#&nBVmLC~dm=63vu%A^BFaVuV6U_?r@`OJp76*(Q zxB}k~14|?htdTe%`xevk34nR|Iu~SKHLwIa5Wz$VAsop_DCeIap$d_hHV;0BC>SViEMr928aFPvM)enkI8PX@hs zHR0J0cvWgJEH(%(Apy(@#F)4~0;qb)Lpqk_Tf8E06p&mIb_PeRAW}BiR(4(%mSkCH z+7eB{7AXp?C%VGi6@yFx(cVn;1#_K{k4d0W&uh{%0?!Y;&gj&d?1p~_z@Jg5KrDuM zQEIYK(~e3JE)+#5U}ms$@vcRW6Y#)6RpMpeCSu6MfI r46eu<-z!55$^dB;Zb* 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_34.png b/app/src/main/res/drawable-nodpi/weather_color_34.png new file mode 100644 index 0000000000000000000000000000000000000000..36974c906964a4816f98d3680d582241bcd75a69 GIT binary patch literal 3921 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 f6efR9z6C0002hP)t-sM{rC4 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_37.png b/app/src/main/res/drawable-nodpi/weather_color_37.png new file mode 100644 index 0000000000000000000000000000000000000000..ee51d9305b18c22a684659cb9bd8e2eb33e1c174 GIT binary patch literal 5455 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 xL2hh@K!4J!;fNl;}k7 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 xL2hh@K!4J!;fNl;}k7 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 xL2C0003gP)t-sM{rC4 z000000000000000000FB2Lb~F00000000010s{jA0RaI50s;d90R{&M0s;aA1qA~G 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 M07*qoM6N<$f>t*3dH?_b literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_42.png b/app/src/main/res/drawable-nodpi/weather_color_42.png new file mode 100644 index 0000000000000000000000000000000000000000..58936279df8b6201b9c458ca37ff45ddabf63038 GIT binary patch literal 3567 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_43.png b/app/src/main/res/drawable-nodpi/weather_color_43.png new file mode 100644 index 0000000000000000000000000000000000000000..393df8b380c2afc97dd02b9cab7d47fadcc4c1f1 GIT binary patch literal 3798 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 M07*qoM6N<$f>t*3dH?_b literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_44.png b/app/src/main/res/drawable-nodpi/weather_color_44.png new file mode 100644 index 0000000000000000000000000000000000000000..a6ad077ff7976586bdf992464997ddc976aae317 GIT binary patch literal 2485 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_45.png b/app/src/main/res/drawable-nodpi/weather_color_45.png new file mode 100644 index 0000000000000000000000000000000000000000..5a6297f3da2e6bcb3dd88ea191ee67d26044d0f9 GIT binary patch literal 3097 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 BP#*vQ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_47.png b/app/src/main/res/drawable-nodpi/weather_color_47.png new file mode 100644 index 0000000000000000000000000000000000000000..e8768872cbffbb3fe10aee081eba515bd2db932f GIT binary patch literal 3850 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 M07*qoM6N<$f++U+$^ZZW literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_5.png b/app/src/main/res/drawable-nodpi/weather_color_5.png new file mode 100644 index 0000000000000000000000000000000000000000..e1d2691bbff8851842c456aaa86256376229af50 GIT binary patch literal 3754 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 UUf9%D`v3p{07*qoM6N<$g8O6v)Bpeg literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_6.png b/app/src/main/res/drawable-nodpi/weather_color_6.png new file mode 100644 index 0000000000000000000000000000000000000000..e1d2691bbff8851842c456aaa86256376229af50 GIT binary patch literal 3754 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 UUf9%D`v3p{07*qoM6N<$g8O6v)Bpeg literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_7.png b/app/src/main/res/drawable-nodpi/weather_color_7.png new file mode 100644 index 0000000000000000000000000000000000000000..58936279df8b6201b9c458ca37ff45ddabf63038 GIT binary patch literal 3567 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_8.png b/app/src/main/res/drawable-nodpi/weather_color_8.png new file mode 100644 index 0000000000000000000000000000000000000000..05836a51d9856fdd7e5d0929cc6dcc807eb69355 GIT binary patch literal 2735 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 pC00024P)t-sM{rC4 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 M07*qoM6N<$f;w$9yZ`_I literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_na.png b/app/src/main/res/drawable-nodpi/weather_color_na.png new file mode 100644 index 0000000000000000000000000000000000000000..5b8c4ce376b275b1af13aeb7efd02e2640c17955 GIT binary patch literal 1473 zcmV;y1wQ(TP)C0000^P)t-sM{rC4 z00000009920|EdB1OW{Q0SN^F4G011mlyxPJ>!Q2h*b(@KL>A15!RP1^QkPWa23CI z4F9z?|F10nt0VuS6aStJ|E3%Nng-oy{B{5U026dlPE!B_3KJeHJWy!s{@|#LX1wK* z!tY6cb^rhc4@pEpRCt{2TG_IrAP_ZzpmASt`Trjsx*HT@GIJk*%&qc>#EMlphiTS<~#{HQ948TP< zy_ur&}RTp zP*L;MUQdm;PGARta(-Wb*1*pJT7t~gA&}lT-Ui}Xfc^cc27U(M+6H;2-U>*(3LppL zrN$cgF)#uJxq5|f0c~+cS7&5n93!IEnpRuz_ACJ0e1a5)AKzxfqz(nB!Mgw<4+(nk zi_8(g8_l?CW-3q>(%($hv0{3&ZX zX#WY*;8y@B;28{gDDb35AVkR;yjRMaUKt0hQ!P9$$ka|4@wPC=Omc!X#ijY!1+)Nv zTat$f%ddd$f8_@ccwCH zL2S!jK@AUUaDEa{uf(@3`hzOGEPq%7kOzoyUYu*5s~q==!Fzxxbh9mHTdzeejRS%U z*p>_Cb-+*|Fuw^E=L`S3Re6N=n@H^{U@q$@?KfM*`c=R@V5pV_=XV5b%eLVSSg`$e zrAy?3*3A~5*`neE|8~$g@`9$&zK0gL)cX~i2-AR z%p^%ETZ+qIygv|N#)ONe!tPf|Ojx9m1@NY{n~|*-EWUt#F}Gu(NbiwMgbZ?Q1dAt0}8gKXAx&YZ2*WvR>;X>mPRYs@Tf2e z4?M&yHxvK~bjVV#5lw&wkebi(PZJ7QmLbkuNP(FVfJc{BK^bQ~q%%Ae04GNPfZ4`Vc9`FfeCS-~%%gtz-a5 z4@c{SLY7tm&4XY75or`)hDhWaDlo~yWt)ds+futJu1#hDGbNfok1asfx+B7xh-r!{ z;=cTd3#yW~M8#0Y+?Ts?L0wl>RevQeaE?-?lbuVVz--Hp&_u+@&Yc99qg46>hjWga zM8ab~OC@m5qVn6n7sF91$3xuk$-xg2QhSCQ{qOaOdz}0D2K}z#d+fW0C0000&P)t-sM{rC` zLrga_I9zgUPEJbK&bn`?kYA8|SAcJLaB4hOOOJ_pzqXp{-?(e5lB}YQ&EVK_u9frW zz54RkcekAX`{Tq8diwwX01kC zRV`%s-F#wDIYlLq_EZR<(e?v^N$PLZ7W*fHPS+H|>AUSp7lKrK{9_1dT7tRn^N$GS z@iGX#+rBRYTJmwz=oV?WkU^OVAA-<-neT#kS-N~yXQOn zg-Yfh2zHFhI-&obW*}4g2LgR%0rnIjPwXFxu&F12a;degC+O4xY;1=F0c?vPPanXh z2uK3h(h&?r0P&K5^iOdYuuOowGXNrg^l+Gy0U!q>stRChKvn_lP+$lFQ2jvD0k|7t zEJ}VMev1In2#AKk0RYhmBw+xkk-(4wAX;Hg3V^sGQg#C8E(bt#gYsekaWz0l0Ilc4 z^7y?40{f6 zi5P$Z7=Qs7fB_hQ0T_S*7=Qs7fB_hQ0T_S*7=Qs7fEWPeAaN0Zee~}ld;_Zho(8}V zuR}h+|>X0QS=!Fhu0*j6%?KE9W<5)MgZ#0`}FX9mbbt zRYs!Le~)0SQP&VH>8QpNTy6zZiF{48v7TWBVr^>YL(K?sml-OT>oP_FKJD?%48I!#dc z?q;fh6kuNKMOoUFeyao)h}ZaiCuqq1``HAuCjX|;G0s?ODFCXa5PZ|ZDN8*?oYP^8 zKPd!z31=-e?Prx#ZDe?Ux~8`0*^eOrNNd}=u3KA4>}-(K2pcD(Bu1Dsh_mfq6sae| dY-dRQgTG|YE~KUPu&w|A002ovPDHLkV1ipSkw*Xk literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_1.png b/app/src/main/res/drawable-nodpi/weather_faded_1.png new file mode 100644 index 0000000000000000000000000000000000000000..164118e50215cfef53da8af185b428e717892198 GIT binary patch literal 937 zcmV;a16KTrP)C0000&P)t-sM{rC` zLrpg_H}vVfWQ3&w9fQDh{lZGKaP&Fq&fO{3a`&R-CU?>Qs@9zBvMFz4M zv|Vu@6=R@4K-!NnF0|YtzV+OnXK;`g<44Qp&LFxnjzW}({ zUF(6U^7zLps2%>M$y0!lU`Hd`jQ%hcHaDWq=?@XuZx&!r5maXXt#dKs445L=G!ty@ z0Ae3*h=3q~Z4s#a0c?uEPz10g0+Ij#ph5b}h6Vt=76>AL^m3@E0I+S?khEZrt^rvE zu=7CC0Su^lVCevQOcO}D7Qi)us3-vtO`r)YfLaMi0fuJv4Z2jc0P9_730na5?wA&! z|1tn#9+EBt5W)IF(8O<{G3sZe_dhX0tV9a0vQD!2b5?sGUWUM`yxnfs_@nXXtbb77 z1aKYY@FyX@DUe7N@&Rzu8%`?nX%6reF#rQF00S@p126ysFaQHE00S@p126ysFaQHE z00S@pF@VrX@=E~SE!(@u0H)lD^0JO}CBGUg9YWsP7mfpN}W6GZ1H|Iivb0Mk9k z8A9o_FmP$vwe|C1UlZQl1!l9PeSBd8!EZm4qYEGs=yKuqS5A=L-X_Hg0kMC)mj8hu z)ZkB8fJ88F`K5oUQQHBI6Sy*j7sKzw8UEvr3Rf(<3x zBj?@eI_?nBu4_S^yStw?{1n2UO)96_Ck8WfKiz(002%oub29w`7iJslRgQ>Q00000 LNkvXXu0mjf3Ur}z literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_10.png b/app/src/main/res/drawable-nodpi/weather_faded_10.png new file mode 100644 index 0000000000000000000000000000000000000000..4b2d447fe325b1bfeb5c05ce2864580e64f9e515 GIT binary patch literal 2237 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_13.png b/app/src/main/res/drawable-nodpi/weather_faded_13.png new file mode 100644 index 0000000000000000000000000000000000000000..4c2ef119b1cf5862af2d7944e6d663e54e4a194e GIT binary patch literal 1634 zcmV-o2A%ndP)C0001cP)t-sM{rD@ zXOcoZMMOSGhl+?pJw<0|XpLNhGA%OcJkJ8Y&S6YSu000}ycBvqU)~nF57845BwR0TDgb?~~&9Mrx zwSX%37*ffAta*jQNa5Zg%vy@q_Ou|BVa62D`n7$RLO73q7--nn4C@&}@K(02e_03P zA)rX#zN*8@uzxVfzeF%f;0*RROMpiBnrV+xtjpnef4Uw_ z-zhl31OU1wPBKTKzyF@%KdB9nzu#T2NqL8x0uYSbq+q9XKb?|C7EjZ-2%P=tdPTRd;V*T7fm?ASqO~jW z#R`}M(ApN^{d@qVEP+Fhwbs#Ed76d93YblxJ=UrYvm)RO1&7icFbF_1U=J6-!>pAI zU~U>#3}Pk%z_$dDm|KXzNchzej|CuEt>LWpnw=VWdy)ZkZbn^ejmUsqAOGxRf1SHw zcDqzMUPjc5tpW(3u_4KBX;CU21Hj&&?uKmm@W^2?YhV@F*ZcmRM#7m{fJOava( zgc?mS6`^sRq@E83H(g zEPm2ip|_*$wkjbAAk2f(FE3aE2%z*o>Jt2il(%C!g3AARWC)-HD*vM{LH0+rC6ps* z{5b*{pz+rw=m4+}b|Di1u^WGeKu)0ZF9|f>So8@va1Hv2klB~^rF#Mqfbl=(=`9-o z0M{T%woC*PftUdAe;!f-8UYN@7lGVkiGT+X{O`j6R1x$=00=mM5&r!&RCWQoAZHQ* z12D>;xgQGWLmWY-%zyzH<4^c^jo$XBHjpy7cK~FBzjSh-DgwJ2@C1(zz#io<9^Uwh z2q*#E2bX8w0F3dMk4{u=kT3*X26^88QVjP8-!;3}lcE#j49Y;#fboN8M_5f@w;_-h z1cUtHqoZ)AXass_)vO5W3Z0r}I3dCx=*^S8JUEE@f7bvxI3 z*ym&0e?^*hzuxS}S=0lxw^uJtO{!0f7=*vH*_)sCzq}vy<@xMj=xpdNZGO@x5W&x1 zFlaxtY5;n>N(=#g{rmk~edzePy-yS$$AA)zr4T6 ze+l52etL9Et@bwrAS>@{d^l{n0svPU0B~GcpO*$9XK0E8aHT&Tz;i?)=L=klH!hN| zoeqGJAkX=N+oH%_PrBGLFZ88q%VJ|7@d^HvpqQV4@dvhK^Jl>NA3qv`O}`Y*odN5g zx}WtQ#fSfqE|UT0|LHXV`G><2%$Nc1@8B*02Q89;$N3{aBR<|mNH&jZX&faLKD0C--49-te)0KjKZq^2WiZ-M>zB>)R`1jWWR?2l1Rz>Hr8 z=rW-G#&5)4MZk_90BHJP4*!OL9X|ljWH5_=O~8&H1gQGJo$0xg^0^k)9|WlOkaIm` zfVlB10LrVZxrF(5b})do+;cw)faUa=R;K{z?*VLT{ThJdH(KNwCt0|C*M@!xfD$ya g-g@h;xBg-M4>b1Ly?UjcKL7v#07*qoM6N<$f_9h$h5!Hn literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_14.png b/app/src/main/res/drawable-nodpi/weather_faded_14.png new file mode 100644 index 0000000000000000000000000000000000000000..d1ba909751453d1a0896dbbd1834817b71049ec5 GIT binary patch literal 1866 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_16.png b/app/src/main/res/drawable-nodpi/weather_faded_16.png new file mode 100644 index 0000000000000000000000000000000000000000..135523f63617ec66c3dfd53f465d7daa12892e8f GIT binary patch literal 1446 zcmV;X1zGxuP)C00018P)t-sM{rC) zI6+oSS4TidCm<$0EILdg3L)o|TznjrsQA*3-g=T71dG zx5dE3tEH(?NK*On+LmC7|NiCu_uoT0Mru`Nrj?d_b9KnVw7TkJWB>pF6?9TgQve?R z4?1Yg{{EMBQsR!}@x;EgDphy(23G(81mj6WK~#90?VE{`;vf`7C6LXfH9Cm_m;e9F zfvl_%2&8AKyfxL8=}LLeyAKfQxZ8d8)mLBruYv%8+wDew!rj(_C@r%rOOm>-6M9jW zDcEf$K+Th+GatqNo26)zBv6?N-aJGWJqL)gL~lPZWMxzYlr6Xq3|Shj5up5NKOn^M zPcs|)t`RZ%0PV^jLqMVZL1u5?g%G$6$jv`EfwMnDD1X;KBmwa9rv!nz06qPK5tP3E zfo5as?av6-FUx3!|LTDV*tVlyrNqApAgz9i;$E)=@NEJrnfraMzwb-{)c(%&SPf8n zL;%yl{(evD)pCyjRik}~0Nh8xTz-%MoF_s$+Xone9YE>rAEE=b+b|UT!*sx@2cmzN z4!HCH{RsYnI$%E!U{yo`s58r5y3~MBL%@0vNDT-!1gPv5!?K74U^fbp>>q3hSOUla z6dMBoc?5(^AhQ6Fr$AT$i-n+)0gA8*u>EBx1S~rcG=ctDt4_Luq*8Z=qRfGi39t{# z5)k}61nwaL6dvU>QyDh_l|bGqW@-X#_s<$hX8#5uowj7*i`n!-{uc1f_bNav;cRFKjsN^ z0HmgO*%C}U1)!Y?47a z!30qI)Gwc68k(?_!2rwFlB({3y1o(hes9! zLI#Q)>eruR8wm{Sfh-q){ka8ySZ%W=`qytdy+f5b1Tw15v6kRPR5|(!f3O%9!{?yl zHR|zdrt#Od)8+f|QswHup3`JP7OB|-xG{*ORx4#wEh2ZdOH5mst2HcxY1|c zzG+`x7#pXB1|YF|$^)j1fl?F{VBzJvaj|d*mH`}|_UR6ms;aCO0G=da8<89@ASS#r zkB6=f=5?n%A*S?b2Dl<#UXQmN781DjcQp9J9jmmE0F8idDGuk4h${h9%?6k2b@s>V zodE#AUe#$bGJ{KGh$99_x`26WAI01meHW>)@p8y8{H^~5A z`TFS^GXX%zXV69>09T=Yy2i~3>=;4h43zo>fSr&*3<9-&5g>L3@S@Z&0YuJVo&Zz* zGJudl_{lgC%>FU}mjOQS1N%dOIs&eK6=2E$H~a8!#2ta)uL2Ai(E1~61iB0ae+|Hp z!9L1Hgb@h-I)IK~AL)B1ltA3$=>WRBVtvT~N_$K#0KIFo@7?GDHq<`=(4Rv59soXf z`ZWM>7_|Mjy#|1ApTGPBsQ~-2`|7K&zWR^#7mBTOOi`=ey#N3J07*qoM6N<$f(pr$ A{r~^~ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_17.png b/app/src/main/res/drawable-nodpi/weather_faded_17.png new file mode 100644 index 0000000000000000000000000000000000000000..85d8fe511d261252200c94906cdb3e282cc44df4 GIT binary patch literal 1104 zcmV-W1h4yvP)C0000{P)t-sM{rC> zKuShFNKHjgM@>{rS6*wr#YtpqU8JjU$j@iEzg4HORgsvNk&I4$gxb}_>*&+5tD?*2 z>1)Hv`0?8R_T6*J&vDS#|NiBw*U;AI*fC^8MF0Q*6LeBeQvf9i897nnXtnLq`I>xx z$Kjno?5k*j000AvF3g6h`F^YVA2kg_`$&(6dovyr7UM$#jPAN2jTd zYq{Afk!D#+N=iyfN=iyfN=iyf$}bKk=${QDID3Bxt7NWJ4N=U8Voc7m=)skC_CDeEg@@+bO$Nr`;gMOEXfmSSFZ3Pp$nUvi5GXu+?f1LO;gKpSmTGmh^Xl(}*wrYb1 ze?ks?$Zf-)48~n110@3A8WO}7?_}rvyTLRjjo$FbYvKOKw(UQ{Vn*oV7A%IrqKJ0$ zCxc!7RD*e2YAxv#i)#d-ijN9w{%BD2*JV=|F8%;5YP+HB3c%+AJ+-(82DHrWm-H=v zFet!apZ_qh{2E@BKKs@fBTx`!esdk%_7yJ*)xZyKoP6j5Ww$n60WXUYdVXya8o@gJ z`Ed%gUz9N+>>ISd&OMr+Z#wQm?SWo-Y2GU^mjUpt9Ao{#od&>v>_YI1uW2zjh^>J= ze?*A&vp-!m`1xjb8*F@?e(%Oj4f^x%4~lz9M-A-xlVSVW;EjRhFFI;#F!Ha-+Td~i zy9Sr?*Q2mG|EGReNl8gbNl8gbNl8ihh4~Lv WI$?*X=V5RF0000C0000{P)t-sM{rC@ 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_2.png b/app/src/main/res/drawable-nodpi/weather_faded_2.png new file mode 100644 index 0000000000000000000000000000000000000000..c82c10efa8bca6a1e1ad9bd3313a3cca3a47f0b9 GIT binary patch literal 903 zcmV;219<$2P)C0000&P)t-sM{rC` zLrga_I9zgUPEJbK&bn`?kYA8|SAcJLaB4hOOOJ_pzqXp{-?(e5lB}YQ&EVK_u9frW zz54RkcekAX`{Tq8diwwX01kC zRV`%s-F#wDIYlLq_EZR<(e?v^N$PLZ7W*fHPS+H|>AUSp7lKrK{9_1dT7tRn^N$GS z@iGX#+rBRYTJmwz=oV?WkU^OVAA-<-neT#kS-N~yXQOn zg-Yfh2zHFhI-&obW*}4g2LgR%0rnIjPwXFxu&F12a;degC+O4xY;1=F0c?vPPanXh z2uK3h(h&?r0P&K5^iOdYuuOowGXNrg^l+Gy0U!q>stRChKvn_lP+$lFQ2jvD0k|7t zEJ}VMev1In2#AKk0RYhmBw+xkk-(4wAX;Hg3V^sGQg#C8E(bt#gYsekaWz0l0Ilc4 z^7y?40{f6 zi5P$Z7=Qs7fB_hQ0T_S*7=Qs7fB_hQ0T_S*7=Qs7fEWPeAaN0Zee~}ld;_Zho(8}V zuR}h+|>X0QS=!Fhu0*j6%?KE9W<5)MgZ#0`}FX9mbbt zRYs!Le~)0SQP&VH>8QpNTy6zZiF{48v7TWBVr^>YL(K?sml-OT>oP_FKJD?%48I!#dc z?q;fh6kuNKMOoUFeyao)h}ZaiCuqq1``HAuCjX|;G0s?ODFCXa5PZ|ZDN8*?oYP^8 zKPd!z31=-e?Prx#ZDe?Ux~8`0*^eOrNNd}=u3KA4>}-(K2pcD(Bu1Dsh_mfq6sae| dY-dRQgTG|YE~KUPu&w|A002ovPDHLkV1ipSkw*Xk literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_20.png b/app/src/main/res/drawable-nodpi/weather_faded_20.png new file mode 100644 index 0000000000000000000000000000000000000000..15861b01844a7005f959471224f2b1664b48ab66 GIT binary patch literal 1525 zcmVC0001HP)t-sM{rC` zL`+mlQ1{JqLpnpDmVl3hbV55qXI)!+acN&wQFUu&k%n`FdTHIcY{R2v^UHK#S5u&e zSCDyBvX))1oOZRFXz|H%sh)+frHQVhhohN-{?&KRtY^EVbhoL9nvQnfymCBN+KK=G z02g#pPE!CWJ^mWvx(r~IPl4{o&aCQqhHRGj*L1zxC;$KjCrLy>RCt{2TMcugAP^P7 zNc5scZB?SN{{KIDfJPJLGd;=NjE~xBqPUOc?Jnrl^9~$1aNxj!{}Ul73h!eGqcX|b z$omjLp0pIH_ZdVfY++SZ(Dyz8KW(}Bs!dVoIR_})wi*HP2MFNoVZMS1aBd%@qw_i1 zGIUKKO6K7+4@9o*7Z5(%Pk`qZdHZai#(-l7X=0(lHL zN=3PffQvv()dWg!XP^YC2<)E>L8c_IzYCNaWG;X^yFf=^cNY{o0@cn>sd6oWo%6At zz|JM9)Dze@A)63@d+w4ArhuiR{W7u zTu1s@RasJiX(4n2DClbz>piuN3TFx}OmYmCcNrn_aZX=wu}6Kj#WS39A$*0J10|6q zNm}M{oR?`b8Rs&w%@@%l6AZ7=I|8-~X1?}?3r&I8*SDJf%)bW1saah{UvpU!2zea9 zjv9T%U@Z>L2irc^2?3MghQRGT0&l$L3K5s#Fqy5#NvLn+o$*r%zVVt1BrSwPcW>s_ z)1#|Q!r}K0@FR>*RP^0_h0Zt}UL0Wiq7##*A>8FZYfKSQ_ZIdOU>O4_XcpQ1ytL)} z!FWf@V>J+g zAXN5KV5LCZ>r^i~H9)0(8wG-w(Z9N3G}CO#Bb@`4eY+$aZZt3nfsp%Xrkg}DH$u99 zH2#nQO#$!(JjKFDU=YNEEC5Sp{{gM}>xJTU5rfu%FVZu7ZHmLsS1-n$XOhP)t{MVY z-lwT=8~m_?7oq9%5C6Cv>`X0cgyqtik7j3dX_l~hZ9Ma?qK~W&1N0{~fpb&ui~g)8 z5CzhaOi7RZY7B-;gcp%Ow|fMU68Oq+{+{yj)3L_)nO%wT>IS+EbcoL;pyiP+%AW15 z*KA)WS>KowlO<+M8WWH@h|k}{ykF|-ZDy499fRQ%>Y_k{CPsdgr%A?_1O2VGMDPEa z02r4HQ9<{gfvx?z@qaZ1O%wQh&Ek(V;-wp}OtXY0aSEJgy?ODIgUg zyB$9et3FEbsGM+}fiW0wfq=HZXcoe8F$fS2giC@aj1GT%SiU}uH}Ew#VDS)(=3%Ou zr?+!5EjR22aj(6S5XIw)i@v{%z*uoj2s8=;ao@a&X;_g#C`x@>_Bg-XTR|Y4FFOC(;1UT4;LCJ&TEhO30?(X11!$IG&BKD_ zS$&z#KDS`HuzoD!Z!!d6>~6MFJ`2=L1nL2S;i61lh{V9XAc+VvInrjXxp!dooFF`J zcPJ;(5d6RtcCQSONX~+dPKe~XUx$I+Hcc3ELZ+s$d{V<}?kmJ2K&JS>e?=TPaNxj! b13LT#KPtgV(n-MQ00000NkvXXu0mjf5{JC! literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_21.png b/app/src/main/res/drawable-nodpi/weather_faded_21.png new file mode 100644 index 0000000000000000000000000000000000000000..7d7f1bf74e1f71cbb1335a7d6f7bad279630e4ff GIT binary patch literal 2258 zcmV;@2rc)CP)C0001lP)t-sM{rDD zNK8yaPIYT!O+`>rMN2g=Hj936+hbXvmVonmX{DKhlZbe6HauoRL493ZgK}y7d1&#; za;ct$(ob2gq=>1Zhx5&H`*mlhn}hSvbDWWR|9xxTRbK75aK@->;cs2FsEhD%Vz!QV zx@u$cp=`6pHRCt{2T8WmTIuKPr#9mZTAkv740;2!_f3L!l1p+2%r~ABf`r`D= znKs-@ftv)pc3~)s7thYQVFtbO2 zm3T=G8eCV@OizG_AE7ewFxwCy0yIDvj{i&mJb#%0%{am^$>X5{T>e|);ps73nvp3G&rL4MGOQu@*sm7OOCrGYCuyIZsL1fI z5+(>yaeRe}CbQu2 z-D#i{cLVLSdQ{dIa745NLd=icXMi9u3ZewhOxgmDs3gxHdg*ld2|xi2TbQGxej1`U zp?7*XnJWiSK%5vBH+0lpk|8DlQ7+Ao6+CDs0^Hao0f78ZT~|Q?@lIGk8AnF| ztpAw+cxj3h1h^@+0k}YCzkv52h`3p)1L|CG$oLT@Iy;t{|JGRvGB8!*cjL?<-4~Wf zSwX%3LOF3juGRr{Cp>6tq#A=}|A%M}rkN_gn-Le_K2TH8?mutj4jKV~5YR#NhLjYv z{4@umhk5`Y1P^93REa^i|0Wgy3+f1Pvm|6pAgzGx|49;tiB1oIfUXZ36G$px>L2t0 zv;yE}qz{Xmv;wC7K}Ug7Q^1Xw;3iu`VV)n6=H5fA2jC7xNQWXR1#JBZmCS^yC4joH zO@pTjxcV2#!jSZ!atMfx837Xt`1%_oKr;Xkfr!t;PJ#HG$zF2xKROO+3qbvWpi|&j zLIvx87J-nDfID*1X3vEl@Cr?S>H#hSvAeOw0xXMFz@(wB31d+fxbDWXW)ccm0k0ef zCir;;!scoajD+qaKd&Gg@vwXZ=$f_@5I^DP6fm=)UI5&j+#r*CeqI5YO+DSQxadu% zu>?P(0ClU%P|pNpGV!8rI+fw43c!VAWv?Y5=PeLR@)HFpOTzCYVoX=XcvmgYPZVTy zbEA<5%$gQkK!v|k!0wDI(=Ca(%$ow!i`VYOhf5{Z|h`i`|$Tp|r?V z%WHl`0meJ)y#sT#PQZUgLV)5tWX}ukl}5SVTCoCx_79&9Vgbm_3+`~`Ug-#!ZQg^1 zrHl72=u5Z^OBQg5k|+F`QOB<;z+T{Y4%VOd4%Pi~>fv^C>AMs4-{s)cjPOefur?;f zwuZU965Q{n1XvSR!lME3$G0-i6OTW;Wcg(U*sIq50|a096Fwz99a>j5Qv-$%N2mBG zv3IbF{a2};8_v%Iuhk#;;omDbJ1+b~&zr#^NJMWlLozv$D$!F9^>tD3OImYVQdVFA@Xt+V0Gd`_n# z>>(+g9>0VD(K|!tok6E$kdLRNhtmVH2EOSqpX)OLi`ChOYcTW^9O_|dC;Gyn=Zga! z!3g}-^qWjD{j`lou_Isj;y*hX9L`%g0sUv;XQ9@AP5yNsIXn?C+l<;@fM5zEZO)q~ z9yFKoxJ+TBjrn9%Zd;2X)}puK;6F{Ld3^)t7s=E1J&x^WBYc}~y|4_x=;GY^c$dT0 zFxKnORzaFxI@|6J%@i@wbcL_6SMj&!KnnhOKC=yD{)XyTM=rya%5KUY!TH@#$pVp^ z@rcq@Fyf1J7IgZ8^;iTXGvHjuuv748=E~-hYQ7RjU}h{=axfbkwe^GS!VFbX?Z>jw zG8S^M>@IEQZ}^NH?ATn62`M7qeqaKl!}j9|n!JX8ymR@#G8c7wYxA`Eb|D-HYS`ve zGt{%za6t6^HNJ;Ef76!o65F(qNB380>(5D5@`Z47GFQd^E6(ngZrQm)q8eaL=q g1hYT<;SWRn2j6gw>d@vNvH$=807*qoM6N<$f(YC|9RL6T literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_22.png b/app/src/main/res/drawable-nodpi/weather_faded_22.png new file mode 100644 index 0000000000000000000000000000000000000000..15861b01844a7005f959471224f2b1664b48ab66 GIT binary patch literal 1525 zcmVC0001HP)t-sM{rC` zL`+mlQ1{JqLpnpDmVl3hbV55qXI)!+acN&wQFUu&k%n`FdTHIcY{R2v^UHK#S5u&e zSCDyBvX))1oOZRFXz|H%sh)+frHQVhhohN-{?&KRtY^EVbhoL9nvQnfymCBN+KK=G z02g#pPE!CWJ^mWvx(r~IPl4{o&aCQqhHRGj*L1zxC;$KjCrLy>RCt{2TMcugAP^P7 zNc5scZB?SN{{KIDfJPJLGd;=NjE~xBqPUOc?Jnrl^9~$1aNxj!{}Ul73h!eGqcX|b z$omjLp0pIH_ZdVfY++SZ(Dyz8KW(}Bs!dVoIR_})wi*HP2MFNoVZMS1aBd%@qw_i1 zGIUKKO6K7+4@9o*7Z5(%Pk`qZdHZai#(-l7X=0(lHL zN=3PffQvv()dWg!XP^YC2<)E>L8c_IzYCNaWG;X^yFf=^cNY{o0@cn>sd6oWo%6At zz|JM9)Dze@A)63@d+w4ArhuiR{W7u zTu1s@RasJiX(4n2DClbz>piuN3TFx}OmYmCcNrn_aZX=wu}6Kj#WS39A$*0J10|6q zNm}M{oR?`b8Rs&w%@@%l6AZ7=I|8-~X1?}?3r&I8*SDJf%)bW1saah{UvpU!2zea9 zjv9T%U@Z>L2irc^2?3MghQRGT0&l$L3K5s#Fqy5#NvLn+o$*r%zVVt1BrSwPcW>s_ z)1#|Q!r}K0@FR>*RP^0_h0Zt}UL0Wiq7##*A>8FZYfKSQ_ZIdOU>O4_XcpQ1ytL)} z!FWf@V>J+g zAXN5KV5LCZ>r^i~H9)0(8wG-w(Z9N3G}CO#Bb@`4eY+$aZZt3nfsp%Xrkg}DH$u99 zH2#nQO#$!(JjKFDU=YNEEC5Sp{{gM}>xJTU5rfu%FVZu7ZHmLsS1-n$XOhP)t{MVY z-lwT=8~m_?7oq9%5C6Cv>`X0cgyqtik7j3dX_l~hZ9Ma?qK~W&1N0{~fpb&ui~g)8 z5CzhaOi7RZY7B-;gcp%Ow|fMU68Oq+{+{yj)3L_)nO%wT>IS+EbcoL;pyiP+%AW15 z*KA)WS>KowlO<+M8WWH@h|k}{ykF|-ZDy499fRQ%>Y_k{CPsdgr%A?_1O2VGMDPEa z02r4HQ9<{gfvx?z@qaZ1O%wQh&Ek(V;-wp}OtXY0aSEJgy?ODIgUg zyB$9et3FEbsGM+}fiW0wfq=HZXcoe8F$fS2giC@aj1GT%SiU}uH}Ew#VDS)(=3%Ou zr?+!5EjR22aj(6S5XIw)i@v{%z*uoj2s8=;ao@a&X;_g#C`x@>_Bg-XTR|Y4FFOC(;1UT4;LCJ&TEhO30?(X11!$IG&BKD_ zS$&z#KDS`HuzoD!Z!!d6>~6MFJ`2=L1nL2S;i61lh{V9XAc+VvInrjXxp!dooFF`J zcPJ;(5d6RtcCQSONX~+dPKe~XUx$I+Hcc3ELZ+s$d{V<}?kmJ2K&JS>e?=TPaNxj! b13LT#KPtgV(n-MQ00000NkvXXu0mjf5{JC! literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_23.png b/app/src/main/res/drawable-nodpi/weather_faded_23.png new file mode 100644 index 0000000000000000000000000000000000000000..20300a59a549b698b1a2370637f6f210750f9604 GIT binary patch literal 1333 zcmV-51C0000^P)t-sM{rC~ zM^QsOL^CZkM?XkZOI1)uQAt5cNI*$PKS)D6L`OeJ>geiCM^XEEXjV&A(@aVa!pn0!)>2eS=(n{#ARNjiePoxgB<_>01b3fPE!CV3LQ)8(X^FuIiVdicPfMc z00fCiL_t(|ob8(pbGs-I#^pr>JfvRIynO#Jdb@y#xy0m*z|H)9+Dm zvaq)8BrlSgGl1@WczZcp#{dv2|J9fPm~0`eP{P>j-#5>I6CrX>ga@Fih2ghS69<60 zEhZu#gahywzvG0=0HEvTa-JrlSD6?Ppu_M2!&B-2u8|>3gtghylKZ?D3c`a2A;4)k z!RW8aMA%RoSf6{huK?gLK5-W40LF1xFkGQ|o-<}+btWmD>?)Ja_r@QDgZF1ZV7@Z;AH{aFXv_BVyr3;FfSYR06fDm)C6#U_NN1k zW1T9PqL0I^ybr|S%Q z;1hssv8#4F5X*Z*Fq%s;biV7*695hSQ-B~8jR1+kyX}L$Qtk-=J~AVOcOe!0{=j&; zK1n&Yd-MQ6DExQWAH!4-!DHuY)0u{z0KhI8>=0epUI$2pE>E?60uT^N4gDE_PX$J4!3PHXv6rQ#pO`#vrm2!{ zaUjyKlw7WB`~K+*00p)PQ$b-H83{;h*CoDcNIn5DtJ)ucDu1j)ckY=g<=wirA3t~n z5PDqZd+nq?pNs8210gW|6ku!oR{*gZ!*}{do8!L(c*eByRRkc94uBZ|O5as8>wEVD z{igJHI&_gdx`oypUrB56NDUQl+}G^${A>mQyLE=D0zhZi?RTehFUcj~eobS_KP1&} z7Qmeje;SqGtLpO{ zV3+|qbl8;-o8i>q0zkcU-wa1z7XaYGtIBZ%dkIj+eP08-^M95bz`5|sXAT`scmU{X z0F*m{`L+I4;rBSu-rIgSii0o99xwl^HNLy|6mFZPDJt1MNR&Qc&v5^p5se$8_@YWG rg1!3Pje74iqLkGOe(2DlLxuDYREVYW`kQ!;00000NkvXXu0mjftu|Z4 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_24.png b/app/src/main/res/drawable-nodpi/weather_faded_24.png new file mode 100644 index 0000000000000000000000000000000000000000..80598637410a4ad2d1449fe06582b32e1de3f677 GIT binary patch literal 1417 zcmV;41$O$0P)C0000^P)t-sM{rC^ zLQ7LgQ#dj?NkK|gOIAogNlHRXQ%Y1iGdoE^N=`*jL_9?_E;Z`t>i%hrPDfB%Ojwp+ ziRNO2dQffe#&4NnjLThmpH*zVo@C<=bAkW>01tFhPE!CU{Rc+smk`4lcGa;}9ket` zXaE2N+et)0RCt{2o7;AzDilTKt|%vsfUU{0 zTeoiAx^?R>t5A|lDzdAjN^Moq>>4Si+t;f$nq5PHn6AG;uU6+IyFgO6(E983{W4f( z7pT&&Z?9VO?0k`O0C-&kkY5ataX$w^t(MsZqBvOa(hOx6sNh=LHBf6UFIk3y0)fWx zPohfzGDKx=lUSkR8UTTi#2PDfkpVy;EC3Zz`)7LrD;}iiv*H{GzjGYn3L0Eu7B||yP=2x28bTOLj)sIr6mC9Xfq-+0L$>z;SnG* zB27?P2ciWg-T?r?OaQFk7j1Ju0{13p;u^0CG3L76*DI0odq3I)I%HTs8-s zE?Wgb9ljz5`k&~YHjK9vni4n=_C&p{-nusleb?<)1V@uCSNk0fG(*=h%cVQmp5%br z4RPCd9S%gcb+oO{^J@p7^}0V3YIi_KzICzfXh^4vXWaqYc-{6zgt6;zrQ3Wk{l%H^ z5spIc&Rp`nT^|8(beLOoAnrO$ITad*)_2}c+~w2^&uo?)7^mE%>j|z#G}MGRT6CZb zw`1t~Fy;1)`a1w;fWTz&4+olO-*q;wwn8MlqPx2xCF^$CD0oFg|C-cs(U zuFn86;t+B?5BQ^N#!(a#HxAWVU4IA2{8Tux@izcJ4o6P8PXK^G$hnV9<^Vm1^qT|X z{(+w2>)QVKe*r)lQ$fq5GVZp67}VyVaE_P0l$*Gr|AaxLjXip?t+52PhncEE740ABLIbhw_QyfE(w;Wg!Enc7@Wqq=-DyTr3H}K zRoh6eSA|(>0HXY!R!Db6u|sjt2Dk(e0=4kD_A&fW>Nx-{x}J+rYB?_c7Xaqz>kdaN z%F^f#qCW;8id7vBK=X1{)iEzHi~yB8;x5Y^@Ydl3K)Pe@^5=-Rf2Vgtxh{IZrD+22 zF?|nst!d$Qd}#VE13>()eGaSKsnKKOEb3gVB_5t8T=M- z?(60MF^vZRztf!jR~DQxR2W#x6BX#1MbL|g;<`U`x^?T;t&{XW X*7d3Yo8!PZ00000NkvXXu0mjf?LK}f literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_25.png b/app/src/main/res/drawable-nodpi/weather_faded_25.png new file mode 100644 index 0000000000000000000000000000000000000000..4c2ef119b1cf5862af2d7944e6d663e54e4a194e GIT binary patch literal 1634 zcmV-o2A%ndP)C0001cP)t-sM{rD@ zXOcoZMMOSGhl+?pJw<0|XpLNhGA%OcJkJ8Y&S6YSu000}ycBvqU)~nF57845BwR0TDgb?~~&9Mrx zwSX%37*ffAta*jQNa5Zg%vy@q_Ou|BVa62D`n7$RLO73q7--nn4C@&}@K(02e_03P zA)rX#zN*8@uzxVfzeF%f;0*RROMpiBnrV+xtjpnef4Uw_ z-zhl31OU1wPBKTKzyF@%KdB9nzu#T2NqL8x0uYSbq+q9XKb?|C7EjZ-2%P=tdPTRd;V*T7fm?ASqO~jW z#R`}M(ApN^{d@qVEP+Fhwbs#Ed76d93YblxJ=UrYvm)RO1&7icFbF_1U=J6-!>pAI zU~U>#3}Pk%z_$dDm|KXzNchzej|CuEt>LWpnw=VWdy)ZkZbn^ejmUsqAOGxRf1SHw zcDqzMUPjc5tpW(3u_4KBX;CU21Hj&&?uKmm@W^2?YhV@F*ZcmRM#7m{fJOava( zgc?mS6`^sRq@E83H(g zEPm2ip|_*$wkjbAAk2f(FE3aE2%z*o>Jt2il(%C!g3AARWC)-HD*vM{LH0+rC6ps* z{5b*{pz+rw=m4+}b|Di1u^WGeKu)0ZF9|f>So8@va1Hv2klB~^rF#Mqfbl=(=`9-o z0M{T%woC*PftUdAe;!f-8UYN@7lGVkiGT+X{O`j6R1x$=00=mM5&r!&RCWQoAZHQ* z12D>;xgQGWLmWY-%zyzH<4^c^jo$XBHjpy7cK~FBzjSh-DgwJ2@C1(zz#io<9^Uwh z2q*#E2bX8w0F3dMk4{u=kT3*X26^88QVjP8-!;3}lcE#j49Y;#fboN8M_5f@w;_-h z1cUtHqoZ)AXass_)vO5W3Z0r}I3dCx=*^S8JUEE@f7bvxI3 z*ym&0e?^*hzuxS}S=0lxw^uJtO{!0f7=*vH*_)sCzq}vy<@xMj=xpdNZGO@x5W&x1 zFlaxtY5;n>N(=#g{rmk~edzePy-yS$$AA)zr4T6 ze+l52etL9Et@bwrAS>@{d^l{n0svPU0B~GcpO*$9XK0E8aHT&Tz;i?)=L=klH!hN| zoeqGJAkX=N+oH%_PrBGLFZ88q%VJ|7@d^HvpqQV4@dvhK^Jl>NA3qv`O}`Y*odN5g zx}WtQ#fSfqE|UT0|LHXV`G><2%$Nc1@8B*02Q89;$N3{aBR<|mNH&jZX&faLKD0C--49-te)0KjKZq^2WiZ-M>zB>)R`1jWWR?2l1Rz>Hr8 z=rW-G#&5)4MZk_90BHJP4*!OL9X|ljWH5_=O~8&H1gQGJo$0xg^0^k)9|WlOkaIm` zfVlB10LrVZxrF(5b})do+;cw)faUa=R;K{z?*VLT{ThJdH(KNwCt0|C*M@!xfD$ya g-g@h;xBg-M4>b1Ly?UjcKL7v#07*qoM6N<$f_9h$h5!Hn literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_26.png b/app/src/main/res/drawable-nodpi/weather_faded_26.png new file mode 100644 index 0000000000000000000000000000000000000000..6759bccca77739d7ea6767aaa71b82cf47d8d449 GIT binary patch literal 1236 zcmV;_1S|WAP)C0001BP)t-sM{rC; zJx5MLOj225YQV>WIXq*mvqEHQs8&l_k(jh%TTp|EKuJ(fbbPCLc5B1R{Ca5e$#QDQ z&+^Z5(ob3Zb7gSP*YA;P700f|(_Hs{YcyHyx9dtP3g65U~z$Ln;7PqSyM9(Py0!MK{a-eEpXhDgJ@n72^ko!-X>15xiGjH3pS6kOKwB?WbWM8r$G9ZMzrx@cD zYXJVGtwT%xx(6xw!M$t#nj5AQVO$h(vdiAn=Z`VKtp5n9+nKvkk>0%>00H_DU|NV4 zzw_rY6z3gh1n)KnAk%e-weRg^B_6v8$gBjz{nzQTzX;*JpI|%+`WT3jzvzVB1bQBr zjech0Zy^J<8^|Wp@M`^s3@&>!m=6O{08@Y7iOD_!(l7L*VL)nAe;z^P`N2gf@qR-f zn?Nszio&b`bOz^h(FvcUd$65gw9pR|;0Awzpng&g5na5E1VnH5hUH*W0Mm*T(YCe> z^|>P(mjC+q{u0680?_maQ%$fZ0Euwk5JLFXJoV8_jlz1TznGsM8vvfoQ=iS`1G;uM zz?K=ZI~{kYL$Twl>zbi9wIJgevIA)9Z&7zFlv?rU|0^&D5WBw7pIQOn^OI)?P%iCz z_7uUa4Z=DFu{U0(;v$7o5gYj5;rw|9>oej7(%+y9e5m>>fM^XM0u6xIV5JQMVE@(W zFaifyZh{1~0Xl&AxFOgHF9Ss23E;(H;GGW!03QQu0GAH{#0LWuM*}QB!T1Eg;ax~;cfFTh6MrTt$0U;=&z&AS^dk_S;h!WrQVV&puvE5GO zFEZ}FZ~m~56I`Og8UnYEgDw6Yf&Ylo0$WjM?{9oqDiDHu6rJ}fiZ97#`yRnhl3<^N yIk*4S%QT5#K|5aMc@}hXa&mHVa&mI|r}YC0000#P)t-sM{rC{ zMNdFGLT$>?PDW5vO;(b!jG zZDEz2TY7^=WuG+w000hjQchC^27)eAyRCt{2nd_3H zAP|KGgR zfJ)KztqQb#C*-{@sO(x}tz{;_;L5b!eIBT2*{uBogKt`Kiv^H>RiCl;4hwQieo975 zDqK2a%^p^X3K81x%a1|m@zOxrsD20nnu9cbaM0p7po#iuG3ZnEg98NpE?plgvCFP6 z88b)7-4D_WV2(lVLR?P(3v84@)`mo>Vk_G4p&pkn|5sT<@DhNa=>6av=iE6rcxB!^ zWDNmr*+SlU$G=AO{NcQMv5>VLNxP6AKwU3^F9yG~VCCg?6Dfrdl05H0u=;oTZwre` zVHdj*=~{?tn7dS~9>40{s{G`EFM@EX3}w&0N4}@}V$ADJ`7sL4upBucAis9on_*9W zwBR0TINy(@T5mhX#q>iOejJ?MlEhYb8{+!U4$ih?u`zYBB>j+uxeiWFsB&ZZ%%|xG z2lE4qI%9ySjrA*?YCwN^J8cwa3~bFk%q8oGegOLf(A2d!XySSTCJXZx0h<-Ck324I z5B~0ufoC{x(k)~Pz#C0!Q|vNSzb`kK{0W)?EY8o?u8-j+!9?mFg2)Llpr$dT)CkhgO zO98Lw(UMS;1Owmzs~>}Yl>(9jp0@tc01^4?pb@G1qXU`wUf{J%*9S=6AdK=y^r0IB z3w0I`yqV;W9UY7g!kJlpk#Ocl4le)MLMF}~oX|`j=#|4edYP(FC=?2XLZMJ76#jMo Y0?rpSDbj-Wc>n+a07*qoM6N<$f<9-hssI20 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_28.png b/app/src/main/res/drawable-nodpi/weather_faded_28.png new file mode 100644 index 0000000000000000000000000000000000000000..8627e12d3f4be59a668c5421f81a9eac5a00cf52 GIT binary patch literal 977 zcmV;?11|iDP)C0000>P)t-sM{rC| zLrh9UO8)iTUz3|ZI6h-*Yfo5N=Iq+*=+$Mfw$IGGx3#BhzQu}%eNA$BS%iw5nveed z`)k9>`10Cr%+vq==#9_Mx!u&Wmj!lzGMP-~--i5gkm4H<;ODlf98G)X@L3l`oU3uNjFi&rMRgV*^T2pRCptc2 zf75VQd;r2Ld&6&_(^PT%C_wXa^Ggp66u6wmY4kD4Q-KI;J-2@gLW`FM)=XoVsllqn zIDI?^vHEBZ+E{(-pheI>#p_!K>3ac2y1@V)Q?Cc4*%AO(28o;Tv`s&G5?J+;0JjfX z7PmodJaM_m>KSFWCIW|Kv4U@KA#33&TvD(S@7hL0bV26LyGY8 zF=1RGInX7n=~yUS7QF;rI%PM&Rib>JL;;Qde@W8h95_I&1av5<&;Z_fx} zDNHbS;59l)KyjGwd@Gm9WHOmdCX>lz{vZAV&10h`&>MQl00000NkvXXu0mjfBkjvN literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_29.png b/app/src/main/res/drawable-nodpi/weather_faded_29.png new file mode 100644 index 0000000000000000000000000000000000000000..7e549a5adccec2c53886d561660598a09009d116 GIT binary patch literal 978 zcmV;@11C0000*P)t-sM{rC; zJ48)FNmE%}{?&MI&(>V;NOx0YRZ%#Kf>10__Qc_Y< zQc_Y<(tjuTLm`W*l2s*-$v|4hSlf^+nrb$VBWufO2z<0+ZJ)&vRP2dRM+%{Q0_YHU z7DLY(ScE2vAkwY~$}GHonjjiMxdMn%g=P&fvhc^T{{=9P!A~Rq4Zy08rtboU0bq7pRN~P?N{%x9q+=V}b zSi2kBmy{|V_;=CL0F(K@-=*>#8{z4{X>XOw0rNIk{P*l_3I$#W{T#pCx3?jv4#ytm z{+}HFCWPU%$HCut<>_xiI7`5*z53CbF`xXG3{F;oFjjBuzko0He*PwdlXIam`>&Fd z7X%Pqwu`;DzdoktMx*UB%}~{4)AxN-*44}1oImNSTmYe5i+;7%Ty`()rS;^I{s2-H zMQ)`E(Ro8`zxGZ9V5=bKaiMQ$C45(_%@Ke+EzKbO+LBav1@O@nx$x@Cg9zj$0F6+1 zgaBl>3#NkTpx%1(P1h?h6S%9eF2ZEqT~_iY<;wY50O0NG*>#)qPX-0J z3HoQ#-|lWRaF1#rjpy7y6@heL2LR2ako0}a=Rq8>1CZ(%Kwt+Tl{oT;A~FC)uYd!9;{zNwVF-Z3 zW7q`%=;9`zB#qmIj$uS(lP~D1U!TFx=aT z`iqQ?5dWpACg38!tq$7$LBH|01f&ysyQi)zSJs|<`E8Oxpxr|h7bV2NPuLp*gFq;u z*F>z~)R$>9!VQA+-{rv_%94_jl9G~=lKy4=1%u&xU?>s@WB>pF07*qoM6N<$f^PQC AHUIzs literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_3.png b/app/src/main/res/drawable-nodpi/weather_faded_3.png new file mode 100644 index 0000000000000000000000000000000000000000..812606f7f3bf568143a74990c96a32a4b9e978cd GIT binary patch literal 1683 zcmV;E25k9>P)C0001cP)t-sM{rC) zIYB=8wDj^zDHg6TuRMXi}N_{{572A>76S3d`pYF4KmIHY(g?Ik{wxNP>Hs;@ z{29SPhCd!N|GES+`hhy#-=({`WuRcPb7zR!bCxDVw&%U?&eHTGU~>M7<9I*M-=)s9 zB;f5njv_De{BS10q?v$!zT(JZitcm$*>-V!2(*1}FCzdf1Y;LQwV3PW6`)fKg@G@|OlMA_v=+znl!PG8~)(()5=z2QmPA;JyHT zMcx7#7`!Gbtpbn;;L>45Ksx?1+F-6>%~07#ZGePI0~oX*bpjx75)5ob-3pKiK!W zXthzm=Ljx>(mnWPl0GdOA=t)X4vMiCl0Pr&DgXhV)z~vxu5{H~6>c^5p3mRk+MFp^ z0Dv0hOw>9x&~;A%9yj>_H&nI4Ho>!NzYKtT`zI)ZcL9XQYERe(NPc;M`zwG6C#ts! z0JryK5WtIBNN<00BGAb}V(|q10Q7df{!uzIFm(-d$}j*Q=PIeRk2>87E_AVVeJnfO7s~ zg3jmWW)c!B7!1(#Z<|rQ_(wqTxk0@hYQE02H-xQXf;8?_aXoB048H&nALD8{{%<^bZ}7W+Br0iePIRAuXB z2oOMEg+l^R+Vw<$?t0Gdv~wIoy)d1NorwqspbUYy2z{sj!V6&t2?X#=?ta*0fCIq% zI`yfSJtGhQ>q{2ed2azZNZ3irK4S>^H23A;ub46+J0sZ*yJmt;S=l!?=7HtKsiI_m zzx$~|Awc%HBFJB|gy}o`pbh*s^E)-SPM6E}R5F~l4IP+F5rCoQGL7`bA%BtmefZZG z$KZ7NKC+`Vd?^5eBbO-=K-uLLlwLI}-fUb)5unsO75**&tnSY$F99}nxV1bVx-sBVV?+E*0Faqy>;=H3=YQ>puXDAYlB2&&Edh@FBS97N z9!=EIw~UYlmjKH!5ljLu&&@X)V=tHBtS12_z}Sp|C7|}k=M_NSlfI#6U=Dz(HVZ(> zJJAt(28ICG>dZ>PChbIl1#&AY5CAAwI?yD>0bJk)g1ICZV6!*-=I9`RZ}^#lIt03g z!M9Z*Fvnl5Nqey++CtzqfuUj8fat;seJR$9!AV#Sj#QOs91s=_Fk6g_Nf$m-fQvYA zY}Fv9!DOnM*q^;mBV^hoY|R4ua2*3&E}Xc3hE2U#g{;7Oac!Der%UH%88Lv>@jJzO@p1D}ovcM}OApuO^yXh--~c{b0<0H*xCA!Zhf83CKiUPDln>Y7s#U92 dty;CH{sXd--7aZl2-yGt002ovPDHLkV1l?J61xBZ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_30.png b/app/src/main/res/drawable-nodpi/weather_faded_30.png new file mode 100644 index 0000000000000000000000000000000000000000..6759bccca77739d7ea6767aaa71b82cf47d8d449 GIT binary patch literal 1236 zcmV;_1S|WAP)C0001BP)t-sM{rC; zJx5MLOj225YQV>WIXq*mvqEHQs8&l_k(jh%TTp|EKuJ(fbbPCLc5B1R{Ca5e$#QDQ z&+^Z5(ob3Zb7gSP*YA;P700f|(_Hs{YcyHyx9dtP3g65U~z$Ln;7PqSyM9(Py0!MK{a-eEpXhDgJ@n72^ko!-X>15xiGjH3pS6kOKwB?WbWM8r$G9ZMzrx@cD zYXJVGtwT%xx(6xw!M$t#nj5AQVO$h(vdiAn=Z`VKtp5n9+nKvkk>0%>00H_DU|NV4 zzw_rY6z3gh1n)KnAk%e-weRg^B_6v8$gBjz{nzQTzX;*JpI|%+`WT3jzvzVB1bQBr zjech0Zy^J<8^|Wp@M`^s3@&>!m=6O{08@Y7iOD_!(l7L*VL)nAe;z^P`N2gf@qR-f zn?Nszio&b`bOz^h(FvcUd$65gw9pR|;0Awzpng&g5na5E1VnH5hUH*W0Mm*T(YCe> z^|>P(mjC+q{u0680?_maQ%$fZ0Euwk5JLFXJoV8_jlz1TznGsM8vvfoQ=iS`1G;uM zz?K=ZI~{kYL$Twl>zbi9wIJgevIA)9Z&7zFlv?rU|0^&D5WBw7pIQOn^OI)?P%iCz z_7uUa4Z=DFu{U0(;v$7o5gYj5;rw|9>oej7(%+y9e5m>>fM^XM0u6xIV5JQMVE@(W zFaifyZh{1~0Xl&AxFOgHF9Ss23E;(H;GGW!03QQu0GAH{#0LWuM*}QB!T1Eg;ax~;cfFTh6MrTt$0U;=&z&AS^dk_S;h!WrQVV&puvE5GO zFEZ}FZ~m~56I`Og8UnYEgDw6Yf&Ylo0$WjM?{9oqDiDHu6rJ}fiZ97#`yRnhl3<^N yIk*4S%QT5#K|5aMc@}hXa&mHVa&mI|r}Yb%733O6UQvfUe6;j=Jp~J~s z?Wh0%0@F!EK~#90?U>6?+dvS;Z7n4|vbCGSv8y_XZ;1?)-r_VZ$}z4GYEMZ@g?cNd zsd6PCp&q*;sPo@qhlKdCYwzQTzeALRzn^Ai-(wh+DpjiVEQH#6etS03v75(~?CAKX z1R6U2kN^yI{4M~!R4yX=8TkP|s``!HrN3pV`nPH9ho))7^pz^(p{5QuCt#R)DS=U|j(KML@XrFVvRO_EP|k+9>wce)z8hFoP#RO9@bOH36Fp z)BtD>dNtULf#N6}BmheDU;+s#08o(dtE`1BHwhTY18OP2FL}UTvIOu&9+0Xbyp;!p zDS-URW`0cpTGD{jAVgJ^o(S6+z(^KQ%K)T@;YAuCU&Rk;zx;Z9l>tZ>p_c)`KV5+A zOqhUX4mp5q4tapHqY0qbngGdrQZEmX+m;vrxe!0HVzBFc#rISDhc7vDgoHEID>IXR{`NcVF(Rew#yfXP#QoSLQxg& zO9L=a$L8*>;P?W46@$3l%AgzbV4lxnS^ zm|&mJP9ng`ZEVM~t+|*GG5YR07*qoM6N<$f=NSzEdT%j literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_32.png b/app/src/main/res/drawable-nodpi/weather_faded_32.png new file mode 100644 index 0000000000000000000000000000000000000000..773b5f0f31a957529b5c0ccc713011fa236de3d6 GIT binary patch literal 1706 zcmV;b237fqP)C0000;P)t-sM{rC+ zIYC=VQdUe?omNofb7aF#SdK$WbSyH;RA2mgXz|H%(ob3P&vW>5X53R<+GJY(fo$V% zUh$l1tv^Zey>IZYZ0(6acu%UknfzxN69Zm4~iQ9{h;)HYE&89gSA^7)7%b%|#fS-5Nn9&FEPAOT_nvPc2 zwN#yf00I(k`b=}p>)k9rn%49k)ay|dnfZn6w4q~7#4-Su*23ehdL1{*z!|XwZ~yE4 zUpWBuzms%TeqvCZ#C%W=&|3NWqtUvHj6%5wTCVoUTQA6t9qxg)tM|zd2#Or+0kOCH z^El{9dHl))m@q`7`xIN`uib$j&JgNM|UIO2|&=^gqi0;t_QsN2a_A*8C%~G83b@bY&PZrwBEy{dHja_90Ai%3APdc>?`A0khM7ll< z0&+pe5(un53PFfKl4HWfp$Ws?1mpQv(J}{sITx74XfMH_&(H{TnfkCA%u!&+U>CvI zf4m6jd;sT0HH7g;f+_#N@Cal~fiVg?KL|b(xcr9$$Q}XchQ@2r4uV;qaTmavMi4zKR_ErR0!XdEEa4+(I?0{yj)@TGo0fLu51WpV*j6dd z{zSlVf+5QVcrCGq8@^9}B0yu17X>&1>3f`MOAG@X z05FL}(`RH#`yf}HK;Y{u(9Z!dK2TW%zJ4u0J}+Ai1hr4FFI%pq*UIYWU0C$JcVk7> zj@ihVcgagtUjVQmkeYqEF~K>0(_+-m2I#xs)@suU%v|x~|F4@-Kl|3K@0EWQXsQEP zT$~Z@R~S&*PWtbBfRMl-kma?ZDK3%W)#j%bUvPCBA+Xoi z%9IarZR?3lQP1M;y2kn?x92tzm$&n-Y#>_LLS=*Xi|Pk@GaHi%D9m)}v3_9<2|TNn zDF_g#fqr2Pi6Piu#R6CSBG50bAu$Mh3t3EsLA%f|t|Kx}Z1rb^p}r#Ye^Cs$CCO9= zY?PAO>0rw{7X3e_mdxyt-~zdmEAtN2l{Qrr%~C(d1GWmV89$q0e;}AG6&V*EzmjMy ztTFpP>$kD(^pHe=>KQjdhI$oY3U`zo%+wQ&RXt|^-A7v{0^A=_t139LFyTsfgz$cV zSJbPDH%+WH{kli&0a%qixiTzl>xpbx51jvARxD~SK8i= zu`s9V8Lv`1dN9Em`WpoN9Q}2Iv-DR8_<8zqf;06a1pHk6CBfPH0RcZ>-zT_29})0t z^c}%f`V+x*`UAn0`j+5QeYh($ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_33.png b/app/src/main/res/drawable-nodpi/weather_faded_33.png new file mode 100644 index 0000000000000000000000000000000000000000..9494dcda443516a069ad1208a5f9c5e40802bd1b GIT binary patch literal 846 zcmV-U1F`&xP)b%733O6UQvfUe6;j=Jp~J~s z?Wh0%0@F!EK~#90?U>6?+dvS;Z7n4|vbCGSv8y_XZ;1?)-r_VZ$}z4GYEMZ@g?cNd zsd6PCp&q*;sPo@qhlKdCYwzQTzeALRzn^Ai-(wh+DpjiVEQH#6etS03v75(~?CAKX z1R6U2kN^yI{4M~!R4yX=8TkP|s``!HrN3pV`nPH9ho))7^pz^(p{5QuCt#R)DS=U|j(KML@XrFVvRO_EP|k+9>wce)z8hFoP#RO9@bOH36Fp z)BtD>dNtULf#N6}BmheDU;+s#08o(dtE`1BHwhTY18OP2FL}UTvIOu&9+0Xbyp;!p zDS-URW`0cpTGD{jAVgJ^o(S6+z(^KQ%K)T@;YAuCU&Rk;zx;Z9l>tZ>p_c)`KV5+A zOqhUX4mp5q4tapHqY0qbngGdrQZEmX+m;vrxe!0HVzBFc#rISDhc7vDgoHEID>IXR{`NcVF(Rew#yfXP#QoSLQxg& zO9L=a$L8*>;P?W46@$3l%AgzbV4lxnS^ zm|&mJP9ng`ZEVM~t+|*GG5YR07*qoM6N<$f=NSzEdT%j literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_34.png b/app/src/main/res/drawable-nodpi/weather_faded_34.png new file mode 100644 index 0000000000000000000000000000000000000000..773b5f0f31a957529b5c0ccc713011fa236de3d6 GIT binary patch literal 1706 zcmV;b237fqP)C0000;P)t-sM{rC+ zIYC=VQdUe?omNofb7aF#SdK$WbSyH;RA2mgXz|H%(ob3P&vW>5X53R<+GJY(fo$V% zUh$l1tv^Zey>IZYZ0(6acu%UknfzxN69Zm4~iQ9{h;)HYE&89gSA^7)7%b%|#fS-5Nn9&FEPAOT_nvPc2 zwN#yf00I(k`b=}p>)k9rn%49k)ay|dnfZn6w4q~7#4-Su*23ehdL1{*z!|XwZ~yE4 zUpWBuzms%TeqvCZ#C%W=&|3NWqtUvHj6%5wTCVoUTQA6t9qxg)tM|zd2#Or+0kOCH z^El{9dHl))m@q`7`xIN`uib$j&JgNM|UIO2|&=^gqi0;t_QsN2a_A*8C%~G83b@bY&PZrwBEy{dHja_90Ai%3APdc>?`A0khM7ll< z0&+pe5(un53PFfKl4HWfp$Ws?1mpQv(J}{sITx74XfMH_&(H{TnfkCA%u!&+U>CvI zf4m6jd;sT0HH7g;f+_#N@Cal~fiVg?KL|b(xcr9$$Q}XchQ@2r4uV;qaTmavMi4zKR_ErR0!XdEEa4+(I?0{yj)@TGo0fLu51WpV*j6dd z{zSlVf+5QVcrCGq8@^9}B0yu17X>&1>3f`MOAG@X z05FL}(`RH#`yf}HK;Y{u(9Z!dK2TW%zJ4u0J}+Ai1hr4FFI%pq*UIYWU0C$JcVk7> zj@ihVcgagtUjVQmkeYqEF~K>0(_+-m2I#xs)@suU%v|x~|F4@-Kl|3K@0EWQXsQEP zT$~Z@R~S&*PWtbBfRMl-kma?ZDK3%W)#j%bUvPCBA+Xoi z%9IarZR?3lQP1M;y2kn?x92tzm$&n-Y#>_LLS=*Xi|Pk@GaHi%D9m)}v3_9<2|TNn zDF_g#fqr2Pi6Piu#R6CSBG50bAu$Mh3t3EsLA%f|t|Kx}Z1rb^p}r#Ye^Cs$CCO9= zY?PAO>0rw{7X3e_mdxyt-~zdmEAtN2l{Qrr%~C(d1GWmV89$q0e;}AG6&V*EzmjMy ztTFpP>$kD(^pHe=>KQjdhI$oY3U`zo%+wQ&RXt|^-A7v{0^A=_t139LFyTsfgz$cV zSJbPDH%+WH{kli&0a%qixiTzl>xpbx51jvARxD~SK8i= zu`s9V8Lv`1dN9Em`WpoN9Q}2Iv-DR8_<8zqf;06a1pHk6CBfPH0RcZ>-zT_29})0t z^c}%f`V+x*`UAn0`j+5QeYh($ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_35.png b/app/src/main/res/drawable-nodpi/weather_faded_35.png new file mode 100644 index 0000000000000000000000000000000000000000..eef24d04cbbcede3448805d44d7a7ea00f029f70 GIT binary patch literal 1755 zcmV<11|<23P)C0001oP)t-sM{rC$ zH9i0N;6FD(R!&ji*tzcM)RBsZPCH96DlB_Yax*6|J1sd=NmRMCs7^vpNIghvWn!3P zjLOHi@apbSNK*On+LmC7|NiCq?Z8e(PxR-!LpnxROjk-lO#AiSQFn-0d;Rdjfq8k>#jtj6Z?31Fo|1{AvM5df000$qQchC<4*noP+x~2xG0#$U z?VH)bTHde|RgidQ000H!(FHh`Nl&`+}>Z`B*UjgOk=STSy0ce=IzO-hunYGk)Q-jI}1r2>U zM+n)-_I=;R4+vRHa|)DC2pGDBy-Px9jv17p1#D$|e`U#g?UZRmcY*tp?k6V?F>W2SEn_zy}~R zfj0Y)-vTlL>^99ph6unOQpjQsh@V->U(!HUEoN5yS;u7pG%NsfN(%v^ zfdS}YQ3!Az7=S({p8zqXH@1Q6=W2R^IphIOjCvOVigGo*0Ch|*vuzkBhhw4r&Fkmy z-L~UQ_of#pBG3uI^{{_^T@$}AfD>S;Y9l~V1*8=x`$M7qG3rHtyqmhk3W7!eTW1d= zoWPz^@Y`<(O7ePNp3s|fNpMHf!3dy#j06q`-};QJ3@ zNqZVo1o7p}spWZq>)v^IZY6;0KOEtn@F(mV?Be1pQ{=Z1_E&>~pag)g-`T1n0`CQ& z%(w%YG^4165cbD@F9IGQz5Zak6=hH)zzt>bj_FAa3WCh=Nx%VQ*Pluq-~7rNC`CZ+ z$V0>5AoIf_1S|l#{_OjS%hi+*E9TNTW_r@G_U~~_2uKDD!0Y<4e^}~l7N{J{(gdDe zxn74b95Wfv0QB{Ts8j>Yn>Oa{Dc6(g^|*%)l>r67Tz}c0d*93~0@aSruIu{gAMqEK z7afZXd>Wwk`l-{fya-fJx z+(ZQ_!AT_4a5B>wY?J(PoCLN0qWcCZfv5!?!n;?0EcitR0ryztFMQXI37E0yH69&) zU9W8hoW%Z>cd<>T1r_trHHo~sbzthC*}vwK)lDF7IKloAag(;oor)+d6R3&nu}^dB z{lQ{18VUQ&@sRu?x|_R*I~U#in3SFB5ES(ox%}zr^6yPqX;|j$B2;{iP_`j60Pi;D zbQ}}gFd<l9#RXM9rZ;ccur6#&_Plm)N~u6w~(fL~`NPGGC1quxa9-vi((YD|Y~3cwZNi$`5d7SFcG zSE18A0a07Z5`Yt4&pzNd#9tkip40UcbuAQ@K&X)&OKVe(Jy`Hh>iTmPKocu{9l&bi z2uqTCmeLiVN~I@mDo(?N@(~sO0r%)EKJmkrg}+J;gl#dce;|Xx-`Py^nQ%NAy(ZPc zGobuOFmFM@R-2BT4`o36Yq&vX0D%Uy4`smk1Kc3<4yY*w!Jrv%{xrZxGT{9w0GeR1 z-B|Lc0X~rdSdgjU>CXUA1c5UdD1w~e<5%&$LG0(@4h>=Tne1<1zl xzXO0h=Wl5OJ?C$U1pVgkufF=~tFQh@{{R}Xp2P^G=W74}002ovPDHLkV1iKRK{@~c literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_36.png b/app/src/main/res/drawable-nodpi/weather_faded_36.png new file mode 100644 index 0000000000000000000000000000000000000000..773b5f0f31a957529b5c0ccc713011fa236de3d6 GIT binary patch literal 1706 zcmV;b237fqP)C0000;P)t-sM{rC+ zIYC=VQdUe?omNofb7aF#SdK$WbSyH;RA2mgXz|H%(ob3P&vW>5X53R<+GJY(fo$V% zUh$l1tv^Zey>IZYZ0(6acu%UknfzxN69Zm4~iQ9{h;)HYE&89gSA^7)7%b%|#fS-5Nn9&FEPAOT_nvPc2 zwN#yf00I(k`b=}p>)k9rn%49k)ay|dnfZn6w4q~7#4-Su*23ehdL1{*z!|XwZ~yE4 zUpWBuzms%TeqvCZ#C%W=&|3NWqtUvHj6%5wTCVoUTQA6t9qxg)tM|zd2#Or+0kOCH z^El{9dHl))m@q`7`xIN`uib$j&JgNM|UIO2|&=^gqi0;t_QsN2a_A*8C%~G83b@bY&PZrwBEy{dHja_90Ai%3APdc>?`A0khM7ll< z0&+pe5(un53PFfKl4HWfp$Ws?1mpQv(J}{sITx74XfMH_&(H{TnfkCA%u!&+U>CvI zf4m6jd;sT0HH7g;f+_#N@Cal~fiVg?KL|b(xcr9$$Q}XchQ@2r4uV;qaTmavMi4zKR_ErR0!XdEEa4+(I?0{yj)@TGo0fLu51WpV*j6dd z{zSlVf+5QVcrCGq8@^9}B0yu17X>&1>3f`MOAG@X z05FL}(`RH#`yf}HK;Y{u(9Z!dK2TW%zJ4u0J}+Ai1hr4FFI%pq*UIYWU0C$JcVk7> zj@ihVcgagtUjVQmkeYqEF~K>0(_+-m2I#xs)@suU%v|x~|F4@-Kl|3K@0EWQXsQEP zT$~Z@R~S&*PWtbBfRMl-kma?ZDK3%W)#j%bUvPCBA+Xoi z%9IarZR?3lQP1M;y2kn?x92tzm$&n-Y#>_LLS=*Xi|Pk@GaHi%D9m)}v3_9<2|TNn zDF_g#fqr2Pi6Piu#R6CSBG50bAu$Mh3t3EsLA%f|t|Kx}Z1rb^p}r#Ye^Cs$CCO9= zY?PAO>0rw{7X3e_mdxyt-~zdmEAtN2l{Qrr%~C(d1GWmV89$q0e;}AG6&V*EzmjMy ztTFpP>$kD(^pHe=>KQjdhI$oY3U`zo%+wQ&RXt|^-A7v{0^A=_t139LFyTsfgz$cV zSJbPDH%+WH{kli&0a%qixiTzl>xpbx51jvARxD~SK8i= zu`s9V8Lv`1dN9Em`WpoN9Q}2Iv-DR8_<8zqf;06a1pHk6CBfPH0RcZ>-zT_29})0t z^c}%f`V+x*`UAn0`j+5QeYh($ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_37.png b/app/src/main/res/drawable-nodpi/weather_faded_37.png new file mode 100644 index 0000000000000000000000000000000000000000..812606f7f3bf568143a74990c96a32a4b9e978cd GIT binary patch literal 1683 zcmV;E25k9>P)C0001cP)t-sM{rC) zIYB=8wDj^zDHg6TuRMXi}N_{{572A>76S3d`pYF4KmIHY(g?Ik{wxNP>Hs;@ z{29SPhCd!N|GES+`hhy#-=({`WuRcPb7zR!bCxDVw&%U?&eHTGU~>M7<9I*M-=)s9 zB;f5njv_De{BS10q?v$!zT(JZitcm$*>-V!2(*1}FCzdf1Y;LQwV3PW6`)fKg@G@|OlMA_v=+znl!PG8~)(()5=z2QmPA;JyHT zMcx7#7`!Gbtpbn;;L>45Ksx?1+F-6>%~07#ZGePI0~oX*bpjx75)5ob-3pKiK!W zXthzm=Ljx>(mnWPl0GdOA=t)X4vMiCl0Pr&DgXhV)z~vxu5{H~6>c^5p3mRk+MFp^ z0Dv0hOw>9x&~;A%9yj>_H&nI4Ho>!NzYKtT`zI)ZcL9XQYERe(NPc;M`zwG6C#ts! z0JryK5WtIBNN<00BGAb}V(|q10Q7df{!uzIFm(-d$}j*Q=PIeRk2>87E_AVVeJnfO7s~ zg3jmWW)c!B7!1(#Z<|rQ_(wqTxk0@hYQE02H-xQXf;8?_aXoB048H&nALD8{{%<^bZ}7W+Br0iePIRAuXB z2oOMEg+l^R+Vw<$?t0Gdv~wIoy)d1NorwqspbUYy2z{sj!V6&t2?X#=?ta*0fCIq% zI`yfSJtGhQ>q{2ed2azZNZ3irK4S>^H23A;ub46+J0sZ*yJmt;S=l!?=7HtKsiI_m zzx$~|Awc%HBFJB|gy}o`pbh*s^E)-SPM6E}R5F~l4IP+F5rCoQGL7`bA%BtmefZZG z$KZ7NKC+`Vd?^5eBbO-=K-uLLlwLI}-fUb)5unsO75**&tnSY$F99}nxV1bVx-sBVV?+E*0Faqy>;=H3=YQ>puXDAYlB2&&Edh@FBS97N z9!=EIw~UYlmjKH!5ljLu&&@X)V=tHBtS12_z}Sp|C7|}k=M_NSlfI#6U=Dz(HVZ(> zJJAt(28ICG>dZ>PChbIl1#&AY5CAAwI?yD>0bJk)g1ICZV6!*-=I9`RZ}^#lIt03g z!M9Z*Fvnl5Nqey++CtzqfuUj8fat;seJR$9!AV#Sj#QOs91s=_Fk6g_Nf$m-fQvYA zY}Fv9!DOnM*q^;mBV^hoY|R4ua2*3&E}Xc3hE2U#g{;7Oac!Der%UH%88Lv>@jJzO@p1D}ovcM}OApuO^yXh--~c{b0<0H*xCA!Zhf83CKiUPDln>Y7s#U92 dty;CH{sXd--7aZl2-yGt002ovPDHLkV1l?J61xBZ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_38.png b/app/src/main/res/drawable-nodpi/weather_faded_38.png new file mode 100644 index 0000000000000000000000000000000000000000..812606f7f3bf568143a74990c96a32a4b9e978cd GIT binary patch literal 1683 zcmV;E25k9>P)C0001cP)t-sM{rC) zIYB=8wDj^zDHg6TuRMXi}N_{{572A>76S3d`pYF4KmIHY(g?Ik{wxNP>Hs;@ z{29SPhCd!N|GES+`hhy#-=({`WuRcPb7zR!bCxDVw&%U?&eHTGU~>M7<9I*M-=)s9 zB;f5njv_De{BS10q?v$!zT(JZitcm$*>-V!2(*1}FCzdf1Y;LQwV3PW6`)fKg@G@|OlMA_v=+znl!PG8~)(()5=z2QmPA;JyHT zMcx7#7`!Gbtpbn;;L>45Ksx?1+F-6>%~07#ZGePI0~oX*bpjx75)5ob-3pKiK!W zXthzm=Ljx>(mnWPl0GdOA=t)X4vMiCl0Pr&DgXhV)z~vxu5{H~6>c^5p3mRk+MFp^ z0Dv0hOw>9x&~;A%9yj>_H&nI4Ho>!NzYKtT`zI)ZcL9XQYERe(NPc;M`zwG6C#ts! z0JryK5WtIBNN<00BGAb}V(|q10Q7df{!uzIFm(-d$}j*Q=PIeRk2>87E_AVVeJnfO7s~ zg3jmWW)c!B7!1(#Z<|rQ_(wqTxk0@hYQE02H-xQXf;8?_aXoB048H&nALD8{{%<^bZ}7W+Br0iePIRAuXB z2oOMEg+l^R+Vw<$?t0Gdv~wIoy)d1NorwqspbUYy2z{sj!V6&t2?X#=?ta*0fCIq% zI`yfSJtGhQ>q{2ed2azZNZ3irK4S>^H23A;ub46+J0sZ*yJmt;S=l!?=7HtKsiI_m zzx$~|Awc%HBFJB|gy}o`pbh*s^E)-SPM6E}R5F~l4IP+F5rCoQGL7`bA%BtmefZZG z$KZ7NKC+`Vd?^5eBbO-=K-uLLlwLI}-fUb)5unsO75**&tnSY$F99}nxV1bVx-sBVV?+E*0Faqy>;=H3=YQ>puXDAYlB2&&Edh@FBS97N z9!=EIw~UYlmjKH!5ljLu&&@X)V=tHBtS12_z}Sp|C7|}k=M_NSlfI#6U=Dz(HVZ(> zJJAt(28ICG>dZ>PChbIl1#&AY5CAAwI?yD>0bJk)g1ICZV6!*-=I9`RZ}^#lIt03g z!M9Z*Fvnl5Nqey++CtzqfuUj8fat;seJR$9!AV#Sj#QOs91s=_Fk6g_Nf$m-fQvYA zY}Fv9!DOnM*q^;mBV^hoY|R4ua2*3&E}Xc3hE2U#g{;7Oac!Der%UH%88Lv>@jJzO@p1D}ovcM}OApuO^yXh--~c{b0<0H*xCA!Zhf83CKiUPDln>Y7s#U92 dty;CH{sXd--7aZl2-yGt002ovPDHLkV1l?J61xBZ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_39.png b/app/src/main/res/drawable-nodpi/weather_faded_39.png new file mode 100644 index 0000000000000000000000000000000000000000..f5a1bdb39aa5e9681042c0b8acd937433e23da87 GIT binary patch literal 1860 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_40.png b/app/src/main/res/drawable-nodpi/weather_faded_40.png new file mode 100644 index 0000000000000000000000000000000000000000..45ddcdfdeee6f9ead483efbbc790f295c0db253e GIT binary patch literal 1837 zcmV+|2h#Y7P)C0001)P)t-sM{rC| zMo>aKMQ+X0N<>XhNl->XOGQ6OZN|>}?7vJyOH@)=Yr)4!NKbNWWn-+fwXBb4xxh|i zX7A#;;nlFs!J1YVSNt$^PD5>eaz=XNG&ov8v#Wj;fHP@NPAF4-fzV1|CU7 zK~#90?OKVFsyYybgoLm^a6=t+Mjvj-IOG3++{*&45KzNZy(&)Ct!odMK6an(gal3N z(4j+z4jnpl=;E`lc?8 zXB1GHlkmMD3}Nyn;CuaP`ZfWYho>2sUNns3c!-U+Gr$>SPtBAjUW6p0#Z1dN3=$O} zZu8ZGISg4J$-hY6Pk=~5(6k|VL8c()k7zno522c${1^k$s4p+t`S}cR(a3+&8VITH zh{G2BH(4%uu(kMe0zu7lWb<{;YanjT<5SdX0w`+QVcP+ytpi`;|M;zhz*Js>u+sa_ zZmos@kY<2Xcwg^!yB{S4r1JrCtGut*>)r2O0Ra-oS`mg--Wh>!6$D@)+fj;Om3MUn zrU*3B;GK7M1eQh<0>^vr3`ZpdVhI5-EQ;Xx=zgb!0C62j3d}Qs{Z9!2B>@O+8G*=^ z5cpA2g;Twn05I$@55fMsEdoOc0nN~h2aqxXb$w{xfFKNP-H;K8iwGRo4+Lte@OWy# z0miy6>4c_^!y*I^BB vNosFu`U2uN2ZK`w|tqv#@bkvgX|_kVoxRk4bYvPT!tkg zkhg)OwV|-21mM#4WEr3YbT8(cE2RWv{`V(NV3X{n39zLZU@G)%Q3xd}tjR!a0AT2_ z07zHGCem#zmWB5s5N&{bm#@qAM?pZM6X9PT0Co=K*$!t=M&SFGN>Q4D>N=$UX#(`R z<0Tpb4^sx@K?J*>U$!i(Qo_cPW`I7KbN{IBc#DRBCIK%Ad{iNuAglUuO$MO5#N2=V z{s0XDV-N@MQH9n0Se600y+Ni9_pdiO-(w6s%qTogh`bvSz5z2`ss>6jy|Sap7KXe7*_{#P0Xz1%cg}Njkv=Cfv(Jco;AOR-YSoPR%Lq z6z=sW&UXRRfsULt6G57$tJygPb6dc3emR!hh^QrS? z76gQ6)cJZgnLExZ*W)VE1z1@!dsHZTq3O}KM>(c^Ar z=L6~k=HxKoHX866=wWVr@+-g5#XEZGbR7T#M|l$MoIv_XM`JMj1BbBvJOkq5fM1z- zD2HLbdbrQafev7p<|HRD0wx0hW6^jUX%>+)0ybGEyZfC&1v?5&#&N*gWWk?5!)=--tsgD1lXR=H_p$O9s$& zN@2n5~wIRnCa(p{yq=hJTrga}HvigTDHk?e?Z8_F8$J%)dzB2JE%U zuYR6^>+)0$eO2DxxgPRI9=pX1XlPb0ZNLQ~^e|?{X{n!x1cA@$z|wUo|KAvW^sQ~b zop%~dzrMEEqr~WA+|C=epuyrE7zn-i5Ym7^qbGYNh_>D_Za6FeE&1=zp+kob9XfRA b&>H>&Xa>)9Hs;?q00000NkvXXu0mjf?%iii literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_41.png b/app/src/main/res/drawable-nodpi/weather_faded_41.png new file mode 100644 index 0000000000000000000000000000000000000000..d1ba909751453d1a0896dbbd1834817b71049ec5 GIT binary patch literal 1866 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_43.png b/app/src/main/res/drawable-nodpi/weather_faded_43.png new file mode 100644 index 0000000000000000000000000000000000000000..eef24d04cbbcede3448805d44d7a7ea00f029f70 GIT binary patch literal 1755 zcmV<11|<23P)C0001oP)t-sM{rC$ zH9i0N;6FD(R!&ji*tzcM)RBsZPCH96DlB_Yax*6|J1sd=NmRMCs7^vpNIghvWn!3P zjLOHi@apbSNK*On+LmC7|NiCq?Z8e(PxR-!LpnxROjk-lO#AiSQFn-0d;Rdjfq8k>#jtj6Z?31Fo|1{AvM5df000$qQchC<4*noP+x~2xG0#$U z?VH)bTHde|RgidQ000H!(FHh`Nl&`+}>Z`B*UjgOk=STSy0ce=IzO-hunYGk)Q-jI}1r2>U zM+n)-_I=;R4+vRHa|)DC2pGDBy-Px9jv17p1#D$|e`U#g?UZRmcY*tp?k6V?F>W2SEn_zy}~R zfj0Y)-vTlL>^99ph6unOQpjQsh@V->U(!HUEoN5yS;u7pG%NsfN(%v^ zfdS}YQ3!Az7=S({p8zqXH@1Q6=W2R^IphIOjCvOVigGo*0Ch|*vuzkBhhw4r&Fkmy z-L~UQ_of#pBG3uI^{{_^T@$}AfD>S;Y9l~V1*8=x`$M7qG3rHtyqmhk3W7!eTW1d= zoWPz^@Y`<(O7ePNp3s|fNpMHf!3dy#j06q`-};QJ3@ zNqZVo1o7p}spWZq>)v^IZY6;0KOEtn@F(mV?Be1pQ{=Z1_E&>~pag)g-`T1n0`CQ& z%(w%YG^4165cbD@F9IGQz5Zak6=hH)zzt>bj_FAa3WCh=Nx%VQ*Pluq-~7rNC`CZ+ z$V0>5AoIf_1S|l#{_OjS%hi+*E9TNTW_r@G_U~~_2uKDD!0Y<4e^}~l7N{J{(gdDe zxn74b95Wfv0QB{Ts8j>Yn>Oa{Dc6(g^|*%)l>r67Tz}c0d*93~0@aSruIu{gAMqEK z7afZXd>Wwk`l-{fya-fJx z+(ZQ_!AT_4a5B>wY?J(PoCLN0qWcCZfv5!?!n;?0EcitR0ryztFMQXI37E0yH69&) zU9W8hoW%Z>cd<>T1r_trHHo~sbzthC*}vwK)lDF7IKloAag(;oor)+d6R3&nu}^dB z{lQ{18VUQ&@sRu?x|_R*I~U#in3SFB5ES(ox%}zr^6yPqX;|j$B2;{iP_`j60Pi;D zbQ}}gFd<l9#RXM9rZ;ccur6#&_Plm)N~u6w~(fL~`NPGGC1quxa9-vi((YD|Y~3cwZNi$`5d7SFcG zSE18A0a07Z5`Yt4&pzNd#9tkip40UcbuAQ@K&X)&OKVe(Jy`Hh>iTmPKocu{9l&bi z2uqTCmeLiVN~I@mDo(?N@(~sO0r%)EKJmkrg}+J;gl#dce;|Xx-`Py^nQ%NAy(ZPc zGobuOFmFM@R-2BT4`o36Yq&vX0D%Uy4`smk1Kc3<4yY*w!Jrv%{xrZxGT{9w0GeR1 z-B|Lc0X~rdSdgjU>CXUA1c5UdD1w~e<5%&$LG0(@4h>=Tne1<1zl xzXO0h=Wl5OJ?C$U1pVgkufF=~tFQh@{{R}Xp2P^G=W74}002ovPDHLkV1iKRK{@~c literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_44.png b/app/src/main/res/drawable-nodpi/weather_faded_44.png new file mode 100644 index 0000000000000000000000000000000000000000..6759bccca77739d7ea6767aaa71b82cf47d8d449 GIT binary patch literal 1236 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_47.png b/app/src/main/res/drawable-nodpi/weather_faded_47.png new file mode 100644 index 0000000000000000000000000000000000000000..f5a1bdb39aa5e9681042c0b8acd937433e23da87 GIT binary patch literal 1860 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_na.png b/app/src/main/res/drawable-nodpi/weather_faded_na.png new file mode 100644 index 0000000000000000000000000000000000000000..42fc5ec60d29b8b91efe78007f3c7491f65ebfea GIT binary patch literal 1815 zcmV+y2k7{TP)C00024P)t-sM{rD2 zNmL~uARQ1AM;|377aKVtBUw35kz9mEGbvIqF_kzzC>IuHG(bZvJ;9(`l0-*zJ3;o% zbJI{-Pef0sLP>{Jd7NX9c1vlXZ1{75$Gl$(cV|lM5!*000Huw!e^c2(0)q*p;}BjU|zYq2j>udd0w9DZ0^yPI%Nr_J`{kdMAK!DkyWf@==cYEUab5(~xDLe;hMZl2JS^Rn#u&VLL z?G!*3-ADqP6|FPE1l=VIoyjrO+5x+n1}C@90AoBipcX|BK!dhbxPryQm$TZ|%O(<= zfj<8*|HvZLc1;P_ro_6;7d>t4El_YYTsNB-_5!58-v$la4EmF>h~uOmOl_kQhGNRZ zXF}9(>X><8&S;G1w-hkk0Ae5is^G{jP6D?w%sHKm!D)3*PcepU4ss(rqSMJ`>>`WF zwA4K;+rg-_!wuGhFw9~dODV`$g<)VnXdkCRx_A~Fa&DSK4%eA-Ph@uks&x-zDp${< z2c}LczQzVMgET#1IBma?RiO7nId|W@)gTaY`;ukY?^Xmn6>DSa>hH8C#9S(EatzH5 zonQrFn%oa(MX6Q7X=ev(BIFPIwd{?MEuRlMVla^NO>4IkW>~?X6Dx}KA1Af;vs49> zr=b%K3=#icSKE_gH$K3Dh=0+W*?u^nItSYdFXK?jpk;hC74a+SXD#0MynQU;c{AUw zc6`a8=6U$0l2_tm-S?s>j`sz`?83|`%cKkMv^rRl3AlMu+|IE(i{kx1mtZ73zZA_4 zxe;45B*YC+R1w);6lW3Hx&cfJc_oVdqFB?gWfFJ-iasKKw3n-m_AK$=0RC(SDG@g! zuMiLSkC4E|-9V1d9nO}|R~kn%-!ANj*rG1;g{0u;11MjC)0BY7Vb%bU!$W}1^s?*_ zaU_LkW|WgKX()jO0^|umLjHa1-|{tfg+h^+Jz+pChGsJY+yPk?vG`(n@3llrkc@K% zW?0VR9Y8@z04J&@_&RG3iX@&{nFNgsftCcYMSSPOq8{)xM1J}pxS&}>Hu*?75ApU8 zzs`>bn_<{-> zprVrZ6L1UTFsK@Pr8w4dv_1%Y-z~~-{{K$08| zqvBl*8H;BkDDF4f6A`z-Knk!2Ul&E*Wzi)LhectL6xu;50XKnuF9E3EbQ=K&?DO8D zp@j^e@C-;Qhh4$yew@32_oBO-Aw6biO5Ott0j=OA%~Tv=v@* z5e}p5De!G9+94G5+mCw*m^lHSfvg7^YaVJ*J%WnM%k+1`a#y8s29*Ei01AVHP`sGaCrR|LdN znyA5&1B&JbcF9iWARpE#0lvt**4))<g@Gll$ z{6*4!VK42^CZM0?vZWZS&nCcvp3@z2@FK{3I)U_UiuFqoPy`eKMc@$xj&E=L4IR>7 zUti;#z<)`?39ua~?Sw{7K;Gp9(qYCM!`%c1&reU!;#mI#ke8pH87zMP`8hqRWA^$9 z74MdYVgBm=PmIykm(6DQx_^#SP*6}%P*6}%P*C{&@jnCwU%U#$D>eWC002ovPDHLk FV1kNWQ}6%) literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_refresh.png b/app/src/main/res/drawable-nodpi/weather_faded_refresh.png new file mode 100644 index 0000000000000000000000000000000000000000..42fc5ec60d29b8b91efe78007f3c7491f65ebfea GIT binary patch literal 1815 zcmV+y2k7{TP)C00024P)t-sM{rD2 zNmL~uARQ1AM;|377aKVtBUw35kz9mEGbvIqF_kzzC>IuHG(bZvJ;9(`l0-*zJ3;o% zbJI{-Pef0sLP>{Jd7NX9c1vlXZ1{75$Gl$(cV|lM5!*000Huw!e^c2(0)q*p;}BjU|zYq2j>udd0w9DZ0^yPI%Nr_J`{kdMAK!DkyWf@==cYEUab5(~xDLe;hMZl2JS^Rn#u&VLL z?G!*3-ADqP6|FPE1l=VIoyjrO+5x+n1}C@90AoBipcX|BK!dhbxPryQm$TZ|%O(<= zfj<8*|HvZLc1;P_ro_6;7d>t4El_YYTsNB-_5!58-v$la4EmF>h~uOmOl_kQhGNRZ zXF}9(>X><8&S;G1w-hkk0Ae5is^G{jP6D?w%sHKm!D)3*PcepU4ss(rqSMJ`>>`WF zwA4K;+rg-_!wuGhFw9~dODV`$g<)VnXdkCRx_A~Fa&DSK4%eA-Ph@uks&x-zDp${< z2c}LczQzVMgET#1IBma?RiO7nId|W@)gTaY`;ukY?^Xmn6>DSa>hH8C#9S(EatzH5 zonQrFn%oa(MX6Q7X=ev(BIFPIwd{?MEuRlMVla^NO>4IkW>~?X6Dx}KA1Af;vs49> zr=b%K3=#icSKE_gH$K3Dh=0+W*?u^nItSYdFXK?jpk;hC74a+SXD#0MynQU;c{AUw zc6`a8=6U$0l2_tm-S?s>j`sz`?83|`%cKkMv^rRl3AlMu+|IE(i{kx1mtZ73zZA_4 zxe;45B*YC+R1w);6lW3Hx&cfJc_oVdqFB?gWfFJ-iasKKw3n-m_AK$=0RC(SDG@g! zuMiLSkC4E|-9V1d9nO}|R~kn%-!ANj*rG1;g{0u;11MjC)0BY7Vb%bU!$W}1^s?*_ zaU_LkW|WgKX()jO0^|umLjHa1-|{tfg+h^+Jz+pChGsJY+yPk?vG`(n@3llrkc@K% zW?0VR9Y8@z04J&@_&RG3iX@&{nFNgsftCcYMSSPOq8{)xM1J}pxS&}>Hu*?75ApU8 zzs`>bn_<{-> zprVrZ6L1UTFsK@Pr8w4dv_1%Y-z~~-{{K$08| zqvBl*8H;BkDDF4f6A`z-Knk!2Ul&E*Wzi)LhectL6xu;50XKnuF9E3EbQ=K&?DO8D zp@j^e@C-;Qhh4$yew@32_oBO-Aw6biO5Ott0j=OA%~Tv=v@* z5e}p5De!G9+94G5+mCw*m^lHSfvg7^YaVJ*J%WnM%k+1`a#y8s29*Ei01AVHP`sGaCrR|LdN znyA5&1B&JbcF9iWARpE#0lvt**4))<g@Gll$ z{6*4!VK42^CZM0?vZWZS&nCcvp3@z2@FK{3I)U_UiuFqoPy`eKMc@$xj&E=L4IR>7 zUti;#z<)`?39ua~?Sw{7K;Gp9(qYCM!`%c1&reU!;#mI#ke8pH87zMP`8hqRWA^$9 z74MdYVgBm=PmIykm(6DQx_^#SP*6}%P*6}%P*C{&@jnCwU%U#$D>eWC002ovPDHLk FV1kNWQ}6%) literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_0.png b/app/src/main/res/drawable-nodpi/weather_gs6_0.png new file mode 100644 index 0000000000000000000000000000000000000000..3f9aaed90d947bfff165251aeda506aab67a9355 GIT binary patch literal 1886 zcmV-k2ch_hP)C0001fP)t-sM{rCG z3=9ei3IzoP1qB5G0Rj2>`2hg|kB^TK5D*Lu3|CiI1_lN}K|!dfsNvz^2L}h7oSZ;F zKyh(#&CSiQu&|Vrl=SrUxVX61*4BQ0eoRbEcXxMiaB%wi`v3p`@$vEO?Cj^~=l1sY z;^N}i*x1q0(f$4X-QC^9#KcxGP9FdO03LKwPE!CPGYte;{zab@n8A2b=IU+Sy=BR# zeCEL3y^NnhBohkG000JYNkl291)D%R zFWk}bj{X+&)I;lea0j<`xP0jT5g-l`acm;^VHL z0)6iP2ZJ^IBOYal$fCJ3#U3PjuSUH6y- z0}x{}P70)uL=`WX;qmCYzB4EzYRGifVlz_9gy8dtZrygXUi~ev<;r#F9Z&OUtmASL>QLNcSfcupUf`T22&oBFf-N zL?D~K0(g)LNftFb7XEnOyDG_k{OezlLs_lY8Sv8O(rZ5tCIjCe+dWgz(=XV^Dea@F zBI{saKCjlj$@IUf9h7UKrGfio{Z0G++!9vntQ`kWs`UZI#{egkO&7z zR_m;*dtY=45KIqIs6` zHzt5aHqzhY0aQTvpsfKk_r=9~1Q6{)(!rp)4)iyL05V8B8Gx%bw*kd3EN7+a1c0{- zfFbCsSDj+!AjDsv1DrAfW65 zI1_3aE9IEM%BZL@C^cvjAOi?s;Yh62L3MOeWJS@|py>kQs(KZ+B53J$qsBlGKng`& zgS-)hwx>!U--!l8qi3Zs$b&2u1gZ?U0*CsJtpBJIz-74SWu;~*c?~CsfK$hMa6n6%&YgQ!sc|d-J4ga_m$O&){bTA0>b8~v9Q{{z-LEv%%YqdxnfXo`*jA0IN5d$Y&5!EDPe1ggJb!2B*s>41`N)$bAW6Ussv(l`|=tN zV&QJ*LC{C z$AtNFNP`b>`F;J~6}WkUg~#Q}lKEe^skJ&C%l8~UFW?`G)4TZ_iwqAllCRUsptdyr zbS(Ic)$(*qa(D${fx1_+j!3>p>GZuaEX6A(oWgeXd0r03_Y+|H;^vi?pKkNo`xR_E zpIR2CuVKe$x~|zanF_Y1zvp7hjQ2ucFUG^ajBvgOQ{eS0MY!co08EbVt4EioFd7X( z;l;yK&G;OT^A}E2o{h(4E+E!;7~3VDVZC^UuWO@Wv-idp9tKK|D`lX$G}(DQ86TTi z>4~j`z-iZmFPxg@&#!FZ{0#|iN8KhO)^>$I-T$zo-Ejt;TaM;{;t*9 zo-oyP9)}VTmyLJE*qe>L&8kg}19VED(~$QG6Lg~zdITqSol#(6Ij~#Fy0P)l*4T}9 z-I${1^KG8-UeM3)Wmll%R%8+T4=QpDgU+@Kn+xqv8UnFf{MXjwKD(JQW5$dbGiD6L YKi3=s7?7TkMF0Q*07*qoM6N<$f}mJ*UjP6A literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_1.png b/app/src/main/res/drawable-nodpi/weather_gs6_1.png new file mode 100644 index 0000000000000000000000000000000000000000..3f9aaed90d947bfff165251aeda506aab67a9355 GIT binary patch literal 1886 zcmV-k2ch_hP)C0001fP)t-sM{rCG z3=9ei3IzoP1qB5G0Rj2>`2hg|kB^TK5D*Lu3|CiI1_lN}K|!dfsNvz^2L}h7oSZ;F zKyh(#&CSiQu&|Vrl=SrUxVX61*4BQ0eoRbEcXxMiaB%wi`v3p`@$vEO?Cj^~=l1sY z;^N}i*x1q0(f$4X-QC^9#KcxGP9FdO03LKwPE!CPGYte;{zab@n8A2b=IU+Sy=BR# zeCEL3y^NnhBohkG000JYNkl291)D%R zFWk}bj{X+&)I;lea0j<`xP0jT5g-l`acm;^VHL z0)6iP2ZJ^IBOYal$fCJ3#U3PjuSUH6y- z0}x{}P70)uL=`WX;qmCYzB4EzYRGifVlz_9gy8dtZrygXUi~ev<;r#F9Z&OUtmASL>QLNcSfcupUf`T22&oBFf-N zL?D~K0(g)LNftFb7XEnOyDG_k{OezlLs_lY8Sv8O(rZ5tCIjCe+dWgz(=XV^Dea@F zBI{saKCjlj$@IUf9h7UKrGfio{Z0G++!9vntQ`kWs`UZI#{egkO&7z zR_m;*dtY=45KIqIs6` zHzt5aHqzhY0aQTvpsfKk_r=9~1Q6{)(!rp)4)iyL05V8B8Gx%bw*kd3EN7+a1c0{- zfFbCsSDj+!AjDsv1DrAfW65 zI1_3aE9IEM%BZL@C^cvjAOi?s;Yh62L3MOeWJS@|py>kQs(KZ+B53J$qsBlGKng`& zgS-)hwx>!U--!l8qi3Zs$b&2u1gZ?U0*CsJtpBJIz-74SWu;~*c?~CsfK$hMa6n6%&YgQ!sc|d-J4ga_m$O&){bTA0>b8~v9Q{{z-LEv%%YqdxnfXo`*jA0IN5d$Y&5!EDPe1ggJb!2B*s>41`N)$bAW6Ussv(l`|=tN zV&QJ*LC{C z$AtNFNP`b>`F;J~6}WkUg~#Q}lKEe^skJ&C%l8~UFW?`G)4TZ_iwqAllCRUsptdyr zbS(Ic)$(*qa(D${fx1_+j!3>p>GZuaEX6A(oWgeXd0r03_Y+|H;^vi?pKkNo`xR_E zpIR2CuVKe$x~|zanF_Y1zvp7hjQ2ucFUG^ajBvgOQ{eS0MY!co08EbVt4EioFd7X( z;l;yK&G;OT^A}E2o{h(4E+E!;7~3VDVZC^UuWO@Wv-idp9tKK|D`lX$G}(DQ86TTi z>4~j`z-iZmFPxg@&#!FZ{0#|iN8KhO)^>$I-T$zo-Ejt;TaM;{;t*9 zo-oyP9)}VTmyLJE*qe>L&8kg}19VED(~$QG6Lg~zdITqSol#(6Ij~#Fy0P)l*4T}9 z-I${1^KG8-UeM3)Wmll%R%8+T4=QpDgU+@Kn+xqv8UnFf{MXjwKD(JQW5$dbGiD6L YKi3=s7?7TkMF0Q*07*qoM6N<$f}mJ*UjP6A literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_10.png b/app/src/main/res/drawable-nodpi/weather_gs6_10.png new file mode 100644 index 0000000000000000000000000000000000000000..16da4cf006b9d324e7c233eb564cf1c093673229 GIT binary patch literal 1516 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 YKi3=s7?7TkMF0Q*07*qoM6N<$f}mJ*UjP6A literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_2.png b/app/src/main/res/drawable-nodpi/weather_gs6_2.png new file mode 100644 index 0000000000000000000000000000000000000000..3f9aaed90d947bfff165251aeda506aab67a9355 GIT binary patch literal 1886 zcmV-k2ch_hP)C0001fP)t-sM{rCG z3=9ei3IzoP1qB5G0Rj2>`2hg|kB^TK5D*Lu3|CiI1_lN}K|!dfsNvz^2L}h7oSZ;F zKyh(#&CSiQu&|Vrl=SrUxVX61*4BQ0eoRbEcXxMiaB%wi`v3p`@$vEO?Cj^~=l1sY z;^N}i*x1q0(f$4X-QC^9#KcxGP9FdO03LKwPE!CPGYte;{zab@n8A2b=IU+Sy=BR# zeCEL3y^NnhBohkG000JYNkl291)D%R zFWk}bj{X+&)I;lea0j<`xP0jT5g-l`acm;^VHL z0)6iP2ZJ^IBOYal$fCJ3#U3PjuSUH6y- z0}x{}P70)uL=`WX;qmCYzB4EzYRGifVlz_9gy8dtZrygXUi~ev<;r#F9Z&OUtmASL>QLNcSfcupUf`T22&oBFf-N zL?D~K0(g)LNftFb7XEnOyDG_k{OezlLs_lY8Sv8O(rZ5tCIjCe+dWgz(=XV^Dea@F zBI{saKCjlj$@IUf9h7UKrGfio{Z0G++!9vntQ`kWs`UZI#{egkO&7z zR_m;*dtY=45KIqIs6` zHzt5aHqzhY0aQTvpsfKk_r=9~1Q6{)(!rp)4)iyL05V8B8Gx%bw*kd3EN7+a1c0{- zfFbCsSDj+!AjDsv1DrAfW65 zI1_3aE9IEM%BZL@C^cvjAOi?s;Yh62L3MOeWJS@|py>kQs(KZ+B53J$qsBlGKng`& zgS-)hwx>!U--!l8qi3Zs$b&2u1gZ?U0*CsJtpBJIz-74SWu;~*c?~CsfK$hMa6n6%&YgQ!sc|d-J4ga_m$O&){bTA0>b8~v9Q{{z-LEv%%YqdxnfXo`*jA0IN5d$Y&5!EDPe1ggJb!2B*s>41`N)$bAW6Ussv(l`|=tN zV&QJ*LC{C z$AtNFNP`b>`F;J~6}WkUg~#Q}lKEe^skJ&C%l8~UFW?`G)4TZ_iwqAllCRUsptdyr zbS(Ic)$(*qa(D${fx1_+j!3>p>GZuaEX6A(oWgeXd0r03_Y+|H;^vi?pKkNo`xR_E zpIR2CuVKe$x~|zanF_Y1zvp7hjQ2ucFUG^ajBvgOQ{eS0MY!co08EbVt4EioFd7X( z;l;yK&G;OT^A}E2o{h(4E+E!;7~3VDVZC^UuWO@Wv-idp9tKK|D`lX$G}(DQ86TTi z>4~j`z-iZmFPxg@&#!FZ{0#|iN8KhO)^>$I-T$zo-Ejt;TaM;{;t*9 zo-oyP9)}VTmyLJE*qe>L&8kg}19VED(~$QG6Lg~zdITqSol#(6Ij~#Fy0P)l*4T}9 z-I${1^KG8-UeM3)Wmll%R%8+T4=QpDgU+@Kn+xqv8UnFf{MXjwKD(JQW5$dbGiD6L YKi3=s7?7TkMF0Q*07*qoM6N<$f}mJ*UjP6A literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_20.png b/app/src/main/res/drawable-nodpi/weather_gs6_20.png new file mode 100644 index 0000000000000000000000000000000000000000..0516f020be3ab1003e5b97f1330bba91dbde9571 GIT binary patch literal 1254 zcmVC0000>P)t-sM{rCH z4GjSS0RaI46%`d48XCB`xKmS8uCA_xgoG3n6zb~g&d$z+goM}E*ZTVU|NsB%>+A6F z@b&fe`T6n&U`bhe$`B^r?oe_p&pN@sHmu@ zsHmu@sHmu@sQ*j}!nqROygt8-9zli6;#E_|Sp6!>g#qPdQ;UHyS~q1Li~*GmSgK3y zl^0Y#A@7%Ik%zHo%4Sh7pLQk6B~_Jvb9CQ25!#>6I^o!0TuV`Cj?>7NV-C&rgb&{_vE(Jw7w9q1>xJYuI4Wf{$w|) zcKu9Ne)IPwH^JvwIrr%Q3xS+IdO!J31ad@h5*%C`)ds{XfVw?US05bQp9-J(8>h~m z*53rhK>>UNs3I^2fx8F|c#VH17+e{+BES#?Ku?N00#^k7J3u>i+i6`BIHvWld+=Wg z%%r#_*e`?}0s-u&bw#k>F_j@YfSAjnlc3zSKo9_VM8LO`YOiOMO%tFdPy)_ry_a)Z zV>bbQ1q9H;GPMcdWiLd`gC-z$I~L$OfH3|hfnm2__(Om}l|XDe5k|c2flvT~>j*Y| zu9T_ z;8PVefyton(#@qf4b+7&W@gX4ZUjo*vr zM3X_ssx3f*L#zWJhQJGw$uh^bg){9S{k3XTBOfsFSqki$SWj^ok=a|o^g zR0O^k0;nZ0>W2jYS>@UqCAeaK@5#V*0NV()7b^x&KX zrB9CplmDpwm$lFx`^zGvPv)l&9#K(IQBhG*QBhG*QBlYG2MDf(DDYD< Q&;S4c07*qoM6N<$fC0002wP)t-sM{rC8 z1OfvB0t5pC1qA~h9v}1a^A8RR2?+-L{Qd6j?hXwM1_lHS3=8=9`DbBCTv$o}@o7s& zBS}R(-^*I*>FK$vLaM8+hK7gH(b0QxIN;#m!NI|rj5zS-V3CoLrkO(Q+*!W9y_<k<|NPbg_|yU7;^Xzw0{{PS)zsGK=jzbV(f;LP-Q3;S z+S|;`&F{?u$H&Ou;NkktoJ`QA#w!Nj(=yz|fk=*R=6sHx!5fdA-C&#w&p-#7T! zC)>FK(#e$5#cSu^y3)ToH^iH-0000gbW%=J00T%K3!eQb7XJHIIA{EHQ~i@Y)!U?{ zeZ!Nd?}GpU2RlhbK~#90?V5R4+DsJ2$?|3=fPg@?TDRIx z4cTKzB8n&#{r=zQy^|1@kVue3&*|Z@=k$+KpWocMbLY+smC9aw?X}ll|DtHD$`|Up z*)nUDFVqj!S1&4GCW8K;XOxpngbf1<*X?Dn+WFUT4!fxt;37v9D=L)ei{BT!I>DhfX%}bC_=vP zH+=Z}>>?_B1S{24zYPD7K>T?iQQ=^zLohc@FL;I@&odip;{yK!!I5OG9RDZ=vtL~U zLo=BCi8ToT;f%!}qDWC#K+AuvF{!j@5|D=E&kmw3%O}%ENdCVhWV7tNCoAmn`1nRGy{p)R% zCcdpOx@B9&V*vhh`vgH?s#iM>zk{+QJBDIG0KDL44v>t&#PfFx0e6J5#oLZ;OrIeE z7c-EI0W5`G@{nqycV)Z7Y4H4~f8WoHfw_6Vd}sU{{1MVdlVEZW{{4PN9t8f`hudMI zhc@cvEx5T&5Uf_jMnn22!0BdxBu^jiV}MkGiK#{x7R0i0`PWe%y}sQ(!~m%T=IoqM zKWWACa^0cON4Wsd^zZHMdjzKXJ^Xz&+$%)NcZYJ7&mRd-54RX0D-XO7fB*n9R<6?{ zmoor31R+6I3}ygyO&sL$A@}i`e++~=@TY+ zhzim&K;QFEM0)!Oz?x}q1Mu>Mh35enmH_(DjvQ=jPdB^AZGqvp0pMlk_4V-$Gt8#} z>~Fw-dR=3;v2S)5^kE6WfWr{a!q^;7N4Bo_uJUFl-dg_jqfXc;@(VG;}qE zM|w980@p#ii+_FkiGg^CjY@)V56!E`hlLI7;Vetgt<$m-s^&1n}EsF$bd=rZ!x6z%ajc+_Q?M@Q6W zj6c-y@)GQ0f6oL0o|jQCGZpKoU=1&^zoA(G5SS4G#Nar?pW0#Zr%N6U?_9$kD3+zY zED?0m0gh4OQljxI1Ixa98OH>OXFp{Euryb*1_MR0G-H_{Z4&66>tAXJoB;+H3^c2?E2cFN7K@NwyY+V1Q%b+zlN|7Z|8Ui4KJ*Vh>D}0&@@&Shi*uhGW;)DbF4ObmcyU>KS!`For0HRy~+p=)AalBT&$JvMr@0vXuQ$7#cVN5y7k?LIhAPd0_!_Q0TENmNPW) z790^+aZN_&(%Ov)grJ1BSQ$D_NMJ7!3vG|3ArI#w43LNcx=wq>CM2@( zNpS9rFakheEC|p!nR;c$k>V*TRK^heV}dvaHvhYteoKufp-=*CJv25MV~24FvnTN^W|kfZj-~R%^W-CW2R7u*c?3>VYV5E5X?(g%<>w~ID=KCI7h=3WY{}m>9 zq9WmqDCcD{LC_p4k)%j&t?d88QruQA7Qnz!g^A;6`XetkMX6HQHyHQYYp=cb+H0@9 c_WC#VKPUlqzPIIBHUIzs07*qoM6N<$f*6AoMgRZ+ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_22.png b/app/src/main/res/drawable-nodpi/weather_gs6_22.png new file mode 100644 index 0000000000000000000000000000000000000000..89d1624a70324eb19b822f0570c504c47d9a49bc GIT binary patch literal 1459 zcmV;k1x)&hP)C00015P)t-sM{rE@ z^YaD<2I%PM4Gj$o3kw1Q0tW{NqN1V$0|SeTivR!sQBhF~3k%`l;X*<}v$L~qZf?=h z(Vd;0`uh6+|Nrdl?DzNg+1c6Q;ork_3(1leQN$vmu1oTNnK~#90?V9VdbUF}*ha?PU9MdEY_kWwaF^0h! zK{C6(D)0IZRer2~yxr+^aJyZ)bm`KiOP4O~6lD>L(b;9YyBtybW>z%G;!at@rs1Ra z<;Wlc%~B4d(yV8&lb8V1!(|dDj*;*z#uyw`@S?!~+K6#^;6ISkpTz$l zn0SCDSnMb9dxCsPz`@ewK?XJF8w9c^nA8FO1)`-6qVM1&Ed6w*@Ei7lAb) zIBfytiU74G2wCyqtObc;{I&{YPL>`3Ikzvx>Hu9179IdZXX4XR830$JBxLEqxg12G z48U<6ObFf{oNGqORu`UHAU+5N4*O8p5yD$Sh6qR|&eV`n4}mYe(xu7<$C;>wNvuS-Gm=^&x1%Op3k4Hbvkv_bn{dIplF&mff&01_#Qp` zW;aj(=WE=04bY?8*Js@v032y)$Yfn@8Ez>CC2c* z2N+%E^8Ro=wq1XYO#{z;_^GVnh)Rj~JZ(Fz5b1&81I15FIt2Im(5L6q^_0VRHc-j} zFYt6J2pHYD_#MZ#sXp0ezH3>*zAb+)9arLO($TL7V$h_6?=JDQq)Gl!fHK#j(m%Eo zZ11T_-m$m04h=Nv-~`k*Lp^e?Zgf(IQ=!Xwnudpz>iVP*-(?&djx>Eu=dgnfu-5fK zA-f-wuM2<%?jZ%bKI*h7J0yLdSvyB{`(JhS-%FP+UAlDX(xrby{{ijD1JQ~*6^{S_ N002ovPDHLkV1o9$wC0001fP)t-sM{rCG z3=9ei3IzoP1qB5G0Rj2>`2hg|kB^TK5D*Lu3|CiI1_lN}K|!dfsNvz^2L}h7oSZ;F zKyh(#&CSiQu&|Vrl=SrUxVX61*4BQ0eoRbEcXxMiaB%wi`v3p`@$vEO?Cj^~=l1sY z;^N}i*x1q0(f$4X-QC^9#KcxGP9FdO03LKwPE!CPGYte;{zab@n8A2b=IU+Sy=BR# zeCEL3y^NnhBohkG000JYNkl291)D%R zFWk}bj{X+&)I;lea0j<`xP0jT5g-l`acm;^VHL z0)6iP2ZJ^IBOYal$fCJ3#U3PjuSUH6y- z0}x{}P70)uL=`WX;qmCYzB4EzYRGifVlz_9gy8dtZrygXUi~ev<;r#F9Z&OUtmASL>QLNcSfcupUf`T22&oBFf-N zL?D~K0(g)LNftFb7XEnOyDG_k{OezlLs_lY8Sv8O(rZ5tCIjCe+dWgz(=XV^Dea@F zBI{saKCjlj$@IUf9h7UKrGfio{Z0G++!9vntQ`kWs`UZI#{egkO&7z zR_m;*dtY=45KIqIs6` zHzt5aHqzhY0aQTvpsfKk_r=9~1Q6{)(!rp)4)iyL05V8B8Gx%bw*kd3EN7+a1c0{- zfFbCsSDj+!AjDsv1DrAfW65 zI1_3aE9IEM%BZL@C^cvjAOi?s;Yh62L3MOeWJS@|py>kQs(KZ+B53J$qsBlGKng`& zgS-)hwx>!U--!l8qi3Zs$b&2u1gZ?U0*CsJtpBJIz-74SWu;~*c?~CsfK$hMa6n6%&YgQ!sc|d-J4ga_m$O&){bTA0>b8~v9Q{{z-LEv%%YqdxnfXo`*jA0IN5d$Y&5!EDPe1ggJb!2B*s>41`N)$bAW6Ussv(l`|=tN zV&QJ*LC{C z$AtNFNP`b>`F;J~6}WkUg~#Q}lKEe^skJ&C%l8~UFW?`G)4TZ_iwqAllCRUsptdyr zbS(Ic)$(*qa(D${fx1_+j!3>p>GZuaEX6A(oWgeXd0r03_Y+|H;^vi?pKkNo`xR_E zpIR2CuVKe$x~|zanF_Y1zvp7hjQ2ucFUG^ajBvgOQ{eS0MY!co08EbVt4EioFd7X( z;l;yK&G;OT^A}E2o{h(4E+E!;7~3VDVZC^UuWO@Wv-idp9tKK|D`lX$G}(DQ86TTi z>4~j`z-iZmFPxg@&#!FZ{0#|iN8KhO)^>$I-T$zo-Ejt;TaM;{;t*9 zo-oyP9)}VTmyLJE*qe>L&8kg}19VED(~$QG6Lg~zdITqSol#(6Ij~#Fy0P)l*4T}9 z-I${1^KG8-UeM3)Wmll%R%8+T4=QpDgU+@Kn+xqv8UnFf{MXjwKD(JQW5$dbGiD6L YKi3=s7?7TkMF0Q*07*qoM6N<$f}mJ*UjP6A literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_24.png b/app/src/main/res/drawable-nodpi/weather_gs6_24.png new file mode 100644 index 0000000000000000000000000000000000000000..3f9aaed90d947bfff165251aeda506aab67a9355 GIT binary patch literal 1886 zcmV-k2ch_hP)C0001fP)t-sM{rCG z3=9ei3IzoP1qB5G0Rj2>`2hg|kB^TK5D*Lu3|CiI1_lN}K|!dfsNvz^2L}h7oSZ;F zKyh(#&CSiQu&|Vrl=SrUxVX61*4BQ0eoRbEcXxMiaB%wi`v3p`@$vEO?Cj^~=l1sY z;^N}i*x1q0(f$4X-QC^9#KcxGP9FdO03LKwPE!CPGYte;{zab@n8A2b=IU+Sy=BR# zeCEL3y^NnhBohkG000JYNkl291)D%R zFWk}bj{X+&)I;lea0j<`xP0jT5g-l`acm;^VHL z0)6iP2ZJ^IBOYal$fCJ3#U3PjuSUH6y- z0}x{}P70)uL=`WX;qmCYzB4EzYRGifVlz_9gy8dtZrygXUi~ev<;r#F9Z&OUtmASL>QLNcSfcupUf`T22&oBFf-N zL?D~K0(g)LNftFb7XEnOyDG_k{OezlLs_lY8Sv8O(rZ5tCIjCe+dWgz(=XV^Dea@F zBI{saKCjlj$@IUf9h7UKrGfio{Z0G++!9vntQ`kWs`UZI#{egkO&7z zR_m;*dtY=45KIqIs6` zHzt5aHqzhY0aQTvpsfKk_r=9~1Q6{)(!rp)4)iyL05V8B8Gx%bw*kd3EN7+a1c0{- zfFbCsSDj+!AjDsv1DrAfW65 zI1_3aE9IEM%BZL@C^cvjAOi?s;Yh62L3MOeWJS@|py>kQs(KZ+B53J$qsBlGKng`& zgS-)hwx>!U--!l8qi3Zs$b&2u1gZ?U0*CsJtpBJIz-74SWu;~*c?~CsfK$hMa6n6%&YgQ!sc|d-J4ga_m$O&){bTA0>b8~v9Q{{z-LEv%%YqdxnfXo`*jA0IN5d$Y&5!EDPe1ggJb!2B*s>41`N)$bAW6Ussv(l`|=tN zV&QJ*LC{C z$AtNFNP`b>`F;J~6}WkUg~#Q}lKEe^skJ&C%l8~UFW?`G)4TZ_iwqAllCRUsptdyr zbS(Ic)$(*qa(D${fx1_+j!3>p>GZuaEX6A(oWgeXd0r03_Y+|H;^vi?pKkNo`xR_E zpIR2CuVKe$x~|zanF_Y1zvp7hjQ2ucFUG^ajBvgOQ{eS0MY!co08EbVt4EioFd7X( z;l;yK&G;OT^A}E2o{h(4E+E!;7~3VDVZC^UuWO@Wv-idp9tKK|D`lX$G}(DQ86TTi z>4~j`z-iZmFPxg@&#!FZ{0#|iN8KhO)^>$I-T$zo-Ejt;TaM;{;t*9 zo-oyP9)}VTmyLJE*qe>L&8kg}19VED(~$QG6Lg~zdITqSol#(6Ij~#Fy0P)l*4T}9 z-I${1^KG8-UeM3)Wmll%R%8+T4=QpDgU+@Kn+xqv8UnFf{MXjwKD(JQW5$dbGiD6L YKi3=s7?7TkMF0Q*07*qoM6N<$f}mJ*UjP6A literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_25.png b/app/src/main/res/drawable-nodpi/weather_gs6_25.png new file mode 100644 index 0000000000000000000000000000000000000000..cfa73747dddc5441af10a6af161bdec60c9068f3 GIT binary patch literal 2287 zcmVC0001!P)t-sM{rC8 z1O$qTiuU*S3=9kg1_lle4iOO%5D*X#4-XCw4iXX)+uPgn^704>2%esv($doC=;+bW z(YLp^baZreb#*^KKfb=csi~=OaBw<0I#pFwqobp1Yio#zh)YXL%gf7!g@yY1`v3p` z18(K{`T70*{rmg;<>lo7SmFR@-epT(1O|7sH~WiRdrjuI;x#8^8f$`=}AOERCt{2T8na` zN)QE+w+P0)KB7jKmO)KS_W!@`cK6I6AexBWwd$6qwzg`MS^Ch^@5V5mc;bmCo_OMk z{{{L>NCM*l*gz%;q>pjM6$nir1Uc0RQ~= zE094D7JjU#3_48--x1ho1=xKjl4rYh#p?tD%z_#JYT}vwIh$h!S^uvQaMAKIy7yja z8m>Q3cG#sWUMH}m5Rj%~Rd4I2b`mttze1Vn`ZzclK7BBb1C zATK~9K3Ulq(k2L4^niY|ll(|opga(%|L__q z`(OuYPvFI|eS$MMIiKO89hPjIBzU?y>hW>kRvd+NkoH#)ja}D6gbNjNfLzg23Xv8- zZ@5$n7&v`8ZiIpf3F#pB*g(GKAL^IptfMlJw(>E{t6Kb+jR30_|Mp_3W`tAu#KQUD zZHbZSG0t;+TDWR#_C05>Oriv(K9r^caOztRzblS@2?0H%>v7FZ_`Rcotj){u$H zS#BKeB_Q&DD!A&1Fsqzhgu(p;0EWIp@a3Nvt{L4zo|W+J){~oRUr?Htc>VaQ1{Rgs ziW_u7pwbxy*9lCFZcrgmose9=f_3)?Sj_*eq%XBHh1Xg{{OSdiq|_cF^TVPtkfAfLuFLOl4kB%Af*$&o6c zmu(5;s=p)x>1e3JyCi@~ujY+eE?*hjFm+P3MUee&M?fc5S(eZ3kl-!VIA|~`b%rb# zMv?4`VD0f)e|pdO5Qo)Y+auuvtoM|Ajexf_QpjQ$1C(Dsnh$4++y;*Z*u550l;70^yKgo34#Ai)=cE=>232e99!xjlxvFdGBs{6!d z%MI;Cp#yAx?YNKj6a7=BHg6DnK0f+Y0udP>$zj4{x0ajO0LUtp})G zv_-*~6tJxkATu~U-Sl|^ra#~@Rhia)8c_zS7yi@hN+`6d6ik52{x@|2mg9Bs zDT$5!)bUU!KzA@cJ)MTeQUz%EeM>1|-h~1TAK+tqPT&u~w3O5->kt7^T3WRn2sRNo zG!rN_nv``|1!A+(g;>jh;0+omce<2ym_am>Q|s0P!8&ZT_v4un?!Q2c%K`$Lo3jc| zGxBaeX6jE>8mc$}rX=`P5x`#!6#ZhGt8EEZ zUkT~H8TJyI zPm0lOG4#U=5~u@jwV3@D*nB&~A??41G;_ZwfLt;0|BDZs1GjI}%AAVHD;G?z*i{lZ z=U}>sZ)!NL%U1s*CGG_002ov JPDHLkV1iLzLe2mH literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_26.png b/app/src/main/res/drawable-nodpi/weather_gs6_26.png new file mode 100644 index 0000000000000000000000000000000000000000..0516f020be3ab1003e5b97f1330bba91dbde9571 GIT binary patch literal 1254 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 VfCG}4Sg`YofGyG9s?>r;{|6TI>o@=a literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_28.png b/app/src/main/res/drawable-nodpi/weather_gs6_28.png new file mode 100644 index 0000000000000000000000000000000000000000..f72ed9f1b9ebb34655ec7d2fe21adbdc6f9d93de GIT binary patch literal 2202 zcmV;L2xa$)P)C0002wP)t-sM{rC8 z1OfvB0t5pC1qA~h9v}1a^A8RR2?+-L{Qd6j?hXwM1_lHS3=8=9`DbBCTv$o}@o7s& zBS}R(-^*I*>FK$vLaM8+hK7gH(b0QxIN;#m!NI|rj5zS-V3CoLrkO(Q+*!W9y_<k<|NPbg_|yU7;^Xzw0{{PS)zsGK=jzbV(f;LP-Q3;S z+S|;`&F{?u$H&Ou;NkktoJ`QA#w!Nj(=yz|fk=*R=6sHx!5fdA-C&#w&p-#7T! zC)>FK(#e$5#cSu^y3)ToH^iH-0000gbW%=J00T%K3!eQb7XJHIIA{EHQ~i@Y)!U?{ zeZ!Nd?}GpU2RlhbK~#90?V5R4+DsJ2$?|3=fPg@?TDRIx z4cTKzB8n&#{r=zQy^|1@kVue3&*|Z@=k$+KpWocMbLY+smC9aw?X}ll|DtHD$`|Up z*)nUDFVqj!S1&4GCW8K;XOxpngbf1<*X?Dn+WFUT4!fxt;37v9D=L)ei{BT!I>DhfX%}bC_=vP zH+=Z}>>?_B1S{24zYPD7K>T?iQQ=^zLohc@FL;I@&odip;{yK!!I5OG9RDZ=vtL~U zLo=BCi8ToT;f%!}qDWC#K+AuvF{!j@5|D=E&kmw3%O}%ENdCVhWV7tNCoAmn`1nRGy{p)R% zCcdpOx@B9&V*vhh`vgH?s#iM>zk{+QJBDIG0KDL44v>t&#PfFx0e6J5#oLZ;OrIeE z7c-EI0W5`G@{nqycV)Z7Y4H4~f8WoHfw_6Vd}sU{{1MVdlVEZW{{4PN9t8f`hudMI zhc@cvEx5T&5Uf_jMnn22!0BdxBu^jiV}MkGiK#{x7R0i0`PWe%y}sQ(!~m%T=IoqM zKWWACa^0cON4Wsd^zZHMdjzKXJ^Xz&+$%)NcZYJ7&mRd-54RX0D-XO7fB*n9R<6?{ zmoor31R+6I3}ygyO&sL$A@}i`e++~=@TY+ zhzim&K;QFEM0)!Oz?x}q1Mu>Mh35enmH_(DjvQ=jPdB^AZGqvp0pMlk_4V-$Gt8#} z>~Fw-dR=3;v2S)5^kE6WfWr{a!q^;7N4Bo_uJUFl-dg_jqfXc;@(VG;}qE zM|w980@p#ii+_FkiGg^CjY@)V56!E`hlLI7;Vetgt<$m-s^&1n}EsF$bd=rZ!x6z%ajc+_Q?M@Q6W zj6c-y@)GQ0f6oL0o|jQCGZpKoU=1&^zoA(G5SS4G#Nar?pW0#Zr%N6U?_9$kD3+zY zED?0m0gh4OQljxI1Ixa98OH>OXFp{Euryb*1_MR0G-H_{Z4&66>tAXJoB;+H3^c2?E2cFN7K@NwyY+V1Q%b+zlN|7Z|8Ui4KJ*Vh>D}0&@@&Shi*uhGW;)DbF4ObmcyU>KS!`For0HRy~+p=)AalBT&$JvMr@0vXuQ$7#cVN5y7k?LIhAPd0_!_Q0TENmNPW) z790^+aZN_&(%Ov)grJ1BSQ$D_NMJ7!3vG|3ArI#w43LNcx=wq>CM2@( zNpS9rFakheEC|p!nR;c$k>V*TRK^heV}dvaHvhYteoKufp-=*CJv25MV~24FvnTN^W|kfZj-~R%^W-CW2R7u*c?3>VYV5E5X?(g%<>w~ID=KCI7h=3WY{}m>9 zq9WmqDCcD{LC_p4k)%j&t?d88QruQA7Qnz!g^A;6`XetkMX6HQHyHQYYp=cb+H0@9 c_WC#VKPUlqzPIIBHUIzs07*qoM6N<$f*6AoMgRZ+ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_29.png b/app/src/main/res/drawable-nodpi/weather_gs6_29.png new file mode 100644 index 0000000000000000000000000000000000000000..15a7222ee74a0685d441e9087cd1cf9279e74661 GIT binary patch literal 2093 zcmZ`)X*iS%1AX6F?97mCq0vRdO*9Hcn!y<6i!`Pp$)pG&WGmz~8KbgBB`H2P%C5~) zckCrw#=d68B>OVBx5hfxeV*^{cb?}gKhODf?mF0$q$N}&005A-wXve?IP@>Y;5+&k zH+5~t#vD#kiKKv&NF-boE((KznVFgO^^Kxp2qY*bCW73zS6NX(zOt%%YirwyN(>4N zQd3n73$!oEB2KWW0)ZeuKmRi;>dTie91drNN2@C(D=EmFIz_&6*)A?FE({SBq2FQ$e2qgL9Ua^J;W^z5TbQ5k?;qHnrEPGIt*orJmrAb>YYJDqgaY59qM~mf z!H17uaM~%Y)t1vd)<`FFY_PZnSF^mc)H;}A?+EOH+YD?=fO5vz?M=J>5YPP1ts>!@ z)`bSw+^~QO<_vS}abhZLey7?0$97mWE*$_ws%)(Y)bOl@%$cAnX*Ng7CVgnb*9eZA~PA=xg3dm#VGP#tmoYY>V;XBNgxVoc`j` zeXgZX>T>`4Z?{&lc21v@IScLOAjt-B>pu{_=|2#f#gml^_d#zEKJ=T!fgT;~K*3@= zTfN7aJEO35)^JM!%h(AIdky)TM@t_^!yN37!+nW{p3nT9VBS|DJ#V(~TMi=2 zb6A-+TiWF(3iuy?8Y<$i0WR2!ImkMSq|7Fbd54J;M3Xgi(n{mOg$fjnu_~Lh{k!})ALfGLZ=|d6dZ5>HVC2XZ1z9}Ch7pegbqhGzcF2apkTrWVmRYvISNvy z$-Eej^Bw9ll?9q@W^Eec8Qo_Js44r7`g22??*n|L z(3oI9xD4@~)&;lRS1XEwLy|{`1#{+5Co}^6JRcCnG@8zJu(MFdQ3dA4>58|moB8XD1Ne`5iqBcroR;*dYk=Cf0`^nJ zujvT8sq5?Es+}>`zl&DO4d-u+W%-eQC?I&z87(I$2>`&h z3yW}m3@FynYSW~?85!2JgbdhTUtfP}U{;2qp|aLdaX81Sn%deCQSR3F%gb>Z&l^Me zV!n+-zg}s(x>385sZl~8UJPu9J7vs9{K?X}Fwq6JM%U<>;xq%^lfCyV)(inlsnU4< z{jT5m=vj}zje|4ClCfBn-l5y-Ws4|ZtaV4hs6q{^enQ8r=DI~XknLKJZ0kGBqTG({ z$-_SCZ*#BxEWD_#p~M6x_+%vjcEx+xPZe5YU|U^O9|2AQiAHZjTq_U63$aZK*PioM zMG-N`@o%8HMW}CMw*paTo052b8_tSwiB-a1^|T}%zL(oXipY(9C26EH9@CO6<3V#? z%;o{$Ei#sWKsXb?w4g^#Kz5IN2(@OmZ~1YUw~!piI{kuGy|i@TN|JN~)tw zW}jHSaccGG=84B1{wB8wc~u}XJq6=~QFVPpDm<2vbN+DT!2&7FVS1GnE*y0Vb&k9% zFPW7ytl!jAQ4GqNg>TKgHE+r}MdJ2z% zar<(vg4VA-i^z7G<-{IVwl{y-N*r4L{ZBm{=SjM~+gyYX5z&CW~SLOkVA z`EWc0@ygN>I;m>P#l%tknZ9tj!Yu)EpZ<}wp$GM|sD>LRnm}y0NPukoU8kG?A3XOa zbj~u*$8(?}w#6xBicgjY5D1A6;{!=EGy?3IU|+IzY#p5c666`V?t+lLVZ?khY7~s7 z6dq!5sE8QaxSL>)zMt+AsGH{J0C7LENhKX_nHF->a@0$rs%XJO8y?4Ie)7J`#a4yg z!^?jl?!-8=QUzs;UIyTMVoUlDnqifN!9rzCQnGRL5KsA;K-WBmCF6UxL|i6JRH{wE8?La-$7 VfCG}4Sg`YofGyG9s?>r;{|6TI>o@=a literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_3.png b/app/src/main/res/drawable-nodpi/weather_gs6_3.png new file mode 100644 index 0000000000000000000000000000000000000000..cadc03f841e8ddc6dc97ade5bcabda4bc2f9b832 GIT binary patch literal 1857 zcmV-H2fp};P)C0001KP)t-sM{rEr z+uH^P1_J{F1Ox;G1Ox>I1rZSu4Gj$r4i2!eum%POLqkK^+1XN3Qea?UtgNh&k&(^K z&3k)$rKP3v^74?7ki)~n`uh6+|Nr^<`RwfM_4W1e@bJ{s)aU2t;o;%Q$;tiw{g{ev z!vFvP7<5ujQvm)D2TVLG9e0Y@VL0DXqWXo-X`ti4wE_WeqyPX0Z%IT!RCt{2TG`UF zIuMi{S$|QHgw?$NL!Lw5l*9`{8v=G0ID7e9v*C{zI=n6~P& zGr)&Z>=S9De7&8bKj>#B z=+>7Mr6@zFSO*A3)rno&&>w&cZv%10sK7!wQpR`$wxS_;felK@yY z8;V{T2BMqfan2g+;0gmn1HDVUlc$cFs2?r2qpqzoemgt z52gYV8P%4uI$M=&C!$usJSv1M;PG{tIAG)#X_KKusylOF@Lp=;__L!wLb%ggR)YaN2_z3t>MHgsJUe)$0Fl(T z9mjFQv3sQaK3wA;$4%tE5)*PC1V~Xpfvs8^S*~w94Fab8u4P$=NaPQE$Fq6}clrdN zLy+bGmoS=uW8YP7)|ig}EDa$4C_j8D8V3t3GK0{0By&_x`Hg?ffzbrcUm3phWYf&E zkCjq^z+a6lgyf==!ku0oUDbR~a5GC!oDPdpVrLe0o8M8PQT zFZd6ZXZyiyFiZTxy^;@o*4$0_VUzvd^Gi`^ap2qDtKB+Kke0FpfxnP$&^_&2 z!`1HJgP+sGr>o-h4L{Aq(9cWs*sBuwiNc#abWJ%j@Z0V#@iPyMw!Y`b(0RLeZn}1O zOtVMb9r%;sT=IsFgGj2zq`kBHJCqOdp=Zvph$OTO^Ms<`wfT1`_^}8m)2{dVn;XkADXhU3cHFO`A^fxq z(;LYJaHe0j4rh9t@ZSlbg?b}I{52X&f6jkqna5ZAC-&c(4_*v>Zc2=>kp7$>UJ%>N zC;EyDWwyE5hWW}{B*`i1rlf&V2b6Zo^Y%S zE)mk7!FtTFmbKw*`ve&>#`OCIPD1+s0tt*UTjL!24qlPl&JX#m+r`#A#$F>ix$ZCd vEoi8J$$zj+^LOdb75tcg$BrF4c4)_coPJ@~dSWGB00000NkvXXu0mjf4Iz6> literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_30.png b/app/src/main/res/drawable-nodpi/weather_gs6_30.png new file mode 100644 index 0000000000000000000000000000000000000000..f72ed9f1b9ebb34655ec7d2fe21adbdc6f9d93de GIT binary patch literal 2202 zcmV;L2xa$)P)C0002wP)t-sM{rC8 z1OfvB0t5pC1qA~h9v}1a^A8RR2?+-L{Qd6j?hXwM1_lHS3=8=9`DbBCTv$o}@o7s& zBS}R(-^*I*>FK$vLaM8+hK7gH(b0QxIN;#m!NI|rj5zS-V3CoLrkO(Q+*!W9y_<k<|NPbg_|yU7;^Xzw0{{PS)zsGK=jzbV(f;LP-Q3;S z+S|;`&F{?u$H&Ou;NkktoJ`QA#w!Nj(=yz|fk=*R=6sHx!5fdA-C&#w&p-#7T! zC)>FK(#e$5#cSu^y3)ToH^iH-0000gbW%=J00T%K3!eQb7XJHIIA{EHQ~i@Y)!U?{ zeZ!Nd?}GpU2RlhbK~#90?V5R4+DsJ2$?|3=fPg@?TDRIx z4cTKzB8n&#{r=zQy^|1@kVue3&*|Z@=k$+KpWocMbLY+smC9aw?X}ll|DtHD$`|Up z*)nUDFVqj!S1&4GCW8K;XOxpngbf1<*X?Dn+WFUT4!fxt;37v9D=L)ei{BT!I>DhfX%}bC_=vP zH+=Z}>>?_B1S{24zYPD7K>T?iQQ=^zLohc@FL;I@&odip;{yK!!I5OG9RDZ=vtL~U zLo=BCi8ToT;f%!}qDWC#K+AuvF{!j@5|D=E&kmw3%O}%ENdCVhWV7tNCoAmn`1nRGy{p)R% zCcdpOx@B9&V*vhh`vgH?s#iM>zk{+QJBDIG0KDL44v>t&#PfFx0e6J5#oLZ;OrIeE z7c-EI0W5`G@{nqycV)Z7Y4H4~f8WoHfw_6Vd}sU{{1MVdlVEZW{{4PN9t8f`hudMI zhc@cvEx5T&5Uf_jMnn22!0BdxBu^jiV}MkGiK#{x7R0i0`PWe%y}sQ(!~m%T=IoqM zKWWACa^0cON4Wsd^zZHMdjzKXJ^Xz&+$%)NcZYJ7&mRd-54RX0D-XO7fB*n9R<6?{ zmoor31R+6I3}ygyO&sL$A@}i`e++~=@TY+ zhzim&K;QFEM0)!Oz?x}q1Mu>Mh35enmH_(DjvQ=jPdB^AZGqvp0pMlk_4V-$Gt8#} z>~Fw-dR=3;v2S)5^kE6WfWr{a!q^;7N4Bo_uJUFl-dg_jqfXc;@(VG;}qE zM|w980@p#ii+_FkiGg^CjY@)V56!E`hlLI7;Vetgt<$m-s^&1n}EsF$bd=rZ!x6z%ajc+_Q?M@Q6W zj6c-y@)GQ0f6oL0o|jQCGZpKoU=1&^zoA(G5SS4G#Nar?pW0#Zr%N6U?_9$kD3+zY zED?0m0gh4OQljxI1Ixa98OH>OXFp{Euryb*1_MR0G-H_{Z4&66>tAXJoB;+H3^c2?E2cFN7K@NwyY+V1Q%b+zlN|7Z|8Ui4KJ*Vh>D}0&@@&Shi*uhGW;)DbF4ObmcyU>KS!`For0HRy~+p=)AalBT&$JvMr@0vXuQ$7#cVN5y7k?LIhAPd0_!_Q0TENmNPW) z790^+aZN_&(%Ov)grJ1BSQ$D_NMJ7!3vG|3ArI#w43LNcx=wq>CM2@( zNpS9rFakheEC|p!nR;c$k>V*TRK^heV}dvaHvhYteoKufp-=*CJv25MV~24FvnTN^W|kfZj-~R%^W-CW2R7u*c?3>VYV5E5X?(g%<>w~ID=KCI7h=3WY{}m>9 zq9WmqDCcD{LC_p4k)%j&t?d88QruQA7Qnz!g^A;6`XetkMX6HQHyHQYYp=cb+H0@9 c_WC#VKPUlqzPIIBHUIzs07*qoM6N<$f*6AoMgRZ+ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_31.png b/app/src/main/res/drawable-nodpi/weather_gs6_31.png new file mode 100644 index 0000000000000000000000000000000000000000..9268f5c0576dd1843f424bb05eaf60e72551ff6a GIT binary patch literal 1308 zcmV+%1>^dOP)C00012P)t-sM{rF3 z=xYlL2MGrS4h#hc1_aZ^R0RbC@7!LioI{w4K8%4mDJ2n4Mjdf#FTAi%W?L&zOCn#8 zcmLP`|JDHi|8@WEZ~x|9|Nd?N-z@**NB{M4|JoC>ZXhiH000woQchC<`VKE0Xw6FH z%Y(O(Mq;a^eKvVpMce=Y1Yt=;K~#90?V8(mvn&vX1r>?LB>iF7i1&Y;|A1}Uv})58 z8P~U#?@@a+5ASS%NKqU*bm-8bLx)~e#fx3lw^gy9`c}fV*h~B(z=7P$0FH|f*0{HQ zYJj)Q8EY+^nqA^wBp5b~LooFo8K|xhnDu&O(3LwFaA9DqS6UB&)jPz;<(pyDN{v@^e%kFS84#+6twD{V}6Q0 zl_2p9i0k+I1Hj`Hrp-Xb+-H330rCt8hxxz9SJ(rz8Mrz#=uZQ%1a71mxZwCz`qP0} z0tKNe6L9`0wOa{XzZM|I*A@ij80_I|0ZcV`r7Qsn4+)rRu%Oe$nXd_$00?W4%V6~* z05-v;AkzidqXEPK(E#-WAoK;5a0Y!d00Dxf1GvJs3P=Eq44^bP1JsTHEwFJ0fG!2X z+3)d5i?C#2m;-QB0I>(uPXJ3c2RfMU0cxjF%mv^I zcr6h$=Yceb_0KjKf}}YSwW$VY`j8RzVYdK4)&{r}sX2gnC@cuXg^Nv~)l3mEiknd- zU;)50pqPcr03%HfD!BxpXmYUVK>CS>AO|Y|*axD>F1`qWeL!(0;HP*Zod>{QY6;4) zn;%5)qaftp4;J=<$pS;LC*!?z2_RL$e??|BX6`(2w;+Eb^s^_T`!LFXN3EtdPzwY$ zu-pfu4$Qa=;PbcQn+tvk0IMK>5*q1-MS!>|<{k#I2-GqFCc(+9Wx(IukKZRAgh|NT zi;Y~fAbvc{JP@mH<_ChuUNq1a`NZomb3uPBMB{Q2l&5tIvJ=EIT(w{#$X5sacMB3h zzT0Yr({SB_$pe||goYM4=GT*eUl5E7xeB4GnOmC$AM*gykY_CO@`iQz8-em@g2`h7 zZv_03gy;c|<=|wN-Lb?ZtarkP3Cw}WfPhJW$M0rKwHWh&2%EQL)pX8S{To3#qo50p zwOjXORpU5%iXgdQz{$4X^!i-Z;@ii&HH0BCFwtH%duPKF!80BtgfTG$fFPx~wv(1Ay9DgKG=~|6W41-Mq@#?#;s>DhR*6ZgGJ~41kGXtmk z<$6F5I&86F`~$)?BC#{OdV_l8WpkF(ORhhd;B5eTt2gO~NN{ps?2{(MDu~M$=Vq&Z zteW~JA+W*gC&Q=ZH`@)RXhO$aFoV~6&4)CQu=q^3-SY1yoKGx0Dje0quXt(k7FTah z=Pj3iH=#av62KTcc>msNUxoc|aSl2b!{>PQI3b7-888=qL``cSM;w4@D}W%nOyNHe zA_Ja4ARvXk3x_YnjR>RX3!f0G#Bl3Q(!7uRH1b1`;&e;VbHDlJks(5yBgUlehW}yk zrYt$dhqcIn5J+)X6N6Wr@|h1(RLGHpe{sIki+f(|{M7%@p+kob9XfRA-_-vSjMhpS SVgnlh0000C0001ZP)t-sM{rCH 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 SVgnlh0000C0001ZP)t-sM{rCH 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 Dk_4Ul literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_36.png b/app/src/main/res/drawable-nodpi/weather_gs6_36.png new file mode 100644 index 0000000000000000000000000000000000000000..6299e7f508d45d249cef7da49eb52e80612dbcfe GIT binary patch literal 1959 zcmV;Y2Uz%tP)C0002hP)t-sM{rC9 z1_l%k2p1L&C?_Nm5eE3Fm>+6Syhn%RVc6WpN*Z}7pCIA2b|NnUU*8%(c`v3oM`sG;s|Nr~wapV94`{-x; z+6d(m8u;Sk`QS(T;56=qjQ{y?`rIJw;iCD|0`toN=NBLJsH*EjN$y}~|NnsUl9uds ze4Y^j(*OVfDRfd!Qve1LIcO;zNngQq{lk2tjO*g+)w8Fl*U_e0x|j0u{NR1S(A4aY zxw-uoK?48)23Sc%K~#90?VD+LqDl~kS;C^kfJ^4aHOnM-27xppC=85a%<}(#(yc~~ zfQkfKy>kw4PCn!$hxehot*)x>P*kZ>rAqy+5^7j1bv9Mr5JGQP)Y())wr!(t)VV}g zbTcsZ^8z>}KnYL+lmP#K0G^?aB@Cb*0^m@OI+ieiYo`P74PVbqzzFQ81a2pQ4_{a5 z{+6AaK+v@3wY19}01r~X-Y#Yi1aZXWEk9=xpYQ6$|@gfay5Y$0q>a)g{{vz*db2{}{NIgnG2U|UGpNRR~R!0HPOb+11r@GR8ejst-6J3CO*Wz2v;A(e>70De+k zWO?dA&0Gt0j{;CbmaFbs|49N^iJc<=Jl1{FF){!cj_nhggebu1w`&EnEC4DjME#yP zfcD!pmx1>%fMZGx{s;iUVeb_|V4-{R0G^W-Ks8L%Egp!I05dhSa5!R#1N`{{KwuM@ zg9Lz+9RRup-E#t{hU@qFa{|mfiNvN@000)jIvn#?302tB0Mu4b;e0(N^wv2ofM7~y zRGZ%%6TpcA_@3dc1yRz!IQazZV#=7bHS4z54o!3hjnh1k%F%`G6})7c^;rAoCQ! z44@`U93Xp6h^wP(5{dbCR-A1B9Me|>(g3(F@G=6x0DR+!C#8>d-OiL3!vN@gkw|G2 zuMOKet_?G+K&Vb@L`{fN|LFNWY?Kb? z^Vb1%tncs`R9gy0h($%{lET~jsNWVh^Uo9`>45)qF~$>s3C5FmAow1(!R3mAU?NP{ zgMN7^*Mw#{QXZ;8B-`m0Y83HLcma-wpPG!{VHRpQ!xBXKp^nQPX?j zvy0G80RlV$i-5(z?rij;0t5ao#H8E=_^4ty872r|2!5>ofW{2MD$|DZV~&Xh zKMta{`^U{s05kBC7ytlx9cfRI;{clBm)br)ro}o$to#JbcTM}X1uz-jjx-_L1K4UI z0v-Tfw*cnzsitKts|pen2PjB@0X}w2!509E5imb?F2cn~yA`rOqyPa^gE%F4%5s@x#wNY{rOeRyv3Sv9V6;c#M>KzyZ*VZdv1z;axE1HkD2H-hf z@l|x+_t91QEI>%Ed^tyAAQZwXn8a294?@!)Eij<@F8}tBpt{ffnYRxo=$J^4Fc`9olN&K0pvcz27=Zg zdY5cF-OdJ(Taft3t;fMLm_Ob9#Q7F=S^#`k4bmRD-EPZ?eCtF2VT%vnm%}&am>pAj ze1I_R0qwakcM5=&6Ln?)YCnK_Zh*i(D*&=B8=Vs%{4bmHUF~M7EeH~=3qlQ<8~_}y tjRfv&0CajzcnX40RH;&>N|pNi^&g;vn+@I^Pt5=T002ovPDHLkV1f}0h93X` literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_37.png b/app/src/main/res/drawable-nodpi/weather_gs6_37.png new file mode 100644 index 0000000000000000000000000000000000000000..d8ad4b46228150787f56c98ee1893191a7630ecb GIT binary patch literal 2932 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_40.png b/app/src/main/res/drawable-nodpi/weather_gs6_40.png new file mode 100644 index 0000000000000000000000000000000000000000..1140c2465adaff189f87f68f0b3a4ba973d2cd61 GIT binary patch literal 2573 zcmV+o3i9=dP)C0002wP)t-sM{rCF z3JU}T0|Eg81_lNA`1lkP5(xwZT3S^E1p@#801FEV4h#$T-(9}GzP!At*xz>mX`?%36+OCSy@(}k~~yWN1U9TIXN;!Lo;!6bB>OVq?tzA+S-18et~*D z-{0S{q()_CXVuG6b7d%riHV(&KHAA!)6~DObAbB#`v3p``qlyY)B)n*;`P!3+}z#$ z{r>;|Zr0Y<%gW8=~3?d+wI{bQQT^P6Yy*)s#SQ237ALMnV= zG#<|$|6lmRxLIkd$HEuJg*MTC6uvHmuLfYg0lon~4}dQp1|a+@WE#@b>eoR4_u2L* z{z;o_2?Px3gh>GR@coZWA+vbYYO^E)rrPaxi$a3_WHMis3t5HK`l-#52pG0iX|Y10 zzIMT82f!AS2?U1cc}7asZ}Hh})Vx^T;z2@q`jt|KHE;+)F8V$}Z7+dvzsg15BLIN2 zkl5v~v&YA?vtO5?f4k7;x#)WY^ET^OR{8$tT+_7GO4H^~XFh`kGmQ!3`A54tSx z>R&dsNzGXf27`XT4}S-Pr30PsiKia0dFlI6*0exAh~;deHQnBqP5WWX*Vi40>vE)_ zGM85mKj!nAGjJmWFz5q8jn729aCzP1kRQ0$@k*S(I=SXOINYAAkpEAD=yum!kpya@5h0IZ|x>&6#cb?*}Y~%Ma>b z!`wM}BftmSP)CX~ZO&@_!8U^BN0Y$7^b_PM0wK^BPR;3WCzyTA0{#xkTl7gH%&~4X z9kKw2!(k%904#X?nEtLn=5*1lEr&FcJ*a6vh4<>_|1G~OpKmG{lxt;DyNKM>mqmXj521(#>*NOe4Bto;Un1=jP+8X$on zsKN%E6TDd6XOsYH!E*pGNFZ3wR`+B#k{YmIdy(q)$a9EGMPL#OhQny ztpgZ8zr1YsAXtVxTM8n@73m?x8cfPT;DHa|%$u|kN#WRE1IK9%01N(lD=}d$43;(R z;ytG#<}N(|q5yw}e-b=^Ls9!ZM^bil001mRS_RR5;GPR%FB0Fg8HwfrDUdyYhzTwM zY(-l8U6=BM0Pr(}hY)z+mH{N-qI9SMeEGU_e8i<*1f&Yz-kMDU5#5)D%i6rwE*++R zbwtnK2k5(JRQQR%Z@>^j7&?>LWU-hY{gZkb@E!9|?T`wp59+GNJA`kkiqP#iIn~5R4*E{vGoLM02 z=Jl28>xv3jx0y?TcMz0O+TA}Lf$GY`{8dGVt6R+{*p>yB%TynFqYmjeVE&3S0)h!8 zFfrb;9DAAN-zPxEVyx@r@~WuQfPh22iqY5qYPS{+6 z8Mc5>4y-YmKm1iaf~H}cCPo|g!cHy*z>R544H!`m77IgHEyzJ9o`GII08oayYk_T3 z4`5#e01nk-Wmq!v0vP!KHh7?q$7EkJWo$*aMJcBeAXhe;0{|F}Myg8Mf^Bkgya*oh z0w6`8x&HJ0q_ad9>f6}D7QXfz|!*xXbG646~-PLwyfMbAq5Bs z+%%YI)QSSId9`A!!JmLzkGGHY4&V-2?F35h1YAkJw%yG;luK@o1_i z5SViO;|-En&*wlgHeCG}0ji7fTOyxJD?-+k?0*{`p!UYeoN4Vmlld>}_6#-+AOPdI z2dLiKIF(B5E(=iooJ9AOd<#0FgJUQgj85p_BS(LJ$nt!l0k><=FN!P+1Gvb8e$oBP z15Wr+jK&MYFkJcZ+5;6CMK!Qd2T7KswO89XDr_ftG&9M-p@{g=$Y5`7gR6|()G1yrBbp9Gr$#?k!8^|KDz za*x(aeqDd~^YoMQ-!PN>&sG1*4CTM!)nCr~n5a;F3F;4r{r_ZrQvclN>j(8m>fgkn z{x5&7K7El8?f;*nf0Cpxd;aJ8`N)VqopMND{#^fmN6x=~{&SuGmAkQf`v15CsxLga zgS_?GULE3;>a!=I!DT%($S>erxc-cbHz;im@(YF)A-v;Dcpyc-l3z#y32Ad6MZWSK j-|-#a@g3jsABlefms19OBb##c00000NkvXXu0mjfDBthZ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_41.png b/app/src/main/res/drawable-nodpi/weather_gs6_41.png new file mode 100644 index 0000000000000000000000000000000000000000..81b8447023d0f5f900670c4d8141f38aef523836 GIT binary patch literal 1899 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 VfCG}4Sg`YofGyG9s?>r;{|6TI>o@=a literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_45.png b/app/src/main/res/drawable-nodpi/weather_gs6_45.png new file mode 100644 index 0000000000000000000000000000000000000000..cadc03f841e8ddc6dc97ade5bcabda4bc2f9b832 GIT binary patch literal 1857 zcmV-H2fp};P)C0001KP)t-sM{rEr z+uH^P1_J{F1Ox;G1Ox>I1rZSu4Gj$r4i2!eum%POLqkK^+1XN3Qea?UtgNh&k&(^K z&3k)$rKP3v^74?7ki)~n`uh6+|Nr^<`RwfM_4W1e@bJ{s)aU2t;o;%Q$;tiw{g{ev z!vFvP7<5ujQvm)D2TVLG9e0Y@VL0DXqWXo-X`ti4wE_WeqyPX0Z%IT!RCt{2TG`UF zIuMi{S$|QHgw?$NL!Lw5l*9`{8v=G0ID7e9v*C{zI=n6~P& zGr)&Z>=S9De7&8bKj>#B z=+>7Mr6@zFSO*A3)rno&&>w&cZv%10sK7!wQpR`$wxS_;felK@yY z8;V{T2BMqfan2g+;0gmn1HDVUlc$cFs2?r2qpqzoemgt z52gYV8P%4uI$M=&C!$usJSv1M;PG{tIAG)#X_KKusylOF@Lp=;__L!wLb%ggR)YaN2_z3t>MHgsJUe)$0Fl(T z9mjFQv3sQaK3wA;$4%tE5)*PC1V~Xpfvs8^S*~w94Fab8u4P$=NaPQE$Fq6}clrdN zLy+bGmoS=uW8YP7)|ig}EDa$4C_j8D8V3t3GK0{0By&_x`Hg?ffzbrcUm3phWYf&E zkCjq^z+a6lgyf==!ku0oUDbR~a5GC!oDPdpVrLe0o8M8PQT zFZd6ZXZyiyFiZTxy^;@o*4$0_VUzvd^Gi`^ap2qDtKB+Kke0FpfxnP$&^_&2 z!`1HJgP+sGr>o-h4L{Aq(9cWs*sBuwiNc#abWJ%j@Z0V#@iPyMw!Y`b(0RLeZn}1O zOtVMb9r%;sT=IsFgGj2zq`kBHJCqOdp=Zvph$OTO^Ms<`wfT1`_^}8m)2{dVn;XkADXhU3cHFO`A^fxq z(;LYJaHe0j4rh9t@ZSlbg?b}I{52X&f6jkqna5ZAC-&c(4_*v>Zc2=>kp7$>UJ%>N zC;EyDWwyE5hWW}{B*`i1rlf&V2b6Zo^Y%S zE)mk7!FtTFmbKw*`ve&>#`OCIPD1+s0tt*UTjL!24qlPl&JX#m+r`#A#$F>ix$ZCd vEoi8J$$zj+^LOdb75tcg$BrF4c4)_coPJ@~dSWGB00000NkvXXu0mjf4Iz6> literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_46.png b/app/src/main/res/drawable-nodpi/weather_gs6_46.png new file mode 100644 index 0000000000000000000000000000000000000000..81b8447023d0f5f900670c4d8141f38aef523836 GIT binary patch literal 1899 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_5.png b/app/src/main/res/drawable-nodpi/weather_gs6_5.png new file mode 100644 index 0000000000000000000000000000000000000000..cbcc679d100b7f06aeea9106d45151ba9bf007f1 GIT binary patch literal 1674 zcmV;526g#~P)C00018P)t-sM{rC9 z1qIO1&yoo75DemV^BH5*I4bb| zk9h{rsCbEqvisxMRjFO9O1fTy}*3B6cC@Te7uKxnp{Dpjd`*fdR9>gQ=_haP`jlmke%oQ4I6 zx~?P|B|<(gj+c;#F?**$2+nJXfdVNZJ+>oAj)u?)lP_6))Sq0)S1p!~>mkJ!K3eq?HsGxTEY%d%V2amV>NX3~JP>&Ue1IB_68w3b3 z2!o-5e7}Hn1HbG9rsspP2V#FGgewDZq`-As1tSk2-76s9WI$`d)Pvm?Y>EKwHgoxm z2YaI+*~%{m0-x~!ntcNy-7Y}&!DMCH*$1@RETAk^A50YNn+`+REf6al2wPC;q)AIMjfcRm2{X{_RFvjr1>wyQA zXtFSzWbtp|KT??ji}C}=tg)&&s&MP!SP(jk|DY#GQoyI|FA+$_nO+;KZc^0gdXa1# z4@vzUc`u?w3AMRAqljvY1e$&@_Ln8Ntc!zYurNUJHX=i@n_f#8X6u9H8Im{l!y)|T zD_ie9=#;Ha&5vE3ZzyPtG;M=|eXt>0PwW^_ipt@$*?RITA)ta_P%rdzqB#|i)RKU{ zTo~7lkdA{OuqFUp$91P3n5hYM>pKaD*>$s!2DklAX)*hnn`;wall>-Fh>@R zrUzyW1i8IYAPc6k2Pi-oqk!CO%>#|%H$13oxEUovW=Vjq7*PQm#{p!}MAOJ@>V0s`@Ga(4<^Z`^6dnp)r0NLc&Eq1MBL`({BOb;6FP0CcdJ`O-b zOd6tX%zjHWk<;-HJ%HP^NG0Bi1p=af5;vJQ36biC`~rab|9YK0)j$IrrC{tq<9gG| zfY59)DH3qKOL$MLUHS%A7yvij$mXhQs3pJCo1i`5kjhY4mn<%@#+cYIKzTbE|&3(f!5BXj7 z`W?GgfZH`u_T$mFo3;c^xMz8#=GP^D(eXcE0^Bw4VvluW&*imqMS4HjvRO(fO8Cic zx%-wsESWPzq-X32uG#bF?!}vLn2>BtUnnZw0Q@B{-uCt{38;bk@A&1F znoXcIAm5(ctns7HjktV`RsLVV8b1lu-|*wpkPrD`fj=zNE=K@mV$F~>e%#iBf~c9G zvgN@l|0M>w`R~KqBLGYM1hZItcl05R?R3G2KbgiqiScNw!1JZ&U+@PAKa(>*CU_JZ zhl|il-s1Z|fOD5MqTPwC>pkbQU+~Kz&=n)PGKqhepQsF;tIKbK`Eg7Sor~h9e5aOj)aVu90w=pB z!*kXg^9OR|C?J>@A~dDUP3CXQ;u#mZB!}YR_cw_g<=s1t8bjbBPb%7 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_6.png b/app/src/main/res/drawable-nodpi/weather_gs6_6.png new file mode 100644 index 0000000000000000000000000000000000000000..cbcc679d100b7f06aeea9106d45151ba9bf007f1 GIT binary patch literal 1674 zcmV;526g#~P)C00018P)t-sM{rC9 z1qIO1&yoo75DemV^BH5*I4bb| zk9h{rsCbEqvisxMRjFO9O1fTy}*3B6cC@Te7uKxnp{Dpjd`*fdR9>gQ=_haP`jlmke%oQ4I6 zx~?P|B|<(gj+c;#F?**$2+nJXfdVNZJ+>oAj)u?)lP_6))Sq0)S1p!~>mkJ!K3eq?HsGxTEY%d%V2amV>NX3~JP>&Ue1IB_68w3b3 z2!o-5e7}Hn1HbG9rsspP2V#FGgewDZq`-As1tSk2-76s9WI$`d)Pvm?Y>EKwHgoxm z2YaI+*~%{m0-x~!ntcNy-7Y}&!DMCH*$1@RETAk^A50YNn+`+REf6al2wPC;q)AIMjfcRm2{X{_RFvjr1>wyQA zXtFSzWbtp|KT??ji}C}=tg)&&s&MP!SP(jk|DY#GQoyI|FA+$_nO+;KZc^0gdXa1# z4@vzUc`u?w3AMRAqljvY1e$&@_Ln8Ntc!zYurNUJHX=i@n_f#8X6u9H8Im{l!y)|T zD_ie9=#;Ha&5vE3ZzyPtG;M=|eXt>0PwW^_ipt@$*?RITA)ta_P%rdzqB#|i)RKU{ zTo~7lkdA{OuqFUp$91P3n5hYM>pKaD*>$s!2DklAX)*hnn`;wall>-Fh>@R zrUzyW1i8IYAPc6k2Pi-oqk!CO%>#|%H$13oxEUovW=Vjq7*PQm#{p!}MAOJ@>V0s`@Ga(4<^Z`^6dnp)r0NLc&Eq1MBL`({BOb;6FP0CcdJ`O-b zOd6tX%zjHWk<;-HJ%HP^NG0Bi1p=af5;vJQ36biC`~rab|9YK0)j$IrrC{tq<9gG| zfY59)DH3qKOL$MLUHS%A7yvij$mXhQs3pJCo1i`5kjhY4mn<%@#+cYIKzTbE|&3(f!5BXj7 z`W?GgfZH`u_T$mFo3;c^xMz8#=GP^D(eXcE0^Bw4VvluW&*imqMS4HjvRO(fO8Cic zx%-wsESWPzq-X32uG#bF?!}vLn2>BtUnnZw0Q@B{-uCt{38;bk@A&1F znoXcIAm5(ctns7HjktV`RsLVV8b1lu-|*wpkPrD`fj=zNE=K@mV$F~>e%#iBf~c9G zvgN@l|0M>w`R~KqBLGYM1hZItcl05R?R3G2KbgiqiScNw!1JZ&U+@PAKa(>*CU_JZ zhl|il-s1Z|fOD5MqTPwC>pkbQU+~Kz&=n)PGKqhepQsF;tIKbK`Eg7Sor~h9e5aOj)aVu90w=pB z!*kXg^9OR|C?J>@A~dDUP3CXQ;u#mZB!}YR_cw_g<=s1t8bjbBPb%7 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_7.png b/app/src/main/res/drawable-nodpi/weather_gs6_7.png new file mode 100644 index 0000000000000000000000000000000000000000..cbcc679d100b7f06aeea9106d45151ba9bf007f1 GIT binary patch literal 1674 zcmV;526g#~P)C00018P)t-sM{rC9 z1qIO1&yoo75DemV^BH5*I4bb| zk9h{rsCbEqvisxMRjFO9O1fTy}*3B6cC@Te7uKxnp{Dpjd`*fdR9>gQ=_haP`jlmke%oQ4I6 zx~?P|B|<(gj+c;#F?**$2+nJXfdVNZJ+>oAj)u?)lP_6))Sq0)S1p!~>mkJ!K3eq?HsGxTEY%d%V2amV>NX3~JP>&Ue1IB_68w3b3 z2!o-5e7}Hn1HbG9rsspP2V#FGgewDZq`-As1tSk2-76s9WI$`d)Pvm?Y>EKwHgoxm z2YaI+*~%{m0-x~!ntcNy-7Y}&!DMCH*$1@RETAk^A50YNn+`+REf6al2wPC;q)AIMjfcRm2{X{_RFvjr1>wyQA zXtFSzWbtp|KT??ji}C}=tg)&&s&MP!SP(jk|DY#GQoyI|FA+$_nO+;KZc^0gdXa1# z4@vzUc`u?w3AMRAqljvY1e$&@_Ln8Ntc!zYurNUJHX=i@n_f#8X6u9H8Im{l!y)|T zD_ie9=#;Ha&5vE3ZzyPtG;M=|eXt>0PwW^_ipt@$*?RITA)ta_P%rdzqB#|i)RKU{ zTo~7lkdA{OuqFUp$91P3n5hYM>pKaD*>$s!2DklAX)*hnn`;wall>-Fh>@R zrUzyW1i8IYAPc6k2Pi-oqk!CO%>#|%H$13oxEUovW=Vjq7*PQm#{p!}MAOJ@>V0s`@Ga(4<^Z`^6dnp)r0NLc&Eq1MBL`({BOb;6FP0CcdJ`O-b zOd6tX%zjHWk<;-HJ%HP^NG0Bi1p=af5;vJQ36biC`~rab|9YK0)j$IrrC{tq<9gG| zfY59)DH3qKOL$MLUHS%A7yvij$mXhQs3pJCo1i`5kjhY4mn<%@#+cYIKzTbE|&3(f!5BXj7 z`W?GgfZH`u_T$mFo3;c^xMz8#=GP^D(eXcE0^Bw4VvluW&*imqMS4HjvRO(fO8Cic zx%-wsESWPzq-X32uG#bF?!}vLn2>BtUnnZw0Q@B{-uCt{38;bk@A&1F znoXcIAm5(ctns7HjktV`RsLVV8b1lu-|*wpkPrD`fj=zNE=K@mV$F~>e%#iBf~c9G zvgN@l|0M>w`R~KqBLGYM1hZItcl05R?R3G2KbgiqiScNw!1JZ&U+@PAKa(>*CU_JZ zhl|il-s1Z|fOD5MqTPwC>pkbQU+~Kz&=n)PGKqhepQsF;tIKbK`Eg7Sor~h9e5aOj)aVu90w=pB z!*kXg^9OR|C?J>@A~dDUP3CXQ;u#mZB!}YR_cw_g<=s1t8bjbBPb%7 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_8.png b/app/src/main/res/drawable-nodpi/weather_gs6_8.png new file mode 100644 index 0000000000000000000000000000000000000000..8e887a02c5d3e8ddb5e9128cc4d1596d54a1ef52 GIT binary patch literal 1917 zcmV-@2ZH#CP)C0001EP)t-sM{rEw z;Na)y=LH1?4Gj$d000*k7Zw&42nYxf5fMg4MvIG!u&}V?Tn+!Af_icmMzfvq?ljRCt{2nv0IBIt)dJ02%0$ zzG4Uo>HmM_wG$pKP@qHU(UsVvBQZH@y>Ofz2j=Hz)v8siR;^mKYSpS$|33wMLke2M zz8mKL&!XCFk9(;Bv`kOiO&yFMt_hRE7?tg>hhVAb!FCU|4E{^6oW>7Ffxl=av>O(u z!y@6Y62D)OgcD(0`5^(woTQRcXvBa85DqEcno^GdLJ@;X8UCb>0EPdnkm2;%iSUmY zUeu8v1i*5P-w-%H4e2M75bSA+UkI|?>k=T@_LK2nhNnAp`3Vry0Ma65-AdH3nHQgf(bEV-?y)X`g5x}Z?W77Q7Xs@c0KsPg zB%stZ1oFckf|+H=)novn>>N0R2Liax0XX0$G!=k~peln00!Zd`X{@*<#RaL=nUsB(Y+=Fb4sXdlhw_`;+`o)?8sc{z3mk2#>P*`K!WB;s(Q)>aEG-jp_UW?*^VtOaUR=_o<1^29tG z_5g2(ex!hmJ?zfXiQ4u36jKUL)PIXvGT5Z$?1?~WB7@WDL>#h#2Kb%1U~K|r$+D3o zY~QQ90b#fPOd#!jjr7VGUwz>I9f54;K#UR`V6*|AK~R42K)1euH=K8Z(3;XN0e0&z zx+I_B>iZ-BH7Pv=*gEug>(@`!Uy}k+cq!{4=m7QAnU84&zTI5 zthviTV+U#0al%N#$o*e_Q5UVz#OUf5pWYZz55AH;Gv_V~%&VWF2-!X#j8!2dafCX8 zFzSpK;Tgljjjp1h`hntJ#jkQe8v`U^3m_Pt0|RFs1lYIZSKh)P@XOLw_v`auB&0qowR9-wKfk_tkoDBHo z)m$oYX}`Jz*rB^P?aX!XI<1bu>0=m{wW2yC-d9yXna}=Vf=eZboG}CS=@5I z%-UgP!q62f>ZDht=dmo`T`>HlhsK0}47X%YdwAu1qV%Axbpt!7=+d@(DC=v|+V zH*6f@X!0{_M2I4UAVtoEwJD?GiMzH#jDP!`qBxGD@U2JYz8~<=$~hl4A4%9UVW7E) z!;YfvP>6lQAKu*fB)T}!)HWtuc@Pb9zgNNYuRrttx@QAfnpIIT?amI3OtV|K@ZSwN zajJ&WgzNpF8C+gi4rK{ZBPdj*%S`7s0nOm@@e_2I zy}j4KI)im)8a#a`0b4o|x^tBECmuWxE-g;S&m?T7-L3%IDU$D0;MLhp8N4hz8Z_tc z)IenS18c&2lzqJDM`s-TjtBVxPJ6W<7~@{WH-ldxD7TRlXfWl8t{(iNoCk&94%=vR z{+{*sil#l{|1JS`+Jk=>-!lBHTD5A`s#U92eO~_oTssLVv;iUV00000NkvXXu0mjf Dk_4Ul literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_9.png b/app/src/main/res/drawable-nodpi/weather_gs6_9.png new file mode 100644 index 0000000000000000000000000000000000000000..8e887a02c5d3e8ddb5e9128cc4d1596d54a1ef52 GIT binary patch literal 1917 zcmV-@2ZH#CP)C0001EP)t-sM{rEw z;Na)y=LH1?4Gj$d000*k7Zw&42nYxf5fMg4MvIG!u&}V?Tn+!Af_icmMzfvq?ljRCt{2nv0IBIt)dJ02%0$ zzG4Uo>HmM_wG$pKP@qHU(UsVvBQZH@y>Ofz2j=Hz)v8siR;^mKYSpS$|33wMLke2M zz8mKL&!XCFk9(;Bv`kOiO&yFMt_hRE7?tg>hhVAb!FCU|4E{^6oW>7Ffxl=av>O(u z!y@6Y62D)OgcD(0`5^(woTQRcXvBa85DqEcno^GdLJ@;X8UCb>0EPdnkm2;%iSUmY zUeu8v1i*5P-w-%H4e2M75bSA+UkI|?>k=T@_LK2nhNnAp`3Vry0Ma65-AdH3nHQgf(bEV-?y)X`g5x}Z?W77Q7Xs@c0KsPg zB%stZ1oFckf|+H=)novn>>N0R2Liax0XX0$G!=k~peln00!Zd`X{@*<#RaL=nUsB(Y+=Fb4sXdlhw_`;+`o)?8sc{z3mk2#>P*`K!WB;s(Q)>aEG-jp_UW?*^VtOaUR=_o<1^29tG z_5g2(ex!hmJ?zfXiQ4u36jKUL)PIXvGT5Z$?1?~WB7@WDL>#h#2Kb%1U~K|r$+D3o zY~QQ90b#fPOd#!jjr7VGUwz>I9f54;K#UR`V6*|AK~R42K)1euH=K8Z(3;XN0e0&z zx+I_B>iZ-BH7Pv=*gEug>(@`!Uy}k+cq!{4=m7QAnU84&zTI5 zthviTV+U#0al%N#$o*e_Q5UVz#OUf5pWYZz55AH;Gv_V~%&VWF2-!X#j8!2dafCX8 zFzSpK;Tgljjjp1h`hntJ#jkQe8v`U^3m_Pt0|RFs1lYIZSKh)P@XOLw_v`auB&0qowR9-wKfk_tkoDBHo z)m$oYX}`Jz*rB^P?aX!XI<1bu>0=m{wW2yC-d9yXna}=Vf=eZboG}CS=@5I z%-UgP!q62f>ZDht=dmo`T`>HlhsK0}47X%YdwAu1qV%Axbpt!7=+d@(DC=v|+V zH*6f@X!0{_M2I4UAVtoEwJD?GiMzH#jDP!`qBxGD@U2JYz8~<=$~hl4A4%9UVW7E) z!;YfvP>6lQAKu*fB)T}!)HWtuc@Pb9zgNNYuRrttx@QAfnpIIT?amI3OtV|K@ZSwN zajJ&WgzNpF8C+gi4rK{ZBPdj*%S`7s0nOm@@e_2I zy}j4KI)im)8a#a`0b4o|x^tBECmuWxE-g;S&m?T7-L3%IDU$D0;MLhp8N4hz8Z_tc z)IenS18c&2lzqJDM`s-TjtBVxPJ6W<7~@{WH-ldxD7TRlXfWl8t{(iNoCk&94%=vR z{+{*sil#l{|1JS`+Jk=>-!lBHTD5A`s#U92eO~_oTssLVv;iUV00000NkvXXu0mjf Dk_4Ul literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_na.png b/app/src/main/res/drawable-nodpi/weather_gs6_na.png new file mode 100644 index 0000000000000000000000000000000000000000..349f373b87f256fc219ccab973982bea1358f1cd GIT binary patch literal 1692 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 H0Ehn%0Jt+D literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_1.png b/app/src/main/res/drawable-nodpi/weather_magical_1.png new file mode 100644 index 0000000000000000000000000000000000000000..47e5345c9ffd0358b1de29f09078079f36eebfdd GIT binary patch literal 14341 zcmV+gIQqwlP)loL1`yuf-rL*TIR**k<>lq& zlp%kC5f%lq&<=EKRe|>%B<>lq&<>ch#U2AU$1P|rq<>lq& z<>lq%lp=mzSQNoTK<>lPn-QwcnW^s2+TVc-5&(O}zjEs$Ze0{jMxRjKXe0+RLQ(z)7 zJm25nLP}QpvjKpDgEd1;%*@P~n3>bl)EEaBgp81LeuJy4tH8j(e}8{_dwY9(e0zI) zudlCCSZ2@e_nVoUq@<;Yl9qvjg3!>=l$@Zmv$T(umwkPGnBw-7o1e1l`JAGse20r~ zg^m^yBf`SMl9H6r>+<-B1{)vk7#{G4hlthH*8G$L(9qNUs{xjkmQj?cU14pbtF8?S z>^)HLVvwJdtGl2J{C9rn<((#mO@}PVz4riHeN9#>yWVFmZE! z@LCXEV`*b&bNrzKYHfG!1qlWO>-ifGprD~HI7s&k25O_WnxdxsX9UE=#X?D0)g2ZW z8!)P|xiB|KaC3aFJ4k(ggKvlMZ)kG6ySqhm^@)0Z@jMdIeTVk}1?*}MbZu~7Vsdf6x; z3@ll#kBy1VcZ38I9Sj^K|KtGw$^ie+0RP(n|JDHi=>Y%W0RF-N|Lp+(_W=L=0RQm- z{JH>ZcY84~w?u558)=qr|`c{;@}}%4)Z= z&GnmK`~B^lT@<~$DeU^h^8QKvz|!tmcKyA>H!m6^#o|(tvHd^E{jY=`Z+Kt){e^9x z(?|F{DpKJ4-2I=T-ToU&kzTpV@!a$uJnFsU$y|uO=vvDB**Ff@qw1cGPx#E&yrpy4 z&Cbt7lHhh}*=b^e;^%hTfPV1wQJ-h-cd3gv{;;cMk=5!#iuTA+b4std%VGTFvErG) zbCs|3gP!)upnmGGz^43>8;tIwFS!5!GtNmwK~#90?VSl+l~wx3xrkO8$_z15>I}50 zHJ~C0p^gipppuBYD6XU;qJ|hQxMhl=f{Lb6h)b?zx#iM?mF7||qhn5+P1}rs2q@Uh zH2=o`?|Ghc-uJy1Yy_cc=F@W#P~Z2y@Av$k=Q-y*=iGapoPM^S?PvShezu?OXRDOi zOmq5QF{bgb*nc^m7Kl(9JDAD$Uq*<#HGrDII@wz@HUa#vK+_tCP>sRUzkmNx{l6g_ zHEPrVW%zXz{(}ks8|Vz*b8&NZcX#*nY&FQCO6j$y?Al1QxU;@;bX@C2@)uv4wGkoahpMTDD zX|qB?0?CLEbP$i=6dQceN`R!G8}Mrh}tT1eE0s3?Em zpdb=2FfbFsMKT+^WaIxJ8u!9lt>M$AO=Ed*>oCb0!-o$aGhAhmX{L=C1J!b71&$cs zY6RedV7|USq8s@nWaDW2524wdF#oStl22w{-bCZw>KN5WI_QW@*FkIZIES0$V%9Hk{Fh zjwR8?L$qMB4y`DgFj}UdA=Z9Of8-3`e?ZLX=NAkbJ4REHSh)35OBIpogtdi$Z|SK) zS)p@o5Sj=F(UNn-9h(FbT^%Kxub_30>4)V1qxIM{AsN->$hO?9a(XkY2H7^=P*QhT2VxZTc-inLHe-v7zRftewOd&}2)|nBbd}rkl z+Kr)P+$sGB>(>MKhLQBmd(RvFSS|%ecb3A2zf)WE7REwZcgJ_7fPR(kL3|##O^oyB%fVilw zhl*SdYH6ifD{Iu+FwF+Ej6s|r*~Xfh2^BkJ>sAzMz9gD<$C^PyHiTSOuAvfLN-ket z#$ZjMr)uStd z(k7z$SlqE%$tZ1*8wQL^I~CfpH(`w(YjFAc`bI@*te$pYZRA@U`H3HG9#DTFxX!*z z)|*sA7oS5jv{oHjx9-pyd=DyP(Sq0=iL6<5l7WlED{|z%Q=#o|m|Pn|P`F?>?95)+ z(@vx2gu*m!8p+QG7`GtXdu3fwK9oW0)=76jnq1|X1nvBX^ypK;19)v}If*6krBSVC& zdNfmdZ5cT=kkT^*gWKHj3PnH|diCMx68CG)KiL{I0EuaB8r*+B!!>U{Z0*{YUw-H1 zcitI8WT9a#ylxPgSLh(>74@vg7k$2Okm7rnej&{|Ru7ql%V)!&FbF1GgL0_m39fsZ!b4cJ2 zg~!D#O8eD8CR~%j72*TI5MjW&fnZpw^g;^j(-T}uq&BRRojtC;?#K5A!-l=~+RHD$ zY)~P5qM|~UW)T_Cyh0byvdoq(0kFt`$k>t0I5jg+iAUa89b~3nAwKblFe)}t!wyQ` z5Mt;>SdE%Nyu5C-3tjO1wk1ot zi(xfpGFF|4kKi&1ZitSvJL}Ipnten0khy58;dO(!T2g?KBPzYLTqaX(v2L}&gCE@< zzXv~*SWMQZ51?9&hh2h=+_Ye23y`&I*D~v+xFbjUp=8>nOFtOa3S&U1=*TlOdEnT$ zOaD8WRbzZ8c|IgHK0bA6)*N_CyLOb7Qyu)UjRRH#p#l@WVCAq{8B~`pWoJhogfo(6 zkSxy6)6<>Sa%r6x>$@N{=tw$r)I7SvxUs5SHk1zgasQPXAK^oTDdwW2?Bna>>u>61 zNq$1rKmm!>obJh7b@xJWQxU;il4%i@FNe&l;5R4shfCN8FW z?d7$GSUZ)q1z6if0ql$|TjJSYificZ>gMJmn?hvc0aocpiF7PnK*!aHvZ@aCDRE%B z46YDx4Vi^eq8GTl+OuH37!hc$1`Jl4zL-gSU+r$S$OwzLUPG4*st)5jjDM7w9(nAs zwrtSsK<>I8?THNO!;irzg!EPs6OPzmQoE{>WSkI*YidY*yzdAI#)+#X3x>=~Tz!bk znk_hCfUA~iQ$Pi**BGmHs}3E2_2_SY^P5M2wNsM~Zkw`c-O3h3)-vp+IB$@-=-goJ zgAqE0>w5=_7BW!@Ktha9jYrLFP$)pib+ z8baGEKWyJ344xRIGDmY$ErSYLX)NMmxq#K0ir9}n1T0oeiKf`tAxGu{tOa=^qbua^@8(717 zYOaSKdgxI$4QDze{4x9Bx~@c~R13|@T96AgcNe;UN7cwDtHMQ@ehG6yDa!F87r4Sg zGvfVOu(c3OCBj;oOQY4V|MYWKu3%aydWg*q&7#_4*_*Of_E2OkDL>8$Wi(Hy=2U(m zsY**rw#MJ|TXHlvi?MESudKLQAjINXu(dshHLz0EH>_U0dQVSLT*HR-Y}A_9P?|JR zWG0-wXgd*PT{RiNs4?ecVNmQ1(W+^il}D$3v`jQdCP`ivt{w=n2oY>p^9HKRs%_;0 zR(){&PGdD9u)1}D)r74an;{y43}A+6jMk3OdU?842N`s4)&5w4xWopXBTpo*Vb=4$kyVFsB2r_pp4*?B2?$P9Ik|bqEf|F2p>WM1EZ&8utFuTP?^MiH?`|s>z#jN*IkTYIIiwPe$g(k$ zjEo!yHbRqm^$j9xNMu#>Mzn{sXB^^7am}G+q776A@DEZIXVhSz7lFy(NmJcT2Cm;d z_cXXLrv?}7w-1OpqCIHmkcMWMq+JrUfXK*AM|0OMCtz))%xb}J} zOUD*51g&%>V=bs(GW$=H~r;mKSqT@lfPqFQnyxK4gqFthQY;WGvQ;xf-CZ{i_EmHmh!` z19-?Pn$irGk{u9m;HV;NhngRz)-toURT|4ijyOki&5@~>!rt#m~5Uxcx3!0%BW&Ov940BHy zk*(~}p27@u9{Xy@?Q%ImFk}u|B$A@2_@T%}Sj~qSQ!hs@Q?KR?+T8B|WkFM3=|EQ3 zAvsc=M~YV#vUXB)th6(#R4;;&BW@6`C@F3XYp!RN8mqpM<&|E@^R>wl9f=+RE5_#2umcJai8mQTqrB_x|cPXx? znM-3l?r3(xiE5^3D$wl69@C;7$Q5Vwq9~&(apf|j&F0z*g0UmE+y=s0%w;*j4sVGBv$3C!O)DHk@AO^l!-xh`(QZGrD5CxFCHS2BT5xp zb5Yf1n03%=V%^PL0INk@k87xV?z!i2%Y*)EVY5SX@J1bGk14PTivn`l8NH}X?5!lb zeZ3^tvtaE*GkASDN*52cBdYO+rB}X7C61@3fU6ts`*DM-0<)-gzlmmgV?|_b2Txd} zGh_R8YRST-GGOpT%)(@yD2KTGEnEav%bGZpUU%L7q~VC&?4a&dKkk*k+-ssSoRLK; z)J#`+hznqmD$3f2VZ>ND$nsH0>7o5&YY0}P|C%)N48Hct!_xyaFe4zCkM8P$179G2pS@ zd=X%s{9X!eCrg$No+yr}1hY$saKtAeSbZ#9-a~rbYoYqZeZPP)k@|7peU^ALbBL*# zl(FpdhdARRs(+)n!(f~jZyU^`e=h~rp24sZihI+C)_h|KjQ=>@?6rsdLN5!El0 z5v5hPdlXuE&2AytqD=-^oVW7D+XWl74cYz%m!+^|>1&BFJ(e4?H5aw(_^ z&6MpPD;c3l$)|3UiXurNF>{5qyC{@3nLl5S_Wm4UZ$6XdPq_ZQl zi?dtj4^gZIN}MLx?fD|Wx&RErFlb!dM0S^SX472?H+3e zv5T@Mreu#jVpR;K_H|VRB_npT_~Ct4t$qn3vR_*L(Sgix zMkSeJl<^>+vtm`iY#yBqFj}~_dJ8h7e)dO;Yi$jUM^gPEg5V^pt7H#}J(!GJ6QW^ic_tibrc>RGa5 zg_6~6@{oO$L9y)IS9l#a48!||l>)6e?`uU(74c5SJl;|*)Vn?ji%|0JGVEq~o z2QpJKGc`IS#wLznvAJCttOtfv2H0(RVzY0$EXk!s0A4`PNVRSY=w=xtTDdsY*V6s6 z#SINA)5IYK&7RDnnRQ@gEfTcN-n5`AFXOKKV(_SnOT}hScHb=}v*bkri{-^mET~ep*I-V!4R$b#SfS8{P3^kA!tU1G{|J`X_pwSU73Jo?}K1O22Z4_5V zK{9_k#p>6x>zvJ0FI@LBnC7y>A~Vo_ZS_VY%HvddS{@9$}D7_TCs=*4$woBpMNBuh+v4#%RB^lHJM|>#B@zExVG67(B}UqPb1T7qX9#wWiZHu;s9Bz%#}iK|E~_(|QAV2C zfjy|fWbq|BcV$z6_2}AFJh2kF!-K&_2KwZL(sm{S6KCvcE*Y7E-Nl8eDN|&SsB)s= ziIn{w)_Of*JPdFAwH?^KCfNOsK}PlNM}D(2`rx{zO<6HX9hJ!)1Qyc~U?dp}1`ExI z=&TmeIdz!h4sg*H6?3+Np)XIq90KeKZH8zLWWO+?>=s~9?9#z?uV^p`rbFyD!7!j= zu=ovwR%)`9q342>WX38)Jsn|x0$6P|y|j*{n2hBjnukp?7EMcb*DtN(k00#Gq7P=h z()2QuDZwf`QjFOW9T*?slS6y!sCn>Aq30srp)FHpb*i2k)<5^BKm7?{j~l~8OW&*n zQ_*Fr=BU_RW{}wp@vXzfoy;(+jp7z&|2s}ld zA#vf!!jeB9C}fyy)H4>*iHpb{w@V#%DbZ1|CoInBkUs2sGBe-T8J{`p6gsfW?1@cZ z(T-S|S!QDsZ2X8>LWbwM+>`I8w%4F#&$b4$Bco@=FfA-JIpf^9&&9^7cRrxsCJrN*bGrf%4flaV|qYvoFf#g6z2y~Mz~a(!3@ zV2X^P)H94onxS1Wmj@d^L?zqHKVa2B$j_ljDlo`JTyed6 zv0#$Au6k6b{Qwpu=<)-D3F00nnT3)Uq6#cY5nU(6Y$Q2jIf>kcl{{R?7OCz*$ zvZ;Hp_@?>2@=*MXc0qyEYJK~O$>pc(zm?f-WY`;dI6=k3I9RGiSa!d-3f%h%W|{`IwjNC0ZfI8mcSmU{IC=1rhUN5Ig8ZAj+ zqKO%_{|JVv!{1o7KYzM#_nDhFZ~ooRzFhtw;i~goGK5dY90)x6(hbn47TR)34j0lKg7PnpTGY@ zE)M~Yol5&d?(;H2MNb3sd;7(OXXH-R;dF)^|LWO`C*lk&Pfza?bnH#LV+HNZt1rHN zqL&&;Rh5gE{RAwC6%!@}HhbZodAMHUcmMd#Fup#nes(>${&4WfDPbG=G)3q^@XyY022W{9^X*H3@vl z@0ES`y0xdGcNjcQgXES~?%8pZvRYI+U8gTXDHn z^@U?pyBDws3mCA1I{<7?LV8kCQh0cHnKJwe%*6e#u76*+&X3#9uVH|>E!*+I?s;g4 zr0Vg@I5+U*NQI_}u z8hc_QVbN8K+2mG}65xnwg!Rn%^Dk_k$gjwAc6MF1V+FT_d4}9?QX;8f%yomx6%O?EMN=K{(P4Vm7kxl&=U90U4M|cUO0dL(4h-6 zCZTfVY;z_N&=Tr|e17l=N%Ll}I?>C}i|&@x-IKt+P%H=MTMn&!iK8OP8dJWHMvdFQ zl_^;>yKS#P1SN2@wbG})Jb zp1s?0=_|mZuflN795cxgckMbvSg(&hOkkYn63u(PLRLsB%)JDSiaL-Ucx5_76$tz5Jb^Wp2qrHsG!5_>6b!V?hXTj8y;(=))T)xo|I*j?RcrDAHDph|IxA+1u0D z%}dFC@2aiy!WEYscr~who{>4KMKC?~pddr`2$t@dlKs3S^U`^Fxc1e;baY{x;E3SL z-ZgqBpq>)2{Tq?o&~apOkD#%5<9KI{Mn5lFBCPQr zf-;AmwVj{2eUb}f*_;}qD~F%!Rx2TGF#!-qY*-D0MAJN)4NwUmzStzVu1@w^Ftq;l z63HCn#>K{7V7=Nt1tfe8e(L1LNexK^3}XvK1e{Qsm%dm{N6$ZV{?Pf&6PG&+7=_rp zB%{@E=(YU)bE`eV#23F&zKFpG6zhOwpAfDhOfG$`Fu~3d+cJ|Fz-T;`4lwhCl6=k_ z&xj{t9)S5MgGpCj#$L!sm0=N@~0 zn_o3eSL}U}@}laaCB)K;4PPlOg(I#(!0Z#SltqgMTWrF~8AtZ6!o3;_L*SBdazw(C z0s@r~raS8iDXB{xxg1N*a4L739#B>%n97Tpls-DtJZN@N?bVieR0HR)J!`?N(ekqOfrwXURt(>ij-8LG;&9Ek?B5~(+4H{ zJ(eJVVAqQh46uLzr5G_yz_*hdCmunbE4z}fTo)%?D@s^6_ZSKzm}*OHglF26?`fcz zSZ07-gD37eyFLS8maUf6g+?!zpf|y!0zv0G3|5R8ZK2%ewd>bQlGflxDcchmkxgJO z`ZIsVBod+QiaLQ?q9kb#lITI8&3s19wW*xt#53*1iN%El+7qu|E1+`T(zLI)`DtIg zlXq(>CmFi3SWX|Uq})*~{U?Fp;#W}Wz@2V705B$-VA#fqoD>r+CtSw~m};*-ri%z5 zBQRA$*g7wXdlGT;>m`_FuRnGw_vkinUIuWj+WX^FY}}Pe`sn=SpFiD-8dC8U8uL-W z;NsWw!V?zHUH|c>0}PgOQjxuh)G={7hU>E-1141(jG6)?74#4?Ev4z(g^8GHJJVDf zla|7wJmc8X{C{AOLiwYi)~wq4GL=3gPmJeOzD472x#izlilFG4W|omnqaGZ*J-8Zb69B#UYl z+~LbFKHa)_UU-pmL|~zBDug@Ee(U3pwg8R5h-@PSgM&>!{_(L-7tbrBrZ7&(D}X!7 z6prR_7q(Aybyj3=&4p&V)o^I(mGA_VeP~M7&{BY`7GFfh7s-M;2iL6w(Lk1TMYsPo z+{M)^#fketc0kDH&wumH`5P&42<+?k(H3S?&l-(?wN6cr;fKSnn(GxmiGn7g>}`&*(J(vH14uk0!}0>Dae zY#s&i+i|kuSH&gu3MKPUlA)7^WDnM*D)+)QWhK{*_NSzmKX2<>A1zt3Wb)+h^XJds zI0J)rT;FBV_RWVzU;6B=g=-4Pv-kwuE6M|y6%ZK60Orp1H|I&)&z}#0W(B3}ve)Rj z^Gb@sbq%t5$M{^-p(qQYD631FeY#?IdY;4!H7eD~!uQX9o58wwXRhfkP8#g>(a~?M z*i$U`N;gX<6r_t{<03C;FqZej5y$4PDJ~&-Rij;{uJ2-HU+Qr?lIbY(MU=IsPhI*F zV2MS-rS3By>jod6X0Vu;88gTcsiG!|jn4jT#qKgC0^ckurcn5O28)f|&aUXReB$== zAAb1Z`*YWnT~$whm5!x;I#*Wft24$VG1BluMvNf)QWTThWKS%jC5Dd(tb6zFGmdkB z*@Hnb%5~fjc|}(WF*g>$pxAb<4?wW54KRLg_Cyr-XjuRQD}EWbt4lSG@ue>t8A!b} z@&_xHboDwXExu0{>;!SajtiF)mkI&4OThB4mzK&2Xb1>4_pSHGF<5rW_K5_xeBx%} zI`lrdqC7Xe{3>RqG=tkm)m8WE^h781dQCOR?_5U|ODeg}moDKhY7FKmFD@4_r2E3_7%y@|6d~21H$MQbNSf-T&>)!841r}bm})dyM3NQY zXI>b$-P^sI1v5U^gq?90Y%sW zC0I(zM(Xq=*T4SZ>!Mhx981wl#Uh%$&7|(mR^1;_%b&0_IUpM45C5n?)5znhT$}o^ z1m5O^kwN)+1*OHq8Z3{wXwV^oZ6U6c5Ddf0<;O`dfU#mFJWj(5MlVp&42Qw0{lg`V zk8BAFiugi-w-_vsSE%wxFq*j$+2-S1f~;oKp8=BT8x)V_T7Z@Cick^OPB3FSy6v=gMJtZ% ziv%{W@LC?JK=crwPZ#c<2QXP8E+fH~3YcqoFiQ9r7_3y*pK-IZsgPiB(RL6{ z_5wB)VEH7MID-;wB)ATzOmeLWFy7LFoSzvYU}%0?CMUr%(hhDqedLH|1(PNA#lOs^ zOjjfu3^>BJ9ME7g5tu#^o=7%2n!)(kqHvl4U@kiDg%>XDQX5BVz@(e*7&{eU3B^Tn zpDb8LP8xw#Fp}fJ$M%nBZ%rsD;S*?^4GXq}xlr?=VTWz{3?$W zY(>$BX4$c^y9}@z_@HF@RJDM=5LmwKU7?Bau?zw`umoV``cE5q+4hfL1lZLpw8sHA ziyFd#C0k^!jR-^U40;9w*CheNu|=4N&E^>ZmU4DwV-1+VY&DQRbeJ7@OTY>XC}3V) zpR?gyPTD?zb#W~>;NkMX@wZ>xoluZR`*I4C7L#C0wqUAF)e)}w&@5oa1#rO#ERmkP z5d9-h*=F(*6_(yeF_)SF!vtnjmzXUWAmQ4wBWm&7FJ`4~$jI5ZX~~g({VN!HlVku( zEGVKqSH%g`H)C?sk!uJv)#fq|f${c`oqw6VRi3;cNehN0MP5^^IWT!K&yrOHR*1!k z0@O1F*Q|Y!OZtu~|G9`Z-d>3%J=|=5LD@VA#uL)+ zC?RZ|AyaJulbuT01jeh@NsC3WNLd6PT(e*{o5we@*@kwBvS34o42e(OkUDkbmY6R6 z%YT%m+Fl8;{QTl{RT-huNOvxcILj;m>7KxzdMf)f0n4W>^AS(ku%vi+(P3I5MRD2Y zR8wHKW&#GI^79uVLzpZzBs#Ktzft8s@KJ%K)6LRuS#d3|{woERUr>yc z_!%uvVUC@WEh}#uC)G?pCSbH}VZ|B(D^A2(*9L%%7~vZqA2M}h$G!u~eXgp_0L$ks zupb+hk>eBf2nnYw$H*Lq?2`3X1m$ zj1FMQY_|d{=E}&n)7ws;R;3YV!>?p|V}cc(wmc=l z5vly1eC}MT?}+iOqJknqGGi;03}Dm}#rb6zOi5*A8@L)ympyOlS*HuwU-u9kIp;Q{`i}3=*+0T3lO!wmv8uGIjZP>lrc{3dRK0o~rw<~u zj4JWl^zGYOv4GEJV-XYs8VD8;85wC=C*^gHng^ry|M>kh3_H%nN407-kUq9Pwqr~= z$qcaYgxNdxdN=g;F8^{p8<&AE9DZu>V1TVjEaM0ZU<21l=AsohTaALz3x<-4>BS2l zZQ7K^ANv$VAMWm(Sy7Z}u<*qFtKK+*wPbnk9=qYPnzvC(XRvS*Y>Ngvsn)b-NPW46 z!NTd)CZ|t>Y*uP&e9*wo1N}uZ$G(iWrr-pm`W<^4deWn!r3IPFF$3 zN0xwH#c%GR#T=n$FE6B-@0l?uhT@fk3MPG-=DySLl&`Rva+u0FY%jaKU4tnmmlz!rY6W0^bOr>7@>h&IY{Lr65r zAKm*|^M`;foXsaNS;b2xQqbD|5vJ$li1X(wuKB_>u|^%yNo|;1v0~L;Pq|I}8PKI~ z%;b(FnyNu-g+&_1!Nz+xMIZzpG_vN`Q5EtHR^~4*avV# zH@Qn!w@&>B^y^EaMQ8c~EIM{_U!yalng@b%1r&C5Au!>psP%b_fBeLYICjf?veolr z=*OG$)r7RB!Itg#;Da5i{rNUsnspk5wV3WCTIP@;$RFg4jn!^?2KxYlxhSw7+77jR zB7s4$H|J|pTs7;63Tzb;ftz`o^fA-lK(v_20fYw0I>zWJrvh8GW0{-H#ZBy%T(Y_E z#fu+V!8UH3s3zJ@HEA?JdSlfNZh!MOZ5~=Q_+xZ-Y(RH7V>5YS2fgNR2TpL-V7K1o z#b7&Dy}fP5MzWZVeK+<47ERo2HI3y&FRj@D!JM7tKIJ`YY!I!}fG((jcML#LDP?j@ zmr?ADw4eUjy>HM7HhvlV5A6~quw`$&vG@4I88eRK0Rxs4I%+t?oaohSd-pCw`#Z~R z>TSA&)}QhtR0~L19n)_>f9j_3aCvr_oIq!|{O~7wI`gs9Crv!QefxHrWdqCER`XQq z+RL8BI+eanV_g<#oFCDvt?oXbz_^sH)~8> zKdl?94mPBb|3xlA`(MOzvc~_<_OtzL|Fic0Jc0cU589Ia00000NkvXXu0mjf4CVjV literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_10.png b/app/src/main/res/drawable-nodpi/weather_magical_10.png new file mode 100644 index 0000000000000000000000000000000000000000..595d2863d48566690774eb8e785ebe963700621b GIT binary patch literal 12440 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 MyoOwZjAi)$0CfFEo&W#< literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_11.png b/app/src/main/res/drawable-nodpi/weather_magical_11.png new file mode 100644 index 0000000000000000000000000000000000000000..042a6bd6d098f503a721fbdb237445c93f690ee3 GIT binary patch literal 13693 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_14.png b/app/src/main/res/drawable-nodpi/weather_magical_14.png new file mode 100644 index 0000000000000000000000000000000000000000..595d2863d48566690774eb8e785ebe963700621b GIT binary patch literal 12440 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 MyoOwZjAi)$0CfFEo&W#< literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_15.png b/app/src/main/res/drawable-nodpi/weather_magical_15.png new file mode 100644 index 0000000000000000000000000000000000000000..6101bd1dd8f66334c0db67b08c8b250e74fdb9d2 GIT binary patch literal 15756 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_16.png b/app/src/main/res/drawable-nodpi/weather_magical_16.png new file mode 100644 index 0000000000000000000000000000000000000000..6101bd1dd8f66334c0db67b08c8b250e74fdb9d2 GIT binary patch literal 15756 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_17.png b/app/src/main/res/drawable-nodpi/weather_magical_17.png new file mode 100644 index 0000000000000000000000000000000000000000..467927eef4db8915fe16799645a49da72b2da415 GIT binary patch literal 16497 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 Yvn${;yx~^gzqB5D#t&Q0a^| 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 Cug^*V literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_18.png b/app/src/main/res/drawable-nodpi/weather_magical_18.png new file mode 100644 index 0000000000000000000000000000000000000000..595d2863d48566690774eb8e785ebe963700621b GIT binary patch literal 12440 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 MyoOwZjAi)$0CfFEo&W#< literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_19.png b/app/src/main/res/drawable-nodpi/weather_magical_19.png new file mode 100644 index 0000000000000000000000000000000000000000..3c46af9e5a7133d0a48901d5a071a689d56f9b28 GIT binary patch literal 14681 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_20.png b/app/src/main/res/drawable-nodpi/weather_magical_20.png new file mode 100644 index 0000000000000000000000000000000000000000..3c46af9e5a7133d0a48901d5a071a689d56f9b28 GIT binary patch literal 14681 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 U-Zl5S4*&oF07*qoM6N<$f+qY6KL7v# literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_23.png b/app/src/main/res/drawable-nodpi/weather_magical_23.png new file mode 100644 index 0000000000000000000000000000000000000000..79d1b993a3479985610fb144a3c09d77e329ce32 GIT binary patch literal 9069 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_24.png b/app/src/main/res/drawable-nodpi/weather_magical_24.png new file mode 100644 index 0000000000000000000000000000000000000000..79d1b993a3479985610fb144a3c09d77e329ce32 GIT binary patch literal 9069 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_25.png b/app/src/main/res/drawable-nodpi/weather_magical_25.png new file mode 100644 index 0000000000000000000000000000000000000000..7c8d100baa93a6ed8a1756066c21589a9cc59fc7 GIT binary patch literal 13914 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 CW!`K6 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_27.png b/app/src/main/res/drawable-nodpi/weather_magical_27.png new file mode 100644 index 0000000000000000000000000000000000000000..62830cebb204f9c800b14c8956aa08a6613f829f GIT binary patch literal 15155 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 EKfwSb!2kdN literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_28.png b/app/src/main/res/drawable-nodpi/weather_magical_28.png new file mode 100644 index 0000000000000000000000000000000000000000..0fb3fe38e1e874fc3419514173be17f55cd6f92d GIT binary patch literal 14213 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 bf7Sm3_;q8^ha()Q00000NkvXXu0mjfZ* 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 F{{S!hC3OG* literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_3.png b/app/src/main/res/drawable-nodpi/weather_magical_3.png new file mode 100644 index 0000000000000000000000000000000000000000..47e5345c9ffd0358b1de29f09078079f36eebfdd GIT binary patch literal 14341 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_30.png b/app/src/main/res/drawable-nodpi/weather_magical_30.png new file mode 100644 index 0000000000000000000000000000000000000000..3b9e9df787cc240a787b9ac3c2139f6f6e51ae23 GIT binary patch literal 12633 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 U{!;mh0000007*qoM6N<$g2Zz&q5uE@ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_32.png b/app/src/main/res/drawable-nodpi/weather_magical_32.png new file mode 100644 index 0000000000000000000000000000000000000000..39f2007f69d679518a293d03ad340a43fea78397 GIT binary patch literal 10469 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 YDj%Iw`&)_sw0i&r8CB^TNl4KD0Ynew>Hq)$ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_33.png b/app/src/main/res/drawable-nodpi/weather_magical_33.png new file mode 100644 index 0000000000000000000000000000000000000000..a8a06d75941713e29f817ae040b2370f58e6b345 GIT binary patch literal 8773 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_37.png b/app/src/main/res/drawable-nodpi/weather_magical_37.png new file mode 100644 index 0000000000000000000000000000000000000000..ae277929c6756f90c69b2f83c96fb8e452e7d1cc GIT binary patch literal 14767 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 JPDHLkV1jgRvsnND literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_38.png b/app/src/main/res/drawable-nodpi/weather_magical_38.png new file mode 100644 index 0000000000000000000000000000000000000000..44344e4cb91a6deba3ebdf597913d70c11b6f9fe GIT binary patch literal 14502 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_40.png b/app/src/main/res/drawable-nodpi/weather_magical_40.png new file mode 100644 index 0000000000000000000000000000000000000000..10a3729c628a569c5da7247d07de24797e391f20 GIT binary patch literal 13232 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_42.png b/app/src/main/res/drawable-nodpi/weather_magical_42.png new file mode 100644 index 0000000000000000000000000000000000000000..6101bd1dd8f66334c0db67b08c8b250e74fdb9d2 GIT binary patch literal 15756 zcmX9_1ytQk)23)~DDK7GU5mTBbAgMyySrT6-QC^YwKx|o#l29Z_|Nyhdrl_L%sw+` zl9ObT>~55@q7*U$J^};;1hR~@xa#MA{eRn6s88AVzP$?p0V$&_uP!0wDF5;Ck(8VQ z0RcNPF@cBo{qXRxzP|obA|j(=VB>#+&xU}6`YBslTK-@ApZLTF2L~{)2>)3+{=fZ) zzw!jZz#+D^wSB4x2+02#KV@fU=ch|+YioCR_tDYOC$6cf{j`6Aj`ohvfbH$=|B?Ip z`aZ#b@;~FJS8s1GGRpt*`2_#b;KZYPdU`$yXt-?s{r&s<`=6mc!N9=4C;yZ436LpO zKk;WWBO@dI{eAGPF0g`O`FCbsLlqYn6Lw96_c~FvU&!`iRnafSd?I_Yd^E|@bIW8uYmID zlaSN@F6R>%7-;Ssv9huf6%`fz>v?(e*Yfi6+|oJ*H$cb4`S|ii$K2n_B`hp9Yi54w z^Gtp+D=I4B>&|s_bWKdnejlEsq@?QV>hcT8Ir_%w>jN>w+z@j&Ec4pIV6dpBePBQ^ zxssdS@{_-RfSX4kencA}rX*^1U%Ppk(>#p8F*_}zFd!f(s&7fkBRMfC(>pNs=JEOA zYvEIF>*uxA;i{^r2Jr>*3p8XoTssa- zV+}$Q3J6eyU`LYM^X-TE;5#jO6q>jD7@-r7bfylje=vZ~J1mWPD{J0yPt{CPrFH7$ zJ)tzTLT1TNBWk^WIID4X=Fj``cx&&Vi2W7c{d;AcLHIAPZ4M2A$m?uY1NM`e^^Psm zSHB6FE~oY9cjKGv=C@U#&3pPE)_YsC_owm)aQ@p)|I)>BmiN27>5CVS)1u$S+iBCN z^ZL7R#QE0q!|1`F+QV{o<+c&ND+B}|pNzPOx@XR1Zd8D(N7u)muxY3v!K{0aRc7N%w zgUu*Qa5N)@5Ehiw)k=W z+#u0*7}gnV*R0v;L!ILD3Ky$2`oI!#?5pQRf8ixYx^nzz``a)9n#Ki(RB+@ZHF$z0 z7d1afaRE?g)%W9bJr5g3C`8Z0g<=5$cN;b=^Y?5-?9*#w?W9QqYcwwH?We>%tS!tN zO+@I$AAj)B{95y>&E6WtsC}r~>|VMFuRi+hib(p}{RKZj_ZQq_?L@m>F2e}n4+Dv< zjE3PEPX2%QOmh&NFItD8?;n}tNw(YLkB|MNZH)5%y@=2Mn-m+zXKH^}{)k#oXprjA zeStc%vLmABvc=zazn$@ZvNbl1cu^uG*_M^2;R1sFuL%FN*;D@TyrZNspd}ViGZuepKlCpuzTg? z+4MF~xA}Zu_y9;ysa@!^<*ba+BOMwoyotgnR>rCtS{eDvt%EWV02P0hR6O1e z8g}hBcY>AW@AEm9ENg)y6~Nan6*2epd|PX>$=z}%)~;E%V+oRF41^*O;~x>F`9sX$ zBL1M;W5QoFM%r~d^Oc+Y+XY3{Lv#Lit8=H&#d@!k zAHKhDH<0Q1_=q9c3Ze9=$Ksu&cwLfKq}f(EBjrmb&OL<%{)zqg;dm*i8Fb%2HtY1Z zXIGq^u;6dc2DP>pl{}8N zepT7)p_}f~dRkKuh+C~D-5k5coA5_THE!H$bXsz9WSu{uu6x||$u|YjXxG1&OnCn8 zT9dd@6PJ<=7kB?RvYJbP!^+)#%{N@C-(z-sa>Txcf`_xTTAu$cO|7(4%g7J?mhR(k z)vYq-Ke`AX146HW-4iawHviXG`(@A%IS8we5K>1%lhfmMp0zb2-nGc3&N`Wr3B+4C z!44YFkt2O6;CSYoqcC`u@2Wo=Zv(q_$JO8WZH=z(kvBcIG$^=1>D2*GRY3}vZzyc# z9$t##%+7HfdC^xDOZJwQdjM$3;*+`g^Y-{bXUc2jccX#zQ%O2Gt{J2cP$7wWu1;=Z zb>A{F6+h5!Gd}0?M~P@RFxQ9Jl+ah8L3tpUKsrT8CXjHEgP@vh*g2{8;t3{_C@ac6UJlW+|2y*pHn3Bx8ssP-PD6dR330^(ujk zflK^CyKoX$2(z<0<@~-T``Qr?^u(fxEoDh1?Q5+@)yG%h{F0YLS?h@0W`HB9L^wt% z#^!S@R2?fyhAGKOR;r3i*5S_Cp<4iP^Do&Wji2Uf6ldSzGPxel3q1CM_v7cGGA67~ zXU{d{(pp`gXOG(0;@Rm9HA#O+%TLbb2a{JwqpyQL@h+)uTR1FY>=eISRb&UzcFCAL zEG#f&jgt<+2F34#L?1cXi3y(z4~N&TEN zR!$A56FjQsf9l@*mN)b@5lwk8l2c|e@1u04FA#TpA^xly_a9Jug~Whvs%;U+M%?w# z#c!>Vuu8>kIPNOBA3r`qcIKY8YZ^Z52eTcgGfNhh%Do(5W?0&IWCh$XSXRa}yfiPc zO=rzlyCZzm$Ksu9&>@!1e7!R_`R)d|b@g%@Zvt7i`#muB{;@c2zv^~AoB|sp4+6@+ zL2@c1O#Gc+B9UnEM9>ep2&0$!u`AE~=W|J`0?5VXpa+xZB&J1^4^ppip<8+pd(>9Au4tT4$DebP{GxIeyWR&CsOozNJNc zUU`gE{oe?S>cCH4FUv;nR9$H;L2o1B2pL(Q%df(@WjeKeA1 zsTd?hPh_!=O}lCOr+7bo2NtJyrv0PmOWS!n%lv3X)`K}?!m6d*auI0r5yWP|dALcC z&cxmz1L>n0Q!4D_<(gK}T3#TyEzbXM;pQB)_M9fP{V%rgM&({KffO6wR(Gy;?fI^KKEd^&JOljkeM^VcY{xu51yl)+ArER<%#RNgRf{T7gTNjNk1pSB_iP z@cNP~ecoZ`dtLi(*$;=^ft8mF*xnf!)eOvYDi*A?nrh1Enk-6d zuDG_QAW7L|A^hIB^nq~@!K((|hQ%85wPA)AlZ~W7-#d5{x$_1*E4P;EE99L*&#)>u zvMhlvR?5J+=t8&fo7NV&wvlGh?_qj>P3dQ~a*t~7bE#g5l*HZ{@o)VSCag4Ut4=aqQSc?cZt|o_dEdX=80P*Gq98!G*ZxcU?t5PT;IUr& zbn=;3LaUpwQTj==-^at_F4Q@n$R)q`-cVTl_gFc|HMC=sGwV@EcsSiDA;v@7X$_#h z9UHzDzAIHOpAUAuQwo=WVfsSfF>v`K4-W5oF67*YiJRF^sLO3vNLU3=V#h7I!z5Nt zMJrjhwyd;CVB{l-l)w?6BkbZP1a8_N)?@EvVPT$m`}L0<;m8r071qzCJy^vf5 zlUo0Vv)hlvB)>R;9|ZHaUK2==SRHpe5nFV}&SDx~{bfwvIXOm_?^9$AqU-R*J2!Aa~+VALvMJ`A2KEIjOXccA-umoFEIzi%e;&m+;Xqa&Mo z!{>y_StX|HozODm)f8=CSJfn2NBUZaWi(sWs4=ob zMZf=KTD0g#cj0Rj!f`Mz4%j3))lSOV06Cz?sZoWZ%n>H|Ug`*Y?^!4813X_I#zA@e zf?%@C5Q8?C`EhOsF?;{512P6z?gNSFq*M)kIyYKtliNSc#Az@_&KeGbjl zlViZfi0MVO{1{fhFuCj#kzMqQ$cmHx$tZ?%Iqink<~uf_cBC)VQal1a zFPHKO!HnZiLTAx*f&|Vi_7T>P*3W6WYDxk(EW}N}whH-Y}sU8C7I1%L% zjoxpgjJW=_=&FTDU0KT7suS!Z)+oH*oL)-{b%b%A+4`UcjAot6eOpkN~(?*YG+n-1P#tbnpT3_CZ{r!e zCb%`~UprASx5+5pz)jzp#5FqcJwG{S!!3eS18;|r3X(h>am;v*CvM|(P;v>>s5o09 zInf?ld#=R;IG>hvZ5A@axz@y`xu)@wUGE5Wuy8UuUg4DkhV~7{{uKk`C&nt)e>-IF?aN4*mMgUfZiA+f zIE3KV;mVb!0p0Ek7d?1<84-e2G`76QzY&s)1&&o4{@hTfHjwlz|ICWMz?qpPPNYu= zpK3uj`ttH?XVCTXD>0I71a?hkcIpJF7NIQU(mLs|s@NL}D$G@B*=oijFqc!kt!2-w zUjs(cxk(20VQ_0elVjk)kwv$j!=$%K+bWF^xz2n&p%Gsi*{Yyd4v6_qa6|)#MybFp zD+!vSTKEpJ3a3p&Mz=$d(O`R=*z0-5?ZeF0FiC~`*kCTLE`>sToNfM(X$iaVRgwJF zf@RX9a}NJWK6f_D@FC^G%y$&*^>9M%;4e)5IGK0(2rX$@A@JZoJoqsAqLx7^d|^1K zynP*zoY%Mi^=M|9{8C_oQ6)Jin|O5sfc)`WU%~86#lHfa1(b!b3gjFbPm)>z#0wt% z@J6(N1^c*N5)N=(2{onXfleCZgBHT!?Bovs&Nnan`q5eM6_FbhW;W{TWlf`!BkAW= zl6O3AcXV(s!1;|8y{pn&0KMhN3(?(cFHXGe+es~KhQ1=FNl}xfeW*AXtuvsqwG=%p zb|&#uo=VNa>i$-OsXB57RSpPnFqCLXAG~r0n*iSInnoRVN&*95)V{W{3p16g7m8tg zBS6>(R|l<-1theVom^~(XVXr~tNB-WL)%{XyIp7R_Q<4t#o2UbUg_<5^W{c?0Q=m0 zzPsh-9{8x6kB>yO@W#?3;mMY==okb%A-?}wsA|DZWz7{Viu*T9h}>{1mHxvk8NPXh zk^ZXoRHWO~qpt@_>BIb*Kg_Rt_3^q4_kk0;Y0MZJ-{E#jAp*ui6x-3&nvIKXTx=<8 zvwyG3G_+~5ioKzvJg6prCvVQV$h0su(x(c$JVZ!lY~0Vg$}jdh%8TKDxPl>IA5&A! zR9fKFxrj^qS4Zc}k$S&jWVpX5TBez~NUbcphuv_+ELp!eIyR0%(Fj7u>4sw=zIj|? zeYnydo|xhoScdk&%20hz8qz*VfQlHRG<^&Ekp*NlER!{x{Vi5mWgQzci6UVl||MWnx~--A#}X$`#^`JjvQ!s)_#+pxdA_ni09 zUT1vd$HU`4ASh{B*f;XOk(knoP^U|+tgIaRp1ilnGMT|ZJ+3(A{O`b60%dOj^AKkY zpG{yaj&%k_n+CJ2j4suZ;`Wg_$Su)n!K=sV=5Tvc%cYKYC&bLMcw5~kuEt9&krO9g zzt{Ka-wkvBYqxIOf*57?)4n~B;G@K!i$8~qI*ugZ_-rKx#|ef1AMb=dvRKY$*;QK{ z$hwKs=D}#I|AX!qQ@>ce=F_#udv<6*pN&f1-JESFQq|iFbDfo;-q?z31Mkk9*fotb z5Jy8+ula}!_(Sla`G@>FiQox_U#+i;mT3PN>i2+g)TVr*TtjP6tVBLDu}X(0E9dcM z%8B2ZrtR(<8_}EnA&HHlj*EjccmD_Kv+K=7Uh5VLR-M-+n?a-TWgdCJSoKE;;>Qct zv&}61hw|GWtgk}NB=qt5Nm?g(AHS5I#xHgq{F}pxZTw-}E=zdkFCF{19Tx4rReN0d zKTYHZj4JvF-B$AoL_qc5PUXk<^h8|k8lUL~cH4n_HDcOq0hR&pSm|2pO)xEdeio>#v%BQSxF-fUxMX zBjxIsx&`V+FIF3o`PZ(zGVk2;!zxy?m zNAoNzw1Ct!nqxPL?TvWWIX#AK^!`?i?C~;pDGT0S>Q3 zo|{{T>l-oQ-Q~01`Fz0d1S06tp3+xH$5R*)2V`~ndv8)aY{pfCJ!^nU_s>;(Hby?j zUl2w1QexOveJ@TrTTTEix1+tm<*#`SCj+feF$ej~_C`G&hukZ>G!7~K5FSW~RLKQv zo705}mEa6sr(;D z)oUXt54)%hYqmxYn(G08#@n}ec(BS#t9aoKkzzQN0aH8knUL@gP96PTauh8ey}w_X z(x;cpypJHaH*42U8S*?GNA~XyF^VQBsFI*M_x6Cb?8LDW^lBkt_7O7kJA^rNZFXQV z@J>xDyTEszMAxc4V-`DvH9>Jz+=7SX^t@WsiEGeO$kDDuDG9R9z1Q&FAh(nIR|_6N zg!XqjD#>{DSm{Qf;VmwVR!`FT6tHW9Ugao^QaDz! z*I+6gp|mb|lPQob?ec8O?H(w$=Ul_b$$8Ln=H?AEa{y8hyj2Gqv*Dh0Qazx;@+tn! zL6Yp|&pE*`eM+%h-P~S~XG)$dx8XG6(9z{ntBN+yMVKK%mNAU^0{62zo{faH!IS1> z#&02WP+yA@0y-CrcX~R7Rb<@1v>%B@Cz73*8)nF|SRcL3jykXY$|b@ACN$(nz%DL0 zwisc?bcE4j$-G|?1!s(xuzOi&*5%313-{qhua>7V)uz}{zioo$sY9&l}ms zJ+oyoX!6u;+ds-f)|>-JtqRkdp2WbG9{P9M3S6{!@EOP#oF}b!!Su?xnRpBm&-zq8 z`Uu_%&{P=)?&&&~!8(wWTL2n0x?yP7BhOMeE{I&p;K8fPN__c&pDcL2f;?|OR2)-b1#NB;o$WRVF%}_Qv0gF;mpMy(`igzHf%l@ zk&Z&UZea)daL`o_j%;l&Z>b6o#MqW?;f%&mNO#GGlrpT?i~qnU;95jRSlR zB)6j7ZpKn|lmBvudrQKMp@^^u@0NACB^>=jWIW+XY`Fn4z zt>bgo=cUsE1D2RQh90WqnkS3}W#_ZbO6dWU2G8IqZ4bt*IPt}WsXNy~CVU-X7F`3) zTcW`;rm`3PTQEMlZ%uH7{J<4b1X&c_S#aR=h11ynp*08995Rxm#m%$Lyw(}>#w>Qs zXeg@4TYazu(s5T(pW_f{y-bP`Z&uTH)E62@;~F8f%NrIpTy9bz*ueNyeMqG8``)?# z?UO7Y<AadFqoLfSU@Xqh58`9loDV)_JG^Kh3=<)7z&OaUx{ z8jn6lxG(o5>>iAmXD#HAr#fNvTpBUlX)}jxo%-lHlJ(qy?AeodKy;S7$i2qJ^~pN< zMI6Mgw?5I_yYK5zjb}^r#jNFPrsbaJY?X$n^~UbhKB7td-!~Lm8r+^mTLC;q;#a~) zh;DAkKshXhyuP zEGIK>+=>nfLACnymx$RTc?v(ns$xbii%w0{QCssE^tg>!8(;$LAYC}SV5w*%4E|YT zXmXgP^Y=4%6`DG;u|M9W$`n{ATIOXYC^7a|r@9U|9e$^n!QG88^7DgZFUg$ca5%e1 zPIqB)!w}~W$^#r5!S~+O?~_H`@g+&D>2X`|iK`?s;Y2)YX(090pz^yhSwS$v1xUU? zf!eb~7QRlmJUCjGcc!FiLHs8ztaSzAMX-IHzAGN+!LtOHF@`Dmh-ac8Z3iI8zGIY< zgR+2!nubwn5>8i}0g{I{-#Ts~rv)5dGE4rh@TzEuM*!mcQkZ^^Ni#4$U1T+`Hn}nA_WP~HZ2W7y$b}oo{!3{PTG3rY0)w|;1@GK{!KS@{2~BM@ON#~f7zuXt*Tt~Rh+TemQpV9P zbn*0_66&3jcs2cbU+9k$$s~laUTnk2<{_;D1cv-a@&;9TN}Cq%SBa@{%}bc_5!$q3 z!8Z)_$?ap5v7tU!*6dTfYxt$6uQ!phO8?4G%v|sb*9x+wL~6KwUcM~=xi*K-G(g#> zVA)xs+>`mW@^e<|GkE@}oC{B}FNSBa4?r8I^5!+$Uw&FXEGY_-=#zSWyFkgBDJ6MK zzgFE=Vo-^y5Qz!S3d}(=cC$nQ)c05H;hoM+($02(M|o067{x#X$}&TQXC=reQXYsH zR&l_pVnFv5KV*df?UCIeQ?xWMtL3~BDIA_6NoQ)?u$XGFDK&ouefsh7xSGEFTy;yv zLHP>P?np9d6loL%Lz+i_l{ZzLEn|l`VQ9rNuPGT^@PN>%j3eKxYTS@8U#|UB>(Iz# zK(Lx?+IjIun`-E99Ly6|s!>}x_1RB-n5RJV2=$Bn3VE!CD-OL`Gz9~Qd`gUy%JHdp zp?Ie&r-cjj+#qrP@A!@?b-yhTS#|A*Q8k)-yT7sbX9N{XY!Nprt`(^pWK$>d^QKLv z`r4!F;cMqaNr%aQrv=|JqUZO)>J(|y72qAUAlwD0o*`$+t(dznhj+7;4g#02MI5up zGf-g4Q`JeDReoV_KtmZ76jR;2&}!$%idzt8$tniUTnl^EeHr%Z+DhGP+>2!nbVt+4 zo7_t?+50WrMx~0Tr5R_5!*cm6{umQG032l^3Ji-9NfvUmtLqzD*QR1mlewQIPi}0@ z11sH=+@gqffJfBmt*?MI_!69YNE%gQt&V*8$Zq_0t7&U&8MZfPzqGl&-~iL;gjWnb z@TmYt=hjeqdiw~T5^!(Sq;UpOQ{?QW@9$Be$tK-pEP-SC$)$~r`gP*)mc$?;L3)Fj zZ<)=2rWnPlgB#VID_bQdZspieo5t@wTc`2n>|vkxA!nR9n!IMC{$!bP6s+v|zo1F7 zGU{){x=#f-qsYn@-==v|Fk>iHPlpyYQh$z!3tc>zY?s4J@`ZrWLy!;16h~0rwkEab zNpr875hOWYgEexx!lKEqmD{M338WRGwOiLOdvCNUGl?dibB@v=QM9%$ke@|W0_r8& zsA{01t<*6}sOi^Oy(zCO*>t{!ktH~Kbh2kiTO{Ax)2Zp@44;9t*afw>XUKmv|GgcF zJ`LPHM2AvsNr@UWIQR=eAnZW95OWwCl~$4}YE=~Q9X}sgvXb*Er2cX7Stec=L1B$W z*Bvt`CzmGwk63Oi5(e(oq^U&6Aqm5xg4-89$W@&fCUOk{^`4CNY`J+5qKa(no^x@Z zjCc~1fk7sIt;*ewu6qH8fc|-D(ZI<~d2*@k4+N8l%GM4uL>Zq3)vA!#+8%`<*98YD z?WRIAXR*;B+t$apVlm|oDPfwwCFpM5LUgA zVNyxU@TRO>dKYqQ#IDk1(nwHQQv6E)cKZJQ)xnnQwRa(njo*)bx_r6_t5CxM8M|?$ zDdtL>CuP>mMjM%>;eBgeyLT;kB^EH+)s%vFa*f()V9j!-h-xa5Y!10U-Y*qXO_pJP_ibEf5Q(hH)9q-h!~r+v!;rjP-oT8Gp* z=g1bf2J}@c{2MOPgNvZ53m|961FF`nJ#f^>ne+rsfb{ftLkzu9z9Uh8VY5buVknCl z6|a*iWmI``85r_WjN7Pi7aTm>&g2r24^(syWjP~YND&l*v}?a17g3bL>f~?c;|Ic{ zwe)?V`d%yA@JdiQE6~(3)%2e8OdJ_i>8L!SN?cuFzZ_a|usGYfo7>NK7Cqudqep8alCqgJ!RYeYLXQ0y+T!C2ZpCrqtw^A?JFH+v zpH!kaU$L&3m_dPM-i(;dSB#3JkkoxI4iev+x@YDG2%NPXr0cvnxgM zXpFatR@m;!6-&^uPg1FVP#JaAFm9?>@F>9@Tz5HKGk6N~In=OEXm49P8F%hwRcDr| zvAH`>LdNt^F-Am5>zjeu*|tqL)g#J?-C`inbO#GhpA#e(YfE2B!2kvw7*VAU6A@Ht ziDvvRTg0%OMAouQIdVS!n{*&XvQRb0eH)D4XWAJ5FCx!}COOyJUcLeCEEtD{Ckiq=%%ENTf@(7RBO|IyyVk&u(c1o!%Nhe2Vm zRzD6`u?YDJ9}z)wDx8~IADI= zQIICuDGL8I)ntm<+cuKwYy2LNCQ0gi>N+Lb>&MovWoJl4F{c=8=1B&9MVOtNwa+2g>{oB2N?INTyY&zi@wilAzyZ29!MEbIbIJyWn^?720x1 z&%3#yxEl}bBr`snsJc0pZ5m^zl$g86@`TW*qhKSbRkL`Odj%@)+_63yBhG*&KhCR$ z>8Wl71r7E|8*}T5>CqliiQKDoSZe=bVbqY5dVDKW zl;Bc2AE;GrvP9`)_ELSV<%Kx`Xbmm`M!bSa>3oe&6iX))1JUeA$VT9YIQ}7j5-n9D zmy|$S0q55)Tc&T_jA%vlsi5MtRe}pkFB(0D31|jqJnMqIj@st9U>wH8)2k*-MDJKz zPMbnTY!}*!3FDd|aqYZ%DPN(xB}!DNB^7cMHK*Q6?w}_=xAw}*=?9NY2@=g5rgDd( zAK662HK27?4isX-D$F+~UGHde@*v@@OT`29z^*2H4iT1@Kd`1EGlY)H4xwq{gt5Ov z75}(Lh_Yg)LQSf77>c}z{LE&cX@ALS))n-K3D3;Eekv~)L#K@l3uh;G)Xx6vR^+6B z-MlR2vCuVRc`gTlJy48zW(aO&7Yxi{(SGb!(a>NqLhYR8Xi$=7)%E&G15@3o3{kl% zJggX>8=faAN8&BTboB#vnUg8`=H6PUshS&&=wzNc0HFzNvm$V%NpV%+&xM*|r^-EilAh zAtgah6{+n_0a8&+hEx-e&S~4F^%#DBYosg2M1Zeo-X=xLmCyyBSQ#gOg;N;}ePzlu zGhkGbDf=Z?z(ga@XkeJ%@;QOAw_N5U5))YlC0zw-ETwE17k?PMr9HV8Q5UGv&|@gp zxRM+TK4DuAIcZ8SYW*eca19I{lY~7PIIlyly(=Ub5a%>JwlSOe>GKa8@$5Ep)Uoh4 zeUpFb0{)-F^`k^IWFTNTh z1*z#q$RIqhWJjiMKGe3j%XiVj5Lg1qO<)Hx3~pLEqmKkQZ&0)j4kxBf0KbB0!C=bR z?i3@lG#zmUx(GgCx6-nb*kjfP0hDpAgk$q1yRvm$E~;yNH#MdR@~ZSpHzv~%a@Wt0 zg~V>a-NtEYgGqxTwpvlxe4(~cM!2HrxjSqiFTH`mTj$=ldoLJQUE6KPnmYYi5s7-8 z8WdEVA+z$eD|{JBzoJo=crs|bwF_x8#J&Pk&33}pn@Y>@=fw&4)`oa*2CyyHK|4Ea z^0e3`R2M{LPrgUp1iPIR<~1(gsUE&OgjmrP$vl?z7miRnOKJDtK9)%4@_#kt?W@cd z_M33g>nam+)UmBHi#bsTj}#BPoeRZgSDm4j{%Ek(V4mis8dRsDMN0w*Y8E650d9`cb{L6D0ApoBbDijcUfLw><7c(}W ztw`awr)M?o`y4(_JS14kk4U*+cx4KJ7wt)CitI_-OqclRH00z;OTm=u!o<0nvV@># zCX!T8Vi^lxA&73mtWcFJuF=BJO~7pg3Ypjg7*hz!QOS&O*aOrQ*!GDzyroWwu~30WX5o*=ip&b0)cc{`n2lP zhB5iL2~#WdB=llb3q@)3iI^w^ntMVoLy-R6f@LXF&={MQB9Imd=-mzzeti?Ece>JB zt?c}LQ%rGz#gTog;2x2DIf6#5783u{S1=z?UAk&Vo2PAs>y_$mf@n)(^8HY369BRF zwOO(Ep&*Ud4xek|Eli(^KM|$L;>04Tn|{J#*fg`{fMwPTF(>bm@%DJh38$&rPzghR zh+TW(Nlr?eHwH#xJAF>+pt8btTN9F+L5jT-IAgO&aKZsYAe#4s1MSSkX(=@yFd!Pr z^|*e~8#Oe{j>q8hN*q&Q;EtX#JAZuc*1pCU4}!AYb%)IL+Gwe0_eA@9XUlcT{7}qp z6f3UU>TIzEPN!L%YZac(qn`>PzC&%I<#JnbA!vhJZ28c0Sf*FtD6xqrfWmt=0(?7N zoKgRRoYQj9LU0dzd7~^6-pDbdzVMQ%)GS-D7`n-H*#X^xlFD?{pV09LK6 z&9MJkCFLT;cdS3dpJO-#KX}2z-VyeGX(QUSWPyPjV|AV=Q#1C8k?<}k$4u3Aw`tx! zjdP~NyYZR*I|+2uwD8!*!Iawi7CvTRAcKT=2hH`R0V%s4k?OkAwJkKvw6JU?qvw!7 zZC{%$DmZz*0_?jz$^~l@tw?YVNGStg`>o55Tnb;Wn0+prNXjIfT?<=XlxtY$^BZ+- zx6F%=z#~$9R2IyUmWZBM#=TmyN6Fm@DRePo8E$vi?(ye9r3ZFyQbQ(u2YZpE*rvu^B0nGxN}9xuGvx$2PJaR7`j| zALnR?T#T$wGU>)5Y30dIN|RbF)+i)@)?SuL&^$#L5W;s1mj<8Z(SHj8liw=56#d|6 z_KjBBubtDz+TIsdmJNet!4=I_w1N52MbV*3W=AQC9gm3^rV395Shb9$+Hs9Z;Uu0_ zpZZPs*qDIVNkzUg-fdH1NAzxKg{EMLZ=oAv72DT)sJ*55WhnBh7-v``Erh^>}*5WaMPH z3d}TN4>1(EaiOb4^oP$a)smGe;XzKQ_3Nvwv}VA%h0%`_7dm8VB#!lk zvFxA&>###BaFP2s`#1nE)==kDl1RUfjqgEQI~SAh`8d;LNsaTkdA`;Lb(P zv0xW2mvNBidzDgX?n|yxrk_I!27?IvD9hQuOIV~aS4QXsuWW~8+I~Tbv}N(lHKWk4 z93%3pM7v+G5&^Q@M5n*y{kV)#I}jedM)~92^QL=pF!>>R{ax~7T+_&CAd0e|9xck< zBkj%dOH}2Mdf_+Zh1#wg*9AK_-W#>H-YKB!(K)6jsAh1y?S7>^O})C$5rHajk^j*B z^jOmu_jHZ~$B4!IEvjJrA~P17E=+V=0hS`Z(5js)zrOgGAd-}8eUflfN>tjtGl9fE z+!>oI^l!@}<+qm6A#+LSV0dANuTa`i1uAqMETG?i-JldMC^sl0*9^-A=#V|6R!{JDhb;&l6PYdV7tv8KS|>;s(5ju2if_R5^lo> z=Vy=n^!yN}B5Ih>v#TU@DI~ZC6nn+00wB5KF%edV3YCY9S!u+m0qd`$uG9iZ+bR~Z zbe4gwB+{x@#;)xORiabvKrHbiW$8-kK8&+TxR>Q~)~(n` z@>Gl9F9+?SnQc0mP=!uidoVK7>lxt$v@p2fsVU+Fs>ZsZ7BrPg;*!z6#1K-i;sm)~ zYjia2?LJkZpsYDzzww~=prC}^G5*|09T${;u+dI6`9S4|MRGGGjo{g;1Z3}I_mQRmYH&)d`ww)n?I-H#nqmj@7P@}QuZYXAXaSx|A z551o`G>K|?lB^Dp$i6GB%!@l3O$V=3PW?_{81yqH_|l;voKDPisC*i zmY6mlg@=+MXL++Ti?UZ`C)&mZwKnVQq3Y^>DU)chkghaZ9Y2H^(_zKUe1mF_Kw6Vc zCpH!bTi#zIrWiZZwUv|89G$XHZz^O|k46n4?6x8sUHR5Hd*RB`HZR`{g-=r^Ltv0* zBQf~deq$1URxDbgDJUu`k5GQ3q!`7laTC{T?FB0wXmS2V&m*bi~en@ptRJEdGhFd@#z*JP(Ay%#-cG?m@hc;8&^%Iq++u#+nCf#2D)8@JnL7oU z7Y{E&mv&okDb~;0o3rOCb22?I6>9eoBBxr_=Z~5^N2BMFCQz1Y8*cLI2Lp3G02V&7WMkOA}#`!+$Ws&LRt5 z*rWOsXjVpfcv<8XrsmE6(g~CHNFk^^Hp(_^O>%!fze8-D-_H~8%%h6Ol;MFMHrU}0 zfMbElQaJkMes$)`X`larJ^HkFip*po>io4U4Bm(X?+Ro*3S8a(!Qb;Ys-Xy6XT-wN z)lQr1K5zBbI$$denHKgJmH|K{(r>wN8lVYs(pguHvtM+^3rHKdVa9fM7=$XQhvCNW ml=u^%bT>3l%tMU!^ifPIo1*6)1oycT7D7fsQM^tR5d44CVL=Z7 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_43.png b/app/src/main/res/drawable-nodpi/weather_magical_43.png new file mode 100644 index 0000000000000000000000000000000000000000..0574cf30cbff2b9c25dd9eccfc8dde51483fd07c GIT binary patch literal 14940 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 EKfwSb!2kdN literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_45.png b/app/src/main/res/drawable-nodpi/weather_magical_45.png new file mode 100644 index 0000000000000000000000000000000000000000..2b6fe7f6edda2537ff0ab489dc5bbc24f8da1fd0 GIT binary patch literal 12223 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

Isf!Jw&LNw zvPdwU9EQT`#eHnI(ABguyQ$*X+UnjL9?qRDs~K0eR@b(%vm;DMYwc2P%)k3f<58Rv zgiV%2QgK?YMO2Q$1+a5cGgDJDGmCcx1p0Uxn3?KHZ~F@IhKSZRFH=Et+lk$c9@-o=jPWCOW}M+AZ9JW;=>w&%_HOW9x^K6>UJD z`$Tm=jqHwajEI#EP;5r|~>%GpXgcnha>=gfH<;FZeGot{pk) z)()pff&csgJ5a>^0$KjfX~#9=dmPxn{d_OUZ1Xd+&|lmpzY)9F97M=efD}||JFMeN zl#<^j)ZTCGFtb}UMj?j3KFB7tCA2@@NdIFFVA?2s%XejDd9I{<#OxaId~L~*Mx}e- zw_l*mdrdN1I2NJ1oe_&|9*z>Rk~UEa*AaMlxf&T88*AIFo!eYjHM0h=RZ(e_Nga8P z+j7hc$BDQT_i)t-Hq^BXZlB$V+O@rkM#EqFeMuN)${|>Y5FS8XUB@qM;fy-Q<3%E* zp%Ev45*RftSO4@+t_MpYV?N5;L&sAmXXxY7B2n}dCr@b}^A}+erbVIb-p%7E-GV~} z3vai+tF}F_5uuHUBmDaa>>107W~V!(-MgLK+<#@DQrxjEnjj(wLLM789Vnl#F!!9D z@FF;uib|ofdU@C+z!Kyr!!m;V7%WrAd#(rA9#F)~^7BchCt9k&v$0@2*}JTzQ5IC zji;O-z#sFxvxefq?HmrAn!TW)TPbO8OB-9;3PmIKfXX~qC7a4sHS$BDcPn*Idhf$b zNGek8X#FPk!TvQkSQsT7FHJ&9`k34it=w+ZBG1bKE`rG1z+f$8DY{muJq4eM7ST-( z#h8+4Pbh8@k?`MKjPAqJx6dmJbLmO=$1EDLVa)9CBXEu+84WkNn%;wQG`T3Ic(An; z))*Oq<(%YX>>MB2qhkyD$8C_!?H0Deq=1*jKg^g62KN3L{rZrIt&L6H05qSlt#j=y zbWJqXam)Rl0Gpi0Rb1A{SC%&_yp~L~ubL4oa%9l@zoJrp1{CiM{Aci2M>(%FVde$j|Bx+mFQX1c$wLy>c8SgDtG; zcn4NSs$n-9e%CL#dNbJbxaKrRM~{634faXmEp1IAP$VnmN1Z*~fcpng3OgaBItGC0 z^CaLjfcT3z(V5hJxTT`DSw;2wnNxg=wL6ISIS7-bkfWu>!O$h8N_x2OF!wS0c4M%+ zW|lc7h2HjIPd#`wIVv=)ug7eSHuzLLBC!|+MUFQ$uX%tF12N0tM`1al`JCqiRl!X5 z6M7Jvr#;7ViR}8|)%Zbq53L&y{fh~4w#N@aPU2?7^97YO8v zs-GnNzD{XmV_wv{!B<0dT8MGKifftitqpA`-GgBwep%*lh!n$vKHbOWL^GW$8j8ec zP2=KKV@o*OGT(<|qosXF44Yhc=|(Vaw>+wX(%FX|{w=-5rFUr#@ZJe=Wkemw zMwwY9T7@F@m}}`%6uu*WhKnhlIdihJ<$W-XxV>O+PGHgeA1i*l+ZkB9e`hUlQNhFvlg7+UfY;pnXR_|QKeAz|> z{?KZmtqz4Rb&f`@OVT8Qe9|5|ZGJ)j57S07Qw4Ra>yD=`e)Q>_xDHk>q^l)krNSW; zX$+&(Kj54Ulo|ivxRK#uF!;6GJu)LO_DnS*t~Ycp)xj<69QZ@WwuL1(A0Ms zNF%>$Pwy3{p|5u(JvZ?e{wpOfN@y>x)Bd;I$PYNsh_8(XJ@_cdZu#fwzdxLo+-7nlGI|RpynPm za!a=^85rYAq(e97A}R)uvzzMYdE|ea6c(~VLK(>oCL-FpfW$d9e_Bs#<2>OnWO~?j z)sGv|aN?DbPHpbaKQ%N|WPz$ist;@NS_=E#?3a)TL3H943uf^g=5jS-#6@7q<<+f?g+y?ZFE=SJKeMn z+Lq$3JOc_)%WWp9Fb4%0a4D`fW7xfSsB?Dr*~Uk81b;z1`N)(=zrxyi!lSvdM* z;bBB2oA%H@ktkyC^LvL_t2(?Fi*^=JnZ=&WQMrRDX7~!GHuPb!X!twQbPp3rA!heC R=(}wgIVoky3UMR<{{y~+ZN>lq literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_47.png b/app/src/main/res/drawable-nodpi/weather_magical_47.png new file mode 100644 index 0000000000000000000000000000000000000000..ae114573e2f1dd5616e8679b603754bf0e3caf53 GIT binary patch literal 14996 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 MyoOwZjAi)$0CfFEo&W#< literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_6.png b/app/src/main/res/drawable-nodpi/weather_magical_6.png new file mode 100644 index 0000000000000000000000000000000000000000..595d2863d48566690774eb8e785ebe963700621b GIT binary patch literal 12440 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 MyoOwZjAi)$0CfFEo&W#< literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_7.png b/app/src/main/res/drawable-nodpi/weather_magical_7.png new file mode 100644 index 0000000000000000000000000000000000000000..6101bd1dd8f66334c0db67b08c8b250e74fdb9d2 GIT binary patch literal 15756 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_8.png b/app/src/main/res/drawable-nodpi/weather_magical_8.png new file mode 100644 index 0000000000000000000000000000000000000000..10a3729c628a569c5da7247d07de24797e391f20 GIT binary patch literal 13232 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 B6psJ^ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_na.png b/app/src/main/res/drawable-nodpi/weather_magical_na.png new file mode 100644 index 0000000000000000000000000000000000000000..b5e542d41c3af1de3cdf4a88e65a7a6292209783 GIT binary patch literal 2460 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 F{tqy=^n?Ha literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_1.png b/app/src/main/res/drawable-nodpi/weather_miui_1.png new file mode 100644 index 0000000000000000000000000000000000000000..a4a3b8dc1e6e6236d5b0b329d2a1e3d2f66817e4 GIT binary patch literal 7383 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 F{tqy=^n?Ha literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_10.png b/app/src/main/res/drawable-nodpi/weather_miui_10.png new file mode 100644 index 0000000000000000000000000000000000000000..e3f443cebeaba49c648bc28201bc01b61d2fceb7 GIT binary patch literal 6314 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_11.png b/app/src/main/res/drawable-nodpi/weather_miui_11.png new file mode 100644 index 0000000000000000000000000000000000000000..e23f492735d991324799713708629330a02699e7 GIT binary patch literal 7506 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_12.png b/app/src/main/res/drawable-nodpi/weather_miui_12.png new file mode 100644 index 0000000000000000000000000000000000000000..e23f492735d991324799713708629330a02699e7 GIT binary patch literal 7506 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_13.png b/app/src/main/res/drawable-nodpi/weather_miui_13.png new file mode 100644 index 0000000000000000000000000000000000000000..c2216a62a61ac9b1bacf2766d8e2f5b4a1a1cdd8 GIT binary patch literal 8002 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 Ef=n?>-v9sr literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_14.png b/app/src/main/res/drawable-nodpi/weather_miui_14.png new file mode 100644 index 0000000000000000000000000000000000000000..e3f443cebeaba49c648bc28201bc01b61d2fceb7 GIT binary patch literal 6314 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_15.png b/app/src/main/res/drawable-nodpi/weather_miui_15.png new file mode 100644 index 0000000000000000000000000000000000000000..c2216a62a61ac9b1bacf2766d8e2f5b4a1a1cdd8 GIT binary patch literal 8002 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 Ef=n?>-v9sr literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_16.png b/app/src/main/res/drawable-nodpi/weather_miui_16.png new file mode 100644 index 0000000000000000000000000000000000000000..c2216a62a61ac9b1bacf2766d8e2f5b4a1a1cdd8 GIT binary patch literal 8002 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 Ef=n?>-v9sr literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_17.png b/app/src/main/res/drawable-nodpi/weather_miui_17.png new file mode 100644 index 0000000000000000000000000000000000000000..e23f492735d991324799713708629330a02699e7 GIT binary patch literal 7506 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_18.png b/app/src/main/res/drawable-nodpi/weather_miui_18.png new file mode 100644 index 0000000000000000000000000000000000000000..e3f443cebeaba49c648bc28201bc01b61d2fceb7 GIT binary patch literal 6314 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_19.png b/app/src/main/res/drawable-nodpi/weather_miui_19.png new file mode 100644 index 0000000000000000000000000000000000000000..0c6f985b8a514adf7ed5cf63e55361ad8828589a GIT binary patch literal 4690 zcmV-Y60PltP)C0002(P)t-sM{rEu z*vHMpwb0DQ+uPgP+St&}%ek|sprD`QRyr=H}+Uy}RV(lq&<>kY}!>g;Su&}VXxw+!v;^gGyv$M0Qr=zj4v817#v zpq|K=N~orxv$M0bw6v$Ao2#p<&(6%l!oa?rV#~_P&CJTXySw3=G||w|#-LrUmvY3z z!ggq0&7V)mqFlzCQs}l~$DB~PnPjw=XBap>p8x;=PjpgFQvd-12n7QS1>6wRC=nkQ z+%lxj7S%zo94IhR#W}W_$YEh3j!SI4y2inRL3ClSo_AGG(1^0*KZurfrJH^2h;N~_ zUoO|J0Ye&GsCJXF)7J2#000ohNklF;O$X$X>MU9V3B@RRg+j`0V57vvAC-AFd); zJBe9(z@O3g#GoafW`8Am1DRL5ISx$?Ug_uQ-h?+W@QVG^i zWS^t#e?Ei$#%Sa9^^M}yQ!FejAjQHWg8<56jD;yO8DPjpGDb-P(oYBJQ`gON?Vl?f zjnQDx>;0ktgjbJ%5EP3(=I4zm-U==Xk9OERMqk}0bA-r@G`+pl*(P#cO0;W6T72t-yH zv>83XceX%>j{z1L;Kz^Gw{EF~nSb*kg?NBihA0-76~egTA;bvkNUeeaF#6nlqQCIW z`oG38c_aW2Zf+O>Dewj$%b^+02`xo-c2)rZ!8f6|U;M}ETj2ZwAgRwD0K(0~jY2So z@xwwm6AVDgH=%ET9zIO}XOS9!^uK+(CDmIG@U8?HC|;4TWu{m*R=Ac#g2)s2CUgbh z>d#~PMJ~YWyXfCS&;$MfHz0VsxOly|u~B)bR35Z5EQFZg3Cu92z6*d!f1wEa4^jZH ze5(`y@bUK60RoO2xzd?Wx1Mo%fV!`|STgS)wMW>+G44VKf?z4RL`G2w+|TvB$6y!O1E>PkAeXUo@ZGNhwgWCMIvoKB)$z^-+_&zH^izQG*g}YN zYXVQBc7dOR6t`g9004OFAixW#qOuqNLI8Cj(0D?Yr>FZT4uom9+mDZgaE{%`RoE-q zBBT-kK?lHCqyERoElPfo2Z@&#(FfuCFa!f2kl>LCvDE^r!Z>(=)c`D zK}?+Vk)VD*H4vfw)OwUwa0EOEIXNSyLjbCPFF>aQ`Yi-_dHEU!%7Z?{z1}IB^(Mvr zeUojVGI$TL3(x}E5cqUBV*z{x2mlOdy|+G+1gQT~pBDG^`)2b}D$#NTp#?GrlL52? z?f?Md;~oHB0{NwvLZJX!g?b?_-y|CVp@{_TC+!2Z0M>%VmAozmx);z8@(lP6z=h?V z^y@DaU+Jd$7DzLaX$pGxAdYxtQYiTLeFF5sby}kq5 z+z6z9IjIZWATmJ80JsV`16oV~0QG`s;~xbVb$cr##*Q}Qee?1XOCU99=pYoe4KscU zJixL8xMKh|0Lxt{fHK_Y3NK#VMHz49)iT5m8i8?%7Q`H=EYpVIn*azrfXu*!bpZ4o zK>@U13R7bh?yChN*x4Zh0sw;ExwC*b1l|%OS`0%6Tnjk;dquDbd(AlzrI@3~a#>7> zTcCRqE(KL-0=B>b{PZmlI3Pt}#ko27T7nyV2eC9~W7RQ;1>nJ@S`aqDqHahEK+8a} znCL;<0|bBwbdQOn{+!bnf=fFGjpSOCrNg;dhl~Ru0NW1=Dz>B#OEC+$5domd1UL#v z&^vcEpgnosSuoWBn|~SmYwnX+wOz2I9$Y>Rk-%B7PK%-0l5G<{+bM)22Ix1PzRCah z2&+J*x|`4ubN3%O6qeIn1Dy|7@FXc9N-1o;LR*b)@RJw-%nQH@ksN^knLKd%C_nd`F>+9ybBJltpbQU1$NI2`U7DJKOP4jdBz=8vbMxrt@BM^sezUNH{+NCu>*>qe~1&v|71K=eW*ZhV9us6i1>a>L?y^(v!sG0qWlvfUG!xuTe4pI)DH@EWzcImY@#$Wjc3a z8O*7CwM@rQ+Mt9<+|;Q6tV(x$Qh%S&B({=XkQ^Ckbg6r7ba_?;Y6KI0Jy1o(eM_AeYB6sB8kk=-l@J zZw5~Kc&gS zXJ?IuI6(Taqf60`;t^;&X^9dVP$K>P?rFb&g(YAIme=V8OF9pPB>;fUGw6X4Ed)b! zU`%^zpuQFJJT6W0r8Sn{26@aM^{E19l})=4CIP4k(1E@Xz?O0{t=JRAz5F(2zu({Q zUr`Cj0O^6MJD1xYsMeO(H^qTI_P}rqJ38zt$+S^>Yc1hB35$MdySvT$r~Rt|x4;27 zux@@sSAa+X)+^a#n30+vGpWLj?whz!u!(R|u-`ZZf|_f$tqh*(?L>2>{ms z&r;nnOp{A=l6oR@5GQ?1fBzKq`-fn_E<7z&U|n7-^Z;oFaAPo{g`f}TDBMY5IV(*d zh>OCF)0WuZXLXP#{|BPKxlV5$$&2>0765v{I)DVUjye&}S=?TWsc&oIs?G!;e{}`v zqXD3Qh83voRTUr#0Avmi96%rSx4X8pV`+D{gS16{Thu`x0`foHr4Bei{q-8WaZ}Y7 z>KK6LFdwW$0|Mwn8R%BM!y zxzYF4!{Q*rN0-$~s^z-gLbY62L0c3eMsMgeiYqa2y zp7t~u*6cudmv1c3;v^sF%iCtu0ubJQVXMvZ6ZIJ&#n*?s8ps@Y0%2f~=_wz$ zloR5lPV&-!d3!yTUdV0$gy8JVAz+T7blhl^w8E%u)KMPv_e4K$FJ_w2tL61fB7;DE z;1MQ-S3WbkDva7L`90TuqMr+{CrhaXS+yV_h#_c+&wRR@MwNtBnp3Cby*^*)%9oeM z0WvXyO?rND*JXQPQr--OUDT}eEMIl$>-7`vLLO^DPKv;tCC;KoDqgtiGGZW;L2sYuFB47lvloMT~sW>Vy`UQ{v%-H5*;vjn6jd@M%@co?$zY(AgO z`#0?sT2az)1_7KrinWWNw zj3)5AEYgt`_n!*;?PnDgz&oZ(hhM;F{wVMxYbo>bp+8agMM$UPeUnQ6S08Om#TY)3 zp8}Bjue8G_{WE!2M&B_1*atfK{Qn0Z&h%YGzqii(KjL$v{sn}YzwtNz#=jW<0bJh3 U^)$%Rv;Y7A07*qoM6N<$g4SBgKmY&$ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_2.png b/app/src/main/res/drawable-nodpi/weather_miui_2.png new file mode 100644 index 0000000000000000000000000000000000000000..a4a3b8dc1e6e6236d5b0b329d2a1e3d2f66817e4 GIT binary patch literal 7383 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 F{tqy=^n?Ha literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_20.png b/app/src/main/res/drawable-nodpi/weather_miui_20.png new file mode 100644 index 0000000000000000000000000000000000000000..b02eb24b9868a13e5629b3b39759dd0fd84e74f9 GIT binary patch literal 5556 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 OAvkl&%&_DnnfgD?Gc1Mx literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_21.png b/app/src/main/res/drawable-nodpi/weather_miui_21.png new file mode 100644 index 0000000000000000000000000000000000000000..b02eb24b9868a13e5629b3b39759dd0fd84e74f9 GIT binary patch literal 5556 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 OAvkl&%&_DnnfgD?Gc1Mx literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_22.png b/app/src/main/res/drawable-nodpi/weather_miui_22.png new file mode 100644 index 0000000000000000000000000000000000000000..0c6f985b8a514adf7ed5cf63e55361ad8828589a GIT binary patch literal 4690 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 U^)$%Rv;Y7A07*qoM6N<$g4SBgKmY&$ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_23.png b/app/src/main/res/drawable-nodpi/weather_miui_23.png new file mode 100644 index 0000000000000000000000000000000000000000..0c6f985b8a514adf7ed5cf63e55361ad8828589a GIT binary patch literal 4690 zcmV-Y60PltP)C0002(P)t-sM{rEu z*vHMpwb0DQ+uPgP+St&}%ek|sprD`QRyr=H}+Uy}RV(lq&<>kY}!>g;Su&}VXxw+!v;^gGyv$M0Qr=zj4v817#v zpq|K=N~orxv$M0bw6v$Ao2#p<&(6%l!oa?rV#~_P&CJTXySw3=G||w|#-LrUmvY3z z!ggq0&7V)mqFlzCQs}l~$DB~PnPjw=XBap>p8x;=PjpgFQvd-12n7QS1>6wRC=nkQ z+%lxj7S%zo94IhR#W}W_$YEh3j!SI4y2inRL3ClSo_AGG(1^0*KZurfrJH^2h;N~_ zUoO|J0Ye&GsCJXF)7J2#000ohNklF;O$X$X>MU9V3B@RRg+j`0V57vvAC-AFd); zJBe9(z@O3g#GoafW`8Am1DRL5ISx$?Ug_uQ-h?+W@QVG^i zWS^t#e?Ei$#%Sa9^^M}yQ!FejAjQHWg8<56jD;yO8DPjpGDb-P(oYBJQ`gON?Vl?f zjnQDx>;0ktgjbJ%5EP3(=I4zm-U==Xk9OERMqk}0bA-r@G`+pl*(P#cO0;W6T72t-yH zv>83XceX%>j{z1L;Kz^Gw{EF~nSb*kg?NBihA0-76~egTA;bvkNUeeaF#6nlqQCIW z`oG38c_aW2Zf+O>Dewj$%b^+02`xo-c2)rZ!8f6|U;M}ETj2ZwAgRwD0K(0~jY2So z@xwwm6AVDgH=%ET9zIO}XOS9!^uK+(CDmIG@U8?HC|;4TWu{m*R=Ac#g2)s2CUgbh z>d#~PMJ~YWyXfCS&;$MfHz0VsxOly|u~B)bR35Z5EQFZg3Cu92z6*d!f1wEa4^jZH ze5(`y@bUK60RoO2xzd?Wx1Mo%fV!`|STgS)wMW>+G44VKf?z4RL`G2w+|TvB$6y!O1E>PkAeXUo@ZGNhwgWCMIvoKB)$z^-+_&zH^izQG*g}YN zYXVQBc7dOR6t`g9004OFAixW#qOuqNLI8Cj(0D?Yr>FZT4uom9+mDZgaE{%`RoE-q zBBT-kK?lHCqyERoElPfo2Z@&#(FfuCFa!f2kl>LCvDE^r!Z>(=)c`D zK}?+Vk)VD*H4vfw)OwUwa0EOEIXNSyLjbCPFF>aQ`Yi-_dHEU!%7Z?{z1}IB^(Mvr zeUojVGI$TL3(x}E5cqUBV*z{x2mlOdy|+G+1gQT~pBDG^`)2b}D$#NTp#?GrlL52? z?f?Md;~oHB0{NwvLZJX!g?b?_-y|CVp@{_TC+!2Z0M>%VmAozmx);z8@(lP6z=h?V z^y@DaU+Jd$7DzLaX$pGxAdYxtQYiTLeFF5sby}kq5 z+z6z9IjIZWATmJ80JsV`16oV~0QG`s;~xbVb$cr##*Q}Qee?1XOCU99=pYoe4KscU zJixL8xMKh|0Lxt{fHK_Y3NK#VMHz49)iT5m8i8?%7Q`H=EYpVIn*azrfXu*!bpZ4o zK>@U13R7bh?yChN*x4Zh0sw;ExwC*b1l|%OS`0%6Tnjk;dquDbd(AlzrI@3~a#>7> zTcCRqE(KL-0=B>b{PZmlI3Pt}#ko27T7nyV2eC9~W7RQ;1>nJ@S`aqDqHahEK+8a} znCL;<0|bBwbdQOn{+!bnf=fFGjpSOCrNg;dhl~Ru0NW1=Dz>B#OEC+$5domd1UL#v z&^vcEpgnosSuoWBn|~SmYwnX+wOz2I9$Y>Rk-%B7PK%-0l5G<{+bM)22Ix1PzRCah z2&+J*x|`4ubN3%O6qeIn1Dy|7@FXc9N-1o;LR*b)@RJw-%nQH@ksN^knLKd%C_nd`F>+9ybBJltpbQU1$NI2`U7DJKOP4jdBz=8vbMxrt@BM^sezUNH{+NCu>*>qe~1&v|71K=eW*ZhV9us6i1>a>L?y^(v!sG0qWlvfUG!xuTe4pI)DH@EWzcImY@#$Wjc3a z8O*7CwM@rQ+Mt9<+|;Q6tV(x$Qh%S&B({=XkQ^Ckbg6r7ba_?;Y6KI0Jy1o(eM_AeYB6sB8kk=-l@J zZw5~Kc&gS zXJ?IuI6(Taqf60`;t^;&X^9dVP$K>P?rFb&g(YAIme=V8OF9pPB>;fUGw6X4Ed)b! zU`%^zpuQFJJT6W0r8Sn{26@aM^{E19l})=4CIP4k(1E@Xz?O0{t=JRAz5F(2zu({Q zUr`Cj0O^6MJD1xYsMeO(H^qTI_P}rqJ38zt$+S^>Yc1hB35$MdySvT$r~Rt|x4;27 zux@@sSAa+X)+^a#n30+vGpWLj?whz!u!(R|u-`ZZf|_f$tqh*(?L>2>{ms z&r;nnOp{A=l6oR@5GQ?1fBzKq`-fn_E<7z&U|n7-^Z;oFaAPo{g`f}TDBMY5IV(*d zh>OCF)0WuZXLXP#{|BPKxlV5$$&2>0765v{I)DVUjye&}S=?TWsc&oIs?G!;e{}`v zqXD3Qh83voRTUr#0Avmi96%rSx4X8pV`+D{gS16{Thu`x0`foHr4Bei{q-8WaZ}Y7 z>KK6LFdwW$0|Mwn8R%BM!y zxzYF4!{Q*rN0-$~s^z-gLbY62L0c3eMsMgeiYqa2y zp7t~u*6cudmv1c3;v^sF%iCtu0ubJQVXMvZ6ZIJ&#n*?s8ps@Y0%2f~=_wz$ zloR5lPV&-!d3!yTUdV0$gy8JVAz+T7blhl^w8E%u)KMPv_e4K$FJ_w2tL61fB7;DE z;1MQ-S3WbkDva7L`90TuqMr+{CrhaXS+yV_h#_c+&wRR@MwNtBnp3Cby*^*)%9oeM z0WvXyO?rND*JXQPQr--OUDT}eEMIl$>-7`vLLO^DPKv;tCC;KoDqgtiGGZW;L2sYuFB47lvloMT~sW>Vy`UQ{v%-H5*;vjn6jd@M%@co?$zY(AgO z`#0?sT2az)1_7KrinWWNw zj3)5AEYgt`_n!*;?PnDgz&oZ(hhM;F{wVMxYbo>bp+8agMM$UPeUnQ6S08Om#TY)3 zp8}Bjue8G_{WE!2M&B_1*atfK{Qn0Z&h%YGzqii(KjL$v{sn}YzwtNz#=jW<0bJh3 U^)$%Rv;Y7A07*qoM6N<$g4SBgKmY&$ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_24.png b/app/src/main/res/drawable-nodpi/weather_miui_24.png new file mode 100644 index 0000000000000000000000000000000000000000..90e7f063bdcfca38fc268e14da70cc1ddb06da82 GIT binary patch literal 5558 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 Ef|T#7!2kdN literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_25.png b/app/src/main/res/drawable-nodpi/weather_miui_25.png new file mode 100644 index 0000000000000000000000000000000000000000..0c6f985b8a514adf7ed5cf63e55361ad8828589a GIT binary patch literal 4690 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 U^)$%Rv;Y7A07*qoM6N<$g4SBgKmY&$ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_26.png b/app/src/main/res/drawable-nodpi/weather_miui_26.png new file mode 100644 index 0000000000000000000000000000000000000000..90e7f063bdcfca38fc268e14da70cc1ddb06da82 GIT binary patch literal 5558 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 Ef|T#7!2kdN literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_27.png b/app/src/main/res/drawable-nodpi/weather_miui_27.png new file mode 100644 index 0000000000000000000000000000000000000000..2e4ec962b783cc3edb1341b55a643c86b6a59db9 GIT binary patch literal 9077 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 LNkvXXu0mjfP)nmP literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_29.png b/app/src/main/res/drawable-nodpi/weather_miui_29.png new file mode 100644 index 0000000000000000000000000000000000000000..114d37cb5b9f024f627d2250178b52c6af8b83a4 GIT binary patch literal 9157 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 F{tqy=^n?Ha literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_30.png b/app/src/main/res/drawable-nodpi/weather_miui_30.png new file mode 100644 index 0000000000000000000000000000000000000000..5adc15bf57eefac7d71d442aa1e7fdc0f93f7cb1 GIT binary patch literal 6917 zcmV+g8~WslP)C0005+P)t-sM{rE` zr8)JZKJ=L~_MS5NyGitwF!G5l__RCnh%ETDJNdIZ`L#Xyv^nvIEb@sh__I6swLbZ@ zJ=fLD+S=6lw>|i^JMo7s@rEq$hAi-iEcdxV@rNw=wmI#FEANRc`MN;xh%D66#_)zL z_qRXzyhQMbEcv}Yf+Sp)Vb;3(a*}h>E+(-hb!~GNb$Z%=-kZm zlP~RtE9K9a<=4OG(4^STxb1~2^3R0wlP>X&E&0Ab-nx71gDdsVc;V8t<-TXs#;5eo zLGhI_)Xcf(-p}vRl<3Qc^Swsj&7|{`FZ$Aw^|3thqBz;gvf{{&{?mu!ziZaZv+2oi z^1w#)%011wmCn4B^qex-v~ljrPVM2%V_9 zK-S2u$DCL2=)6$vgevu_IPi}x`_q!=!E)2UpxxNc_n$O_4mTmKoF7uEt^OG<1mN501F!Yo!`LH_moiX~hK=-9H`MFQ_p)&ZZHT=e7{J>b> z-`f4mbL8dV{Jufv;Lzvn@As4)^@<>o1AI3C00543QchC<0RsdD0tf;N4-XU>2NMh* zDkT2?J~0;{C?riCI8t|3GW{7wU@dC>Hwr=#I2!#0T!Eb=U~T;_MEyNlf=P9)NoRX@ z`{YsWQgZx``#Ou{kEZti?%epV(unkKmhg+f{{H^;kX3c)=y0vHCXVH7c z+{uu$nYXawf!U+L*PY|=0?z#L+mUuvD*yl(H%UZ6RCt`#n~7hH>-)zwODAPWlPsZ( zHYXKDnv~K)T1X3tR65AgAX4e*NJkE#siu9;`9pu7>$>jyd7f#LbH3l->-D{uRG82E z{#?s_KhrZicKpvqNKowf{|ypc3-I5ku*m(gar_qzS*L8X*@CpKU;d{d@KmCW-!>(_ zN$}qi!7nN;{|R|fCjgSL+wBf|AVNd=qw&GvusiVgHg-q;PsqPUuo#agR?4Iox=nc@yZ zd*_~=h~4xH!JlxL5TVKl@!_A?pxl?Tvm@)~!bN*sC<-fsQ4T*15Mr*M3(r{kPOZG3 z<2Z+Wt}sjlRg(Y21FJl%hlPcOQ|yk2h|t1^gMv9U0wBzCKqici_<8qTEKc$f6uT%$ z?|{T13Hnqhv=c@-m?mtWK(!v%9_fdZIw?nTL`5As6m{s}+F%TELfN2Qpi0ml{G9&| zhbvSqeiti8MeRi-?M+HbI+hf3%nW=ZNkNDY z3xjG2qa(Lxf|-9i7eDDorFp%1MMdT1MMa54iSe-s39*+iD3rJrLAFQ9# zzn7Pvhae9UL6BLHeD=&5Q+h*kVGgGc8dvmG84j90DAcj#~$`S68`6jJoK+! zD=8@eL1n?6&21KWbljk=BR&A9xgIWo12o@dCQlZ>k?Z zu6|ry{r<_5V1$dQsuGNDu$1Cvg=hk>{?6SIyD<33fTHqZk*8>AXn4`^;>oRB5I3T_ znh>rl1mxkOPJ@L&kAuxT2r_{6Bct{nK?Nv%QvZ{p<;|O0uP)u4TjZES+?}6(3>*3f zi9ir8UNqCd1bQB91%L|B`T*E}7zV^9ivO(t=j+#hzW(#phf9lfb@%G(>R6r$=IQac z8VL765SOh97(ph2Iwm+atwY@bhW>FfATd5q>q8##;dR};d(ZCOtK+rLQ%p-N&(AME ze&2t8ATC>(z;h`nDaeCR?t~32kUdBy5FLGXA14F$CC0~d{b~KzP=BWNmH6cJBt>9y za(WpEgFuMO&gPE1kc!Eu2=r9mq!)t>zzE-e_yBgl1OOy+{fR!QKO=Q=pX8y7m<`O% z1~?{x@MI7sWWxm7B~q_mJ(hGp6R53mV*oBeod8t8frBwuW0T_(lS{5C{gr20e~ttC z5TBhgVwN~2m#h2X0Tts}+NZ7_lU~r9BX{CD0Nny={iuKghmx)`KuIP6fS}`F3K$}liApscr zb(DUn&yxDo4D`oF$05NvVLHSmpwKHT@d(3zWM#5h_Q*8slepp{`*33l!xNMLuMIlI1575Ay5q1 ze;gG6fD4zC3+`lAX8qCfTIBEX@<~518JL+E^ZWhdq)i`3M!tO;836>@FgqDg1V=Au z0@DK7me=mXHr0YC05agpm+xd=ugq%raF65{rTmsj9@U5BkBzb@RMj8f zI7Y^SFclzzI3h?*)k&Z_43#9T1JDWBsSV*rJ&z`-WRr&l$-96p=bJF|hHmU#u z5K*nI2q+Izf!V?P=!LUKk6MyoG(vC@a0b*S1OvDNQ%N5Qc;4TBk25dXU*_fu1ZKvl z_WZ%hCILK{2~-ab@Ww!`C?i=-WVIs%8(_B@aO}i+*3ZBG{K-4Y{QNwR-bomM&YumS z`%&?zzs(5PgZG>SwK*#b1i)_F1VFdoiB!?Q{`_-Y-SGS}?K;am^k=ElQRoxnD7(!8 z{Nt!Zl!5GxG!Ur@cw5w)Vo2~ttY*M|qXH=bFkrZD5z@=cWImN24ZE4qF#v2Lt_eob zjkCNjU|UE%AJmGDp#6YehcOL61sqJm2)N7%=zmv-!e6GzBl`}GKU5z&ZEFA{32|}x z*{6+pXaHFIfB@{43}6PGPd$2C3|L&8pTr(VwHM$mZ+42RZ**qDzlFX6K(SCSX5)Aw zjUZ)c^nsZIxfI{CQyFmL{6zqe0bds9)OH_G8!xs0D2jY+WNQFr!C!*|*#v+_kSgFZ z+!%m*;5ZLKl)%x`+4*b$>to%#?V;3|)Isbp8;}YI z;_|QeS5pF5f5zN%>En;}M@9$$RR9Nwz%q=CA}|4hGJqj)@#4|5aryWAhuHw7KSltf zqx{jowLGT)`!fIngWQQ1RT*jk>Vu5{WC)-Hj%MfQ558ZVm`Hu}4kt)RDgpP=3r3!Q(@Q!E!P)&f1NHrk? z+<&r2M~~TA^50L^kN=E5=U_&1AY0P;V+YxSZ39#bz|@3VI6?S-EU(tDiePGzH$`PZ zl2{|NNXbU}WTH^-Ta2!TtP!J7?9o;2?G49_xOn_rjfg8b6q10?aW0cK&hg{EyX5 zc`8~4Sboo^!?S8j;!(ggpe^77p#U6U0Pe!?eHQFz zm4cn?0Mu!KugDa@005@B2MECbV+O0b(pLbF8Q`?k0J>m*@GRBjSf39?1i%~OMb3Z%u&;5z5#+$p z?CdxVFiQK-8iF+pBOB`rz~owh{Tl(;9jXSD15$+3T!R$;buMfiqVH#U&VUtw_d|6e zunwYN06LPNKFy~A0T|<5Sh-*FCe*4Fxtir;E4>%90 zvxpo;@W9%~r)C4g(-VLHJ>uU&Ug-w`@PUA8kWyeX0Gzf{r%wI)>&b}lh~3BYn%^R7 z=yk~!T$B>P40c0#*6|Vl_wRpyKeyDeveYp>W)-Fw9XI9Ke;i%`JGqRPj0WgbX4F7< zn9I061^}s_Oh0qxOk_k%_uIG4kFGT}{qbi@3$6<1aS)%SYY}?F@$cWi52sWFDpuN3 zd`qk6zW+TkZdo~AB{3IIkBKn`SYGZQ0013H=vBMDQIV0mh(H54ZLFVuCMPW??PYg& z^R>pNCVE+_<@3$D#mTAJY1)#g8K(N5L^zY+-0E*NKem6^S*5EE-xu*gg(74{h_vFrK3VFO=c&s`lZz+ z-^z;5o#BaISXfzF?Ff7y;l=aTk5yBe41HW3(@S=E>9YTNKD|ys`mx@GeQ9YqXU^;j zbDUB?fC;=; zUUoMl`kI=Wen+&F`FsmYKxo6VvG|m>rRa&;ZBl zRP>?(URZhZJge~0wMUtWc;PoT!7C1=pZpbZ%EIzvUhnDr5kkFT=Ay z3kAf|60CQ-7owxxt$>K;@PTW!WBU8JsgK7@0I#ErMu3c*`k4Fj; z*a89|f>Snh0lF~kB>9gD?B*_fR6_(`d)=N^Pqf$_P2wImc-;6NP@?gz=;#$n(bV{a zvHYC=~e>Y4f(OD0OSJ!{s{u~hhf1JJk@=%ATN&+a3n_npicnKQ#1o| zyad2SK>9V5gRft|W{{|xR~#*>9%5n`{s@4j;qS_PdOZNbzj4s38DHotda9;JkMPWJ zxC?(3@=s;TK5DlGh?(*d!Ofpj4@Of0Jnm>k;G3TK z>#x5?@t6(ZCs?HJ$Ky+VJwE*Q^>_3Xe&m3kdl13PE8d(lQRyZCj{%e*2)equiW~d- z`i4MI(}^_nc*yc-`jC+!-g`W`9uG5!5fm%Ke@RR|e*9%t*8kg=;d3jip4+!?_qG6F zXlUqKUvY6UOuljjRd6QVNP&~50BXSd;6c|zL?Z)qc6RoBB*RH4gEZY9_QHeDGjcgA zZntkCdSziDr5fURRMQU;MZLbZD#f?Dx=IdtdVViN2|&MG01#=^1t%H6#tr}=?ZJZw z20-V>j~`L|yl85CAdnY6v|?Ls1`+r?xw#&Zv6~e zIRUU>+M#K3~8MkH$0xQrpr)x;PuKd zR(*IM zb}Jdg z&0&4sj?6hg05pppbQL%E6*tyAy-`-i@?~Yz%6Qb{S9>iX(7LP6ovTHh(@}MfSUQNH zwDz{-4B_#)d3d%`GSOI1pLPy)8TtUQh3s&e7FnBz<06ajt?toFjc0MJV1aE>U5;~eFsg9u7X%gS3-YE@)*PTq{oPs-VZuN^PNQfySwl1-W4k< zZW;)j3{=C7cDP6o5>Gp^!4!LQWCGc3PJJkK@`Z^ji~wrzuV^d6Kdq_34nn6xJ|9v* z|MTb1AE5jhzbIb4dv%vXrNin%M-^vJIf>_`&8Vx(OEZuz3qF1N6r!#Sfnc}W!_MSf z!C9b>q6YiHP+wyc4(Lrog#yt4j?X%7eZF<;-K$rx?q0g9Ljb50Dum!hPm6M}6Y7oS zn8Odeyb}VzVfz#k1mM^aj`P4<^k8vcUopWpHkLP*G?p}RWYMiNS<@qjg1eX{(#S7)c;{F8vu-(;sxO3%VwO%iY2Gr*3jlcj|oP;-|9whz> zK*$TKqvZwFYauKvNydc$U5o9DVf6^8^X1SdinRcC7aa^S2%C$$VM8;QdWBcvdd-Ic6Pe}jLO z46hQ6vLk)EAvv7a4}H8i=2Rol{IRK%@8G5Thj&RtM)Li;dt;8!EvyN|kj#Lp zlB!y_A)hE0pb5eH;kHUau{ z_pfezL!Z{~qFeP1fDpYI34jjcUUIpeS)0HNf*=sdi3U!hd`m4~Za+2vM4z9UZ}>NI zpu2#3zyjd107OQy2UH3BOae&;%f$yptf6lOFxIc$df{9H5MsWCg2Lrex3ly8Cp(D(swzurR{`odYg|BXV0g>rpyHX&=?Qy6c?(#!#mrxCVeb zAY=moHo+ira&Kq075y9^~KM*ofaD7#M-zZrtI05yXgF1g9yxgmfW$2^Y0%=dIa zewVzlK}tb|=y(sAvBgFhj>n;$=1z?>)dJLHWoB&Ayb)wFJ`MwUrhZw!aD6Y{c zRjC?Ln-6W?1tMe@GADpDB={{i@}+7;a}?+@P%cOU}|=p~_@*1Ebc#G!H%5~~p@b=K zrC~`#zah*BW9?G=L0iC%9XmF2K%GwQHkAm+no~k3P(rOw?{dfC0003{P)t-sM{rCd zbn_rx^&MOE8(j1^y7d`h^c!3A6rANL_RaVVWj-u^w=z6KSDE zahWbSL@Q^NLPSV)gOU;-F7)*Fe#sLq0000$bW%=J00IF93IPNS5C#bY4H6j@9~>7a zb0H^SRBJs*E_pCIHBw1IF-m%dT!d|vVEz7<{{5-^yUKs7=lv+s`sCnd)3H2m000|f zNklsGy)AMxsVk7SX7f(aaz;tFp-|f+!k|DCYlvd(XX9-85(> z^US+dM5BQ|r_Mchsm6Tx@E@+BzgZvt*VcPz23kYES^sP3DuJ<~e?;M5Q=!-W3R@5u zqfY}`h;Ikw`JdSIkcukTu=*GNk>sT3H>Bh7uiy>6Ko3CoE$zpuCIcGSSgdIT`*n0oHZ^eN06q;1T{hGA>EHQDp4jNT5?+AM9am=Ofx0pO~1y zXDsm0v>0Gw_zyK0>W{ckRbH7uhH1a!ye6h+XQwBK#l!?S;A4=J4Ib2nRwE7!j`@w8GGD!!Kg5ZC-3$Xb%Da zo}T+iJ7(>n!^gF?m6bKYU|cR~hhAR(-i!nLAJHe>c+Yzz!0gA5q&clQ!e3nh0b($t zWrgJM9)k~mPoU3y0$htd!OzUdpwG?n2jg$<9})wSKr9kVCqiFY6kYB;0*3eS)!0k) zp6kT=_;F=*_2W+Rcy(o!gD^8AN%V(dxUVi64DSjsfG_H-CjEp!pO(6-Yh`8i)5_-F zA@Ps|;8QgaZ$)@Zps)Ms@wKd1!3W`2c&)8&ZmtoHHO>So2vUXd37r!LTEoyg1oZH- z*!P8gT9|H5#a?6cudS|r+T6s032;4_W+8+IniYEO>6ZkCdIUro^96nZzedPneF6cj zRpf%qjyatO6QVHax}@Qk3iJt}W}Yx!4}C@K8nAM0%Jpd#f~XX9ZWI}*_rWhD&>}FR zxo@1)o^~%Y?xWP4a2GZgc;So6U{$9AdqI~E!-H0Q+k$!-!21_9rI&X)big_sj(J{= zdHmI}z$`w2!x}RX6#6rAST+Vx58kQ4I((h`HRBUHgKOCR3oO(?d{o`2ML~K|N8lX= z3}WsX7wM;!U3L3}54j!l%gf7ncsyRYJX_1a-`c__=)fXqanQ0sYQRIIRuTI>p!#oO zTopjS{T152gkSb}L;J^n^77+xe7qm>0)J;`Yu-T=)+i1i^&;px18LB2L#+u7>!u#9 z>`VE3@E-5}@ySWF5=|zP@p#Uk%lZ8Q|DVVE-o3poVzBV(Q%?lRK*m50&;yyMIZ&JY zboOHJNQi?}Q7216?T1b|v-P>R=>Gz);?~@be7dBZ03WJ&rs zEWkvd*Y*Ye!UAnSbX+V};?a1ek}c*C`9Kce7XpD?GMB@TyP4MQ3D!67ya>Z5QI$k8 z^fgB=MSZQlw&U&K#zZ1sT5057%o|WmXf6-Bs(m4*Y#)mkkJ0;Stq z*x>0r^1S*;b?X{6GnXu7UsYuQ>MnXVT6rEc)#I+J-K7d-49ZE+AZ31)gR_*(*$ z0$c$+$GJi&TLgY7o32&!sbaELZ{*Y2Y8pB~duWlYX3?LKBk^iB7rpN^ZiAUv1_X$~ z!Msia*_dT1($zwm$Fxo)2&}Ae28K}hYuQS?RLfS&RTRB!G~Ge*SMt?j3Z)S0m(yjm zhGI4sh~kM#Bj3JnUPsQ)!QeX>c!dvFR@70M7`(~DAQjPoj zdpz2aNI3TV;|CX?w zg-+xP8@^Yhd2^A7~!U~5^-M{9hTT_FYo1msB05s(B} zfO+pp!Jn*_QR~QU&>llrw4SeF3aXUQ72A=!88?v;W6!eHZ-KpBO@vS z5dqI}+@C~~!}j68mkvA^sHJMWli+(@GW5`jfcV5T>8ARZ${R9`@ z-9dtbWwIfi-&b~`p9uk4aqb-gBM#PoPoo&cFJ2T!llZZP58i8qP0mt%wF4c+V zkbS9gz77TI~Y$1aG#9ZB#=^_XHn zQ}R0S=Qs_A`@W(hk8oCHfmAQUVGQTiH062E}ksB`~Lrro$o)hx$iCtqd$JQW6A9&6+=#Pv=r~WH@FZCEZBZ z(wM>WN<3FoQYa7@jZrOeTq<=HrF(nZZJ)iKAqmggvD4E8LU02Uh%{JRmjMtBSwEBw z4e1qF*9cTo==3GHpsHa0fd|voT%ee$<0OIst%mwktK{>=c%hgK)VkSjywq)VUV(mw z7{pG`E^cUjf53pgu&@XMbEpAgA{hQ90m=fWAaL95BHs(yMm1h5C(AF$!eXF+C=_9V zLMfU})e5;4d$~KkjiJ5&j3V#7#mHa5z3m0&+4pQW}nqei*C+vKOifU^UTjaVkVbtd(Dp5HD~- zJ&ldOC^_66!A%-e#~61GPpriK(z$ zS1MEiqIAukS&iEzpq!iSXqeZ1CU}1f1)$7NnUZFr^zxho*=Cor|r#EO2~n_YUqdvw*hy6PgbH0X9-Uy`LXZp>gBPp7i^MzN%% zVZ0*lQ3X%vJO+5I4ClZpu{cd65>yC}Jlu?&vJvsIU`mfaLA~ici2lz0umSw7`U@ zgHwjSp?FI5;EZ+F&K_9AP=0_jW~+srHCxnUUmD%UeK%XfB!zo9ILcG^A-qY;L~rz}C@ zJ1l@Yw9Qj7{knlkZ3HU*=nyGjGQosaE4rcG?OqWCmJgmHnaufl=DdXicQe?67cp{n z+6@TOLf%p6gN)yLB958!NKAl}`hox~;Mt-#GIsV>X&&vhLjAEsGy zL14j0G4Sp_KjXsT2;s!epP=`ZT$#)jg+7DYL$Rk7ruxGzfCQjMjGLA7%Orr)?OeB5 z0AL<5j+iE=rVQ#VFgl8vd=fvT0O$mO0`nf0fP{q)028CE#0{_~lpM8&5vCOfE*+N+-{e}I%Bb0M<6ySVCW}cGzomM|Ia=jDS+FA-lONcNH`32 z+2rH}VnC1c^YfngVX?>oXQ!8-aC3Kg_weN#t}xF6xLtOe#cD+aI-dqFd_m@=eo;f zN0~93OhjN3g{VhhbZQa=%uGPVr`yEr0q^nw7$lg1kRc+qh(shj(^JvO|6yGKkb{d5 z!0EP=09Lcv%mgM4qv}9N3P=J%0O0d&YKLQEe#7HM5FVcsr-Ts`Mvtf~CRdn>Kck1a z1QC81CFsjH@3IF3mYfKI-2wtLR?@%-3R6>(!Kg~WBn9}4<@}5gY;0^SZ!D7yb{`Rh zgxDxC5IltKsqtxrm!Filg#4GJ|2MD4yX8PIeT!~f+Ge+5mlOn(adJ$}1C4;WN5Jg{ zfyHfN;K6(3%b|zIyF@}V2s3OfK{?lh<_5$9Q1mf}0sl(~Z!^y$pEfp}Ft^iYv6Bl; z*z6<`m{KJG0i#Ml;%|61e7+5jXJcavZ_+P^pur6@pa93{PgqSmje#(L!2gc;a|xQq zPL`IIoUowP=Cau=tN~2G_{;$KJpv?v+wJr0f7|zLZ-d4LT!4G#(BKCcB*+Uw3N`Iy z@`?RJ{Y$8{)Zw*Sq$AgJ;=uu=_|9R1Tuz zFu3rZ7X7aWdt3CY6fmG~$-T6M;%0F!S?qSRN`M70^azYi;^$O|I1S-i-v-ifXXkL+ zCpgT50`6TOz>7i#l|zF24&^=H5)|9t+u7Tp->IPz?1H4!1?*TH0jt@HEQIgXen@vo z$%GsOQ3yfc^XKiI{e3XlK0G{>6qYe09z8sg40n9%LoD7p_Wt8hz#r`GVE=R&^Klb& z0@~(sS<#DKHk3P%AOakO5Aq$mvA#+~mDuMy-23y-y+e4w<6#C=6;PKzfo1p(7I$27 zcs z01L73*M|o}|MKMs@H@2sEh+$M8k;HZ21Gr$}uo#F63VynG_?L7)Y1E03JBp zIow>@JoHcy=z$J3kM^*!>?IDngo+PZ1pbZD34eZTXAAg_Er*j!ATh8I18ndQW&i@Z zG>`<0S}7m~i=V+_8!9et0(|rE-~a@`Yo5w8mB-M*!NCz|9335fJ37KQd$f4_6oCbJ zczJP&10V=Mek;KL^8fXR)okRMY_#VAAptY6iIEJcumlqHb#r@jdk=o3G0lhiN-AvZ zc)i}8Jqhdu@(%AF!N&vgVW@U4I;aWRDG9L9jUm8a0Vcp68121fhddwxCaaBS0uljh zQSbl-TEqxf-rjbQ9kx7M5)_^jai?D<=3y zv3I9i20$eM24*WP2oLrVFfak5Y09Yiz)r^_THMJ{Ozn2(qRTEgI0c6VQ6q8i-Cpo5 z3f)PkC7P+I{JC9p9TvbUra`*A#XKo1u|a=-fE1V%BA{U-aZwQf=;9ax-)3?8_(dO9U zB9z0TjMyXx)`3V+!V>P{A~}xrvXcf*m(6N(ll$FkHY+z`h))D~`%|I{NCNU#`lm#P zn8Nd*l*?_ml51^LK`pEzS5wMoroqv1x!LDLNAM!W-0nX(@HXDNXaYP7n@v3eavV}4 zfYaG1^TNLxO{fz_GbTu~E$5E9%oZ`%(6w!pt>iHg7NIvjbK1F_E>V3&`iuCRjC%ZD z0GI*~hRguZG4hkmeakA+$i}jmZElK*d&w^3u*hIx*;#iGu&4yg);I9FPS{(cvN!`3e|0TX4zy}nmfvgEc zM}Dsoku;<-M$@}XBdEXD)RZ27z=BM{Fi8x?XT~SB7fBXIK}7vVi;eb`AAMq}i;?y2 zm-z1z;3whzB*B+ICixI!#01gLsV_i%cyiC$&Zo4Ui}LqAz8ZxoF`;TNLz84K#@-M3 z-zEp>sOt1D?KSFuoSgaJNyq6p&nC0001rP)t-sM{rE{ zx;XW)HS?%5@SrjBq%-cCF!!%D@t-p3jxFbnEbEXh?vgI(jxFPfEApT;>5DAsjxFbk zEa;0Y+k+|m#9iu*EZ>DH@|iIDwmbaCUH{{;_NO%WsW<(~V(*nM{LF9qw?+KZh5Xi! z{n?oFkS_Fl%y{Gv{#GdZT;AsSI2?2o4L}PMLXV!!|E-RV24Vv>8#&od-oW1IQ*o2u1pujeF5__(1pC(Tcgg-(p zAo1I>PWS$|0NPh1_+v@iJ~Pd-Hbp6md{EldpL|bgo3hk>Xm~FJ;kWretAwxR-L_Ba zB^~Nx0_v)~unv^W5JaMHCoQP!Y$WXf;y+81v{kY!&zl(VjlA|=bM0o0R{v`NNc6Ln z-Ha6Fc~N9d$r)E_zunG4Esk3#uYKQ8R22PwzaYu*LGNYwtuW)+X>)+c5!wNmAsfm? zzanr#Zw3U}Gf!wu0Znt0#YIffU@+)=5%u&%g9S6^a|p8TEOKj64j*p%2EzeMpP%?m zLRGLO@|c9QJ)d*{2tFj*>EruB;}B#s9MUU36CTE7jN~nW(qV`_mIlFs<=GSM$<2A!msWC8*ZHj_;dgd{W!#2Xxd z%rTILnh_z;9Gbeg7WJxojt>(+F`wY`WHT8dq7fTKXef%{30d$)@e2O7Sqn6!iRYnu zr;=qneu0O{98oYJVu3KIC-{h{r}m`Yg9QNU_@I9@e+PL(d4GF2;^sD-x2mn#Myieb!PF{8jMIf*#2I>ek02w_3fJO?+m;qKl9I<+Q z76d=vrqkIQJc0-if*=?mCPGA*AyO_BR<)Y|GS$!4A0q#({_Q6SGO&l2*%D>X0$(wP zoj^bgqu>b$!1+R^^{NgavE?%Zxct!w7H;Z){$dcP6R15oAruH=7fiw4Xt}8dAnPze zmb&mm{quLz{|n{k2_GLHr_%>Ke|#MA>4PvVgaJd8 z@G-+sw><@s1uOzpzX1sP|NQv_|55p;%Il|K_yP>)?V7`4rj9V5jOOF{DAdWkAF=}1 zg1QG}nu3O8f%l;QkI3f_6jUAfzX(=*+0%+L%!IsPa8SCESST@eRBc$`-YfH0fw_cP3l7z_~t?}U1->sk;aV9Y@P zvH!cKU&v?mRaKT{#eyIJ!ja6dKP_L#6&!+A0M>>{43hrI96Sh$-s$HDx}ekl$@*#O zS5gZA%FCr>90cL81@))>bheyHl{Nr%ClCagfBcEmBl-6SC@-B{ zNDu?E00`D6NJ{(VR1*RshynOi=rVv>09v2v+x`vn{+~$wE7OkvSZ8?VuZV=lc?~4& zXFE$tBkhw2fp5tWL>f|%5dZ*AdjRnJQ)3SRaOB+pKvkL2NSKAkW4i(lxJ^JK2nB;C z0Ahh-urFdaVem+v6B= zqW1zH2GRZ&UU#bj#;AV@p(OghH1T8TQ}lnUU#x%`3A>b?^MW`GWUoXSU;tu(DRiA+ z0CK#$mYoNsU5xhc)GLD9cCkMFp23HNb)ifLd?9N4fu6F@Prs;Fli9 zHJ3&Nz)m1FQ7O6+XdSw*MCyi`q9SNm@f`ed#E&!!;K?K~b?nvdW zjDQP1z6YRw=p#`OWVGAr^s@`VJ_GsS6afeUyzn5Xzlv)>mklTxAb_2xKym?@zyZJ* zAPW$H82~r~0ji&t%>|c|;6)$bQGi9^ta0!%cG-{tC0^qm`kvN%HDq#JIuZ4ZdLZn|Tz?nBR9j2A)|1$=pC`AB>0MIWns3|D3MnJRR zV!t|T+Z9)SS+}t841lwN0-!XI+TEly000jhX&Kss1q8sg5{;&w7ynlb-0sH}l_X5Z zXaU?y6#Ekck$#^AS7HGv{G##_?0+erGf-i3ghf#ROgsQi#IXUe6{RxdEO4!rU0L~4 z0t5g$!E!k>0Dz##?2Zcqh+0t$L9ze?kk+e=^#26`{B!ieJLDqE#-k1UfQCRXi3}hX zm@U->9&N4HUwA-i3;+NNL}vrNFpB`7eg*&xtO9_tuE_}aj(_S6$qO+VE@pxN+%Pyn zPfgI54H4@^zy;O^1i&G9sUx_QPXd4q#0=oI8ucX>2MqwWB_uJhq#$4ysG9o!LQ2QL z!vmN^0IVMt6U@hA0RiyP=IPB3Q%^2}YF3I*naJ7i$N0B-66|33%< zKuR(P;xGo_DG(pn5e18N08svu6-r~EVjsAp3Ai<#OCqpZ6e2OSqdRf}0l+>enegw_ zhomi6s`pTiVDHX~K^*`i7^@d9wgSNQUgck?FE3^60t{dQ1aLLbax6BWf1C=UTDVxP zV*sUv-gnvW;!9=~1DI+T$FH2ZZ_~f-~dQ5`c}Pj0CfRqsl){20~-a9`5PAI zh9L|v6V?DcZNsAFm%3r{<=R5mk!0c8um(V)V0HWw04*C4QFU@FzqDCEQ?V7~;D!Fu z*Z@okz-o2A*BK~9iD)k)EOqq;;0tz)R&t?k z1K1I9CSGC~#5Q0ERVxO$SgazsQX%@nV!U@(=x(1z08kWAD%OU8Iaoj(JZ`sO19Cg%!ALnsHdB~)FjhN!=lm7=Msmn0M{unV=YU)Z&& z?G8nK`A(DJS+<0$hz95AMvPxL%Z&-39STc>8?QgL?I|K4?9f?DfNm%o;#G}?(mf*D zD|+b8{nwXml#zY{P!ze_qLP-(Ay5i}8wv+4mZ)2ue~oV)kO8<3P%jYl7tt=Ezf&Rw zd2BY=9)tq6!u5&%tK7H<1Z<@p9J2@V9retW!o(wB0HH6GWMmw4v2gXaR|}AS3W3>d z7YtAY{Wd(H0BTM^HrO616#1@HyyE*-M+h)BFd&O`Mw=WS80r2-K zct%Jlpn@P}nLgV4Srz%5GrrfqUeir|*)4}cFeqB@6!@8uk>0Kd2*42o2gZ37;n3t4 z^n(MU2S!_TBSet8A*wn91DaTxgbO5Wjn>EklW=QUHgWIP|FHG1unI)C3lKpT-7Ja{ zk&SEx1e6S*GdSvP+UxDwlv`N-<3{Q^0Id@YH}0SqWl0Pm@c;+`%|!W{wAwNPfpBXA z2zQTBJFb6wq6{E+(XA6e1nD;b@E2%U%OO~T7eFjLzV2buTo+BR^4`Pihxo%AmrJYy z?v@qJ{q@tN*8+e$65J&j&5Z-H0(b%ZJ0IkhVY|rPdjRnH1MR=2I~B7TUla4qW148e zk(zj>S2yZpW^T?1#1D2m+^|AV+-{kK77%AR>V6`3MkV40sRq5mpcEAJ69#_rc2<^8fxa*~m=M(B>}FI)E%6 z3>^Y&-3b6xW*inn1Y08E__%-7=O$=;gS6id=kpfhf3dXqgG-T3SiMNz^a1fej)IX? z1%R*vHuyVjH;Pnt3xW>>!Pc3PY}6GsC$2@92^RcfyA^0set7*8 z0uV;I=pi!-nVdH11TY}4Gz2@Y&LRQCmS|V)ko*^W%fAzzXB#pAR-Y3FvOy99=WVA?!9ZY=#JoqThi_HycsB^cU&i_TG@lM?XFb^`Obx-n^wS)Bzfc4q+#`t~1R{de z@(YrK;5hhMKcUof!FBQ}gb}E2?(xaEH;778t?<3Al#5qU*_?JhwmCgdzj|=op5K zOy-FjT}Z>cbs8O{D8v&40di|pusMhi9qk22;SFJ#<`fq5lt+4PWR@_r0MMaE!BHp& z91UdF$t1FdAVJkTni!&8C|*7_;aKHzcCsvt4by291CZ48hv`m601qL7r|1!Zi!sf%SG=xi@sSV&qOX6f(e_8udvy`f1XOdUJsgyMx7L z9RO~$$ibJQKOBXYQ;v4H0~Myeaipi$aoj7Z9dg6K9tV9r@Pu~h4|QHt4b@nE z^T2B3&}HJ!gLwi%ND3PA2MtdWof(D#(imQEQ`QQg$2W4lF;ah!(H+sqX$K8rB zCs{i^(7xD?L$gWOSyOlFGL@k_KK{pFU_B48m14w)zYZCFkLc8tJ$^-I$(jL5{Lx0_c1F+Wf#=ZZR lBz32a5=cy4?|<^I@_$Ec+=>`xIs5C0003{P)t-sM{rCd zbn_rx^&MOE8(j1^y7d`h^c!3A6rANL_RaVVWj-u^w=z6KSDE zahWbSL@Q^NLPSV)gOU;-F7)*Fe#sLq0000$bW%=J00IF93IPNS5C#bY4H6j@9~>7a zb0H^SRBJs*E_pCIHBw1IF-m%dT!d|vVEz7<{{5-^yUKs7=lv+s`sCnd)3H2m000|f zNklsGy)AMxsVk7SX7f(aaz;tFp-|f+!k|DCYlvd(XX9-85(> z^US+dM5BQ|r_Mchsm6Tx@E@+BzgZvt*VcPz23kYES^sP3DuJ<~e?;M5Q=!-W3R@5u zqfY}`h;Ikw`JdSIkcukTu=*GNk>sT3H>Bh7uiy>6Ko3CoE$zpuCIcGSSgdIT`*n0oHZ^eN06q;1T{hGA>EHQDp4jNT5?+AM9am=Ofx0pO~1y zXDsm0v>0Gw_zyK0>W{ckRbH7uhH1a!ye6h+XQwBK#l!?S;A4=J4Ib2nRwE7!j`@w8GGD!!Kg5ZC-3$Xb%Da zo}T+iJ7(>n!^gF?m6bKYU|cR~hhAR(-i!nLAJHe>c+Yzz!0gA5q&clQ!e3nh0b($t zWrgJM9)k~mPoU3y0$htd!OzUdpwG?n2jg$<9})wSKr9kVCqiFY6kYB;0*3eS)!0k) zp6kT=_;F=*_2W+Rcy(o!gD^8AN%V(dxUVi64DSjsfG_H-CjEp!pO(6-Yh`8i)5_-F zA@Ps|;8QgaZ$)@Zps)Ms@wKd1!3W`2c&)8&ZmtoHHO>So2vUXd37r!LTEoyg1oZH- z*!P8gT9|H5#a?6cudS|r+T6s032;4_W+8+IniYEO>6ZkCdIUro^96nZzedPneF6cj zRpf%qjyatO6QVHax}@Qk3iJt}W}Yx!4}C@K8nAM0%Jpd#f~XX9ZWI}*_rWhD&>}FR zxo@1)o^~%Y?xWP4a2GZgc;So6U{$9AdqI~E!-H0Q+k$!-!21_9rI&X)big_sj(J{= zdHmI}z$`w2!x}RX6#6rAST+Vx58kQ4I((h`HRBUHgKOCR3oO(?d{o`2ML~K|N8lX= z3}WsX7wM;!U3L3}54j!l%gf7ncsyRYJX_1a-`c__=)fXqanQ0sYQRIIRuTI>p!#oO zTopjS{T152gkSb}L;J^n^77+xe7qm>0)J;`Yu-T=)+i1i^&;px18LB2L#+u7>!u#9 z>`VE3@E-5}@ySWF5=|zP@p#Uk%lZ8Q|DVVE-o3poVzBV(Q%?lRK*m50&;yyMIZ&JY zboOHJNQi?}Q7216?T1b|v-P>R=>Gz);?~@be7dBZ03WJ&rs zEWkvd*Y*Ye!UAnSbX+V};?a1ek}c*C`9Kce7XpD?GMB@TyP4MQ3D!67ya>Z5QI$k8 z^fgB=MSZQlw&U&K#zZ1sT5057%o|WmXf6-Bs(m4*Y#)mkkJ0;Stq z*x>0r^1S*;b?X{6GnXu7UsYuQ>MnXVT6rEc)#I+J-K7d-49ZE+AZ31)gR_*(*$ z0$c$+$GJi&TLgY7o32&!sbaELZ{*Y2Y8pB~duWlYX3?LKBk^iB7rpN^ZiAUv1_X$~ z!Msia*_dT1($zwm$Fxo)2&}Ae28K}hYuQS?RLfS&RTRB!G~Ge*SMt?j3Z)S0m(yjm zhGI4sh~kM#Bj3JnUPsQ)!QeX>c!dvFR@70M7`(~DAQjPoj zdpz2aNI3TV;|CX?w zg-+xP8@^Yhd2^A7~!U~5^-M{9hTT_FYo1msB05s(B} zfO+pp!Jn*_QR~QU&>llrw4SeF3aXUQ72A=!88?v;W6!eHZ-KpBO@vS z5dqI}+@C~~!}j68mkvA^sHJMWli+(@GW5`jfcV5T>8ARZ${R9`@ z-9dtbWwIfi-&b~`p9uk4aqb-gBM#PoPoo&cFJ2T!llZZP58i8qP0mt%wF4c+V zkbS9gz77TI~Y$1aG#9ZB#=^_XHn zQ}R0S=Qs_A`@W(hk8oCHfmAQUVGQTiH062E}ksB`~Lrro$o)hx$iCtqd$JQW6A9&6+=#Pv=r~WH@FZCEZBZ z(wM>WN<3FoQYa7@jZrOeTq<=HrF(nZZJ)iKAqmggvD4E8LU02Uh%{JRmjMtBSwEBw z4e1qF*9cTo==3GHpsHa0fd|voT%ee$<0OIst%mwktK{>=c%hgK)VkSjywq)VUV(mw z7{pG`E^cUjf53pgu&@XMbEpAgA{hQ90m=fWAaL95BHs(yMm1h5C(AF$!eXF+C=_9V zLMfU})e5;4d$~KkjiJ5&j3V#7#mHa5z3m0&+4pQW}nqei*C+vKOifU^UTjaVkVbtd(Dp5HD~- zJ&ldOC^_66!A%-e#~61GPpriK(z$ zS1MEiqIAukS&iEzpq!iSXqeZ1CU}1f1)$7NnUZFr^zxho*=Cor|r#EO2~n_YUqdvw*hy6PgbH0X9-Uy`LXZp>gBPp7i^MzN%% zVZ0*lQ3X%vJO+5I4ClZpu{cd65>yC}Jlu?&vJvsIU`mfaLA~ici2lz0umSw7`U@ zgHwjSp?FI5;EZ+F&K_9AP=0_jW~+srHCxnUUmD%UeK%XfB!zo9ILcG^A-qY;L~rz}C@ zJ1l@Yw9Qj7{knlkZ3HU*=nyGjGQosaE4rcG?OqWCmJgmHnaufl=DdXicQe?67cp{n z+6@TOLf%p6gN)yLB958!NKAl}`hox~;Mt-#GIsV>X&&vhLjAEsGy zL14j0G4Sp_KjXsT2;s!epP=`ZT$#)jg+7DYL$Rk7ruxGzfCQjMjGLA7%Orr)?OeB5 z0AL<5j+iE=rVQ#VFgl8vd=fvT0O$mO0`nf0fP{q)028CE#0{_~lpM8&5vCOfE*+N+-{e}I%Bb0M<6ySVCW}cGzomM|Ia=jDS+FA-lONcNH`32 z+2rH}VnC1c^YfngVX?>oXQ!8-aC3Kg_weN#t}xF6xLtOe#cD+aI-dqFd_m@=eo;f zN0~93OhjN3g{VhhbZQa=%uGPVr`yEr0q^nw7$lg1kRc+qh(shj(^JvO|6yGKkb{d5 z!0EP=09Lcv%mgM4qv}9N3P=J%0O0d&YKLQEe#7HM5FVcsr-Ts`Mvtf~CRdn>Kck1a z1QC81CFsjH@3IF3mYfKI-2wtLR?@%-3R6>(!Kg~WBn9}4<@}5gY;0^SZ!D7yb{`Rh zgxDxC5IltKsqtxrm!Filg#4GJ|2MD4yX8PIeT!~f+Ge+5mlOn(adJ$}1C4;WN5Jg{ zfyHfN;K6(3%b|zIyF@}V2s3OfK{?lh<_5$9Q1mf}0sl(~Z!^y$pEfp}Ft^iYv6Bl; z*z6<`m{KJG0i#Ml;%|61e7+5jXJcavZ_+P^pur6@pa93{PgqSmje#(L!2gc;a|xQq zPL`IIoUowP=Cau=tN~2G_{;$KJpv?v+wJr0f7|zLZ-d4LT!4G#(BKCcB*+Uw3N`Iy z@`?RJ{Y$8{)Zw*Sq$AgJ;=uu=_|9R1Tuz zFu3rZ7X7aWdt3CY6fmG~$-T6M;%0F!S?qSRN`M70^azYi;^$O|I1S-i-v-ifXXkL+ zCpgT50`6TOz>7i#l|zF24&^=H5)|9t+u7Tp->IPz?1H4!1?*TH0jt@HEQIgXen@vo z$%GsOQ3yfc^XKiI{e3XlK0G{>6qYe09z8sg40n9%LoD7p_Wt8hz#r`GVE=R&^Klb& z0@~(sS<#DKHk3P%AOakO5Aq$mvA#+~mDuMy-23y-y+e4w<6#C=6;PKzfo1p(7I$27 zcs z01L73*M|o}|MKMs@H@2sEh+$M8k;HZ21Gr$}uo#F63VynG_?L7)Y1E03JBp zIow>@JoHcy=z$J3kM^*!>?IDngo+PZ1pbZD34eZTXAAg_Er*j!ATh8I18ndQW&i@Z zG>`<0S}7m~i=V+_8!9et0(|rE-~a@`Yo5w8mB-M*!NCz|9335fJ37KQd$f4_6oCbJ zczJP&10V=Mek;KL^8fXR)okRMY_#VAAptY6iIEJcumlqHb#r@jdk=o3G0lhiN-AvZ zc)i}8Jqhdu@(%AF!N&vgVW@U4I;aWRDG9L9jUm8a0Vcp68121fhddwxCaaBS0uljh zQSbl-TEqxf-rjbQ9kx7M5)_^jai?D<=3y zv3I9i20$eM24*WP2oLrVFfak5Y09Yiz)r^_THMJ{Ozn2(qRTEgI0c6VQ6q8i-Cpo5 z3f)PkC7P+I{JC9p9TvbUra`*A#XKo1u|a=-fE1V%BA{U-aZwQf=;9ax-)3?8_(dO9U zB9z0TjMyXx)`3V+!V>P{A~}xrvXcf*m(6N(ll$FkHY+z`h))D~`%|I{NCNU#`lm#P zn8Nd*l*?_ml51^LK`pEzS5wMoroqv1x!LDLNAM!W-0nX(@HXDNXaYP7n@v3eavV}4 zfYaG1^TNLxO{fz_GbTu~E$5E9%oZ`%(6w!pt>iHg7NIvjbK1F_E>V3&`iuCRjC%ZD z0GI*~hRguZG4hkmeakA+$i}jmZElK*d&w^3u*hIx*;#iGu&4yg);I9FPS{(cvN!`3e|0TX4zy}nmfvgEc zM}Dsoku;<-M$@}XBdEXD)RZ27z=BM{Fi8x?XT~SB7fBXIK}7vVi;eb`AAMq}i;?y2 zm-z1z;3whzB*B+ICixI!#01gLsV_i%cyiC$&Zo4Ui}LqAz8ZxoF`;TNLz84K#@-M3 z-zEp>sOt1D?KSFuoSgaJNyq6p&nC0001rP)t-sM{rE{ zx;XW)HS?%5@SrjBq%-cCF!!%D@t-p3jxFbnEbEXh?vgI(jxFPfEApT;>5DAsjxFbk zEa;0Y+k+|m#9iu*EZ>DH@|iIDwmbaCUH{{;_NO%WsW<(~V(*nM{LF9qw?+KZh5Xi! z{n?oFkS_Fl%y{Gv{#GdZT;AsSI2?2o4L}PMLXV!!|E-RV24Vv>8#&od-oW1IQ*o2u1pujeF5__(1pC(Tcgg-(p zAo1I>PWS$|0NPh1_+v@iJ~Pd-Hbp6md{EldpL|bgo3hk>Xm~FJ;kWretAwxR-L_Ba zB^~Nx0_v)~unv^W5JaMHCoQP!Y$WXf;y+81v{kY!&zl(VjlA|=bM0o0R{v`NNc6Ln z-Ha6Fc~N9d$r)E_zunG4Esk3#uYKQ8R22PwzaYu*LGNYwtuW)+X>)+c5!wNmAsfm? zzanr#Zw3U}Gf!wu0Znt0#YIffU@+)=5%u&%g9S6^a|p8TEOKj64j*p%2EzeMpP%?m zLRGLO@|c9QJ)d*{2tFj*>EruB;}B#s9MUU36CTE7jN~nW(qV`_mIlFs<=GSM$<2A!msWC8*ZHj_;dgd{W!#2Xxd z%rTILnh_z;9Gbeg7WJxojt>(+F`wY`WHT8dq7fTKXef%{30d$)@e2O7Sqn6!iRYnu zr;=qneu0O{98oYJVu3KIC-{h{r}m`Yg9QNU_@I9@e+PL(d4GF2;^sD-x2mn#Myieb!PF{8jMIf*#2I>ek02w_3fJO?+m;qKl9I<+Q z76d=vrqkIQJc0-if*=?mCPGA*AyO_BR<)Y|GS$!4A0q#({_Q6SGO&l2*%D>X0$(wP zoj^bgqu>b$!1+R^^{NgavE?%Zxct!w7H;Z){$dcP6R15oAruH=7fiw4Xt}8dAnPze zmb&mm{quLz{|n{k2_GLHr_%>Ke|#MA>4PvVgaJd8 z@G-+sw><@s1uOzpzX1sP|NQv_|55p;%Il|K_yP>)?V7`4rj9V5jOOF{DAdWkAF=}1 zg1QG}nu3O8f%l;QkI3f_6jUAfzX(=*+0%+L%!IsPa8SCESST@eRBc$`-YfH0fw_cP3l7z_~t?}U1->sk;aV9Y@P zvH!cKU&v?mRaKT{#eyIJ!ja6dKP_L#6&!+A0M>>{43hrI96Sh$-s$HDx}ekl$@*#O zS5gZA%FCr>90cL81@))>bheyHl{Nr%ClCagfBcEmBl-6SC@-B{ zNDu?E00`D6NJ{(VR1*RshynOi=rVv>09v2v+x`vn{+~$wE7OkvSZ8?VuZV=lc?~4& zXFE$tBkhw2fp5tWL>f|%5dZ*AdjRnJQ)3SRaOB+pKvkL2NSKAkW4i(lxJ^JK2nB;C z0Ahh-urFdaVem+v6B= zqW1zH2GRZ&UU#bj#;AV@p(OghH1T8TQ}lnUU#x%`3A>b?^MW`GWUoXSU;tu(DRiA+ z0CK#$mYoNsU5xhc)GLD9cCkMFp23HNb)ifLd?9N4fu6F@Prs;Fli9 zHJ3&Nz)m1FQ7O6+XdSw*MCyi`q9SNm@f`ed#E&!!;K?K~b?nvdW zjDQP1z6YRw=p#`OWVGAr^s@`VJ_GsS6afeUyzn5Xzlv)>mklTxAb_2xKym?@zyZJ* zAPW$H82~r~0ji&t%>|c|;6)$bQGi9^ta0!%cG-{tC0^qm`kvN%HDq#JIuZ4ZdLZn|Tz?nBR9j2A)|1$=pC`AB>0MIWns3|D3MnJRR zV!t|T+Z9)SS+}t841lwN0-!XI+TEly000jhX&Kss1q8sg5{;&w7ynlb-0sH}l_X5Z zXaU?y6#Ekck$#^AS7HGv{G##_?0+erGf-i3ghf#ROgsQi#IXUe6{RxdEO4!rU0L~4 z0t5g$!E!k>0Dz##?2Zcqh+0t$L9ze?kk+e=^#26`{B!ieJLDqE#-k1UfQCRXi3}hX zm@U->9&N4HUwA-i3;+NNL}vrNFpB`7eg*&xtO9_tuE_}aj(_S6$qO+VE@pxN+%Pyn zPfgI54H4@^zy;O^1i&G9sUx_QPXd4q#0=oI8ucX>2MqwWB_uJhq#$4ysG9o!LQ2QL z!vmN^0IVMt6U@hA0RiyP=IPB3Q%^2}YF3I*naJ7i$N0B-66|33%< zKuR(P;xGo_DG(pn5e18N08svu6-r~EVjsAp3Ai<#OCqpZ6e2OSqdRf}0l+>enegw_ zhomi6s`pTiVDHX~K^*`i7^@d9wgSNQUgck?FE3^60t{dQ1aLLbax6BWf1C=UTDVxP zV*sUv-gnvW;!9=~1DI+T$FH2ZZ_~f-~dQ5`c}Pj0CfRqsl){20~-a9`5PAI zh9L|v6V?DcZNsAFm%3r{<=R5mk!0c8um(V)V0HWw04*C4QFU@FzqDCEQ?V7~;D!Fu z*Z@okz-o2A*BK~9iD)k)EOqq;;0tz)R&t?k z1K1I9CSGC~#5Q0ERVxO$SgazsQX%@nV!U@(=x(1z08kWAD%OU8Iaoj(JZ`sO19Cg%!ALnsHdB~)FjhN!=lm7=Msmn0M{unV=YU)Z&& z?G8nK`A(DJS+<0$hz95AMvPxL%Z&-39STc>8?QgL?I|K4?9f?DfNm%o;#G}?(mf*D zD|+b8{nwXml#zY{P!ze_qLP-(Ay5i}8wv+4mZ)2ue~oV)kO8<3P%jYl7tt=Ezf&Rw zd2BY=9)tq6!u5&%tK7H<1Z<@p9J2@V9retW!o(wB0HH6GWMmw4v2gXaR|}AS3W3>d z7YtAY{Wd(H0BTM^HrO616#1@HyyE*-M+h)BFd&O`Mw=WS80r2-K zct%Jlpn@P}nLgV4Srz%5GrrfqUeir|*)4}cFeqB@6!@8uk>0Kd2*42o2gZ37;n3t4 z^n(MU2S!_TBSet8A*wn91DaTxgbO5Wjn>EklW=QUHgWIP|FHG1unI)C3lKpT-7Ja{ zk&SEx1e6S*GdSvP+UxDwlv`N-<3{Q^0Id@YH}0SqWl0Pm@c;+`%|!W{wAwNPfpBXA z2zQTBJFb6wq6{E+(XA6e1nD;b@E2%U%OO~T7eFjLzV2buTo+BR^4`Pihxo%AmrJYy z?v@qJ{q@tN*8+e$65J&j&5Z-H0(b%ZJ0IkhVY|rPdjRnH1MR=2I~B7TUla4qW148e zk(zj>S2yZpW^T?1#1D2m+^|AV+-{kK77%AR>V6`3MkV40sRq5mpcEAJ69#_rc2<^8fxa*~m=M(B>}FI)E%6 z3>^Y&-3b6xW*inn1Y08E__%-7=O$=;gS6id=kpfhf3dXqgG-T3SiMNz^a1fej)IX? z1%R*vHuyVjH;Pnt3xW>>!Pc3PY}6GsC$2@92^RcfyA^0set7*8 z0uV;I=pi!-nVdH11TY}4Gz2@Y&LRQCmS|V)ko*^W%fAzzXB#pAR-Y3FvOy99=WVA?!9ZY=#JoqThi_HycsB^cU&i_TG@lM?XFb^`Obx-n^wS)Bzfc4q+#`t~1R{de z@(YrK;5hhMKcUof!FBQ}gb}E2?(xaEH;778t?<3Al#5qU*_?JhwmCgdzj|=op5K zOy-FjT}Z>cbs8O{D8v&40di|pusMhi9qk22;SFJ#<`fq5lt+4PWR@_r0MMaE!BHp& z91UdF$t1FdAVJkTni!&8C|*7_;aKHzcCsvt4by291CZ48hv`m601qL7r|1!Zi!sf%SG=xi@sSV&qOX6f(e_8udvy`f1XOdUJsgyMx7L z9RO~$$ibJQKOBXYQ;v4H0~Myeaipi$aoj7Z9dg6K9tV9r@Pu~h4|QHt4b@nE z^T2B3&}HJ!gLwi%ND3PA2MtdWof(D#(imQEQ`QQg$2W4lF;ah!(H+sqX$K8rB zCs{i^(7xD?L$gWOSyOlFGL@k_KK{pFU_B48m14w)zYZCFkLc8tJ$^-I$(jL5{Lx0_c1F+Wf#=ZZR lBz32a5=cy4?|<^I@_$Ec+=>`xIs5C0002YP)t-sM{rDR zqvT(ld7TbSU9x9*d^ z@|nT(ro`%&zwxlo^_RZ!ZKCA0()D<(?_HPPc=0000) zbW%=J009FB4KooXD+M_lOCUfO3KSg=0wpU6L>Dhr-8eeYFI((K#9mBjAxBwqtC4Sm zw=zh9`sQk`=-mc_bl;;h2yZ z%~L?Z7aZ}(@&Es)*;U=01ohnc?%aE4)~xll3Ivh8d)Kb&>c+FPzsKL>@A3Eed;C5A zpNs|uZqNRYMx!zN^3>V?{xIEd2sHllOaw&wczd^4rYBQx%w{4q{}Dv-sL`bRsEFdL zhf91XXJ@m9RG`tsAP#sm`#0jx`e$c-0_ii56U52o!^7R(_4NYxF+z%zAN+vAB}(L=EX^rhXiyX;>s6uwAW^VqduO?MND}dG;6UR6`DV z={RTh^%bCr#3c_Q0KkP0Ai-TaOMTyu;}{WGW2}BX=f&Q4*cg3S5-Fk^y2dpADSUFl zT0p~k@>>%j?UtrJLI9 zFA=D&&G421FCqKgLNQ@3C4sBUbsR_D{brNp&(FVp{d(E1VMC12Pg@gXbNlf2c6Igk z`s;afZ#Mo30)Dc-gVNVLYbt&V;XJw!R2Cu#hr|B%@%cW>!|)jtR@;I{68eF?d0tQo zy}kYZ{qyJR^S$}s6Ht%+>npB1EC8yn3PSBl*x=#)9T>O1ABG7rcwWJUNf^fQ%ggEo zS^W0)_Vf2|X7Fp{oc+boUsLMy%n6dbe@6ouK$l#N5Cdrg)GBfTe3%o3JkLWvdj0wK z^Y!gb;?vJ7tZ?sYe<>rKHRl>(Ef#mTcZ`2a1jvBw1DT7Q8&~Tv3bG6wqA1HY8_&*P zf4@PRx1T=&{gdKA_n?q_#vk2SH=zGWQv?Cv@_2kiA8;+LNDMByHc(U+x5@JAdb!-L zB0uxVkegq>->x|LJbjAN`xUtS#A|ZT(zQQSg$DmLTtq5Zvd|3w__*Zpc*~K$lm+Qh zn39&KTlU)BDzk0d+dTim^eOlNrx0AdKfF=Czy%bAY-5>Dv-w>I(`dS>gNn9}qcz~f zDI2wahQWfYQJi8@Iyp(?q2dHv1Cr|Bzji4OwI zpyl+NUnOwE<>U1NnCk+F6!zQ4^-=|Z2;6Z#;OQeJ#qmy7C8`&cv!pcYHQ~Q9KH*+V zc!~f@6%n`}5`!;Z>^spT-d!q=fxALIW)eH{Dy!70vKzts-T*opd`59OVHp*ETtt#qT4$m2{XAS3EtuOtHle|WCEnze<9)d z>V=+%2R8Q>VxY~w5(r?v-83HMLo_uqhso3iwBqttw~3p=sM7;{-6MfI{1}9zu$MGBEhN#`6C})c18?V zIo6lw4Kbh}#DOg+@^dY$neZZ3)+ch26)Ep#UQ|zH;ypj2KE$Bl9 zKM=$BJ>So=EXrjFSKDXlDuiTxw`3+zCFg;A^krBLJsU39T~{aksiyT!m)d3`&<6$5 zpf7e(Ul<@dCbl>Da@`cew(srxdoSO3g28sRIfoX+B3s>V1!|seo>%!M%V_dgjylYlvkfQJ{bse^jK{#I zpNx<<1d5A%m2Er^bGIYkws!>xxGsuKhZ$&k8Yk(@G#z5VHjumN($lzHJC2PW#w7Br#2j z2so(0w28*PwsH3DhJifN?1Op7)%6Jy+Q{xl-Cpm$w@DI!dz&8R)uzb3`+Jls(94qj zGLQV|erUh|6WuWUq=-{pWCCm$gkh?g>;lbn#CCcn34CVIAOd(DG=Kzp2NY}%Iv|nn z!@?V7Vb-O`_XtkU3O_zVaEh@X+pQBDueC?RiEAhOeVDo(K|s^7Y4wE!nkKVB5;*&o zfJQHzPED8U2`1!^AjD{B#YHrX65kpcm?@sIjPU(Ef#^|K?2pHtZ%ix?wbro1{Vq0K zDSJqE}uQxa$j0<%VC z0(k;C%wtT2;8$-K5Aixa++F?}? z64-GVaSRY#hbt2DfaY2ypSYiqIhr#wb(&L_z->)i21*im0M0LVp#ce8(+GS!H7pDM z3Q~(?r}V>Z6b1$}z%qbsF=kB?=uzmKm^%>=)rb?Zl%TwyVV%HQ;iP5*R5cVaM8l2| zcE=0?xFHEsQ@0_34M!r_uD>fHo3Mvg%2L=ictINAgFo=`J#8V1;DQpTNdl5VMSyQO zE=Up0btw}y6tT3`aIxFApa$mS+K?V`M;v1Ed7Apz2}eYBnQ2C^^tR0Ze>1OWuV z*y+M7&yA? zumX-$fV+ZE1o+UoBw&&Pni~Xe-wk)MZBjmB;&B+H;o)%H$B+QS2yhqy0w{>dK1$&~ z%SM7?1@uAKFigP!Zzu>j!UCLapCnKO5FbiFuA3?R<+$-a@ePLwpicC0Wb!>OW`%mXupqb2ueLdY6r>T z9YDhmVnEa?vGucSlUm_c;b0&@%%XMYb1F3}|tL8p#nF1xOB;I#hU2cexNa z$_33Y1W14;!{ZeW3&yRPuB9Ll(;~>jM*m)*{slhuKb~iJF+v`BxG6#^L;FLL8bPwd z3K@#J+;RgQy>UxW5cOC!hK=tCkV+2K9bVT7ID6&Xf$aQi1x%PF#hWf&jgY384JIM#1g?lj-C@lHD5W zm_8&Y0)Av?5gGvB_OO$L2?Epzo9bb4_$X500<4F+qnlC#tx}*`j`^}F7rVWB z^aCAB&k-WSWJ3>e_DBJLzxTY{^L!i;WiietJ+4J$7jm$n%NWGAhSgm#_!EJdsKcKK zAR({}?h@1-J^pwEA zqCrXHRBP1;^gj_eQ#DB9Pr*P$fOa`Lw}B*hL_0Q0Ko1h+ABTtt*f!4pycoM`B4F|8 za+?AYh9nUAEg`{Flmhi>U*l^PBK(#VfSW-CQg?{})gdeS*rWOYFUSx32+d&V&GXFi zijR*ZDMI9?H5UqCXElTjOaP8BrXmJYS&B{wG#Zrzia?9uG0(Y)L;q&!YnTWC$ zHog#;RUrUAb(Yv6PRRa6I`ptdvgT0N>UQVh@dM?_o6m{B9Q*P-!B!EMbYsMYHSCT^ zf&krwJLwEjIgM6_yVNN!ii$v^BG8Zmlmu9QY)bGhJBVtai-eYw9vI|QVcs+%{#{z-3=vX-W&^v0gr1hI+B{-?X zVq+@t!2laDkKSsB8ZN|M4TaI2m!9WBw_8v=+3=jAK|57VADncVeFuF z>Qn@@X21Ex1tmTapmQ$Tpc@t+6O2Z%)I820frr%wSRppV1$OCPmW5%K@3K6S_&ww* z7HpEBI~oNxpW0z6Lq0oeiNl+I|BDM`5>6F?$wa3;DM$ex+5>3y)|iot+ogPpWVnrR2nD(N&rM)GNA(s*bZ-iH|ln+ zxfgmPFN@jk(4M9~n0v|l`(w7=dqDOEECF7KHqM}ZDd{%9x(^zd#VfMpn=9<&*GKDf9b z3HWApEaq)67_@oJdpz)mAkZDwC@3GwHE~uFP#%={lE7#LK^Y%!IY7!~J-j^th5U?< z2oQl|hUYm7@JAaFh56NkCb!RSGbY_Tz!iO4Don~$R6C?k1XKo$Mv4F^(3IM}3!Khg2$b;! zNMz^&@&QY5vppVGk^rgDRvL7n8`nf;ATpsP3CMbUR_lf;0uo=&zTM-u%)=E&n&8Ld zi)?*Zaty|U^X>6tc`+D|>kNnl{dKouFq8_&)=2yplvoI*2UQBl`Lq2MetVqf3_k`Y z-5@6C7vgI5_;JiYKr#^N&?5%)CX#_H%2hRD2_%6p5hx8H;pr{M1kaE(&hg-Uj4#OX z^msU|h=8ELUR4x&%s{G8+OXUrl_4kvQ24@rZ3!j|R=0LB*{kaIw8REN>*cG7#T0n8-wwYw}sG z475HApv+XlGX=)3t*FXkSEYiC!6^ayoS-bjqp|>$_+v$YP`-|f z^X=`5A1D!O94ZD>lS>zrY1mL9Q0tHqpo;!@EWXF*D(Z6lz?XP%bMxb-WWxl;r4bYb zmOvCE8H1TPubj!1sKhU4uS!cf{c#;z4Lsr}Zq9G;O%bWQSmIMUej?DU2sEoCs0^t5 zS4O{@{tw2dSwB5717^eEQUFq5pg1TeN(rho5FwBRL=~u|po{=ppV1YAALaaSZf>5W z2z5)Imz+<0pd{d0LNs4LGI*uSdQdH$Up5!e<8330O9$E|sY`Q4)Oe zfXG62fU+P>U-+Mb`vv}{K2CLDw}^@`=H+U@D##dg{xN}(Sj(vdN&lhvJgsEr|4{l9 zsDi!`S3gu%2n{Yo*%r$;b?veia96_nWZ4nX2bR1iWCG-X`Mg~>01W~6<7uVbPvL)3 zQ^(~KGpKwZt;5sj)^RS2k%7+_Ndc#?S~5PUFHIi0z8onA&{Ydx;Yn_PXt!0C-L;t z)9Q&u5CJF?K@??XKrND75V1=#TdFZvSwIrd$E93|DFy?z0%7_YL%eKXo}QS%xzJny zi!ZvkktM0DMEK)D)uD++StP-!0-`AxKnjlvOIc{#U8`&S+2my24kb%wG*8I)cht465oN^9Cz@Z~xn zPDy5;2x#TbtmIG^qE4jVs&W%v+YGc%TCozowmGbIgo=PPLA5>q*G|rhYXrne>2#_N%W7kCN~O+aJgseQU zpUp}Fih(>Wu2@JS-%#Nno?4AoonfaA-IC{nQ}yYs{CA=g0)jy)#P>w_o#+ia{8irk zVbJdsHbqySk;>qgpBOY6wa>1ZfcW@Ge2mFFH1!VuXtYkov<59^UQWI|qpS`}tIsS- zAxb&=r6lscU)~TkVyFF)TKR7a@`D-$U*gL`BndQ{^;p!{C`Fp(ZS|ZGs*>wuRIe%H zUc>%GKz(o`|D|ZAoKdrA^OHXOT|WLotUm3NiJzVRD_7$m4(X4X`j1RC#K#QuuRou3 g`!cFo)$!H%FI-p(^hLy}XaE2J07*qoM6N<$g1#5!oB#j- literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_36.png b/app/src/main/res/drawable-nodpi/weather_miui_36.png new file mode 100644 index 0000000000000000000000000000000000000000..d483024cc72df815baabe90117688748ff04198f GIT binary patch literal 4551 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 F{tqy=^n?Ha literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_40.png b/app/src/main/res/drawable-nodpi/weather_miui_40.png new file mode 100644 index 0000000000000000000000000000000000000000..fb2a6b0bbcae7dbe13148c2886ed5e4930005f88 GIT binary patch literal 8977 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 Ef=n?>-v9sr literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_42.png b/app/src/main/res/drawable-nodpi/weather_miui_42.png new file mode 100644 index 0000000000000000000000000000000000000000..c2216a62a61ac9b1bacf2766d8e2f5b4a1a1cdd8 GIT binary patch literal 8002 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 Ef=n?>-v9sr literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_43.png b/app/src/main/res/drawable-nodpi/weather_miui_43.png new file mode 100644 index 0000000000000000000000000000000000000000..c2216a62a61ac9b1bacf2766d8e2f5b4a1a1cdd8 GIT binary patch literal 8002 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 Ef=n?>-v9sr literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_44.png b/app/src/main/res/drawable-nodpi/weather_miui_44.png new file mode 100644 index 0000000000000000000000000000000000000000..90e7f063bdcfca38fc268e14da70cc1ddb06da82 GIT binary patch literal 5558 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 Ef|T#7!2kdN literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_45.png b/app/src/main/res/drawable-nodpi/weather_miui_45.png new file mode 100644 index 0000000000000000000000000000000000000000..7705b64cf1101610c78988f84bc6e79566d3262a GIT binary patch literal 9756 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 Ef=n?>-v9sr literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_47.png b/app/src/main/res/drawable-nodpi/weather_miui_47.png new file mode 100644 index 0000000000000000000000000000000000000000..33b8d723e576780f5a9ba4a4eaed46f6aefa20e5 GIT binary patch literal 9303 zcmWkybyU<{6aH<%veXjNvGjsc3kpc>(nuo;($WZ0t8^^g2!ez(2ngs)BPcDYNQo%j z-HqhuH|Ng1f6SR@=FGY0%*+$5tF20oU_t-@K(4N)r2p?F{9oaafA`T`(q8}oi|c9{ zD66_@(l~8UyKVhDq|Z0t&YR>;o5<%IBrcm!=S|9I8wjT@h|4C#Wdr2CwXwYoyx4`f zZ-SlI0j~ql^9{g#ALO7Q+)y8 zw*ik$nWn!axo0GqX8?Zd*4qED|eeN7S`7PfsltT$#-7hIxhsO&qr5w zrk2;cW)HRdPv=+H@3&seudK|kZ$0TfWiI^}boqYsdBN!M`09>+&zVfeh1y0ye$cW{!)jj?EsUNc&p+krHgC~YV zCncl1a$hesB_i!dj`$L0?q{qNPVPP`nftM@W|p(mH?j5hzZT!pE}yb4zp>qyHQS@J zOJ((KFUkfAey`h%?Dx%VW{mGQPp>IOfBJiMZCd!_e8-3xC>s{58Xv2}HE5!<=IM(A?RY3m-F0eLp8uC11rf5^!%`rOoyFW)?Kc8$)g5OvGpu}VZ5M6%+nWba|wO@vSidbBg)n&g0{5U|BI`u%tmrkHsz|{e2A~yUJV6rT^skd^Jac~-QKx4{v)iU zrsKoG?62j@;{CNrld;JS0N@Z%SHc;1XVv*dTO|Lkug9V|ID*4Cpm1oSE=t7?o){K^ zi~wW$xDSn#uo?NaAqJzy#2Lz~XoFqSS+qqh8vEOc?sP{;?_BCXW?L`zqQp6rS}Io`}6{zGehGZm0Fx z;BaT0$zs+F;A<7A`GKhEfdJ`}3MvF32BM-`$q5WC41T)0x_L1smPiq(J7*Zf<&7^~ zb?JM@<>k<70ky&GB2+at_x=I?Qd>< zFBAMAT%W37SXqfLO~S(e?EA{t$l;6I`#q!R|%2?fO?maFFIK)w}i+^tsbE(4{SwxXbe|>!yF0jE? z6e!Zo{`k?%D`T%&go+z=naY%9!- zdr-IiYHH2Yr0bB(|0qjR@7v5t+V5T>`Vm@=c9CXn=Io)%l*`sXljHLKhZ{ex2d>9< zR@yhcu!$@^DZS{#?>B;wqP<3K?eyKD0t}M(kms( zF@`P3?arH%nU!m1yGU10WSkT6?yRh_)RSAbmVki_Jqd969egcKlsZv7Nq?`iJbq#I zis$O;mhH3_56`W^+Z)o}P@B8^`-n5jU|>|V96}#78@59sdinM1SBZ;@NE5%zOjpX8 zX1`MhI*hIuYgyvmCTS4xSK=oAW@PyK`t|Fr@Px+toczX|)j_dmnbnz}W5oo{FD`QB zciFf-MJ|YW-zuO%2XRl`Np4emeY)p0(=_f=LrKoUw&ScA{;!0AH`lTuy0>mo75=;( z1*Vu|u3mI0`V;ASG)kA&ruXEzr%F(e%5!z)C(qpu^(cNf*2>FGy&h!AqT&U{x?A~ zk+X&s^`{gP7Drq(p7j?J7R|ng7B|P&It8ftrK>k0FDo%d>RkkzwN)6Cf?L%{ui?z}IH?x60(NLw6?OkV=U6)-2 zurz8;7HGOToNoQ5!|NX?ps84@2B2xQ&-xK9izSBmpLOHoT6>w(N`-^H4g#TflP=<7 z5PL&6Eb9!dRU#5;7y;e9!Zr0XcWdqko4h|0Da|3<7pX2@fTwU#*cK48VmO=Ke^!O1902y}k zNuN#om+o6CIoRCVvA&7DiaTRB#RNx?DK@IBtFBIqmO3gCu&I6Ne8*;>V!9>Z>in4b zG*_;v?!x1=3!f6AcsA|#_n<45{z|yM9j4a?3Ud%|_l3Ep1enxV19ZMB(zgZPerxmg z6pUdvO-58_e*275AWC<%qD^^`K%u2$k=q*J=O%g?pY+@0^yJj|#Q3<(lwv_s zTUJA3UAXaC4rItt++kP*U!JElP7J);49BFr-Kw?%deNIZLWRMh{%!n)`lhCjA5V4i z=dlFLG>XjJ8?Es_zP^fd{p2z|q57An#6t8gNDECHa)`~0`NI6=`?t^1PXR&- znpaZGn;C<447qo%F(GUgf^ZR@Y4TZ|-we(E`Wrb*S`g&NtmzC{h!sRNoO~aYpC0V{ zra>zD^fKZD!$;$F#o!8nzF1T#(Ly7EnOT~-q-2Tu7$#tKZzR98s-&gB z+0M@A@A<~B;F5}`7nw*-Yop-X=IMPglAitKYQ$tZ~m6vo4uh9 zomF}OJdo#syj8TC>pq@5q;N}&c%v94ca{!U&>)r=lbBFZom^4b++>b^abRKbis|=^ zIVIw=6!4%2V~%>S^ynxJn|Q^OH@D&H6(|J&&)}Am!hhz17nXNEntX~PF#oQo_#r(q z5(O0?>KVzic5rxF`=JK^_VSlR$oY;+TvN^$*DV{`JSgo$r zI=%N#EQuKj^){zG%AlQ3uA&eS6u|ZBeAm*@7`+_=UT&G#bSST=c>e5zEBkhEkE6$f zDY372L1lu4ZI$0$Oi>b4#AOKi*N+VRZ>~;n3D53qHBC>v%gKsrc)2;TQs-o13Lpb4SstXMb{bHBsR0+(L_iZjxZdRm{Y^~lI_vVBMa3N7gb;k5c&6ePMovD=5-DZ(%;&+MG>e7BnKTgsK;WBw@c6`9 zg@pWuQe>}ZP$#$9?`G%9se<+L`r>P(yx6Jp>tOl2#rcGkoBL`c`&_16&?S}rKR@=?tHoFHEv@*)jxJR~+t&1#--8r^K}SdH zSIiRsbx2S79US5p`)(qEdunHeiqHE`S@4vA2>Z=yLjdfHA2HAneDj*xVQ!NBy5Vq= zQhv6zwff*_xW;}hY*yCKb8l<7_4>Ht;#By<$lSxJv~E%VJ>h8%$+xd1B2b?^yRUR7 zr>1yR0H3r={GiwF%+=0L_U_Iljpu5v*NzBFXJ;~B!})f1n#9g*u9?{rpUWdEiGyoz z+oEw9dCHw0=E&Y4Epiw806ZDip{GM((n0ni`^4V9)LAY!w3)0Oei)QC6?8fnbREk4 zv;n`0kmvn(MOOy z6N*I(LsB5?>fA~DtCy*3`?Fc4}ivYA2PIEH%|OvqrxV0|qaS#9kLkd;~XOXs+5o&Us0uz@jO z=YcTI(;>;HIFOp=mfD9>e!({``r(0LfGad5wOa!qw8=_2cIECeF-V=>@_*1`LbUhy zcpOxn`rqe}cOhWITxKYM=LNaZ04Zj=b1qKb`&n7uAyWP%nb070H=5OtIe-s_R}e`^ z^j}&m+Se)_5Ptz``@Pg;n-_j*JqO{kSoHgf{SE-!w~Q{%ySp(YxCb$QWMqi=QJNTKqs| zyA`SeS4=#V{m4C3n;J9-LI4bKf-V*(=WxTaHP91Kj@v9LlbVMY;TS5^JSeIrFhTKRFyAEq({{&uy!TA5Oz4}t| z=`+D#=HQp%l51Z1e-vnAlT9Y34He@Jphz1KIgQuS=QxsN@$pdtZOUnth3Bw=MH<4G zx%@X(gybo(y7R<73n!1Xi2HbkQ*@G!@=y=SkkD`5Ox`b@UMjlY=5W|%Dz&~gA^k@q z(P}1uFi1j(33oNm+?wdxW{G>^XA0hm}NyV4FX2$wL8J-XeY;(OxCaxDsYAvXG`D zYv7Co1m8;**6Y^gwM)p4JUcjWt9yi9-j&9tqU4G!C@Pi*}*xuKA%^ zkXL(DcrmIfo!k5Phz!n-i0KjYUp{aPz8j6It;bv^n|eFe87I#*7PS)z5$qc1$==;J zqfu6gwEkd!M^KPkI5%|x5&j^_^)GkTpDnfhbVS+agOIJ;w@DGsQA8pyK{&axFZNp)bmiv{WZ+J_Iy$2t|AEWPM{J$y>gsDJ=GagX znEpxwe9?HS!4nDH z3vr-`_T{3{i2UWb=CJt07TioMk!s%cNn6Z&ac~>tnwkv>k0xH z2?1eZ;?JI8<82DFIyD>cL}`T8qWQxO92rN0!?K~4#g<>Op+D?g90&|Jm6ykr zZ-95k*(%nv3kP9b8riFDW}@L8*^Fw+Nzb_+-m7M=18wG^j*RHeYskGBQ$n7jXfhv& z6iH8s*&6!tUFe(HrF|#j$6U|nApgAX{|He7Wj0p-mu6+@e*X!XP`vqp&2lNL&mWAz z=g5&1pJG!Atn(UiB?F6Aj}>w1HmJach*#jJNapf#6@!d7Ms$6HYlffItkkajI~Yz^ z(?~tM`|P8$R&}OH6&e6ye`<=l3F`P(SBswwt-bLnT*RfP-xAo>zJEKiMHFs(H_ret z>X2i3Es_iB^=P2yyZG>!Pmcl$GjgIeFu5ZomC6z}lloBAM>iw+#kI`C{GSU7WHIN2 zj`R}zQt93H;{0K8SV&&V$$_m$#)}4JU`|X_+AG9kI0+6QaJba3YkLe2NzWNzZ)hR0 z+cJCaj7NSz+aefhAFmjkn6uSWLA3GD^wNjl!w`iN=|$Zt@qVMMy`L(1fJKdj(Zs zhl~+@na;8PbbRtyfl0fhD~=)TRxsq%n5FppyS}QE@A(o1sO3kggjwzOa<-Eag7YYT znmZ#|72zZU8p96o;IDd1;+$Wy?i}~p`i>aje0{aG6IkJh=VtW^e)-c8At^3>AQ+v7 zo{^EB64WZMkYTNc&bPa&j(-4yU7i`}qz69d6PVoL;hqJGM?QPPdUG%I$nHpC|5e_6 z+;4^gSP%F7^26Nd_uGd?a5PLES0UX*pQtyID-=%b`fmUd+|Ias08#CmIJ0;f@h&i9Aqhh#(m z3h}{?kJyrzsCdBovZ^XCuztwgknuaZ@=>wLh~QHxu~_5IHU_GE7|b}Tt!C&Ry{4$; zvhFyQusxph<$@eXo`RY(T)%4BH`7bBdr64X03avaSVNYpD578xIRbyZrUN< zJbQU)o$QIRf@N)%m+}+zh1xYR#H^t*MgQN}__|-wbPk(~y4U?kW0$3GYpxPMGQ z4^_lVE5Ly_U?S{^I)KR#(7T@yO70Hq*@yy9mGz#kbcHlHkbb|}JIc%!t3NW*#yOw; z&~8E@+5jNko~>58ZVv0jl50o0RzZRQg8xjt|SRe0)zuh22SFZ@)007Dc+bj zP0&5nO##Vf?o(4Ig2719u>+OHei=hZiTUAq_ta(LcqcM!|3rE)8Y?@t1Pae1Xhn~N zp@FlS=%{7DF%hKeM8<-Ja#S{?CNC8H{HX`b@yW=%E=R&UwtwoVQEjab&kr=r40Nk= zfrjYf=}TYUhvGuBtbi0SaB{noUsV`zM@4dC0r6+q6Tn{@f(Wf)tPd4!qLVI?k!|3z zXJWgmDyd3>eRSA~00A`8>rUD+HVpakXeMSw&Qei2+1OxlJ`Ca?k~>SxC+kZ|CRVsL z@WL33q@tp`MMw9%UdRMS=-oR~YbVGu8X8L5BN)MKkk!%9E|E)N|Nd9ZPsrLpR!HhQ z1NBre4|bq{)e2Axi39Fl^HCGva0s~Mds71gYrK+1WMQvb1Pas0VjN|f?K8xbkX!vn zNwufQSWqv8Xo7R~Pg4R1k{0cc&Z}>uCusI7sTrXFpbkg>P>B`^ybE^nkcvb{EnRaZ zb0sHpQHA#Qj+YXPt)KbWa6^!+%IP@5y?&{CbP(Xa3MkuizYKdv?;SFVCc12qERTXd z|E&jN|ec2?+?q{OW+OHch_gVx$H)yRvzc27f|+ z^A_f$1xWJXU6tGfqCMimk8fhX&eMiw8PS0*H4-!{xrk0Oe^L(6i0{nCq7*hewM;^T zOR+yZU3^TaxeeA}ZLi+NaHqg6fnIq~RBUYZOg&vE82her>5q+(j}KiSND z772zbFxTJPIRabKLT_{5ijlEog6G+xb+e+mVS8{S0Zs=1a1DzrmU>nE%^g^8P&F&S zS)na|cFY?TiJJo$U`|ho6xs~(<}=>wmx7ydD1eg~{AwBa(dmCl#ey{*6__A6JPv;S z>JA47hm?nB@z(E*4gq$+-5m_-Cb(A`=MAgz$vje>u9_uTH>gxoNCL}&EUEuxoe*13 zuM!!X&!^Unp&}CEzWLGNw8hJUdm%<&!@YZo-$8=mb$n z|JWKWwX1&;x&8Uc0v3%!4YBnl{^(PsRb%?sZ4KOD$SZ1)fj>tJIjhbm(Qh0?aCiB+0*PNOt;!2A2okNzV-55zy;DNHR* z6hlTY8+L3xde2O4(ue{{?&K;;YJ(oof#9Fs{rB(s4qwL7&v1b7DDu53e06F>X#awm51N1e*#niE;`b86UQPD7O zY79NNmFBu=bMue1MS=7Z??z8v$DNG`N9E3Hq!$4IJP$X%efzaC_%?$=_+M%(3rS{e zlyJf;C|5bBwK85IJ{TRI63**ftl<-t`Qnd|nbkF3%O5jR#Z#381Ci>#2=BB^fVmZ2@=5;WRNGpN{99yENZdk9*|Y zJux!|ni0mHB?`OSu|A5rT-Hz8=!%02=x(2lq(2>6H?rvU3qjAkHi&ji@=|t-J~A@P z7PODYh6MZ?C}XFqY+{b;(CoDbl`hA0{rst`!$(Bb3CBPa{UUjzxbJLT{wG0tle_-5-Gyzhal)ec*5$PfqN+77EmA5a zhY5c4U}wD#%UbC;zEsGRbSCu8NU{ZPgvQ(747FGj90jgH+W8i%lT$|48qsWTh+21L zegwTgoon%#J6%fg3(Lm&bbK+S=3XbrOMcCm^U^rt+&ONgy=>3UsC^QN$ViWJ+$mM#Nsf9iIxNfOGZQ2L_iq@{g-Ln@e~L&_py zzlS~aPh^(ss5+#T6Yx!%_F23P}o3H^K?%HLk)DLAe{%MTpfa%L^CUzkk7di(l+615RQ+ zPMSOk(8&43hn6-WOec?4j_2_0fuUyV)^JPT!-(l!8o-~;lwK5(m}7OiO8JU-PbsP4 zX(X-_R&H;;;2rQLFzpHyh`~8iupDmTy%iMNTK`^Cf+lkp_rmd8jDG71$nAi2X}b!s z*~JfXfPbFC0002YP)t-sM{rDR zqvT(ld7TbSU9x9*d^ z@|nT(ro`%&zwxlo^_RZ!ZKCA0()D<(?_HPPc=0000) zbW%=J009FB4KooXD+M_lOCUfO3KSg=0wpU6L>Dhr-8eeYFI((K#9mBjAxBwqtC4Sm zw=zh9`sQk`=-mc_bl;;h2yZ z%~L?Z7aZ}(@&Es)*;U=01ohnc?%aE4)~xll3Ivh8d)Kb&>c+FPzsKL>@A3Eed;C5A zpNs|uZqNRYMx!zN^3>V?{xIEd2sHllOaw&wczd^4rYBQx%w{4q{}Dv-sL`bRsEFdL zhf91XXJ@m9RG`tsAP#sm`#0jx`e$c-0_ii56U52o!^7R(_4NYxF+z%zAN+vAB}(L=EX^rhXiyX;>s6uwAW^VqduO?MND}dG;6UR6`DV z={RTh^%bCr#3c_Q0KkP0Ai-TaOMTyu;}{WGW2}BX=f&Q4*cg3S5-Fk^y2dpADSUFl zT0p~k@>>%j?UtrJLI9 zFA=D&&G421FCqKgLNQ@3C4sBUbsR_D{brNp&(FVp{d(E1VMC12Pg@gXbNlf2c6Igk z`s;afZ#Mo30)Dc-gVNVLYbt&V;XJw!R2Cu#hr|B%@%cW>!|)jtR@;I{68eF?d0tQo zy}kYZ{qyJR^S$}s6Ht%+>npB1EC8yn3PSBl*x=#)9T>O1ABG7rcwWJUNf^fQ%ggEo zS^W0)_Vf2|X7Fp{oc+boUsLMy%n6dbe@6ouK$l#N5Cdrg)GBfTe3%o3JkLWvdj0wK z^Y!gb;?vJ7tZ?sYe<>rKHRl>(Ef#mTcZ`2a1jvBw1DT7Q8&~Tv3bG6wqA1HY8_&*P zf4@PRx1T=&{gdKA_n?q_#vk2SH=zGWQv?Cv@_2kiA8;+LNDMByHc(U+x5@JAdb!-L zB0uxVkegq>->x|LJbjAN`xUtS#A|ZT(zQQSg$DmLTtq5Zvd|3w__*Zpc*~K$lm+Qh zn39&KTlU)BDzk0d+dTim^eOlNrx0AdKfF=Czy%bAY-5>Dv-w>I(`dS>gNn9}qcz~f zDI2wahQWfYQJi8@Iyp(?q2dHv1Cr|Bzji4OwI zpyl+NUnOwE<>U1NnCk+F6!zQ4^-=|Z2;6Z#;OQeJ#qmy7C8`&cv!pcYHQ~Q9KH*+V zc!~f@6%n`}5`!;Z>^spT-d!q=fxALIW)eH{Dy!70vKzts-T*opd`59OVHp*ETtt#qT4$m2{XAS3EtuOtHle|WCEnze<9)d z>V=+%2R8Q>VxY~w5(r?v-83HMLo_uqhso3iwBqttw~3p=sM7;{-6MfI{1}9zu$MGBEhN#`6C})c18?V zIo6lw4Kbh}#DOg+@^dY$neZZ3)+ch26)Ep#UQ|zH;ypj2KE$Bl9 zKM=$BJ>So=EXrjFSKDXlDuiTxw`3+zCFg;A^krBLJsU39T~{aksiyT!m)d3`&<6$5 zpf7e(Ul<@dCbl>Da@`cew(srxdoSO3g28sRIfoX+B3s>V1!|seo>%!M%V_dgjylYlvkfQJ{bse^jK{#I zpNx<<1d5A%m2Er^bGIYkws!>xxGsuKhZ$&k8Yk(@G#z5VHjumN($lzHJC2PW#w7Br#2j z2so(0w28*PwsH3DhJifN?1Op7)%6Jy+Q{xl-Cpm$w@DI!dz&8R)uzb3`+Jls(94qj zGLQV|erUh|6WuWUq=-{pWCCm$gkh?g>;lbn#CCcn34CVIAOd(DG=Kzp2NY}%Iv|nn z!@?V7Vb-O`_XtkU3O_zVaEh@X+pQBDueC?RiEAhOeVDo(K|s^7Y4wE!nkKVB5;*&o zfJQHzPED8U2`1!^AjD{B#YHrX65kpcm?@sIjPU(Ef#^|K?2pHtZ%ix?wbro1{Vq0K zDSJqE}uQxa$j0<%VC z0(k;C%wtT2;8$-K5Aixa++F?}? z64-GVaSRY#hbt2DfaY2ypSYiqIhr#wb(&L_z->)i21*im0M0LVp#ce8(+GS!H7pDM z3Q~(?r}V>Z6b1$}z%qbsF=kB?=uzmKm^%>=)rb?Zl%TwyVV%HQ;iP5*R5cVaM8l2| zcE=0?xFHEsQ@0_34M!r_uD>fHo3Mvg%2L=ictINAgFo=`J#8V1;DQpTNdl5VMSyQO zE=Up0btw}y6tT3`aIxFApa$mS+K?V`M;v1Ed7Apz2}eYBnQ2C^^tR0Ze>1OWuV z*y+M7&yA? zumX-$fV+ZE1o+UoBw&&Pni~Xe-wk)MZBjmB;&B+H;o)%H$B+QS2yhqy0w{>dK1$&~ z%SM7?1@uAKFigP!Zzu>j!UCLapCnKO5FbiFuA3?R<+$-a@ePLwpicC0Wb!>OW`%mXupqb2ueLdY6r>T z9YDhmVnEa?vGucSlUm_c;b0&@%%XMYb1F3}|tL8p#nF1xOB;I#hU2cexNa z$_33Y1W14;!{ZeW3&yRPuB9Ll(;~>jM*m)*{slhuKb~iJF+v`BxG6#^L;FLL8bPwd z3K@#J+;RgQy>UxW5cOC!hK=tCkV+2K9bVT7ID6&Xf$aQi1x%PF#hWf&jgY384JIM#1g?lj-C@lHD5W zm_8&Y0)Av?5gGvB_OO$L2?Epzo9bb4_$X500<4F+qnlC#tx}*`j`^}F7rVWB z^aCAB&k-WSWJ3>e_DBJLzxTY{^L!i;WiietJ+4J$7jm$n%NWGAhSgm#_!EJdsKcKK zAR({}?h@1-J^pwEA zqCrXHRBP1;^gj_eQ#DB9Pr*P$fOa`Lw}B*hL_0Q0Ko1h+ABTtt*f!4pycoM`B4F|8 za+?AYh9nUAEg`{Flmhi>U*l^PBK(#VfSW-CQg?{})gdeS*rWOYFUSx32+d&V&GXFi zijR*ZDMI9?H5UqCXElTjOaP8BrXmJYS&B{wG#Zrzia?9uG0(Y)L;q&!YnTWC$ zHog#;RUrUAb(Yv6PRRa6I`ptdvgT0N>UQVh@dM?_o6m{B9Q*P-!B!EMbYsMYHSCT^ zf&krwJLwEjIgM6_yVNN!ii$v^BG8Zmlmu9QY)bGhJBVtai-eYw9vI|QVcs+%{#{z-3=vX-W&^v0gr1hI+B{-?X zVq+@t!2laDkKSsB8ZN|M4TaI2m!9WBw_8v=+3=jAK|57VADncVeFuF z>Qn@@X21Ex1tmTapmQ$Tpc@t+6O2Z%)I820frr%wSRppV1$OCPmW5%K@3K6S_&ww* z7HpEBI~oNxpW0z6Lq0oeiNl+I|BDM`5>6F?$wa3;DM$ex+5>3y)|iot+ogPpWVnrR2nD(N&rM)GNA(s*bZ-iH|ln+ zxfgmPFN@jk(4M9~n0v|l`(w7=dqDOEECF7KHqM}ZDd{%9x(^zd#VfMpn=9<&*GKDf9b z3HWApEaq)67_@oJdpz)mAkZDwC@3GwHE~uFP#%={lE7#LK^Y%!IY7!~J-j^th5U?< z2oQl|hUYm7@JAaFh56NkCb!RSGbY_Tz!iO4Don~$R6C?k1XKo$Mv4F^(3IM}3!Khg2$b;! zNMz^&@&QY5vppVGk^rgDRvL7n8`nf;ATpsP3CMbUR_lf;0uo=&zTM-u%)=E&n&8Ld zi)?*Zaty|U^X>6tc`+D|>kNnl{dKouFq8_&)=2yplvoI*2UQBl`Lq2MetVqf3_k`Y z-5@6C7vgI5_;JiYKr#^N&?5%)CX#_H%2hRD2_%6p5hx8H;pr{M1kaE(&hg-Uj4#OX z^msU|h=8ELUR4x&%s{G8+OXUrl_4kvQ24@rZ3!j|R=0LB*{kaIw8REN>*cG7#T0n8-wwYw}sG z475HApv+XlGX=)3t*FXkSEYiC!6^ayoS-bjqp|>$_+v$YP`-|f z^X=`5A1D!O94ZD>lS>zrY1mL9Q0tHqpo;!@EWXF*D(Z6lz?XP%bMxb-WWxl;r4bYb zmOvCE8H1TPubj!1sKhU4uS!cf{c#;z4Lsr}Zq9G;O%bWQSmIMUej?DU2sEoCs0^t5 zS4O{@{tw2dSwB5717^eEQUFq5pg1TeN(rho5FwBRL=~u|po{=ppV1YAALaaSZf>5W z2z5)Imz+<0pd{d0LNs4LGI*uSdQdH$Up5!e<8330O9$E|sY`Q4)Oe zfXG62fU+P>U-+Mb`vv}{K2CLDw}^@`=H+U@D##dg{xN}(Sj(vdN&lhvJgsEr|4{l9 zsDi!`S3gu%2n{Yo*%r$;b?veia96_nWZ4nX2bR1iWCG-X`Mg~>01W~6<7uVbPvL)3 zQ^(~KGpKwZt;5sj)^RS2k%7+_Ndc#?S~5PUFHIi0z8onA&{Ydx;Yn_PXt!0C-L;t z)9Q&u5CJF?K@??XKrND75V1=#TdFZvSwIrd$E93|DFy?z0%7_YL%eKXo}QS%xzJny zi!ZvkktM0DMEK)D)uD++StP-!0-`AxKnjlvOIc{#U8`&S+2my24kb%wG*8I)cht465oN^9Cz@Z~xn zPDy5;2x#TbtmIG^qE4jVs&W%v+YGc%TCozowmGbIgo=PPLA5>q*G|rhYXrne>2#_N%W7kCN~O+aJgseQU zpUp}Fih(>Wu2@JS-%#Nno?4AoonfaA-IC{nQ}yYs{CA=g0)jy)#P>w_o#+ia{8irk zVbJdsHbqySk;>qgpBOY6wa>1ZfcW@Ge2mFFH1!VuXtYkov<59^UQWI|qpS`}tIsS- zAxb&=r6lscU)~TkVyFF)TKR7a@`D-$U*gL`BndQ{^;p!{C`Fp(ZS|ZGs*>wuRIe%H zUc>%GKz(o`|D|ZAoKdrA^OHXOT|WLotUm3NiJzVRD_7$m4(X4X`j1RC#K#QuuRou3 g`!cFo)$!H%FI-p(^hLy}XaE2J07*qoM6N<$g1#5!oB#j- literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_6.png b/app/src/main/res/drawable-nodpi/weather_miui_6.png new file mode 100644 index 0000000000000000000000000000000000000000..e3f443cebeaba49c648bc28201bc01b61d2fceb7 GIT binary patch literal 6314 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_7.png b/app/src/main/res/drawable-nodpi/weather_miui_7.png new file mode 100644 index 0000000000000000000000000000000000000000..c2216a62a61ac9b1bacf2766d8e2f5b4a1a1cdd8 GIT binary patch literal 8002 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 Ef=n?>-v9sr literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_8.png b/app/src/main/res/drawable-nodpi/weather_miui_8.png new file mode 100644 index 0000000000000000000000000000000000000000..e3f443cebeaba49c648bc28201bc01b61d2fceb7 GIT binary patch literal 6314 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_9.png b/app/src/main/res/drawable-nodpi/weather_miui_9.png new file mode 100644 index 0000000000000000000000000000000000000000..083b91b0ffc0e677c21df4fc8501176ba827f5ec GIT binary patch literal 6924 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_na.png b/app/src/main/res/drawable-nodpi/weather_miui_na.png new file mode 100644 index 0000000000000000000000000000000000000000..d4aea19c3bdee756d51e6a19e5a806dda9d96128 GIT binary patch literal 890 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

-aPhLhM zOhUune9}H-0=GfyBqLi_eD9lJvXZ?Y2Q-|yn>)l-R}&qT1mtG$o?7(A7hVSa;O{nn z&Lpreo`N%|Nu~7l@k<$X+9!LJ{pEzGXTQA~R-N`|Y4RPjHWEp-znBp##RVE^=y{nv zkH0u9<9W%FwFPeTw5}Ia64C{q?ft&J?N2Z=Ff|Kwz#-Weq>1y|c2rN75yF#o5ve`q zC;iF9zt2g7+al}H)aHnh%wJk77JjJihH3U(r8wS(5(o9J#{6!&RFl+>e-ZMJSCBbd zGdnT079LE96{cB982f{17A_pJh5b%uH{sK}tsIW47_$=4IaPw=pC5dLvaGaY;ztZnKWt+8lKCZgf9 z;Eu1;BT=$TH8PkMsZMZR6U7F`6Y=4|L!BBy8WAP{GxiIrKjidZV zwl>C`T*PGum{|Zs%WK)Zc9B_&dH#7N!n6yn>JE80#!AgZ=tm=1O@T~{j~4rzNgvsf zI$qT3z2(;)I}qztPMAB0fC5f`Kj8nUQ|R)&LKtfgw_8c@D$Fc36_rf#&JIW=JsP0< zD40a6w}Njeh~RAPtpXLQ!A?MiK}I}p@WjC9=#{>tA!K2TpiYo0h)-ToO334c+1I=)tyi|`{78c3 z8e`GfFrh{no_&%@fI~tNLy@M;ZjScaM!p4ENyU?$eXzSv8-F3ax0V%RdlyzsByG;` zCMNamjqE+fw%RZoBVkrmz%JiS?4CruN2FlX8;6oG_3KQ`GJLlHH$!S!98D$Y5N5%F z{ePzkxuY3W&(B<0yI-r6!@CP}O~I`?Mp=YRgB$s0u4qR@QjMh$+&N};?-Lh$E@dDm z`f3ZtpipB_?I((OUZ+?lA@uz)(#_=A27LX8XumvaB~CVwGQF^c#=c}Y(8DlE>n7#^ z)#yv1GQ;xQE+Pq$k&0lwwnqDqdl&*sPcL0K4p$BdNh6w`UEHp+-hMUg6%n3rknJ$f zBe*9e6`N-j-|=ZQycn4ca1EX;7tSTjLpC8IM=n@i$?ELS;!uCYcl-GdP^5rob?lB$ z@MnqT2J4?(;{7-|ap^6IKesxL_+|Nvs?m9^BX+WR=Cr1&qx|@iC%Qf9B4igQT;o%D z&OCGZ%%wU)g1>kVSaBSL#53{T^nW~&T{GI^dOtrr!M6EBnSPg$NRTPe>EIBhHXct* z!^ud)c@QX)w)+gWY7oU~G5S>}YZp*37*-a+arQEO!}KlOIwHsf*`_HhMYF}lDu`qN zV)#sZa`iYiP@K@T5-o7o%64$RiL4TeVvC8v54{f0v&Y|SlmiM90w zcY=IjYKu%2%eu5bQeTgV4UHokio_0Hv0gd`GP4&Em6mpUFUXE)H{q>o73Oy+I1@?x z4|k#I^?bv*@F4m!J@dH44e+v&?_VB(BNlFxH=Ab`RaMJ_89IFjUy`~GXvdW9YEoXGWdr12JG4@u+<@D%H%^Vrx|vZ)5VVT0gCCHAuS zo34-P;{giYI7|mw=818LsXOFR0QXliROdMXKYYz1nDohmnhHBFKgAvnImhy=|F#RJ z4R0u5$Fbqbnu-{$)-RwfxMiH>l|r3=^kyc#1{y?@lt(Me?z)9-uMs61--Prsqdi4a zFq(U4$0E?r87z%u9bsez-m9$MAZMJeQ=&`~*MaE`h{+UnEK&o~_#T7;PM2CG6McWJ zMvV8`{&{_Y`I=nFnJ925I1FV>iWgZA5&Ocb-@_z1fJ$xxkm044!kmUSTM`dn@5{G% z*7)=0ArPdH(9>qIF-|}`zbo?3tLq}h)`6e2kB4J^InuFh{-AU8#nzd>@b=SBE}k1;vFk$fM#GlnfCsFEp`d+Pb4C%}!mqxnl7xEol^3KXg%B@< ziPkz;@&P&@p@q$N!3j`u(5{awNDrgCB}%j~`NufnR7gpv&Qut+6J4xaD^LQZ3WP(R zRvHS|gqZQh_m^?DdUdp-Y#UJ1JvNU|YD-+Wro)NWQ)mYyP%g37h=B z!C$)k?z^8FiY+nnwcwM=D{#pswE2T*7|$>@r#SuZptdr#=bpA{fyOUhAAs%HLvi%w z#4tfr-7iKak+2VzD{i^h0ZoaVMLpc1f_Zp7?D?X|(D_;u!-y(Vx8I$^;N^uv!pywx zaEky{13qtwCyFDGLL{=7ds?kvdLAeCRTbw;TKxa27?1xdkbt$ad0JVO@eb+=*lHkI z^Y-+wkS}5=_+Wd|2|`P}29!8eEP)%oRN!eVLJE6N*3bZgn^AjNax>@nk3KPJh1)jJ z+RvdU(CbVYChI9k7Ds}*&5YyVF<^cNK{5+b=Xvv)oVsT!B`0f&QezO;6f6_V_@upm z&yil6tYg}JOpG2$T}pmx;3$SYjW4HK@~RkLQw z#ohH9<7Zaoi?JV2r=jJUp}0F)rb$Nyi$rquphl0KO=G@VBMIbYNQ|GV)*N=IwrFT_ z*Spj87S$(^Gsm~@u+Uj?f8Vzddy3_qp_Q@Gb1q$N@Ddm-4114~2n)=*F&mwQOyPB{ zJ!^o*i(+T-xPT-+q(_5;1EGOg6?#f07A`^;NwSbdSRs2zDrRWJN7?9jP)&!;SdpZUepO-+{TdnHuP5MO4HG#A%(Fl-(;Jh#HH ztNO7i+}?1Q0wy-BKN^^`DZl{jvpYeQjN{s&Z+argV>g~gmE4DFX*;O-w3)lS=x~jV_f4^91~t>HwohZit5Pujj$?Je{kkra>exL)h7sJF zR8Hp>IV~`A6}ZEmW@m4(Adr2IjX%4L2Sk(EIl#7Jie%4;d#EXyAOrDwDm`dz?>A_I z9BHXspSv>yKT|7L9uqtx{(+!22AzaNi$?6lgiFjAj(IB4zh_6;Z>$D6AJy$()PEkg zw$EY7*~a#f?{v_`cHAIb&&;}eOY*E?^^WfEol@kjfRQ)2bW--1t0S4G;4 zr@R1tsur^J3EmXK(7Hi-2Lb#*d9{6M;p-|U@2N&7|32fpP1EME_4-3sU}O&zVd={$ z1}Ya*$ND35D}V4lUD>3KhjY5F>Ev5y4agAY9y)uHpmm``qL!HZ!GgBgoV{Ne9s7k# zKsK%j0{f57PR%4HX3Wc;j%(EgMzMIX_yMn_b6yhr-RH$EUPY6{ns>Y7Xry@3W4mHY z!S=((vR@{!aP=W?k$#0V=f1{T1+pEUg&Ztq#PJ+=xR&-`~%zQuqy()02Wye?Ut{ z{WN+KNG5r3UmbmFnir^wCTa_@M7#q~O%(BKWB{Biba-hlhRBUhB6x;91Fvm*J!|pc z*c)+KKbcVze+!zxaD+ye#OKWFiY$HzWo0BWV-B&8)Z3ezENBBNlQ4vs1}LbL6vb8- z;~oaiXs~Ja-BE0(c)^3~E_LE~CsHmgL3j+^7);w_cCCzXdU}S>#`5ZR;~;U@4arVv za|mmO?`_jZn3Nvo%ifR4Gka-&%*C=E$ldw93b4l z9?Ff?Y7dOVo31^g0#t>dETJbVT{z3l&2{F02U3Ovzo~S8|_);rQPVGtQ zxaAKXV)=qV>;IMyP&~wJqJLL!UG~0L6SSJ`1YU}Z{CGzWM>v%O9F=Ys_(4~~z{-;B z4`SVY&b8|a+KCSXGC?t6juC|obHS*+ZxIy$ao%-_D6=f({^Mt+EJwfkY5!~cDn!+g z6?y9t=*VoUA2cW)tUmGqpS7-Xb}i0FoZDV7gf3A=)!bslW6CHe6=39qT7luL&b|zy zICjm8-zuOD6x&`WX+aZFcN=%1 zrS?hyJi`Gss69i>6H%4EDGH@zm(5?ip7faXm5(?4Oi!HO3Wn}ga_Hg7v9^dW z0p(VgKgKOL@Cm5TeC z)Zt2Kz}d}gvCpX|rzM15?)GaE#O(v$0G;CWHm0@GVFCR673eh;FZqkoHM_OdKT9Oyj4}SX2vdUewsk_m3Rkn9QB<3(6V`J3xPA` z?|S$|>f<%v`&+W_W~{Qqdfc(LdPO5Cx;oj`Pr}R!4lm{S05VoB;LG# z;vG_5gbu^pX=@24#WcQVThvxuO=$Y^B+S7%i7`0;%{9YQ5kWsq{3ff%U4`ISk~0sz zhUW>Bv`{CvuaQYyKkz#Jjw}A$_2I7R0PQ!rHauBQ{fhq~cKM}0nb$|08gAlo<@Dly za^&_F7yj#Olnbqokk$>Ab<`%_hkNu3>&bw(LQnEG_M*)utRlL?XD)1b3q~FhgM))2 zmo#m!*FK}3jnQ{;O=5~c&oO1*DBTRm274M)i;MQUOym3oKHi(h zZ@rw(dgf*y-?-qO^Js#)9tk>F9Edy8+~~zdMfcMAH&m+ z#Skdt<9cRslIV;r>XKgG)8$aBz^PT0?D4~^`eArqU{&N0i34kc$oIr)-E-{gEB3ir z+a~5E7ruc_R5pGe<}(YGr4LMT>Z$yU1cE@BaoY;u;a*)x;!4!(tG2heHL6Kxg)2!_ zjs>6rUVHUR62zY=%B;*nF5VEq<0s=wSocvI76C(B0^t_|P1NFeBIxhzw&1I|G)Fl| z?B$l>*I(otL3^ZPo_B7%hQKhNH#nl9YA#JF4rFF&ba*8>I=H)uEQpJAbthj&99RdV z!H)ME)7VFVZk=)!WMQsF@T>LIHUW}K%+=h_h)@f)PdDfg3|dSW>LE>Nf}e<-dPT`S z-XB9H<$y(*xj3T0CGID%+SoKp%#|}uZ#nVJ_XJAhn=<*@Ofpx{%*%Is7gby`csn}M zsX!Sse6_xmYnEvlgAQvxfclcv8?p8V(uo2Um(Cu8N-!tlK6bYe01T|BblMj=I=?3- ziIW&;dHbz2^BIH#&CmzF9%YPK=h7*k!4)EUTLa-J^p7Q=hhTvF~k2wqOI$U4A8>jOfJ%zXMeW-*fQDzfOOhY+&26kg2Yd(etFZ@FHt; zqvD>i{bgcV5u9nDAn~(|pTp0_i5ulb(|4{9`OW41HS$4x#K1y?Yr6-@!OU69Nh-rAp1nXBiL`ui|cq6z8{tNI|l{X zk*}xy*WDHT@t1&znAGo7UhL?9-Cb#G0t{+WWq@O|Z|b-TMXIR+G@gzp!UmkNDc^64 z6fYg;cs;&o+t!%FFo|Cm%|F1T(!wMe3(}4oRqvnDORthY2>+|ShNv!$EPpeWpce7L zz{`ao?{A7?Wr=fi!YCZIX^@4lIx-&RLX(r*H&>PS@$aOr56r=p2-A3v`}|&H*51WD z{j2mz_`fJO8{GX2N6v>%m~TNT{CDN4(gv<<#oPDfcADWnp>0BE_YKjjZ zM)~p+crfeoAKfyv`kIrme6k}r1m9EcC!5qIgf}$47?sOip{CK*OcuGu=aP2(rfH=VufQ z)A|{Ia^gsVN0G@pB&`6ctgoqcv2~FN*JXyA0JDH9M4JL2pR5X{-A4P8O{L?&9ZB#o z!Vg(DD9NTi;lL~1smzH#_ai?|c%|r6RJQ_yEGbttp2m12QDKZ58p8o$0_=&KrUUO6? UjcNSfg8@KUUPG=%#xm@G09Nj;E&u=k literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_10.png b/app/src/main/res/drawable-nodpi/weather_sthul_10.png new file mode 100644 index 0000000000000000000000000000000000000000..45b819359c269a793376ec06746131d9bd855c1a GIT binary patch literal 5516 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 L;ZTLSH~oJAqp1=) literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_13.png b/app/src/main/res/drawable-nodpi/weather_sthul_13.png new file mode 100644 index 0000000000000000000000000000000000000000..9dfad0dd1e04d3078b44fef942c9016fd0578dd6 GIT binary patch literal 6696 zcmb7pWl$6j(DyY*9Nl?@gdmcFQb%_vC?&1ZN=e7v(I9dP(sBF&Q5xwG4p8Y9IO#?O z1VKvR?)CZhete#t-P!r=?EGeDzwFL#qM3;dXFy)jjapTjj69B-Grmv-L5uCSYm#nca!E}FC4$6d0 z+$UEmWsWD`@@9g8(vQeH<%PD-Y5kvMarDpIYX4s(AUrZMGW-(UAps861~iD^8$q*ov% z#te1~LahEqaj#Z61G}pnZns2_Db56OTij^Vu-F;n{u=Dl)7SNc%|c8AVia1=rR+q? zXC=pSb;v-&BuRz}!C}TFPNd9IB+pTo5Y#=JyeXv z;C>vsUWN_vxLfk_uB-TS{B`@FJ0p|cc&WG{uGu=2s#z^#fxc9PeMm3z+g*Od0Z+n_ zW&NljrTt`%5GeL=w~!5dZB9)DmPFN+*)PP*=1DeU7bTLcrOd4Uo^uV9701r2g}{=U zqt<9T&{t_sR<7+9N`Y@WlOJ&eb6kiFq9)GC&xBg|g2gUG`U%P3)NaF6b2ByXHBQLv zjGex^_xvx*ULiC1rhAm*$_<8+2B4Y2Dqp;?DC0NUl2?Em-;_k@^h-3vh=pFt#%gNI z=xA`{!I7--Tgor$Ae!AmG}ad}M>;q@j*VIw!I0Fz31|F_pzwVN==UfvtBO1l*M$(~ zr>AJASc?ElSut0VpZERE6ar8j+BEnhm*fGWkNf||m!S_Kk;q@L_Bad=7;uBsTR)?A zyGOkMtI|t|1ft#_ZxxE26+Ge~O4IDJ0?fjjvZA(DbThDvJp_9opfY|gib%yQAgJGM z@8l=~#BT1pM7~8?#0N4KHt)_si@3mMxK_hhYcb)fRmO5f0Y1P>H{iy*AIh|%+)q` zP&{vR9!BNSUAl3=1d_~Z;lsyQy$jR-G0M!os;gr8LSj#hWlvy@*QBJ+DXfYbGIAOo zQym|aqBo2IX*vKoH8OVTzEI@u0hSo#%~JvxCP7_#5H|QK0DEn8ga!@Qm!e;S zf)oMO*WwU`0#y#o341h$lpOVN`0MV`}B+}APRR|6>RpxaCb~h7W1!4YzRB3CU=c&m6TUc;FU?I^Q~8aLDK*Y^qS!6f2%ow`7s;)hqrb#uAsK zf$9jGkJRE?Xk`xEd~%f~epePr3EPl!s{)CoMZp3_2(__5X@pG$YT!lKpmgmXcWFAT z%2>nDA3d@yTFN-l$d6Z~Al&M%#Q@(UYh@tJZ$SA6AB)Vzm?011(T`xG*D&V(6&yH9 zP{j`Yrr0<}+wFOcl`y=L2Ke|o{RmB!>Sqxq$V?m>G>BKAB>E(o3c)LBf!f#UWgKS< zd2w)%xF+iM^KmtZm*Qs;28ajT2QvN}^IV_-3^Xp{Us-ucS1A*xMQ>%BcyT*D3DHLZ zfm?Az-_LFb2(JuPs`hN~#qQkN#i9$R>!(QSj?ZP^eq|5$*|xH5C3F!X>AA7I59zHo zK_p1!uRbuG0GOWBMFt0*PRea;O-!r$zc*OX^A zrUcyp(4euVDWsAT)CsBNOO6DBW?KG-_MM+0Lpyz~)Aa_T^MWvFshG*k>ozAtKKj_& zZDP75gs=8GRg{h}e&EWDr~(QW;r17-jYVUXWFAr{{Q%mU=w`ID|(2RYk5O%M%| z!0x9fw=vBJpgJuOYql)&@1Q@7A?fAnN8TC(Oyi=qqQE0bWCUn10CR58)mSVR3Gr$# zs~nc1q54{#+Ff9~ngU_AeyO;L+Sw8~LE`&mIm_&dVl-|ZLKA}WISdF(6PEod*SuTgl2;;@oI)V z3Xw}0Rpx?Tb=8tHJaYqu@e`U)6^P4q@ZOR6tGqc0LFDhu{~)XGeV18?HO`5rN++mmTrFy4IUoz@_~>9LnQ3-u2>|jIO?^<4Gidov`g+ zN>a9MBAt%yPwyWE^q$ohQ4_LXR&%{A+;1p&6xnpiW=lR@JFV{$0Tzt;bYgq*K#|Se zR=Oaj-)~^F%Z}m2^Icn~q4@iMj(|agXk(sNQdgJZQDfqCq`#f9^Mx#ZbOe($j;HKh z$B``_1`ssUa2GRf++Br!*e7o02{(oDKH`k`3LHGvQj>w<9jz%_r2AJ!=g@L4;8oQD z3v}C|svQWA6nwkfi{4N9!y6vTz1nNS%(l$u(Ebte?5I!e+IbdeQPP>6!fLN!<6I@Y zOdGUPT*T7rXd|mil8HLHU_v%9wa3{D0|2*?S9<^mJE;TmJuH`jM8V0taH*7+9z|=g z^B5NQpqESLPOEy^dA*$o3UH)%GqSI&;l(i&PQL(G?#1xte^UyG#%vT`so#tpU_r~9 zLJpF5p!1%K{rn_vu?jsiswfBJ9(?!YOwVL9;Nj`a+FD;K4Vevzy1>f^HfSnY!GRBo zt7;rf-AhXzbTR{bLcT}bF^c-6D@Jz`to$b7O{PG{G@+=*f zUr$pocC(IU!V(?NhF_aT{~~0;a#IXqcK0e0dGJ zP1jK)5teKKP`y26B{!+}HvUw{hx!lZq#>F}`q|X{1-*IWj7df+V4dNExchXg0AZF? zG>O-S^)F@pjZQR6blkJ`1MTer&JN4ffjw_(ywuP&$9>X5z=?gtu`mD;L%sBY!b;B$ z$9Us4vZo??;36`H9v|x5!iP1$sR5m)@MobbZp-e+ga?_I|BQ=v^-tdpye=*V|lZI7X5cj^__D4miiS<+e zwl*JXg@KcyxVBq+z-h&;Z54iZa$F;J4Z=QR#^BQae%JS&M~=C8@E)+sP-!I)nNGd? z`x3xsWx*$RUN@Vs%DajXYy6C(c>|sf_D)BVi}q18wnoho*SY#Kku-YBI{J$6g+vo`)aS((D37oQ%BbN zV@wa`L=Z5rCw3vXMGU$TE=M>Sown-T&|nxt{+=-7hNz2VREN|=0w~q|RMf#No%_QMQl{+Qk)DBp80aJQk&T=UOteoAj zyQ1B2<_UW*4&u4kc4;PMq(zfEG z$SblY%W96Hs|5%1oY&)Xtu zU2X13WRdF2A>8ofi(CDvT&>G`(_+3#DOXU zN&$-q?|{^;x3Ah*GaA?Q@6gUBAA^)`gYa|uZ(dNe;tE`4779y(fSsHril=!hD~bx7 zVSmt=WJGhhX2ZtnQKoloshPXm6wM>+c{3Vex;BS--x}&=fe7f~G*TNHo9HY#-HU8g z2Z@U8<(`cCmybyw+B<9Va5r2{^yE_ZMXowzg`I!bzBdo^ge8dK%3yWWX8Iv+z6xH< z%-J`#vsIe-GU4N6kHx;qB0*-m!;WF&%|PtcVcSeK>@Qw<2YefPsIS%9E;FK3t6r>w z-ag78`m{q&AkFm`vOv4AQ?8W~FeG=v_``|`Tlj84?K|`}#W)MbBqA^59W}L`q(@b> zmLn@f-*L=|eY>i5xc=++Np6At2Od)CnliETapuiIB@c=@_OBjc2Gv~qV*xi2_h7d= zgCAVTc|YH66-gFZb<}nIh{hO;$=5 z!x5Ml_R&TqT)0P2@cP{P#EyIAT(@K>cWeFDtlB|z3F!Q3+-+6PoTfXY{5wO@wog5puo{wZ5*L0~&le2q=S=*#;1Ih8dX zPLO{)7w`ksMydKyhse7lN7FrkF{fNZSx80IfMRTx`;s-^A{?5Li|C4MPlXR$$1U5_ zP*aJ_w|}fn?rGsFg%Na=tQVq-;MPj}3N`_f-2Y{@!xtrK;JD~3zm#*QjT#5%@nbbq*MR30_x!>>PEYLb!9~w#5m@be{;*wj5f{XVKkE=#T;oW ze%3B{@>?!GD*P1P0`jKoEw3wU>qQwZc^FMoG;veCO4V73qrM)2AoAKzGzHWG=z=_z zW6CsVxmb}rSQWYcQk0O+`a(Kioy|DsX#Ayw+$y(AbfW^T%nDGkui}TT+pK8x4Idt#3c*^(4KJua(2jBZG$WW;KOa4}T3GG)Ip zjWSO-N)hG#c4xF5GZ(};KXPS+&JFQAL80ki5ZUA2Tj;x=kNdGg-Z(0s=oLR(Wa44N zaeQBsn0sxY8XULf);%VHIPy#X_MVnO0CLd+;O)q2snUoZZ2_L|d{W_r2~rwQ5!|lc6scOmsWvoow z%XS*##`f@_vB>?|uJTO}JB9x!WAL;qo1noTzn}A2-FS;S>gTGAoV$~1HdNmiwod+8 z4ls_I3PWBhCsw74Bj&`+B$;P`LZjmEOCg(dZp8TNH^AO?ghce~#0kU4Iuobcafe z9IPdFjqcARK8^_l0NGmFuJ8Y{bpG3$79Tu7!_w%xIN2CxXveBuCf4pyG7(2Rf48-GzY~-mS>^WR z$Jsee_uNymU|i)vZGA2GC^UC`SYOO_Rs^0uJ0We-c14Txnc;nw{B;wy1>ei61f+-x zD58f4LXM4!AB^xiZiO&i67nQZqXPFPTQQWn@e=X=ZwdF*oTdJ|z_8QO?^B6r&nn1U zO5;C!rnHV9h0}TWZ0M$Zv^~LJ2C5dv#Xo^+`qs*Pmv^=kjHmA8*p_fxxyANGeLY$b z9F_Gccbq15t!VnaLd>>eKii9iIHU!i<4raxi}q3=fIMr zV(1e+!?mS236^#{>KJHP7TXy`bDHT}$>% zexw29iB{{E7o5`7{|0&3##uq>{WRL7vB9Q%&-sJ7{qHUwiwW<{^5DY>f*Nr)ugtJb zy?PW9cjI1g)a{>jQ1~3D@2hbw`ZWCr2^|`?EYcsY)?z|xSZH55R(CRfDQ1;st zgS@i%yZ1`heUw*YvOqBj%<=D?iu;xj|27(f$u!yKpUSF;Sc*FtvZhdng?Nb-0E3{E z;9UMBabP!OWoi#&neF9=03|cUp_d2AI(x(1evbTMlMV2EdIkjc)PuvNoHlx~a?CV0 z-yuxmMij7TSGWl%oIyY449@XZC8>sXt=+6(87|(LFfk&eZq23Ibo6;eu(YAmRdJ1) zUSMv@xFxJ#>-+f@o`w9d)%>oCJ*V+q;;8P7PBHY4S}1ITes2QQaQCCzt?G`IM?d-Z zOT_;oVJ^DE`RtB_A_z>B!T|7N7&|C&C=gg z^*vpW?=I3{Avd{zDB2I}jnqU#H2qz^nxa~craG^Fo14Vth} zov$LpXL&+XbC1;<@_X05Xglu|YqmoHIvep4-tiy4KK!-#?OIzOYNa~k-(gemSM*X7 z_=Jx5l3S;`djisa&$HY>q0SZHsD%LYqN)lH<{l~KKbhqs4+#Y#03p)jj%gt|eBVbz zTCOPd2&6i2oyh2>YpF?Y@`&~KQ6P~&7Zu)`@1OZw(k}a)CXkLm+X`{^l6)w=qEOr! z1qeJFjss46L|nV%4O=-C0->JL)b8pj%L-n*aD7Ad>X!m(?4{8lDWp_GpqWkRHDGf9 z4R~EoPL{^uuN;yvk8S~G``t7jlw3K)VIJ*~1!#o4$eE5v_lqt7IB~u!81}k3YW17j z>vJ--G%ogv`U#ThV*7r6B(M8)p+hPrZRImIM75{VJv*E9lALcJ5 z1$9M4AD_z}`eU&fYJxXKL_N=C{rs?N{{WkasPDNFRSu0=_4%^jc#+2RHWpj*{2h9* z*QJDuii(xYEgH;mRHol;n60KlWj}i9e)r(@mT5dTQ(n!P9HIU@gse$*5)gfwYN?>M z>LQ|Wb~-rcpTe_%mn1oyU9!E3KFzcw<(?({`=Pe^tDa2sx=(3{}1>cT@?TT literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_14.png b/app/src/main/res/drawable-nodpi/weather_sthul_14.png new file mode 100644 index 0000000000000000000000000000000000000000..21572fbbdf442fed4c61886bc079383b05281eac GIT binary patch literal 6526 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_15.png b/app/src/main/res/drawable-nodpi/weather_sthul_15.png new file mode 100644 index 0000000000000000000000000000000000000000..672239ba41ce8ec50b54663237ebd7629bfd6924 GIT binary patch literal 8109 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_16.png b/app/src/main/res/drawable-nodpi/weather_sthul_16.png new file mode 100644 index 0000000000000000000000000000000000000000..b9212816e07031b1bee0aae383637ee0090ab301 GIT binary patch literal 6717 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_17.png b/app/src/main/res/drawable-nodpi/weather_sthul_17.png new file mode 100644 index 0000000000000000000000000000000000000000..872cddb203d2b72d82c9a88750c4c4f608d47701 GIT binary patch literal 3847 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_18.png b/app/src/main/res/drawable-nodpi/weather_sthul_18.png new file mode 100644 index 0000000000000000000000000000000000000000..36f52825e9ff5e955501d5ba9c0760c5623c2d1d GIT binary patch literal 4694 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_19.png b/app/src/main/res/drawable-nodpi/weather_sthul_19.png new file mode 100644 index 0000000000000000000000000000000000000000..002c9ace511e9801220f3efde196ea1802ff694c GIT binary patch literal 3271 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_20.png b/app/src/main/res/drawable-nodpi/weather_sthul_20.png new file mode 100644 index 0000000000000000000000000000000000000000..e30db16d7c61695084437b088dbc58e487cf54b4 GIT binary patch literal 3466 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 Uc$nbQKkf+_=-{;LweT_j1F>l#NdN!< literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_22.png b/app/src/main/res/drawable-nodpi/weather_sthul_22.png new file mode 100644 index 0000000000000000000000000000000000000000..352dfedc5c02b5ccada194ec49439921fed4bf3c GIT binary patch literal 2911 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 T;E(_67Qjf~RIf(IDfWK=YIJCw literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_24.png b/app/src/main/res/drawable-nodpi/weather_sthul_24.png new file mode 100644 index 0000000000000000000000000000000000000000..0268c2bf2cabfec3253119a1048364ca95749f60 GIT binary patch literal 3861 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_25.png b/app/src/main/res/drawable-nodpi/weather_sthul_25.png new file mode 100644 index 0000000000000000000000000000000000000000..1b8b153a3e9141c7e9fd04cf61025eceaa981586 GIT binary patch literal 3708 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 EUsNjn(*OVf literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_28.png b/app/src/main/res/drawable-nodpi/weather_sthul_28.png new file mode 100644 index 0000000000000000000000000000000000000000..ee9dde6975aeb23a7f1df843e598be66c3fd9cf3 GIT binary patch literal 5002 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_3.png b/app/src/main/res/drawable-nodpi/weather_sthul_3.png new file mode 100644 index 0000000000000000000000000000000000000000..54fb8d6fb09721e5eb4c61ecbeaa53fe1e2f490c GIT binary patch literal 4887 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_30.png b/app/src/main/res/drawable-nodpi/weather_sthul_30.png new file mode 100644 index 0000000000000000000000000000000000000000..730d99ce9aef1b6827d2862861d7713eb0c9cc01 GIT binary patch literal 4681 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

9&fZuy0=hd$f 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_34.png b/app/src/main/res/drawable-nodpi/weather_sthul_34.png new file mode 100644 index 0000000000000000000000000000000000000000..9515fe6cd43d66c39a861c391128a62b6b786856 GIT binary patch literal 4524 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 N0Nu{n_CAf7@IUm{=XU@A literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_35.png b/app/src/main/res/drawable-nodpi/weather_sthul_35.png new file mode 100644 index 0000000000000000000000000000000000000000..45230ff81dbb21f42b6842c6a30fdf52e6d72558 GIT binary patch literal 5100 zcma)Ac{r30)P3ij88gN*V_&iivM*7J65g?sWm2TFjHN8uDrG6WgQS&+B+J-Ewn(-z zmP#cCm5QucvJ2V9%-8R~@4xSRo_n8j&$;Kh&-we_BHNnt;KXqN0Pt8^nAigV0{*YD z$bU+TnCZQLU_`b)X=)y9{q@9&|6QA#o42*K!9w;fo5kx_*llHXMpmxW*jVA-mru0Z zX-2P;eL(TKi(jIm0z&iSUk?|eybJzaLx1y|K8J7S+;H0Gq>10^ug3IrS z0u{k|%QN?WXq5k4VwcK|-_8SXemSwhO5bN|m#ktdMEp2Gg@^CBUJd$3c8Q;H!F z-<$K9tS}LZ(fo*my0P&^Ey{72805lyJ_jZ&!#(;l@X80B|BtCfMaii`sX24<`6e+ zpYBGnU&#j#M4m^@8yhgBt5AzgJ$DI_osXvM_?-DRKQoovRKS)DLsQ6f)NQpGTZp~x z&k}SOq!xe58Q&Pw8_EvXeP`GcFr)ZK%5^Yl;O~Jpw>^J;MwxB;86&>+l)#S;3G%WZ zJR%X|c6*l9u}0Nwu_!btjJZfSa-BM&;9opzBMqS*H-pXO-_UD%Vut?$HRiZQ@f4pRtW~Y0TT3iRpg>^0w z6UsS)NB+)bPi|sQ##tFlI^jLa5Si1)gNgfKX8G_PN;JnulD`(0MH&zJeHm0 zip&`HcWA#;?i$x@mAh4pqca(1HWr@X#(^$}gRcf|@0?Qc!r5ThuRwH{UEuzkFT}__ ztmUicfUJcj*9&isY$~!Nxbk6=Kwm0da<`os)#$Elv%YK>?_~r2nb`Bu-G<|He`TUK z5|_STMxWDKVKabXCs-mt5ZV8*Jpu;=-Y1z+ab}1E@-#W><^6A8yfx$;7l{MSE;*Tl z(+w2{-45tkuz33BiM=d|{cR$EVP}LVa%FGI|tbN7{AX z;b$BNQX{u-f$9lh<1xq>QOjG)PEUjK477?HP!uj&&V@iv#Z5(*UR%Vvn^h1eBt+N! zIFdXTG>^65EP0ajl^;+B8Xx6}7iVUT{~_m^ut2Ei|Te)PN+6 zZ^S+t8Tj*Y>l2Q#5u2%w*upxx*#%lrhhv@ZxqruY%ZP;d3Dazc{t*y9V;5)(m}5MX z(W7>&iNyqR4qqP`Oy-;Kavn5A&o%}O-E~*SJZDv$az@Zzbu3Hmoq!s@UiKTHRh-n} zg|8(&M25dNOeH#|0zYEC%vxXnu{)UXROdjDucav>G$54NGg?pG`-X31mRVpI|jFx>Wx10Sjvsj~^VP$OeiIQ?~nh%lgnLdg*`wdnS6J>Q5q zry$tIN61FLNj{rSF@nORWFd^W@cr9Y&D@P3O)w^e<`l>!V2w>MgDA1EC2&jKnkYjQ zMU3%)3h2Fcnxr_ujE-7Sw zZ>Wk#DZq!{KBx|d4*ro4fv&qW8ha=C3P1&W3f{6;i}oOOneV3132}T=c?l%g(Fu4H zRdN>~mEU#cf{JA`MTkSEJl53kDPX4rnXqU<>7vBSX(=O&c&KAH?v6UgWdN7nb)e6J z_e{{tGXx@oKV23o0oAYsAMPGrujQ=tOu+qZ@R7qwB*d?7Wv&`jkwMb?RORQGH#h3d z&uaj&7itRZX1OX*eGNcIn#EZ@BE6cP_iwy;hM(A+ReBkbpq}I?Kuk9EQP6(&KKZc2 zXDf7E-EjpQMI`^veD|l|ww&q&xyqU{w$PS_!m4mgSz>R!Dy>6dEvTk=i*YAUd4yo4 z4bGS<#2)t^JS#}Qcj3sFtssFdRF!aBt5VgJ8*@}a4_R$VZQB^0`4H`;F;JxnFX0OM zjj*R#0bGPh%Za7*^f9+t56mDKf)jkrfe?#+CCEj84P=3qbMMq0)pqBm_JubkX8&XMj)0Nt8*f zUo+#V3wu^>e1*-U>t?`W^yaUhnuth@eDhKM3yR#>{@B!D*T^QioY~d9o_pr!akqmu ze6^S;|w7zi$w-mSCXz@z1U}FvN5bpgj>6kFE?g zTd_@EUoy}St1jTiKOaad*I|pXNA#i&F)FW@7mPcGC*&?yp!U3Veg8gI)%vv{8Yp(# zs^twvB%t0LPnk3bTjd%p(cRyWcx4{RsMG+yL2xfTsF5l$!!r#L=goz$esD8B!Aea= z6Mf|Q(PX$9PXvBJ6lJGb(#kU%zLPYg3Q2LYNGijlv-~E!q%wHU6M%ENfh8}ROI2L|Tem?!X<=mltTUlan&wZ_I z`~=!9+xTIGvD$u;>PJeM?9+F#y*MtsCs>?MP&T@$@?|huVJ!-YdH-8lc#RH*35nrg^Qd(OkU#HG< zZxp>~jpsm6_<-M}4@^tTzLR$V+miOhpZTexIFyJ5Jx-Yf})mIIa0Oqmqsx&B0<3&x7ipylW zi)11cywNl6$tl2Kc>O#v<_aF9NMhf{0$)Ale+q^i3q(;g zy{9+QyDmTPf70ysxJO_Ho&LHv70YrAxlo1A*Hpr*^hnIi`Xw}5WSoDMtKV~n>HPcm z_fVC*jOMSsfDZ;taKB+A_Qc=f+it--s{{RnkuW~Fi-o3$QEdD&ZLXg%Jy(4xp3O|| zYp+>qRDAOFh#(M3To)CVMoDNkOtpM-$f!}C_$X!lz;PLb%r#+*vUS{|*6H9a!w_1_ z*GVtzoaNe$ppc)`w6d@6G`Sd|W3=zzANJa*RGlZg z{CIc~P9f13zdP?1sL;R+93&qfnz6dr`}dA(!%*$YcOq?Agx28fE<#g`;r!(pR_U^s zqol7wn}M1`A7tw3-$qrT)=aAGIp@p!#$291{JJHUB5QR(AeYH)L7SRf6N0aE`tN2& z_YP`mB%js0bcC-_kse|xWXf zRQ`peeec!PKK1%xxBWx+W&$|c3t;atiub{eUi2wRnM(h`fK>a4^|cd=-RMGlopYCI zFaO)mK{roDUcKA=oZE{)kD5P`Ht+AF5`N+kCW8wqMRiCd1lzx=c@`&$x*K-j*qyWi z6A(*l0t&1sbJO0ZvQy+=e$QDJPRsXA;Cnx7lp1oyMiB;na6x$}@mvD}5B07Jpv$90 zxtK_5Y$$1E9d0;dMe!yC+rakWgsNT9-R(ISn=;w!s=x~Wx4Gl40#LBX@6^`S<-W1? z2qE;f6Rmx$(s2Mh4mS^KthQ5~GSk|R5BWvXCK9PbeRVMp zP(_6IW4R(9_D+nQG&!36RQ=)okRlRgW8K632A2*x0qTm2IR7;&YKD}L3<#CtjLhef zo@;|M9q_AC^mGJY!t0!%bQeo=sfTY13jn>5P6=!IWuUbc>dsgoadM-RY|ge^N)7VD zDexpf!AG5|7LpA`v$tvc(R4S>;yoM!=|){~hrnPPA8ld-==AKzy}NBy2z`^w^-iYC z1<;3S!@)oUA%1!=Lez$W(-IKJ7sF{hU0-{x(*Rs8ML`{m42e@z^d}Aj_oYv!;Cfj9(AB!pT;-a^s>p; z(|F_P+bds^-*3IlL!PDzA!W%UM~6ZO@8msJn4Si!4rC@%C6TkauR~M62kMBxS>1QJ z{ly3f`rn1?Zg7V*LTwH5h9t(T1&JvULg$6Pf-pGFeJe&Cw%@Q6hpR*ZL8AF#p^u=_ zx^yuH^8^7QLh?MK-<(fQE$m44c~T_~&~RkNqce?({am-Bmv_(xlQ}w(#E*!h;C8lr z(B?}ix*R3warIyOV}gH?VW|1S_PXJx*wrNyz=upv0fTQvf2$xbz9Z6=S=1(@@Uhpx z{Sa7N8G3szP%r5+vwh_7<0fZ-_fO^YVu1Nr7eL{W9O#i_m%xV15fjACt(F_0?P@d< zEir8vhR&QeTplh-*=6rh9!0Yes-v82#uCPvdUmyE;{;uiCCvy@mZVp@F);&@>$IKs zvL#A?6{3(1^kb~{TOK{*p|^-JbmN^IKA0!m&rt6AOPRz4@3?_Ozh3O#-CU`|vcdxm z<+8JdsiCoM2G`YM$Qgz=qD=|p)#BwcY?~iT&_IY3{3)mHku0`)E0Nzsis-y8ZLmqE zE!HH_eWh`fsWFK~GZKAjDHioIcf^J>(6r?m|Iq!YmwW5wcNZ;!&u(+hCvwFsZRA){ zYPeauLs=}Ty1kpPYBrv&Fb`I=whUgwBlE?HJ58Hf`K^YvQUzw;O=Q`i-`2r&2Ys>utaJk%zx0ttckf*a&j$i6p zc!kfnL#N+AJXc%mADxtt9^4mjur{hlujcgbzYkFn$L*bgQF5`y^{SC@01#WZwKR8$ zxwU%gTH#cK$gOqvJn@bjt1Pa=bs|{5{h-#Okc+m(K)hcH^@)exf^@i6 zqmU&5X|s`xwhp5w<`dI}^d=A%Zz^|vR41brS9tjiLhF3!{ZLOU6M*o!8>B5_mqgwp?H(R^h$YFRk1A*7i;B{8Uk(egzrR6&$E z&PFx+Lh@yFhW^pHz)eXeYeV+pu*u4&sZE`T%tvYC{{71vZ~A6+7GhaTAA@#vlUPgQ zYi)d|(zyKtc$y_k{^Lm@uUdBYnmW4qIo%uUl}o7|w#Ffe38o+cE@uNZ_O z_wxMK2Z$kY-ia)*>?D3mcWwr90Adf2BXNaMJZ#PRYbiXq2`-o_ zY(E^49RTJP{qh)>w+Cd_c9EHW1xCTg;f5D7h#pT7DnEIOjR*qC&sZPUThHDyRed%3Fsp~^6R zSsFDZJ@*K4h4V@b|I#NJDJOkFrtCyjXMkRPENA#2_4sK6!px!SdyFNdTh}E6IqmOQ zgT#urEq)AJF#H<#SMQJ=DX)*`4A~0qh})&ks8-AkeFv&>1EUgtt6B+E{zz&wzUl^8 zz_#0xxd|ID&>CbiY>PR+G2{;3!7}X8+MkK`Q>9U(2&RO#RPw!mKdzt&9*5`lbOO4Z zf$wSMS9Bt9Qm>M}=%TVr85_Bj&(?uh?GWxx$FmnRnG+J)w^08Gi7hrbR&nsA;1{;w znT&;L5^55Lmbo-b2oFG+>Hd`GIsj5KNEM{*_X1k$>s@m%4WW=+;vDrrBFzyeHtNQ2g0JS5VLE zgsU#bsVnVm2k$$*`n{J}+tA87<$Ym{1nhw}aD)vvGeqSx18KCKx3Zq1n>EP|39dm7 za6k?B%yC%J5=Xj#@^mECVb=@2H(iShS5atj8k*GuO#Pf);ose4>(qLasVf&S>Ftxy zV4-Buqr?!+r8Gr?jK`tY;zAcFl{@Asw73wQ)`G6 zPM}1Mp-j2{@L$3KzHZ4N^Tc3Q=2xdva*E!E;5s$fgp)cauW~ifP-#eP?#^K zlq{*k6Z{RTBbzx#j<`l%DWvT10pGb>aErOrRFyyK>MPeBI}EW%-zffGU3({VHN&o)-Zb zTos;8FA)(gi7*o+klXI!N-1-@Q&@Jz4J5Faegm<$64#@F^-K<(y;e}7I{4|t6xbM> zK?XdMb7o&imjLtL10a96CC5BS=+}|EJKxo`InJhF_pqimGp)&-`CLRVKCil8sr48A zBV43RLU11NB~$wEN&S1Wmwl&3CX36@>!)P}j7S%{Fy7+Z#^;aJ|MyhGSxcHxE#JzM zE1Ly9=N2N`GCP zp}%_(a8D~3g|g9wP$Uaj8KUAwdJxR>CJ91^QUG)00>c!q$-8y|STyGohQx${({O|g zV>bQyev1mUqxojbCt%&qBwRQN4JPsJ?_C-XBL#u=Q*moZd_S2F5rA>ryJ*#Kl8Vux zrAU$nzc^(gH^HG-oA8<_3Z$A*lb0!Onki~cU)p#-p zsjnTD&gvgVjYhzPaLG5&vuN4*=p9t z5PWW}3HS%2tu`Y2?z(}PwkU8}3NRB?5Cl3=0md~m`!N1VyCI?gE=TDi?|bpNnSCR& z<4$qa0N)j-t?n&--kx+@ZLK>HyR7X%n=wv)xri+MD61LJH#t-zVQcaey_zfNn2!Ks(Os z6}TLJ0jWdeO=+2)6UpvyM)rk)o8IiBJ{}s6il8s3fIu?~cj|Il)XCbZPj|=ZjP)QJ zTNL>quV(FrX~SG5*p4p7u7#Mx!L$sWkRK5f*J|~eZBc|@9=k)j>uR^gb5Su4tjaOG z0%;$vbyn+O!lX(SB4V%Mn~Xv563CH2rCWn~$M=~AfX8_Qww76&x+evgr))kpNy5>| z5uT1E)@e72sG{%^#!>9lhXX5oBWmU)5enUfsmsYweAm)J4EF5ed2MgiYNyfO!loEiIAtj^f(;^?EHc$~%7LBSd$*2o?j(cs2CyJZ|r4R8+G<(>M4wn;@vxIJ~t z{Rxd-GnOq4iU-fhGPWw{k8f)4br(H-C1&dLCq}oY4ySoINadTe~bV2)z$EGWqWjO^^kEpkuQw}4>0w0Xk zm-PO2{~hnt06IuWgXAr)-R5nUuRvoYU}uH zG}nKWO(0}tYi#}+>9J30`%vxO{aku!xkSEv`Rl!#d6=^zdRvX>-jdz$f11^=RytvRgW~8x4yBZ`n>uhc649jwAp_G`js)PO&dgGHi zFBO%qCprnX@OHnM9>A4%q3T7k2;kJ>QBg>vPTe9Lpv6VR3ziCz{oGH6YW>pa?o?fr?UXfCzMqSH}yQ%4-Qjn~QRQ#SOd0M2dfQ>i|`0&qTOdzQH0TlY`x zpH4in9zqKbf|7kKW9}Q*h7ZW={3$$3X4^lZ?U%K<;Ey06&PXRa;+o!7qQF1OLc7-* ze~d=F#?6EjWv-~C8ndo80(l_AH|8#&+z8c+C=Z`FRa8qoX}-OGL6KGcr*$U{I1Z>J z8Nt3WH5}!EWo3<*H`{G0TgEdT&K6#m@PEO*oA6H<-G%QZ2u-b0F4R16NkT|% zo8|Lfo>zs>0aCc&F7De@izxdf-<_emtWoKs;ud-UjM~U&SB_HMgV>E&AO?5?e36*A zOMHm?d`xcnyrbAd$>u6m_&jh1C$%Ae%{h6qdP0frPx)P^;G*D#DE1^baw``@#Fi}G z3lcB2SaC|B^*1)4A41BLYH)$uhW1M3`4`}XtjfzUjgH7^Paa6Q04U)W+HL#426AeC z!I$pL;eR(`AMuHi4B>02z3q&v>_a|x0PkYLwl<<3$v}u=cPiAt z{UnH-^wM`Ct&mNAlEiqlOT=!T?$Zt7#_3oOzS#An`MB6(S7^BtaACJgYHv4*YpU>` zqR-JLp{^E&&C6IdMFIp|#O+!kmipAvoc<4W?Coz7qn{kC{D6F!A=cHDrPI0ji7K)Y zZfs1lG%wdPfV;>hUy;g38U(7FT z<#n|044>DjRt-Oc8kEaw0>W+$e_S$+tqaVT#bXVdAnQZLYKaGn#i}4bw(G0sW4XIr zPy#*Xhdf|H)>$hB<_VQT34_R8YN1>Fd!HcxiaEZlG8w)Mo|7VYou~DT*D6Z;N#19T zrd<`}z@XB?7 zVQ(T856;uxJT{|070p8o!QH%L$s4PyMvgjjGEHK5fhP#Q4rJ?Jsg0^n{Z}!i5KQxF z1j2G;YxUC(?jl$58b9&nqve6`AQIy=A7LKI1o32b9+?+F+5ZiVAo&ESqQd|=|Df*S z1X^VnrcKCuxLssZICcW<%d5jk0DiaXXr41g^pvB4SnNa;e1tuX=<4;%(*N zjR;snjckax^{Mi7BI}uk1uvnW_!!#M-0>3#Jqu8iqDTgJ)?(D6EfLl%6*u@^_rZ>{ z1c{=4aA?C}6?A*M>ZH#!%-?=Od;ndQE^T>EWIdhsYl%$}e9lriK@z4iDB}~CIoD!q z&htN^OisPv&`+VTc8Hi>;(DrX4V1_Q3) ztQNPdi3#f=m%r*kT<;IP-=`3awY>>i4R8^ADj^LcQ1Nd|))8c4+GomB)XSW@&vj`( z{QE!swV#%C79v?oVVm!evlT^^a?uXQ=4R%iWz9RYnhMxLEkE=f<`Hxv1(tf-OH)yibH={}mUH@&KlwCD@3}cp&@LQQl z_%o9?r?eDpos?Z$*~g*HZR~JPVS?Y!ZU0)@>Y{nH^$x3y%ZdM%50{Rk#I2UVF3Ajz z;zhmPacQIN0ulVsb}UUPD$}CQS~MD|q<4(iN_ValNyZ?G zXi+4~Ac+=BVv1(|yK={AL zApSCW;>WW7f~`H-`PlJLvh{u2|5q&5FZK+m7NJoNaI8DXCiP_FY(oy4M8IQ^ z5cPjSZL{{ox%h;HOP$j*GU@43FYJm+XU+|C#Ut06!gNe>4$^bIZmFr!8!px=L24(Y0(N0_XG8IG97P-}AVJh~4t4tBT$@lsm%>la?e5-3ODKc> z?kwTcpyzssPt{4fXPiWXL#nBLDZ2iR^i1n0{@n@w6zyH^1_dlbl8t(I4JpmXfxcKI z!s(?(@d>8KYd4&vFNjZ?^&AKg$GOETCMz8+8?sBW_f?o$smV~UFFP@4mjZ~pp4jcx zOl%!YNNUQYbV~f<&!cKToplXU=V_p9X=joeqFUGalc~Z3#u)U;lkt%~PxhXP-hHnL zOCqq&07p#z+^gmpX62c5f+px$oIfJ<5RKj!S!nNnnN`aaHz8$L8m43_q>^{E89hE>>3}z>Ai2J~>MSyaKLL-b%`SHg3b}2CWk5 zcl2#uar}=1@@R#3QojW7-{OnlN^l?-Q0-TE0RhLMsC-j1ZgpiWlMcLv4D28=F^#uq z!fhl=$NRppdNq=D*!z)iR3nnrO0C+55w`L0ykQ5+xOJ`vBDi@;CHKaE^eMcMBi#@l z*2JRrpQn_8LK-E5q%N7mS@8UV){y_qxxbvVbjeMGi#&T3Lpwv?^hH?v1B((1XVKw3 zdbTnoxrl_-V-uXHo_TS)mtTH<`lc*&lO;7GYpvsPjuMT!Trxz;C(F=YOYP{tQKnqR zmo2JbbZnPf9>oiSBP`?Mt0L-#EwX?c{)f25SPXP|UH%kZR#ZBd7-cszOh=u@OZCe z71w5J8Zfym=FV@s{DoWikb_ZY^QBNj`8YxJ&n1hNjFi`@peX2$zM#)FJRx;8zTc#6 zT(iO0tjoz%06K5l$vl0!r#&*V-ji#<_{8eX;Z(1-9yvb5qwIp4c(%-IUXSvUBpQj;vx%K;x+K%;*Yord9;0@Lrmima1(8b4ZO|1D- zN5w@)VKKLb5umO`C? zXr-2`b6(ij<*Vm1CuWaWjS11Gadm~qj8j$hIYy)5KGndA$7b}OQ~?2*Q!&xJeH}m$ z)Shw5OB22hwWn${a$!DyXm;=3Mz;u&4Egw_NrzD_wxdf^h~0nTw?cC5Ie{RX&AvVA zADbRwP`bUdV9;`o3|3wQpJFNAA?5MucJe!ye&}Sd0$tbs#p)8_(@F8Sf#@~6e)=lo z+L~_O5@?H~*fNZ4;clx7=3YlE0*Is=nPFtOn{|d|&3AiSlZX;4Q22-Uw->91Q3(=J zm;#0G1>_|=Mnd`$Q^**jwlAg4Yf7K!uav72^Qi|Ta7K{+LH!>op%|8nWoV5R6e{Vb zjg9jB{n#oo4f#@{&yvbE;z?LWY8^t}HL1mE<-pxhSlgNyA?B+SAFYpk>f?y3Aq5ak zPN0#JM#h3&Kk(HVFr_-rTnqejgbH_;KfA#JggNdhm{`C$i6m63=QmE9d3ogISA&dC zpYDWCFU?As?MC4CBU1|r+L&^*g!<%)V%Cq)JMYhL#(L~*Mlh+}=b`(2ZjGegl#z>H z$7xr7>!OIiCpBnjlVQdcr56IwZMY&X8P+xQUIM1vc}P@qt3R^*rrYCeZ>ae8=N);b z7N#7t?-@|A>eKmpz*uKqGMo<@OlV?TzFH+d+Xhk!YG)M+=ww z)ghdqSp0oLKdKDpkZWF?{`G{U3Qw_Rc}Dl0V@_w$G%`>tP&3u5q!JMHC&UqWn?}Vs zv{%6zP`1r(;O49)^}r|dAhA90m*i}GsJ_QgqaB(17E~mI^npTyHAWmPT;SKopVYiW zY`hn%!}JsZAKl1msMnk9VVx{{tDIgsLI*`61CiRUm!3YE?ib%-EZ+%p0vJe&Xz#Uo z#~-nVglK~}bT@_2Zv$fX&`)K%JTu(d_osb~&?f||gPCtFgcmD}xA;$UNqZ2vUh$bu z@RyBT5}CV4W~MzPVVR6I{rmZs`wSQ%OWr!pqORW=Oi9PgU3GDGA@%spQRD$-dOMrjE4mp}ly7G6qwNRuqqdznwf~4!kteRpw5spB5w_ zzv|-gDCcAmB>nu21rw612!8zZCxAWv_sZtEP#EdTn`l8bL_ns)K+FZeyBp6BK}w0? z=n>K?4FgIEQfvSM>aWJI8*EMggLx2f#(*LKPHKVzJVoEQN=yJ49Y!Eb@c>0QWf{OK zkr8wyQIO6+kku5NA(2~vD3o~X>fLl0kcSoxC@M(gL&6>x&AFd={8S?8759cMFfr1{ zEbO~2kp}Gl0`>&j`+{Gj2@R$#t^z(JfVmFS9BC(Mi^#Q!Lcytb4OY~`wxb<*d_MP> zHlC#9Ee^uR`%JB<2f@NUbf1t~UqVrKaUL+Fv#fdm*eFtOJ1yfuw}kt-50OW>T+xs~ zSsg#ugZ;f}Fi9*FiSc&nV^nN3ZTk{!T~Jwqxq4V;w51sPp~MzXaWM`f14a&Gm?I=5 zHePa}aQ_&(yXD%el(3Km{$}k9L~t!ctS(;-v9|7i@w64yELipW$*p;*(&<|T!dwu3 zM!5n(P7tjD(6Gt>o#uY}5o*fC&pF}o5#I&;caOTC$+SnGa$bG*c{5DSl5l+YvGGXP=Oy;g$3`LU%tM2R zUK;q9JM}UQ6P^w1UR-6qV#EpMm^@~M-mLDurw2Y+0@l-bW+FC9ju$*1|2f%8+47Xs z;TpJJIvn=v9;fFL5VtHo4|44lRTWFyycICz(Z|{PUGZJiFWHl7^cB6Hj4kB0E2muE zjVb+;3^3Pv4d#;;8FC2A%BP5HHvGl_=tk{Uvg`D`DHxZ$ zhA>>t41jpCR@;_E!W2Pj*>JAVM&q-myLhch@B@RctN&(}Za2JP)`z9}N<7cEb%mnIM; z1E+xBWC|hwJfd-Zb)(MVNP|fgHVPP4CU7-l zGsiR!i+a3O?wwV_kYW^9Q8Z=PJ?TnSUoz*NBd6)V5YlHN_&yphLYDihfBOnpg|TS+uIP!lAVXxxpr!nW1O|vQ}qT zzrf${qgvoUQ%5B}_9F?ww7o46%?BIQQWM6uf~-yS%z+1+(rZ3%`1_EF?PRBbini@GU(^sUPFzP#M#PiI_`6tKW;q!6un&YSch z(Y#BF{X)l800`;1K%@*r_$?UfZtwe@e$xynK=Dp z8PEg5Hx7MnemANBzDJ5yYk+-7!mZ5Z_j8x?pk&odO>Bh?sQo@}ANn%y)uH|j?uvte zCC(L56i2Bqh1x0}Jos$k3$}`j0hPV&*cXu6HScx|Q4}z?SCUoX8 zg)beUV@(wra%p5ZJoM*WB<}2)>46J?BA2QYT#sq>^ASI@=cY3puD&&A-OVEdlp#c! z`ck%Wc#bYk2zV`U_r9t=!_3;4_i(T=^ngVp~(deJ02p@nsy^%W~ zB1VZxTz2}Jn9ku};+8Wq1s0d;#4+mZYBBGa!YI|Po_yo;4gHwJJPx`(w~Vk@1I;3S z<_Xm9I%CdUfeK4;CPVfw|GNFDAce8N*52Otvrg=ZuLctwtIb*96~EcGymtn{+&oJ5cSO@P-8b>o zJ}g^)(9*RCw^M>lkPa6yD)Z{jo9OlGoF;$jF^_*xFyTW9zQNLV|GITV=0|GEFYJ#u m(Nl68|2q@7aL}^^rr+N{3a~t8Yu0E=N&G+OJ&N`K literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_38.png b/app/src/main/res/drawable-nodpi/weather_sthul_38.png new file mode 100644 index 0000000000000000000000000000000000000000..f617b46a6ea9aba68aa764e3de699052fd25ea8e GIT binary patch literal 5049 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_39.png b/app/src/main/res/drawable-nodpi/weather_sthul_39.png new file mode 100644 index 0000000000000000000000000000000000000000..e3ff84e4f7c49c9ac97d1f316f1e21efadf04f31 GIT binary patch literal 4094 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 KEQ=Z5QU3#jnr5y5 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_4.png b/app/src/main/res/drawable-nodpi/weather_sthul_4.png new file mode 100644 index 0000000000000000000000000000000000000000..45d41d3c4d5937ccc3a9f00db0f4ac7679541cea GIT binary patch literal 5032 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 Y5BQDFp3Bw>M;;kqsAsDCOq(3}Ul(=|SpWb4 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_40.png b/app/src/main/res/drawable-nodpi/weather_sthul_40.png new file mode 100644 index 0000000000000000000000000000000000000000..e5b8a9c92bc7ccc676dfa1ab2cc09a6dc44a91ba GIT binary patch literal 4508 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


pC?P3eCmZGWp$i2~7!bWCT`gnQogedv@42MNuLx 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 E52J`!q5uE@ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_42.png b/app/src/main/res/drawable-nodpi/weather_sthul_42.png new file mode 100644 index 0000000000000000000000000000000000000000..e9665a255b2df06b07f2064d7c52d520acafb97b GIT binary patch literal 6413 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_43.png b/app/src/main/res/drawable-nodpi/weather_sthul_43.png new file mode 100644 index 0000000000000000000000000000000000000000..8f7b400ab54ba113248f0dcbe23e29c173ed4bdb GIT binary patch literal 7261 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 Z-iVkMO8+2R@XyQx=xX25s@A|o|3CH8Ui<(6 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_44.png b/app/src/main/res/drawable-nodpi/weather_sthul_44.png new file mode 100644 index 0000000000000000000000000000000000000000..43f86dc0e66e82b00b1048ec9d954d0c67867dcc GIT binary patch literal 3677 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 WcBjFqN%+4A2$-8#8dn&3F#ZoGXn7R? literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_45.png b/app/src/main/res/drawable-nodpi/weather_sthul_45.png new file mode 100644 index 0000000000000000000000000000000000000000..35dac640ec49903bfb05cc99fbc0840456849dde GIT binary patch literal 5159 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 B9OeK3 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_46.png b/app/src/main/res/drawable-nodpi/weather_sthul_46.png new file mode 100644 index 0000000000000000000000000000000000000000..ec11ba511a816d13141b43818bd6e4168e29eb99 GIT binary patch literal 6174 zcmb7|c{J1y)c-%TU~FS#U(#60k{D}3j5WzJq>y4Pq3rvTn6ZZ}$rdt7cG;JTjEE_+ z@A5SwTb79|lVP5I|NZ`ap7*);-1EBUp7%ZH{&}BZ%&xJs2(kbGz<%9G-x2^oxc`?h z$iGgefWgy$30AN2|Bs`iBTZ?qfSC!a%XxJAsk1Y|tLuyFs}Hwg^Nnsq zMc~^P=hs`Rhn`x5;AA~sD+1aVBO$QcI;8^X?wWl=V

_YF5t)tv{-U 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 PCqYd~Q?X9oD*S%{q#fyM literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_14.png b/app/src/main/res/drawable-nodpi/weather_tapas_14.png new file mode 100644 index 0000000000000000000000000000000000000000..6690be984d389f116f943ee5457d742e4fb69258 GIT binary patch literal 8399 zcmZ{qCY~X{B2lX=JJ0=YG!n z>HYA`Idgt<=FH3=a9tClt*JtQM}r3d00`7n72f~=K*awh4*0)LDz#F=e}HPM>nW*t zs{dF1zwnx##=ybBCm|uAqH-G_cOD$H?dY(qt~Lq{)y>Y9@$k61x*8iBJ3c;MTU)EF zt3x7@9A(a9|1FdIywTJJfbqys41BWt<2A|hUKWS&Z$%c^3hciC0482FMLE5I+`r~A z);V3IVt)OF9|8{1a2K&SaY|a(hDMR{+a3<5oPIhd@t^U2(qS+rVjK+6{{8- znzb92#FrmXICup&I#Hlvl9SAe6FSV)o!NzPWkr}hzT7h03zW)xo;mR%?BUv5%Dlep zC?)w_1KFw^2P*Mg=bz?fA0fKS(-O==N09O%9$aJv!Ww4$KvazOXH5JUiBV*Q_2$B1 z)_)MHMH;$Ds471mrtSI6W?Q0sf^UnHEr9To8xthHh!@55q!L-+ior^*K2V6PKDKe` z`%2W6t;%)4JPwWB$j#4?eYdHfA}AO>dC6Jsz?-nSm5b z2CHT2a+_1b_CCkzc0Xl;(HG6Lt%9dXjoF0j7jut0j&8|7>X78|EMZ9O!e63IpZ!U* z|8LYGrLw@cRcqLz4HqQ}UfZ>-?R~`EpC^5!#=1XSO7H7@3?lhPg^tnCUX{~>)|;TZ zal6@(_E@pjvB;iBtz#E-Fqxj^&wfN<(5}=&dqn|a;#OFY<(|3W(XuL3W^zxOI*add z_zqrsj|(w-hvm0{=)E3uUKlJ|sQv{XK3fo)PC;!k2;QCt-Y`;2hERaP>;zANRi_I- zX?M@gl^~E9v^%b;evct)V+gj;`om=@zB9Wz;-PSS80~jg4he4J)r+URw&Gr)j$119 zA#hnx-@OREgJXhODcB9U4yeyPLp%N4XfL(+FQP~Vjb=T|i--Syobx5Soa&xQvb8EK z-IDrJ`nF=wfGR*9#hW2oGYPO`mrX%fZ)#u64WpATCZq^+gdB2HHDEWa}?qSm6`bG#V1FvQqsd6f0ejb>m@u4P3E;cPs!zOaOcT;Rz7C=VwS%lNF

_YF5t)tv{-U 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 PCqYd~Q?X9oD*S%{q#fyM literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_15.png b/app/src/main/res/drawable-nodpi/weather_tapas_15.png new file mode 100644 index 0000000000000000000000000000000000000000..f545f6ff6fa54bcefebf874b8af0e7355eb2e002 GIT binary patch literal 10157 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_17.png b/app/src/main/res/drawable-nodpi/weather_tapas_17.png new file mode 100644 index 0000000000000000000000000000000000000000..ec73390bbbebddbe280725fa9766577218516550 GIT binary patch literal 4050 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 BflB}Y literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_18.png b/app/src/main/res/drawable-nodpi/weather_tapas_18.png new file mode 100644 index 0000000000000000000000000000000000000000..975737fc888968c668270225eca522a495712e36 GIT binary patch literal 8439 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 C0>)4P literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_19.png b/app/src/main/res/drawable-nodpi/weather_tapas_19.png new file mode 100644 index 0000000000000000000000000000000000000000..83b9392b202d378119b7548aeaba4b8b6f08140e GIT binary patch literal 2449 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_20.png b/app/src/main/res/drawable-nodpi/weather_tapas_20.png new file mode 100644 index 0000000000000000000000000000000000000000..3d1b2cd28ccc5fa2810430fb5a7b17d3fc2a13d7 GIT binary patch literal 3331 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_21.png b/app/src/main/res/drawable-nodpi/weather_tapas_21.png new file mode 100644 index 0000000000000000000000000000000000000000..fb9231e8b6709fd7a8d4256c876e8567ec074775 GIT binary patch literal 4378 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_24.png b/app/src/main/res/drawable-nodpi/weather_tapas_24.png new file mode 100644 index 0000000000000000000000000000000000000000..d5eed610255ab269e22d250046a79c7f75df626b GIT binary patch literal 3922 zcmb7{_czs#AIIOH8C&+sIMS& ze&m1gAsx6;(gFbe1X4rIEI4=5R^Nu>6Wsd@ynh;%GnlsVDb&+{5H_(f&f-~x1NjrF z`k82_T*YNqAEC}O+~4jQD@lp}#-@xJ?!_#B4Vj!PuVOIIDAzG&g#CXwF!22ry@zfD zL|_37>0Q)$4?%6uX>3jSHP2CZkp)6d_;|8ig!q~i7uhzIqO@HuTfJR~14RbDA-hsa zUP89VF{48&5iteUJGo$k_Vc3-&wv1?UBV04Gg_nyu013`LRndvZ96|pVP_J?au!YI zOFSP>Si%M=%)67;9@GsVT2rZBAVi+7E+)LOn?DFMs{uHUJfMtwrFj3%$I1x<{xFIq z#9z3^h{{ZJ-|E7;+Z*{E9K;29@Z6&9*U-Yj13%a?R2(H78v0TNdty6?##Ui2ktaXw zGXJrDGM`893lZFN1)V($PklsV%G<61P~n_~N{`hyBz=D8v5G@<>K0080L4Ub`yFE* zz#I6fzc#czbV+JQj}ou?_!BFa)`PfHIEYzQ@*zR4d+F>?@b*z3EtFd|j@KS>$LKro zq3aIWQEh+xh?L0shAR#g3AwNy**$|BxLJrP4+^Hp@d6-PUx0E!s%!cpQ+{d(Nr?cK z(XS1hCHo~&(h$ui;pkx3a}0_G@zw4p&%Pt&%|`yuñXNu%_=S2nj=%vq^S>K3i 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�#rxrb9NOXP1=)nAB#uDd1UfVt0q=@9*w~L+Om_kO)wd4h4c*xcB&6zU% z_0)cWYjc;&G=ai?wpnztgcKx%PwQ`sDRMy$(F;YpeK>3~;0h{8S_>)W` z#jWnk>5?XMdoVlJQQtq+-Ja3p?D*9LY#(+t;XDWBW~Fam2!8J3VyZ5h%q&d)wRJ{B zRlD~=0yfi6QuVJx-C780cuM3n-q3AsDP1I@{%NS(>tC23qWL#MoN84hU)=KQa74VR z*MR?;bVlu6+>8kJK0<%>eH;k7DAN6{?gu;qIJ@PmM5p$hUDC0V{AR707V-SJWcLYy zMG$JfaAt=W0)DtoNbyfZUO#C?co4Q6A+oZgw=%H|^4z@e)nE#wL-tO&E&4u*Sy2_G zyLZD@hpgi2VURfS1;o8RSX}Y1E76Uu4YWAIU90utnSx$j_x1Sa_ zNc9)j#%E&S%{vwqKn_t89hd)ARsCFP`$^;#`YINv+42VtxIL+luE{>cJW%kmoLAON zQro<0-y%=i2=3ZVN4LngANgvYtnEd*SpoEv{zqlzt%UqI(`L`N)P2bmrEs!uQsU9? z?&?z@HD&iMD(lI5OWF>^#kY!(o|XUmG5pI)yl(pTL)%!Cx)C*$jx#bj! zBuiI{SkkV)k*_}E*5N~R1mZCdu)os<{Hy2+k9{xjaqr%w4Jq;ZYdJ?)}m3{XP>0icTpF|aA8mSssk+k)TiR9 z%NbNss*ABtPFax;G_5fhg^S#Moa@}Y-z}YCoxsS1Ep4~sQnJhqBe}hJRwtr1yu06g z!uM0vYTF{$|2UsB7f1;}omzAF3;k%YHouCbC?OlMRxa8VoN}v8EI2Bgu|HIN#Za@; zxnxD{IobS7klEN__=03WDsK5vH}N;APb@fNsp|G8Dp+prhzI5<4pADdLsmLVA#@9D xHgoLGTJFoB6M7k$oQNP9<^TF1|JTD(Nr0%!;dibKGBN*_XgiE;%~{`s{{gplbbJ5+ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_27.png b/app/src/main/res/drawable-nodpi/weather_tapas_27.png new file mode 100644 index 0000000000000000000000000000000000000000..b41e0ade0f9ca2f810e6220c1f661a6d08dd8c9a GIT binary patch literal 4329 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 XEwS&|><`PI00000NkvXXu0mjf0B!%3 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_28.png b/app/src/main/res/drawable-nodpi/weather_tapas_28.png new file mode 100644 index 0000000000000000000000000000000000000000..2214b5e0d5b4ca64f4958a14ff21ee5fd75a73bc GIT binary patch literal 5006 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 JsV+J4e*iiW2FU;b literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_29.png b/app/src/main/res/drawable-nodpi/weather_tapas_29.png new file mode 100644 index 0000000000000000000000000000000000000000..7e4c26755356ab539a2d4ff714cfefe0f14fa99a GIT binary patch literal 4278 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_3.png b/app/src/main/res/drawable-nodpi/weather_tapas_3.png new file mode 100644 index 0000000000000000000000000000000000000000..8274abc3095015016dc45a95575514325d31bb60 GIT binary patch literal 4544 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_31.png b/app/src/main/res/drawable-nodpi/weather_tapas_31.png new file mode 100644 index 0000000000000000000000000000000000000000..ae95f2d387e19f7fb295f0b3827a6dc6b9df7e58 GIT binary patch literal 3871 zcmV+)58&{LP)~?-D5h01mH7L_t(| zob6r9a^tuT75@PAe1Ygp@7qr2u5a2&?{AX!KItSM(6;samjEbRcJv@6N(QTRrfOz0 zqTzN&Byly zUC6G#lmGT}XK9=z28=&i8)KH6?f$>%g(1jr`4PkF9WqX4eI_5Vkde}7LFNXUn50$~3k`HP*=sZoFe zkTG{8fAMPaq$r@2O8|FUlK-&EQ%hs)Ku-SR$yg32WdN4{#>rpYo1|ipA`L8oKb`ys zW76^;Pn&QbwKpqrBeaSX~*0XC7A!Joys2c=WUvHU-Z3lGXt0anrH4pjW5Aex8|u>&oC zRph5iIu!~4r+~Yv{QFfx25>c8)q!j;W|FCcTpRyTm7mjaDlYUT1yB%8CkELNl%J;n zqChg0D5x(CMhc|U3fL5opSm!I|D}`0Y7M{?NW_CEhg}$8Z<0x4Y=9p{vJ_wgY>P_@ z;-be(LA51fW#C0rtiuu_aeu z#-+qzOafnHXfhn;-Ner#Sq^6n6i#JFMG=J`iiRMR0EaON)KNHb1( zA!rGroQN~oXl@0{L@e8d+9{AiKi0S%ajYa#rT|tFvh!GL9Z{a|i3U>Ou4q<3`h8>K z@ULbC#COCyL@<;=s zPbmR9i)rDflzOq~N&}*=%z^ICV@0u&OJbiq#+N;Wx{yaZQ;5E;f)=>zRNz%?Ezxzr zdQ?DeQ|yt)B-hiOr%Q}yx#cLH?{zC6w;Ux4Y&#V=$gSqIw*oSK$YWm-v0q7T2$b?u zKx``RKAmBR9YIlEwH&8ni5e)sQV7Segzn9Orvg&%tN3h96U1gRUj?Lg#Y#2KuU^Da zq2st-+gb#vT`?wNF9q&pvKTGkr+__W68Z5Ww7`Rp0z%^`S-?wyoy-@%sTBI zNvs8KyeuFzj#4e>WdWgEL!i7BkoiCoS>V%40iio9%3Fb*NEU;?1@Z00~C0YR?zv~nY;8MIZos=gmngS6)AY#8?E3?m=6Ut z1Onrb@|gju@gX@H;3?U+5Cv$gPtfJ3z+yY1vn6m7>PjRC+D-y zHS&3#q!zEVKQWd9fb#p87*u#$>`bs?CmO|ztZUmMLI3kzd-zbFY6w9U(O9{F<$v=S zK5F_XbT{_nnE<~utn>WtwL8$MEPQva#IrGrQEWf~NaxG#cMq0@9#vLNK%sPms#MX( z!p+0ME8DkyimU^>aY88>Ah$*4&Zpi2)tkk{V?6MPOatr_=|i`EFNH$CmZ0iHQE5Oa zctPK)zW1tld*@<=<#BWxU;s7PrQmxIJ{7O-vold~qD4#^Pyn^-kM}`$w1+ujE=JgV zjQught0}ZDKX&dr3J*OiYQ~P8C=!n;04)r+xxTOcsv#sGCt?jEsG!{Xb9w1GbTK3s zBQO%>aY7LQ6M%cfgYUftHHZXUmU1W>Xahw7$fn@CZBc|wG3x=T4DrlF9;yMYzxAJT zpU3+_k^XIEl?J525HC8ef7xI8UyVT*8bAU|11u>9^5D4sQq|oA=Q`mGQGAa1k`VIh+JV@q6WX0DasDNPb-Z+wIAy z{DifP}z1 zaFl;f{$B)tlXo}?P=k9HO(~~&=>W&&U!2PycGH|bZrZ;mIBD?Ha8O11Vwu$CN54Gy|}x7viIL0gKP>vwXi;h|q&vr6UAV)&Qwo8Ub8H z0$^)E31Y4*-Z1>UT>MJ-QzEf^$l^B}f#VTWoQeF2x^~PJW$Z!s*cpUN9oP_EP6W7D-eNY zq3*rSUT*}}z$~mQ9hE3yUB`)ExBLZq&?2;?QoZgzwczE?Po@GYf!>t!Ke+Ox^vm1# zZLRt%>aoM12JBKdsPN$&i3PUqWK~(5#9u$wi{JMNg@|$Jq{61u;S%fHM)BR{+Q7Dg zqFb~$bgsjCeJ=ZYy?Oj-`Aa?DLBVGx;`&gD-yeTAKdl;wpSSJ8BcA$QV^Aab&w~xR3Ju8Jrup4aZxHtUp5r`{%2{swvtZx-yOLhg<|xS)A>a0od`C+P;7& zTXe$=Fz7xiS9Di2!NCljHobB-9y+iLBNf%&23QRq8K;K=9*QgBY4Cku;7GbHt^yv^ z9B6^~y>W;EA`Iui^^zIap~DaSal7~`CU}l>9s7DFz*chjg?Q*SWgN)>QJzd-8c%Nm z$AAde@A%T-#inUV{a6gENl!O2HLO@D%g@rkXw-msjEA$e+>8g-I)-x2O}c z+*?jrlu{WQai9h0?!|BvScwY z@$-SrM4|LB$}0n05>3KmVsP|97I%+-0v_+oIL|!5MERI=@CY-FZWd~ECweO#D6R@n zI?;0ENc3#Rd!&N%@wiUJBP@9LFS_`O^6}VCbnhn7vQa>{h(=9kZ)W6IPV~4n(esMi zn6bvHc`A0ignU?yG)-F7fzsKxQ8aMlLont88+5VRj6>wTBf!}2gXpn{{AR{?pwnz= z{CxJjnnM1J6S6kZLy?nTjqO00atYb{yHkGny(-6G$A2P6Wo|(8J+AycZw2+yKsg(1 zW66&RAj0gQC-|m0hN9a@UUXO+H-(%{0_&$7iXv%%gC04Z2T%1#mn!G1qwt^{wVCvx zI>^dNk--`uf1UqKs)0)fHluBah`)b!@=yOv9n??j1j_&BMkA(wqz+gEtSb6bnP!A& z{nbPPsDjhLths&cxBPS?pC(2#$gZM+D&6So)Jr#B{v2l&ul2|w95pbv?|~}tbW>ig z|8+GWBiz1($j?)Xxtn&)u7-*RX6^4s`_1Y&Ty`D*XX*L*LtRcUFK-{c(%SFMx-wXH z^+!JW{Tbag2XkEfkImYgmLIO^KP-Pai^pU(%gx72qYnF*kBu9m;Ssn@2#5%d3arDI z*^K@Er836kM))$gw*Mdi#c)Pg94C7=k5-Fg$bb3xvpJ3a*xfNbS^MG#ee|Q!3OL;J z{^Ia~@}I9hIQGi%qH@IZWQ989xh`YBtdCkkSy{BIP+fgdUxWl^LOIh<iaxDJG~z2q(bi0K|R02v*s*3GKp=lUK!~@$6P_()y70y9#7=l30xd1*~ zfI*38w#)Htpa%_vyH7<4H}g;bCa+P6NM6x_Iju@%nqS3`htn~;5|nCZ%$PA_#*7&= hX3Ur|W5$d#{2zps>Dfe8Fp2;G002ovPDHLkV1hMw7c2k( literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_32.png b/app/src/main/res/drawable-nodpi/weather_tapas_32.png new file mode 100644 index 0000000000000000000000000000000000000000..4382ec6e39c450daf50489d7b991baa5095c06a8 GIT binary patch literal 4944 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 YOk}&il7vwFhra+-MNNeoIg9ZB16Ru<5&!@I literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_33.png b/app/src/main/res/drawable-nodpi/weather_tapas_33.png new file mode 100644 index 0000000000000000000000000000000000000000..ae95f2d387e19f7fb295f0b3827a6dc6b9df7e58 GIT binary patch literal 3871 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_34.png b/app/src/main/res/drawable-nodpi/weather_tapas_34.png new file mode 100644 index 0000000000000000000000000000000000000000..4382ec6e39c450daf50489d7b991baa5095c06a8 GIT binary patch literal 4944 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 YOk}&il7vwFhra+-MNNeoIg9ZB16Ru<5&!@I literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_35.png b/app/src/main/res/drawable-nodpi/weather_tapas_35.png new file mode 100644 index 0000000000000000000000000000000000000000..eef9340c9884e8d75cb8d683cdd4aa2ed415835f GIT binary patch literal 6659 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 Yxmj96#$lrNe|elMhNcGf`Yv(*0U=^Yr2qf` literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_36.png b/app/src/main/res/drawable-nodpi/weather_tapas_36.png new file mode 100644 index 0000000000000000000000000000000000000000..a9978850d1ac0595184f75e87e03a2ec6447802e GIT binary patch literal 6295 zcmbuE`8U+j|Ht3&nPJ9~ktI80$r=(_G8p?FEo8|avJ^@o%e*b2D7%m?dnik?hRH6; z6h$P1vX$&I!_0j9oXUp#*aU}WPJJ3R6*NO~Q&=YNO<0AA44K=*QJ z{(3=Dc9}G5e1FH|&d;+O^m<3xCr~kt34HoqLsMDPshlQanrdEE?cV>8Th6xDuHiqy z$PkM9ll<1bh!0#MH^AP`B>EPL$gv(JKfltA|0-v?Ys-CGr9xXx?&R>i#~o3UCsL>_ z^JP&Z#Z{>vN*(pW4ey|p$N~p#?d*Xn71!X&Okw+c7i)@2SeZeoSW3%NCr%7UQ?|V> z$xZKFP+rIAk`Go2*bA81nw#nRLQm%C&?CI7$__X=*ygDEYstn`8R+-6C0}s_0~Mta zzmqRp(7j5w15lFZaXWldM>9?lzI56;iW&6dq$s9aK6(I^bxY8_#3ih`JI*k=+Hnae z0B?Q+qr^cZ<=6OJH#67lu>2_{x}OrOH%y zV)F4JuGr8I>L2k^)>jDw*Abs!BqbAC*c#wX*|<>E3f*tuA^}jBN<@LYqiXfgG0GS zp+Ms-jI=jW8w%CT!bv*5I{omg>)C>V$BJ`?A0jdTD>q}qH7|hPpMD>*#(s}r)_`<; z^o%5GV0q)8`T$|}4buXH3-VK0Sm0YOd_n7ZhHTswSXJy5QjmjC8FKbkL0WU2ir_f|O+p&>`m#Z>&(r zwJ`7v{I&>Iq8*;`y?GIoSLwqKe}aFO#}7=Xf$DgoTa?Z!u>yztcA{o>+{$gFoBc__ zc1svQ>=xRWF2T+o=Yy*#|ixXaAx?h3qn z%QPX%WFZT!N)K2HV^+~M2FHfDB~gBErQZaX@6P?^Bz;Nz$UxaL0=%f@es|%2n$O(z zD0S$N!hoWK#9@c){EPC!u3uba(>O&yCF58k!tOhgNAS-4!DGR|3Y{vB`wOsItM7_R zOn_m0+s5~9N*E-R?ijASOex|rODgYf4z)Q2+wiNC%qpCieb$Y{#W{RmzUIE4Yl zIN0s5$pK0u=9Ur#VFFKxpQUuA}|3DvIPsHa2>9Z>>K`6va zDN${>>pi-eBr?Z5G+vS*h43WbsjGJehIH}cocz9?18Lo#x;gsAt(6giLtBGyZV@Pk zwv=Bi3Mxx~L!}?HF7s*f zf|@_~1bsz-v*7Zvt4;W;$SOkqHEEd9y1-BMvUo*qH}->$MiyY}V(mh2Ln@Z(;)+ z_=odq2Kh2R>Y%__%GLQG-U^?>xpAfUlrYB{|ik*cB|pF@I_w7E5Hq-^|=QG&q1;@U18p) zWAd=4eq@6L-iTkHOC#j6;K=tWz1QZpxgD)?{pVf{>##-26??-njlMWwb-WcgFxIq;{MS1V+V2}IJrYring=^;kQVmMct_ab zDb)*CicFCTa}qij5{wkNr!cr5VD3uv|G_NLU4uN*e1scr!E3?_U^rje-*??kA9~@G z@{w0m$Kxc?L=;tbr(0_8-aTLxyxqJ$7Z1HDcJ`t5zSvfLsX-Ef6Ms(A4NlK zG2rhVj)O~5bst*T1L4KBe+vhS9mje(Qf>X$DQagO`z7<}>mTPv;Is!a`Ody{OWSo3 z_9^zwsqeing01PI2D_E0d@a`^4v#FJY=ywp`7>Uy_7Ils)4Ut#8sI>JJu zrZ2fQzO=4ZHW`@0l;hq_=Gbndq7@G`hHj`Q|xevfS+X_Q-jq>vVlrawirzb!yZB zpNGW2#P;tvS>(@J5IAx2?fy1}11_xu5rac?Zd4=|x~pIQj3YhZ@X7JS<@wn$5=Bwl zL)WsGle>FW)=v|YSb-nRE}w$&o)u1Qqhw)sUTfm=4;JS^ETfj*y{s7Q(FsHRq%(2q zF+gbM>Ad$)CVXtM2|wse{M%K+AGzpsno*Ud<+K*5Lj=cq@0;!!3~2lbAM_ra(>j?t z@TD}6f{db532;i3f5QkGYl2@EBr3zu?_qj$rOksGZ(-tF2Ig7UqnvKz}x@6zjH1e+L+XFMxrPFVSJ}BghtA`O6(%|i*3|}x4SV`0aK*b1+>k`JSU;hwg1jqq5 zQ2*Shheb>qgKD^PIu6*4Mq;H=^Lx;VIl=n%)VFn}VJ$RXaA*X6U7t^Q>kMW98er)C zr|B}T4Uc0fJ_r4Mx=Hid?dkiwl9C-Q3Jwb5ZoHpkuvXrz6yAiervx#7Fw!_u5&T4; zQOE#rT8MNBJv7VEw>25cwt0bV=sQEb5aCb@cPHB7uQy2(3SbLOWGU7p3~FFPcnFb5 z2=Q$xPBc1sjv)?i;FQ?-Z4D$aG(P1a0h@xPSTaCkAh!c4INnlRN2mpUk_?#Ol2JBc zxjBhfiSNY`&u1~J(s?fY=Zn$p!NS5sIaADdp>!w{VJ$XB>)r=pSCd}*<0cq}9n=ru z7)&%48ArSnh`d$L0_p1vT@A#dft=%s@8<9wFgsVScV`&qjf>Bhk-G32fO=Q*&jVRV zFuLrZ6oF9&WEephxxZL~f)gbC8aY9jWNC-ItlQu9r;4+)>dYajRzO5&mz%H`YFhwZ z0$3m7G6@&x%0MRciTmA#Q?fB8Iof)frm26ZgT#y`$&83Mg7p=^kDy{@sv_{_@i@%s zrYUfiA=sNd2_qCf`1z83Bhf1z5vcj>P{7W6g3b)Av)uV4+y5pV@M2y$(R&Kgf)=+E zf2RWsP&$mYvZW1BPfpqo0|^!&0d%GTT@zUB5(@B9Sds_v>UcKZ z@*ZB47bLJj3ow45DDm2hs7TMe04Y{LkL{2DF5MHL9Y%g_CseT|-g{_JyI1FALAe$4 zg{kotG*?8AqaGE)*u(5r86!`9x_|WgRkWg1RY7r52&5=Yk0;&Xh&4c^cj&5BU3-T2 z@Yx(m1FvdA)pWd$5$sdd3ag)t9(ne1yBMacE$Ga_&p6jTy^dc`>SJlD;(8-uH@GlG zHNngfKFH5++f*M$;FwVdFO|}$R^Hu9ynV6Ob%3j^#)Cea#((b_WcZ@@jR!Nmd=EQ# z8ShamTP9^7c|?OoZr-o%g0Y_%4o&v0IDm-H5n3>w3`l4Sf}Lf9ez_&Oz@fPv2>>vm zq-2Z)hO42kAQD&JcEoQupObt&a1Y&K0_rdV^a9CfYKJH=ZQ|su*}mFz0&{%tr`Ea6 zPr7f!FHa^xg&(t=ju57ru3;y|U%{i^H z4&74qi=lXI(fPY-kEJ@aa&Bd~&?8*|-`cdq8=5$82bOsx6cW2qb6SUyIM%(q+Q+~P zeXXNwn`=Kj!_|i+c>yENW?aB#Fm#qv08HG=FWj)APC>8EHDECaKwWBJOn2vM0I}e` zTm%X#pXc{G^)hJ@q{$oz0&Oh7Kcnzbp&%eXMU!9P9cke64N+8pS=T=+th@&ts~3S) z^@iadErVEOYZsG1{9>2YEnJN7>6GE!7=k4s*p(Y>T9lilfzYkio)ZgqN4Ct__dQSSk``MxTyw( zZ)BF8k(pDsQkxvg*uHD7FF)F(ez`C+gk$w0{r!{jK#|s9P(WEeW$C=IyS>>G%d2() zC)`&IyN{dgA9KzZC!{FqxTf+4S#GmF9u)MUJNqEAOo&1jurS zKUWbEaz|c$A6t*Tl~*YKvZ49=(+<~gP!hCzAy$aWd?(|FmI831>^Dk<;gUAz>gA}< zXa!4}in~s5n-t5Ni5J@qEz)0|3_KFV#;_1IZM%~s+lM&uo>%TFZ&b1JPx%3^Gyq_wPF5->Bp zSWeSk4mfX8?S#u2?GLKCDyP`%mAnj(K1kDib46B?!^_AZcnJUXXOj>hk-BPM9fOng z$yxmdZdvK0Ute(M%oBkm?v*%jsc!e)0BxeOi&giNmY8%Usbs!Trppe=L$MKjf+?o2g9m$l9nix(-X-sE^@g#znCjP_p+&g3> z#td_bhqsUf*mQ**fP6XdAtiK3Q>*DdTdE&>Uf}|;X_u%}gxSpj445Wz8AN4(pDCDb z%x*DY0RH&Q2?JM-1GiZ8&}$$Qkc?yNEm?d8OVz_rRZeTk157Z>b4i!q@3$fdOx8Rm zM>kx@>26>mY)I_*E5wls^|mPS(HJX^IXbvQulM#I^7GdC$<1IYL$r!!X)TU2 z1V!(b5P{uFWdDy8Kqbs}nEwE0*7@=LM;F=d0(sCd5`4CV;0Tk7r%Vn${g4R|>4C&} zOlr^2RUNafZbr4)A4!nTyLt93{-tQdfRVQqKj`%JI7C5@I|#TI#v849OQb(EJXl^f_><5y>ZkO;UR(UdyMB_K zqRxp1kusB~24dDdI!QX~grml%<$o7t(cWgv2^P%=__Tm>eUg9poKhOKJlv%5KG~L-$9hqz4y5D8ogqOMm0L zx>Y6?TtDdDl2JK1m8cTjE{aNfe0Cddd`+0hyJNk8@SoPP1QR&?e~qmS~Q z3DJa!o~DHJcn{Iv;xHx5-GtHJ3sEKEF-C`CsoJ0>bvdI`haVBr7JdE5i!4`@QI&Dh zb%ypR9G{3ym_w-@Wa@SsMzN6JDy08LO*PY#%Ih2u>*0EXj#PUam;B%7nD?Nm#*WGmBl$QM0etZHZDQglc-*W18v-zwTowRn&gr>9O8WYx?CV zvT383>nu%v^1C@|iW28E8ls-37~xhBQ8C@}$S87~Tq}iQGKE(l4D_$I{q~Ekrop!^Um;H-nud?1N(2@>3x(`#U zSV_Lmo4=MXrNa(rvKVZ$n z(Hq^@UpN|mM~?Sc6bqzU34Aevm+wxFUQrqB3|wXRqMFv}Py(ef>`m09M+OP+=USdI zO>Fmtq`cI*9o^Zi*Zuu#GrzpuVI2W*onT{%*eR~DIrOn`g=@WO2+CRVu~rjdY+bmg z<@CH#lw>XwLA;w&ac7IC;Nif8%X72wCeb-FGQ(eAeh0v^Uibl)@(g?Z{&k95ZeYuO z29iHet#@{I=vvhhdI?hkPdqICpk~y=HriYBc^O!9jofZUuSIyg`|Vn6{uNBzDsvN= z*cmW6=+N7R{+-;qvQ}X8mi6mDthj<~Y5v8vDK-h{v2ZTx&IVLJbY}ugYG;j`C9ovL z|6osse{2&NvIQ{zuVgB|Q)MeffHqCk323b;rN43elPc4k%MHa~GXJ5|78vj~@a{XF zMWbZT_Ehu1Bfe6ls*m}a&SKWA$^*qZ#46n*Fo*lZ}z~CY&?d^=EAQ{XOEIVNyBD@2#*bzdPol)Mj@1-0KWl za&)7TZ(0=$^YFOkRvFibH+C}dA!c~{WQuA@L$#g3;^!I@ADW%5gHAQ~DCg-O{QvQL fIotPdX~;CbW}CgM)rSB1TQD^|Z}3vjHRgW+EXaL%SV`E;p0P4DIu}*&yYTj-vX^@k?|~N^+9Q4yZL>peg29UNeEs{m zYsh4)<5rIXNhVH#xGW5U_`fZFU7`CZ8cW#yL&rye$J|XW?%k&}9MmfiYZ%KZe89xpyG=FaBBhrAOc)NgCfY!VDHc z$Q9_O0-k6MFHb5|XatLZ3rt98c=`W-@VN`3-*s&$4Zi^s-BIQB{ao|qhJf=%leF-& zQ17)za8;H|Is!xn`Nu9Ye!#ltNb^vNy$$8r7deBC)Du3Yp5LV6VevNx$oO9`ek9;F z&!qDXfBMK~H}+hBJL9vz_op}o2QqFt?SykS=3K^k+~aPgW*U|mT5}6pvONFoTBMV?eY0x2aZ^*U^uN`9-E{VG6Ruj zv1-#n5pXW1zuKRR9)K#Y@Mzm3juX-?jMmMu;W*#y z_)HcpCMyDdCR65GFX;< z%N`VOiJ#uL++;VT-)Zys`Vb04m$RRWduh}6<5c^jw;2Zk`#J}FB`jp?{m};`N&d28 z8FJsXG0z*=kDKq_`SfsD?!Cxt;-BS^D!gPZ`=xkP=j_0{dUChPN;OUBjtjmCW|NgI zHnXggf^m>eal;3P(e#%kmwT5;PyRBSFb?mnTXRBxHzZaK-dn6ck})4-=F99MFWtjY z3GE$Y3TM|FH8+{{IdLs8HAMv7=Grf2t@Zk7UlJ3)ZJcSvP&;w{J?Rq|TXD*@jG_H~ zpq2Z}{#1pl+1|~&L#%nnMD|(zq8}jT{}l28=5d$??dK)zTXgwEW*JYy)0|BBl}bbL zo%U5EIGX7C9FI}EA)|5uO9)bIn>^bNI-t1t$M6H}`rCSrP3W7M2d$kxNpTv(QB`0j2+?(2rNcMl0{^ggG3`+%Tlj={(^sk zx$_~>An)C6-ML1uJNyMFSZS-CV8(}U5v}@%KPI-QqQM3a9={N>)m8>!8u5qN9{+u; zP8N7|2H&(^BlHBx+(<{LqTzL-KzP?fC8{O$h@~BJnY&&DxOs;o#(2foT}_4(n8Y{?9R>HXTLeN?+whDJ;pD<_44G159Jc$ z?N2{0GP^&`FU3}Re(`)wCOGn;o;bw1$6L?U;#e+08s8N(p2S!SRoM*WXN@Ta7x5Up zhUvlHS|o|Bo|d*=Ij&gjuzSq#!h|T`uAn+O7#=0z?%MHUFD@BQ2h`fj;9sNTEl+xF zx6jY(8QU4(KLAM;TVQGR_@N^c3Z|lxwBXQi`JvGJ)a$UMli0x6IAgd%iGunjhC`R` zYe1N=I&BTJq5EhgVLawCd{LnLl>6rf16=e+qksk5lzWJUz=g=q0(2c8i&3(*aY-`v zQG{6Vg(zQIREy7m(~Ie-BuOrxn!g=M#>of5ysX{+ZTr->&zmKC%4*Yb}&n*&QSQs&}JS<(B>+?jJBOQO@ogjho65zJ}5$GwSBE{r$&>B{=wL_-ncdM$L^ zobN}%yXBT7*CgR+OpOZpjqoykF_POYsRT*oddgXgh+-J3^CrHru_h}O-{)+q;q51U z#iNQBIk#>NcB~<+MQ*=7w`961cdejuzF3 z?qroy`YELfB{Oukt!MRh+F6`yr8{6JlSgRU9~u zCk<{0ja~df)jhw0rXw>D*cIbExds5N1JHK%`YlC2@!)vmc`NsZ_=epXeOdgz1P`-v&A&Fa8Y zF4V-fyqFMHWjhWelerGxSQ4))oh04Ob)q;eNNfrUl9Zw9r*Yi6ea=~Rd4sHNK_pt-C; zYloJ!epd#_t$gW9R60=Cp(8X?7N&KmK9u2$B_hAwg&K>4=Rdsr>31tF$p_cZl`FL3 z#I4S2RFtz^?$V;QZ!RQQx?TEG$7D?kcX;NWhNIozRvr3{xawmxLh~0Pi=3^gQi6Q( z+}7)3C@`&dq3`L+b4h_^oShG%DvEql$^<(*8&j{h!E-L60z>$crafWF zLu}mXBKGO-^79T7NXX z_vv*(`i1Z^9_6X7o3RNI)vrDhJ`qP1OAo)H>S?eDu(v$!`*mFTDIbD zt-1x}JKl>!(txPCkl@u0Mp(>wlP%cT%oU@h_TORsmMtD~Hn(cxR#uU`#XN<)g?xob z-0wA>-m-5IF$T3Bx2oc3t4pF-p_{^2GbZE1POQyv?(Rh9C(O6vV+NZXi%yfuZDP&h zvJ^fvLNS>UB*pME*T*<_*EvtR`RAq1ZXo0ETSK;1avFBMo;&AbD%!FQqs}3}2xS_7 z4|*48!B`S`UJHM|XT}O&P9gdcL7Fyv_T;8NZBfoB&Wo@@yJjVW;7L;pb%AYJ6ggyw zuhjd6Wv5@eH-}_o>?gm2UDQLct}KVtl8?6iB&eqLhQYktPx94=TQas)6ysJ2e5rAB z0#7-tymj7HUD620^P+au?9gi)qd4NlYN1<@mNeaCMl*ItpsknKXILr{UaYAHi#zEK zmmDWmt>6~9l`=~dze20^<8&c56IT^dx2-*Q=#%G|L%H=y^K1O7ulE#n#?0&7JJ%Dy z&MSQwTHIJWBjx7rrQM_O*WL?koWx{VtewgvEt2fU?r1x-eh;Z`zxl(Fye52w03XAf zBr$bKW~8xsjMzYeR6~!%H1k->vxZ@XN%DmX&YrE=r|o{Pz((39ju3t5fm|k^(24hZ zQMDaIwn$z;q4<3j{vNA=ZLSxr$}1uc8Xv=bs>*>M%%fxd7c2#9hJmMILeQ6N&S#px zPB~nm*Cm4CyvLFy8@%`6p9ti*r+d7)xvZstc#l!}hcyNlT%owcV`@`5)a!!aTzdM8 z_y+#N*CZSx+^fcJ_^EVWAO~I+>`>8r(8$TjCjYtfV)fNIN`n(LTz0=*l)Ok!? zT;CJv&6T!da!j|dndbbt%j;%XyYCy;H7H||Mau+HAeQ@N;>%olTZ>7fIz-nMfS^A+ zO?hW=PIlCp;~T1+NN%aO&ihNnpZ$A)W!K5-FBLIGG!+7vcNfZ)PQ|~U;>RstoP(SZ& zc3c$D02}$U4EA;5B^NcIVK8Et3yHr@!Eze(Dbu&<9hWU@4&i_ z*B7n_zw*kl7(@^bit+wM1EO_*$99(p!QHLfWUl?kJ6k*+e_)uWt0eX>W&O4Cp7dm_ zqtJ+>L^ZgCcRTKlEj`3PMT|SBKH}2z(LFQhhP7*crMNRjfHKTNbnKPwlQtU%;M>k~ZLjUJ?$uD{e zz3LokqZ0A8a|8~vta@lHyDt)cd1B1uc}|@6UcWZ`DVv?o>GId_sTEP6vxq6Z;1!*{|iX) z3Vf?$FINDhrYa8&U_vry8=(o*YU(lWP_03+2l^*=K}wjjWb(Hi?}EH`zf21o*xmrh z!o~@hEHOBi07%k=JNr>DP2L_yfo}|Y4kv+pbsZiONxO+0Z-hnwgoAgE?27bZxPA0X z{Z6fW|4hlK`phfKB|$z~ZW*RGc9;p77W#;6q*igMa#MjBG-I$1F0hj3rjiQ(MU>=H z+~|5!mVg}>G=uFJXW!}L|602!!xb{Pdyg)oXR)2>hfH8Q9Vq&;;AJYn=|)#^PHTAa zw!nfB*%Fd8x&6`s?9_5GfB6%Dyh9nNi#0`!3CMnI=H1C|vA$4Q#gT0g50LRnR-Eg_ z451kfZQOs;BAn$e(8Qkguxz_SXf7qK#vy~oKmT3&IN6t}UCjKyir6z<4)5@3hlJ8_ SOwxZPJS#Ih)2GH>#Qy=OqM%~{ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_38.png b/app/src/main/res/drawable-nodpi/weather_tapas_38.png new file mode 100644 index 0000000000000000000000000000000000000000..4d5ee0a3da5fe91c903ec6947e94f99668f547f2 GIT binary patch literal 5117 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 SOwxZPJS#Ih)2GH>#Qy=OqM%~{ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_39.png b/app/src/main/res/drawable-nodpi/weather_tapas_39.png new file mode 100644 index 0000000000000000000000000000000000000000..4d5ee0a3da5fe91c903ec6947e94f99668f547f2 GIT binary patch literal 5117 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 SOwxZPJS#Ih)2GH>#Qy=OqM%~{ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_4.png b/app/src/main/res/drawable-nodpi/weather_tapas_4.png new file mode 100644 index 0000000000000000000000000000000000000000..8274abc3095015016dc45a95575514325d31bb60 GIT binary patch literal 4544 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 LNkvXXu0mjf6$_up literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_1.png b/app/src/main/res/drawable-nodpi/weather_weezle_1.png new file mode 100644 index 0000000000000000000000000000000000000000..f52e18e5e7948814d18eaf56e8f497c5a8e7f740 GIT binary patch literal 530 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H3?#oinD`S&83*`;xVjhkFf%hRSg;^IK0Y@$ zH#s?Z_3G7=Cr>_j@Zg3G8+Pv8dE&&0j*gCb^XBE{m@Yi`lh5|!M^)eDZ9 z%r#PC3KIpI00%Wnfm~ZFb5l6oCI@{ud)@c3)67?kTB^dtv%;ml*qp4=WpB^O&9^aZ zy1=+KckTMOA?=3)s{Z;m0U2TViStX*-Mk)DxI=@5Ht|>1}0&&Z>%x z*~0aYr^R|oF>C&0(b_C~aP=X_9jsAh=igN>4_{FmIO~(dittPR8j<_mHQu&&2G~yd zBp;u*EOYWkjpbS%Jf^X$7UkAUZT#gDFYjvjPD{Nk>;Eme11*JTJLle>epa=v^6`;# zoD$OOcjOk?N=(0YbW#Af-KL9v9Xw+$2(#V_v!b0cm1#PIcB!xMg~tz zY~~-cenIJer>*Z3%J`jU3ZI_GcIfb#&ek>N<;&$CrlwXe9yL9zZemLIoqE5qkGe|Nk>#b NVxF#kF6*2UngF~T;PLC00030P)t-sM{rEs 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 M07*qoM6N<$f|#MizyJUM literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_12.png b/app/src/main/res/drawable-nodpi/weather_weezle_12.png new file mode 100644 index 0000000000000000000000000000000000000000..cc1a9d0f8b53617763c1999d000a2cb0d6da68e6 GIT binary patch literal 5150 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 M07*qoM6N<$f|#MizyJUM literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_13.png b/app/src/main/res/drawable-nodpi/weather_weezle_13.png new file mode 100644 index 0000000000000000000000000000000000000000..7bd818046726fa671964f2d1065faff0cbff435d GIT binary patch literal 4923 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_14.png b/app/src/main/res/drawable-nodpi/weather_weezle_14.png new file mode 100644 index 0000000000000000000000000000000000000000..49f259f3ad292306d201b04a3fa4d1a4e7b3714f GIT binary patch literal 4699 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_17.png b/app/src/main/res/drawable-nodpi/weather_weezle_17.png new file mode 100644 index 0000000000000000000000000000000000000000..940be3fc34542d11ef204d141a0fe4d49a0114f1 GIT binary patch literal 4231 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 NVxF#kF6*2UngF~T;PLC0002bP)t-sM{rE% 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 SHxvc{0000C0001ZP)t-sM{rEf z(9+G$&xC@4f`EXAgoJ~EfsKoctgEcBu(5)GfQ5sDh=+&G&CY^=fP#R4gMop|%guy> zf`Wj6v$M32kB`U5$&rwdgMopVmzV$l|IyOZ9f#=C)YbX;`P|*#6@uvI?)K&9>iqot zMw{xOx!o^{<7ubnZsD%Y0000QbW%=J0RHL(88itIbB9DJAj+VNvzvKc*-${kYo#>Z zL~#HB1T{%SK~#90?VD?psyGmaO~PeHf({6H!GNHn|NkFurxR{xXU@)6ZHL-AdCL#_ zsUO}>C&5lO8!s;}FE6kEvqThwBC%OVaaCnmmS$O1#T)mEt1RW5fjCby_XzSmWp%A; zkWw|{S>-knRmSVN6i;0eh)O>`h}8@}NWfeYBC_Rxun0Z*FQq+645?#j5E|Ii%snf#M1cU{n0d<=*QoII_TwfOZxiJZLcq zE=GY!QuMpO&jIcoT9Af*K!y(+9m1c$e@TAl1_**A zL42Kiy0MQ*iKE?+E?Lra)gi#nK z`sp2Bxk7|M$^<24;5IxW00Z7M!`o&MeT55W@HdF2h=f=px|i2~roRB`+dUmLk&$-* O00000(3x literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_26.png b/app/src/main/res/drawable-nodpi/weather_weezle_26.png new file mode 100644 index 0000000000000000000000000000000000000000..2dc291908005b0ca144459afaec69c0a9339a248 GIT binary patch literal 3929 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_28.png b/app/src/main/res/drawable-nodpi/weather_weezle_28.png new file mode 100644 index 0000000000000000000000000000000000000000..b28a7ccedc979864b9cb037b4a48c117b98737dd GIT binary patch literal 5481 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 W)NES+t^YoC0Cg1|S+rM1q+B literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_29.png b/app/src/main/res/drawable-nodpi/weather_weezle_29.png new file mode 100644 index 0000000000000000000000000000000000000000..ff9b86b43d2ebaad80e62c1d1ba513e97723520c GIT binary patch literal 3877 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_3.png b/app/src/main/res/drawable-nodpi/weather_weezle_3.png new file mode 100644 index 0000000000000000000000000000000000000000..6acb871e60594f3d1cc0b29285c4d9830e328394 GIT binary patch literal 5617 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 LNkvXXu0mjf6$_up literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_30.png b/app/src/main/res/drawable-nodpi/weather_weezle_30.png new file mode 100644 index 0000000000000000000000000000000000000000..a44793060db0e93e424f23a2c63b92036aa83fb2 GIT binary patch literal 5130 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 AlK=n! literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_33.png b/app/src/main/res/drawable-nodpi/weather_weezle_33.png new file mode 100644 index 0000000000000000000000000000000000000000..a98d8c8bc28cfa0f612a72c801a8dd380b72f882 GIT binary patch literal 4024 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_37.png b/app/src/main/res/drawable-nodpi/weather_weezle_37.png new file mode 100644 index 0000000000000000000000000000000000000000..d9f45d19bbfd613feb1013f3e048a9f083c20918 GIT binary patch literal 6668 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 WhQ=<3WC!a20000C0007uP)t-sM{rE= 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 WhQ=<3WC!a20000C0007uP)t-sM{rE= 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 WhQ=<3WC!a20000C0005AP)t-sM{rE( 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 LNkvXXu0mjf6$_up literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_40.png b/app/src/main/res/drawable-nodpi/weather_weezle_40.png new file mode 100644 index 0000000000000000000000000000000000000000..0f0dbc07d91716e59cedec691b18d4e35ca502d5 GIT binary patch literal 6257 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_42.png b/app/src/main/res/drawable-nodpi/weather_weezle_42.png new file mode 100644 index 0000000000000000000000000000000000000000..49f259f3ad292306d201b04a3fa4d1a4e7b3714f GIT binary patch literal 4699 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_44.png b/app/src/main/res/drawable-nodpi/weather_weezle_44.png new file mode 100644 index 0000000000000000000000000000000000000000..ff9b86b43d2ebaad80e62c1d1ba513e97723520c GIT binary patch literal 3877 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_45.png b/app/src/main/res/drawable-nodpi/weather_weezle_45.png new file mode 100644 index 0000000000000000000000000000000000000000..f6c2efcecb562390c94bdfeee3b226b06dd01ce2 GIT binary patch literal 5017 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_46.png b/app/src/main/res/drawable-nodpi/weather_weezle_46.png new file mode 100644 index 0000000000000000000000000000000000000000..c1794c0c468eb7f041b5f78758decbc8550a0be6 GIT binary patch literal 4159 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 JPDHLkV1kTEix2<+ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_47.png b/app/src/main/res/drawable-nodpi/weather_weezle_47.png new file mode 100644 index 0000000000000000000000000000000000000000..f6c2efcecb562390c94bdfeee3b226b06dd01ce2 GIT binary patch literal 5017 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_5.png b/app/src/main/res/drawable-nodpi/weather_weezle_5.png new file mode 100644 index 0000000000000000000000000000000000000000..54651599ac8fc2f218a6c057f97397e6681533ea GIT binary patch literal 5607 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_na.png b/app/src/main/res/drawable-nodpi/weather_weezle_na.png new file mode 100644 index 0000000000000000000000000000000000000000..694791a5f47804b8244de0352827ca3ede6eca01 GIT binary patch literal 1588 zcmV-42Fv-0P)C00018P)t-sM{rC4 z00032000001_S{R3j-An0u>Db5(@(Vx;q&U0XifF@R|tLf&|=?7mHpM^06}us_s!sfV#!pZkH}yx^(H%e^>WaH~YFDb+f7a7u_t0%-p@V zYmI>1T=a81-}ghyF8v)pZ@RiD9#Tc!^}yho zMp*6pdNE%hx<)t>!JI!DczJ(vXLXJ57z_gXJB|}Jwe*`F6TfJqDD=7GI)-9E{;nga z`Di>zdnsni43f;qi{YCf1TSY+qwhjZG z03LS0@H0(QA9@-?K>i$npAtX_JbfYH0OTJ7K;!@XZPA2!0X#44*=XDu4FzbAKz}g7 ziJ*-@27r2C9BChEpNgz4%d*WNHuN1Iz@MQHeBA)WFfP{UF${GZv&wpqUor=LU?0FF z>8{0}dY~zW)t)@+GLBeCun7Ut^@2j62LJ*fdf7Imp=i-RfDKd@$HQ5ms}Hybg6`x1 z{y`vw2mm2YkB7Alg1ZFBhGPK8J`6)bIEDZKG+m2!0Q0hqMG5|x6hLYK2r-O;?cuSm zLf_L4u#G^4{vHYlf*6j^gh-kP0&sK!O#4nQD)e_yND$Z9@|kwjs2!lq4q^aI6A+-P zmA&i)-2ftp;+>*^{pqML+VL2HTrU6)v}hHb05U0sJEfo3%2@$qktP5+8zBNxMDNny zrMV*9C=UMfmV#;B_e z0DFPY`Q_bVLGz1we(@$hXb1p+u34E(%JGb+oxEN4heUnbaB_zodO&EL6RElcVz`UA z`RKPw{yZmD5c*mtWt&PAzsXFU?B`{Zzl>=lcnse3=};7NF;gqHtzTn+0gyxBW<;E+ zh5dZ?XNWcuLT3-00XS3q=AXrZ2n_H~4*=u|;Pw2l%}E*A2>|+kYQJfJ zm8vGM=UJ~8`kM{_QLVFx~zwzITFU@fn%mbaghc?Dl7>_sTniRLSUL%o5OBRBlJ$zfp8uv|!bMUp zmxeY0xMBk1pekD&er3+LL8|}|g1k)KhGCPfv!Nu-P0vG)0AZ8R zJVYt8MxYi^$)B?^o)QYESlq2$2l5R3F%#qp4UPmOi{{?|FaS@sXM{~B+{_Bo0$9aO zpA5jYc_K&}D^~)Q7fF9wC>#mk-G=sNWEBIzx&!Xh2(MGfZCY=0000 + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_1.xml b/app/src/main/res/drawable/outline_1.xml new file mode 100644 index 000000000..df37551b0 --- /dev/null +++ b/app/src/main/res/drawable/outline_1.xml @@ -0,0 +1,50 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_10.xml b/app/src/main/res/drawable/outline_10.xml new file mode 100644 index 000000000..3519f4725 --- /dev/null +++ b/app/src/main/res/drawable/outline_10.xml @@ -0,0 +1,76 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_11.xml b/app/src/main/res/drawable/outline_11.xml new file mode 100644 index 000000000..f55a2773c --- /dev/null +++ b/app/src/main/res/drawable/outline_11.xml @@ -0,0 +1,102 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_12.xml b/app/src/main/res/drawable/outline_12.xml new file mode 100644 index 000000000..89fb6f492 --- /dev/null +++ b/app/src/main/res/drawable/outline_12.xml @@ -0,0 +1,94 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_13.xml b/app/src/main/res/drawable/outline_13.xml new file mode 100644 index 000000000..28e7cedc8 --- /dev/null +++ b/app/src/main/res/drawable/outline_13.xml @@ -0,0 +1,82 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_14.xml b/app/src/main/res/drawable/outline_14.xml new file mode 100644 index 000000000..fb2d5df47 --- /dev/null +++ b/app/src/main/res/drawable/outline_14.xml @@ -0,0 +1,92 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_15.xml b/app/src/main/res/drawable/outline_15.xml new file mode 100644 index 000000000..a47dd6e5c --- /dev/null +++ b/app/src/main/res/drawable/outline_15.xml @@ -0,0 +1,133 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_16.xml b/app/src/main/res/drawable/outline_16.xml new file mode 100644 index 000000000..fb2d5df47 --- /dev/null +++ b/app/src/main/res/drawable/outline_16.xml @@ -0,0 +1,92 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_17.xml b/app/src/main/res/drawable/outline_17.xml new file mode 100644 index 000000000..5eb035803 --- /dev/null +++ b/app/src/main/res/drawable/outline_17.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_18.xml b/app/src/main/res/drawable/outline_18.xml new file mode 100644 index 000000000..3519f4725 --- /dev/null +++ b/app/src/main/res/drawable/outline_18.xml @@ -0,0 +1,76 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_19.xml b/app/src/main/res/drawable/outline_19.xml new file mode 100644 index 000000000..f75464b1b --- /dev/null +++ b/app/src/main/res/drawable/outline_19.xml @@ -0,0 +1,25 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_2.xml b/app/src/main/res/drawable/outline_2.xml new file mode 100644 index 000000000..13912e97b --- /dev/null +++ b/app/src/main/res/drawable/outline_2.xml @@ -0,0 +1,44 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_20.xml b/app/src/main/res/drawable/outline_20.xml new file mode 100644 index 000000000..f75464b1b --- /dev/null +++ b/app/src/main/res/drawable/outline_20.xml @@ -0,0 +1,25 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_21.xml b/app/src/main/res/drawable/outline_21.xml new file mode 100644 index 000000000..f75464b1b --- /dev/null +++ b/app/src/main/res/drawable/outline_21.xml @@ -0,0 +1,25 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_22.xml b/app/src/main/res/drawable/outline_22.xml new file mode 100644 index 000000000..f75464b1b --- /dev/null +++ b/app/src/main/res/drawable/outline_22.xml @@ -0,0 +1,25 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_23.xml b/app/src/main/res/drawable/outline_23.xml new file mode 100644 index 000000000..f75464b1b --- /dev/null +++ b/app/src/main/res/drawable/outline_23.xml @@ -0,0 +1,25 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_24.xml b/app/src/main/res/drawable/outline_24.xml new file mode 100644 index 000000000..13912e97b --- /dev/null +++ b/app/src/main/res/drawable/outline_24.xml @@ -0,0 +1,44 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_25.xml b/app/src/main/res/drawable/outline_25.xml new file mode 100644 index 000000000..296b513fa --- /dev/null +++ b/app/src/main/res/drawable/outline_25.xml @@ -0,0 +1,44 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_26.xml b/app/src/main/res/drawable/outline_26.xml new file mode 100644 index 000000000..97bf72758 --- /dev/null +++ b/app/src/main/res/drawable/outline_26.xml @@ -0,0 +1,54 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_27.xml b/app/src/main/res/drawable/outline_27.xml new file mode 100644 index 000000000..8ef23dd1d --- /dev/null +++ b/app/src/main/res/drawable/outline_27.xml @@ -0,0 +1,53 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_28.xml b/app/src/main/res/drawable/outline_28.xml new file mode 100644 index 000000000..8ef23dd1d --- /dev/null +++ b/app/src/main/res/drawable/outline_28.xml @@ -0,0 +1,53 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_29.xml b/app/src/main/res/drawable/outline_29.xml new file mode 100644 index 000000000..bfbb66d42 --- /dev/null +++ b/app/src/main/res/drawable/outline_29.xml @@ -0,0 +1,45 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_3.xml b/app/src/main/res/drawable/outline_3.xml new file mode 100644 index 000000000..df37551b0 --- /dev/null +++ b/app/src/main/res/drawable/outline_3.xml @@ -0,0 +1,50 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_30.xml b/app/src/main/res/drawable/outline_30.xml new file mode 100644 index 000000000..d77cf1f01 --- /dev/null +++ b/app/src/main/res/drawable/outline_30.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_31.xml b/app/src/main/res/drawable/outline_31.xml new file mode 100644 index 000000000..c17731fb3 --- /dev/null +++ b/app/src/main/res/drawable/outline_31.xml @@ -0,0 +1,19 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_32.xml b/app/src/main/res/drawable/outline_32.xml new file mode 100644 index 000000000..36ea58e56 --- /dev/null +++ b/app/src/main/res/drawable/outline_32.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_33.xml b/app/src/main/res/drawable/outline_33.xml new file mode 100644 index 000000000..c17731fb3 --- /dev/null +++ b/app/src/main/res/drawable/outline_33.xml @@ -0,0 +1,19 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_34.xml b/app/src/main/res/drawable/outline_34.xml new file mode 100644 index 000000000..36ea58e56 --- /dev/null +++ b/app/src/main/res/drawable/outline_34.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_35.xml b/app/src/main/res/drawable/outline_35.xml new file mode 100644 index 000000000..3519f4725 --- /dev/null +++ b/app/src/main/res/drawable/outline_35.xml @@ -0,0 +1,76 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_36.xml b/app/src/main/res/drawable/outline_36.xml new file mode 100644 index 000000000..296b513fa --- /dev/null +++ b/app/src/main/res/drawable/outline_36.xml @@ -0,0 +1,44 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_37.xml b/app/src/main/res/drawable/outline_37.xml new file mode 100644 index 000000000..302b87c7c --- /dev/null +++ b/app/src/main/res/drawable/outline_37.xml @@ -0,0 +1,140 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_38.xml b/app/src/main/res/drawable/outline_38.xml new file mode 100644 index 000000000..302b87c7c --- /dev/null +++ b/app/src/main/res/drawable/outline_38.xml @@ -0,0 +1,140 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_39.xml b/app/src/main/res/drawable/outline_39.xml new file mode 100644 index 000000000..302b87c7c --- /dev/null +++ b/app/src/main/res/drawable/outline_39.xml @@ -0,0 +1,140 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_4.xml b/app/src/main/res/drawable/outline_4.xml new file mode 100644 index 000000000..df37551b0 --- /dev/null +++ b/app/src/main/res/drawable/outline_4.xml @@ -0,0 +1,50 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_40.xml b/app/src/main/res/drawable/outline_40.xml new file mode 100644 index 000000000..bf890a130 --- /dev/null +++ b/app/src/main/res/drawable/outline_40.xml @@ -0,0 +1,70 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_41.xml b/app/src/main/res/drawable/outline_41.xml new file mode 100644 index 000000000..a47dd6e5c --- /dev/null +++ b/app/src/main/res/drawable/outline_41.xml @@ -0,0 +1,133 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_42.xml b/app/src/main/res/drawable/outline_42.xml new file mode 100644 index 000000000..fb2d5df47 --- /dev/null +++ b/app/src/main/res/drawable/outline_42.xml @@ -0,0 +1,92 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_43.xml b/app/src/main/res/drawable/outline_43.xml new file mode 100644 index 000000000..a47dd6e5c --- /dev/null +++ b/app/src/main/res/drawable/outline_43.xml @@ -0,0 +1,133 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_44.xml b/app/src/main/res/drawable/outline_44.xml new file mode 100644 index 000000000..8e44b2491 --- /dev/null +++ b/app/src/main/res/drawable/outline_44.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_45.xml b/app/src/main/res/drawable/outline_45.xml new file mode 100644 index 000000000..302b87c7c --- /dev/null +++ b/app/src/main/res/drawable/outline_45.xml @@ -0,0 +1,140 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_46.xml b/app/src/main/res/drawable/outline_46.xml new file mode 100644 index 000000000..fcb6804b7 --- /dev/null +++ b/app/src/main/res/drawable/outline_46.xml @@ -0,0 +1,106 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_47.xml b/app/src/main/res/drawable/outline_47.xml new file mode 100644 index 000000000..302b87c7c --- /dev/null +++ b/app/src/main/res/drawable/outline_47.xml @@ -0,0 +1,140 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_5.xml b/app/src/main/res/drawable/outline_5.xml new file mode 100644 index 000000000..fcb6804b7 --- /dev/null +++ b/app/src/main/res/drawable/outline_5.xml @@ -0,0 +1,106 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_6.xml b/app/src/main/res/drawable/outline_6.xml new file mode 100644 index 000000000..fcb6804b7 --- /dev/null +++ b/app/src/main/res/drawable/outline_6.xml @@ -0,0 +1,106 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_7.xml b/app/src/main/res/drawable/outline_7.xml new file mode 100644 index 000000000..fcb6804b7 --- /dev/null +++ b/app/src/main/res/drawable/outline_7.xml @@ -0,0 +1,106 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_8.xml b/app/src/main/res/drawable/outline_8.xml new file mode 100644 index 000000000..522c724f2 --- /dev/null +++ b/app/src/main/res/drawable/outline_8.xml @@ -0,0 +1,82 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_9.xml b/app/src/main/res/drawable/outline_9.xml new file mode 100644 index 000000000..5eb035803 --- /dev/null +++ b/app/src/main/res/drawable/outline_9.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_na.xml b/app/src/main/res/drawable/outline_na.xml new file mode 100644 index 000000000..31f593206 --- /dev/null +++ b/app/src/main/res/drawable/outline_na.xml @@ -0,0 +1,30 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/weatherclient_0.xml b/app/src/main/res/drawable/weatherclient_0.xml new file mode 100644 index 000000000..344a6f4ba --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_0.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_1.xml b/app/src/main/res/drawable/weatherclient_1.xml new file mode 100644 index 000000000..344a6f4ba --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_1.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_10.xml b/app/src/main/res/drawable/weatherclient_10.xml new file mode 100644 index 000000000..35415f66f --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_10.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_11.xml b/app/src/main/res/drawable/weatherclient_11.xml new file mode 100644 index 000000000..13fe25cf7 --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_11.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_12.xml b/app/src/main/res/drawable/weatherclient_12.xml new file mode 100644 index 000000000..13fe25cf7 --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_12.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_13.xml b/app/src/main/res/drawable/weatherclient_13.xml new file mode 100644 index 000000000..35415f66f --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_13.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_14.xml b/app/src/main/res/drawable/weatherclient_14.xml new file mode 100644 index 000000000..35415f66f --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_14.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_15.xml b/app/src/main/res/drawable/weatherclient_15.xml new file mode 100644 index 000000000..35415f66f --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_15.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_16.xml b/app/src/main/res/drawable/weatherclient_16.xml new file mode 100644 index 000000000..35415f66f --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_16.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_17.xml b/app/src/main/res/drawable/weatherclient_17.xml new file mode 100644 index 000000000..35415f66f --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_17.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_18.xml b/app/src/main/res/drawable/weatherclient_18.xml new file mode 100644 index 000000000..35415f66f --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_18.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_19.xml b/app/src/main/res/drawable/weatherclient_19.xml new file mode 100644 index 000000000..c9d56b9f5 --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_19.xml @@ -0,0 +1,26 @@ + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_20.xml b/app/src/main/res/drawable/weatherclient_20.xml new file mode 100644 index 000000000..c9d56b9f5 --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_20.xml @@ -0,0 +1,26 @@ + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_21.xml b/app/src/main/res/drawable/weatherclient_21.xml new file mode 100644 index 000000000..c9d56b9f5 --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_21.xml @@ -0,0 +1,26 @@ + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_22.xml b/app/src/main/res/drawable/weatherclient_22.xml new file mode 100644 index 000000000..c9d56b9f5 --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_22.xml @@ -0,0 +1,26 @@ + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_23.xml b/app/src/main/res/drawable/weatherclient_23.xml new file mode 100644 index 000000000..f6c07c144 --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_23.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/weatherclient_24.xml b/app/src/main/res/drawable/weatherclient_24.xml new file mode 100644 index 000000000..f6c07c144 --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_24.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/weatherclient_25.xml b/app/src/main/res/drawable/weatherclient_25.xml new file mode 100644 index 000000000..c2346c238 --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_25.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/weatherclient_26.xml b/app/src/main/res/drawable/weatherclient_26.xml new file mode 100644 index 000000000..7442cf883 --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_26.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_27.xml b/app/src/main/res/drawable/weatherclient_27.xml new file mode 100644 index 000000000..f63eb2cfd --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_27.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_28.xml b/app/src/main/res/drawable/weatherclient_28.xml new file mode 100644 index 000000000..b495aeaaf --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_28.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_29.xml b/app/src/main/res/drawable/weatherclient_29.xml new file mode 100644 index 000000000..a47ef9cba --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_29.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_3.xml b/app/src/main/res/drawable/weatherclient_3.xml new file mode 100644 index 000000000..344a6f4ba --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_3.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_30.xml b/app/src/main/res/drawable/weatherclient_30.xml new file mode 100644 index 000000000..370f4115a --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_30.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_31.xml b/app/src/main/res/drawable/weatherclient_31.xml new file mode 100644 index 000000000..681e433b9 --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_31.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_32.xml b/app/src/main/res/drawable/weatherclient_32.xml new file mode 100644 index 000000000..4dc8be873 --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_32.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_33.xml b/app/src/main/res/drawable/weatherclient_33.xml new file mode 100644 index 000000000..c4f341559 --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_33.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/weatherclient_34.xml b/app/src/main/res/drawable/weatherclient_34.xml new file mode 100644 index 000000000..4dc8be873 --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_34.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_35.xml b/app/src/main/res/drawable/weatherclient_35.xml new file mode 100644 index 000000000..344a6f4ba --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_35.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_36.xml b/app/src/main/res/drawable/weatherclient_36.xml new file mode 100644 index 000000000..f5f13b181 --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_36.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_37.xml b/app/src/main/res/drawable/weatherclient_37.xml new file mode 100644 index 000000000..338579d51 --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_37.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_38.xml b/app/src/main/res/drawable/weatherclient_38.xml new file mode 100644 index 000000000..338579d51 --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_38.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_39.xml b/app/src/main/res/drawable/weatherclient_39.xml new file mode 100644 index 000000000..338579d51 --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_39.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_4.xml b/app/src/main/res/drawable/weatherclient_4.xml new file mode 100644 index 000000000..344a6f4ba --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_4.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_40.xml b/app/src/main/res/drawable/weatherclient_40.xml new file mode 100644 index 000000000..762eea97e --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_40.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_41.xml b/app/src/main/res/drawable/weatherclient_41.xml new file mode 100644 index 000000000..35415f66f --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_41.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_42.xml b/app/src/main/res/drawable/weatherclient_42.xml new file mode 100644 index 000000000..35415f66f --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_42.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_43.xml b/app/src/main/res/drawable/weatherclient_43.xml new file mode 100644 index 000000000..370f4115a --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_43.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_44.xml b/app/src/main/res/drawable/weatherclient_44.xml new file mode 100644 index 000000000..370f4115a --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_44.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_45.xml b/app/src/main/res/drawable/weatherclient_45.xml new file mode 100644 index 000000000..344a6f4ba --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_45.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_46.xml b/app/src/main/res/drawable/weatherclient_46.xml new file mode 100644 index 000000000..35415f66f --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_46.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_47.xml b/app/src/main/res/drawable/weatherclient_47.xml new file mode 100644 index 000000000..a020b6b16 --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_47.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_5.xml b/app/src/main/res/drawable/weatherclient_5.xml new file mode 100644 index 000000000..344a6f4ba --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_5.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_6.xml b/app/src/main/res/drawable/weatherclient_6.xml new file mode 100644 index 000000000..35415f66f --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_6.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_7.xml b/app/src/main/res/drawable/weatherclient_7.xml new file mode 100644 index 000000000..35415f66f --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_7.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_8.xml b/app/src/main/res/drawable/weatherclient_8.xml new file mode 100644 index 000000000..35415f66f --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_8.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_9.xml b/app/src/main/res/drawable/weatherclient_9.xml new file mode 100644 index 000000000..13fe25cf7 --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_9.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_na.xml b/app/src/main/res/drawable/weatherclient_na.xml new file mode 100644 index 000000000..9ba51aba5 --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_na.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/raw/com_drdisagree_iconify_keep.xml b/app/src/main/res/raw/com_drdisagree_iconify_keep.xml index 2f9ee2c61..b1d1c8b46 100644 --- a/app/src/main/res/raw/com_drdisagree_iconify_keep.xml +++ b/app/src/main/res/raw/com_drdisagree_iconify_keep.xml @@ -1,3 +1,18 @@ + tools:keep=" + @drawable/google_*, + @drawable/icons8_color_hand_*, + @drawable/marshmallow_*, + @drawable/stickers_*, + @drawable/weather_color_*, + @drawable/weather_faded_*, + @drawable/weather_gs6_*, + @drawable/weather_magical_*, + @drawable/weather_miui_*, + @drawable/weather_sthul_*, + @drawable/weather_tapas_*, + @drawable/weather_vclouds_*, + @drawable/weather_weezle_*, + @drawable/outline_*, + @drawable/weatherclient_*" /> From bb28711d690a904b0ffedf6cd802acce754eaff0 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Wed, 14 Aug 2024 17:45:31 +0200 Subject: [PATCH 094/369] Weather Config: use SHARED_XPREFERENCES for getting weather prefs --- .../com/drdisagree/iconify/weather/Config.kt | 31 +++++++------------ 1 file changed, 11 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/weather/Config.kt b/app/src/main/java/com/drdisagree/iconify/weather/Config.kt index c8ca6f1f5..d7f889380 100644 --- a/app/src/main/java/com/drdisagree/iconify/weather/Config.kt +++ b/app/src/main/java/com/drdisagree/iconify/weather/Config.kt @@ -2,10 +2,10 @@ package com.drdisagree.iconify.weather import android.Manifest import android.content.Context +import android.content.Context.MODE_PRIVATE import android.content.SharedPreferences import android.content.pm.PackageManager import android.util.Log -import androidx.preference.PreferenceManager import com.drdisagree.iconify.BuildConfig import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_LOCATION import com.drdisagree.iconify.common.Preferences.WEATHER_ICON_PACK @@ -14,32 +14,28 @@ import com.drdisagree.iconify.common.Preferences.WEATHER_PROVIDER import com.drdisagree.iconify.common.Preferences.WEATHER_SWITCH import com.drdisagree.iconify.common.Preferences.WEATHER_UNITS import com.drdisagree.iconify.common.Preferences.WEATHER_UPDATE_INTERVAL +import com.drdisagree.iconify.common.Resources.SHARED_XPREFERENCES import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.weather.providers.OpenMeteoProvider object Config { - const val SharedXPref: String = BuildConfig.APPLICATION_ID + "_preferences" - const val PREF_KEY_PROVIDER: String = "provider" - const val PREF_KEY_UNITS: String = "units" const val PREF_KEY_LOCATION_ID: String = "location_id" const val PREF_KEY_LOCATION_NAME: String = "location_name" const val PREF_KEY_WEATHER_DATA: String = "weather_data" const val PREF_KEY_LAST_UPDATE: String = "last_update" - const val PREF_KEY_ENABLE: String = "enable" - const val PREF_KEY_UPDATE_INTERVAL: String = "update_interval" - const val PREF_KEY_ICON_PACK: String = "icon_pack" const val PREF_KEY_UPDATE_ERROR: String = "update_error" - const val PREF_KEY_OWM_KEY: String = "owm_key" - const val PREF_KEY_HISTORY: String = "history" - const val PREF_KEY_HISTORY_SIZE: String = "history_size" const val WEATHER_PREFS: String = BuildConfig.APPLICATION_ID + "_weatherprefs" private fun getPrefs(context: Context): SharedPreferences { try { if (Xprefs != null) return Xprefs as SharedPreferences - return PreferenceManager.getDefaultSharedPreferences(context.createDeviceProtectedStorageContext()) + return context.createDeviceProtectedStorageContext().getSharedPreferences( + SHARED_XPREFERENCES, MODE_PRIVATE + ) } catch (t: Throwable) { - return PreferenceManager.getDefaultSharedPreferences(context.createDeviceProtectedStorageContext()) + return context.createDeviceProtectedStorageContext().getSharedPreferences( + SHARED_XPREFERENCES, MODE_PRIVATE + ) } } @@ -53,13 +49,8 @@ object Config { } fun getProviderId(context: Context): String { - val provider = getPrefs(context).getString(WEATHER_PROVIDER, "0") - - return when (provider) { - "1" -> "MET Norway" - "2" -> "OpenMeteo" - else -> "OpenWeatherMap" - } + //val provider = getPrefs(context).getString(WEATHER_PROVIDER, "0") + return "OpenWeatherMap" } fun isMetric(context: Context): Boolean { @@ -131,7 +122,7 @@ object Config { } fun getIconPack(context: Context): String? { - return getPrefs(context).getString(WEATHER_ICON_PACK, null) + return getPrefs(context).getString(WEATHER_ICON_PACK, BuildConfig.APPLICATION_ID.replace(".debug", "") + ".google") } fun setUpdateError(context: Context, value: Boolean) { From de506d3e509b7265fba56f7448b08fe2258ec581 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Wed, 14 Aug 2024 18:29:52 +0200 Subject: [PATCH 095/369] Provider: use Lat & Lon prefs so when we will have more providers we can handle other APIs --- .../iconify/weather/AbstractWeatherProvider.kt | 2 +- .../com/drdisagree/iconify/weather/Config.kt | 16 +++++++++++----- .../drdisagree/iconify/weather/WeatherWork.kt | 7 ++++--- .../weather/providers/OpenMeteoProvider.kt | 7 +++++-- 4 files changed, 21 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/weather/AbstractWeatherProvider.kt b/app/src/main/java/com/drdisagree/iconify/weather/AbstractWeatherProvider.kt index 57907ee93..de2774d46 100644 --- a/app/src/main/java/com/drdisagree/iconify/weather/AbstractWeatherProvider.kt +++ b/app/src/main/java/com/drdisagree/iconify/weather/AbstractWeatherProvider.kt @@ -45,7 +45,7 @@ abstract class AbstractWeatherProvider(protected var mContext: Context) { return response } - abstract fun getCustomWeather(id: String?, metric: Boolean): WeatherInfo? + abstract fun getCustomWeather(lat: String?, lon: String?, metric: Boolean): WeatherInfo? abstract fun getLocationWeather(location: Location?, metric: Boolean): WeatherInfo? diff --git a/app/src/main/java/com/drdisagree/iconify/weather/Config.kt b/app/src/main/java/com/drdisagree/iconify/weather/Config.kt index d7f889380..dd7c7dbb5 100644 --- a/app/src/main/java/com/drdisagree/iconify/weather/Config.kt +++ b/app/src/main/java/com/drdisagree/iconify/weather/Config.kt @@ -19,7 +19,8 @@ import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.weather.providers.OpenMeteoProvider object Config { - const val PREF_KEY_LOCATION_ID: String = "location_id" + const val PREF_KEY_LOCATION_LAT: String = "location_lat" + const val PREF_KEY_LOCATION_LON: String = "location_lon" const val PREF_KEY_LOCATION_NAME: String = "location_name" const val PREF_KEY_WEATHER_DATA: String = "weather_data" const val PREF_KEY_LAST_UPDATE: String = "last_update" @@ -61,12 +62,17 @@ object Config { return getPrefs(context).getBoolean(WEATHER_CUSTOM_LOCATION, false) } - fun getLocationId(context: Context): String? { - return getWeatherPrefs(context).getString(PREF_KEY_LOCATION_ID, null) + fun getLocationLat(context: Context): String? { + return getWeatherPrefs(context).getString(PREF_KEY_LOCATION_LAT, null) } - fun setLocationId(context: Context, id: String?) { - getWeatherPrefs(context).edit().putString(PREF_KEY_LOCATION_ID, id).apply() + fun getLocationLon(context: Context): String? { + return getWeatherPrefs(context).getString(PREF_KEY_LOCATION_LON, null) + } + + fun setLocationId(context: Context, lat: String?, lon: String?) { + getWeatherPrefs(context).edit().putString(PREF_KEY_LOCATION_LAT, lat).apply() + getWeatherPrefs(context).edit().putString(PREF_KEY_LOCATION_LON, lon).apply() } fun getLocationName(context: Context): String? { diff --git a/app/src/main/java/com/drdisagree/iconify/weather/WeatherWork.kt b/app/src/main/java/com/drdisagree/iconify/weather/WeatherWork.kt index 6fef3377a..c1ba90f07 100644 --- a/app/src/main/java/com/drdisagree/iconify/weather/WeatherWork.kt +++ b/app/src/main/java/com/drdisagree/iconify/weather/WeatherWork.kt @@ -18,7 +18,8 @@ import com.drdisagree.iconify.utils.OmniJawsClient.EXTRA_ERROR_DISABLED import com.drdisagree.iconify.utils.OmniJawsClient.EXTRA_ERROR_LOCATION import com.drdisagree.iconify.utils.OmniJawsClient.EXTRA_ERROR_NETWORK import com.drdisagree.iconify.utils.OmniJawsClient.EXTRA_ERROR_NO_PERMISSIONS -import com.drdisagree.iconify.weather.Config.getLocationId +import com.drdisagree.iconify.weather.Config.getLocationLat +import com.drdisagree.iconify.weather.Config.getLocationLon import com.drdisagree.iconify.weather.Config.getProvider import com.drdisagree.iconify.weather.Config.isCustomLocation import com.drdisagree.iconify.weather.Config.isEnabled @@ -194,8 +195,8 @@ class WeatherWork(val mContext: Context, workerParams: WorkerParameters) : while (i < RETRY_MAX_NUM) { w = if (location != null && !isCustomLocation(mContext)) { provider.getLocationWeather(location, isMetric) - } else if (getLocationId(mContext) != null) { - provider.getCustomWeather(getLocationId(mContext), isMetric) + } else if (!TextUtils.isEmpty(getLocationLat(mContext)) && !TextUtils.isEmpty(getLocationLon(mContext))) { + provider.getCustomWeather(getLocationLat(mContext)!!, getLocationLon(mContext)!!, isMetric) } else { Log.w(TAG, "No valid custom location and location is null") break diff --git a/app/src/main/java/com/drdisagree/iconify/weather/providers/OpenMeteoProvider.kt b/app/src/main/java/com/drdisagree/iconify/weather/providers/OpenMeteoProvider.kt index 371d43ba3..19e2920ca 100644 --- a/app/src/main/java/com/drdisagree/iconify/weather/providers/OpenMeteoProvider.kt +++ b/app/src/main/java/com/drdisagree/iconify/weather/providers/OpenMeteoProvider.kt @@ -13,8 +13,11 @@ import java.util.Locale import java.util.TimeZone class OpenMeteoProvider(context: Context?) : AbstractWeatherProvider(context!!) { - override fun getCustomWeather(id: String?, metric: Boolean): WeatherInfo? { - return handleWeatherRequest(id, metric) + + override fun getCustomWeather(lat: String?, lon: String?, metric: Boolean): WeatherInfo? { + val coordinates = + String.format(Locale.US, PART_COORDINATES, lat!!.toFloat(), lon!!.toFloat()) + return handleWeatherRequest(coordinates, metric) } override fun getLocationWeather(location: Location?, metric: Boolean): WeatherInfo? { From 869e25227e7e83edd1b752720ffd5ad66d858d92 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Wed, 14 Aug 2024 18:30:31 +0200 Subject: [PATCH 096/369] Weather: added Location Picker Activity --- app/src/main/AndroidManifest.xml | 3 + .../ui/activities/LocationBrowseActivity.kt | 242 ++++++++++++++++++ .../ui/drawables/TintedDrawableSpan.kt | 52 ++++ app/src/main/res/drawable/ic_search.xml | 20 ++ .../main/res/drawable/search_hint_color.xml | 20 ++ .../main/res/drawable/text_field_corners.xml | 9 + .../res/layout/location_browse_activity.xml | 91 +++++++ .../main/res/layout/location_browse_item.xml | 58 +++++ 8 files changed, 495 insertions(+) create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/activities/LocationBrowseActivity.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/drawables/TintedDrawableSpan.kt create mode 100644 app/src/main/res/drawable/ic_search.xml create mode 100644 app/src/main/res/drawable/search_hint_color.xml create mode 100644 app/src/main/res/drawable/text_field_corners.xml create mode 100644 app/src/main/res/layout/location_browse_activity.xml create mode 100644 app/src/main/res/layout/location_browse_item.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 6cf3dbb6f..d0c0468da 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -54,6 +54,9 @@ + = ArrayList() + private var mAdapter: LocagtionListAdapter? = null + private val mExecutorService: ExecutorService = Executors.newSingleThreadExecutor() + private val mHandler = Handler(Looper.getMainLooper()) + private var mQueryString: String? = null + private var mProgressBar: FrameLayout? = null + + private val mQueryRunnable = Runnable { + mExecutorService.submit { + getLocations( + mQueryString + ) + } + } + + private class LocationBrowseItem( + val cityExt: String, + private val mCountryId: String, + val city: String, + val lat: Double, + val lon: Double + ) { + protected val id: String + get() = city + "," + mCountryId + + override fun equals(other: Any?): Boolean { + return (other is LocationBrowseItem) && this.id == other.id + } + } + + inner class LocagtionListAdapter : RecyclerView.Adapter() { + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { + val inflater = LayoutInflater.from(parent.context) + return ViewHolder(inflater.inflate(R.layout.location_browse_item, parent, false)) + } + + override fun onBindViewHolder(holder: ViewHolder, position: Int) { + val city = mLocationBrowseList[position] + + (holder.itemView.findViewById(R.id.location_city) as TextView).text = + city.city + (holder.itemView.findViewById(R.id.location_city_ext) as TextView).text = + city.cityExt + + holder.itemView.setOnClickListener { view: View? -> + val intent = Intent() + intent.putExtra(DATA_LOCATION_NAME, city.city) + intent.putExtra(DATA_LOCATION_LAT, city.lat) + intent.putExtra(DATA_LOCATION_LON, city.lon) + setResult(Activity.RESULT_OK, intent) + finish() + } + } + + override fun getItemCount(): Int { + return mLocationBrowseList.size + } + + inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view) + } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + setContentView(R.layout.location_browse_activity) + + val toolbar: MaterialToolbar = findViewById(R.id.toolbar) + toolbar.setTitle(R.string.custom_location_title) + setSupportActionBar(toolbar) + getSupportActionBar()!!.setDisplayHomeAsUpEnabled(true) + + mProgressBar = findViewById(R.id.query_progressbar) + + val queryPattern: EditText = findViewById(R.id.query_pattern_text) + queryPattern.hint = prefixTextWithIcon(this, R.drawable.ic_search, queryPattern.hint) + queryPattern.addTextChangedListener(object : TextWatcher { + override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) { + } + + override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) { + mHandler.removeCallbacks(mQueryRunnable) + mQueryString = s.toString() + if (TextUtils.isEmpty(mQueryString)) { + hideProgress() + mLocationBrowseList.clear() + mAdapter!!.notifyDataSetChanged() + } else { + showProgress() + mHandler.postDelayed(mQueryRunnable, 750) + } + } + + override fun afterTextChanged(s: Editable) { + } + }) + + mAdapter = LocagtionListAdapter() + val queryList: RecyclerView = findViewById(R.id.query_result) + queryList.adapter = mAdapter + queryList.layoutManager = LinearLayoutManager(this) + } + + override fun onOptionsItemSelected(item: MenuItem): Boolean { + when (item.itemId) { + android.R.id.home -> { + finish() + return true + } + + else -> {} + } + return super.onOptionsItemSelected(item) + } + + protected fun getLocations(input: String?) { + mLocationBrowseList.clear() + + try { + val lang = Locale.getDefault().language.replaceFirst("_".toRegex(), "-") + val url = String.format( + URL_PLACES, Uri.encode( + input!!.trim { it <= ' ' }), lang + ) + val response: String = NetworkUtils.downloadUrlMemoryAsString(url) + if (response != null) { + val jsonResults = JSONObject(response).getJSONArray("geonames") + val count = jsonResults.length() + Log.d( + TAG, + "URL = $url returning a response of count = $count" + ) + + for (i in 0 until count) { + val result = jsonResults.getJSONObject(i) + + val population = + if (result.has("population")) result.getInt("population") else 0 + if (population == 0) { + continue + } + + val city = result.getString("name") + val country = result.getString("countryName") + val countryId = result.getString("countryId") + val adminName = + if (result.has("adminName1")) result.getString("adminName1") else "" + val cityExt = + (if (TextUtils.isEmpty(adminName)) "" else "$adminName, ") + country + val lat = result.getDouble("lat") + val lon = result.getDouble("lng") + + val locationItem = LocationBrowseItem(cityExt, countryId, city, lat, lon) + if (!mLocationBrowseList.contains(locationItem)) { + mLocationBrowseList.add(locationItem) + if (mLocationBrowseList.size == 5) { + break + } + } + } + } + } catch (e: Exception) { + Log.e( + TAG, + "Received malformed location data input=$input", e + ) + } finally { + mHandler.post { + hideProgress() + mAdapter!!.notifyDataSetChanged() + } + } + } + + private fun showProgress() { + mProgressBar!!.visibility = View.VISIBLE + } + + private fun hideProgress() { + mProgressBar!!.visibility = View.GONE + } + + companion object { + private const val TAG = "LocationBrowseActivity" + + const val DATA_LOCATION_NAME: String = "location_name" + const val DATA_LOCATION_LAT: String = "location_lat" + const val DATA_LOCATION_LON: String = "location_lon" + + private const val URL_PLACES = + "https://secure.geonames.org/searchJSON?name_startsWith=%s&lang=%s&username=omnijaws&maxRows=20" + + + fun prefixTextWithIcon(context: Context?, iconRes: Int, msg: CharSequence): CharSequence { + // Update the hint to contain the icon. + // Prefix the original hint with two spaces. The first space gets replaced by the icon + // using span. The second space is used for a singe space character between the hint + // and the icon. + val spanned = SpannableString(" $msg") + spanned.setSpan( + TintedDrawableSpan(context!!, iconRes), + 0, 1, Spannable.SPAN_EXCLUSIVE_INCLUSIVE + ) + return spanned + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/drawables/TintedDrawableSpan.kt b/app/src/main/java/com/drdisagree/iconify/ui/drawables/TintedDrawableSpan.kt new file mode 100644 index 000000000..b717db475 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/drawables/TintedDrawableSpan.kt @@ -0,0 +1,52 @@ +package com.drdisagree.iconify.ui.drawables + +import android.content.Context +import android.graphics.Canvas +import android.graphics.Paint +import android.graphics.Paint.FontMetricsInt +import android.graphics.drawable.Drawable +import android.text.style.DynamicDrawableSpan + + +/** + * [DynamicDrawableSpan] which draws a drawable tinted with the current paint color. + */ +class TintedDrawableSpan(context: Context, resourceId: Int) : + DynamicDrawableSpan(ALIGN_BOTTOM) { + private val mDrawable = context.getDrawable(resourceId)!!.mutate() + private var mOldTint = 0 + + init { + mDrawable.setTint(0) + } + + override fun getSize( + paint: Paint, + text: CharSequence, + start: Int, + end: Int, + fm: FontMetricsInt? + ): Int { + var fm = fm + fm = fm ?: paint.fontMetricsInt + val iconSize = fm!!.bottom - fm.top + mDrawable.setBounds(0, 0, iconSize, iconSize) + return super.getSize(paint, text, start, end, fm) + } + + override fun draw( + canvas: Canvas, text: CharSequence, + start: Int, end: Int, x: Float, top: Int, y: Int, bottom: Int, paint: Paint + ) { + val color = paint.color + if (mOldTint != color) { + mOldTint = color + mDrawable.setTint(mOldTint) + } + super.draw(canvas, text, start, end, x, top, y, bottom, paint) + } + + override fun getDrawable(): Drawable { + return mDrawable + } +} diff --git a/app/src/main/res/drawable/ic_search.xml b/app/src/main/res/drawable/ic_search.xml new file mode 100644 index 000000000..c9954a055 --- /dev/null +++ b/app/src/main/res/drawable/ic_search.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/search_hint_color.xml b/app/src/main/res/drawable/search_hint_color.xml new file mode 100644 index 000000000..ba37c27a8 --- /dev/null +++ b/app/src/main/res/drawable/search_hint_color.xml @@ -0,0 +1,20 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/text_field_corners.xml b/app/src/main/res/drawable/text_field_corners.xml new file mode 100644 index 000000000..3034c1bce --- /dev/null +++ b/app/src/main/res/drawable/text_field_corners.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/location_browse_activity.xml b/app/src/main/res/layout/location_browse_activity.xml new file mode 100644 index 000000000..4ff61ef9c --- /dev/null +++ b/app/src/main/res/layout/location_browse_activity.xml @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/location_browse_item.xml b/app/src/main/res/layout/location_browse_item.xml new file mode 100644 index 000000000..b35719d08 --- /dev/null +++ b/app/src/main/res/layout/location_browse_item.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + \ No newline at end of file From fa1343472a0b5bb3d17dc82f99fc292abe5dbd4f Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Wed, 14 Aug 2024 18:31:06 +0200 Subject: [PATCH 097/369] Added Location Picker ActivityResultLauncher --- .../ui/fragments/XposedLockscreenWeather.kt | 161 +++++++++++++++++- .../fragment_xposed_lockscreen_weather.xml | 1 + 2 files changed, 158 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt index 18cdb2b3f..07ad5daff 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt @@ -1,11 +1,13 @@ package com.drdisagree.iconify.ui.fragments import android.Manifest +import android.app.Activity import android.app.Dialog import android.content.Context import android.content.DialogInterface import android.content.Intent import android.content.pm.PackageManager +import android.graphics.drawable.Drawable import android.location.LocationManager import android.net.Uri import android.os.Bundle @@ -17,6 +19,8 @@ import android.view.ViewGroup import android.widget.CompoundButton import androidx.activity.result.ActivityResultLauncher import androidx.activity.result.contract.ActivityResultContracts +import androidx.core.content.res.ResourcesCompat +import androidx.recyclerview.widget.LinearLayoutManager import com.drdisagree.iconify.BuildConfig import com.drdisagree.iconify.Iconify.Companion.appContextLocale import com.drdisagree.iconify.R @@ -24,6 +28,7 @@ import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_LOCATION import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_LEFT import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_TOP +import com.drdisagree.iconify.common.Preferences.WEATHER_ICON_PACK import com.drdisagree.iconify.common.Preferences.WEATHER_ICON_SIZE import com.drdisagree.iconify.common.Preferences.WEATHER_SHOW_CONDITION import com.drdisagree.iconify.common.Preferences.WEATHER_SHOW_HUMIDITY @@ -43,16 +48,25 @@ import com.drdisagree.iconify.config.RPrefs.putInt import com.drdisagree.iconify.config.RPrefs.putString import com.drdisagree.iconify.databinding.FragmentXposedLockscreenWeatherBinding import com.drdisagree.iconify.services.WeatherScheduler +import com.drdisagree.iconify.ui.activities.LocationBrowseActivity +import com.drdisagree.iconify.ui.activities.LocationBrowseActivity.Companion.DATA_LOCATION_LAT +import com.drdisagree.iconify.ui.activities.LocationBrowseActivity.Companion.DATA_LOCATION_LON +import com.drdisagree.iconify.ui.activities.LocationBrowseActivity.Companion.DATA_LOCATION_NAME +import com.drdisagree.iconify.ui.adapters.IconsAdapter +import com.drdisagree.iconify.ui.adapters.IconsAdapter.Companion.WEATHER_ICONS_ADAPTER import com.drdisagree.iconify.ui.base.BaseFragment import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader import com.drdisagree.iconify.utils.OmniJawsClient +import com.drdisagree.iconify.weather.AbstractWeatherProvider.Companion.PART_COORDINATES import com.drdisagree.iconify.weather.Config import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.slider.Slider +import java.util.Locale class XposedLockscreenWeather:BaseFragment(), OmniJawsClient.OmniJawsObserver { + private val DEFAULT_WEATHER_ICON_PACKAGE: String = BuildConfig.APPLICATION_ID + ".google" private lateinit var binding: FragmentXposedLockscreenWeatherBinding private lateinit var mWeatherClient: OmniJawsClient private var mTriggerPermissionCheck = false @@ -167,11 +181,46 @@ class XposedLockscreenWeather:BaseFragment(), binding.lockscreenWeatherCustomLocation.isSwitchChecked = getBoolean(WEATHER_CUSTOM_LOCATION, false) binding.lockscreenWeatherCustomLocation.setSwitchChangeListener{ _: CompoundButton?, isChecked: Boolean -> putBoolean(WEATHER_CUSTOM_LOCATION, isChecked) + binding.lockscreenWeatherCustomLocationMenu.isEnabled = isChecked } - binding.lockscreenWeatherCustomLocationMenu.setOnClickListener(View.OnClickListener { - //TODO: Implement custom location - }) + binding.lockscreenWeatherCustomLocationMenu.setSummary(Config.getLocationName(requireContext())) + binding.lockscreenWeatherCustomLocationMenu.setOnClickListener { + mCustomLocationLauncher.launch( + Intent( + requireContext(), + LocationBrowseActivity::class.java + ) + ) + } + + val entries: MutableList = ArrayList() + val values: MutableList = ArrayList() + val drawables: MutableList = ArrayList() + getAvailableWeatherIconPacks(entries, values, drawables) + val entriesChar: Array = entries.filterNotNull().toTypedArray() + val valuesChar: Array = values.filterNotNull().toTypedArray() + val currentIconPack = Config.getIconPack(requireContext()) + val mAdapter = + IconsAdapter( + entriesChar, + valuesChar, + currentIconPack!!, + WEATHER_ICONS_ADAPTER, + object : IconsAdapter.OnItemClickListener { + override fun onItemClick(view: View, position: Int) { + val value = values[position] + Log.d("Weather", "Selected weather icon pack: $value") + putString(WEATHER_ICON_PACK, value!!.replace(".debug", "")) + binding.lockscreenWeatherIconPack.setSummary(entries[position]!!) + forceRefreshWeatherSettings() + } + }) + mAdapter.setDrawables(drawables.filterNotNull().toTypedArray()) + val summary = entries[values.indexOf(currentIconPack)] + binding.lockscreenWeatherIconPack.setSummary(summary!!) + binding.lockscreenWeatherIconPack.setLayoutManager(LinearLayoutManager(requireContext())) + binding.lockscreenWeatherIconPack.setAdapter(mAdapter) binding.lockscreenWeatherCustomMargins.isSwitchChecked = getBoolean(WEATHER_CUSTOM_MARGINS, false) binding.lockscreenWeatherCustomMargins.setSwitchChangeListener{ _: CompoundButton?, isChecked: Boolean -> @@ -200,12 +249,25 @@ class XposedLockscreenWeather:BaseFragment(), putInt(WEATHER_STYLE, it) } -// updateUI(getBoolean(WEATHER_SWITCH, false)) + if (!getBoolean(WEATHER_CUSTOM_LOCATION, false)) { + checkLocationEnabledInitial() + } else { + forceRefreshWeatherSettings() + } + + updateUI() } override fun onResume() { super.onResume() + mWeatherClient.addObserver(this) + + if (getBoolean(WEATHER_SWITCH, false) + && !getBoolean(WEATHER_CUSTOM_LOCATION, false) + ) { + checkLocationEnabled() + } if (mTriggerPermissionCheck) { checkLocationPermissions(true) mTriggerPermissionCheck = false @@ -352,4 +414,95 @@ class XposedLockscreenWeather:BaseFragment(), } } + private fun getAvailableWeatherIconPacks( + entries: MutableList, + values: MutableList, + drawables: MutableList + ) { + val i = Intent() + val packageManager = requireContext().packageManager + i.setAction(BuildConfig.APPLICATION_ID + ".WeatherIconPack") + for (r in packageManager.queryIntentActivities(i, 0)) { + val packageName = r.activityInfo.packageName + if (packageName == DEFAULT_WEATHER_ICON_PACKAGE) { + Log.d("Weather", "Weather Icon Pack: " + r.activityInfo.name) + values.add(0, r.activityInfo.name) + drawables.add( + 0, + ResourcesCompat.getDrawable( + resources, + resources.getIdentifier( + "google_30", + "drawable", + BuildConfig.APPLICATION_ID + ), + requireContext().theme + ) + ) + } else { + values.add(r.activityInfo.name) + Log.d("Weather", "Weather Icon Pack: " + r.activityInfo.name) + val name = r.activityInfo.name.split("\\.".toRegex()).dropLastWhile { it.isEmpty() } + .toTypedArray() + Log.d("Weather", "Weather Icon Pack: " + r.activityInfo.name) + drawables.add( + ResourcesCompat.getDrawable( + resources, resources.getIdentifier( + name[name.size - 1].lowercase( + Locale.getDefault() + ) + "_30", "drawable", BuildConfig.APPLICATION_ID + ), requireContext().theme + ) + ) + } + var label: String? = r.activityInfo.loadLabel(packageManager).toString() + if (label == null) { + label = r.activityInfo.packageName + } + if (packageName == DEFAULT_WEATHER_ICON_PACKAGE) { + entries.add(0, label) + } else { + entries.add(label) + } + } + } + + private fun updateUI() { + + val enabled = getBoolean(WEATHER_SWITCH, false) + + for (i in 0 until binding.lockscreenWeatherContainer.childCount) { + val child = binding.lockscreenWeatherContainer.getChildAt(i) + if (child != binding.enableLockscreenWeather) child.isEnabled = enabled + } + + binding.lockscreenWeatherCustomColor.visibility = if (getBoolean(WEATHER_TEXT_COLOR_SWITCH, false)) View.VISIBLE else View.GONE + binding.lockscreenWeatherCustomLocationMenu.isEnabled = getBoolean(WEATHER_CUSTOM_LOCATION, false) + binding.lockscreenWeatherMarginTop.visibility = if (getBoolean(WEATHER_CUSTOM_MARGINS, false)) View.VISIBLE else View.GONE + binding.lockscreenWeatherMarginLeft.visibility = if (getBoolean(WEATHER_CUSTOM_MARGINS, false)) View.VISIBLE else View.GONE + + } + + var mCustomLocationLauncher: ActivityResultLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { result -> + if (result.resultCode == Activity.RESULT_OK) { + val intent: Intent? = result.data + if (intent!!.hasExtra(DATA_LOCATION_NAME)) { + val locationName = intent.getStringExtra(DATA_LOCATION_NAME) + val lat = intent.getDoubleExtra(DATA_LOCATION_LAT, 0.0) + val lon = intent.getDoubleExtra(DATA_LOCATION_LON, 0.0) + Config.setLocationId(requireContext(), lat.toString(), lon.toString()) + Config.setLocationName(requireContext(), locationName) + binding.lockscreenWeatherCustomLocationMenu.setSummary(locationName) + if (getBoolean(WEATHER_SWITCH, false) + && !getBoolean(WEATHER_CUSTOM_LOCATION, false) + ) { + checkLocationEnabled() + } + forceRefreshWeatherSettings() + } + } + } + } \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml b/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml index ecd5dd515..c0f189e5b 100644 --- a/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml +++ b/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml @@ -16,6 +16,7 @@ app:layout_behavior="@string/appbar_scrolling_view_behavior"> Date: Wed, 14 Aug 2024 19:02:30 +0200 Subject: [PATCH 098/369] Add Weather in a LinearLayout so we can handle margins --- .../xposed/modules/LockscreenWeather.kt | 46 +++++++++++++------ 1 file changed, 31 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt index b3183e1ac..b819df344 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt @@ -4,6 +4,7 @@ import android.content.Context import android.graphics.Color import android.view.View import android.view.ViewGroup +import android.widget.LinearLayout import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_LEFT import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_TOP @@ -37,12 +38,13 @@ class LockscreenWeather(context: Context?) : ModPack(context!!) { private var weatherCustomColor = false private var weatherColor = Color.WHITE private var weatherStartPadding = 0 - private var weatherTextSize:Int = 16 - private var weatherImageSize:Int = 18 + private var weatherTextSize: Int = 16 + private var weatherImageSize: Int = 18 private var mCustomMargins = false private var mLeftMargin = 0 - private var mTopMargin:Int = 0 + private var mTopMargin: Int = 0 private var mWeatherBackground = 0 + private lateinit var mWeatherContainer: LinearLayout private var mStatusViewContainer: ViewGroup? = null @@ -60,12 +62,12 @@ class LockscreenWeather(context: Context?) : ModPack(context!!) { weatherTextSize = Xprefs!!.getInt(WEATHER_TEXT_SIZE, 16) weatherImageSize = Xprefs!!.getInt(WEATHER_ICON_SIZE, 18) mCustomMargins = Xprefs!!.getBoolean(WEATHER_CUSTOM_MARGINS, false) - mLeftMargin = Xprefs!!.getInt(WEATHER_CUSTOM_MARGINS_TOP, 0) - mTopMargin = Xprefs!!.getInt(WEATHER_CUSTOM_MARGINS_LEFT, 0) + mLeftMargin = Xprefs!!.getInt(WEATHER_CUSTOM_MARGINS_LEFT, 0) + mTopMargin = Xprefs!!.getInt(WEATHER_CUSTOM_MARGINS_TOP, 0) mWeatherBackground = Xprefs!!.getInt(WEATHER_STYLE, 0) if (key.isNotEmpty() && - (key[0] == (WEATHER_SHOW_LOCATION) || + (key[0] == (WEATHER_SHOW_LOCATION) || key[0] == (WEATHER_SHOW_CONDITION) || key[0] == (WEATHER_SHOW_HUMIDITY) || key[0] == (WEATHER_SHOW_WIND) || @@ -73,7 +75,11 @@ class LockscreenWeather(context: Context?) : ModPack(context!!) { key[0] == (WEATHER_TEXT_COLOR) || key[0] == (WEATHER_TEXT_SIZE) || key[0] == (WEATHER_ICON_SIZE) || - key[0] == (WEATHER_STYLE))) { + key[0] == (WEATHER_STYLE) || + key[0] == (WEATHER_CUSTOM_MARGINS) || + key[0] == (WEATHER_CUSTOM_MARGINS_LEFT) || + key[0] == (WEATHER_CUSTOM_MARGINS_TOP)) + ) { updateWeatherView() } @@ -90,6 +96,12 @@ class LockscreenWeather(context: Context?) : ModPack(context!!) { override fun afterHookedMethod(param: MethodHookParam) { if (!weatherEnabled) return + mWeatherContainer = LinearLayout(mContext) + mWeatherContainer.layoutParams = LinearLayout.LayoutParams( + ViewGroup.LayoutParams.MATCH_PARENT, + ViewGroup.LayoutParams.WRAP_CONTENT + ) + mStatusViewContainer = getObjectField( param.thisObject, "mStatusViewContainer" @@ -109,27 +121,31 @@ class LockscreenWeather(context: Context?) : ModPack(context!!) { (currentWeatherView.parent as ViewGroup).removeView(currentWeatherView) } catch (ignored: Throwable) { } - mStatusViewContainer!!.addView(currentWeatherView) + try { + (mWeatherContainer.parent as ViewGroup).removeView(mWeatherContainer) + } catch (ignored: Throwable) { + } + mWeatherContainer.addView(currentWeatherView) + mStatusViewContainer!!.addView(mWeatherContainer) refreshWeatherView(currentWeatherView) - updateMargins(currentWeatherView) + updateMargins() } catch (ignored: Throwable) { } } - private fun updateMargins(weatherView: CurrentWeatherView?) { - if (weatherView == null) return + private fun updateMargins() { if (mCustomMargins) { setMargins( - weatherView, + mWeatherContainer, mContext, + mLeftMargin, mTopMargin, mLeftMargin, - 0, 0 ) } else { setMargins( - weatherView, + mWeatherContainer, mContext, 0, 0, @@ -162,7 +178,7 @@ class LockscreenWeather(context: Context?) : ModPack(context!!) { mWeatherBackground, LOCKSCREEN_WEATHER ) - updateMargins(currentWeatherView) + updateMargins() } private fun updateWeatherView() { From c9236046b4fda0a44ae089b7831ef850201f71f5 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Wed, 14 Aug 2024 19:02:49 +0200 Subject: [PATCH 099/369] Removed unused prefs --- app/src/main/java/com/drdisagree/iconify/common/Preferences.kt | 2 -- app/src/main/java/com/drdisagree/iconify/weather/Config.kt | 1 - 2 files changed, 3 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt index c3cb0b169..60a416af4 100644 --- a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt +++ b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt @@ -258,11 +258,9 @@ object Preferences { const val WEATHER_ICON_SIZE: String = "weather_icon_size" const val WEATHER_TEXT_COLOR_SWITCH: String = "weather_text_color_switch" const val WEATHER_TEXT_COLOR: String = "weather_text_color" - const val WEATHER_PROVIDER: String = "weather_provider" const val WEATHER_OWM_KEY: String = "owm_key" const val WEATHER_UNITS: String = "weather_units" const val WEATHER_CUSTOM_LOCATION: String = "weather_custom_location_switch" - const val WEATHER_CUSTOM_LOCATION_NAME: String = "weather_custom_location_name" const val WEATHER_CUSTOM_MARGINS: String = "weather_custom_margins" const val WEATHER_CUSTOM_MARGINS_TOP: String = "weather_custom_margins_top" const val WEATHER_CUSTOM_MARGINS_LEFT: String = "weather_custom_margins_left" diff --git a/app/src/main/java/com/drdisagree/iconify/weather/Config.kt b/app/src/main/java/com/drdisagree/iconify/weather/Config.kt index dd7c7dbb5..bb1cfd62d 100644 --- a/app/src/main/java/com/drdisagree/iconify/weather/Config.kt +++ b/app/src/main/java/com/drdisagree/iconify/weather/Config.kt @@ -10,7 +10,6 @@ import com.drdisagree.iconify.BuildConfig import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_LOCATION import com.drdisagree.iconify.common.Preferences.WEATHER_ICON_PACK import com.drdisagree.iconify.common.Preferences.WEATHER_OWM_KEY -import com.drdisagree.iconify.common.Preferences.WEATHER_PROVIDER import com.drdisagree.iconify.common.Preferences.WEATHER_SWITCH import com.drdisagree.iconify.common.Preferences.WEATHER_UNITS import com.drdisagree.iconify.common.Preferences.WEATHER_UPDATE_INTERVAL From 20c6bac7fe2e6d748c8bd8a4ff33b9d378e6979e Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Wed, 14 Aug 2024 19:03:10 +0200 Subject: [PATCH 100/369] Fix Color Picker --- .../ui/fragments/XposedLockscreenWeather.kt | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt index 07ad5daff..d0a8a277d 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt @@ -7,12 +7,12 @@ import android.content.Context import android.content.DialogInterface import android.content.Intent import android.content.pm.PackageManager +import android.graphics.Color import android.graphics.drawable.Drawable import android.location.LocationManager import android.net.Uri import android.os.Bundle import android.provider.Settings -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -24,6 +24,7 @@ import androidx.recyclerview.widget.LinearLayoutManager import com.drdisagree.iconify.BuildConfig import com.drdisagree.iconify.Iconify.Companion.appContextLocale import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_CHARGING_COLOR import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_LOCATION import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_LEFT @@ -173,7 +174,14 @@ class XposedLockscreenWeather:BaseFragment(), binding.lockscreenWeatherCustomColor.visibility = if (isChecked) View.VISIBLE else View.GONE } - binding.lockscreenWeatherCustomColor.previewColor = getInt(WEATHER_TEXT_COLOR, 0xFFFFFFFF.toInt()) + binding.lockscreenWeatherCustomColor.previewColor = getInt(WEATHER_TEXT_COLOR, Color.WHITE) + binding.lockscreenWeatherCustomColor.setColorPickerListener( + activity = requireActivity(), + defaultColor = getInt(WEATHER_TEXT_COLOR, Color.WHITE), + showPresets = true, + showAlphaSlider = false, + showColorShades = true + ) binding.lockscreenWeatherCustomColor.setOnColorSelectedListener { color: Int -> putInt(WEATHER_TEXT_COLOR, color) } @@ -210,7 +218,6 @@ class XposedLockscreenWeather:BaseFragment(), object : IconsAdapter.OnItemClickListener { override fun onItemClick(view: View, position: Int) { val value = values[position] - Log.d("Weather", "Selected weather icon pack: $value") putString(WEATHER_ICON_PACK, value!!.replace(".debug", "")) binding.lockscreenWeatherIconPack.setSummary(entries[position]!!) forceRefreshWeatherSettings() @@ -383,7 +390,6 @@ class XposedLockscreenWeather:BaseFragment(), private fun queryAndUpdateWeather() { mWeatherClient.queryWeather() - Log.d("Weather", "Querying weather " + mWeatherClient.getWeatherInfo().toString()) if (mWeatherClient.getWeatherInfo() != null) { requireActivity().runOnUiThread { binding.lockscreenWeatherLastUpdate.setSummary(mWeatherClient.getWeatherInfo()!!.lastUpdateTime) @@ -425,7 +431,6 @@ class XposedLockscreenWeather:BaseFragment(), for (r in packageManager.queryIntentActivities(i, 0)) { val packageName = r.activityInfo.packageName if (packageName == DEFAULT_WEATHER_ICON_PACKAGE) { - Log.d("Weather", "Weather Icon Pack: " + r.activityInfo.name) values.add(0, r.activityInfo.name) drawables.add( 0, @@ -441,10 +446,8 @@ class XposedLockscreenWeather:BaseFragment(), ) } else { values.add(r.activityInfo.name) - Log.d("Weather", "Weather Icon Pack: " + r.activityInfo.name) val name = r.activityInfo.name.split("\\.".toRegex()).dropLastWhile { it.isEmpty() } .toTypedArray() - Log.d("Weather", "Weather Icon Pack: " + r.activityInfo.name) drawables.add( ResourcesCompat.getDrawable( resources, resources.getIdentifier( From 4e3b3a3b6b1a527f29c5cc3d180beeb80f68de2d Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Thu, 15 Aug 2024 00:36:18 +0600 Subject: [PATCH 101/369] SettingsLibUtils: Fix missing getColorAttrDefaultColor method --- .../xposed/modules/utils/SettingsLibUtils.kt | 149 +++++++++++------- 1 file changed, 96 insertions(+), 53 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/SettingsLibUtils.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/SettingsLibUtils.kt index 8935dd327..5b67b4019 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/SettingsLibUtils.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/SettingsLibUtils.kt @@ -3,10 +3,12 @@ package com.drdisagree.iconify.xposed.modules.utils import android.content.Context import android.content.res.ColorStateList import com.drdisagree.iconify.xposed.ModPack +import de.robv.android.xposed.XposedBridge.log import de.robv.android.xposed.XposedHelpers +import de.robv.android.xposed.XposedHelpers.callStaticMethod import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam -class SettingsLibUtils(context: Context?) : ModPack(context!!) { +class SettingsLibUtils(context: Context) : ModPack(context) { override fun updatePrefs(vararg key: String) {} @@ -21,84 +23,125 @@ class SettingsLibUtils(context: Context?) : ModPack(context!!) { } companion object { + private val TAG = SettingsLibUtils::class.java.simpleName private var UtilsClass: Class<*>? = null - fun getColorAttr(context: Context?, resID: Int): ColorStateList { - return getColorAttr(resID, context) + fun getColorAttr(resID: Int, context: Context): ColorStateList { + return getColorAttr( + context, + resID + ) } - fun getColorAttr(resID: Int, context: Context?): ColorStateList { - return if (UtilsClass == null) ColorStateList.valueOf(0) else try { - XposedHelpers.callStaticMethod( - UtilsClass, - "getColorAttr", - resID, - context - ) as ColorStateList - } catch (throwable: Throwable) { - XposedHelpers.callStaticMethod( - UtilsClass, - "getColorAttr", - context, - resID - ) as ColorStateList - } + fun getColorAttr(context: Context, resID: Int): ColorStateList { + return getColorStateListFromUtils( + "getColorAttr", + context, + resID + ) } - fun getColorAttrDefaultColor(resID: Int, context: Context?): Int { - return getColorAttrDefaultColor(context, resID) + fun getColorAttrDefaultColor(resID: Int, context: Context, defValue: Int = 0): Int { + return getColorFromUtils( + "getColorAttrDefaultColor", + context, + resID, + defValue + ) } - fun getColorAttrDefaultColor(context: Context?, resID: Int): Int { - return getColorAttrDefaultColor(resID, context, 0) + fun getColorAttrDefaultColor(context: Context, resID: Int, defValue: Int = 0): Int { + return getColorFromUtils( + "getColorAttrDefaultColor", + context, + resID, + defValue + ) } - fun getColorAttrDefaultColor(resID: Int, context: Context?, defValue: Int): Int { - return if (UtilsClass == null) 0 else try { - XposedHelpers.callStaticMethod( + fun getColorStateListDefaultColor(context: Context, resID: Int): Int { + return getColorStateListFromUtils( + "getColorStateListDefaultColor", + context, + resID + ).defaultColor + } + + private fun getColorFromUtils( + methodName: String, + context: Context, + resID: Int, + defValue: Int = 0 + ): Int { + if (UtilsClass == null) return defValue + + return try { + callStaticMethod( UtilsClass, - "getColorAttrDefaultColor", + methodName, resID, context ) as Int - } catch (throwable: Throwable) { + } catch (ignored: Throwable) { try { - XposedHelpers.callStaticMethod( + callStaticMethod( UtilsClass, - "getColorAttrDefaultColor", + methodName, context, resID ) as Int - } catch (throwable1: Throwable) { - XposedHelpers.callStaticMethod( - UtilsClass, - "getColorAttrDefaultColor", - context, - resID, - defValue - ) as Int + } catch (ignored: Throwable) { + try { + callStaticMethod( + UtilsClass, + methodName, + context, + resID, + defValue + ) as Int + } catch (ignored: Throwable) { + try { + callStaticMethod( + UtilsClass, + methodName, + resID, + defValue, + context + ) as Int + } catch (throwable: Throwable) { + log(TAG + throwable) + defValue + } + } } } } - fun getColorStateListDefaultColor(context: Context?, resID: Int): Int { - return if (UtilsClass == null) 0 else try { - (XposedHelpers.callStaticMethod( + private fun getColorStateListFromUtils( + methodName: String, + context: Context, + resID: Int + ): ColorStateList { + if (UtilsClass == null) return ColorStateList.valueOf(0) + + return try { + callStaticMethod( UtilsClass, - "getColorStateListDefaultColor", - context, - resID - ) as ColorStateList).defaultColor - } catch (throwable: Throwable) { + methodName, + resID, + context + ) as ColorStateList + } catch (ignored: Throwable) { try { - (XposedHelpers.callStaticMethod( + callStaticMethod( UtilsClass, - "getColorStateListDefaultColor", - resID, - context - ) as ColorStateList).defaultColor - } catch (throwable1: Throwable) { - 0 + methodName, + context, + resID + ) as ColorStateList + } catch (throwable: Throwable) { + log(TAG + throwable) + ColorStateList.valueOf(0) } } } From 889be95379b791cfea0cf5b50409607a7de492de Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Wed, 14 Aug 2024 21:05:07 +0200 Subject: [PATCH 102/369] Rename .java to .kt --- .../iconify/utils/{OmniJawsClient.java => OmniJawsClient.kt} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename app/src/main/java/com/drdisagree/iconify/utils/{OmniJawsClient.java => OmniJawsClient.kt} (100%) diff --git a/app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.java b/app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.kt similarity index 100% rename from app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.java rename to app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.kt From 2297c3e2d602efd5e07a749b02770dc0eaa9f35f Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Wed, 14 Aug 2024 21:05:08 +0200 Subject: [PATCH 103/369] OmniJawsClient: Kotlin --- .../iconify/utils/OmniJawsClient.kt | 586 +++++++++--------- 1 file changed, 288 insertions(+), 298 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.kt b/app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.kt index b2c6703a6..823f2ff4a 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.kt @@ -1,4 +1,21 @@ -package com.drdisagree.iconify.utils; +package com.drdisagree.iconify.utils + +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent +import android.content.IntentFilter +import android.content.res.Resources +import android.graphics.Color +import android.graphics.drawable.ColorDrawable +import android.graphics.drawable.Drawable +import android.net.Uri +import android.text.TextUtils +import android.util.Log +import com.drdisagree.iconify.BuildConfig +import com.drdisagree.iconify.weather.Config +import java.text.DecimalFormat +import java.text.SimpleDateFormat +import java.util.Date /* * Copyright (C) 2021 The OmniROM Project @@ -19,386 +36,359 @@ package com.drdisagree.iconify.utils; */ -import static com.drdisagree.iconify.xposed.HookRes.modRes; - -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.content.pm.PackageManager; -import android.content.res.Resources; -import android.database.Cursor; -import android.graphics.Color; -import android.graphics.drawable.ColorDrawable; -import android.graphics.drawable.Drawable; -import android.net.Uri; -import android.text.TextUtils; -import android.util.Log; - -import androidx.core.content.res.ResourcesCompat; - -import com.drdisagree.iconify.BuildConfig; -import com.drdisagree.iconify.xposed.HookRes; - -import java.text.DecimalFormat; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - - -public class OmniJawsClient { - private static final String TAG = "OmniJawsClient"; - private static final boolean DEBUG = BuildConfig.DEBUG; - public static final String SERVICE_PACKAGE = BuildConfig.APPLICATION_ID; - public static final Uri WEATHER_URI - = Uri.parse("content://com.drdisagree.iconify.weatherprovider/weather"); - public static final Uri SETTINGS_URI - = Uri.parse("content://com.drdisagree.iconify.weatherprovider/settings"); - public static final Uri CONTROL_URI - = Uri.parse("content://com.drdisagree.iconify.weatherprovider/control"); - - private static final String ICON_PACKAGE_DEFAULT = BuildConfig.APPLICATION_ID; - private static final String ICON_PREFIX_DEFAULT = "google"; - private static final String ICON_PREFIX_OUTLINE = "outline"; - private static final String EXTRA_ERROR = "error"; - public static final int EXTRA_ERROR_NETWORK = 0; // No Network - public static final int EXTRA_ERROR_LOCATION = 1; // No Location Found - public static final int EXTRA_ERROR_DISABLED = 2; // Disabled - public static final int EXTRA_ERROR_NO_PERMISSIONS = 3; // No Permissions - - public static final String[] WEATHER_PROJECTION = new String[]{ - "city", - "wind_speed", - "wind_direction", - "condition_code", - "temperature", - "humidity", - "condition", - "forecast_low", - "forecast_high", - "forecast_condition", - "forecast_condition_code", - "time_stamp", - "forecast_date", - "pin_wheel" - }; - - public static final String[] SETTINGS_PROJECTION = new String[] { - "enabled", - "units", - "provider", - "setup", - "icon_pack" - }; - - private static final String WEATHER_UPDATE = SERVICE_PACKAGE + ".WEATHER_UPDATE"; - private static final String WEATHER_ERROR = SERVICE_PACKAGE + ".WEATHER_ERROR"; - - private static final DecimalFormat sNoDigitsFormat = new DecimalFormat("0"); - - public static class WeatherInfo { - public String city; - public String windSpeed; - public String windDirection; - public int conditionCode; - public String temp; - public String humidity; - public String condition; - public Long timeStamp; - public List forecasts; - public String tempUnits; - public String windUnits; - public String provider; - public String pinWheel; - public String iconPack; - - public String toString() { - return city + ":" + new Date(timeStamp) + ": " + windSpeed + ":" + windDirection + ":" +conditionCode + ":" + temp + ":" + humidity + ":" + condition + ":" + tempUnits + ":" + windUnits + ": " + forecasts + ": " + iconPack; +class OmniJawsClient(private val mContext: Context) { + class WeatherInfo { + var city: String? = null + var windSpeed: String? = null + var windDirection: String? = null + var conditionCode: Int = 0 + var temp: String? = null + var humidity: String? = null + var condition: String? = null + var timeStamp: Long? = null + var forecasts: List? = null + var tempUnits: String? = null + var windUnits: String? = null + var provider: String? = null + var pinWheel: String? = null + var iconPack: String? = null + + override fun toString(): String { + return city + ":" + Date(timeStamp!!) + ": " + windSpeed + ":" + windDirection + ":" + conditionCode + ":" + temp + ":" + humidity + ":" + condition + ":" + tempUnits + ":" + windUnits + ": " + forecasts + ": " + iconPack } - public String getLastUpdateTime() { - SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); - return sdf.format(new Date(timeStamp)); - } + val lastUpdateTime: String + get() { + val sdf = SimpleDateFormat("HH:mm:ss") + return sdf.format(Date(timeStamp!!)) + } } - public static class DayForecast { - public String low; - public String high; - public int conditionCode; - public String condition; - public String date; + class DayForecast { + var low: String? = null + var high: String? = null + var conditionCode: Int = 0 + var condition: String? = null + var date: String? = null - public String toString() { - return "[" + low + ":" + high + ":" +conditionCode + ":" + condition + ":" + date + "]"; + override fun toString(): String { + return "[$low:$high:$conditionCode:$condition:$date]" } } - public interface OmniJawsObserver { - void weatherUpdated(); - void weatherError(int errorReason); - default void updateSettings() {}; + interface OmniJawsObserver { + fun weatherUpdated() + fun weatherError(errorReason: Int) + fun updateSettings() {} } - private class WeatherUpdateReceiver extends BroadcastReceiver { - @Override - public void onReceive(final Context context, Intent intent) { - String action = intent.getAction(); - for (OmniJawsObserver observer : mObserver) { - if (action.equals(WEATHER_UPDATE)) { - observer.weatherUpdated(); + private inner class WeatherUpdateReceiver : BroadcastReceiver() { + override fun onReceive(context: Context, intent: Intent) { + val action = intent.action + for (observer in mObserver) { + if (action == WEATHER_UPDATE) { + observer.weatherUpdated() } - if (action.equals(WEATHER_ERROR)) { - int errorReason = intent.getIntExtra(EXTRA_ERROR, 0); - observer.weatherError(errorReason); + if (action == WEATHER_ERROR) { + val errorReason = intent.getIntExtra(EXTRA_ERROR, 0) + observer.weatherError(errorReason) } } } } - private Context mContext; - private WeatherInfo mCachedInfo; - private Resources mRes; - private String mPackageName; - private String mIconPrefix; - private String mGoogleImages = "google_%d"; - private String mSettingIconPackage; - private boolean mMetric; - private List mObserver; - private WeatherUpdateReceiver mReceiver; - private boolean mXposed = false; - - public OmniJawsClient(Context context, boolean xposed) { - mContext = context; - mXposed = xposed; - mObserver = new ArrayList<>(); - } - - public WeatherInfo getWeatherInfo() { - return mCachedInfo; - } - - private static String getFormattedValue(float value) { - if (Float.isNaN(value)) { - return "-"; - } - String formatted = sNoDigitsFormat.format(value); - if (formatted.equals("-0")) { - formatted = "0"; - } - return formatted; - } - - public void queryWeather() { + var weatherInfo: WeatherInfo? = null + private set + private var mRes: Resources? = null + private var mPackageName: String? = null + private var mIconPrefix: String? = null + private var mSettingIconPackage: String? = null + private var mMetric = false + private val mObserver: MutableList = + ArrayList() + private var mReceiver: WeatherUpdateReceiver? = null + + fun queryWeather() { try { - mCachedInfo = null; - Cursor c = mContext.getContentResolver().query(WEATHER_URI, WEATHER_PROJECTION, - null, null, null); + weatherInfo = null + var c = mContext.contentResolver.query( + WEATHER_URI, WEATHER_PROJECTION, + null, null, null + ) if (c != null) { try { - int count = c.getCount(); + val count = c.count if (count > 0) { - mCachedInfo = new WeatherInfo(); - List forecastList = new ArrayList(); - int i = 0; - for (i = 0; i < count; i++) { - c.moveToPosition(i); + weatherInfo = WeatherInfo() + val forecastList: MutableList = ArrayList() + var i = 0 + i = 0 + while (i < count) { + c.moveToPosition(i) if (i == 0) { - mCachedInfo.city = c.getString(0); - mCachedInfo.windSpeed = getFormattedValue(c.getFloat(1)); - mCachedInfo.windDirection = String.valueOf(c.getInt(2)) + "\u00b0"; - mCachedInfo.conditionCode = c.getInt(3); - mCachedInfo.temp = getFormattedValue(c.getFloat(4)); - mCachedInfo.humidity = c.getString(5); - mCachedInfo.condition = c.getString(6); - mCachedInfo.timeStamp = Long.valueOf(c.getString(11)); - mCachedInfo.pinWheel = c.getString(13); + weatherInfo!!.city = c.getString(0) + weatherInfo!!.windSpeed = getFormattedValue(c.getFloat(1)) + weatherInfo!!.windDirection = c.getInt(2).toString() + "\u00b0" + weatherInfo!!.conditionCode = c.getInt(3) + weatherInfo!!.temp = getFormattedValue(c.getFloat(4)) + weatherInfo!!.humidity = c.getString(5) + weatherInfo!!.condition = c.getString(6) + weatherInfo!!.timeStamp = c.getString(11).toLong() + weatherInfo!!.pinWheel = c.getString(13) } else { - DayForecast day = new DayForecast(); - day.low = getFormattedValue(c.getFloat(7)); - day.high = getFormattedValue(c.getFloat(8)); - day.condition = c.getString(9); - day.conditionCode = c.getInt(10); - day.date = c.getString(12); - forecastList.add(day); + val day = DayForecast() + day.low = getFormattedValue(c.getFloat(7)) + day.high = getFormattedValue(c.getFloat(8)) + day.condition = c.getString(9) + day.conditionCode = c.getInt(10) + day.date = c.getString(12) + forecastList.add(day) } + i++ } - mCachedInfo.forecasts = forecastList; + weatherInfo!!.forecasts = forecastList } } finally { - c.close(); + c.close() } } - c = mContext.getContentResolver().query(SETTINGS_URI, SETTINGS_PROJECTION, - null, null, null); + c = mContext.contentResolver.query( + SETTINGS_URI, SETTINGS_PROJECTION, + null, null, null + ) if (c != null) { try { - int count = c.getCount(); + val count = c.count if (count == 1) { - c.moveToPosition(0); - mMetric = c.getInt(1) == 0; - if (mCachedInfo != null) { - mCachedInfo.tempUnits = getTemperatureUnit(); - mCachedInfo.windUnits = getWindUnit(); - mCachedInfo.provider = c.getString(2); - mCachedInfo.iconPack = c.getString(4); + c.moveToPosition(0) + mMetric = c.getInt(1) == 0 + if (weatherInfo != null) { + weatherInfo!!.tempUnits = temperatureUnit + weatherInfo!!.windUnits = windUnit + weatherInfo!!.provider = c.getString(2) + weatherInfo!!.iconPack = c.getString(4) } } } finally { - c.close(); + c.close() } } - if (DEBUG) Log.d(TAG, "queryWeather " + mCachedInfo); - updateSettings(); - } catch (Exception e) { - Log.e(TAG, "queryWeather", e); + if (DEBUG) Log.d(TAG, "queryWeather " + weatherInfo) + updateSettings() + } catch (e: Exception) { + Log.e(TAG, "queryWeather", e) } } - private void loadDefaultIconsPackage() { - mPackageName = ICON_PACKAGE_DEFAULT; - mIconPrefix = ICON_PREFIX_DEFAULT; - mSettingIconPackage = mPackageName + "." + mIconPrefix; - if (DEBUG) Log.d(TAG, "Load default icon pack " + mSettingIconPackage + " " + mPackageName + " " + mIconPrefix); + private fun loadDefaultIconsPackage() { + mPackageName = ICON_PACKAGE_DEFAULT + mIconPrefix = ICON_PREFIX_DEFAULT + mSettingIconPackage = "$mPackageName.$mIconPrefix" + if (DEBUG) Log.d( + TAG, + "Load default icon pack $mSettingIconPackage $mPackageName $mIconPrefix" + ) try { - if (!mXposed) { - PackageManager packageManager = mContext.getPackageManager(); - mRes = packageManager.getResourcesForApplication(mPackageName); - } else { - mRes = modRes; - } - } catch (Exception e) { - Log.e(TAG, "loadDefaultIconsPackage", e); - mRes = null; + val packageManager = mContext.packageManager + mRes = packageManager.getResourcesForApplication(mPackageName!!) + } catch (e: Exception) { + Log.d(TAG, "loadDefaultIconsPackage", e) + mRes = null } if (mRes == null) { - Log.e(TAG, "mRes null"); + Log.w(TAG, "No default package found") } } - private Drawable getDefaultConditionImage() { - String packageName = ICON_PACKAGE_DEFAULT; - String iconPrefix = ICON_PREFIX_DEFAULT; + private val defaultConditionImage: Drawable + get() { + val packageName = ICON_PACKAGE_DEFAULT + val iconPrefix = ICON_PREFIX_DEFAULT - try { - PackageManager packageManager = mContext.getPackageManager(); - Resources res = packageManager.getResourcesForApplication(packageName); - if (res != null) { - int resId = res.getIdentifier(iconPrefix + "_na", "drawable", packageName); - Drawable d = ResourcesCompat.getDrawable(mRes, resId, mContext.getTheme()); - if (d != null) { - return d; - } - } else { - int resId = modRes.getIdentifier(iconPrefix + "_na", "drawable", packageName); - Drawable d = ResourcesCompat.getDrawable(modRes, resId, mContext.getTheme()); - if (d != null) { - return d; + try { + val packageManager = mContext.packageManager + val res = packageManager.getResourcesForApplication(packageName) + if (res != null) { + val resId = res.getIdentifier(iconPrefix + "_na", "drawable", packageName) + val d = res.getDrawable(resId) + if (d != null) { + return d + } } + } catch (e: Exception) { + Log.e(TAG, "defaultConditionImage", e) } - } catch (Exception ignored) { + // absolute absolute fallback + Log.w(TAG, "No default package found") + return ColorDrawable(Color.RED) } - // absolute absolute fallback - Log.w(TAG, "No default package found"); - return new ColorDrawable(Color.RED); - } - private void loadCustomIconPackage() { - if (DEBUG) Log.d(TAG, "Load custom icon pack " + mSettingIconPackage); - int idx = mSettingIconPackage.lastIndexOf("."); - mPackageName = mSettingIconPackage.substring(0, idx); - mIconPrefix = mSettingIconPackage.substring(idx + 1); - if (DEBUG) Log.d(TAG, "Load custom icon pack " + mPackageName + " " + mIconPrefix); + private fun loadCustomIconPackage() { + if (DEBUG) Log.d( + TAG, + "Load custom icon pack $mSettingIconPackage" + ) + val idx = mSettingIconPackage!!.lastIndexOf(".") + mPackageName = mSettingIconPackage!!.substring(0, idx) + mIconPrefix = mSettingIconPackage!!.substring(idx + 1) + if (DEBUG) Log.d( + TAG, + "Load custom icon pack $mPackageName $mIconPrefix" + ) try { - if (!mXposed) { - PackageManager packageManager = mContext.getPackageManager(); - mRes = packageManager.getResourcesForApplication(mPackageName); - } else { - mRes = modRes; - } - - } catch (Exception e) { - mRes = null; + val packageManager = mContext.packageManager + mRes = packageManager.getResourcesForApplication(mPackageName!!) + } catch (e: Exception) { + Log.d(TAG, "loadCustomIconPackage", e) + mRes = null } if (mRes == null) { - Log.w(TAG, "Icon pack loading failed - loading default"); - loadDefaultIconsPackage(); + Log.w(TAG, "Icon pack loading failed - loading default") + loadDefaultIconsPackage() } } - public Drawable getWeatherConditionImage(int conditionCode) { + fun getWeatherConditionImage(conditionCode: Int): Drawable { try { - int resId = mRes.getIdentifier(mIconPrefix + "_" + conditionCode, "drawable", mPackageName); - Drawable d = ResourcesCompat.getDrawable(mRes, resId, mContext.getTheme()); + var resId = + mRes!!.getIdentifier(mIconPrefix + "_" + conditionCode, "drawable", mPackageName) + var d = mRes!!.getDrawable(resId) if (d != null) { - return d; + return d } - Log.w(TAG, "Failed to get condition image for " + conditionCode + " use default"); - - resId = mRes.getIdentifier(String.format(mGoogleImages, "na"), "drawable", mPackageName); - d = ResourcesCompat.getDrawable(mRes, resId, mContext.getTheme()); + Log.w( + TAG, + "Failed to get condition image for $conditionCode use default" + ) + resId = mRes!!.getIdentifier(mIconPrefix + "_na", "drawable", mPackageName) + d = mRes!!.getDrawable(resId) if (d != null) { - return d; + return d } - } catch(Exception e) { - Log.e(TAG, "getWeatherConditionImage", e); + } catch (e: Exception) { + Log.e(TAG, "getWeatherConditionImage", e) } - Log.w(TAG, "Failed to get condition image for " + conditionCode); - return getDefaultConditionImage(); + Log.w( + TAG, + "Failed to get condition image for $conditionCode" + ) + return defaultConditionImage } - public boolean isOmniJawsEnabled() { - return true; - } + val isOmniJawsEnabled: Boolean + get() = Config.isEnabled(mContext) - private String getTemperatureUnit() { - return "\u00b0" + (mMetric ? "C" : "F"); - } + private val temperatureUnit: String + get() = "\u00b0" + (if (mMetric) "C" else "F") - private String getWindUnit() { - return mMetric ? "km/h":"mph"; - } + private val windUnit: String + get() = if (mMetric) "km/h" else "mph" - private void updateSettings() { - final String iconPack = mCachedInfo != null ? mCachedInfo.iconPack : null; + private fun updateSettings() { + val iconPack = if (weatherInfo != null) weatherInfo!!.iconPack else null if (TextUtils.isEmpty(iconPack)) { - loadDefaultIconsPackage(); - } else if (mSettingIconPackage == null || !iconPack.equals(mSettingIconPackage)) { - mSettingIconPackage = iconPack; - loadCustomIconPackage(); + Log.d(TAG, "updateSettings No icon pack set, using default") + loadDefaultIconsPackage() + } else if (iconPack != mSettingIconPackage) { + Log.d( + TAG, + "updateSettings New icon pack set, loading $iconPack" + ) + mSettingIconPackage = iconPack + loadCustomIconPackage() } } - public void addObserver(OmniJawsObserver observer) { + fun addObserver(observer: OmniJawsObserver) { if (mObserver.isEmpty()) { if (mReceiver != null) { try { - mContext.unregisterReceiver(mReceiver); - } catch (Exception ignored) { + mContext.unregisterReceiver(mReceiver) + } catch (ignored: Exception) { } } - mReceiver = new WeatherUpdateReceiver(); - IntentFilter filter = new IntentFilter(); - filter.addAction(WEATHER_UPDATE); - filter.addAction(WEATHER_ERROR); - if (DEBUG) Log.d(TAG, "registerReceiver"); - mContext.registerReceiver(mReceiver, filter, Context.RECEIVER_EXPORTED); + mReceiver = WeatherUpdateReceiver() + val filter = IntentFilter() + filter.addAction(WEATHER_UPDATE) + filter.addAction(WEATHER_ERROR) + if (DEBUG) Log.d(TAG, "registerReceiver") + mContext.registerReceiver(mReceiver, filter, Context.RECEIVER_EXPORTED) } - mObserver.add(observer); + mObserver.add(observer) } - public void removeObserver(OmniJawsObserver observer) { - mObserver.remove(observer); + fun removeObserver(observer: OmniJawsObserver) { + mObserver.remove(observer) if (mObserver.isEmpty() && mReceiver != null) { try { - if (DEBUG) Log.d(TAG, "unregisterReceiver"); - mContext.unregisterReceiver(mReceiver); - } catch (Exception ignored) { + if (DEBUG) Log.d(TAG, "unregisterReceiver") + mContext.unregisterReceiver(mReceiver) + } catch (ignored: Exception) { } - mReceiver = null; + mReceiver = null } } -} + companion object { + private const val TAG = "OmniJawsClient" + private val DEBUG = BuildConfig.DEBUG + const val SERVICE_PACKAGE: String = BuildConfig.APPLICATION_ID + val WEATHER_URI + : Uri = Uri.parse("content://com.drdisagree.iconify.weatherprovider/weather") + val SETTINGS_URI + : Uri = Uri.parse("content://com.drdisagree.iconify.weatherprovider/settings") + val CONTROL_URI + : Uri = Uri.parse("content://com.drdisagree.iconify.weatherprovider/control") + + private const val ICON_PACKAGE_DEFAULT = BuildConfig.APPLICATION_ID + private const val ICON_PREFIX_DEFAULT = "google" + private const val ICON_PREFIX_OUTLINE = "outline" + private const val EXTRA_ERROR = "error" + const val EXTRA_ERROR_NETWORK: Int = 0 // No Network + const val EXTRA_ERROR_LOCATION: Int = 1 // No Location Found + const val EXTRA_ERROR_DISABLED: Int = 2 // Disabled + const val EXTRA_ERROR_NO_PERMISSIONS: Int = 3 // No Permissions + + val WEATHER_PROJECTION: Array = arrayOf( + "city", + "wind_speed", + "wind_direction", + "condition_code", + "temperature", + "humidity", + "condition", + "forecast_low", + "forecast_high", + "forecast_condition", + "forecast_condition_code", + "time_stamp", + "forecast_date", + "pin_wheel" + ) + + val SETTINGS_PROJECTION: Array = arrayOf( + "enabled", + "units", + "provider", + "setup", + "icon_pack" + ) + + private const val WEATHER_UPDATE = SERVICE_PACKAGE + ".WEATHER_UPDATE" + private const val WEATHER_ERROR = SERVICE_PACKAGE + ".WEATHER_ERROR" + + private val sNoDigitsFormat = DecimalFormat("0") + + private fun getFormattedValue(value: Float): String { + if (java.lang.Float.isNaN(value)) { + return "-" + } + var formatted = sNoDigitsFormat.format(value.toDouble()) + if (formatted == "-0") { + formatted = "0" + } + return formatted + } + } +} \ No newline at end of file From 6aa4b1b169bf5d1576a6c10963a1a3b11e63fe3b Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Wed, 14 Aug 2024 21:05:55 +0200 Subject: [PATCH 104/369] default icon pack as APPLICATION_ID --- app/src/main/java/com/drdisagree/iconify/weather/Config.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/drdisagree/iconify/weather/Config.kt b/app/src/main/java/com/drdisagree/iconify/weather/Config.kt index bb1cfd62d..ca19e2559 100644 --- a/app/src/main/java/com/drdisagree/iconify/weather/Config.kt +++ b/app/src/main/java/com/drdisagree/iconify/weather/Config.kt @@ -127,7 +127,7 @@ object Config { } fun getIconPack(context: Context): String? { - return getPrefs(context).getString(WEATHER_ICON_PACK, BuildConfig.APPLICATION_ID.replace(".debug", "") + ".google") + return getPrefs(context).getString(WEATHER_ICON_PACK, BuildConfig.APPLICATION_ID + ".google") } fun setUpdateError(context: Context, value: Boolean) { From 41a7a001028e083f421e7f274776948e288e1c76 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Wed, 14 Aug 2024 21:06:23 +0200 Subject: [PATCH 105/369] Kotlin Companion Object from OmniJawsClient --- .../ui/fragments/XposedLockscreenWeather.kt | 16 +++++++--------- .../drdisagree/iconify/weather/WeatherWork.kt | 8 ++++---- .../iconify/xposed/modules/LockscreenWeather.kt | 8 +++++++- .../iconify/xposed/views/CurrentWeatherView.kt | 4 ++-- 4 files changed, 20 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt index d0a8a277d..85a07cf45 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt @@ -24,7 +24,6 @@ import androidx.recyclerview.widget.LinearLayoutManager import com.drdisagree.iconify.BuildConfig import com.drdisagree.iconify.Iconify.Companion.appContextLocale import com.drdisagree.iconify.R -import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_CHARGING_COLOR import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_LOCATION import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_LEFT @@ -88,7 +87,7 @@ class XposedLockscreenWeather:BaseFragment(), R.string.activity_title_lockscreen_weather ) - mWeatherClient = OmniJawsClient(requireContext(), false) + mWeatherClient = OmniJawsClient(requireContext()) return view } @@ -112,7 +111,6 @@ class XposedLockscreenWeather:BaseFragment(), putBoolean(WEATHER_SWITCH, isChecked) Config.setEnabled(requireContext(), isChecked, WEATHER_SWITCH) -// updateEnabled(isChecked) if (!hasPermissions()) { showPermissionDialog() @@ -218,13 +216,13 @@ class XposedLockscreenWeather:BaseFragment(), object : IconsAdapter.OnItemClickListener { override fun onItemClick(view: View, position: Int) { val value = values[position] - putString(WEATHER_ICON_PACK, value!!.replace(".debug", "")) + putString(WEATHER_ICON_PACK, value!!) binding.lockscreenWeatherIconPack.setSummary(entries[position]!!) forceRefreshWeatherSettings() } }) mAdapter.setDrawables(drawables.filterNotNull().toTypedArray()) - val summary = entries[values.indexOf(currentIconPack)] + val summary = if (values.contains(currentIconPack)) entries[values.indexOf(currentIconPack)] else entries[0] binding.lockscreenWeatherIconPack.setSummary(summary!!) binding.lockscreenWeatherIconPack.setLayoutManager(LinearLayoutManager(requireContext())) binding.lockscreenWeatherIconPack.setAdapter(mAdapter) @@ -390,9 +388,9 @@ class XposedLockscreenWeather:BaseFragment(), private fun queryAndUpdateWeather() { mWeatherClient.queryWeather() - if (mWeatherClient.getWeatherInfo() != null) { + if (mWeatherClient.weatherInfo != null) { requireActivity().runOnUiThread { - binding.lockscreenWeatherLastUpdate.setSummary(mWeatherClient.getWeatherInfo()!!.lastUpdateTime) + binding.lockscreenWeatherLastUpdate.setSummary(mWeatherClient.weatherInfo!!.lastUpdateTime) } } } @@ -429,7 +427,7 @@ class XposedLockscreenWeather:BaseFragment(), val packageManager = requireContext().packageManager i.setAction(BuildConfig.APPLICATION_ID + ".WeatherIconPack") for (r in packageManager.queryIntentActivities(i, 0)) { - val packageName = r.activityInfo.packageName + val packageName = r.activityInfo.applicationInfo.packageName if (packageName == DEFAULT_WEATHER_ICON_PACKAGE) { values.add(0, r.activityInfo.name) drawables.add( @@ -445,7 +443,7 @@ class XposedLockscreenWeather:BaseFragment(), ) ) } else { - values.add(r.activityInfo.name) + values.add(packageName + "." + r.activityInfo.name.split(".").last()) val name = r.activityInfo.name.split("\\.".toRegex()).dropLastWhile { it.isEmpty() } .toTypedArray() drawables.add( diff --git a/app/src/main/java/com/drdisagree/iconify/weather/WeatherWork.kt b/app/src/main/java/com/drdisagree/iconify/weather/WeatherWork.kt index c1ba90f07..aa973ef5d 100644 --- a/app/src/main/java/com/drdisagree/iconify/weather/WeatherWork.kt +++ b/app/src/main/java/com/drdisagree/iconify/weather/WeatherWork.kt @@ -14,10 +14,10 @@ import androidx.concurrent.futures.CallbackToFutureAdapter import androidx.work.ListenableWorker import androidx.work.WorkerParameters import com.drdisagree.iconify.BuildConfig -import com.drdisagree.iconify.utils.OmniJawsClient.EXTRA_ERROR_DISABLED -import com.drdisagree.iconify.utils.OmniJawsClient.EXTRA_ERROR_LOCATION -import com.drdisagree.iconify.utils.OmniJawsClient.EXTRA_ERROR_NETWORK -import com.drdisagree.iconify.utils.OmniJawsClient.EXTRA_ERROR_NO_PERMISSIONS +import com.drdisagree.iconify.utils.OmniJawsClient.Companion.EXTRA_ERROR_DISABLED +import com.drdisagree.iconify.utils.OmniJawsClient.Companion.EXTRA_ERROR_NETWORK +import com.drdisagree.iconify.utils.OmniJawsClient.Companion.EXTRA_ERROR_LOCATION +import com.drdisagree.iconify.utils.OmniJawsClient.Companion.EXTRA_ERROR_NO_PERMISSIONS import com.drdisagree.iconify.weather.Config.getLocationLat import com.drdisagree.iconify.weather.Config.getLocationLon import com.drdisagree.iconify.weather.Config.getProvider diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt index b819df344..d9fb23eb6 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt @@ -5,6 +5,7 @@ import android.graphics.Color import android.view.View import android.view.ViewGroup import android.widget.LinearLayout +import com.drdisagree.iconify.common.Preferences.ICONIFY_LOCKSCREEN_CLOCK_TAG import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_LEFT import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_TOP @@ -126,7 +127,12 @@ class LockscreenWeather(context: Context?) : ModPack(context!!) { } catch (ignored: Throwable) { } mWeatherContainer.addView(currentWeatherView) - mStatusViewContainer!!.addView(mWeatherContainer) + val clockView = mStatusViewContainer!!.findViewWithTag(ICONIFY_LOCKSCREEN_CLOCK_TAG) + if (clockView == null) { + mStatusViewContainer!!.addView(mWeatherContainer) + } else { + mStatusViewContainer!!.addView(mWeatherContainer, mStatusViewContainer!!.indexOfChild(clockView)) + } refreshWeatherView(currentWeatherView) updateMargins() } catch (ignored: Throwable) { diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/views/CurrentWeatherView.kt b/app/src/main/java/com/drdisagree/iconify/xposed/views/CurrentWeatherView.kt index 30a1aded1..23e20fa69 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/views/CurrentWeatherView.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/views/CurrentWeatherView.kt @@ -65,7 +65,7 @@ class CurrentWeatherView(context: Context, name: String) : LinearLayout(context) ) } catch (ignored: PackageManager.NameNotFoundException) { } - mWeatherClient = OmniJawsClient(appContext, true) + mWeatherClient = OmniJawsClient(mContext) inflateView() @@ -190,7 +190,7 @@ class CurrentWeatherView(context: Context, name: String) : LinearLayout(context) return } mWeatherClient.queryWeather() - mWeatherInfo = mWeatherClient.getWeatherInfo() + mWeatherInfo = mWeatherClient.weatherInfo if (mWeatherInfo != null) { var formattedCondition: String = mWeatherInfo!!.condition.toString() if (formattedCondition.lowercase(Locale.getDefault()).contains("clouds")) { From 3c2f1910df14d438995c059e39e7abd0d2211ab6 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Thu, 15 Aug 2024 01:10:40 +0600 Subject: [PATCH 106/369] QS Light Theme: Fix footer actions background color --- .../xposed/modules/themes/QSLightThemeA14.kt | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA14.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA14.kt index 4231d7a96..e9a3ace83 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA14.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA14.kt @@ -47,7 +47,7 @@ class QSLightThemeA14(context: Context?) : ModPack(context!!) { private var mBehindColors: Any? = null private var isDark: Boolean - private var colorInactive: Int = -1 + private var colorInactive: Int? = null private var unlockedScrimState: Any? = null private var qsTextAlwaysWhite = false private var qsTextFollowAccent = false @@ -176,23 +176,23 @@ class QSLightThemeA14(context: Context?) : ModPack(context!!) { // Background color of android 14's charging chip. Fix for light QS theme situation val batteryStatusChipColorHook: XC_MethodHook = object : XC_MethodHook() { override fun afterHookedMethod(param: MethodHookParam) { - if (lightQSHeaderEnabled && !isDark) { - (getObjectField(param.thisObject, "roundedContainer") as LinearLayout) - .background.setTint(colorInactive) + if (isDark || !lightQSHeaderEnabled) return - val colorPrimary: Int = - getColorAttrDefaultColor(mContext, android.R.attr.textColorPrimaryInverse) - val textColorSecondary: Int = - getColorAttrDefaultColor(mContext, android.R.attr.textColorSecondaryInverse) + (getObjectField(param.thisObject, "roundedContainer") as LinearLayout) + .background.setTint(colorInactive!!) - callMethod( - getObjectField(param.thisObject, "batteryMeterView"), - "updateColors", - colorPrimary, - textColorSecondary, - colorPrimary - ) - } + val colorPrimary: Int = + getColorAttrDefaultColor(mContext, android.R.attr.textColorPrimaryInverse) + val textColorSecondary: Int = + getColorAttrDefaultColor(mContext, android.R.attr.textColorSecondaryInverse) + + callMethod( + getObjectField(param.thisObject, "batteryMeterView"), + "updateColors", + colorPrimary, + textColorSecondary, + colorPrimary + ) } } @@ -506,7 +506,7 @@ class QSLightThemeA14(context: Context?) : ModPack(context!!) { ) { try { (param.args[0] as ImageView) - .setImageTintList(ColorStateList.valueOf(colorInactive)) + .setImageTintList(ColorStateList.valueOf(colorInactive!!)) } catch (throwable: Throwable) { log(TAG + throwable) } @@ -733,7 +733,7 @@ class QSLightThemeA14(context: Context?) : ModPack(context!!) { try { when (mContext.resources.getResourceName(code).split("/")[1]) { "underSurface", "onShadeActive", "shadeInactive" -> { - result = colorInactive // button backgrounds + result = colorInactive!! // button backgrounds } "onShadeInactiveVariant" -> { From fdac656b5056a7574db5137e9a8a27405a47d12e Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Wed, 14 Aug 2024 21:28:16 +0200 Subject: [PATCH 107/369] LockscreenWeather: remove switch for custom margin, make default margins enabled & added bottom margin --- .../drdisagree/iconify/common/Preferences.kt | 2 +- .../ui/fragments/XposedLockscreenWeather.kt | 25 ++++------- .../xposed/modules/LockscreenWeather.kt | 42 +++++++------------ .../fragment_xposed_lockscreen_weather.xml | 25 ++++++----- app/src/main/res/values/strings.xml | 1 + 5 files changed, 40 insertions(+), 55 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt index 60a416af4..85a959e26 100644 --- a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt +++ b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt @@ -261,9 +261,9 @@ object Preferences { const val WEATHER_OWM_KEY: String = "owm_key" const val WEATHER_UNITS: String = "weather_units" const val WEATHER_CUSTOM_LOCATION: String = "weather_custom_location_switch" - const val WEATHER_CUSTOM_MARGINS: String = "weather_custom_margins" const val WEATHER_CUSTOM_MARGINS_TOP: String = "weather_custom_margins_top" const val WEATHER_CUSTOM_MARGINS_LEFT: String = "weather_custom_margins_left" + const val WEATHER_CUSTOM_MARGINS_BOTTOM: String = "weather_custom_margins_bottom" const val WEATHER_STYLE: String = "weather_style" // Settings diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt index 85a07cf45..7c727a666 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt @@ -25,7 +25,7 @@ import com.drdisagree.iconify.BuildConfig import com.drdisagree.iconify.Iconify.Companion.appContextLocale import com.drdisagree.iconify.R import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_LOCATION -import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS +import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_BOTTOM import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_LEFT import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_TOP import com.drdisagree.iconify.common.Preferences.WEATHER_ICON_PACK @@ -227,28 +227,21 @@ class XposedLockscreenWeather:BaseFragment(), binding.lockscreenWeatherIconPack.setLayoutManager(LinearLayoutManager(requireContext())) binding.lockscreenWeatherIconPack.setAdapter(mAdapter) - binding.lockscreenWeatherCustomMargins.isSwitchChecked = getBoolean(WEATHER_CUSTOM_MARGINS, false) - binding.lockscreenWeatherCustomMargins.setSwitchChangeListener{ _: CompoundButton?, isChecked: Boolean -> - putBoolean(WEATHER_CUSTOM_MARGINS, isChecked) - if (isChecked) { - binding.lockscreenWeatherMarginTop.visibility = View.VISIBLE - binding.lockscreenWeatherMarginLeft.visibility = View.VISIBLE - } else { - binding.lockscreenWeatherMarginTop.visibility = View.GONE - binding.lockscreenWeatherMarginLeft.visibility = View.GONE - } - } - - binding.lockscreenWeatherMarginTop.sliderValue = getInt(WEATHER_CUSTOM_MARGINS_TOP, 0) + binding.lockscreenWeatherMarginTop.sliderValue = getInt(WEATHER_CUSTOM_MARGINS_TOP, 20) binding.lockscreenWeatherMarginTop.setOnSliderChangeListener{ _: Slider?, value: Float, _: Boolean -> putInt(WEATHER_CUSTOM_MARGINS_TOP, value.toInt()) } - binding.lockscreenWeatherMarginLeft.sliderValue = getInt(WEATHER_CUSTOM_MARGINS_LEFT, 0) + binding.lockscreenWeatherMarginLeft.sliderValue = getInt(WEATHER_CUSTOM_MARGINS_LEFT, 20) binding.lockscreenWeatherMarginLeft.setOnSliderChangeListener{ _: Slider?, value: Float, _: Boolean -> putInt(WEATHER_CUSTOM_MARGINS_LEFT, value.toInt()) } + binding.lockscreenWeatherMarginBottom.sliderValue = getInt(WEATHER_CUSTOM_MARGINS_BOTTOM, 20) + binding.lockscreenWeatherMarginBottom.setOnSliderChangeListener{ _: Slider?, value: Float, _: Boolean -> + putInt(WEATHER_CUSTOM_MARGINS_BOTTOM, value.toInt()) + } + binding.lockscreenWeatherBg.setSelectedIndex(getInt(WEATHER_STYLE, 0)) binding.lockscreenWeatherBg.setOnItemSelectedListener{ putInt(WEATHER_STYLE, it) @@ -479,8 +472,6 @@ class XposedLockscreenWeather:BaseFragment(), binding.lockscreenWeatherCustomColor.visibility = if (getBoolean(WEATHER_TEXT_COLOR_SWITCH, false)) View.VISIBLE else View.GONE binding.lockscreenWeatherCustomLocationMenu.isEnabled = getBoolean(WEATHER_CUSTOM_LOCATION, false) - binding.lockscreenWeatherMarginTop.visibility = if (getBoolean(WEATHER_CUSTOM_MARGINS, false)) View.VISIBLE else View.GONE - binding.lockscreenWeatherMarginLeft.visibility = if (getBoolean(WEATHER_CUSTOM_MARGINS, false)) View.VISIBLE else View.GONE } diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt index d9fb23eb6..24797c58e 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt @@ -6,7 +6,7 @@ import android.view.View import android.view.ViewGroup import android.widget.LinearLayout import com.drdisagree.iconify.common.Preferences.ICONIFY_LOCKSCREEN_CLOCK_TAG -import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS +import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_BOTTOM import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_LEFT import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_TOP import com.drdisagree.iconify.common.Preferences.WEATHER_ICON_SIZE @@ -38,12 +38,11 @@ class LockscreenWeather(context: Context?) : ModPack(context!!) { private var weatherShowWind = false private var weatherCustomColor = false private var weatherColor = Color.WHITE - private var weatherStartPadding = 0 private var weatherTextSize: Int = 16 private var weatherImageSize: Int = 18 - private var mCustomMargins = false - private var mLeftMargin = 0 + private var mLeftMargin: Int = 0 private var mTopMargin: Int = 0 + private var mBottomMargin: Int = 0 private var mWeatherBackground = 0 private lateinit var mWeatherContainer: LinearLayout @@ -62,9 +61,9 @@ class LockscreenWeather(context: Context?) : ModPack(context!!) { weatherColor = Xprefs!!.getInt(WEATHER_TEXT_COLOR, Color.WHITE) weatherTextSize = Xprefs!!.getInt(WEATHER_TEXT_SIZE, 16) weatherImageSize = Xprefs!!.getInt(WEATHER_ICON_SIZE, 18) - mCustomMargins = Xprefs!!.getBoolean(WEATHER_CUSTOM_MARGINS, false) - mLeftMargin = Xprefs!!.getInt(WEATHER_CUSTOM_MARGINS_LEFT, 0) - mTopMargin = Xprefs!!.getInt(WEATHER_CUSTOM_MARGINS_TOP, 0) + mLeftMargin = Xprefs!!.getInt(WEATHER_CUSTOM_MARGINS_LEFT, 20) + mTopMargin = Xprefs!!.getInt(WEATHER_CUSTOM_MARGINS_TOP, 20) + mBottomMargin = Xprefs!!.getInt(WEATHER_CUSTOM_MARGINS_BOTTOM, 20) mWeatherBackground = Xprefs!!.getInt(WEATHER_STYLE, 0) if (key.isNotEmpty() && @@ -77,7 +76,7 @@ class LockscreenWeather(context: Context?) : ModPack(context!!) { key[0] == (WEATHER_TEXT_SIZE) || key[0] == (WEATHER_ICON_SIZE) || key[0] == (WEATHER_STYLE) || - key[0] == (WEATHER_CUSTOM_MARGINS) || + key[0] == (WEATHER_CUSTOM_MARGINS_BOTTOM) || key[0] == (WEATHER_CUSTOM_MARGINS_LEFT) || key[0] == (WEATHER_CUSTOM_MARGINS_TOP)) ) { @@ -140,25 +139,14 @@ class LockscreenWeather(context: Context?) : ModPack(context!!) { } private fun updateMargins() { - if (mCustomMargins) { - setMargins( - mWeatherContainer, - mContext, - mLeftMargin, - mTopMargin, - mLeftMargin, - 0 - ) - } else { - setMargins( - mWeatherContainer, - mContext, - 0, - 0, - 0, - 0 - ) - } + setMargins( + mWeatherContainer, + mContext, + mLeftMargin, + mTopMargin, + mLeftMargin, + mBottomMargin + ) } private fun refreshWeatherView(currentWeatherView: CurrentWeatherView?) { diff --git a/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml b/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml index c0f189e5b..f65b979c4 100644 --- a/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml +++ b/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml @@ -132,13 +132,6 @@ android:layout_height="wrap_content" app:titleText="@string/weather_icon_pack_title" /> - - + + Top margin Center Layout Left Margin + Bottom Margin Weather Background Style From dbeddb6e215f7fcb912bfad99bb69103646e5ede Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Wed, 14 Aug 2024 21:47:01 +0200 Subject: [PATCH 108/369] SystemUI restart when Enabling Weather --- .../ui/fragments/XposedLockscreenWeather.kt | 17 ++++++++++++++--- .../com/drdisagree/iconify/weather/Config.kt | 2 +- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt index 7c727a666..823eb7e57 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt @@ -12,7 +12,10 @@ import android.graphics.drawable.Drawable import android.location.LocationManager import android.net.Uri import android.os.Bundle +import android.os.Handler +import android.os.Looper import android.provider.Settings +import android.text.TextUtils import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -24,6 +27,7 @@ import androidx.recyclerview.widget.LinearLayoutManager import com.drdisagree.iconify.BuildConfig import com.drdisagree.iconify.Iconify.Companion.appContextLocale import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Const.SWITCH_ANIMATION_DELAY import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_LOCATION import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_BOTTOM import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_LEFT @@ -57,6 +61,7 @@ import com.drdisagree.iconify.ui.adapters.IconsAdapter.Companion.WEATHER_ICONS_A import com.drdisagree.iconify.ui.base.BaseFragment import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader import com.drdisagree.iconify.utils.OmniJawsClient +import com.drdisagree.iconify.utils.SystemUtil import com.drdisagree.iconify.weather.AbstractWeatherProvider.Companion.PART_COORDINATES import com.drdisagree.iconify.weather.Config import com.google.android.material.dialog.MaterialAlertDialogBuilder @@ -117,6 +122,12 @@ class XposedLockscreenWeather:BaseFragment(), } else { checkLocationPermissions(false) } + updateUI() + + Handler(Looper.getMainLooper()).postDelayed( + { SystemUtil.handleSystemUIRestart() }, + SWITCH_ANIMATION_DELAY + ) } binding.lockscreenWeatherUpdateInterval.setSelectedIndex(getInt(WEATHER_UPDATE_INTERVAL, 1)) @@ -206,7 +217,7 @@ class XposedLockscreenWeather:BaseFragment(), getAvailableWeatherIconPacks(entries, values, drawables) val entriesChar: Array = entries.filterNotNull().toTypedArray() val valuesChar: Array = values.filterNotNull().toTypedArray() - val currentIconPack = Config.getIconPack(requireContext()) + val currentIconPack = if (TextUtils.isEmpty(Config.getIconPack(requireContext()))) valuesChar[0].toString() else Config.getIconPack(requireContext()) val mAdapter = IconsAdapter( entriesChar, @@ -222,7 +233,7 @@ class XposedLockscreenWeather:BaseFragment(), } }) mAdapter.setDrawables(drawables.filterNotNull().toTypedArray()) - val summary = if (values.contains(currentIconPack)) entries[values.indexOf(currentIconPack)] else entries[0] + val summary = if (!TextUtils.isEmpty(currentIconPack) && values.contains(currentIconPack)) entries[values.indexOf(currentIconPack)] else entries[0] binding.lockscreenWeatherIconPack.setSummary(summary!!) binding.lockscreenWeatherIconPack.setLayoutManager(LinearLayoutManager(requireContext())) binding.lockscreenWeatherIconPack.setAdapter(mAdapter) @@ -475,7 +486,7 @@ class XposedLockscreenWeather:BaseFragment(), } - var mCustomLocationLauncher: ActivityResultLauncher = registerForActivityResult( + private var mCustomLocationLauncher: ActivityResultLauncher = registerForActivityResult( ActivityResultContracts.StartActivityForResult() ) { result -> if (result.resultCode == Activity.RESULT_OK) { diff --git a/app/src/main/java/com/drdisagree/iconify/weather/Config.kt b/app/src/main/java/com/drdisagree/iconify/weather/Config.kt index ca19e2559..2b5013855 100644 --- a/app/src/main/java/com/drdisagree/iconify/weather/Config.kt +++ b/app/src/main/java/com/drdisagree/iconify/weather/Config.kt @@ -127,7 +127,7 @@ object Config { } fun getIconPack(context: Context): String? { - return getPrefs(context).getString(WEATHER_ICON_PACK, BuildConfig.APPLICATION_ID + ".google") + return getPrefs(context).getString(WEATHER_ICON_PACK, null) } fun setUpdateError(context: Context, value: Boolean) { From d719af6b71dc01b331cf7281a5fe741c1d5364ac Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Wed, 14 Aug 2024 22:11:24 +0200 Subject: [PATCH 109/369] Slider Value --- .../res/layout/fragment_xposed_lockscreen_weather.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml b/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml index f65b979c4..899883a1e 100644 --- a/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml +++ b/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml @@ -138,8 +138,8 @@ android:layout_height="wrap_content" app:titleText="@string/weather_margin_top" app:sliderStepSize="1" - app:sliderValue="0" - app:sliderValueFrom="20" + app:sliderValue="20" + app:sliderValueFrom="0" app:sliderValueTo="100" app:sliderDefaultValue="20" app:valueFormat="dp" /> @@ -150,8 +150,8 @@ android:layout_height="wrap_content" app:titleText="@string/weather_margin_left" app:sliderStepSize="1" - app:sliderValue="0" - app:sliderValueFrom="20" + app:sliderValue="20" + app:sliderValueFrom="0" app:sliderValueTo="100" app:sliderDefaultValue="20" app:valueFormat="dp" /> From db6a48bcaee034eb3c5bb3169ebba81aed0e20c8 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Wed, 14 Aug 2024 22:12:23 +0200 Subject: [PATCH 110/369] Removed some useless logging --- .../java/com/drdisagree/iconify/utils/OmniJawsClient.kt | 4 ---- .../drdisagree/iconify/weather/AbstractWeatherProvider.kt | 4 ---- .../drdisagree/iconify/weather/WeatherContentProvider.kt | 5 ----- .../iconify/weather/providers/OpenMeteoProvider.kt | 5 +---- .../drdisagree/iconify/xposed/views/CurrentWeatherView.kt | 7 +++---- 5 files changed, 4 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.kt b/app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.kt index 823f2ff4a..1144603c7 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.kt @@ -240,10 +240,6 @@ class OmniJawsClient(private val mContext: Context) { val packageManager = mContext.packageManager mRes = packageManager.getResourcesForApplication(mPackageName!!) } catch (e: Exception) { - Log.d(TAG, "loadCustomIconPackage", e) - mRes = null - } - if (mRes == null) { Log.w(TAG, "Icon pack loading failed - loading default") loadDefaultIconsPackage() } diff --git a/app/src/main/java/com/drdisagree/iconify/weather/AbstractWeatherProvider.kt b/app/src/main/java/com/drdisagree/iconify/weather/AbstractWeatherProvider.kt index de2774d46..6917e59c1 100644 --- a/app/src/main/java/com/drdisagree/iconify/weather/AbstractWeatherProvider.kt +++ b/app/src/main/java/com/drdisagree/iconify/weather/AbstractWeatherProvider.kt @@ -23,10 +23,6 @@ abstract class AbstractWeatherProvider(protected var mContext: Context) { NetworkUtils.downloadUrlMemoryAsString(url) { result: String? -> if (result != null) { - Log.d( - TAG, - "Download success $result" - ) response = result } else { response = "" diff --git a/app/src/main/java/com/drdisagree/iconify/weather/WeatherContentProvider.kt b/app/src/main/java/com/drdisagree/iconify/weather/WeatherContentProvider.kt index a9fb8d51b..167a8b427 100644 --- a/app/src/main/java/com/drdisagree/iconify/weather/WeatherContentProvider.kt +++ b/app/src/main/java/com/drdisagree/iconify/weather/WeatherContentProvider.kt @@ -121,10 +121,6 @@ class WeatherContentProvider : ContentProvider() { COLUMN_FORCE_REFRESH ) ) { - if (DEBUG) Log.i( - TAG, - "update: $uri $values" - ) scheduleUpdateNow(mContext) } } @@ -208,7 +204,6 @@ class WeatherContentProvider : ContentProvider() { } fun updateCachedWeatherInfo(context: Context) { - if (DEBUG) Log.d(TAG, "updateCachedWeatherInfo()") sCachedWeatherInfo = Config.getWeatherData(context) context.contentResolver.notifyChange( Uri.parse("content://$AUTHORITY/weather"), null diff --git a/app/src/main/java/com/drdisagree/iconify/weather/providers/OpenMeteoProvider.kt b/app/src/main/java/com/drdisagree/iconify/weather/providers/OpenMeteoProvider.kt index 19e2920ca..0bad5a70e 100644 --- a/app/src/main/java/com/drdisagree/iconify/weather/providers/OpenMeteoProvider.kt +++ b/app/src/main/java/com/drdisagree/iconify/weather/providers/OpenMeteoProvider.kt @@ -38,7 +38,6 @@ class OpenMeteoProvider(context: Context?) : AbstractWeatherProvider(context!!) speedUnit, timeZone ) - Log.d(TAG, "Condition URL = $conditionUrl") val conditionResponse = retrieve(conditionUrl) ?: return null log( TAG, @@ -69,11 +68,9 @@ class OpenMeteoProvider(context: Context?) : AbstractWeatherProvider(context!!) parseForecasts(JSONObject(conditionResponse).getJSONObject("daily"), metric), System.currentTimeMillis() ) - - log(TAG, "Weather updated: $w") return w } catch (e: JSONException) { - Log.w( + Log.e( TAG, "Received malformed weather data (coordinates = $selection)", e ) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/views/CurrentWeatherView.kt b/app/src/main/java/com/drdisagree/iconify/xposed/views/CurrentWeatherView.kt index 23e20fa69..c3f59c208 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/views/CurrentWeatherView.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/views/CurrentWeatherView.kt @@ -23,6 +23,7 @@ import com.drdisagree.iconify.xposed.HookRes.Companion.modRes import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.findViewWithTagAndChangeColor import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.setMargins import de.robv.android.xposed.XposedBridge +import de.robv.android.xposed.XposedBridge.log import java.util.Locale import java.util.function.Consumer @@ -131,7 +132,6 @@ class CurrentWeatherView(context: Context, name: String) : LinearLayout(context) } private fun enableUpdates() { - XposedBridge.log(TAG + "enableUpdates") if (mWeatherClient != null) { mWeatherClient.addObserver(this) //WeatherScheduler.scheduleUpdateNow(mContext); @@ -167,7 +167,7 @@ class CurrentWeatherView(context: Context, name: String) : LinearLayout(context) override fun weatherError(errorReason: Int) { // Show only Disabled and Permission errors - XposedBridge.log(TAG + "weatherError " + errorReason) + log(TAG + "weatherError " + errorReason) if (errorReason == OmniJawsClient.EXTRA_ERROR_DISABLED) { mWeatherInfo = null } @@ -226,7 +226,7 @@ class CurrentWeatherView(context: Context, name: String) : LinearLayout(context) mWindLayout!!.visibility = if (mShowWeatherWind) VISIBLE else GONE } } catch (e: Exception) { - XposedBridge.log(TAG + "Weather query failed" + e.message) + log(TAG + "Weather query failed" + e.message) Log.e(TAG, "Weather query failed", e) } } @@ -439,7 +439,6 @@ class CurrentWeatherView(context: Context, name: String) : LinearLayout(context) showLocation: Boolean, showText: Boolean, showHumidity: Boolean, showWind: Boolean, name: String ) { - if (BuildConfig.DEBUG) XposedBridge.log(TAG + "updateWeatherSettings " + (instances.isEmpty())) instances.stream() .filter { obj: Array -> obj[1] == name From a642b0b2af53f24a42883d3f7eebb488fbb6432a Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Thu, 15 Aug 2024 13:44:58 +0600 Subject: [PATCH 111/369] Fix MLKit subject extraction callback result --- .../java/com/drdisagree/iconify/services/RootProviderProxy.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/drdisagree/iconify/services/RootProviderProxy.kt b/app/src/main/java/com/drdisagree/iconify/services/RootProviderProxy.kt index 0b01f94e7..59b6be8e5 100644 --- a/app/src/main/java/com/drdisagree/iconify/services/RootProviderProxy.kt +++ b/app/src/main/java/com/drdisagree/iconify/services/RootProviderProxy.kt @@ -123,7 +123,7 @@ class RootProviderProxy : Service() { tempFile.delete() callback.onResult( - true, + isSuccess, if (isSuccess) { getString(R.string.depth_wallpaper_subject_extraction_success) } else { From 4d68920993fa1b261b8cd120fc6b36e46234fff9 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Thu, 15 Aug 2024 11:21:56 +0200 Subject: [PATCH 112/369] Move Lockscreen Weather in Xposed Menu from Lockscreen Clock --- .../ui/fragments/XposedLockscreenClock.kt | 7 ------- .../iconify/ui/fragments/XposedMenu.kt | 8 ++++++++ .../layout/fragment_xposed_lockscreen_clock.xml | 7 ------- app/src/main/res/navigation/nav_xposed_menu.xml | 16 ++++++++-------- 4 files changed, 16 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenClock.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenClock.kt index 2fde46bd6..839d6b742 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenClock.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenClock.kt @@ -375,12 +375,6 @@ class XposedLockscreenClock : BaseFragment() { } }) - binding.lsWeather.setOnClickListener { - findNavController(binding.lsWeather).navigate( - (R.id.action_xposedLockscreenClock_to_xposedLockscreenWeather) - ) - } - return view } @@ -450,7 +444,6 @@ class XposedLockscreenClock : BaseFragment() { binding.lsclockBottomMargin.isEnabled = enabled binding.lsclockCustomUsername.isEnabled = enabled binding.lsclockCustomDevicename.isEnabled = enabled - binding.lsWeather.isEnabled = enabled } private fun showMoreLsSettings() { diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedMenu.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedMenu.kt index 0f5d4eaa2..ecadec703 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedMenu.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedMenu.kt @@ -304,6 +304,14 @@ class XposedMenu : BaseFragment() { R.drawable.ic_xposed_lockscreen ) ) + add( + arrayOf( + R.id.action_xposedMenu2_to_xposedLockscreenWeather, + appContextLocale.resources.getString(R.string.activity_title_lockscreen_weather), + appContextLocale.resources.getString(R.string.activity_desc_lockscreen_weather), + R.drawable.ic_xposed_lockscreen_weather + ) + ) add( arrayOf( R.id.action_xposedMenu2_to_xposedDepthWallpaper, diff --git a/app/src/main/res/layout/fragment_xposed_lockscreen_clock.xml b/app/src/main/res/layout/fragment_xposed_lockscreen_clock.xml index 8b37e5edf..61669aaef 100644 --- a/app/src/main/res/layout/fragment_xposed_lockscreen_clock.xml +++ b/app/src/main/res/layout/fragment_xposed_lockscreen_clock.xml @@ -199,13 +199,6 @@ app:titleText="@string/lockscreen_clock_custom_username" app:summaryText="@string/lockscreen_clock_custom_username_desc" /> - - diff --git a/app/src/main/res/navigation/nav_xposed_menu.xml b/app/src/main/res/navigation/nav_xposed_menu.xml index 9a1b22326..022810f18 100644 --- a/app/src/main/res/navigation/nav_xposed_menu.xml +++ b/app/src/main/res/navigation/nav_xposed_menu.xml @@ -72,6 +72,13 @@ app:exitAnim="@anim/fragment_fade_out" app:popEnterAnim="@anim/fragment_fade_in" app:popExitAnim="@anim/fragment_fade_out" /> + - Date: Thu, 15 Aug 2024 15:52:57 +0600 Subject: [PATCH 113/369] Custom Clock: Change max text scaling to 2.5x (closes #549) --- app/src/main/res/layout/fragment_xposed_header_clock.xml | 2 +- app/src/main/res/layout/fragment_xposed_lockscreen_clock.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/layout/fragment_xposed_header_clock.xml b/app/src/main/res/layout/fragment_xposed_header_clock.xml index b4991239c..7a6ae94a7 100644 --- a/app/src/main/res/layout/fragment_xposed_header_clock.xml +++ b/app/src/main/res/layout/fragment_xposed_header_clock.xml @@ -149,7 +149,7 @@ app:sliderStepSize="1" app:sliderValue="10" app:sliderValueFrom="5" - app:sliderValueTo="15" + app:sliderValueTo="25" app:titleText="@string/header_clock_font_text_scaling_title" app:valueFormat="x" /> diff --git a/app/src/main/res/layout/fragment_xposed_lockscreen_clock.xml b/app/src/main/res/layout/fragment_xposed_lockscreen_clock.xml index 61669aaef..65b59c9fd 100644 --- a/app/src/main/res/layout/fragment_xposed_lockscreen_clock.xml +++ b/app/src/main/res/layout/fragment_xposed_lockscreen_clock.xml @@ -159,7 +159,7 @@ app:sliderStepSize="1" app:sliderValue="10" app:sliderValueFrom="5" - app:sliderValueTo="15" + app:sliderValueTo="25" app:titleText="@string/lockscreen_font_text_scaling_title" app:valueFormat="x" /> From 09fe0e8e388fc114cfbfcecdf25d04e0ec27cfd5 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Thu, 15 Aug 2024 15:55:15 +0600 Subject: [PATCH 114/369] Lockscreen Clock: Refactor and improvements --- .../res/layout/preview_lockscreen_clock_1.xml | 44 +++- .../layout/preview_lockscreen_clock_11.xml | 14 +- .../layout/preview_lockscreen_clock_15.xml | 229 +++++++++--------- .../layout/preview_lockscreen_clock_18.xml | 168 +++++++------ .../layout/preview_lockscreen_clock_22.xml | 6 +- .../res/layout/preview_lockscreen_clock_8.xml | 2 +- 6 files changed, 257 insertions(+), 206 deletions(-) diff --git a/app/src/main/res/layout/preview_lockscreen_clock_1.xml b/app/src/main/res/layout/preview_lockscreen_clock_1.xml index b4c234d45..85abb93e9 100644 --- a/app/src/main/res/layout/preview_lockscreen_clock_1.xml +++ b/app/src/main/res/layout/preview_lockscreen_clock_1.xml @@ -13,19 +13,39 @@ android:layout_marginHorizontal="20dp" android:orientation="vertical"> - + android:layout_gravity="center_horizontal" + android:orientation="vertical"> + + + + + @@ -69,9 +71,9 @@ android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:fontFamily="@*android:string/config_clockFontFamily" - android:includeFontPadding="false" android:format12Hour="EEEE, " android:format24Hour="EEEE, " + android:includeFontPadding="false" android:tag="text1" android:textColor="@android:color/white" android:textSize="16dp" /> @@ -93,12 +95,12 @@ diff --git a/app/src/main/res/layout/preview_lockscreen_clock_15.xml b/app/src/main/res/layout/preview_lockscreen_clock_15.xml index 4fcdde228..7190c7a87 100644 --- a/app/src/main/res/layout/preview_lockscreen_clock_15.xml +++ b/app/src/main/res/layout/preview_lockscreen_clock_15.xml @@ -1,146 +1,157 @@ - + android:gravity="start|top" + android:orientation="vertical"> - + android:gravity="start|center" + android:orientation="horizontal"> - - - - - - - - - + + android:layout_marginStart="12dp" + android:orientation="vertical" + android:paddingVertical="6dp"> - + + + + - + android:layout_marginStart="20dp" + android:gravity="start|center" + android:orientation="horizontal"> - + + - + + android:layout_marginStart="12dp" + android:orientation="vertical" + android:paddingVertical="6dp"> + + + + + - + android:layout_marginStart="20dp" + android:gravity="start|center" + android:orientation="horizontal"> - + + - + - + android:layout_marginStart="12dp" + android:orientation="vertical" + android:paddingVertical="6dp"> - + + + + + + diff --git a/app/src/main/res/layout/preview_lockscreen_clock_18.xml b/app/src/main/res/layout/preview_lockscreen_clock_18.xml index 6cf00a195..893341ec2 100644 --- a/app/src/main/res/layout/preview_lockscreen_clock_18.xml +++ b/app/src/main/res/layout/preview_lockscreen_clock_18.xml @@ -1,87 +1,105 @@ - + android:gravity="center_horizontal|top" + android:orientation="vertical"> - - - - + android:layout_gravity="center" + android:gravity="start|center" + android:orientation="vertical" + tools:ignore="UselessParent"> - + - + - + + - + + + + + + + + + + - + + + + diff --git a/app/src/main/res/layout/preview_lockscreen_clock_22.xml b/app/src/main/res/layout/preview_lockscreen_clock_22.xml index c921df5ff..d70872112 100644 --- a/app/src/main/res/layout/preview_lockscreen_clock_22.xml +++ b/app/src/main/res/layout/preview_lockscreen_clock_22.xml @@ -22,7 +22,7 @@ android:includeFontPadding="false" android:tag="accent1|nolineheight" android:text="It's" - android:textAlignment="viewEnd" + android:textAlignment="viewStart" android:textColor="@android:color/system_accent1_100" android:textSize="36dp" tools:ignore="HardcodedText" /> @@ -34,7 +34,7 @@ android:includeFontPadding="false" android:tag="text1|textHour" android:text="Five" - android:textAlignment="viewEnd" + android:textAlignment="viewStart" android:textColor="@android:color/white" android:textSize="36dp" /> @@ -45,7 +45,7 @@ android:includeFontPadding="false" android:tag="text1|textMinute" android:text="Sixteen" - android:textAlignment="viewEnd" + android:textAlignment="viewStart" android:textColor="@android:color/white" android:textSize="36dp" /> diff --git a/app/src/main/res/layout/preview_lockscreen_clock_8.xml b/app/src/main/res/layout/preview_lockscreen_clock_8.xml index 909f4a3a5..95abcacf9 100644 --- a/app/src/main/res/layout/preview_lockscreen_clock_8.xml +++ b/app/src/main/res/layout/preview_lockscreen_clock_8.xml @@ -53,7 +53,7 @@ android:orientation="vertical" android:clipChildren="false" android:clipToPadding="false" - android:minWidth="170dp" + android:minWidth="180dp" android:paddingTop="80dp" android:rotation="90" tools:ignore="RtlHardcoded"> From f249cb4188e05835d7b3ddc2975c2ac5168b47fb Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Thu, 15 Aug 2024 15:56:30 +0600 Subject: [PATCH 115/369] Lockscreen Clock: Change clock style 10 now don't say why this clock looks broken and leaking codes --- ...preview_lockscreen_clock_10_background.xml | 12 + app/src/main/res/font/consolas.otf | Bin 0 -> 720076 bytes .../layout/preview_lockscreen_clock_10.xml | 402 ++++++++++++------ app/src/main/res/values/styles.xml | 5 + 4 files changed, 281 insertions(+), 138 deletions(-) create mode 100644 app/src/main/res/drawable/preview_lockscreen_clock_10_background.xml create mode 100644 app/src/main/res/font/consolas.otf diff --git a/app/src/main/res/drawable/preview_lockscreen_clock_10_background.xml b/app/src/main/res/drawable/preview_lockscreen_clock_10_background.xml new file mode 100644 index 000000000..4bb6329a1 --- /dev/null +++ b/app/src/main/res/drawable/preview_lockscreen_clock_10_background.xml @@ -0,0 +1,12 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/font/consolas.otf b/app/src/main/res/font/consolas.otf new file mode 100644 index 0000000000000000000000000000000000000000..af3db6789ecbe78437d1fd5607e7453b63fda144 GIT binary patch literal 720076 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%0D|1Y}( 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 z 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 c#wccWYsedudgc6Z3&EwVl_{jn#`B2$G9| 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 F{|~3Vt3&_* literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/preview_lockscreen_clock_10.xml b/app/src/main/res/layout/preview_lockscreen_clock_10.xml index c0189638e..396b18d11 100644 --- a/app/src/main/res/layout/preview_lockscreen_clock_10.xml +++ b/app/src/main/res/layout/preview_lockscreen_clock_10.xml @@ -3,349 +3,475 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="start|top" - android:layoutDirection="ltr" - android:gravity="start|top"> + android:gravity="start|top" + android:layoutDirection="ltr"> - + android:layout_marginHorizontal="18dp" + android:background="@drawable/preview_lockscreen_clock_10_background" + android:orientation="vertical" + android:padding="18dp" + android:theme="@style/ConsolasFontTextAppearance"> + + + + + + + + + + + android:tag="nolineheight" + android:text="#include \u003Ciostream\u003E" + android:textColor="#54B5DB" + android:textSize="16sp" /> - + + + android:theme="@style/ConsolasFontTextAppearance" /> + + + + + + + android:theme="@style/ConsolasFontTextAppearance" /> + android:theme="@style/ConsolasFontTextAppearance" /> - + android:theme="@style/ConsolasFontTextAppearance" /> - + + android:theme="@style/ConsolasFontTextAppearance" /> + android:textColor="#54B5DB" + android:textSize="16sp" + android:theme="@style/ConsolasFontTextAppearance" /> + + + android:theme="@style/ConsolasFontTextAppearance" /> + + + + + android:theme="@style/ConsolasFontTextAppearance" /> + android:textColor="#54B5DB" + android:textSize="16sp" + android:theme="@style/ConsolasFontTextAppearance" /> + android:theme="@style/ConsolasFontTextAppearance" /> + + + + + android:theme="@style/ConsolasFontTextAppearance" /> + + + + + android:text="\u0022" + android:textColor="#54B5DB" + android:textSize="16sp" + android:theme="@style/ConsolasFontTextAppearance" /> + android:theme="@style/ConsolasFontTextAppearance" /> + + + android:theme="@style/ConsolasFontTextAppearance" /> + + + android:textColor="#54B5DB" + android:textSize="16sp" + android:theme="@style/ConsolasFontTextAppearance" /> + + + android:theme="@style/ConsolasFontTextAppearance" /> + + + android:theme="@style/ConsolasFontTextAppearance" /> + + + android:theme="@style/ConsolasFontTextAppearance" /> - + diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 45d51260d..53e788dcd 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -238,4 +238,9 @@ 16dp 0.4 + + \ No newline at end of file From 5b6e6e2f0cd35ed3663ae25e6fafd54400c24bd7 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Thu, 15 Aug 2024 17:38:21 +0600 Subject: [PATCH 116/369] Lockscreen Clock: Change widget size according to text scaling for clock style 19 --- .../iconify/xposed/modules/LockscreenClock.kt | 78 ++++++++++++------- .../layout/preview_lockscreen_clock_19.xml | 2 +- 2 files changed, 50 insertions(+), 30 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenClock.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenClock.kt index 2f7a9c979..f45f04e01 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenClock.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenClock.kt @@ -410,7 +410,8 @@ class LockscreenClock(context: Context?) : ModPack(context!!) { val clockStyle: Int = Xprefs!!.getInt(LSCLOCK_STYLE, 0) val topMargin: Int = Xprefs!!.getInt(LSCLOCK_TOPMARGIN, 100) val bottomMargin: Int = Xprefs!!.getInt(LSCLOCK_BOTTOMMARGIN, 40) - val clockScale: Float = (Xprefs!!.getInt(LSCLOCK_FONT_TEXT_SCALING, 10) / 10.0).toFloat() + val textScaleFactor: Float = + (Xprefs!!.getInt(LSCLOCK_FONT_TEXT_SCALING, 10) / 10.0).toFloat() val customFont = Environment.getExternalStorageDirectory().toString() + "/.iconify_files/lsclock_font.ttf" val lineHeight: Int = Xprefs!!.getInt(LSCLOCK_FONT_LINEHEIGHT, 0) @@ -478,10 +479,6 @@ class LockscreenClock(context: Context?) : ModPack(context!!) { applyTextMarginRecursively(mContext, clockView, lineHeight) - if (clockScale != 1f) { - applyTextScalingRecursively(clockView, clockScale) - } - if (clockStyle != 10) { TextUtil.convertTextViewsToTitleCase(clockView) } @@ -531,6 +528,27 @@ class LockscreenClock(context: Context?) : ModPack(context!!) { mVolumeProgress = null } } + + if (textScaleFactor != 1f) { + applyTextScalingRecursively(clockView, textScaleFactor) + + mVolumeLevelArcProgress?.layoutParams?.apply { + width = (width * textScaleFactor).toInt() + height = (height * textScaleFactor).toInt() + } + + mRamUsageArcProgress?.layoutParams?.apply { + width = (width * textScaleFactor).toInt() + height = (height * textScaleFactor).toInt() + } + + (mBatteryProgress?.parent as ViewGroup?)?.apply { + layoutParams?.apply { + width = (width * textScaleFactor).toInt() + } + requestLayout() + } + } } private fun initBatteryStatus() { @@ -570,28 +588,30 @@ class LockscreenClock(context: Context?) : ModPack(context!!) { val volLevel = mAudioManager!!.getStreamVolume(AudioManager.STREAM_MUSIC) val maxVolLevel = mAudioManager!!.getStreamMaxVolume(AudioManager.STREAM_MUSIC) val volPercent = (volLevel.toFloat() / maxVolLevel * 100).toInt() + val textScaleFactor: Float = + (Xprefs!!.getInt(LSCLOCK_FONT_TEXT_SCALING, 10) / 10.0).toFloat() - if (mVolumeProgress != null) { - mVolumeProgress!!.progress = volPercent - } + mVolumeProgress?.progress = volPercent - if (mVolumeLevelView != null) { - mVolumeLevelView!!.text = - appContext!!.resources.getString(R.string.percentage_text, volPercent) - } + mVolumeLevelView?.text = + appContext!!.resources.getString(R.string.percentage_text, volPercent) - if (mVolumeLevelArcProgress != null) { - val widgetBitmap = generateBitmap( - mContext, - volPercent, - appContext!!.resources.getString(R.string.percentage_text, volPercent), - 40, - ContextCompat.getDrawable(appContext!!, R.drawable.ic_volume_up), - 36 + mVolumeLevelArcProgress?.setImageBitmap( + generateBitmap( + context = mContext, + percentage = volPercent, + textInside = appContext!!.resources.getString( + R.string.percentage_text, + volPercent + ), + textInsideSizePx = (40 * textScaleFactor).toInt(), + iconDrawable = ContextCompat.getDrawable( + appContext!!, + R.drawable.ic_volume_up + ), + iconSizePx = 38 ) - - mVolumeLevelArcProgress!!.setImageBitmap(widgetBitmap) - } + ) } private fun initRamUsage() { @@ -601,22 +621,22 @@ class LockscreenClock(context: Context?) : ModPack(context!!) { mActivityManager!!.getMemoryInfo(memoryInfo) val usedMemory = memoryInfo.totalMem - memoryInfo.availMem val usedMemoryPercentage = (usedMemory * 100 / memoryInfo.totalMem).toInt() + val textScaleFactor: Float = + (Xprefs!!.getInt(LSCLOCK_FONT_TEXT_SCALING, 10) / 10.0).toFloat() - if (mRamUsageArcProgress != null) { - val widgetBitmap = generateBitmap( + mRamUsageArcProgress?.setImageBitmap( + generateBitmap( context = mContext, percentage = usedMemoryPercentage, textInside = appContext!!.resources.getString( R.string.percentage_text, usedMemoryPercentage ), - textInsideSizePx = 40, + textInsideSizePx = (40 * textScaleFactor).toInt(), textBottom = "RAM", textBottomSizePx = 28 ) - - mRamUsageArcProgress!!.setImageBitmap(widgetBitmap) - } + ) } @get:SuppressLint("MissingPermission") diff --git a/app/src/main/res/layout/preview_lockscreen_clock_19.xml b/app/src/main/res/layout/preview_lockscreen_clock_19.xml index 348f4ad4b..ef8423aae 100644 --- a/app/src/main/res/layout/preview_lockscreen_clock_19.xml +++ b/app/src/main/res/layout/preview_lockscreen_clock_19.xml @@ -55,13 +55,13 @@ Date: Thu, 15 Aug 2024 17:51:56 +0600 Subject: [PATCH 117/369] Lockscreen Clock: Smaller font size for clock style 10 --- .../layout/preview_lockscreen_clock_10.xml | 72 +++++++++---------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/app/src/main/res/layout/preview_lockscreen_clock_10.xml b/app/src/main/res/layout/preview_lockscreen_clock_10.xml index 396b18d11..ff0c2c3f2 100644 --- a/app/src/main/res/layout/preview_lockscreen_clock_10.xml +++ b/app/src/main/res/layout/preview_lockscreen_clock_10.xml @@ -66,7 +66,7 @@ android:tag="nolineheight" android:text="#include \u003Ciostream\u003E" android:textColor="#54B5DB" - android:textSize="16sp" /> + android:textSize="14sp" /> @@ -83,7 +83,7 @@ android:includeFontPadding="false" android:text="using namespace " android:textColor="#E6CD69" - android:textSize="16sp" + android:textSize="14sp" android:theme="@style/ConsolasFontTextAppearance" /> @@ -119,7 +119,7 @@ android:includeFontPadding="false" android:text="int " android:textColor="#9FCA56" - android:textSize="16sp" + android:textSize="14sp" android:theme="@style/ConsolasFontTextAppearance" /> @@ -155,7 +155,7 @@ android:includeFontPadding="false" android:text="{" android:textColor="#CFD2D1" - android:textSize="16sp" + android:textSize="14sp" android:theme="@style/ConsolasFontTextAppearance" /> @@ -172,7 +172,7 @@ android:includeFontPadding="false" android:text="\t\tcout " android:textColor="#A074C4" - android:textSize="16sp" + android:textSize="14sp" android:theme="@style/ConsolasFontTextAppearance" /> @@ -236,7 +236,7 @@ android:includeFontPadding="false" android:text="\t\tcout " android:textColor="#A074C4" - android:textSize="16sp" + android:textSize="14sp" android:theme="@style/ConsolasFontTextAppearance" /> @@ -302,7 +302,7 @@ android:includeFontPadding="false" android:text="\t\tcout " android:textColor="#A074C4" - android:textSize="16sp" + android:textSize="14sp" android:theme="@style/ConsolasFontTextAppearance" /> @@ -367,7 +367,7 @@ android:includeFontPadding="false" android:text="\t\tcout " android:textColor="#A074C4" - android:textSize="16sp" + android:textSize="14sp" android:theme="@style/ConsolasFontTextAppearance" /> @@ -434,7 +434,7 @@ android:includeFontPadding="false" android:text="\t\treturn " android:textColor="#E6CD69" - android:textSize="16sp" + android:textSize="14sp" android:theme="@style/ConsolasFontTextAppearance" /> @@ -469,7 +469,7 @@ android:includeFontPadding="false" android:text="}" android:textColor="#CFD2D1" - android:textSize="16sp" + android:textSize="14sp" android:theme="@style/ConsolasFontTextAppearance" /> From 1fc4b9ceb6c222e54aef38435942abe0734a2931 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Thu, 15 Aug 2024 18:05:47 +0600 Subject: [PATCH 118/369] Lockscreen Clock: Fix date format for clock style 10 --- app/src/main/res/layout/preview_lockscreen_clock_10.xml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/layout/preview_lockscreen_clock_10.xml b/app/src/main/res/layout/preview_lockscreen_clock_10.xml index ff0c2c3f2..0f1276f79 100644 --- a/app/src/main/res/layout/preview_lockscreen_clock_10.xml +++ b/app/src/main/res/layout/preview_lockscreen_clock_10.xml @@ -1,5 +1,6 @@ + android:theme="@style/ConsolasFontTextAppearance" + tools:ignore="UselessParent"> Date: Thu, 15 Aug 2024 18:10:58 +0600 Subject: [PATCH 119/369] QS Black Theme: Fix footer background color --- .../iconify/xposed/modules/themes/QSBlackThemeA14.kt | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA14.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA14.kt index 6152406c7..ff527e763 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA14.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA14.kt @@ -49,8 +49,8 @@ class QSBlackThemeA14(context: Context?) : ModPack(context!!) { private var qsTextFollowAccent = false private var shadeCarrierGroupController: Any? = null private val modernShadeCarrierGroupMobileViews = ArrayList() - private var colorActive: Int = -1 - private var colorInactive: Int = -1 + private var colorActive: Int? = null + private var colorInactive: Int? = null init { isDark = SystemUtil.isDarkMode @@ -764,12 +764,16 @@ class QSBlackThemeA14(context: Context?) : ModPack(context!!) { var result = 0 if (code == PM_LITE_BACKGROUND_CODE) { - result = colorActive + if (colorActive != null) { + result = colorActive!! + } } else { try { when (mContext.resources.getResourceName(code).split("/")[1]) { "underSurface", "onShadeActive", "shadeInactive" -> { - result = colorInactive // button backgrounds + if (colorInactive != null) { + result = colorInactive!! // button backgrounds + } } "onShadeInactiveVariant" -> { From 149d4d832899bba1faa4a75688f1c8a50294006b Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Thu, 15 Aug 2024 19:24:19 +0600 Subject: [PATCH 120/369] Separate and fix notification footer button colors --- .../com/drdisagree/iconify/common/Dynamic.kt | 22 +--- .../drdisagree/iconify/common/Preferences.kt | 1 + .../iconify/ui/fragments/XposedThemes.kt | 35 ++++-- .../overlay/manager/NotificationManager.kt | 52 ++++++--- .../manager/NotificationPixelManager.kt | 52 ++++++--- .../iconify/xposed/modules/QuickSettings.kt | 105 +++++++++--------- .../xposed/modules/utils/SystemUtils.kt | 27 +++++ .../res/layout/fragment_xposed_themes.xml | 12 +- app/src/main/res/values/strings.xml | 2 + 9 files changed, 198 insertions(+), 110 deletions(-) create mode 100644 app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/SystemUtils.kt diff --git a/app/src/main/java/com/drdisagree/iconify/common/Dynamic.kt b/app/src/main/java/com/drdisagree/iconify/common/Dynamic.kt index 79befc1f2..0c0dc328d 100644 --- a/app/src/main/java/com/drdisagree/iconify/common/Dynamic.kt +++ b/app/src/main/java/com/drdisagree/iconify/common/Dynamic.kt @@ -1,13 +1,9 @@ package com.drdisagree.iconify.common import android.os.Build -import android.util.Log import com.drdisagree.iconify.Iconify.Companion.appContext import com.topjohnwu.superuser.Shell import java.io.File -import java.text.SimpleDateFormat -import java.util.Calendar -import java.util.Locale object Dynamic { @@ -53,21 +49,5 @@ object Dynamic { // Device information val isAtleastA14 = Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE - - fun isSecurityPatchBeforeJune2024(): Boolean { - val securityPatch = Build.VERSION.SECURITY_PATCH - val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.US) - - return try { - val securityPatchDate = dateFormat.parse(securityPatch) - - val june2024 = Calendar.getInstance() - june2024.set(2024, Calendar.JUNE, 1) - - (securityPatchDate != null && (securityPatchDate < june2024.time)) - } catch (e: Exception) { - Log.e("SECURITY_PATCH_CHECK", "Error parsing security patch date", e) - false - } - } + val isAndroid14 = Build.VERSION.SDK_INT == Build.VERSION_CODES.UPSIDE_DOWN_CAKE } diff --git a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt index 8ffbf78cd..f798ef423 100644 --- a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt +++ b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt @@ -121,6 +121,7 @@ object Preferences { const val QS_TOPMARGIN = "xposed_qspanelTopMargin" const val FIX_QS_TILE_COLOR = "xposed_fixqstilecolor" const val FIX_NOTIFICATION_COLOR = "xposed_fixnotificationcolor" + const val FIX_NOTIFICATION_FOOTER_BUTTON_COLOR = "xposed_fixnotificationfooterbuttoncolor" const val HIDE_QS_SILENT_TEXT = "xposed_hideqssilenttext" const val HIDE_QS_FOOTER_BUTTONS = "xposed_hideqsfooterbuttons" const val QS_TEXT_ALWAYS_WHITE = "xposed_qstextalwayswhite" diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedThemes.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedThemes.kt index ae180bb6b..70813f669 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedThemes.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedThemes.kt @@ -13,6 +13,7 @@ import com.drdisagree.iconify.common.Dynamic.isAtleastA14 import com.drdisagree.iconify.common.Preferences.BLACK_QSPANEL import com.drdisagree.iconify.common.Preferences.DUALTONE_QSPANEL import com.drdisagree.iconify.common.Preferences.FIX_NOTIFICATION_COLOR +import com.drdisagree.iconify.common.Preferences.FIX_NOTIFICATION_FOOTER_BUTTON_COLOR import com.drdisagree.iconify.common.Preferences.FIX_QS_TILE_COLOR import com.drdisagree.iconify.common.Preferences.FLUID_NOTIF_TRANSPARENCY import com.drdisagree.iconify.common.Preferences.FLUID_POWERMENU_TRANSPARENCY @@ -117,17 +118,17 @@ class XposedThemes : BaseFragment() { // Others section binding.sectionOthers.visibility = if (isAtleastA14) { - View.VISIBLE - } else { - View.GONE - } + View.VISIBLE + } else { + View.GONE + } // Fix qs tile color binding.fixQsTileColor.visibility = if (isAtleastA14) { - View.VISIBLE - } else { - View.GONE - } + View.VISIBLE + } else { + View.GONE + } binding.fixQsTileColor.isSwitchChecked = getBoolean(FIX_QS_TILE_COLOR, false) binding.fixQsTileColor.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> putBoolean(FIX_QS_TILE_COLOR, isChecked) @@ -154,6 +155,24 @@ class XposedThemes : BaseFragment() { ) } + // Fix notification footer button color + binding.fixNotificationFooterButtonColor.visibility = if (isAtleastA14) { + View.VISIBLE + } else { + View.GONE + } + binding.fixNotificationFooterButtonColor.isSwitchChecked = getBoolean( + FIX_NOTIFICATION_FOOTER_BUTTON_COLOR, false + ) + binding.fixNotificationFooterButtonColor.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> + putBoolean(FIX_NOTIFICATION_FOOTER_BUTTON_COLOR, isChecked) + + Handler(Looper.getMainLooper()).postDelayed( + { SystemUtil.handleSystemUIRestart() }, + SWITCH_ANIMATION_DELAY + ) + } + return view } } \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/NotificationManager.kt b/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/NotificationManager.kt index 25c750a2d..681dadb00 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/NotificationManager.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/NotificationManager.kt @@ -1,9 +1,10 @@ package com.drdisagree.iconify.utils.overlay.manager import com.drdisagree.iconify.common.Dynamic.TOTAL_NOTIFICATIONS +import com.drdisagree.iconify.common.Dynamic.isAndroid14 import com.drdisagree.iconify.common.Dynamic.isAtleastA14 -import com.drdisagree.iconify.common.Dynamic.isSecurityPatchBeforeJune2024 import com.drdisagree.iconify.common.Preferences.FIX_NOTIFICATION_COLOR +import com.drdisagree.iconify.common.Preferences.FIX_NOTIFICATION_FOOTER_BUTTON_COLOR import com.drdisagree.iconify.config.Prefs import com.drdisagree.iconify.config.RPrefs import com.drdisagree.iconify.utils.SystemUtil @@ -11,6 +12,7 @@ import com.drdisagree.iconify.utils.overlay.OverlayUtil.disableOverlay import com.drdisagree.iconify.utils.overlay.OverlayUtil.enableOverlayExclusiveInCategory import com.drdisagree.iconify.utils.overlay.OverlayUtil.enableOverlays import com.drdisagree.iconify.utils.overlay.OverlayUtil.isOverlayEnabled +import com.drdisagree.iconify.xposed.modules.utils.SystemUtils.isSecurityPatchBeforeJune2024 object NotificationManager { @@ -22,24 +24,48 @@ object NotificationManager { enableOverlays("IconifyComponentCR1.overlay", "IconifyComponentCR2.overlay") } - if (isAtleastA14 && - !RPrefs.getBoolean(FIX_NOTIFICATION_COLOR, false) && - isSecurityPatchBeforeJune2024() - ) { - RPrefs.putBoolean(FIX_NOTIFICATION_COLOR, true) - SystemUtil.restartSystemUI() + if (isAtleastA14) { + var requireReload = false + + if (!RPrefs.getBoolean(FIX_NOTIFICATION_COLOR, false) && + isAndroid14 && isSecurityPatchBeforeJune2024() + ) { + RPrefs.putBoolean(FIX_NOTIFICATION_COLOR, true) + requireReload = true + } + + if (!RPrefs.getBoolean(FIX_NOTIFICATION_FOOTER_BUTTON_COLOR, false)) { + RPrefs.putBoolean(FIX_NOTIFICATION_FOOTER_BUTTON_COLOR, true) + requireReload = true + } + + if (requireReload) { + SystemUtil.restartSystemUI() + } } } fun disableOverlay(n: Int) { disableOverlay("IconifyComponentNFN$n.overlay") - if (isAtleastA14 && - RPrefs.getBoolean(FIX_NOTIFICATION_COLOR, false) && - isSecurityPatchBeforeJune2024() - ) { - RPrefs.putBoolean(FIX_NOTIFICATION_COLOR, false) - SystemUtil.restartSystemUI() + if (isAtleastA14) { + var requireReload = false + + if (RPrefs.getBoolean(FIX_NOTIFICATION_COLOR, false) && + isAndroid14 && isSecurityPatchBeforeJune2024() + ) { + RPrefs.putBoolean(FIX_NOTIFICATION_COLOR, false) + requireReload = true + } + + if (RPrefs.getBoolean(FIX_NOTIFICATION_FOOTER_BUTTON_COLOR, false)) { + RPrefs.putBoolean(FIX_NOTIFICATION_FOOTER_BUTTON_COLOR, false) + requireReload = true + } + + if (requireReload) { + SystemUtil.restartSystemUI() + } } } diff --git a/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/NotificationPixelManager.kt b/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/NotificationPixelManager.kt index ea875d3c9..4ea4dfe43 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/NotificationPixelManager.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/NotificationPixelManager.kt @@ -1,9 +1,10 @@ package com.drdisagree.iconify.utils.overlay.manager import com.drdisagree.iconify.common.Dynamic.TOTAL_NOTIFICATIONSPIXEL +import com.drdisagree.iconify.common.Dynamic.isAndroid14 import com.drdisagree.iconify.common.Dynamic.isAtleastA14 -import com.drdisagree.iconify.common.Dynamic.isSecurityPatchBeforeJune2024 import com.drdisagree.iconify.common.Preferences.FIX_NOTIFICATION_COLOR +import com.drdisagree.iconify.common.Preferences.FIX_NOTIFICATION_FOOTER_BUTTON_COLOR import com.drdisagree.iconify.config.Prefs import com.drdisagree.iconify.config.RPrefs import com.drdisagree.iconify.utils.SystemUtil @@ -11,6 +12,7 @@ import com.drdisagree.iconify.utils.overlay.OverlayUtil.disableOverlay import com.drdisagree.iconify.utils.overlay.OverlayUtil.enableOverlayExclusiveInCategory import com.drdisagree.iconify.utils.overlay.OverlayUtil.enableOverlays import com.drdisagree.iconify.utils.overlay.OverlayUtil.isOverlayEnabled +import com.drdisagree.iconify.xposed.modules.utils.SystemUtils.isSecurityPatchBeforeJune2024 object NotificationPixelManager { @@ -22,24 +24,48 @@ object NotificationPixelManager { enableOverlays("IconifyComponentCR1.overlay", "IconifyComponentCR2.overlay") } - if (isAtleastA14 && - !RPrefs.getBoolean(FIX_NOTIFICATION_COLOR, false) && - isSecurityPatchBeforeJune2024() - ) { - RPrefs.putBoolean(FIX_NOTIFICATION_COLOR, true) - SystemUtil.restartSystemUI() + if (isAtleastA14) { + var requireReload = false + + if (!RPrefs.getBoolean(FIX_NOTIFICATION_COLOR, false) && + isAndroid14 && isSecurityPatchBeforeJune2024() + ) { + RPrefs.putBoolean(FIX_NOTIFICATION_COLOR, true) + requireReload = true + } + + if (!RPrefs.getBoolean(FIX_NOTIFICATION_FOOTER_BUTTON_COLOR, false)) { + RPrefs.putBoolean(FIX_NOTIFICATION_FOOTER_BUTTON_COLOR, true) + requireReload = true + } + + if (requireReload) { + SystemUtil.restartSystemUI() + } } } fun disableOverlay(n: Int) { disableOverlay("IconifyComponentNFP$n.overlay") - if (isAtleastA14 && - RPrefs.getBoolean(FIX_NOTIFICATION_COLOR, false) && - isSecurityPatchBeforeJune2024() - ) { - RPrefs.putBoolean(FIX_NOTIFICATION_COLOR, false) - SystemUtil.restartSystemUI() + if (isAtleastA14) { + var requireReload = false + + if (RPrefs.getBoolean(FIX_NOTIFICATION_COLOR, false) && + isAndroid14 && isSecurityPatchBeforeJune2024() + ) { + RPrefs.putBoolean(FIX_NOTIFICATION_COLOR, false) + requireReload = true + } + + if (RPrefs.getBoolean(FIX_NOTIFICATION_FOOTER_BUTTON_COLOR, false)) { + RPrefs.putBoolean(FIX_NOTIFICATION_FOOTER_BUTTON_COLOR, false) + requireReload = true + } + + if (requireReload) { + SystemUtil.restartSystemUI() + } } } diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/QuickSettings.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/QuickSettings.kt index 3d62ac04f..4b93e583f 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/QuickSettings.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/QuickSettings.kt @@ -7,6 +7,8 @@ import android.content.res.Resources import android.graphics.Color import android.graphics.PorterDuff import android.os.Build +import android.os.Handler +import android.os.Looper import android.service.quicksettings.Tile import android.view.Gravity import android.view.View @@ -20,6 +22,7 @@ import android.widget.TextView import androidx.annotation.ColorInt import com.drdisagree.iconify.common.Const.SYSTEMUI_PACKAGE import com.drdisagree.iconify.common.Preferences.FIX_NOTIFICATION_COLOR +import com.drdisagree.iconify.common.Preferences.FIX_NOTIFICATION_FOOTER_BUTTON_COLOR import com.drdisagree.iconify.common.Preferences.FIX_QS_TILE_COLOR import com.drdisagree.iconify.common.Preferences.HIDE_QSLABEL_SWITCH import com.drdisagree.iconify.common.Preferences.HIDE_QS_FOOTER_BUTTONS @@ -31,7 +34,9 @@ import com.drdisagree.iconify.common.Preferences.QS_TOPMARGIN import com.drdisagree.iconify.common.Preferences.VERTICAL_QSTILE_SWITCH import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.ModPack +import com.drdisagree.iconify.xposed.modules.utils.Helpers.hookAllMethodsMatchPattern import com.drdisagree.iconify.xposed.modules.utils.Helpers.isPixelVariant +import com.drdisagree.iconify.xposed.modules.utils.SystemUtils.isSecurityPatchBeforeJune2024 import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.toPx import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XC_MethodHook.MethodHookParam @@ -51,6 +56,7 @@ class QuickSettings(context: Context?) : ModPack(context!!) { private var fixQsTileColor = true private var fixNotificationColor = true + private var fixNotificationFooterButtonsColor = true private var qsTextAlwaysWhite = false private var qsTextFollowAccent = false private var hideFooterButtons = false @@ -62,6 +68,7 @@ class QuickSettings(context: Context?) : ModPack(context!!) { private var mFooterButtonsOnDrawListener: OnDrawListener? = null private var mSilentTextContainer: ViewGroup? = null private var mSilentTextOnDrawListener: OnDrawListener? = null + private val isAtLeastAndroid14 = Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE override fun updatePrefs(vararg key: String) { if (Xprefs == null) return @@ -72,10 +79,13 @@ class QuickSettings(context: Context?) : ModPack(context!!) { qsTopMarginEnabled = Xprefs!!.getInt(QS_TOPMARGIN, -1) != -1 qqsTopMargin = Xprefs!!.getInt(QQS_TOPMARGIN, 100) qsTopMargin = Xprefs!!.getInt(QS_TOPMARGIN, 100) - fixQsTileColor = Build.VERSION.SDK_INT >= 34 && + fixQsTileColor = isAtLeastAndroid14 && Xprefs!!.getBoolean(FIX_QS_TILE_COLOR, false) - fixNotificationColor = Build.VERSION.SDK_INT >= 34 && - Xprefs!!.getBoolean(FIX_NOTIFICATION_COLOR, false) + fixNotificationColor = isAtLeastAndroid14 && + Xprefs!!.getBoolean(FIX_NOTIFICATION_COLOR, false) && + isSecurityPatchBeforeJune2024() + fixNotificationFooterButtonsColor = isAtLeastAndroid14 && + Xprefs!!.getBoolean(FIX_NOTIFICATION_FOOTER_BUTTON_COLOR, false) qsTextAlwaysWhite = Xprefs!!.getBoolean(QS_TEXT_ALWAYS_WHITE, false) qsTextFollowAccent = Xprefs!!.getBoolean(QS_TEXT_FOLLOW_ACCENT, false) hideSilentText = Xprefs!!.getBoolean(HIDE_QS_SILENT_TEXT, false) @@ -309,6 +319,8 @@ class QuickSettings(context: Context?) : ModPack(context!!) { } private fun fixQsTileAndLabelColorA14(loadPackageParam: LoadPackageParam) { + if (!isAtLeastAndroid14) return + try { val qsTileViewImplClass = findClass( "$SYSTEMUI_PACKAGE.qs.tileimpl.QSTileViewImpl", @@ -317,7 +329,7 @@ class QuickSettings(context: Context?) : ModPack(context!!) { val removeQsTileTint: XC_MethodHook = object : XC_MethodHook() { override fun afterHookedMethod(param: MethodHookParam) { - if (fixQsTileColor && Build.VERSION.SDK_INT >= 34) { + if (fixQsTileColor) { try { setObjectField( param.thisObject, @@ -556,7 +568,7 @@ class QuickSettings(context: Context?) : ModPack(context!!) { } private fun fixNotificationColorA14(loadPackageParam: LoadPackageParam) { - if (Build.VERSION.SDK_INT < 34) return + if (!isAtLeastAndroid14) return try { val activatableNotificationViewClass = findClass( @@ -611,7 +623,9 @@ class QuickSettings(context: Context?) : ModPack(context!!) { setObjectField(notificationBackgroundView, "mTintColor", 0) - notificationBackgroundView.invalidate() + Handler(Looper.getMainLooper()).post { + notificationBackgroundView.invalidate() + } } } @@ -626,62 +640,47 @@ class QuickSettings(context: Context?) : ModPack(context!!) { removeNotificationTint ) - val replaceTintColor: XC_MethodHook = object : XC_MethodHook() { - override fun beforeHookedMethod(param: MethodHookParam) { - if (!fixNotificationColor) return + hookAllMethodsMatchPattern(notificationBackgroundViewClass, + "setCustomBackground.*", + object : XC_MethodHook() { + override fun beforeHookedMethod(param: MethodHookParam) { + if (!fixNotificationColor) return - setObjectField(param.thisObject, "mTintColor", 0) + setObjectField(param.thisObject, "mTintColor", 0) + } } - } - - val notificationBackgroundViewMethods = listOf( - "setCustomBackground", - "setCustomBackground$1" ) - for (method in notificationBackgroundViewMethods) { - try { - hookAllMethods(notificationBackgroundViewClass, method, replaceTintColor) - } catch (ignored: Throwable) { - } - } - - val removeButtonTint: XC_MethodHook = object : XC_MethodHook() { - override fun afterHookedMethod(param: MethodHookParam) { - if (!fixNotificationColor) return + hookAllMethodsMatchPattern(footerViewClass, + "updateColors.*", + object : XC_MethodHook() { + override fun afterHookedMethod(param: MethodHookParam) { + if (!fixNotificationFooterButtonsColor) return - try { - val mManageButton = - getObjectField(param.thisObject, "mManageButton") as Button - val mClearAllButton = try { - getObjectField(param.thisObject, "mClearAllButton") + try { + val mManageButton = try { + getObjectField(param.thisObject, "mManageButton") + } catch (ignored: Throwable) { + getObjectField(param.thisObject, "mManageOrHistoryButton") + } as Button + val mClearAllButton = try { + getObjectField(param.thisObject, "mClearAllButton") + } catch (ignored: Throwable) { + getObjectField(param.thisObject, "mDismissButton") + } as Button + + mManageButton.background?.colorFilter = null + mClearAllButton.background?.colorFilter = null + + Handler(Looper.getMainLooper()).post { + mManageButton.invalidate() + mClearAllButton.invalidate() + } } catch (ignored: Throwable) { - getObjectField(param.thisObject, "mDismissButton") - } as Button - - mManageButton.background?.clearColorFilter() - mClearAllButton.background?.clearColorFilter() - - mManageButton.invalidate() - mClearAllButton.invalidate() - } catch (ignored: Throwable) { + } } } - } - - val footerViewMethods = listOf( - "updateColors", - "updateColors$1", - "updateColors$2", - "updateColors$3" ) - - for (method in footerViewMethods) { - try { - hookAllMethods(footerViewClass, method, removeButtonTint) - } catch (ignored: Throwable) { - } - } } catch (throwable: Throwable) { log(TAG + throwable) } diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/SystemUtils.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/SystemUtils.kt new file mode 100644 index 000000000..4d83aca77 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/SystemUtils.kt @@ -0,0 +1,27 @@ +package com.drdisagree.iconify.xposed.modules.utils + +import android.os.Build +import android.util.Log +import java.text.SimpleDateFormat +import java.util.Calendar +import java.util.Locale + +object SystemUtils { + + fun isSecurityPatchBeforeJune2024(): Boolean { + val securityPatch = Build.VERSION.SECURITY_PATCH + val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.US) + + return try { + val securityPatchDate = dateFormat.parse(securityPatch) + + val june2024 = Calendar.getInstance() + june2024.set(2024, Calendar.JUNE, 1) + + (securityPatchDate != null && (securityPatchDate < june2024.time)) + } catch (e: Exception) { + Log.e("SECURITY_PATCH_CHECK", "Error parsing security patch date", e) + false + } + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_xposed_themes.xml b/app/src/main/res/layout/fragment_xposed_themes.xml index 14edd6634..bbb0a587c 100644 --- a/app/src/main/res/layout/fragment_xposed_themes.xml +++ b/app/src/main/res/layout/fragment_xposed_themes.xml @@ -88,7 +88,7 @@ android:id="@+id/fix_qs_tile_color" android:layout_width="match_parent" android:layout_height="wrap_content" - app:isChecked="true" + app:isChecked="false" app:summaryText="Fix custom QS tile style on android 14" app:titleText="Fix QS Tile Color" /> @@ -96,10 +96,18 @@ android:id="@+id/fix_notification_color" android:layout_width="match_parent" android:layout_height="wrap_content" - app:isChecked="true" + app:isChecked="false" app:summaryText="@string/fix_notification_color_desc" app:titleText="@string/fix_notification_color_title" /> + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2776f6519..9a1b55ca3 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -488,6 +488,8 @@ Others Fix Notification Color Fix custom notification style on android 14 + Fix Notification Footer Button Color + Fix custom footer button style on android 14 QS Tile From f6b2308d6f0e85f8b6b57dab2af9a3829b38f7f3 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Fri, 16 Aug 2024 00:14:44 +0600 Subject: [PATCH 121/369] Allow hiding QS on secured lockscreen (closes #550) --- .../drdisagree/iconify/common/Preferences.kt | 1 + .../ui/fragments/XposedQuickSettings.kt | 23 +++++-- .../iconify/xposed/modules/QuickSettings.kt | 69 ++++++++++++++++--- .../layout/fragment_xposed_quick_settings.xml | 7 ++ app/src/main/res/values/strings.xml | 4 +- 5 files changed, 87 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt index f798ef423..ac317523e 100644 --- a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt +++ b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt @@ -123,6 +123,7 @@ object Preferences { const val FIX_NOTIFICATION_COLOR = "xposed_fixnotificationcolor" const val FIX_NOTIFICATION_FOOTER_BUTTON_COLOR = "xposed_fixnotificationfooterbuttoncolor" const val HIDE_QS_SILENT_TEXT = "xposed_hideqssilenttext" + const val HIDE_QS_ON_LOCKSCREEN = "xposed_hideqsonlockscreen" const val HIDE_QS_FOOTER_BUTTONS = "xposed_hideqsfooterbuttons" const val QS_TEXT_ALWAYS_WHITE = "xposed_qstextalwayswhite" const val QS_TEXT_FOLLOW_ACCENT = "xposed_qstextfollowaccent" diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedQuickSettings.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedQuickSettings.kt index 10cc300da..1f32b11d3 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedQuickSettings.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedQuickSettings.kt @@ -9,9 +9,9 @@ import android.view.ViewGroup import android.widget.CompoundButton import com.drdisagree.iconify.R import com.drdisagree.iconify.common.Const.SWITCH_ANIMATION_DELAY -import com.drdisagree.iconify.common.Dynamic.isAtleastA14 import com.drdisagree.iconify.common.Preferences.HIDE_QSLABEL_SWITCH import com.drdisagree.iconify.common.Preferences.HIDE_QS_FOOTER_BUTTONS +import com.drdisagree.iconify.common.Preferences.HIDE_QS_ON_LOCKSCREEN import com.drdisagree.iconify.common.Preferences.HIDE_QS_SILENT_TEXT import com.drdisagree.iconify.common.Preferences.QQS_TOPMARGIN import com.drdisagree.iconify.common.Preferences.QS_TEXT_ALWAYS_WHITE @@ -132,17 +132,26 @@ class XposedQuickSettings : BaseFragment() { binding.labelAccent.isSwitchChecked = getBoolean(QS_TEXT_FOLLOW_ACCENT, false) binding.labelAccent.setSwitchChangeListener(qsTextAccentListener) + // Hide QS on lockscreen + binding.hideQsOnLockscreen.isSwitchChecked = getBoolean(HIDE_QS_ON_LOCKSCREEN, false) + binding.hideQsOnLockscreen.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> + putBoolean(HIDE_QS_ON_LOCKSCREEN, isChecked) + + Handler(Looper.getMainLooper()).postDelayed( + { SystemUtil.handleSystemUIRestart() }, + SWITCH_ANIMATION_DELAY + ) + } + // Hide silent text binding.hideSilentText.isSwitchChecked = getBoolean(HIDE_QS_SILENT_TEXT, false) binding.hideSilentText.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> putBoolean(HIDE_QS_SILENT_TEXT, isChecked) - if (isAtleastA14) { - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - } + Handler(Looper.getMainLooper()).postDelayed( + { SystemUtil.handleSystemUIRestart() }, + SWITCH_ANIMATION_DELAY + ) } // Hide footer buttons diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/QuickSettings.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/QuickSettings.kt index 4b93e583f..2ab50f8bf 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/QuickSettings.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/QuickSettings.kt @@ -26,6 +26,7 @@ import com.drdisagree.iconify.common.Preferences.FIX_NOTIFICATION_FOOTER_BUTTON_ import com.drdisagree.iconify.common.Preferences.FIX_QS_TILE_COLOR import com.drdisagree.iconify.common.Preferences.HIDE_QSLABEL_SWITCH import com.drdisagree.iconify.common.Preferences.HIDE_QS_FOOTER_BUTTONS +import com.drdisagree.iconify.common.Preferences.HIDE_QS_ON_LOCKSCREEN import com.drdisagree.iconify.common.Preferences.HIDE_QS_SILENT_TEXT import com.drdisagree.iconify.common.Preferences.QQS_TOPMARGIN import com.drdisagree.iconify.common.Preferences.QS_TEXT_ALWAYS_WHITE @@ -34,6 +35,7 @@ import com.drdisagree.iconify.common.Preferences.QS_TOPMARGIN import com.drdisagree.iconify.common.Preferences.VERTICAL_QSTILE_SWITCH import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.ModPack +import com.drdisagree.iconify.xposed.modules.utils.Helpers.findClassInArray import com.drdisagree.iconify.xposed.modules.utils.Helpers.hookAllMethodsMatchPattern import com.drdisagree.iconify.xposed.modules.utils.Helpers.isPixelVariant import com.drdisagree.iconify.xposed.modules.utils.SystemUtils.isSecurityPatchBeforeJune2024 @@ -59,8 +61,9 @@ class QuickSettings(context: Context?) : ModPack(context!!) { private var fixNotificationFooterButtonsColor = true private var qsTextAlwaysWhite = false private var qsTextFollowAccent = false - private var hideFooterButtons = false + private var hideQsOnLockscreen = false private var hideSilentText = false + private var hideFooterButtons = false private var qqsTopMargin = 100 private var qsTopMargin = 100 private var mParam: Any? = null @@ -68,6 +71,7 @@ class QuickSettings(context: Context?) : ModPack(context!!) { private var mFooterButtonsOnDrawListener: OnDrawListener? = null private var mSilentTextContainer: ViewGroup? = null private var mSilentTextOnDrawListener: OnDrawListener? = null + private var mKeyguardStateController: Any? = null private val isAtLeastAndroid14 = Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE override fun updatePrefs(vararg key: String) { @@ -88,6 +92,7 @@ class QuickSettings(context: Context?) : ModPack(context!!) { Xprefs!!.getBoolean(FIX_NOTIFICATION_FOOTER_BUTTON_COLOR, false) qsTextAlwaysWhite = Xprefs!!.getBoolean(QS_TEXT_ALWAYS_WHITE, false) qsTextFollowAccent = Xprefs!!.getBoolean(QS_TEXT_FOLLOW_ACCENT, false) + hideQsOnLockscreen = Xprefs!!.getBoolean(HIDE_QS_ON_LOCKSCREEN, false) hideSilentText = Xprefs!!.getBoolean(HIDE_QS_SILENT_TEXT, false) hideFooterButtons = Xprefs!!.getBoolean(HIDE_QS_FOOTER_BUTTONS, false) @@ -100,6 +105,7 @@ class QuickSettings(context: Context?) : ModPack(context!!) { fixQsTileAndLabelColorA14(loadPackageParam) fixNotificationColorA14(loadPackageParam) manageQsElementVisibility(loadPackageParam) + disableQsOnSecureLockScreen(loadPackageParam) } private fun setVerticalTiles(loadPackageParam: LoadPackageParam) { @@ -688,16 +694,11 @@ class QuickSettings(context: Context?) : ModPack(context!!) { private fun manageQsElementVisibility(loadPackageParam: LoadPackageParam) { try { - var footerViewClass = findClassIfExists( + val footerViewClass = findClassInArray( + loadPackageParam.classLoader, "$SYSTEMUI_PACKAGE.statusbar.notification.footer.ui.view.FooterView", - loadPackageParam.classLoader + "$SYSTEMUI_PACKAGE.statusbar.notification.row.FooterView" ) - if (footerViewClass == null) { - footerViewClass = findClass( - "$SYSTEMUI_PACKAGE.statusbar.notification.row.FooterView", - loadPackageParam.classLoader - ) - } hookAllMethods(footerViewClass, "onFinishInflate", object : XC_MethodHook() { override fun afterHookedMethod(param: MethodHookParam) { @@ -748,6 +749,56 @@ class QuickSettings(context: Context?) : ModPack(context!!) { } } + private fun disableQsOnSecureLockScreen(loadPackageParam: LoadPackageParam) { + val remoteInputQuickSettingsDisablerClass = findClass( + "$SYSTEMUI_PACKAGE.statusbar.policy.RemoteInputQuickSettingsDisabler", + loadPackageParam.classLoader + ) + val phoneStatusBarPolicyClass = findClass( + "$SYSTEMUI_PACKAGE.statusbar.phone.PhoneStatusBarPolicy", + loadPackageParam.classLoader + ) + + hookAllConstructors(phoneStatusBarPolicyClass, object : XC_MethodHook() { + override fun afterHookedMethod(param: MethodHookParam) { + mKeyguardStateController = getObjectField( + param.thisObject, + "mKeyguardStateController" + ) + + if (mKeyguardStateController == null) { + log(TAG + "mKeyguardStateController is null") + } + } + }) + + hookAllMethods(remoteInputQuickSettingsDisablerClass, + "adjustDisableFlags", + object : XC_MethodHook() { + override fun beforeHookedMethod(param: MethodHookParam) { + if (!hideQsOnLockscreen || mKeyguardStateController == null) return + + val isUnlocked = !(getObjectField( + mKeyguardStateController, + "mShowing" + ) as Boolean) || getObjectField( + mKeyguardStateController, + "mCanDismissLockScreen" + ) as Boolean + + /* + * Location: frameworks/base/core/java/android/app/StatusBarManager.java + * public static final int DISABLE2_QUICK_SETTINGS = 1; + */ + param.result = if (hideQsOnLockscreen && !isUnlocked) { + param.args[0] as Int or 1 // DISABLE2_QUICK_SETTINGS + } else { + param.args[0] + } + } + }) + } + private fun isQsIconLabelStateActive(param: MethodHookParam?, stateIndex: Int): Boolean { if (param?.args == null) return false diff --git a/app/src/main/res/layout/fragment_xposed_quick_settings.xml b/app/src/main/res/layout/fragment_xposed_quick_settings.xml index fbcc05ad8..e73b9d0ae 100644 --- a/app/src/main/res/layout/fragment_xposed_quick_settings.xml +++ b/app/src/main/res/layout/fragment_xposed_quick_settings.xml @@ -95,6 +95,13 @@ android:layout_height="wrap_content" app:titleText="@string/section_title_qs_elements" /> + + Text Size Scaling QS Margin QS Elements + Hide QS on Lockscreen + Disable quick settings panel on secured lockscreen Hide Silent Text - Hide silent text shown as header of silent notifications (Requires SystemUI restart) + Hide silent text shown as header of silent notifications Hide Footer Buttons Hide footer buttons shown under notification stack From f9b99bcd51beec86cde05932c2738472b83523dd Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Fri, 16 Aug 2024 00:44:09 +0600 Subject: [PATCH 122/369] Misc improvements for notification color fix --- .../iconify/xposed/modules/QuickSettings.kt | 55 +++++++++++++++---- 1 file changed, 45 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/QuickSettings.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/QuickSettings.kt index 2ab50f8bf..6837437f0 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/QuickSettings.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/QuickSettings.kt @@ -6,6 +6,7 @@ import android.content.res.ColorStateList import android.content.res.Resources import android.graphics.Color import android.graphics.PorterDuff +import android.graphics.drawable.Drawable import android.os.Build import android.os.Handler import android.os.Looper @@ -597,11 +598,13 @@ class QuickSettings(context: Context?) : ModPack(context!!) { } val removeNotificationTint: XC_MethodHook = object : XC_MethodHook() { - override fun afterHookedMethod(param: MethodHookParam) { + override fun beforeHookedMethod(param: MethodHookParam) { if (!fixNotificationColor) return - val notificationBackgroundView = - getObjectField(param.thisObject, "mBackgroundNormal") as View + val notificationBackgroundView = getObjectField( + param.thisObject, + "mBackgroundNormal" + ) as View try { setObjectField( @@ -613,21 +616,36 @@ class QuickSettings(context: Context?) : ModPack(context!!) { } try { - callMethod( - getObjectField( - notificationBackgroundView, - "mBackground" - ), "clearColorFilter" - ) + setObjectField(notificationBackgroundView, "mTintColor", 0) } catch (ignored: Throwable) { } + } + + override fun afterHookedMethod(param: MethodHookParam) { + if (!fixNotificationColor) return + + val notificationBackgroundView = getObjectField( + param.thisObject, + "mBackgroundNormal" + ) as View try { callMethod(notificationBackgroundView, "setColorFilter", 0) } catch (ignored: Throwable) { } - setObjectField(notificationBackgroundView, "mTintColor", 0) + try { + (getObjectField( + notificationBackgroundView, + "mBackground" + ) as Drawable).colorFilter = null + } catch (ignored: Throwable) { + } + + try { + setObjectField(notificationBackgroundView, "mTintColor", 0) + } catch (ignored: Throwable) { + } Handler(Looper.getMainLooper()).post { notificationBackgroundView.invalidate() @@ -646,6 +664,23 @@ class QuickSettings(context: Context?) : ModPack(context!!) { removeNotificationTint ) + hookAllMethods(activatableNotificationViewClass, + "calculateBgColor", + object : XC_MethodHook() { + override fun beforeHookedMethod(param: MethodHookParam) { + if (!fixNotificationColor) return + + try { + param.result = getObjectField( + param.thisObject, + "mCurrentBackgroundTint" + ) + } catch (ignored: Throwable) { + } + } + } + ) + hookAllMethodsMatchPattern(notificationBackgroundViewClass, "setCustomBackground.*", object : XC_MethodHook() { From 4e85680103ee46c2a3a6ffffae1b648c44a0376e Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Wed, 14 Aug 2024 16:02:12 +0200 Subject: [PATCH 123/369] Initial commit for LockscreenWeather --- app/src/main/AndroidManifest.xml | 25 + .../drdisagree/iconify/common/Preferences.kt | 22 + .../iconify/receiver/BootReceiver.kt | 4 + .../iconify/services/WeatherScheduler.kt | 72 +++ .../ui/fragments/XposedLockscreenClock.kt | 34 +- .../ui/fragments/XposedLockscreenWeather.kt | 355 ++++++++++++ .../drdisagree/iconify/ui/utils/ViewHelper.kt | 25 + .../iconify/ui/widgets/BottomSheetWidget.kt | 5 + .../iconify/utils/NetworkUtils.java | 159 ++++++ .../iconify/utils/OmniJawsClient.java | 404 ++++++++++++++ .../weather/AbstractWeatherProvider.kt | 172 ++++++ .../com/drdisagree/iconify/weather/Config.kt | 149 +++++ .../iconify/weather/WeatherContentProvider.kt | 218 ++++++++ .../drdisagree/iconify/weather/WeatherInfo.kt | 288 ++++++++++ .../drdisagree/iconify/weather/WeatherWork.kt | 263 +++++++++ .../weather/providers/OpenMeteoProvider.kt | 359 ++++++++++++ .../drdisagree/iconify/xposed/EntryList.kt | 2 + .../xposed/modules/LockscreenWeather.kt | 176 ++++++ .../xposed/views/CurrentWeatherView.kt | 514 ++++++++++++++++++ app/src/main/res/drawable-nodpi/google_0.png | Bin 0 -> 961 bytes app/src/main/res/drawable-nodpi/google_1.png | Bin 0 -> 1274 bytes app/src/main/res/drawable-nodpi/google_10.png | Bin 0 -> 1030 bytes app/src/main/res/drawable-nodpi/google_11.png | Bin 0 -> 1030 bytes app/src/main/res/drawable-nodpi/google_12.png | Bin 0 -> 1030 bytes app/src/main/res/drawable-nodpi/google_13.png | Bin 0 -> 868 bytes app/src/main/res/drawable-nodpi/google_14.png | Bin 0 -> 868 bytes app/src/main/res/drawable-nodpi/google_15.png | Bin 0 -> 868 bytes app/src/main/res/drawable-nodpi/google_16.png | Bin 0 -> 868 bytes app/src/main/res/drawable-nodpi/google_17.png | Bin 0 -> 868 bytes app/src/main/res/drawable-nodpi/google_18.png | Bin 0 -> 868 bytes app/src/main/res/drawable-nodpi/google_19.png | Bin 0 -> 881 bytes app/src/main/res/drawable-nodpi/google_2.png | Bin 0 -> 961 bytes app/src/main/res/drawable-nodpi/google_20.png | Bin 0 -> 881 bytes app/src/main/res/drawable-nodpi/google_21.png | Bin 0 -> 881 bytes app/src/main/res/drawable-nodpi/google_22.png | Bin 0 -> 881 bytes app/src/main/res/drawable-nodpi/google_23.png | Bin 0 -> 784 bytes app/src/main/res/drawable-nodpi/google_24.png | Bin 0 -> 784 bytes app/src/main/res/drawable-nodpi/google_25.png | Bin 0 -> 733 bytes app/src/main/res/drawable-nodpi/google_26.png | Bin 0 -> 674 bytes app/src/main/res/drawable-nodpi/google_27.png | Bin 0 -> 958 bytes app/src/main/res/drawable-nodpi/google_28.png | Bin 0 -> 1189 bytes app/src/main/res/drawable-nodpi/google_29.png | Bin 0 -> 976 bytes app/src/main/res/drawable-nodpi/google_3.png | Bin 0 -> 1274 bytes app/src/main/res/drawable-nodpi/google_30.png | Bin 0 -> 1115 bytes app/src/main/res/drawable-nodpi/google_31.png | Bin 0 -> 833 bytes app/src/main/res/drawable-nodpi/google_32.png | Bin 0 -> 709 bytes app/src/main/res/drawable-nodpi/google_33.png | Bin 0 -> 833 bytes app/src/main/res/drawable-nodpi/google_34.png | Bin 0 -> 709 bytes app/src/main/res/drawable-nodpi/google_35.png | Bin 0 -> 1030 bytes app/src/main/res/drawable-nodpi/google_36.png | Bin 0 -> 686 bytes app/src/main/res/drawable-nodpi/google_37.png | Bin 0 -> 1323 bytes app/src/main/res/drawable-nodpi/google_38.png | Bin 0 -> 1323 bytes app/src/main/res/drawable-nodpi/google_39.png | Bin 0 -> 1323 bytes app/src/main/res/drawable-nodpi/google_4.png | Bin 0 -> 1274 bytes app/src/main/res/drawable-nodpi/google_40.png | Bin 0 -> 1176 bytes app/src/main/res/drawable-nodpi/google_41.png | Bin 0 -> 868 bytes app/src/main/res/drawable-nodpi/google_42.png | Bin 0 -> 1261 bytes app/src/main/res/drawable-nodpi/google_43.png | Bin 0 -> 868 bytes app/src/main/res/drawable-nodpi/google_44.png | Bin 0 -> 976 bytes app/src/main/res/drawable-nodpi/google_45.png | Bin 0 -> 1536 bytes app/src/main/res/drawable-nodpi/google_46.png | Bin 0 -> 1261 bytes app/src/main/res/drawable-nodpi/google_47.png | Bin 0 -> 1536 bytes app/src/main/res/drawable-nodpi/google_5.png | Bin 0 -> 1030 bytes app/src/main/res/drawable-nodpi/google_6.png | Bin 0 -> 1030 bytes app/src/main/res/drawable-nodpi/google_7.png | Bin 0 -> 1030 bytes app/src/main/res/drawable-nodpi/google_8.png | Bin 0 -> 1030 bytes app/src/main/res/drawable-nodpi/google_9.png | Bin 0 -> 1030 bytes app/src/main/res/drawable-nodpi/google_na.png | Bin 0 -> 998 bytes .../res/drawable-v24/ic_humidity_symbol.xml | 8 + .../main/res/drawable-v24/ic_wind_symbol.xml | 8 + .../ambient_indication_pill_background.xml | 21 + .../main/res/drawable/date_box_str_border.xml | 13 + app/src/main/res/drawable/date_str_accent.xml | 10 + app/src/main/res/drawable/date_str_border.xml | 13 + .../main/res/drawable/date_str_borderacc.xml | 38 ++ .../main/res/drawable/date_str_bordergrad.xml | 39 ++ .../main/res/drawable/date_str_gradient.xml | 14 + .../drawable/ic_xposed_lockscreen_weather.xml | 20 + .../fragment_xposed_lockscreen_clock.xml | 7 + .../fragment_xposed_lockscreen_weather.xml | 180 ++++++ .../main/res/layout/view_current_weather.xml | 97 ++++ .../main/res/navigation/nav_xposed_menu.xml | 20 + .../res/raw/com_drdisagree_iconify_keep.xml | 3 + app/src/main/res/values/arrays.xml | 29 + app/src/main/res/values/dimens.xml | 10 + app/src/main/res/values/strings.xml | 93 ++++ 86 files changed, 3856 insertions(+), 13 deletions(-) create mode 100644 app/src/main/java/com/drdisagree/iconify/services/WeatherScheduler.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/utils/NetworkUtils.java create mode 100644 app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.java create mode 100644 app/src/main/java/com/drdisagree/iconify/weather/AbstractWeatherProvider.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/weather/Config.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/weather/WeatherContentProvider.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/weather/WeatherInfo.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/weather/WeatherWork.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/weather/providers/OpenMeteoProvider.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/xposed/views/CurrentWeatherView.kt create mode 100644 app/src/main/res/drawable-nodpi/google_0.png create mode 100644 app/src/main/res/drawable-nodpi/google_1.png create mode 100644 app/src/main/res/drawable-nodpi/google_10.png create mode 100644 app/src/main/res/drawable-nodpi/google_11.png create mode 100644 app/src/main/res/drawable-nodpi/google_12.png create mode 100644 app/src/main/res/drawable-nodpi/google_13.png create mode 100644 app/src/main/res/drawable-nodpi/google_14.png create mode 100644 app/src/main/res/drawable-nodpi/google_15.png create mode 100644 app/src/main/res/drawable-nodpi/google_16.png create mode 100644 app/src/main/res/drawable-nodpi/google_17.png create mode 100644 app/src/main/res/drawable-nodpi/google_18.png create mode 100644 app/src/main/res/drawable-nodpi/google_19.png create mode 100644 app/src/main/res/drawable-nodpi/google_2.png create mode 100644 app/src/main/res/drawable-nodpi/google_20.png create mode 100644 app/src/main/res/drawable-nodpi/google_21.png create mode 100644 app/src/main/res/drawable-nodpi/google_22.png create mode 100644 app/src/main/res/drawable-nodpi/google_23.png create mode 100644 app/src/main/res/drawable-nodpi/google_24.png create mode 100644 app/src/main/res/drawable-nodpi/google_25.png create mode 100644 app/src/main/res/drawable-nodpi/google_26.png create mode 100644 app/src/main/res/drawable-nodpi/google_27.png create mode 100644 app/src/main/res/drawable-nodpi/google_28.png create mode 100644 app/src/main/res/drawable-nodpi/google_29.png create mode 100644 app/src/main/res/drawable-nodpi/google_3.png create mode 100644 app/src/main/res/drawable-nodpi/google_30.png create mode 100644 app/src/main/res/drawable-nodpi/google_31.png create mode 100644 app/src/main/res/drawable-nodpi/google_32.png create mode 100644 app/src/main/res/drawable-nodpi/google_33.png create mode 100644 app/src/main/res/drawable-nodpi/google_34.png create mode 100644 app/src/main/res/drawable-nodpi/google_35.png create mode 100644 app/src/main/res/drawable-nodpi/google_36.png create mode 100644 app/src/main/res/drawable-nodpi/google_37.png create mode 100644 app/src/main/res/drawable-nodpi/google_38.png create mode 100644 app/src/main/res/drawable-nodpi/google_39.png create mode 100644 app/src/main/res/drawable-nodpi/google_4.png create mode 100644 app/src/main/res/drawable-nodpi/google_40.png create mode 100644 app/src/main/res/drawable-nodpi/google_41.png create mode 100644 app/src/main/res/drawable-nodpi/google_42.png create mode 100644 app/src/main/res/drawable-nodpi/google_43.png create mode 100644 app/src/main/res/drawable-nodpi/google_44.png create mode 100644 app/src/main/res/drawable-nodpi/google_45.png create mode 100644 app/src/main/res/drawable-nodpi/google_46.png create mode 100644 app/src/main/res/drawable-nodpi/google_47.png create mode 100644 app/src/main/res/drawable-nodpi/google_5.png create mode 100644 app/src/main/res/drawable-nodpi/google_6.png create mode 100644 app/src/main/res/drawable-nodpi/google_7.png create mode 100644 app/src/main/res/drawable-nodpi/google_8.png create mode 100644 app/src/main/res/drawable-nodpi/google_9.png create mode 100644 app/src/main/res/drawable-nodpi/google_na.png create mode 100644 app/src/main/res/drawable-v24/ic_humidity_symbol.xml create mode 100644 app/src/main/res/drawable-v24/ic_wind_symbol.xml create mode 100644 app/src/main/res/drawable/ambient_indication_pill_background.xml create mode 100644 app/src/main/res/drawable/date_box_str_border.xml create mode 100644 app/src/main/res/drawable/date_str_accent.xml create mode 100644 app/src/main/res/drawable/date_str_border.xml create mode 100644 app/src/main/res/drawable/date_str_borderacc.xml create mode 100644 app/src/main/res/drawable/date_str_bordergrad.xml create mode 100644 app/src/main/res/drawable/date_str_gradient.xml create mode 100644 app/src/main/res/drawable/ic_xposed_lockscreen_weather.xml create mode 100644 app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml create mode 100644 app/src/main/res/layout/view_current_weather.xml create mode 100644 app/src/main/res/raw/com_drdisagree_iconify_keep.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index fbf9bb1a3..5e5672a7c 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -26,6 +26,14 @@ android:name="android.permission.QUERY_ALL_PACKAGES" tools:ignore="QueryAllPackagesPermission" /> + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt index ac317523e..e6bcf5108 100644 --- a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt +++ b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt @@ -248,6 +248,28 @@ object Preferences { const val NAVBAR_LOW_SENS = "navbarlowsens" const val NAVBAR_HIDE_PILL = "navbarhidepill" + // Weather + const val WEATHER_SWITCH: String = "weather_switch" + const val WEATHER_ICON_PACK: String = "weather_icon_pack" + const val WEATHER_UPDATE_INTERVAL: String = "weather_update_interval" + const val WEATHER_SHOW_LOCATION: String = "weather_show_location" + const val WEATHER_SHOW_CONDITION: String = "weather_show_condition" + const val WEATHER_SHOW_HUMIDITY: String = "weather_show_humidity" + const val WEATHER_SHOW_WIND: String = "weather_show_wind" + const val WEATHER_TEXT_SIZE: String = "weather_text_size" + const val WEATHER_ICON_SIZE: String = "weather_icon_size" + const val WEATHER_TEXT_COLOR_SWITCH: String = "weather_text_color_switch" + const val WEATHER_TEXT_COLOR: String = "weather_text_color" + const val WEATHER_PROVIDER: String = "weather_provider" + const val WEATHER_OWM_KEY: String = "owm_key" + const val WEATHER_UNITS: String = "weather_units" + const val WEATHER_CUSTOM_LOCATION: String = "weather_custom_location_switch" + const val WEATHER_CUSTOM_LOCATION_NAME: String = "weather_custom_location_name" + const val WEATHER_CUSTOM_MARGINS: String = "weather_custom_margins" + const val WEATHER_CUSTOM_MARGINS_TOP: String = "weather_custom_margins_top" + const val WEATHER_CUSTOM_MARGINS_LEFT: String = "weather_custom_margins_left" + const val WEATHER_STYLE: String = "weather_style" + // Settings const val APP_LANGUAGE = "IconifyAppLanguage" const val APP_ICON = "IconifyAppIcon" diff --git a/app/src/main/java/com/drdisagree/iconify/receiver/BootReceiver.kt b/app/src/main/java/com/drdisagree/iconify/receiver/BootReceiver.kt index 242c60bfd..12f75fb90 100644 --- a/app/src/main/java/com/drdisagree/iconify/receiver/BootReceiver.kt +++ b/app/src/main/java/com/drdisagree/iconify/receiver/BootReceiver.kt @@ -7,6 +7,7 @@ import android.util.Log import com.drdisagree.iconify.common.Const.ACTION_BOOT_COMPLETED import com.drdisagree.iconify.common.Const.SYSTEMUI_PACKAGE import com.drdisagree.iconify.services.UpdateScheduler +import com.drdisagree.iconify.services.WeatherScheduler class BootReceiver : BroadcastReceiver() { @@ -19,6 +20,9 @@ class BootReceiver : BroadcastReceiver() { // Schedule updates UpdateScheduler.scheduleUpdates(context) + // Schedule Weather Updates + WeatherScheduler.scheduleUpdates(context) + // Update QS clock on boot val broadcast: Intent = Intent(ACTION_BOOT_COMPLETED) broadcast.putExtra("packageName", SYSTEMUI_PACKAGE) diff --git a/app/src/main/java/com/drdisagree/iconify/services/WeatherScheduler.kt b/app/src/main/java/com/drdisagree/iconify/services/WeatherScheduler.kt new file mode 100644 index 000000000..76176e52e --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/services/WeatherScheduler.kt @@ -0,0 +1,72 @@ +package com.drdisagree.iconify.services + +import android.content.Context +import android.util.Log +import androidx.work.BackoffPolicy +import androidx.work.Configuration +import androidx.work.ExistingPeriodicWorkPolicy +import androidx.work.OneTimeWorkRequest +import androidx.work.PeriodicWorkRequest +import androidx.work.WorkManager +import com.drdisagree.iconify.BuildConfig +import com.drdisagree.iconify.weather.Config +import com.drdisagree.iconify.weather.WeatherWork +import java.util.concurrent.TimeUnit + +object WeatherScheduler { + private const val UPDATE_WORK_NAME: String = BuildConfig.APPLICATION_ID + ".WeatherSchedule" + + fun scheduleUpdates(context: Context?) { + Log.d("Weather Scheduler", "Updating update schedule...") + + if (!WorkManager.isInitialized()) { + WorkManager.initialize(context!!, Configuration.Builder().build()) + } + + val workManager = WorkManager.getInstance(context!!) + + val weatherEnabled: Boolean = Config.isEnabled(context) + + Log.d("Weather Scheduler", "Weather enabled: $weatherEnabled") + + if (weatherEnabled) { + Log.d("Weather Scheduler", "Scheduling updates") + val builder: PeriodicWorkRequest.Builder = + PeriodicWorkRequest.Builder(WeatherWork::class.java, + Config.getUpdateInterval(context).toLong(), TimeUnit.HOURS) + .setBackoffCriteria(BackoffPolicy.LINEAR, 1, TimeUnit.HOURS) + + workManager.enqueueUniquePeriodicWork( + UPDATE_WORK_NAME, + ExistingPeriodicWorkPolicy.UPDATE, + builder.build() + ) + } else { + workManager.cancelUniqueWork(UPDATE_WORK_NAME) + } + } + + fun unscheduleUpdates(context: Context?) { + if (!WorkManager.isInitialized()) { + WorkManager.initialize(context!!, Configuration.Builder().build()) + } + + val workManager = WorkManager.getInstance(context!!) + + workManager.cancelUniqueWork(UPDATE_WORK_NAME) + } + + fun scheduleUpdateNow(context: Context?) { + Log.d("Weather Scheduler", "Check update now") + + if (!WorkManager.isInitialized()) { + WorkManager.initialize(context!!, Configuration.Builder().build()) + } + + val workManager = WorkManager.getInstance(context!!) + + val builder: OneTimeWorkRequest.Builder = OneTimeWorkRequest.Builder(WeatherWork::class.java) + + workManager.enqueue(builder.build()) + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenClock.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenClock.kt index b058b1e13..2fde46bd6 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenClock.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenClock.kt @@ -14,6 +14,7 @@ import android.widget.Toast import androidx.activity.result.ActivityResult import androidx.activity.result.contract.ActivityResultContracts import androidx.core.content.ContextCompat +import androidx.navigation.Navigation.findNavController import androidx.recyclerview.widget.LinearSnapHelper import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.SnapHelper @@ -374,6 +375,12 @@ class XposedLockscreenClock : BaseFragment() { } }) + binding.lsWeather.setOnClickListener { + findNavController(binding.lsWeather).navigate( + (R.id.action_xposedLockscreenClock_to_xposedLockscreenWeather) + ) + } + return view } @@ -430,19 +437,20 @@ class XposedLockscreenClock : BaseFragment() { } private fun updateEnabled(enabled: Boolean) { - binding.lockscreenClockFont.setEnabled(enabled) - binding.lsClockCustomColor.setEnabled(enabled) - binding.colorPickerAccent1.setEnabled(enabled) - binding.colorPickerAccent2.setEnabled(enabled) - binding.colorPickerAccent3.setEnabled(enabled) - binding.colorPickerText1.setEnabled(enabled) - binding.colorPickerText2.setEnabled(enabled) - binding.lsclockLineHeight.setEnabled(enabled) - binding.lsClockTextscaling.setEnabled(enabled) - binding.lsclockTopMargin.setEnabled(enabled) - binding.lsclockBottomMargin.setEnabled(enabled) - binding.lsclockCustomUsername.setEnabled(enabled) - binding.lsclockCustomDevicename.setEnabled(enabled) + binding.lockscreenClockFont.isEnabled = enabled + binding.lsClockCustomColor.isEnabled = enabled + binding.colorPickerAccent1.isEnabled = enabled + binding.colorPickerAccent2.isEnabled = enabled + binding.colorPickerAccent3.isEnabled = enabled + binding.colorPickerText1.isEnabled = enabled + binding.colorPickerText2.isEnabled = enabled + binding.lsclockLineHeight.isEnabled = enabled + binding.lsClockTextscaling.isEnabled = enabled + binding.lsclockTopMargin.isEnabled = enabled + binding.lsclockBottomMargin.isEnabled = enabled + binding.lsclockCustomUsername.isEnabled = enabled + binding.lsclockCustomDevicename.isEnabled = enabled + binding.lsWeather.isEnabled = enabled } private fun showMoreLsSettings() { diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt new file mode 100644 index 000000000..18cdb2b3f --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt @@ -0,0 +1,355 @@ +package com.drdisagree.iconify.ui.fragments + +import android.Manifest +import android.app.Dialog +import android.content.Context +import android.content.DialogInterface +import android.content.Intent +import android.content.pm.PackageManager +import android.location.LocationManager +import android.net.Uri +import android.os.Bundle +import android.provider.Settings +import android.util.Log +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.CompoundButton +import androidx.activity.result.ActivityResultLauncher +import androidx.activity.result.contract.ActivityResultContracts +import com.drdisagree.iconify.BuildConfig +import com.drdisagree.iconify.Iconify.Companion.appContextLocale +import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_LOCATION +import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS +import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_LEFT +import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_TOP +import com.drdisagree.iconify.common.Preferences.WEATHER_ICON_SIZE +import com.drdisagree.iconify.common.Preferences.WEATHER_SHOW_CONDITION +import com.drdisagree.iconify.common.Preferences.WEATHER_SHOW_HUMIDITY +import com.drdisagree.iconify.common.Preferences.WEATHER_SHOW_LOCATION +import com.drdisagree.iconify.common.Preferences.WEATHER_SHOW_WIND +import com.drdisagree.iconify.common.Preferences.WEATHER_STYLE +import com.drdisagree.iconify.common.Preferences.WEATHER_SWITCH +import com.drdisagree.iconify.common.Preferences.WEATHER_TEXT_COLOR +import com.drdisagree.iconify.common.Preferences.WEATHER_TEXT_COLOR_SWITCH +import com.drdisagree.iconify.common.Preferences.WEATHER_TEXT_SIZE +import com.drdisagree.iconify.common.Preferences.WEATHER_UNITS +import com.drdisagree.iconify.common.Preferences.WEATHER_UPDATE_INTERVAL +import com.drdisagree.iconify.config.RPrefs.getBoolean +import com.drdisagree.iconify.config.RPrefs.getInt +import com.drdisagree.iconify.config.RPrefs.putBoolean +import com.drdisagree.iconify.config.RPrefs.putInt +import com.drdisagree.iconify.config.RPrefs.putString +import com.drdisagree.iconify.databinding.FragmentXposedLockscreenWeatherBinding +import com.drdisagree.iconify.services.WeatherScheduler +import com.drdisagree.iconify.ui.base.BaseFragment +import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader +import com.drdisagree.iconify.utils.OmniJawsClient +import com.drdisagree.iconify.weather.Config +import com.google.android.material.dialog.MaterialAlertDialogBuilder +import com.google.android.material.slider.Slider + +class XposedLockscreenWeather:BaseFragment(), + OmniJawsClient.OmniJawsObserver { + + private lateinit var binding: FragmentXposedLockscreenWeatherBinding + private lateinit var mWeatherClient: OmniJawsClient + private var mTriggerPermissionCheck = false + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View { + binding = FragmentXposedLockscreenWeatherBinding.inflate(inflater, container, false) + val view: View = binding.getRoot() + + // Header + setHeader( + requireContext(), + getParentFragmentManager(), + binding.header.toolbar, + R.string.activity_title_lockscreen_weather + ) + + mWeatherClient = OmniJawsClient(requireContext(), false) + + return view + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + + if (!hasPermissions()) { + requestPermissionLauncher.launch( + arrayOf( + Manifest.permission.ACCESS_FINE_LOCATION, + Manifest.permission.ACCESS_COARSE_LOCATION, + Manifest.permission.ACCESS_BACKGROUND_LOCATION + ) + ) + } + + binding.enableLockscreenWeather.isSwitchChecked = getBoolean(WEATHER_SWITCH, false) + binding.enableLockscreenWeather.setSwitchChangeListener{ _: CompoundButton?, isChecked: Boolean -> + + putBoolean(WEATHER_SWITCH, isChecked) + Config.setEnabled(requireContext(), isChecked, WEATHER_SWITCH) + +// updateEnabled(isChecked) + + if (!hasPermissions()) { + showPermissionDialog() + } else { + checkLocationPermissions(false) + } + } + + binding.lockscreenWeatherUpdateInterval.setSelectedIndex(getInt(WEATHER_UPDATE_INTERVAL, 1)) + binding.lockscreenWeatherUpdateInterval.setOnItemSelectedListener{ + putInt(WEATHER_UPDATE_INTERVAL, it) + forceRefreshWeatherSettings() + } + + binding.lockscreenWeatherLastUpdate.setOnClickListener { + checkLocationPermissions(false) + forceRefreshWeatherSettings() + } + + binding.lockscreenWeatherUnits.setSelectedIndex(if (Config.isMetric(requireContext())) 0 else 1) + binding.lockscreenWeatherUnits.setOnItemSelectedListener{ + putString(WEATHER_UNITS, it.toString()) + forceRefreshWeatherSettings() + } + + binding.lockscreenWeatherShowLocation.isSwitchChecked = getBoolean(WEATHER_SHOW_LOCATION, true) + binding.lockscreenWeatherShowLocation.setSwitchChangeListener{ _: CompoundButton?, isChecked: Boolean -> + putBoolean(WEATHER_SHOW_LOCATION, isChecked) + } + + binding.lockscreenWeatherShowCondition.isSwitchChecked = getBoolean(WEATHER_SHOW_CONDITION, true) + binding.lockscreenWeatherShowCondition.setSwitchChangeListener{ _: CompoundButton?, isChecked: Boolean -> + putBoolean(WEATHER_SHOW_CONDITION, isChecked) + } + + binding.lockscreenWeatherShowHumidity.isSwitchChecked = getBoolean(WEATHER_SHOW_HUMIDITY, false) + binding.lockscreenWeatherShowHumidity.setSwitchChangeListener{ _: CompoundButton?, isChecked: Boolean -> + putBoolean(WEATHER_SHOW_HUMIDITY, isChecked) + } + + binding.lockscreenWeatherShowWind.isSwitchChecked = getBoolean(WEATHER_SHOW_WIND, false) + binding.lockscreenWeatherShowWind.setSwitchChangeListener{ _: CompoundButton?, isChecked: Boolean -> + putBoolean(WEATHER_SHOW_WIND, isChecked) + } + + binding.lockscreenWeatherTextSize.sliderValue = getInt(WEATHER_TEXT_SIZE, 16) + binding.lockscreenWeatherTextSize.setOnSliderChangeListener{ _: Slider?, value: Float, _: Boolean -> + putInt(WEATHER_TEXT_SIZE, value.toInt()) + } + + binding.lockscreenWeatherImageSize.sliderValue = getInt(WEATHER_ICON_SIZE, 18) + binding.lockscreenWeatherImageSize.setOnSliderChangeListener{ _: Slider?, value: Float, _: Boolean -> + putInt(WEATHER_ICON_SIZE, value.toInt()) + } + + binding.lockscreenWeatherCustomColorSwitch.isSwitchChecked = getBoolean(WEATHER_TEXT_COLOR_SWITCH, false) + binding.lockscreenWeatherCustomColorSwitch.setSwitchChangeListener{ _: CompoundButton?, isChecked: Boolean -> + putBoolean(WEATHER_TEXT_COLOR_SWITCH, isChecked) + binding.lockscreenWeatherCustomColor.visibility = if (isChecked) View.VISIBLE else View.GONE + } + + binding.lockscreenWeatherCustomColor.previewColor = getInt(WEATHER_TEXT_COLOR, 0xFFFFFFFF.toInt()) + binding.lockscreenWeatherCustomColor.setOnColorSelectedListener { color: Int -> + putInt(WEATHER_TEXT_COLOR, color) + } + + binding.lockscreenWeatherCustomLocation.isSwitchChecked = getBoolean(WEATHER_CUSTOM_LOCATION, false) + binding.lockscreenWeatherCustomLocation.setSwitchChangeListener{ _: CompoundButton?, isChecked: Boolean -> + putBoolean(WEATHER_CUSTOM_LOCATION, isChecked) + } + + binding.lockscreenWeatherCustomLocationMenu.setOnClickListener(View.OnClickListener { + //TODO: Implement custom location + }) + + binding.lockscreenWeatherCustomMargins.isSwitchChecked = getBoolean(WEATHER_CUSTOM_MARGINS, false) + binding.lockscreenWeatherCustomMargins.setSwitchChangeListener{ _: CompoundButton?, isChecked: Boolean -> + putBoolean(WEATHER_CUSTOM_MARGINS, isChecked) + if (isChecked) { + binding.lockscreenWeatherMarginTop.visibility = View.VISIBLE + binding.lockscreenWeatherMarginLeft.visibility = View.VISIBLE + } else { + binding.lockscreenWeatherMarginTop.visibility = View.GONE + binding.lockscreenWeatherMarginLeft.visibility = View.GONE + } + } + + binding.lockscreenWeatherMarginTop.sliderValue = getInt(WEATHER_CUSTOM_MARGINS_TOP, 0) + binding.lockscreenWeatherMarginTop.setOnSliderChangeListener{ _: Slider?, value: Float, _: Boolean -> + putInt(WEATHER_CUSTOM_MARGINS_TOP, value.toInt()) + } + + binding.lockscreenWeatherMarginLeft.sliderValue = getInt(WEATHER_CUSTOM_MARGINS_LEFT, 0) + binding.lockscreenWeatherMarginLeft.setOnSliderChangeListener{ _: Slider?, value: Float, _: Boolean -> + putInt(WEATHER_CUSTOM_MARGINS_LEFT, value.toInt()) + } + + binding.lockscreenWeatherBg.setSelectedIndex(getInt(WEATHER_STYLE, 0)) + binding.lockscreenWeatherBg.setOnItemSelectedListener{ + putInt(WEATHER_STYLE, it) + } + +// updateUI(getBoolean(WEATHER_SWITCH, false)) + } + + override fun onResume() { + super.onResume() + mWeatherClient.addObserver(this) + if (mTriggerPermissionCheck) { + checkLocationPermissions(true) + mTriggerPermissionCheck = false + } + queryAndUpdateWeather() + } + + private fun hasPermissions(): Boolean { + return ( + requireContext().checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) + == PackageManager.PERMISSION_GRANTED) && + (requireContext().checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) + == PackageManager.PERMISSION_GRANTED) && + (requireContext().checkSelfPermission(Manifest.permission.ACCESS_BACKGROUND_LOCATION) + == PackageManager.PERMISSION_GRANTED) + } + + private fun showPermissionDialog() { + val builder = MaterialAlertDialogBuilder(requireContext()) + builder.setTitle(R.string.weather_permission_dialog_title) + builder.setMessage(R.string.weather_permission_dialog_message) + builder.setCancelable(false) + builder.setPositiveButton(android.R.string.ok) { dialog: DialogInterface?, which: Int -> + val intent = + Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS) + val uri = + Uri.fromParts("package", BuildConfig.APPLICATION_ID, null) + intent.setData(uri) + startActivity(intent) + } + builder.show() + } + + private fun showDialog() { + val builder = MaterialAlertDialogBuilder(requireContext()) + + // Build and show the dialog + builder.setTitle(R.string.weather_retrieve_location_dialog_title) + builder.setMessage(R.string.weather_retrieve_location_dialog_message) + builder.setCancelable(false) + builder.setPositiveButton( + R.string.weather_retrieve_location_dialog_enable_button + ) { dialog1, whichButton -> + mTriggerPermissionCheck = true + val intent = + Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS) + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP) + startActivity(intent) + } + builder.setNegativeButton(android.R.string.cancel, null) + val dialog: Dialog = builder.create() + dialog.show() + } + + private fun checkLocationPermissions(force: Boolean) { + if (!hasPermissions()) { + requestPermissionLauncher.launch( + arrayOf( + Manifest.permission.ACCESS_FINE_LOCATION, + Manifest.permission.ACCESS_COARSE_LOCATION, + Manifest.permission.ACCESS_BACKGROUND_LOCATION + ) + ) + } else { + if (force) { + forceRefreshWeatherSettings() + } + queryAndUpdateWeather() + } + } + + private fun checkLocationEnabled() { + if (!doCheckLocationEnabled()) { + showDialog() + } else { + checkLocationPermissions(false) + } + } + + private fun checkLocationEnabledInitial() { + if (!doCheckLocationEnabled()) { + showDialog() + } else { + checkLocationPermissions(true) + } + } + + private fun doCheckLocationEnabled(): Boolean { + val lm = requireContext().getSystemService(Context.LOCATION_SERVICE) as LocationManager + return lm.isLocationEnabled + } + + private var requestPermissionLauncher: ActivityResultLauncher> = + registerForActivityResult( + ActivityResultContracts.RequestMultiplePermissions() + ) { result -> + val fineLocationGranted: Boolean = result.getOrDefault( + Manifest.permission.ACCESS_FINE_LOCATION, false + ) + val coarseLocationGranted: Boolean = result.getOrDefault( + Manifest.permission.ACCESS_COARSE_LOCATION, false + ) + if ((fineLocationGranted) || + (coarseLocationGranted) + ) { + forceRefreshWeatherSettings() + } + } + + private fun forceRefreshWeatherSettings() { + WeatherScheduler.scheduleUpdateNow(context) + } + + private fun queryAndUpdateWeather() { + mWeatherClient.queryWeather() + Log.d("Weather", "Querying weather " + mWeatherClient.getWeatherInfo().toString()) + if (mWeatherClient.getWeatherInfo() != null) { + requireActivity().runOnUiThread { + binding.lockscreenWeatherLastUpdate.setSummary(mWeatherClient.getWeatherInfo()!!.lastUpdateTime) + } + } + } + + override fun weatherUpdated() { + queryAndUpdateWeather() + } + + override fun weatherError(errorReason: Int) { + var errorString: String? = null + errorString = if (errorReason == OmniJawsClient.EXTRA_ERROR_DISABLED) { + appContextLocale.getString(R.string.omnijaws_service_disabled) + } else if (errorReason == OmniJawsClient.EXTRA_ERROR_LOCATION) { + appContextLocale.getString(R.string.omnijaws_service_error_location) + } else if (errorReason == OmniJawsClient.EXTRA_ERROR_NETWORK) { + appContextLocale.getString(R.string.omnijaws_service_error_network) + } else if (errorReason == OmniJawsClient.EXTRA_ERROR_NO_PERMISSIONS) { + appContextLocale.getString(R.string.omnijaws_service_error_permissions) + } else { + appContextLocale.getString(R.string.omnijaws_service_error_long) + } + val s: String = errorString + requireActivity().runOnUiThread { + binding.lockscreenWeatherLastUpdate.setSummary(s) + } + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/utils/ViewHelper.kt b/app/src/main/java/com/drdisagree/iconify/ui/utils/ViewHelper.kt index 317914460..9aca64d14 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/utils/ViewHelper.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/utils/ViewHelper.kt @@ -8,6 +8,8 @@ import android.os.BatteryManager import android.os.Handler import android.os.Looper import android.util.TypedValue +import android.view.ViewGroup +import android.widget.TextView import androidx.annotation.DrawableRes import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.widget.Toolbar @@ -251,4 +253,27 @@ object ViewHelper { private fun getDrawable(context: Context, @DrawableRes batteryRes: Int): Drawable? { return ResourcesCompat.getDrawable(context.resources, batteryRes, context.theme) } + + fun setTextRecursively(viewGroup: ViewGroup, text: String?) { + for (i in 0 until viewGroup.childCount) { + val child = viewGroup.getChildAt(i) + if (child is ViewGroup) { + setTextRecursively(child, text) + } else if (child is TextView) { + child.text = text + } + } + } + + fun applyTextSizeRecursively(viewGroup: ViewGroup, textSize: Int) { + for (i in 0 until viewGroup.childCount) { + val child = viewGroup.getChildAt(i) + if (child is ViewGroup) { + applyTextSizeRecursively(child, textSize) + } else if (child is TextView) { + child.setTextSize(TypedValue.COMPLEX_UNIT_SP, textSize.toFloat()) + } + } + } + } diff --git a/app/src/main/java/com/drdisagree/iconify/ui/widgets/BottomSheetWidget.kt b/app/src/main/java/com/drdisagree/iconify/ui/widgets/BottomSheetWidget.kt index f159be955..402f496f9 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/widgets/BottomSheetWidget.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/widgets/BottomSheetWidget.kt @@ -103,6 +103,11 @@ class BottomSheetWidget : RelativeLayout, IconsAdapter.OnItemClickListener { } private fun buildEntries() { + if (arrayResId == 0) { + mEntries = emptyArray() + mEntryValues = emptyArray() + return + } mEntries = resources.getTextArray(arrayResId) val mValues: MutableList = ArrayList() diff --git a/app/src/main/java/com/drdisagree/iconify/utils/NetworkUtils.java b/app/src/main/java/com/drdisagree/iconify/utils/NetworkUtils.java new file mode 100644 index 000000000..680e0db11 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/utils/NetworkUtils.java @@ -0,0 +1,159 @@ +package com.drdisagree.iconify.utils; + +/* + * Copyright (C) 2018 The OmniROM Project + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +import android.util.Log; + +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.net.URL; +import java.nio.charset.StandardCharsets; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +import javax.net.ssl.HttpsURLConnection; + +public class NetworkUtils { + private static final boolean DEBUG = false; + private static final String TAG = "NetworkUtils"; + + private static final int HTTP_READ_TIMEOUT = 60000; + private static final int HTTP_CONNECTION_TIMEOUT = 60000; + + private static final ExecutorService executor = Executors.newSingleThreadExecutor(); + + public static void downloadUrlMemoryAsString(String url, DownloadCallback callback) { + executor.submit(() -> { + String result = downloadUrlMemoryAsString(url); + if (callback != null) { + callback.onDownloadComplete(result); + } + }); + } + + public static HttpsURLConnection setupHttpsRequest(String urlStr) { + URL url; + HttpsURLConnection urlConnection = null; + try { + url = new URL(urlStr); + urlConnection = (HttpsURLConnection) url.openConnection(); + urlConnection.setConnectTimeout(HTTP_CONNECTION_TIMEOUT); + urlConnection.setReadTimeout(HTTP_READ_TIMEOUT); + urlConnection.setRequestMethod("GET"); + urlConnection.setDoInput(true); + urlConnection.connect(); + int code = urlConnection.getResponseCode(); + if (code != HttpsURLConnection.HTTP_OK) { + Log.d(TAG, "response:" + code); + return null; + } + return urlConnection; + } catch (Exception e) { + Log.e(TAG, "Failed to connect to server", e); + return null; + } + } + + public static boolean downloadUrlFile(String url, File f) { + if (DEBUG) Log.d(TAG, "download:" + url); + + HttpsURLConnection urlConnection = null; + + if (f.exists()) + f.delete(); + + try { + urlConnection = setupHttpsRequest(url); + if (urlConnection == null) { + return false; + } + long len = urlConnection.getContentLength(); + if ((len > 0) && (len < 4L * 1024L * 1024L * 1024L)) { + byte[] buffer = new byte[262144]; + + InputStream is = urlConnection.getInputStream(); + FileOutputStream os = new FileOutputStream(f, false); + try { + int r; + while ((r = is.read(buffer)) > 0) { + os.write(buffer, 0, r); + } + } finally { + os.close(); + } + + return true; + } + return false; + } catch (Exception e) { + // Download failed for any number of reasons, timeouts, connection + // drops, etc. Just log it in debugging mode. + Log.e(TAG, "", e); + return false; + } finally { + if (urlConnection != null) { + urlConnection.disconnect(); + } + } + } + + + public static String downloadUrlMemoryAsString(String url) { + if (DEBUG) Log.d(TAG, "download: " + url); + + HttpsURLConnection urlConnection = null; + try { + urlConnection = setupHttpsRequest(url); + if (urlConnection == null) { + return null; + } + + InputStream is = urlConnection.getInputStream(); + ByteArrayOutputStream byteArray = new ByteArrayOutputStream(); + int byteInt; + + while ((byteInt = is.read()) >= 0) { + byteArray.write(byteInt); + } + + byte[] bytes = byteArray.toByteArray(); + if (bytes == null) { + return null; + } + + return new String(bytes, StandardCharsets.UTF_8); + } catch (Exception e) { + // Download failed for any number of reasons, timeouts, connection + // drops, etc. Just log it in debugging mode. + Log.e(TAG, "", e); + return null; + } finally { + if (urlConnection != null) { + urlConnection.disconnect(); + } + } + } + + public interface DownloadCallback { + void onDownloadComplete(String result); + } + +} diff --git a/app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.java b/app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.java new file mode 100644 index 000000000..b2c6703a6 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.java @@ -0,0 +1,404 @@ +package com.drdisagree.iconify.utils; + +/* + * Copyright (C) 2021 The OmniROM Project + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + + +import static com.drdisagree.iconify.xposed.HookRes.modRes; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.content.pm.PackageManager; +import android.content.res.Resources; +import android.database.Cursor; +import android.graphics.Color; +import android.graphics.drawable.ColorDrawable; +import android.graphics.drawable.Drawable; +import android.net.Uri; +import android.text.TextUtils; +import android.util.Log; + +import androidx.core.content.res.ResourcesCompat; + +import com.drdisagree.iconify.BuildConfig; +import com.drdisagree.iconify.xposed.HookRes; + +import java.text.DecimalFormat; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + + +public class OmniJawsClient { + private static final String TAG = "OmniJawsClient"; + private static final boolean DEBUG = BuildConfig.DEBUG; + public static final String SERVICE_PACKAGE = BuildConfig.APPLICATION_ID; + public static final Uri WEATHER_URI + = Uri.parse("content://com.drdisagree.iconify.weatherprovider/weather"); + public static final Uri SETTINGS_URI + = Uri.parse("content://com.drdisagree.iconify.weatherprovider/settings"); + public static final Uri CONTROL_URI + = Uri.parse("content://com.drdisagree.iconify.weatherprovider/control"); + + private static final String ICON_PACKAGE_DEFAULT = BuildConfig.APPLICATION_ID; + private static final String ICON_PREFIX_DEFAULT = "google"; + private static final String ICON_PREFIX_OUTLINE = "outline"; + private static final String EXTRA_ERROR = "error"; + public static final int EXTRA_ERROR_NETWORK = 0; // No Network + public static final int EXTRA_ERROR_LOCATION = 1; // No Location Found + public static final int EXTRA_ERROR_DISABLED = 2; // Disabled + public static final int EXTRA_ERROR_NO_PERMISSIONS = 3; // No Permissions + + public static final String[] WEATHER_PROJECTION = new String[]{ + "city", + "wind_speed", + "wind_direction", + "condition_code", + "temperature", + "humidity", + "condition", + "forecast_low", + "forecast_high", + "forecast_condition", + "forecast_condition_code", + "time_stamp", + "forecast_date", + "pin_wheel" + }; + + public static final String[] SETTINGS_PROJECTION = new String[] { + "enabled", + "units", + "provider", + "setup", + "icon_pack" + }; + + private static final String WEATHER_UPDATE = SERVICE_PACKAGE + ".WEATHER_UPDATE"; + private static final String WEATHER_ERROR = SERVICE_PACKAGE + ".WEATHER_ERROR"; + + private static final DecimalFormat sNoDigitsFormat = new DecimalFormat("0"); + + public static class WeatherInfo { + public String city; + public String windSpeed; + public String windDirection; + public int conditionCode; + public String temp; + public String humidity; + public String condition; + public Long timeStamp; + public List forecasts; + public String tempUnits; + public String windUnits; + public String provider; + public String pinWheel; + public String iconPack; + + public String toString() { + return city + ":" + new Date(timeStamp) + ": " + windSpeed + ":" + windDirection + ":" +conditionCode + ":" + temp + ":" + humidity + ":" + condition + ":" + tempUnits + ":" + windUnits + ": " + forecasts + ": " + iconPack; + } + + public String getLastUpdateTime() { + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); + return sdf.format(new Date(timeStamp)); + } + } + + public static class DayForecast { + public String low; + public String high; + public int conditionCode; + public String condition; + public String date; + + public String toString() { + return "[" + low + ":" + high + ":" +conditionCode + ":" + condition + ":" + date + "]"; + } + } + + public interface OmniJawsObserver { + void weatherUpdated(); + void weatherError(int errorReason); + default void updateSettings() {}; + } + + private class WeatherUpdateReceiver extends BroadcastReceiver { + @Override + public void onReceive(final Context context, Intent intent) { + String action = intent.getAction(); + for (OmniJawsObserver observer : mObserver) { + if (action.equals(WEATHER_UPDATE)) { + observer.weatherUpdated(); + } + if (action.equals(WEATHER_ERROR)) { + int errorReason = intent.getIntExtra(EXTRA_ERROR, 0); + observer.weatherError(errorReason); + } + } + } + } + + private Context mContext; + private WeatherInfo mCachedInfo; + private Resources mRes; + private String mPackageName; + private String mIconPrefix; + private String mGoogleImages = "google_%d"; + private String mSettingIconPackage; + private boolean mMetric; + private List mObserver; + private WeatherUpdateReceiver mReceiver; + private boolean mXposed = false; + + public OmniJawsClient(Context context, boolean xposed) { + mContext = context; + mXposed = xposed; + mObserver = new ArrayList<>(); + } + + public WeatherInfo getWeatherInfo() { + return mCachedInfo; + } + + private static String getFormattedValue(float value) { + if (Float.isNaN(value)) { + return "-"; + } + String formatted = sNoDigitsFormat.format(value); + if (formatted.equals("-0")) { + formatted = "0"; + } + return formatted; + } + + public void queryWeather() { + try { + mCachedInfo = null; + Cursor c = mContext.getContentResolver().query(WEATHER_URI, WEATHER_PROJECTION, + null, null, null); + if (c != null) { + try { + int count = c.getCount(); + if (count > 0) { + mCachedInfo = new WeatherInfo(); + List forecastList = new ArrayList(); + int i = 0; + for (i = 0; i < count; i++) { + c.moveToPosition(i); + if (i == 0) { + mCachedInfo.city = c.getString(0); + mCachedInfo.windSpeed = getFormattedValue(c.getFloat(1)); + mCachedInfo.windDirection = String.valueOf(c.getInt(2)) + "\u00b0"; + mCachedInfo.conditionCode = c.getInt(3); + mCachedInfo.temp = getFormattedValue(c.getFloat(4)); + mCachedInfo.humidity = c.getString(5); + mCachedInfo.condition = c.getString(6); + mCachedInfo.timeStamp = Long.valueOf(c.getString(11)); + mCachedInfo.pinWheel = c.getString(13); + } else { + DayForecast day = new DayForecast(); + day.low = getFormattedValue(c.getFloat(7)); + day.high = getFormattedValue(c.getFloat(8)); + day.condition = c.getString(9); + day.conditionCode = c.getInt(10); + day.date = c.getString(12); + forecastList.add(day); + } + } + mCachedInfo.forecasts = forecastList; + } + } finally { + c.close(); + } + } + c = mContext.getContentResolver().query(SETTINGS_URI, SETTINGS_PROJECTION, + null, null, null); + if (c != null) { + try { + int count = c.getCount(); + if (count == 1) { + c.moveToPosition(0); + mMetric = c.getInt(1) == 0; + if (mCachedInfo != null) { + mCachedInfo.tempUnits = getTemperatureUnit(); + mCachedInfo.windUnits = getWindUnit(); + mCachedInfo.provider = c.getString(2); + mCachedInfo.iconPack = c.getString(4); + } + } + } finally { + c.close(); + } + } + + if (DEBUG) Log.d(TAG, "queryWeather " + mCachedInfo); + updateSettings(); + } catch (Exception e) { + Log.e(TAG, "queryWeather", e); + } + } + + private void loadDefaultIconsPackage() { + mPackageName = ICON_PACKAGE_DEFAULT; + mIconPrefix = ICON_PREFIX_DEFAULT; + mSettingIconPackage = mPackageName + "." + mIconPrefix; + if (DEBUG) Log.d(TAG, "Load default icon pack " + mSettingIconPackage + " " + mPackageName + " " + mIconPrefix); + try { + if (!mXposed) { + PackageManager packageManager = mContext.getPackageManager(); + mRes = packageManager.getResourcesForApplication(mPackageName); + } else { + mRes = modRes; + } + } catch (Exception e) { + Log.e(TAG, "loadDefaultIconsPackage", e); + mRes = null; + } + if (mRes == null) { + Log.e(TAG, "mRes null"); + } + } + + private Drawable getDefaultConditionImage() { + String packageName = ICON_PACKAGE_DEFAULT; + String iconPrefix = ICON_PREFIX_DEFAULT; + + try { + PackageManager packageManager = mContext.getPackageManager(); + Resources res = packageManager.getResourcesForApplication(packageName); + if (res != null) { + int resId = res.getIdentifier(iconPrefix + "_na", "drawable", packageName); + Drawable d = ResourcesCompat.getDrawable(mRes, resId, mContext.getTheme()); + if (d != null) { + return d; + } + } else { + int resId = modRes.getIdentifier(iconPrefix + "_na", "drawable", packageName); + Drawable d = ResourcesCompat.getDrawable(modRes, resId, mContext.getTheme()); + if (d != null) { + return d; + } + } + } catch (Exception ignored) { + } + // absolute absolute fallback + Log.w(TAG, "No default package found"); + return new ColorDrawable(Color.RED); + } + + private void loadCustomIconPackage() { + if (DEBUG) Log.d(TAG, "Load custom icon pack " + mSettingIconPackage); + int idx = mSettingIconPackage.lastIndexOf("."); + mPackageName = mSettingIconPackage.substring(0, idx); + mIconPrefix = mSettingIconPackage.substring(idx + 1); + if (DEBUG) Log.d(TAG, "Load custom icon pack " + mPackageName + " " + mIconPrefix); + try { + if (!mXposed) { + PackageManager packageManager = mContext.getPackageManager(); + mRes = packageManager.getResourcesForApplication(mPackageName); + } else { + mRes = modRes; + } + + } catch (Exception e) { + mRes = null; + } + if (mRes == null) { + Log.w(TAG, "Icon pack loading failed - loading default"); + loadDefaultIconsPackage(); + } + } + + public Drawable getWeatherConditionImage(int conditionCode) { + try { + int resId = mRes.getIdentifier(mIconPrefix + "_" + conditionCode, "drawable", mPackageName); + Drawable d = ResourcesCompat.getDrawable(mRes, resId, mContext.getTheme()); + if (d != null) { + return d; + } + Log.w(TAG, "Failed to get condition image for " + conditionCode + " use default"); + + resId = mRes.getIdentifier(String.format(mGoogleImages, "na"), "drawable", mPackageName); + d = ResourcesCompat.getDrawable(mRes, resId, mContext.getTheme()); + if (d != null) { + return d; + } + } catch(Exception e) { + Log.e(TAG, "getWeatherConditionImage", e); + } + Log.w(TAG, "Failed to get condition image for " + conditionCode); + return getDefaultConditionImage(); + } + + public boolean isOmniJawsEnabled() { + return true; + } + + private String getTemperatureUnit() { + return "\u00b0" + (mMetric ? "C" : "F"); + } + + private String getWindUnit() { + return mMetric ? "km/h":"mph"; + } + + private void updateSettings() { + final String iconPack = mCachedInfo != null ? mCachedInfo.iconPack : null; + if (TextUtils.isEmpty(iconPack)) { + loadDefaultIconsPackage(); + } else if (mSettingIconPackage == null || !iconPack.equals(mSettingIconPackage)) { + mSettingIconPackage = iconPack; + loadCustomIconPackage(); + } + } + + public void addObserver(OmniJawsObserver observer) { + if (mObserver.isEmpty()) { + if (mReceiver != null) { + try { + mContext.unregisterReceiver(mReceiver); + } catch (Exception ignored) { + } + } + mReceiver = new WeatherUpdateReceiver(); + IntentFilter filter = new IntentFilter(); + filter.addAction(WEATHER_UPDATE); + filter.addAction(WEATHER_ERROR); + if (DEBUG) Log.d(TAG, "registerReceiver"); + mContext.registerReceiver(mReceiver, filter, Context.RECEIVER_EXPORTED); + } + mObserver.add(observer); + } + + public void removeObserver(OmniJawsObserver observer) { + mObserver.remove(observer); + if (mObserver.isEmpty() && mReceiver != null) { + try { + if (DEBUG) Log.d(TAG, "unregisterReceiver"); + mContext.unregisterReceiver(mReceiver); + } catch (Exception ignored) { + } + mReceiver = null; + } + } + +} diff --git a/app/src/main/java/com/drdisagree/iconify/weather/AbstractWeatherProvider.kt b/app/src/main/java/com/drdisagree/iconify/weather/AbstractWeatherProvider.kt new file mode 100644 index 000000000..57907ee93 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/weather/AbstractWeatherProvider.kt @@ -0,0 +1,172 @@ +package com.drdisagree.iconify.weather + +import android.content.Context +import android.location.Geocoder +import android.location.Location +import android.text.TextUtils +import android.util.Log +import com.drdisagree.iconify.R +import com.drdisagree.iconify.utils.NetworkUtils +import com.drdisagree.iconify.weather.Config.getLocationName +import com.drdisagree.iconify.weather.Config.isCustomLocation +import org.json.JSONObject +import java.io.IOException +import java.text.SimpleDateFormat +import java.util.Calendar +import java.util.Locale +import java.util.concurrent.CountDownLatch + +abstract class AbstractWeatherProvider(protected var mContext: Context) { + protected fun retrieve(url: String?): String { + response = "" + val latch = CountDownLatch(1) + + NetworkUtils.downloadUrlMemoryAsString(url) { result: String? -> + if (result != null) { + Log.d( + TAG, + "Download success $result" + ) + response = result + } else { + response = "" + Log.d(TAG, "Download failed") + } + latch.countDown() + } + + try { + latch.await() // Wait until the response is set + } catch (e: InterruptedException) { + Thread.currentThread().interrupt() // Restore interrupt status + Log.e(TAG, "retrieve interrupted", e) + } + + return response + } + + abstract fun getCustomWeather(id: String?, metric: Boolean): WeatherInfo? + + abstract fun getLocationWeather(location: Location?, metric: Boolean): WeatherInfo? + + abstract fun shouldRetry(): Boolean + + protected fun log(tag: String, msg: String?) { + if (DEBUG) Log.d( + "WeatherService:$tag", + msg!! + ) + } + + private fun getCoordinatesLocalityWithGoogle(coordinate: String): String? { + val latitude = + coordinate.substring(coordinate.indexOf("=") + 1, coordinate.indexOf("&")).toDouble() + val longitude = coordinate.substring(coordinate.lastIndexOf("=") + 1).toDouble() + + val geocoder = Geocoder(mContext.applicationContext, Locale.getDefault()) + try { + val listAddresses = geocoder.getFromLocation(latitude, longitude, 1) + if (!listAddresses.isNullOrEmpty()) { + val a = listAddresses[0] + return if (TextUtils.isEmpty(a.locality)) a.adminArea else a.locality + } + } catch (e: IOException) { + e.printStackTrace() + } + return null + } + + protected fun getCoordinatesLocality(coordinate: String): String? { + val cityGoogle = getCoordinatesLocalityWithGoogle(coordinate) + if (!TextUtils.isEmpty(cityGoogle)) { + return cityGoogle + } + val latitude = + coordinate.substring(coordinate.indexOf("=") + 1, coordinate.indexOf("&")).toDouble() + val longitude = coordinate.substring(coordinate.lastIndexOf("=") + 1).toDouble() + + val lang = Locale.getDefault().language.replaceFirst("_".toRegex(), "-") + val url = String.format(URL_LOCALITY, latitude, longitude, lang) + val response = retrieve(url) ?: return null + log(TAG, "URL = $url returning a response of $response") + + try { + val jsonResults = JSONObject(response) + if (jsonResults.has("address")) { + val address = jsonResults.getJSONObject("address") + val city = address.getString("placename") + val area = address.getString("adminName2") + if (!TextUtils.isEmpty(city)) { + return city + } + if (!TextUtils.isEmpty(area)) { + return area + } + } else if (jsonResults.has("geonames")) { + val jsonResultsArray = jsonResults.getJSONArray("geonames") + val count = jsonResultsArray.length() + + for (i in count - 1 downTo 0) { + val geoname = jsonResultsArray.getJSONObject(i) + val fcode = geoname.getString("fcode") + val name = geoname.getString("name") + if (TextUtils.isEmpty(name)) { + continue + } + if (fcode == "ADM3") { + return name + } + if (fcode == "ADM2") { + return name + } + if (fcode == "ADM1") { + return name + } + } + } + } catch (e: Exception) { + Log.w( + TAG, + "Received malformed location data (coordinate=$coordinate)", e + ) + } + return null + } + + protected fun getWeatherDataLocality(coordinates: String): String? { + var city: String? + if (isCustomLocation(mContext)) { + city = getLocationName(mContext) + if (TextUtils.isEmpty(city)) { + city = getCoordinatesLocality(coordinates) + } + } else { + city = getCoordinatesLocality(coordinates) + } + if (TextUtils.isEmpty(city)) { + city = mContext.resources.getString(R.string.omnijaws_city_unkown) + } + log(TAG, "getWeatherDataLocality = $city") + return city + } + + protected fun getDay(i: Int): String { + val calendar = Calendar.getInstance() + if (i > 0) { + calendar.add(Calendar.DATE, i) + } + return dayFormat.format(calendar.time) + } + + companion object { + private const val TAG = "AbstractWeatherProvider" + private const val DEBUG = false + private val dayFormat = SimpleDateFormat("yyyy-MM-dd", Locale.US) + private const val URL_PLACES = + "https://secure.geonames.org/searchJSON?name_startsWith=%s&lang=%s&username=omnijaws&maxRows=20" + private const val URL_LOCALITY = + "https://secure.geonames.org/extendedFindNearbyJSON?lat=%f&lng=%f&lang=%s&username=omnijaws" + const val PART_COORDINATES: String = "lat=%f&lon=%f" + private var response = "" + } +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/weather/Config.kt b/app/src/main/java/com/drdisagree/iconify/weather/Config.kt new file mode 100644 index 000000000..c8ca6f1f5 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/weather/Config.kt @@ -0,0 +1,149 @@ +package com.drdisagree.iconify.weather + +import android.Manifest +import android.content.Context +import android.content.SharedPreferences +import android.content.pm.PackageManager +import android.util.Log +import androidx.preference.PreferenceManager +import com.drdisagree.iconify.BuildConfig +import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_LOCATION +import com.drdisagree.iconify.common.Preferences.WEATHER_ICON_PACK +import com.drdisagree.iconify.common.Preferences.WEATHER_OWM_KEY +import com.drdisagree.iconify.common.Preferences.WEATHER_PROVIDER +import com.drdisagree.iconify.common.Preferences.WEATHER_SWITCH +import com.drdisagree.iconify.common.Preferences.WEATHER_UNITS +import com.drdisagree.iconify.common.Preferences.WEATHER_UPDATE_INTERVAL +import com.drdisagree.iconify.config.XPrefs.Xprefs +import com.drdisagree.iconify.weather.providers.OpenMeteoProvider + +object Config { + const val SharedXPref: String = BuildConfig.APPLICATION_ID + "_preferences" + const val PREF_KEY_PROVIDER: String = "provider" + const val PREF_KEY_UNITS: String = "units" + const val PREF_KEY_LOCATION_ID: String = "location_id" + const val PREF_KEY_LOCATION_NAME: String = "location_name" + const val PREF_KEY_WEATHER_DATA: String = "weather_data" + const val PREF_KEY_LAST_UPDATE: String = "last_update" + const val PREF_KEY_ENABLE: String = "enable" + const val PREF_KEY_UPDATE_INTERVAL: String = "update_interval" + const val PREF_KEY_ICON_PACK: String = "icon_pack" + const val PREF_KEY_UPDATE_ERROR: String = "update_error" + const val PREF_KEY_OWM_KEY: String = "owm_key" + const val PREF_KEY_HISTORY: String = "history" + const val PREF_KEY_HISTORY_SIZE: String = "history_size" + const val WEATHER_PREFS: String = BuildConfig.APPLICATION_ID + "_weatherprefs" + + private fun getPrefs(context: Context): SharedPreferences { + try { + if (Xprefs != null) return Xprefs as SharedPreferences + return PreferenceManager.getDefaultSharedPreferences(context.createDeviceProtectedStorageContext()) + } catch (t: Throwable) { + return PreferenceManager.getDefaultSharedPreferences(context.createDeviceProtectedStorageContext()) + } + } + + private fun getWeatherPrefs(context: Context): SharedPreferences { + val deviceProtectedContext = context.createDeviceProtectedStorageContext() + return deviceProtectedContext.getSharedPreferences(WEATHER_PREFS, Context.MODE_PRIVATE) + } + + fun getProvider(context: Context): AbstractWeatherProvider { + return OpenMeteoProvider(context) + } + + fun getProviderId(context: Context): String { + val provider = getPrefs(context).getString(WEATHER_PROVIDER, "0") + + return when (provider) { + "1" -> "MET Norway" + "2" -> "OpenMeteo" + else -> "OpenWeatherMap" + } + } + + fun isMetric(context: Context): Boolean { + return getPrefs(context).getString(WEATHER_UNITS, "0") == "0" + } + + fun isCustomLocation(context: Context): Boolean { + return getPrefs(context).getBoolean(WEATHER_CUSTOM_LOCATION, false) + } + + fun getLocationId(context: Context): String? { + return getWeatherPrefs(context).getString(PREF_KEY_LOCATION_ID, null) + } + + fun setLocationId(context: Context, id: String?) { + getWeatherPrefs(context).edit().putString(PREF_KEY_LOCATION_ID, id).apply() + } + + fun getLocationName(context: Context): String? { + return getWeatherPrefs(context).getString(PREF_KEY_LOCATION_NAME, null) + } + + fun setLocationName(context: Context, name: String?) { + getWeatherPrefs(context).edit().putString(PREF_KEY_LOCATION_NAME, name).apply() + } + + fun getWeatherData(context: Context): WeatherInfo? { + var str: String? = null + try { + str = getWeatherPrefs(context).getString(PREF_KEY_WEATHER_DATA, null) + } catch (ignored: Throwable) { + } + + if (str != null) { + return WeatherInfo.fromSerializedString(context, str) + } + return null + } + + fun setWeatherData(data: WeatherInfo, context: Context) { + Log.d("Weather", "Setting weather data " + data.toSerializedString()) + getWeatherPrefs(context).edit().putString(PREF_KEY_WEATHER_DATA, data.toSerializedString()) + .apply() + getWeatherPrefs(context).edit().putLong(PREF_KEY_LAST_UPDATE, System.currentTimeMillis()) + .apply() + } + + fun clearLastUpdateTime(context: Context) { + getWeatherPrefs(context).edit().putLong(PREF_KEY_LAST_UPDATE, 0).apply() + } + + fun isEnabled(context: Context): Boolean { + val lsWeather = getPrefs(context).getBoolean(WEATHER_SWITCH, false) + return lsWeather + } + + fun setEnabled(context: Context, value: Boolean, key: String?) { + getPrefs(context).edit().putBoolean(key, value).apply() + } + + fun getUpdateInterval(context: Context): Int { + var updateValue = 2 + try { + updateValue = getPrefs(context).getString(WEATHER_UPDATE_INTERVAL, "2")!!.toInt() + } catch (ignored: Throwable) { + } + + return updateValue + } + + fun getIconPack(context: Context): String? { + return getPrefs(context).getString(WEATHER_ICON_PACK, null) + } + + fun setUpdateError(context: Context, value: Boolean) { + getWeatherPrefs(context).edit().putBoolean(PREF_KEY_UPDATE_ERROR, value).apply() + } + + fun isSetupDone(context: Context): Boolean { + return (context.checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) + == PackageManager.PERMISSION_GRANTED) + } + + fun getOwmKey(context: Context): String? { + return getPrefs(context).getString(WEATHER_OWM_KEY, null) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/weather/WeatherContentProvider.kt b/app/src/main/java/com/drdisagree/iconify/weather/WeatherContentProvider.kt new file mode 100644 index 000000000..a9fb8d51b --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/weather/WeatherContentProvider.kt @@ -0,0 +1,218 @@ +package com.drdisagree.iconify.weather + +import android.annotation.SuppressLint +import android.content.ContentProvider +import android.content.ContentValues +import android.content.Context +import android.content.UriMatcher +import android.database.Cursor +import android.database.MatrixCursor +import android.net.Uri +import android.util.Log +import com.drdisagree.iconify.BuildConfig +import com.drdisagree.iconify.services.WeatherScheduler.scheduleUpdateNow + +class WeatherContentProvider : ContentProvider() { + private var mContext: Context? = null + + override fun onCreate(): Boolean { + mContext = context + sCachedWeatherInfo = mContext?.let { Config.getWeatherData(it) } + return true + } + + override fun query( + uri: Uri, + projection: Array?, + selection: String?, + selectionArgs: Array?, + sortOrder: String? + ): Cursor? { + val projectionType = sUriMatcher.match(uri) + val result = MatrixCursor(resolveProjection(projection, projectionType)) + + + if (projectionType == URI_TYPE_SETTINGS) { + result.newRow() + .add(COLUMN_ENABLED, if (Config.isEnabled(mContext!!)) 1 else 0) + .add(COLUMN_PROVIDER, Config.getProviderId(mContext!!)) + .add(COLUMN_INTERVAL, Config.getUpdateInterval(mContext!!)) + .add(COLUMN_UNITS, if (Config.isMetric(mContext!!)) 0 else 1) + .add( + COLUMN_LOCATION, + if (Config.isCustomLocation(mContext!!)) Config.getLocationName(mContext!!) else "" + ) + .add( + COLUMN_SETUP, + if (!Config.isSetupDone(mContext!!) && sCachedWeatherInfo == null) 0 else 1 + ) + .add( + COLUMN_ICON_PACK, + if (Config.getIconPack(mContext!!) != null) Config.getIconPack(mContext!!) else "" + ) + + + return result + } else if (projectionType == URI_TYPE_WEATHER) { + val weather = sCachedWeatherInfo + if (weather != null) { + // current + result.newRow() + .add(COLUMN_CURRENT_CITY, weather.city) + .add(COLUMN_CURRENT_CITY_ID, weather.id) + .add(COLUMN_CURRENT_CONDITION, weather.getCondition()) + .add(COLUMN_CURRENT_HUMIDITY, weather.formattedHumidity) + .add(COLUMN_CURRENT_WIND_SPEED, weather.windSpeed) + .add(COLUMN_CURRENT_WIND_DIRECTION, weather.windDirection) + .add(COLUMN_CURRENT_TEMPERATURE, weather.temperature) + .add(COLUMN_CURRENT_TIME_STAMP, weather.timestamp.toString()) + .add(COLUMN_CURRENT_PIN_WHEEL, weather.pinWheel) + .add(COLUMN_CURRENT_CONDITION_CODE, weather.conditionCode) + + // forecast + for (day in weather.forecasts) { + result.newRow() + .add(COLUMN_FORECAST_CONDITION, day.getCondition(mContext!!)) + .add(COLUMN_FORECAST_LOW, day.low) + .add(COLUMN_FORECAST_HIGH, day.high) + .add(COLUMN_FORECAST_CONDITION_CODE, day.conditionCode) + .add(COLUMN_FORECAST_DATE, day.date) + } + + + return result + } + } + return null + } + + private fun resolveProjection(projection: Array?, uriType: Int): Array { + if (projection != null) return projection + return when (uriType) { + URI_TYPE_SETTINGS -> PROJECTION_DEFAULT_SETTINGS + else -> { + PROJECTION_DEFAULT_WEATHER + PROJECTION_DEFAULT_SETTINGS + } + } + } + + override fun getType(uri: Uri): String? { + return null + } + + override fun insert(uri: Uri, values: ContentValues?): Uri? { + return null + } + + override fun delete(uri: Uri, selection: String?, selectionArgs: Array?): Int { + return 0 + } + + override fun update( + uri: Uri, + values: ContentValues?, + selection: String?, + selectionArgs: Array? + ): Int { + val projectionType = sUriMatcher.match(uri) + if (projectionType == URI_TYPE_CONTROL) { + if (values!!.containsKey(COLUMN_FORCE_REFRESH) && values.getAsBoolean( + COLUMN_FORCE_REFRESH + ) + ) { + if (DEBUG) Log.i( + TAG, + "update: $uri $values" + ) + scheduleUpdateNow(mContext) + } + } + return 0 + } + + companion object { + private const val TAG = "WeatherService:WeatherContentProvider" + private const val DEBUG = true + + @SuppressLint("StaticFieldLeak") + var sCachedWeatherInfo: WeatherInfo? = null + + private const val URI_TYPE_WEATHER = 1 + private const val URI_TYPE_SETTINGS = 2 + private const val URI_TYPE_CONTROL = 3 + + private const val COLUMN_CURRENT_CITY_ID = "city_id" + private const val COLUMN_CURRENT_CITY = "city" + private const val COLUMN_CURRENT_CONDITION = "condition" + private const val COLUMN_CURRENT_TEMPERATURE = "temperature" + private const val COLUMN_CURRENT_HUMIDITY = "humidity" + private const val COLUMN_CURRENT_WIND_SPEED = "wind_speed" + private const val COLUMN_CURRENT_WIND_DIRECTION = "wind_direction" + private const val COLUMN_CURRENT_TIME_STAMP = "time_stamp" + private const val COLUMN_CURRENT_CONDITION_CODE = "condition_code" + private const val COLUMN_CURRENT_PIN_WHEEL = "pin_wheel" + + private const val COLUMN_FORECAST_LOW = "forecast_low" + private const val COLUMN_FORECAST_HIGH = "forecast_high" + private const val COLUMN_FORECAST_CONDITION = "forecast_condition" + private const val COLUMN_FORECAST_CONDITION_CODE = "forecast_condition_code" + private const val COLUMN_FORECAST_DATE = "forecast_date" + + private const val COLUMN_ENABLED = "enabled" + private const val COLUMN_PROVIDER = "provider" + private const val COLUMN_INTERVAL = "interval" + private const val COLUMN_UNITS = "units" + private const val COLUMN_LOCATION = "location" + private const val COLUMN_SETUP = "setup" + private const val COLUMN_ICON_PACK = "icon_pack" + + const val COLUMN_FORCE_REFRESH: String = "update" + + private val PROJECTION_DEFAULT_WEATHER = arrayOf( + COLUMN_CURRENT_CITY_ID, + COLUMN_CURRENT_CITY, + COLUMN_CURRENT_CONDITION, + COLUMN_CURRENT_TEMPERATURE, + COLUMN_CURRENT_HUMIDITY, + COLUMN_CURRENT_WIND_SPEED, + COLUMN_CURRENT_WIND_DIRECTION, + COLUMN_CURRENT_TIME_STAMP, + COLUMN_CURRENT_PIN_WHEEL, + COLUMN_CURRENT_CONDITION_CODE, + COLUMN_FORECAST_LOW, + COLUMN_FORECAST_HIGH, + COLUMN_FORECAST_CONDITION, + COLUMN_FORECAST_CONDITION_CODE, + COLUMN_FORECAST_DATE + ) + + private val PROJECTION_DEFAULT_SETTINGS = arrayOf( + COLUMN_ENABLED, + COLUMN_PROVIDER, + COLUMN_INTERVAL, + COLUMN_UNITS, + COLUMN_LOCATION, + COLUMN_SETUP, + COLUMN_ICON_PACK + ) + + private const val AUTHORITY: String = "com.drdisagree.iconify.weatherprovider" + + private val sUriMatcher = UriMatcher(URI_TYPE_WEATHER) + + init { + sUriMatcher.addURI(AUTHORITY, "weather", URI_TYPE_WEATHER) + sUriMatcher.addURI(AUTHORITY, "settings", URI_TYPE_SETTINGS) + sUriMatcher.addURI(AUTHORITY, "control", URI_TYPE_CONTROL) + } + + fun updateCachedWeatherInfo(context: Context) { + if (DEBUG) Log.d(TAG, "updateCachedWeatherInfo()") + sCachedWeatherInfo = Config.getWeatherData(context) + context.contentResolver.notifyChange( + Uri.parse("content://$AUTHORITY/weather"), null + ) + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/weather/WeatherInfo.kt b/app/src/main/java/com/drdisagree/iconify/weather/WeatherInfo.kt new file mode 100644 index 000000000..4f1976062 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/weather/WeatherInfo.kt @@ -0,0 +1,288 @@ +package com.drdisagree.iconify.weather + +import android.content.Context +import java.text.DecimalFormat +import java.util.Date + +class WeatherInfo private constructor( + context: Context, val id: String, + val city: String, private val condition: String, val conditionCode: Int, var temperature: Float, + private val humidity: Float, private val wind: Float, val windDirection: Int, + private val metric: Boolean, val forecasts: ArrayList, val timestamp: Long, + var pinWheel: String +) { + private val mContext: Context = context.applicationContext + + constructor( + context: Context, id: String, + city: String, condition: String, conditionCode: Int, temp: Float, + humidity: Float, wind: Float, windDir: Int, + metric: Boolean, forecasts: ArrayList, timestamp: Long + ) : this( + context, id, city, condition, conditionCode, temp, humidity, wind, windDir, + metric, forecasts, timestamp, "" + ) { + this.pinWheel = getFormattedWindDirection(windDir) + } + + class WeatherLocation { + var id: String? = null + var city: String? = null + var postal: String? = null + var countryId: String? = null + var country: String? = null + } + + class DayForecast( + val low: Float, + val high: Float, + val condition: String, + val conditionCode: Int, + var date: String, + var metric: Boolean + ) { + fun getCondition(context: Context): String { + return getCondition(context, conditionCode, condition) + } + } + + + fun getCondition(): String { + return getCondition(mContext, conditionCode, condition) + } + + val formattedTimestamp: Date + get() = Date(timestamp) + + val formattedHumidity: String + get() = getFormattedValue(humidity, "%") + + val windSpeed: Float + get() { + if (wind < 0) { + return 0F + } + return wind + } + + private val formattedWindSpeed: String + get() { + if (wind < 0) { + return "0" + } + return getFormattedValue(wind, if (metric) "km/h" else "m/h") + } + + private fun getFormattedWindDirection(direction: Int): String { + val value = ((direction / 22.5) + 0.5).toInt() + val pw = WIND_DIRECTION[value % 16] + return pw + } + + private val temperatureUnit: String + get() = "\u00b0" + (if (metric) "C" else "F") + + override fun toString(): String { + val builder = StringBuilder() + builder.append("WeatherInfo for ") + builder.append(city) + builder.append(" (") + builder.append(id) + builder.append(") @ ") + builder.append(formattedTimestamp) + builder.append(": ") + builder.append(getCondition()) + builder.append("(") + builder.append(conditionCode) + builder.append("), temperature ") + builder.append( + getFormattedValue( + temperature, + temperatureUnit + ) + ) + builder.append(", humidity ") + builder.append(formattedHumidity) + builder.append(", wind ") + builder.append(formattedWindSpeed) + builder.append(" at ") + builder.append(windDirection) + if (!forecasts.isEmpty()) { + builder.append(", forecasts:") + } + for (i in forecasts.indices) { + val d = forecasts[i] + if (i != 0) { + builder.append(";") + } + builder.append(" day ").append(i + 1).append(":") + builder.append(d.date) + builder.append(" high ").append( + getFormattedValue( + d.high, + temperatureUnit + ) + ) + builder.append(", low ").append( + getFormattedValue( + d.low, + temperatureUnit + ) + ) + builder.append(", ").append(d.condition) + builder.append("(").append(d.conditionCode).append(")") + } + return builder.toString() + } + + fun toSerializedString(): String { + val builder = StringBuilder() + builder.append(id).append('|') + builder.append(city).append('|') + builder.append(condition).append('|') + builder.append(conditionCode).append('|') + builder.append(temperature).append('|') + builder.append(humidity).append('|') + builder.append(wind).append('|') + builder.append(windDirection).append('|') + builder.append(metric).append('|') + builder.append(timestamp).append('|') + builder.append(pinWheel) + if (!forecasts.isEmpty()) { + serializeForecasts(builder) + } + return builder.toString() + } + + private fun serializeForecasts(builder: StringBuilder) { + builder.append('|') + builder.append(forecasts.size) + for (d in forecasts) { + builder.append(';') + builder.append(d.high).append(';') + builder.append(d.low).append(';') + builder.append(d.condition).append(';') + builder.append(d.conditionCode).append(';') + builder.append(d.date) + } + } + + companion object { + private val sNoDigitsFormat = DecimalFormat("0") + + val WIND_DIRECTION: Array = arrayOf( + "N", + "NNE", + "NE", + "ENE", + "E", + "ESE", + "SE", + "SSE", + "S", + "SSW", + "SW", + "WSW", + "W", + "WNW", + "NW", + "NNW" + ) + + private fun getCondition(context: Context, conditionCode: Int, condition: String): String { + val res = context.resources + val resId = res.getIdentifier("weather_$conditionCode", "string", context.packageName) + if (resId != 0) { + return res.getString(resId) + } + return condition + } + + private fun getFormattedValue(value: Float, unit: String): String { + if (java.lang.Float.isNaN(value)) { + return "-" + } + var formatted = sNoDigitsFormat.format(value.toDouble()) + if (formatted == "-0") { + formatted = "0" + } + return formatted + unit + } + + fun fromSerializedString(context: Context, input: String?): WeatherInfo? { + if (input == null) { + return null + } + + val parts = input.split("\\|".toRegex()).dropLastWhile { it.isEmpty() } + .toTypedArray() + val hasForecast = parts.size == 12 + + val conditionCode: Int + val windDirection: Int + val timestamp: Long + val temperature: Float + val humidity: Float + val wind: Float + val metric: Boolean + val pinWheel: String + var forecastParts: Array? = null + if (hasForecast) { + forecastParts = + parts[11].split(";".toRegex()).dropLastWhile { it.isEmpty() }.toTypedArray() + } + val forecastItems: Int + val forecasts = ArrayList() + + // Parse the core data + try { + conditionCode = parts[3].toInt() + temperature = parts[4].toFloat() + humidity = parts[5].toFloat() + wind = parts[6].toFloat() + windDirection = parts[7].toInt() + metric = parts[8].toBoolean() + timestamp = parts[9].toLong() + pinWheel = parts[10] + forecastItems = forecastParts?.get(0)?.toInt() ?: 0 + } catch (e: NumberFormatException) { + return null + } + + if (hasForecast && (forecastItems == 0 || forecastParts!!.size != 5 * forecastItems + 1)) { + return null + } + + // Parse the forecast data + try { + for (item in 0 until forecastItems) { + val offset = item * 5 + 1 + val day = DayForecast( /* low */ + forecastParts!![offset + 1].toFloat(), /* high */ + forecastParts[offset].toFloat(), /* condition */ + forecastParts[offset + 2], /* conditionCode */ + forecastParts[offset + 3].toInt(), + forecastParts[offset + 4], + metric + ) + if (!java.lang.Float.isNaN(day.low) && !java.lang.Float.isNaN(day.high) /*&& day.conditionCode >= 0*/) { + forecasts.add(day) + } + } + } catch (ignored: NumberFormatException) { + } + + if (hasForecast && forecasts.isEmpty()) { + return null + } + + return WeatherInfo( + context, /* id */ + parts[0], /* city */parts[1], /* condition */parts[2], + conditionCode, temperature, + humidity, wind, windDirection, metric, /* forecasts */ + forecasts, timestamp, pinWheel + ) + } + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/weather/WeatherWork.kt b/app/src/main/java/com/drdisagree/iconify/weather/WeatherWork.kt new file mode 100644 index 000000000..6fef3377a --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/weather/WeatherWork.kt @@ -0,0 +1,263 @@ +package com.drdisagree.iconify.weather + +import android.Manifest +import android.annotation.SuppressLint +import android.content.Context +import android.content.Intent +import android.content.pm.PackageManager +import android.location.Criteria +import android.location.Location +import android.location.LocationManager +import android.text.TextUtils +import android.util.Log +import androidx.concurrent.futures.CallbackToFutureAdapter +import androidx.work.ListenableWorker +import androidx.work.WorkerParameters +import com.drdisagree.iconify.BuildConfig +import com.drdisagree.iconify.utils.OmniJawsClient.EXTRA_ERROR_DISABLED +import com.drdisagree.iconify.utils.OmniJawsClient.EXTRA_ERROR_LOCATION +import com.drdisagree.iconify.utils.OmniJawsClient.EXTRA_ERROR_NETWORK +import com.drdisagree.iconify.utils.OmniJawsClient.EXTRA_ERROR_NO_PERMISSIONS +import com.drdisagree.iconify.weather.Config.getLocationId +import com.drdisagree.iconify.weather.Config.getProvider +import com.drdisagree.iconify.weather.Config.isCustomLocation +import com.drdisagree.iconify.weather.Config.isEnabled +import com.drdisagree.iconify.weather.Config.isMetric +import com.drdisagree.iconify.weather.Config.setUpdateError +import com.drdisagree.iconify.weather.Config.setWeatherData +import com.google.common.util.concurrent.ListenableFuture +import java.text.SimpleDateFormat +import java.util.Locale +import java.util.concurrent.ExecutorService +import java.util.concurrent.Executors +import java.util.concurrent.atomic.AtomicReference + +class WeatherWork(val mContext: Context, workerParams: WorkerParameters) : + ListenableWorker(mContext, workerParams) { + override fun startWork(): ListenableFuture { + if (DEBUG) Log.d(TAG, "startWork") + + return CallbackToFutureAdapter.getFuture { completer: CallbackToFutureAdapter.Completer -> + if (!isEnabled(mContext)) { + handleError( + completer, + EXTRA_ERROR_DISABLED, + "Service started, but not enabled ... stopping" + ) + return@getFuture completer + } + if (!checkPermissions()) { + handleError( + completer, + EXTRA_ERROR_NO_PERMISSIONS, + "Location permissions are not granted" + ) + return@getFuture completer + } + + if (!doCheckLocationEnabled()) { + handleError(completer, EXTRA_ERROR_NETWORK, "Location services are disabled") + return@getFuture completer + } + + executor.execute { + val location = currentLocation + if (location != null) { + Log.d(TAG, "Location retrieved") + updateWeather(location, completer) + } else if (isCustomLocation(mContext)) { + Log.d( + TAG, + "Using custom location configuration" + ) + updateWeather(null, completer) + } else { + handleError(completer, EXTRA_ERROR_LOCATION, "Failed to retrieve location") + } + } + completer + } + } + + private fun handleError( + completer: CallbackToFutureAdapter.Completer, + errorExtra: Int, + logMessage: String + ) { + Log.w(TAG, logMessage) + val errorIntent = Intent(ACTION_ERROR) + errorIntent.putExtra(EXTRA_ERROR, errorExtra) + mContext.sendBroadcast(errorIntent) + completer.set(Result.retry()) + } + + private fun doCheckLocationEnabled(): Boolean { + val locationManager = mContext.getSystemService(Context.LOCATION_SERVICE) as LocationManager + var gpsEnabled = false + var networkEnabled = false + + try { + gpsEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER) + } catch (ex: Exception) { + Log.d(TAG, "doCheckLocationEnabled: " + ex.message) + } + + try { + networkEnabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER) + } catch (ex: Exception) { + Log.d(TAG, "doCheckLocationEnabled: " + ex.message) + } + + if (DEBUG) Log.d( + TAG, + "gpsEnabled: $gpsEnabled networkEnabled: $networkEnabled" + ) + + return gpsEnabled || networkEnabled + } + + @get:SuppressLint("MissingPermission") + private val currentLocation: Location? + get() { + val lm = mContext.getSystemService(Context.LOCATION_SERVICE) as LocationManager + + if (!doCheckLocationEnabled()) { + Log.w(TAG, "locations disabled") + return null + } + + val location = + AtomicReference(lm.getLastKnownLocation(LocationManager.PASSIVE_PROVIDER)) + Log.d(TAG, "Current location is $location") + + if (location.get() != null && location.get()!!.accuracy > LOCATION_ACCURACY_THRESHOLD_METERS) { + Log.w(TAG, "Ignoring inaccurate location") + location.set(null) + } + + var needsUpdate = location.get() == null + if (location.get() != null) { + val delta = System.currentTimeMillis() - location.get()!!.time + needsUpdate = delta > OUTDATED_LOCATION_THRESHOLD_MILLIS + Log.d(TAG, "Location is " + delta + "ms old") + if (needsUpdate) { + Log.w( + TAG, "Ignoring too old location from " + dayFormat.format( + location.get()!!.time + ) + ) + location.set(null) + } + } + + if (needsUpdate) { + Log.d(TAG, "Requesting current location") + val locationProvider = lm.getBestProvider(sLocationCriteria, true) + if (TextUtils.isEmpty(locationProvider)) { + Log.e(TAG, "No available location providers matching criteria.") + } else { + Log.d( + TAG, + "Getting current location with provider $locationProvider" + ) + lm.getCurrentLocation( + locationProvider!!, null, mContext.mainExecutor + ) { location1: Location? -> + if (location1 != null) { + Log.d( + TAG, + "Got valid location now update" + ) + location.set(location1) + } else { + Log.w( + TAG, + "Failed to retrieve location" + ) + } + } + } + } + + return location.get() + } + + private fun updateWeather( + location: Location?, + completer: CallbackToFutureAdapter.Completer + ) { + var w: WeatherInfo? = null + try { + val provider = getProvider(mContext) + val isMetric = isMetric(mContext) + var i = 0 + while (i < RETRY_MAX_NUM) { + w = if (location != null && !isCustomLocation(mContext)) { + provider.getLocationWeather(location, isMetric) + } else if (getLocationId(mContext) != null) { + provider.getCustomWeather(getLocationId(mContext), isMetric) + } else { + Log.w(TAG, "No valid custom location and location is null") + break + } + + if (w != null) { + setWeatherData(w, mContext) + WeatherContentProvider.updateCachedWeatherInfo(mContext) + Log.d(TAG, "Weather updated updateCachedWeatherInfo") + completer.set(Result.success()) + return + } else { + if (!provider.shouldRetry()) { + break + } else { + Log.w(TAG, "retry count = $i") + try { + Thread.sleep(RETRY_DELAY_MS.toLong()) + } catch (ignored: InterruptedException) { + } + } + } + i++ + } + } finally { + if (w == null) { + Log.d(TAG, "error updating weather") + setUpdateError(mContext, true) + completer.set(Result.retry()) + } + val updateIntent = Intent(ACTION_BROADCAST) + mContext.sendBroadcast(updateIntent) + } + } + + private fun checkPermissions(): Boolean { + return mContext.checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED && + mContext.checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED + } + + companion object { + private const val TAG = "WeatherWork" + private const val DEBUG = false + private val ACTION_BROADCAST = BuildConfig.APPLICATION_ID.replace(".debug", "") + ".WEATHER_UPDATE" + private val ACTION_ERROR = BuildConfig.APPLICATION_ID.replace(".debug", "") + ".WEATHER_ERROR" + + private const val EXTRA_ERROR = "error" + + private const val LOCATION_ACCURACY_THRESHOLD_METERS = 10000f + private const val OUTDATED_LOCATION_THRESHOLD_MILLIS = 10L * 60L * 1000L // 10 minutes + private const val RETRY_DELAY_MS = 5000 + private const val RETRY_MAX_NUM = 5 + + private val executor: ExecutorService = Executors.newSingleThreadExecutor() + private val dayFormat = SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.US) + + private val sLocationCriteria = Criteria() + + init { + sLocationCriteria.powerRequirement = Criteria.POWER_LOW + sLocationCriteria.accuracy = Criteria.ACCURACY_COARSE + sLocationCriteria.isCostAllowed = false + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/weather/providers/OpenMeteoProvider.kt b/app/src/main/java/com/drdisagree/iconify/weather/providers/OpenMeteoProvider.kt new file mode 100644 index 000000000..371d43ba3 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/weather/providers/OpenMeteoProvider.kt @@ -0,0 +1,359 @@ +package com.drdisagree.iconify.weather.providers + +import android.content.Context +import android.location.Location +import android.util.Log +import com.drdisagree.iconify.weather.AbstractWeatherProvider +import com.drdisagree.iconify.weather.WeatherInfo +import org.json.JSONException +import org.json.JSONObject +import java.text.SimpleDateFormat +import java.util.Calendar +import java.util.Locale +import java.util.TimeZone + +class OpenMeteoProvider(context: Context?) : AbstractWeatherProvider(context!!) { + override fun getCustomWeather(id: String?, metric: Boolean): WeatherInfo? { + return handleWeatherRequest(id, metric) + } + + override fun getLocationWeather(location: Location?, metric: Boolean): WeatherInfo? { + val coordinates = + String.format(Locale.US, PART_COORDINATES, location!!.latitude, location.longitude) + return handleWeatherRequest(coordinates, metric) + } + + private fun handleWeatherRequest(selection: String?, metric: Boolean): WeatherInfo? { + val tempUnit = if (metric) "celsius" else "fahrenheit" + val speedUnit = if (metric) "kmh" else "mph" + val timeZone = TimeZone.getDefault().id + val conditionUrl = String.format( + Locale.US, + URL_WEATHER + PART_PARAMETERS, + selection, + tempUnit, + speedUnit, + timeZone + ) + Log.d(TAG, "Condition URL = $conditionUrl") + val conditionResponse = retrieve(conditionUrl) ?: return null + log( + TAG, + "Condition URL = $conditionUrl returning a response of $conditionResponse" + ) + + try { + val weather = JSONObject(conditionResponse).getJSONObject("current_weather") + + val city = getWeatherDataLocality(selection!!) + + val weathercode = weather.getInt("weathercode") + val isDay = weather.getInt("is_day") == 1 + + val w: WeatherInfo = WeatherInfo( + mContext, /* id */ + selection, /* cityId */ + city!!, /* condition */ + getWeatherDescription(weathercode), /* conditionCode */ + mapConditionIconToCode(weathercode, isDay), /* temperature */ + weather.getDouble("temperature") + .toFloat(), // Api: Possibly future inclusion humidity in current weather; may eliminate need for hourly forecast request. + /* humidity */ + getCurrentHumidity(JSONObject(conditionResponse).getJSONObject("hourly")), /* wind */ + weather.getDouble("windspeed").toFloat(), /* windDir */ + weather.getInt("winddirection"), + metric, + parseForecasts(JSONObject(conditionResponse).getJSONObject("daily"), metric), + System.currentTimeMillis() + ) + + log(TAG, "Weather updated: $w") + return w + } catch (e: JSONException) { + Log.w( + TAG, + "Received malformed weather data (coordinates = $selection)", e + ) + } + + + return null + } + + @Throws(JSONException::class) + private fun parseForecasts( + dailyForecasts: JSONObject, + metric: Boolean + ): ArrayList { + val result: ArrayList = ArrayList(5) + + val timeJson = dailyForecasts.getJSONArray("time") + val temperatureMinJson = dailyForecasts.getJSONArray("temperature_2m_min_best_match") + val temperatureMaxJson = dailyForecasts.getJSONArray("temperature_2m_max_best_match") + val weatherCodeJson = dailyForecasts.getJSONArray("weathercode_best_match") + val altWeatherCodeJson = dailyForecasts.getJSONArray("weathercode_gfs_seamless") + val currentDay = + SimpleDateFormat("yyyy-MM-dd", Locale.US).format(Calendar.getInstance().time) + + var startIndex = 1 + if (currentDay == timeJson.getString(0)) startIndex = 0 + else if (currentDay == timeJson.getString(2)) startIndex = 2 + + var i = startIndex + while (i < timeJson.length() && result.size < 5) { + var item: WeatherInfo.DayForecast + var weatherCode = weatherCodeJson.getInt(i) + if (weatherCode == 45 || weatherCode == 48) weatherCode = altWeatherCodeJson.getInt(i) + + try { + item = WeatherInfo.DayForecast( /* low */ + temperatureMinJson.getDouble(i).toFloat(), /* high */ + temperatureMaxJson.getDouble(i).toFloat(), /* condition */ + getWeatherDescription(weatherCode), /* conditionCode */ + mapConditionIconToCode(weatherCode, true), + timeJson.getString(i), + metric + ) + } catch (e: JSONException) { + Log.w( + TAG, + "Invalid forecast for day $i creating dummy", e + ) + item = WeatherInfo.DayForecast( /* low */ + 0F, /* high */ + 0F, /* condition */ + "", /* conditionCode */ + -1, + "NaN", + metric + ) + } + result.add(item) + i++ + } + // clients assume there are 5 entries - so fill with dummy if needed + if (result.size < 5) { + for (i in result.size..4) { + Log.w( + TAG, + "Missing forecast for day $i creating dummy" + ) + val item: WeatherInfo.DayForecast = WeatherInfo.DayForecast( /* low */ + 0F, /* high */ + 0F, /* condition */ + "", /* conditionCode */ + -1, + "NaN", + metric + ) + result.add(item) + } + } + + return result + } + + private val languageCode: String + get() { + val locale = mContext.resources.configuration.locale + val selector = locale.language + "-" + locale.country + + for ((key, value) in LANGUAGE_CODE_MAPPING) { + if (selector.startsWith(key)) { + return value + } + } + + return "en" + } + + private fun mapConditionIconToCode(code: Int, isDay: Boolean): Int { + return when (code) { + 0 -> // Clear sky + if (isDay) 32 else 31 + + 1 -> // Mainly clear + if (isDay) 34 else 33 + + 2 -> // Partly cloudy + if (isDay) 30 else 29 + + 3 -> // Overcast + 26 + + 45, 48 -> // Depositing rime fog + 20 + + 51 -> // Light intensity drizzle + 9 + + 53 -> // Moderate intensity drizzle + 9 + + 55 -> // Dense intensity drizzle + 12 + + 56 -> // Light intensity freezing drizzle + 8 + + 57 -> // Dense intensity freezing drizzle + 8 + + 61 -> // Slight intensity rain + 9 + + 63 -> // Moderate intensity rain + 11 + + 65 -> // Heavy intensity rain + 12 + + 66 -> // Light intensity freezing rain + 10 + + 67 -> // Heavy intensity freezing rain + 10 + + 71 -> // Slight intensity snowfall + 14 + + 73 -> // Moderate intensity snowfall + 16 + + 75 -> // Heavy intensity snowfall + 43 + + 77 -> // Snow grains + 16 + + 80 -> // Slight intensity rain showers + 11 + + 81 -> // Moderate intensity rain showers + 40 + + 82 -> // Violent intensity rain showers + 40 + + 85 -> // Slight intensity snow showers + 14 + + 86 -> // Heavy intensity snow showers + 43 + + 95 -> // Slight or moderate thunderstorm + 4 + + 96, 99 -> // Thunderstorm with heavy hail + 38 + + else -> // Unknown + -1 + } + } + + override fun shouldRetry(): Boolean { + return false + } + + companion object { + private const val TAG = "OpenWeatherMapProvider" + + private const val FORECAST_DAYS = 5 + private const val URL_WEATHER = "https://api.open-meteo.com/v1/forecast?" + private const val PART_COORDINATES = "latitude=%f&longitude=%f" + private const val PART_PARAMETERS = + "%s&hourly=relativehumidity_2m&daily=weathercode,temperature_2m_max,temperature_2m_min¤t_weather=true&temperature_unit=%s&windspeed_unit=%s&timezone=%s&past_days=1&models=best_match,gfs_seamless" + + + private fun getWeatherDescription(code: Int): String { + return when (code) { + 0 -> "Clear sky" + 1 -> "Mainly clear" + 2 -> "Partly cloudy" + 3 -> "Overcast" + 45 -> "Fog" + 48 -> "Depositing rime fog" + 51 -> "Light intensity drizzle" + 53 -> "Moderate intensity drizzle" + 55 -> "Dense intensity drizzle" + 56 -> "Light intensity freezing drizzle" + 57 -> "Dense intensity freezing drizzle" + 61 -> "Slight intensity rain" + 63 -> "Moderate intensity rain" + 65 -> "Heavy intensity rain" + 66 -> "Light intensity freezing rain" + 67 -> "Heavy intensity freezing rain" + 71 -> "Slight intensity snowfall" + 73 -> "Moderate intensity snowfall" + 75 -> "Heavy intensity snowfall" + 77 -> "Snow grains" + 80 -> "Slight intensity rain showers" + 81 -> "Moderate intensity rain showers" + 82 -> "Violent intensity rain showers" + 85 -> "Slight intensity snow showers" + 86 -> "Heavy intensity snow showers" + 95 -> "Slight or moderate thunderstorm" + 96 -> "Thunderstorm with slight hail" + 99 -> "Thunderstorm with heavy hail" + else -> "Unknown" + } + } + + @Throws(JSONException::class) + private fun getCurrentHumidity(hourlyJson: JSONObject): Float { + val currentHour = + SimpleDateFormat("yyyy-MM-dd'T'HH", Locale.US).format(Calendar.getInstance().time) + val hourlyTimes = hourlyJson.getJSONArray("time") + val hourlyHumidity = hourlyJson.getJSONArray("relativehumidity_2m_best_match") + + var currentIndex = 36 + for (i in 0 until hourlyTimes.length()) if (hourlyTimes.getString(i) + .startsWith(currentHour) + ) { + currentIndex = i + break + } + + return hourlyHumidity.getDouble(currentIndex).toFloat() + } + + // OpenWeatherMap sometimes returns temperatures in Kelvin even if we ask it + // for deg C or deg F. Detect this and convert accordingly. + private fun sanitizeTemperature(value: Double, metric: Boolean): Float { + // threshold chosen to work for both C and F. 170 deg F is hotter + // than the hottest place on earth. + var value = value + if (value > 170) { + // K -> deg C + value -= 273.15 + if (!metric) { + // deg C -> deg F + value = (value * 1.8) + 32 + } + } + return value.toFloat() + } + + private val LANGUAGE_CODE_MAPPING = HashMap() + + init { + LANGUAGE_CODE_MAPPING["bg-"] = "bg" + LANGUAGE_CODE_MAPPING["de-"] = "de" + LANGUAGE_CODE_MAPPING["es-"] = "sp" + LANGUAGE_CODE_MAPPING["fi-"] = "fi" + LANGUAGE_CODE_MAPPING["fr-"] = "fr" + LANGUAGE_CODE_MAPPING["it-"] = "it" + LANGUAGE_CODE_MAPPING["nl-"] = "nl" + LANGUAGE_CODE_MAPPING["pl-"] = "pl" + LANGUAGE_CODE_MAPPING["pt-"] = "pt" + LANGUAGE_CODE_MAPPING["ro-"] = "ro" + LANGUAGE_CODE_MAPPING["ru-"] = "ru" + LANGUAGE_CODE_MAPPING["se-"] = "se" + LANGUAGE_CODE_MAPPING["tr-"] = "tr" + LANGUAGE_CODE_MAPPING["uk-"] = "ua" + LANGUAGE_CODE_MAPPING["zh-CN"] = "zh_cn" + LANGUAGE_CODE_MAPPING["zh-TW"] = "zh_tw" + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/EntryList.kt b/app/src/main/java/com/drdisagree/iconify/xposed/EntryList.kt index f51d8f89d..85c42ceaa 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/EntryList.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/EntryList.kt @@ -11,6 +11,7 @@ import com.drdisagree.iconify.xposed.modules.HeaderClock import com.drdisagree.iconify.xposed.modules.HeaderImage import com.drdisagree.iconify.xposed.modules.IconUpdater import com.drdisagree.iconify.xposed.modules.LockscreenClock +import com.drdisagree.iconify.xposed.modules.LockscreenWeather import com.drdisagree.iconify.xposed.modules.Miscellaneous import com.drdisagree.iconify.xposed.modules.QSTransparency import com.drdisagree.iconify.xposed.modules.QuickSettings @@ -37,6 +38,7 @@ object EntryList { HeaderClock::class.java, HeaderImage::class.java, LockscreenClock::class.java, + LockscreenWeather::class.java, Miscellaneous::class.java, QSTransparency::class.java, QuickSettings::class.java, diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt new file mode 100644 index 000000000..b3183e1ac --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt @@ -0,0 +1,176 @@ +package com.drdisagree.iconify.xposed.modules + +import android.content.Context +import android.graphics.Color +import android.view.View +import android.view.ViewGroup +import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS +import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_LEFT +import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_TOP +import com.drdisagree.iconify.common.Preferences.WEATHER_ICON_SIZE +import com.drdisagree.iconify.common.Preferences.WEATHER_SHOW_CONDITION +import com.drdisagree.iconify.common.Preferences.WEATHER_SHOW_HUMIDITY +import com.drdisagree.iconify.common.Preferences.WEATHER_SHOW_LOCATION +import com.drdisagree.iconify.common.Preferences.WEATHER_SHOW_WIND +import com.drdisagree.iconify.common.Preferences.WEATHER_STYLE +import com.drdisagree.iconify.common.Preferences.WEATHER_SWITCH +import com.drdisagree.iconify.common.Preferences.WEATHER_TEXT_COLOR +import com.drdisagree.iconify.common.Preferences.WEATHER_TEXT_COLOR_SWITCH +import com.drdisagree.iconify.common.Preferences.WEATHER_TEXT_SIZE +import com.drdisagree.iconify.config.XPrefs.Xprefs +import com.drdisagree.iconify.xposed.ModPack +import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.setMargins +import com.drdisagree.iconify.xposed.views.CurrentWeatherView +import de.robv.android.xposed.XC_MethodHook +import de.robv.android.xposed.XposedBridge.hookAllMethods +import de.robv.android.xposed.XposedHelpers.findClass +import de.robv.android.xposed.XposedHelpers.getObjectField +import de.robv.android.xposed.callbacks.XC_LoadPackage + +class LockscreenWeather(context: Context?) : ModPack(context!!) { + + private var weatherEnabled = false + private var weatherShowLocation = true + private var weatherShowCondition = true + private var weatherShowHumidity = false + private var weatherShowWind = false + private var weatherCustomColor = false + private var weatherColor = Color.WHITE + private var weatherStartPadding = 0 + private var weatherTextSize:Int = 16 + private var weatherImageSize:Int = 18 + private var mCustomMargins = false + private var mLeftMargin = 0 + private var mTopMargin:Int = 0 + private var mWeatherBackground = 0 + + private var mStatusViewContainer: ViewGroup? = null + + + override fun updatePrefs(vararg key: String) { + if (Xprefs == null) return + + weatherEnabled = Xprefs!!.getBoolean(WEATHER_SWITCH, false) + weatherShowLocation = Xprefs!!.getBoolean(WEATHER_SHOW_LOCATION, true) + weatherShowCondition = Xprefs!!.getBoolean(WEATHER_SHOW_CONDITION, true) + weatherShowHumidity = Xprefs!!.getBoolean(WEATHER_SHOW_HUMIDITY, false) + weatherShowWind = Xprefs!!.getBoolean(WEATHER_SHOW_WIND, false) + weatherCustomColor = Xprefs!!.getBoolean(WEATHER_TEXT_COLOR_SWITCH, false) + weatherColor = Xprefs!!.getInt(WEATHER_TEXT_COLOR, Color.WHITE) + weatherTextSize = Xprefs!!.getInt(WEATHER_TEXT_SIZE, 16) + weatherImageSize = Xprefs!!.getInt(WEATHER_ICON_SIZE, 18) + mCustomMargins = Xprefs!!.getBoolean(WEATHER_CUSTOM_MARGINS, false) + mLeftMargin = Xprefs!!.getInt(WEATHER_CUSTOM_MARGINS_TOP, 0) + mTopMargin = Xprefs!!.getInt(WEATHER_CUSTOM_MARGINS_LEFT, 0) + mWeatherBackground = Xprefs!!.getInt(WEATHER_STYLE, 0) + + if (key.isNotEmpty() && + (key[0] == (WEATHER_SHOW_LOCATION) || + key[0] == (WEATHER_SHOW_CONDITION) || + key[0] == (WEATHER_SHOW_HUMIDITY) || + key[0] == (WEATHER_SHOW_WIND) || + key[0] == (WEATHER_TEXT_COLOR_SWITCH) || + key[0] == (WEATHER_TEXT_COLOR) || + key[0] == (WEATHER_TEXT_SIZE) || + key[0] == (WEATHER_ICON_SIZE) || + key[0] == (WEATHER_STYLE))) { + updateWeatherView() + } + + } + + override fun handleLoadPackage(loadPackageParam: XC_LoadPackage.LoadPackageParam) { + + val keyguardStatusViewClass = findClass( + "com.android.keyguard.KeyguardStatusView", + loadPackageParam.classLoader + ) + + hookAllMethods(keyguardStatusViewClass, "onFinishInflate", object : XC_MethodHook() { + override fun afterHookedMethod(param: MethodHookParam) { + if (!weatherEnabled) return + + mStatusViewContainer = getObjectField( + param.thisObject, + "mStatusViewContainer" + ) as ViewGroup + + placeWeatherView() + + } + }) + } + + private fun placeWeatherView() { + try { + val currentWeatherView: CurrentWeatherView = + CurrentWeatherView.getInstance(mContext, LOCKSCREEN_WEATHER) + try { + (currentWeatherView.parent as ViewGroup).removeView(currentWeatherView) + } catch (ignored: Throwable) { + } + mStatusViewContainer!!.addView(currentWeatherView) + refreshWeatherView(currentWeatherView) + updateMargins(currentWeatherView) + } catch (ignored: Throwable) { + } + } + + private fun updateMargins(weatherView: CurrentWeatherView?) { + if (weatherView == null) return + if (mCustomMargins) { + setMargins( + weatherView, + mContext, + mTopMargin, + mLeftMargin, + 0, + 0 + ) + } else { + setMargins( + weatherView, + mContext, + 0, + 0, + 0, + 0 + ) + } + } + + private fun refreshWeatherView(currentWeatherView: CurrentWeatherView?) { + if (currentWeatherView == null) return + currentWeatherView.updateSizes( + weatherTextSize, + weatherImageSize, + LOCKSCREEN_WEATHER + ) + currentWeatherView.updateColors( + if (weatherCustomColor) weatherColor else Color.WHITE, + LOCKSCREEN_WEATHER + ) + currentWeatherView.updateWeatherSettings( + weatherShowLocation, + weatherShowCondition, + weatherShowHumidity, + weatherShowWind, + LOCKSCREEN_WEATHER + ) + currentWeatherView.visibility = if (weatherEnabled) View.VISIBLE else View.GONE + currentWeatherView.updateWeatherBg( + mWeatherBackground, + LOCKSCREEN_WEATHER + ) + updateMargins(currentWeatherView) + } + + private fun updateWeatherView() { + refreshWeatherView(CurrentWeatherView.getInstance(LOCKSCREEN_WEATHER)) + } + + companion object { + const val LOCKSCREEN_WEATHER = "iconify_ls_weather" + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/views/CurrentWeatherView.kt b/app/src/main/java/com/drdisagree/iconify/xposed/views/CurrentWeatherView.kt new file mode 100644 index 000000000..30a1aded1 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/xposed/views/CurrentWeatherView.kt @@ -0,0 +1,514 @@ +package com.drdisagree.iconify.xposed.views + +import android.annotation.SuppressLint +import android.content.Context +import android.content.pm.PackageManager +import android.content.res.Resources +import android.graphics.drawable.Drawable +import android.text.TextUtils +import android.util.Log +import android.util.TypedValue +import android.view.Gravity +import android.widget.ImageView +import android.widget.LinearLayout +import android.widget.TextView +import androidx.core.content.ContextCompat +import androidx.core.content.res.ResourcesCompat +import com.drdisagree.iconify.BuildConfig +import com.drdisagree.iconify.R +import com.drdisagree.iconify.ui.utils.ViewHelper.applyTextSizeRecursively +import com.drdisagree.iconify.ui.utils.ViewHelper.setTextRecursively +import com.drdisagree.iconify.utils.OmniJawsClient +import com.drdisagree.iconify.xposed.HookRes.Companion.modRes +import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.findViewWithTagAndChangeColor +import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.setMargins +import de.robv.android.xposed.XposedBridge +import java.util.Locale +import java.util.function.Consumer + +@SuppressLint("ViewConstructor") +class CurrentWeatherView(context: Context, name: String) : LinearLayout(context), + OmniJawsClient.OmniJawsObserver { + private var mCurrentImage: ImageView? = null + private var mHumImage: ImageView? = null + private var mWindImage: ImageView? = null + private val mWeatherClient: OmniJawsClient? + private var mWeatherInfo: OmniJawsClient.WeatherInfo? = null + private var mLeftText: TextView? = null + private var mRightText: TextView? = null + private var mWeatherText: TextView? = null // Weather Layout + private var mHumText: TextView? = null + private var mWindText: TextView? = null + private val mWeatherLayout: LinearLayout? = null + private var mHumLayout: LinearLayout? = null + private var mWindLayout: LinearLayout? = null + private var mHumDrawable: Drawable? = null + private var mWindDrawable: Drawable? = null + private var mWeatherBgSelection = 0 + + private var mShowWeatherLocation = false + private var mShowWeatherText = false + private var mShowWeatherHumidity = false + private var mShowWeatherWind = false + private var mWeatherHorPadding = 0 + private var mWeatherVerPadding = 0 + private val mContext: Context + private var appContext: Context? = null + + init { + instances.add(arrayOf(this, name)) + mContext = context + try { + appContext = context.createPackageContext( + BuildConfig.APPLICATION_ID, + Context.CONTEXT_IGNORE_SECURITY + ) + } catch (ignored: PackageManager.NameNotFoundException) { + } + mWeatherClient = OmniJawsClient(appContext, true) + + inflateView() + + enableUpdates() + + } + + private fun inflateView() { + inflate(appContext, R.layout.view_current_weather, this) + setupViews() + } + + private fun setupViews() { + mLeftText = findViewById(R.id.leftText) + mCurrentImage = findViewById(R.id.currentImage) + mRightText = findViewById(R.id.rightText) + mWeatherText = findViewById(R.id.weatherText) + mHumLayout = findViewById(R.id.humLayout) + mHumImage = findViewById(R.id.humImage) + mHumText = findViewById(R.id.humText) + mWindLayout = findViewById(R.id.windLayout) + mWindImage = findViewById(R.id.windImage) + mWindText = findViewById(R.id.windText) + + mWindDrawable = ContextCompat.getDrawable( + appContext!!, + R.drawable.ic_wind_symbol + ) + + mHumDrawable = ContextCompat.getDrawable( + appContext!!, + R.drawable.ic_humidity_symbol + ) + } + + fun updateSizes(weatherTextSize: Int, weatherImageSize: Int, name: String) { + if (instances.isEmpty()) return + updateIconsSize(weatherImageSize, name) + instances + .stream() + .filter { obj: Array -> + obj[1] == name + } + .forEach { obj: Array -> + applyTextSizeRecursively( + obj[0] as CurrentWeatherView, + weatherTextSize + ) + } + } + + fun updateColors(color: Int, name: String) { + if (instances.isEmpty()) return + instances + .stream() + .filter { obj: Array -> + obj[1] == name + } + .forEach { obj: Array -> + val instance = obj[0] as CurrentWeatherView + findViewWithTagAndChangeColor(instance, "text", color) + } + } + + private fun enableUpdates() { + XposedBridge.log(TAG + "enableUpdates") + if (mWeatherClient != null) { + mWeatherClient.addObserver(this) + //WeatherScheduler.scheduleUpdateNow(mContext); + queryAndUpdateWeather() + } + } + + fun disableUpdates() { + mWeatherClient?.removeObserver(this) + } + + private fun setErrorView(errorReason: Int) { + var reQuery = false + val errorText = when (errorReason) { + OmniJawsClient.EXTRA_ERROR_DISABLED -> modRes.getString(R.string.omnijaws_service_disabled) + OmniJawsClient.EXTRA_ERROR_NO_PERMISSIONS -> modRes.getString(R.string.omnijaws_service_error_permissions) + else -> "" + } + if (!TextUtils.isEmpty(errorText)) { + mLeftText!!.text = errorText + } else { + reQuery = true + } + if (reQuery) { + queryAndUpdateWeather() + } else { + setTextRecursively(this, "") + mCurrentImage!!.setImageDrawable(null) + mHumImage!!.setImageDrawable(null) + mWindImage!!.setImageDrawable(null) + } + } + + override fun weatherError(errorReason: Int) { + // Show only Disabled and Permission errors + XposedBridge.log(TAG + "weatherError " + errorReason) + if (errorReason == OmniJawsClient.EXTRA_ERROR_DISABLED) { + mWeatherInfo = null + } + setErrorView(errorReason) + } + + override fun weatherUpdated() { + queryAndUpdateWeather() + } + + override fun updateSettings() { + queryAndUpdateWeather() + } + + @SuppressLint("SetTextI18n") + private fun queryAndUpdateWeather() { + try { + if (mWeatherClient == null || !mWeatherClient.isOmniJawsEnabled) { + setErrorView(2) + return + } + mWeatherClient.queryWeather() + mWeatherInfo = mWeatherClient.getWeatherInfo() + if (mWeatherInfo != null) { + var formattedCondition: String = mWeatherInfo!!.condition.toString() + if (formattedCondition.lowercase(Locale.getDefault()).contains("clouds")) { + formattedCondition = modRes.getString(R.string.weather_condition_clouds) + } else if (formattedCondition.lowercase(Locale.getDefault()).contains("rain")) { + formattedCondition = modRes.getString(R.string.weather_condition_rain) + } else if (formattedCondition.lowercase(Locale.getDefault()).contains("clear")) { + formattedCondition = modRes.getString(R.string.weather_condition_clear) + } else if (formattedCondition.lowercase(Locale.getDefault()).contains("storm")) { + formattedCondition = modRes.getString(R.string.weather_condition_storm) + } else if (formattedCondition.lowercase(Locale.getDefault()).contains("snow")) { + formattedCondition = modRes.getString(R.string.weather_condition_snow) + } else if (formattedCondition.lowercase(Locale.getDefault()).contains("wind")) { + formattedCondition = modRes.getString(R.string.weather_condition_wind) + } else if (formattedCondition.lowercase(Locale.getDefault()).contains("mist")) { + formattedCondition = modRes.getString(R.string.weather_condition_mist) + } + val d: Drawable = + mWeatherClient.getWeatherConditionImage(mWeatherInfo!!.conditionCode) + mCurrentImage!!.setImageDrawable(d) + mRightText!!.text = mWeatherInfo!!.temp + " " + mWeatherInfo!!.tempUnits + mLeftText!!.text = mWeatherInfo!!.city + mLeftText!!.visibility = if (mShowWeatherLocation) VISIBLE else GONE + mWeatherText!!.text = " · $formattedCondition" + mWeatherText!!.visibility = if (mShowWeatherText) VISIBLE else GONE + + mHumImage!!.setImageDrawable(mHumDrawable) + mHumText!!.text = mWeatherInfo!!.humidity + mHumLayout!!.visibility = if (mShowWeatherHumidity) VISIBLE else GONE + + mWindImage!!.setImageDrawable(mWindDrawable) + mWindText!!.text = ((mWeatherInfo!!.windDirection + " " + mWeatherInfo!!.pinWheel) + " · " + mWeatherInfo!!.windSpeed) + " " + mWeatherInfo!!.windUnits + mWindLayout!!.visibility = if (mShowWeatherWind) VISIBLE else GONE + } + } catch (e: Exception) { + XposedBridge.log(TAG + "Weather query failed" + e.message) + Log.e(TAG, "Weather query failed", e) + } + } + + fun updateWeatherBg(selection: Int, name: String) { + if (instances.isEmpty()) return + instances + .stream() + .filter { obj: Array -> + obj[1] == name + } + .forEach { obj: Array -> + val instance = obj[0] as CurrentWeatherView + instance.mWeatherBgSelection = selection + instance.updateWeatherBg() + } + } + + fun reloadWeatherBg() { + if (instances.isEmpty()) return + instances.forEach(Consumer { obj: Array -> + val instance = obj[0] as CurrentWeatherView + instance.updateWeatherBg() + }) + } + + private fun updateWeatherBg() { + var bg: Drawable? = null + try { + appContext = mContext.createPackageContext( + BuildConfig.APPLICATION_ID, + Context.CONTEXT_IGNORE_SECURITY + ) + } catch (ignored: PackageManager.NameNotFoundException) { + } + when (mWeatherBgSelection) { + 0 -> { + bg = null + mWeatherHorPadding = 0 + mWeatherVerPadding = 0 + } + + 1 -> { + bg = ResourcesCompat.getDrawable( + appContext!!.resources, + R.drawable.date_box_str_border, + appContext!!.theme + ) + mWeatherHorPadding = Math.round( + TypedValue.applyDimension( + TypedValue.COMPLEX_UNIT_PX, + modRes.getDimensionPixelSize(R.dimen.widget_date_box_padding_hor).toFloat(), + mContext.resources.displayMetrics + ) + ) + mWeatherVerPadding = Math.round( + TypedValue.applyDimension( + TypedValue.COMPLEX_UNIT_PX, + modRes.getDimensionPixelSize(R.dimen.widget_date_box_padding_ver).toFloat(), + mContext.resources.displayMetrics + ) + ) + } + + 2 -> { + bg = ResourcesCompat.getDrawable( + appContext!!.resources, + R.drawable.date_str_border, + appContext!!.theme + ) + mWeatherHorPadding = Math.round( + TypedValue.applyDimension( + TypedValue.COMPLEX_UNIT_PX, + modRes.getDimensionPixelSize(R.dimen.widget_date_box_padding_hor).toFloat(), + mContext.resources.displayMetrics + ) + ) + mWeatherVerPadding = Math.round( + TypedValue.applyDimension( + TypedValue.COMPLEX_UNIT_PX, + modRes.getDimensionPixelSize(R.dimen.widget_date_box_padding_ver).toFloat(), + mContext.resources.displayMetrics + ) + ) + } + + 3 -> { + bg = ResourcesCompat.getDrawable( + appContext!!.resources, + R.drawable.ambient_indication_pill_background, + appContext!!.theme + ) + mWeatherHorPadding = Math.round( + TypedValue.applyDimension( + TypedValue.COMPLEX_UNIT_PX, + modRes.getDimensionPixelSize(R.dimen.q_nowplay_pill_padding_hor).toFloat(), + mContext.resources.displayMetrics + ) + ) + mWeatherVerPadding = Math.round( + TypedValue.applyDimension( + TypedValue.COMPLEX_UNIT_PX, + modRes.getDimensionPixelSize(R.dimen.q_nowplay_pill_padding_ver).toFloat(), + mContext.resources.displayMetrics + ) + ) + } + + 4, 5 -> { + bg = ResourcesCompat.getDrawable( + appContext!!.resources, + R.drawable.date_str_accent, + appContext!!.theme + ) + mWeatherHorPadding = Math.round( + TypedValue.applyDimension( + TypedValue.COMPLEX_UNIT_PX, + modRes.getDimensionPixelSize(R.dimen.widget_date_accent_box_padding_hor).toFloat(), + mContext.resources.displayMetrics + ) + ) + mWeatherVerPadding = Math.round( + TypedValue.applyDimension( + TypedValue.COMPLEX_UNIT_PX, + modRes.getDimensionPixelSize(R.dimen.widget_date_accent_box_padding_ver).toFloat(), + mContext.resources.displayMetrics + ) + ) + } + + 6 -> { + bg = ResourcesCompat.getDrawable( + appContext!!.resources, + R.drawable.date_str_gradient, + appContext!!.theme + ) + mWeatherHorPadding = Math.round( + TypedValue.applyDimension( + TypedValue.COMPLEX_UNIT_PX, + modRes.getDimensionPixelSize(R.dimen.widget_date_accent_box_padding_hor).toFloat(), + mContext.resources.displayMetrics + ) + ) + mWeatherVerPadding = Math.round( + TypedValue.applyDimension( + TypedValue.COMPLEX_UNIT_PX, + modRes.getDimensionPixelSize(R.dimen.widget_date_accent_box_padding_ver).toFloat(), + mContext.resources.displayMetrics + ) + ) + } + + 7 -> { + bg = ResourcesCompat.getDrawable( + appContext!!.resources, + R.drawable.date_str_borderacc, + appContext!!.theme + ) + mWeatherHorPadding = Math.round( + TypedValue.applyDimension( + TypedValue.COMPLEX_UNIT_PX, + modRes.getDimensionPixelSize(R.dimen.widget_date_accent_box_padding_hor).toFloat(), + mContext.resources.displayMetrics + ) + ) + mWeatherVerPadding = Math.round( + TypedValue.applyDimension( + TypedValue.COMPLEX_UNIT_PX, + modRes.getDimensionPixelSize(R.dimen.widget_date_accent_box_padding_ver).toFloat(), + mContext.resources.displayMetrics + ) + ) + } + + 8 -> { + bg = ResourcesCompat.getDrawable( + appContext!!.resources, + R.drawable.date_str_bordergrad, + appContext!!.theme + ) + mWeatherHorPadding = Math.round( + TypedValue.applyDimension( + TypedValue.COMPLEX_UNIT_PX, + modRes.getDimensionPixelSize(R.dimen.widget_date_accent_box_padding_hor).toFloat(), + mContext.resources.displayMetrics + ) + ) + mWeatherVerPadding = Math.round( + TypedValue.applyDimension( + TypedValue.COMPLEX_UNIT_PX, + modRes.getDimensionPixelSize(R.dimen.widget_date_accent_box_padding_ver).toFloat(), + mContext.resources.displayMetrics + ) + ) + } + + else -> {} + } + setViewBackground(bg, if ((bg != null && mWeatherBgSelection == 5)) 160 else 255) + setPadding(mWeatherHorPadding, mWeatherVerPadding, mWeatherHorPadding, mWeatherVerPadding) + } + + private fun setViewBackground(drawRes: Drawable?, bgAlpha: Int) { + drawRes?.mutate() + background = drawRes + if (drawRes != null) background.alpha = bgAlpha + } + + fun updateWeatherSettings( + showLocation: Boolean, showText: Boolean, + showHumidity: Boolean, showWind: Boolean, name: String + ) { + if (BuildConfig.DEBUG) XposedBridge.log(TAG + "updateWeatherSettings " + (instances.isEmpty())) + instances.stream() + .filter { obj: Array -> + obj[1] == name + } + .forEach { obj: Array -> + val instance = obj[0] as CurrentWeatherView + instance.mShowWeatherLocation = showLocation + instance.mShowWeatherText = showText + instance.mShowWeatherHumidity = showHumidity + instance.mShowWeatherWind = showWind + instance.mLeftText!!.visibility = if (showLocation) VISIBLE else GONE + instance.mWeatherText!!.visibility = if (showText) VISIBLE else GONE + instance.mHumLayout!!.visibility = if (showHumidity) VISIBLE else GONE + instance.mWindLayout!!.visibility = if (showWind) VISIBLE else GONE + instance.updateSettings() + } + } + + companion object { + const val TAG: String = "CurrentWeatherView: " + + val Int.dp: Int + get() = (this * Resources.getSystem().displayMetrics.density + 0.5f).toInt() + + @SuppressLint("StaticFieldLeak") + var instances: ArrayList> = ArrayList() + fun updateIconsSize(size: Int, name: String) { + instances + .stream() + .filter { obj: Array -> + obj[1] == name + } + .forEach { obj: Array -> + val instance = obj[0] as CurrentWeatherView + val params = LayoutParams( + size.dp, + size.dp + ) + params.gravity = Gravity.CENTER_VERTICAL + instance.mCurrentImage!!.layoutParams = params + instance.mHumImage!!.layoutParams = params + instance.mWindImage!!.layoutParams = params + setMargins( + instance.mCurrentImage!!, instance.mContext, + if (instance.mShowWeatherLocation) 1.dp else 2.dp, + 0, + if (instance.mShowWeatherLocation) 1.dp else 2.dp, + 0 + ) + } + } + + fun getInstance(c: Context, name: String): CurrentWeatherView { + for (obj in instances) { + if (obj[1] == name) { + return obj[0] as CurrentWeatherView + } + } + return CurrentWeatherView(c, name) + } + + fun getInstance(name: String): CurrentWeatherView? { + for (obj in instances) { + if (obj[1] == name) { + return obj[0] as CurrentWeatherView + } + } + return null + } + } + +} \ No newline at end of file diff --git a/app/src/main/res/drawable-nodpi/google_0.png b/app/src/main/res/drawable-nodpi/google_0.png new file mode 100644 index 0000000000000000000000000000000000000000..fc9e40efd603620b89ddbaf8146f00d9fa487a88 GIT binary patch literal 961 zcmV;y13vtTP)A9QWu2X!<>lq?@9*mB z>aws*D*ylh5Oh*bQvm+^0(8$?@+&^!z8R$pk}&95MgRZRCt{2mf3QoFbqZU zzTx%%KX$HVvvfBT()}<~sfr$w5I91Xt|XS_*M9Avo7n9W^7%jSvuU+XYbmAHHsQwi z;DK5#WAKKTR=YLkqrLMmVX!%P4zRUS7#{{lTz}FgjW zcsMe!e#v;1mmv_HTvogvb%u+-j0#z5=PYcM2!+?HGfWz<9&ZMWgoUi#D)y8LX?g%E ziK~|nnxY2GRg^9r^~4iN`U<{r_Z$E&SE(kAS2Gp06^9ha|0;cJ9Pc;JJg#i^8Z`b@t_^5fT!z`M7*CBXsarn z_F^4MCNV<7NWMZJMoww0XCWt#!W1u0F|AJKVAxPHbX$snBH*u%qgH_ z2dYe&9mIxl6+##HI7#z3syH$ry8}Gj+XQ#()_sV(!-a0Pw&kIOo~d&RUEAAqc0Ai` z`)45-VU=0rha#p>59E=YI4*kx9*u$I*cTD6p%(rM?hbGS<9j#D3^CT1Ng{fKLS-Gl z@&Vo>hsw}k;O1hI2w_p*avZ*}#|ZifW>uiMi+PG5FbMDvJE!o-2-_-Jcq^CFw5xB` zG(ykQmvUc5Imr;$g$0@ zfw^F7yp_Nl|E6sWKQf6jtjoO#N`{OWYHc?ZbK5oFaWPhcg{Wh1VueIVWb&;qv(q=3 z*e3nEpLQa_#A!LdiAyz2E^os$>1$72|55b^9>fxx8RauIf8;=8pOS{^>zB+oJ;Y(z jE&s_r|FHkHpJ;yoyP+}F-&qZj00000NkvXXu0mjfPPWbJ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_1.png b/app/src/main/res/drawable-nodpi/google_1.png new file mode 100644 index 0000000000000000000000000000000000000000..be0b0130f4ec44dbbfd6c29e721bb3a80e61cfd1 GIT binary patch literal 1274 zcmV5&L{k*Rvz3l~tmZW%c#- z^z`-r)&Tz10RH~|`uh4j$p7Z%=j!U{|Jw%N-{arcv-tSIRF3v zBXm+uQvd<}`~&*@*!pG@Uqm0_ouf~}cvT4m=LI&jZz{;ghoD6?4!z#Y000B+Nkla42@uv+w_KTa^SvIcK;0L{#dh&ZHouT`2j_LWQ8u zCx0bYCk(@<@1ySyZ+~^!PlF(st}inm5r3gh30>`Znr4NRGRv}5t!Lr*c))eDAk8EP zVIc6KiZqywB?#j0(}Hs;nUY$V1Xz)-kD~~Jtegzg8IuozFN_y#Hi96?ER|f=wM#QN zOWy}WiTa$i=p%vgK>{W7E`3Yr_kt47X|?}BkiC(lWS@2G>o^o^N_+HIX`j9(^f^K4 zwBWK=6qiBRoq_p)0Vqy76I&5QQM0`$S!M$Upb5pgX7V!uQox1`fGhar9c4E6o)NkR zq#eMAYZ%&-XBaF~@sk zfz|Yx`boaOa;cc?Bk2ATrVh$N0&UDu9s>Xgs*k{Uw%0yDC1zaJ9N>Qv1Pl_OK_e5y zFp%7;g9H30F@W0ufhijV-Hi$}08TTW-xKY^?RIl|2~08H`mifFwqxl)Y%LfdaOwC} zBB2tL(FX_O(t>^hs}?B;W1$yyW*sO2dEQ6BC5G14Bq%^EA&8&`pgs`tE`rjfD9RdLGn_>wVLMi`%7mo8nz>aaU({Y9ce|y=8+u#mSR8IPeAj;-wdyEOtv!=1LtdWqvBZ8+e&Hf~iM;}4iqadxEmKc0zl?4&Il?CD++jQ{sv z_BNC(j<#(ND`2*b&=edj$}dd<1Ky0e6xFT^ zwA$NDuIH#@PN{zWz*vI*sdP6wUni669O`6&Cx?!KPZ-$>@WnV#E;eAm1Wh2`1W(TW zL#xeZ*kjoOig-Tm0kY$w kBh1+UFMc5yz+C6n{c4D_V)Jl^z{1r`sU{5+S=Ow{{EpYjKlx{02p*qPE!E>{sI93 z{Tb5eU<%26NtHb+x~SRSEK`8>iO2u|14BtfK~#90rB~~ks~`+S5fSgLb{A0J|20p- zMeME>+>;;MwBOD+35f}WoLW&7xWGh1%*U1LDu&h9b&Pkop3T4A)UW{^S)Nq7a;1oF=8!HG#_XbRmI80*D9E z2pJ`iRl)v400z<1h8p`xz(}Q22&O~M-jDDhRf^@Ev3i6~KfWo_B0yV|h7R4dn8ss+ zQ8MTx0=cYthNkp39U3ex1xS#uONK>d8f**DRv$TLGAs4K;!B!mb;K}7li%Ge6Xa*qdwFe?hoV-~?X0XzI{R6rW!=cbm~ z8Zzijh*p9*)wj9BX3uv^L?dyzi#A0&91xj%L@#kCWPu zJw_PLQP^1NZs0oMmpd?ho16Ym_#w7J!>sMP-ad(;|L}f~espVva)2am=8&*U!A!w0 zGT;iFurb1%f`ig#^l^o~qfE|5jpsMV@DPB?u}(WoXD`vm$HE?|(O2;xxG6c*U64^? z*~k&E4YkHr&N+!nfGLsb8UK;d7X8-DKt7{C#IwknL5LQV79fF7LclHoF2vRfF*JeD!H#jUcQpFAMxZ_mQTAuFp568 z#X!k-31&73C;{}p@94JzN)V1;Aei#L1OqC~ad6|lZe2mCRq(_sW5KL{D+EY9pk7~i z3~-X@y>6Ouym^ZD1si6s`+jEs046b?6vj(&BLDyZ07*qoM6N<$f_qQx AW&i*H literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_11.png b/app/src/main/res/drawable-nodpi/google_11.png new file mode 100644 index 0000000000000000000000000000000000000000..c582b6a45d7e1d40390a7bc4de0b30294293a0bd GIT binary patch literal 1030 zcmV+h1o``kP)C%Mf$#6{&(F_Jy6ugUmBhrvrKhNEn6A;$ z(R-DnYNy2M>FHXo)%N!G^z`)Z?(Y2j{65G3>FMd=;o;cW*z?jW<^TWy7j#liQvm$~ z0r~;~(_s$+=gZU}he%SRJ9gEcHp#tq0009)NklJdG82LzAs>TtPJRu}*b0vAKYv57A9>F9--82(*IA#AWm%55Cad9l z5e|o;d6o*Lln_GVC%t8iBs?6Sl}brUsg!t83M69|Dk3IBssxofyEK6ux0Fi$ca|;3B`@L|$U)ukbKIBTv5001B}93khtEHz5g0)u{o$RKXR!I8I@$ z4d8VdOQRzjawr==JCM=?hXIRJI?8_7FEB=W?Lc}7p09~w08d|U47vn!Kdy0|0?***=D89LP z&p)jdD2}^BTdI#Dz`rd3=9g=F)tonMM(SR?`w;Z`+6rjZ3&1DuI}~Z*h$Wm!#7_W6 z{MLlHlvJ6K4;vkxPTRf|cuG_F*T4a6go!oErv9>5V^#9D>2E2-%|?2NThrzj2R9bm z-6CPTNRk9|#weV#qPRLb7G$^^fe72R%6-6z_Z^|(F<;HyyTzDvb9H&naRaM4it6)7 zST0dCSN;Pd2%T}{`8bkregW7AT~{0YfLRB_ zPUUf5KD$oD=8pyDxkl;@K`0{5$E5Nqu0^WGOc!3Fl z(z9P*gJD7*RrScp@9)vjSHIccOh7IFCx1Zv1B}$D%GeA9iU0rr07*qoM6N<$f-4Q? AUH||9 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_12.png b/app/src/main/res/drawable-nodpi/google_12.png new file mode 100644 index 0000000000000000000000000000000000000000..c582b6a45d7e1d40390a7bc4de0b30294293a0bd GIT binary patch literal 1030 zcmV+h1o``kP)C%Mf$#6{&(F_Jy6ugUmBhrvrKhNEn6A;$ z(R-DnYNy2M>FHXo)%N!G^z`)Z?(Y2j{65G3>FMd=;o;cW*z?jW<^TWy7j#liQvm$~ z0r~;~(_s$+=gZU}he%SRJ9gEcHp#tq0009)NklJdG82LzAs>TtPJRu}*b0vAKYv57A9>F9--82(*IA#AWm%55Cad9l z5e|o;d6o*Lln_GVC%t8iBs?6Sl}brUsg!t83M69|Dk3IBssxofyEK6ux0Fi$ca|;3B`@L|$U)ukbKIBTv5001B}93khtEHz5g0)u{o$RKXR!I8I@$ z4d8VdOQRzjawr==JCM=?hXIRJI?8_7FEB=W?Lc}7p09~w08d|U47vn!Kdy0|0?***=D89LP z&p)jdD2}^BTdI#Dz`rd3=9g=F)tonMM(SR?`w;Z`+6rjZ3&1DuI}~Z*h$Wm!#7_W6 z{MLlHlvJ6K4;vkxPTRf|cuG_F*T4a6go!oErv9>5V^#9D>2E2-%|?2NThrzj2R9bm z-6CPTNRk9|#weV#qPRLb7G$^^fe72R%6-6z_Z^|(F<;HyyTzDvb9H&naRaM4it6)7 zST0dCSN;Pd2%T}{`8bkregW7AT~{0YfLRB_ zPUUf5KD$oD=8pyDxkl;@K`0{5$E5Nqu0^WGOc!3Fl z(z9P*gJD7*RrScp@9)vjSHIccOh7IFCx1Zv1B}$D%GeA9iU0rr07*qoM6N<$f-4Q? AUH||9 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_13.png b/app/src/main/res/drawable-nodpi/google_13.png new file mode 100644 index 0000000000000000000000000000000000000000..283e387f2f44753a4c62bf8e43030a45c00413e5 GIT binary patch literal 868 zcmV-q1DpJbP)(mw6w&;#GRd;(9qEJ_4WMx{OIWD+S=MX2d4A@ z000eiQchC<{{98!8PrP1VTCiJna5w@0008hNkli#f<-m&WP`v~03i`N*|huKV{p=O@|AYtGS5Plw$Flz)0 zitRgqo%`X@5;`T3O3)*6c+**lS%4JGa0DrlAYD)LQviB-x(EFY=B5V1%WrsQ5FHHj z6Mkc8Wf7Bj!j~*$!xA<<MwZgXyNn1$3Hk6vC4F`MS+(_az+CEI61jRW7kF+p4E1^yym9E+huQDSiHsXN7y=i zaBoxB`5$%0#2@>;`qKn_S))Z@LO3ps7{YN6x)8cXUq|%|<$0#NbSrqEvUW_2cuU|$ z0k3Q5&CoYj~XjyFC_>2ySO#;JKDMy{i3W$dYijFGqw4nKg z3cIZU&$11jl$SB5DniiOZ%WOg^*&2Pd>ayaEP#iqEMFGBKL4+W20|(4j)EEIhL?`` z=4XGSft?0)d;hKi$WEJu3>!d?X^81;dvxoF9t+(Fik&C}==9(v1q&p*q(JF_9ZNwO ui=As5VWLjS4i=GM=hi6~e{)dJ8}NV4`%;Hldc>Xp0000XqOC literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_14.png b/app/src/main/res/drawable-nodpi/google_14.png new file mode 100644 index 0000000000000000000000000000000000000000..283e387f2f44753a4c62bf8e43030a45c00413e5 GIT binary patch literal 868 zcmV-q1DpJbP)(mw6w&;#GRd;(9qEJ_4WMx{OIWD+S=MX2d4A@ z000eiQchC<{{98!8PrP1VTCiJna5w@0008hNkli#f<-m&WP`v~03i`N*|huKV{p=O@|AYtGS5Plw$Flz)0 zitRgqo%`X@5;`T3O3)*6c+**lS%4JGa0DrlAYD)LQviB-x(EFY=B5V1%WrsQ5FHHj z6Mkc8Wf7Bj!j~*$!xA<<MwZgXyNn1$3Hk6vC4F`MS+(_az+CEI61jRW7kF+p4E1^yym9E+huQDSiHsXN7y=i zaBoxB`5$%0#2@>;`qKn_S))Z@LO3ps7{YN6x)8cXUq|%|<$0#NbSrqEvUW_2cuU|$ z0k3Q5&CoYj~XjyFC_>2ySO#;JKDMy{i3W$dYijFGqw4nKg z3cIZU&$11jl$SB5DniiOZ%WOg^*&2Pd>ayaEP#iqEMFGBKL4+W20|(4j)EEIhL?`` z=4XGSft?0)d;hKi$WEJu3>!d?X^81;dvxoF9t+(Fik&C}==9(v1q&p*q(JF_9ZNwO ui=As5VWLjS4i=GM=hi6~e{)dJ8}NV4`%;Hldc>Xp0000XqOC literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_15.png b/app/src/main/res/drawable-nodpi/google_15.png new file mode 100644 index 0000000000000000000000000000000000000000..283e387f2f44753a4c62bf8e43030a45c00413e5 GIT binary patch literal 868 zcmV-q1DpJbP)(mw6w&;#GRd;(9qEJ_4WMx{OIWD+S=MX2d4A@ z000eiQchC<{{98!8PrP1VTCiJna5w@0008hNkli#f<-m&WP`v~03i`N*|huKV{p=O@|AYtGS5Plw$Flz)0 zitRgqo%`X@5;`T3O3)*6c+**lS%4JGa0DrlAYD)LQviB-x(EFY=B5V1%WrsQ5FHHj z6Mkc8Wf7Bj!j~*$!xA<<MwZgXyNn1$3Hk6vC4F`MS+(_az+CEI61jRW7kF+p4E1^yym9E+huQDSiHsXN7y=i zaBoxB`5$%0#2@>;`qKn_S))Z@LO3ps7{YN6x)8cXUq|%|<$0#NbSrqEvUW_2cuU|$ z0k3Q5&CoYj~XjyFC_>2ySO#;JKDMy{i3W$dYijFGqw4nKg z3cIZU&$11jl$SB5DniiOZ%WOg^*&2Pd>ayaEP#iqEMFGBKL4+W20|(4j)EEIhL?`` z=4XGSft?0)d;hKi$WEJu3>!d?X^81;dvxoF9t+(Fik&C}==9(v1q&p*q(JF_9ZNwO ui=As5VWLjS4i=GM=hi6~e{)dJ8}NV4`%;Hldc>Xp0000XqOC literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_16.png b/app/src/main/res/drawable-nodpi/google_16.png new file mode 100644 index 0000000000000000000000000000000000000000..283e387f2f44753a4c62bf8e43030a45c00413e5 GIT binary patch literal 868 zcmV-q1DpJbP)(mw6w&;#GRd;(9qEJ_4WMx{OIWD+S=MX2d4A@ z000eiQchC<{{98!8PrP1VTCiJna5w@0008hNkli#f<-m&WP`v~03i`N*|huKV{p=O@|AYtGS5Plw$Flz)0 zitRgqo%`X@5;`T3O3)*6c+**lS%4JGa0DrlAYD)LQviB-x(EFY=B5V1%WrsQ5FHHj z6Mkc8Wf7Bj!j~*$!xA<<MwZgXyNn1$3Hk6vC4F`MS+(_az+CEI61jRW7kF+p4E1^yym9E+huQDSiHsXN7y=i zaBoxB`5$%0#2@>;`qKn_S))Z@LO3ps7{YN6x)8cXUq|%|<$0#NbSrqEvUW_2cuU|$ z0k3Q5&CoYj~XjyFC_>2ySO#;JKDMy{i3W$dYijFGqw4nKg z3cIZU&$11jl$SB5DniiOZ%WOg^*&2Pd>ayaEP#iqEMFGBKL4+W20|(4j)EEIhL?`` z=4XGSft?0)d;hKi$WEJu3>!d?X^81;dvxoF9t+(Fik&C}==9(v1q&p*q(JF_9ZNwO ui=As5VWLjS4i=GM=hi6~e{)dJ8}NV4`%;Hldc>Xp0000XqOC literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_17.png b/app/src/main/res/drawable-nodpi/google_17.png new file mode 100644 index 0000000000000000000000000000000000000000..283e387f2f44753a4c62bf8e43030a45c00413e5 GIT binary patch literal 868 zcmV-q1DpJbP)(mw6w&;#GRd;(9qEJ_4WMx{OIWD+S=MX2d4A@ z000eiQchC<{{98!8PrP1VTCiJna5w@0008hNkli#f<-m&WP`v~03i`N*|huKV{p=O@|AYtGS5Plw$Flz)0 zitRgqo%`X@5;`T3O3)*6c+**lS%4JGa0DrlAYD)LQviB-x(EFY=B5V1%WrsQ5FHHj z6Mkc8Wf7Bj!j~*$!xA<<MwZgXyNn1$3Hk6vC4F`MS+(_az+CEI61jRW7kF+p4E1^yym9E+huQDSiHsXN7y=i zaBoxB`5$%0#2@>;`qKn_S))Z@LO3ps7{YN6x)8cXUq|%|<$0#NbSrqEvUW_2cuU|$ z0k3Q5&CoYj~XjyFC_>2ySO#;JKDMy{i3W$dYijFGqw4nKg z3cIZU&$11jl$SB5DniiOZ%WOg^*&2Pd>ayaEP#iqEMFGBKL4+W20|(4j)EEIhL?`` z=4XGSft?0)d;hKi$WEJu3>!d?X^81;dvxoF9t+(Fik&C}==9(v1q&p*q(JF_9ZNwO ui=As5VWLjS4i=GM=hi6~e{)dJ8}NV4`%;Hldc>Xp0000XqOC literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_18.png b/app/src/main/res/drawable-nodpi/google_18.png new file mode 100644 index 0000000000000000000000000000000000000000..283e387f2f44753a4c62bf8e43030a45c00413e5 GIT binary patch literal 868 zcmV-q1DpJbP)(mw6w&;#GRd;(9qEJ_4WMx{OIWD+S=MX2d4A@ z000eiQchC<{{98!8PrP1VTCiJna5w@0008hNkli#f<-m&WP`v~03i`N*|huKV{p=O@|AYtGS5Plw$Flz)0 zitRgqo%`X@5;`T3O3)*6c+**lS%4JGa0DrlAYD)LQviB-x(EFY=B5V1%WrsQ5FHHj z6Mkc8Wf7Bj!j~*$!xA<<MwZgXyNn1$3Hk6vC4F`MS+(_az+CEI61jRW7kF+p4E1^yym9E+huQDSiHsXN7y=i zaBoxB`5$%0#2@>;`qKn_S))Z@LO3ps7{YN6x)8cXUq|%|<$0#NbSrqEvUW_2cuU|$ z0k3Q5&CoYj~XjyFC_>2ySO#;JKDMy{i3W$dYijFGqw4nKg z3cIZU&$11jl$SB5DniiOZ%WOg^*&2Pd>ayaEP#iqEMFGBKL4+W20|(4j)EEIhL?`` z=4XGSft?0)d;hKi$WEJu3>!d?X^81;dvxoF9t+(Fik&C}==9(v1q&p*q(JF_9ZNwO ui=As5VWLjS4i=GM=hi6~e{)dJ8}NV4`%;Hldc>Xp0000XqOC literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_19.png b/app/src/main/res/drawable-nodpi/google_19.png new file mode 100644 index 0000000000000000000000000000000000000000..79202ffbdfafc4c6b060748778c99e192e82b15f GIT binary patch literal 881 zcmV-%1CIQOP)+9=}kB_FNrt0eI-{0S~w6xRH)5*!n_4W1p`}^A3+J`ueBme*a40KXX zQvm+{1N<9A@YQ3&lD-;#LjV8*=Sf6CRCt_?RnKb^K@?sXQj9&#q6cA9n8D*j211*9 zOxa_QP_Y&9P$()MJb9?42%=!Cw9tzu6?zf;(Lzp^T6)N^wt|yFf>@;8TOhan8+@}r zI=izQ@q-+~`|`c_zBlj1vi=)2_2DDKC=R2M@zUFmOHaPM8Noo-^=;pmUBCaSI0-L5 zJ+mo*`LC=33My>~CZv=?lJ19sB>Y{EQK=vp=`G|W(0HFQ8H2GuISGDXizF_EsBW4P z<(?J*3HsZR;CHDOP!e9t@OV8f01}n0Ob%4;r3FBuW8|o3FaDv>P@acRqo@XN;JS|LhL7yR#SP^- z^Z`EP;^G(-up>pK4TN%m!m(1oAn^=RlpJct*~Fl62{#5!Ky4Cj z$XGv9CYu<#N`Me@isI!?J0Uud0R#xO>E&c~q?1ZA5rhJiBqe~vgT7u*F9>_EZ9B=J zF3fhH#%Vf15XA}Zw)J+6ZJ*H)5Ffg(vJrQe(;Gas+x30_%nP7GJL+krm0EIyN)NxS zt$kKl3-NldmDzE`QO!cNa}=Dy@DOVTGB{}Dl}<1RwxjzR#+|apnpco@TXhoSGiNlE$*xMM){%(#Zd7 zAbr>3ucHCK<~c%1tKUpAW{g^O&#|;=)ppGy>w;>0hnrAc$W}O;^62Uzx`3PQY?678 zXvQHL|7BWTZl*S)ZB4HKG^?D`lfI|ksQKrZZX4c~em{Q!3uUWpaqN^`00000NkvXX Hu0mjfD_o;H literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_2.png b/app/src/main/res/drawable-nodpi/google_2.png new file mode 100644 index 0000000000000000000000000000000000000000..fc9e40efd603620b89ddbaf8146f00d9fa487a88 GIT binary patch literal 961 zcmV;y13vtTP)A9QWu2X!<>lq?@9*mB z>aws*D*ylh5Oh*bQvm+^0(8$?@+&^!z8R$pk}&95MgRZRCt{2mf3QoFbqZU zzTx%%KX$HVvvfBT()}<~sfr$w5I91Xt|XS_*M9Avo7n9W^7%jSvuU+XYbmAHHsQwi z;DK5#WAKKTR=YLkqrLMmVX!%P4zRUS7#{{lTz}FgjW zcsMe!e#v;1mmv_HTvogvb%u+-j0#z5=PYcM2!+?HGfWz<9&ZMWgoUi#D)y8LX?g%E ziK~|nnxY2GRg^9r^~4iN`U<{r_Z$E&SE(kAS2Gp06^9ha|0;cJ9Pc;JJg#i^8Z`b@t_^5fT!z`M7*CBXsarn z_F^4MCNV<7NWMZJMoww0XCWt#!W1u0F|AJKVAxPHbX$snBH*u%qgH_ z2dYe&9mIxl6+##HI7#z3syH$ry8}Gj+XQ#()_sV(!-a0Pw&kIOo~d&RUEAAqc0Ai` z`)45-VU=0rha#p>59E=YI4*kx9*u$I*cTD6p%(rM?hbGS<9j#D3^CT1Ng{fKLS-Gl z@&Vo>hsw}k;O1hI2w_p*avZ*}#|ZifW>uiMi+PG5FbMDvJE!o-2-_-Jcq^CFw5xB` zG(ykQmvUc5Imr;$g$0@ zfw^F7yp_Nl|E6sWKQf6jtjoO#N`{OWYHc?ZbK5oFaWPhcg{Wh1VueIVWb&;qv(q=3 z*e3nEpLQa_#A!LdiAyz2E^os$>1$72|55b^9>fxx8RauIf8;=8pOS{^>zB+oJ;Y(z jE&s_r|FHkHpJ;yoyP+}F-&qZj00000NkvXXu0mjfPPWbJ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_20.png b/app/src/main/res/drawable-nodpi/google_20.png new file mode 100644 index 0000000000000000000000000000000000000000..79202ffbdfafc4c6b060748778c99e192e82b15f GIT binary patch literal 881 zcmV-%1CIQOP)+9=}kB_FNrt0eI-{0S~w6xRH)5*!n_4W1p`}^A3+J`ueBme*a40KXX zQvm+{1N<9A@YQ3&lD-;#LjV8*=Sf6CRCt_?RnKb^K@?sXQj9&#q6cA9n8D*j211*9 zOxa_QP_Y&9P$()MJb9?42%=!Cw9tzu6?zf;(Lzp^T6)N^wt|yFf>@;8TOhan8+@}r zI=izQ@q-+~`|`c_zBlj1vi=)2_2DDKC=R2M@zUFmOHaPM8Noo-^=;pmUBCaSI0-L5 zJ+mo*`LC=33My>~CZv=?lJ19sB>Y{EQK=vp=`G|W(0HFQ8H2GuISGDXizF_EsBW4P z<(?J*3HsZR;CHDOP!e9t@OV8f01}n0Ob%4;r3FBuW8|o3FaDv>P@acRqo@XN;JS|LhL7yR#SP^- z^Z`EP;^G(-up>pK4TN%m!m(1oAn^=RlpJct*~Fl62{#5!Ky4Cj z$XGv9CYu<#N`Me@isI!?J0Uud0R#xO>E&c~q?1ZA5rhJiBqe~vgT7u*F9>_EZ9B=J zF3fhH#%Vf15XA}Zw)J+6ZJ*H)5Ffg(vJrQe(;Gas+x30_%nP7GJL+krm0EIyN)NxS zt$kKl3-NldmDzE`QO!cNa}=Dy@DOVTGB{}Dl}<1RwxjzR#+|apnpco@TXhoSGiNlE$*xMM){%(#Zd7 zAbr>3ucHCK<~c%1tKUpAW{g^O&#|;=)ppGy>w;>0hnrAc$W}O;^62Uzx`3PQY?678 zXvQHL|7BWTZl*S)ZB4HKG^?D`lfI|ksQKrZZX4c~em{Q!3uUWpaqN^`00000NkvXX Hu0mjfD_o;H literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_21.png b/app/src/main/res/drawable-nodpi/google_21.png new file mode 100644 index 0000000000000000000000000000000000000000..79202ffbdfafc4c6b060748778c99e192e82b15f GIT binary patch literal 881 zcmV-%1CIQOP)+9=}kB_FNrt0eI-{0S~w6xRH)5*!n_4W1p`}^A3+J`ueBme*a40KXX zQvm+{1N<9A@YQ3&lD-;#LjV8*=Sf6CRCt_?RnKb^K@?sXQj9&#q6cA9n8D*j211*9 zOxa_QP_Y&9P$()MJb9?42%=!Cw9tzu6?zf;(Lzp^T6)N^wt|yFf>@;8TOhan8+@}r zI=izQ@q-+~`|`c_zBlj1vi=)2_2DDKC=R2M@zUFmOHaPM8Noo-^=;pmUBCaSI0-L5 zJ+mo*`LC=33My>~CZv=?lJ19sB>Y{EQK=vp=`G|W(0HFQ8H2GuISGDXizF_EsBW4P z<(?J*3HsZR;CHDOP!e9t@OV8f01}n0Ob%4;r3FBuW8|o3FaDv>P@acRqo@XN;JS|LhL7yR#SP^- z^Z`EP;^G(-up>pK4TN%m!m(1oAn^=RlpJct*~Fl62{#5!Ky4Cj z$XGv9CYu<#N`Me@isI!?J0Uud0R#xO>E&c~q?1ZA5rhJiBqe~vgT7u*F9>_EZ9B=J zF3fhH#%Vf15XA}Zw)J+6ZJ*H)5Ffg(vJrQe(;Gas+x30_%nP7GJL+krm0EIyN)NxS zt$kKl3-NldmDzE`QO!cNa}=Dy@DOVTGB{}Dl}<1RwxjzR#+|apnpco@TXhoSGiNlE$*xMM){%(#Zd7 zAbr>3ucHCK<~c%1tKUpAW{g^O&#|;=)ppGy>w;>0hnrAc$W}O;^62Uzx`3PQY?678 zXvQHL|7BWTZl*S)ZB4HKG^?D`lfI|ksQKrZZX4c~em{Q!3uUWpaqN^`00000NkvXX Hu0mjfD_o;H literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_22.png b/app/src/main/res/drawable-nodpi/google_22.png new file mode 100644 index 0000000000000000000000000000000000000000..79202ffbdfafc4c6b060748778c99e192e82b15f GIT binary patch literal 881 zcmV-%1CIQOP)+9=}kB_FNrt0eI-{0S~w6xRH)5*!n_4W1p`}^A3+J`ueBme*a40KXX zQvm+{1N<9A@YQ3&lD-;#LjV8*=Sf6CRCt_?RnKb^K@?sXQj9&#q6cA9n8D*j211*9 zOxa_QP_Y&9P$()MJb9?42%=!Cw9tzu6?zf;(Lzp^T6)N^wt|yFf>@;8TOhan8+@}r zI=izQ@q-+~`|`c_zBlj1vi=)2_2DDKC=R2M@zUFmOHaPM8Noo-^=;pmUBCaSI0-L5 zJ+mo*`LC=33My>~CZv=?lJ19sB>Y{EQK=vp=`G|W(0HFQ8H2GuISGDXizF_EsBW4P z<(?J*3HsZR;CHDOP!e9t@OV8f01}n0Ob%4;r3FBuW8|o3FaDv>P@acRqo@XN;JS|LhL7yR#SP^- z^Z`EP;^G(-up>pK4TN%m!m(1oAn^=RlpJct*~Fl62{#5!Ky4Cj z$XGv9CYu<#N`Me@isI!?J0Uud0R#xO>E&c~q?1ZA5rhJiBqe~vgT7u*F9>_EZ9B=J zF3fhH#%Vf15XA}Zw)J+6ZJ*H)5Ffg(vJrQe(;Gas+x30_%nP7GJL+krm0EIyN)NxS zt$kKl3-NldmDzE`QO!cNa}=Dy@DOVTGB{}Dl}<1RwxjzR#+|apnpco@TXhoSGiNlE$*xMM){%(#Zd7 zAbr>3ucHCK<~c%1tKUpAW{g^O&#|;=)ppGy>w;>0hnrAc$W}O;^62Uzx`3PQY?678 zXvQHL|7BWTZl*S)ZB4HKG^?D`lfI|ksQKrZZX4c~em{Q!3uUWpaqN^`00000NkvXX Hu0mjfD_o;H literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_23.png b/app/src/main/res/drawable-nodpi/google_23.png new file mode 100644 index 0000000000000000000000000000000000000000..4a4eb7e17da90b72b6c4c53059fef4797048aa6d GIT binary patch literal 784 zcmV+r1MmEaP)VI8=i=hxsHmvk-rkaulC`z9?(XjX{{Hjx^YnJ4cmMzZ40KXX zQvm(_1-yy(*GcsqWL?(zTL1t8hDk(0RCt_?RnKb^K@?utieYnlIf$Se$cVW(hJ_K* z;w555DH0+yQ0d7?0|gI?f?f*2BB-DTkxD=$hP(g;kiUvXUkUfZ$Z2pGM z{zx)AJG<@2hQPj$?|t*;y|^e`4P)nO_sx~(squ@~izC(_7p|qm z^Y=ywV}#J~kycYy~iM^ggsEYzzqEeGA7DNFqf&Rw{)p(pUzDsAo5&>5>2_d2diNHb= zldCtVOrU73*<9V6+(W(~3ou%89A~f+5stZu6sR%=FrB54G3Uy0j7s3+XD1*Wr^ys8 zo&sPP)_j2`70NAyO@N|bbA3UfQ0{iSuego-Y6X5ypK%L{e|5D7-kjyF^(}xCmhuz< zqupLV4`wH*15<%B-htP!cqLT|fsePgdDp*-sG%ha-9s&a+v?kle6(!SCs;2rP9a1J zRi#TlWOqUj+Ps^hPy(-}>gq^<(OvMigSPresUihM(QWa`aupImQ~Zva>RVI^Bm(o6 z*`JIK3$_F5j|K3!Hyz_=E+0=?v18yF^y!AFyJ*shGdPXebmi(JBomx-;+C4f*&kJ$ z7}k36J@#aI@u7eRtMM(t?T{F>#8xKpH#*Uh*lA9&qFU>7qQ$cc!l$8dNb_=%@L~u> z7={lNeVqZ!OKz!-wSTX)~yix8X-d*m!ya!j@0L zSN{}^^lzlW>i~mZMh4z)-k*#NWW#g@oeYBZq5b-cmI-2!LkOCs9T5kKh<`z2JA-oo O0000VI8=i=hxsHmvk-rkaulC`z9?(XjX{{Hjx^YnJ4cmMzZ40KXX zQvm(_1-yy(*GcsqWL?(zTL1t8hDk(0RCt_?RnKb^K@?utieYnlIf$Se$cVW(hJ_K* z;w555DH0+yQ0d7?0|gI?f?f*2BB-DTkxD=$hP(g;kiUvXUkUfZ$Z2pGM z{zx)AJG<@2hQPj$?|t*;y|^e`4P)nO_sx~(squ@~izC(_7p|qm z^Y=ywV}#J~kycYy~iM^ggsEYzzqEeGA7DNFqf&Rw{)p(pUzDsAo5&>5>2_d2diNHb= zldCtVOrU73*<9V6+(W(~3ou%89A~f+5stZu6sR%=FrB54G3Uy0j7s3+XD1*Wr^ys8 zo&sPP)_j2`70NAyO@N|bbA3UfQ0{iSuego-Y6X5ypK%L{e|5D7-kjyF^(}xCmhuz< zqupLV4`wH*15<%B-htP!cqLT|fsePgdDp*-sG%ha-9s&a+v?kle6(!SCs;2rP9a1J zRi#TlWOqUj+Ps^hPy(-}>gq^<(OvMigSPresUihM(QWa`aupImQ~Zva>RVI^Bm(o6 z*`JIK3$_F5j|K3!Hyz_=E+0=?v18yF^y!AFyJ*shGdPXebmi(JBomx-;+C4f*&kJ$ z7}k36J@#aI@u7eRtMM(t?T{F>#8xKpH#*Uh*lA9&qFU>7qQ$cc!l$8dNb_=%@L~u> z7={lNeVqZ!OKz!-wSTX)~yix8X-d*m!ya!j@0L zSN{}^^lzlW>i~mZMh4z)-k*#NWW#g@oeYBZq5b-cmI-2!LkOCs9T5kKh<`z2JA-oo O0000kitTkSB%B6D{Gug zHgS^7>`NQK51PgBGX~abgSu`AX5p>taBti*=$t)Qkqiu$h6AmbhAwn{`)S@_) zbC9AkOq2Vq0GpBJ7ec1P^#ig;oY7Mf{*m36S|=!&3| z_`XyX=_C*kmr3k@&D{V@-m>W{co?L43A$Sek7Zv>mV3Pn({?O_mtkazSVJEGO`Ys? z>;-%q7y$PHAT36B7Q;Nie=}?&hq8)!?=bfz$&op|&=conFx{jJsec|!H-kr>EHQav zMvl4HLI6%@lCAMs&!FwFXK||iF0zy}a@2@T?pj`~PYAor9SpKsEHn7su{hx}j z{ssSNn#bTDJ+maRp8x;?97#k$RCt{2l)q~fK@`Ui78A64LlEJe#ViLFdx3?8)7Eg6 za*!qjB*lSP2o_?*%0jR(poL(epv5&tE$28vcx#b`c*<=h*WUkHnMh}YqXjbe6bZkyl(>WlZdP^CaSv+-h!1^c$g%0Gp?Q30)#h?j@~>f z>jYOa2cWI{l;+n1KjZfJFFv2KLS56jQB7`&(Be~ zt2_2@4GmS>@gsVr{lS98X1KUi?{XJxo$oso0Jj?V2~--qZR;xPtBv1*mi;2OKm|2=#S02 zIgpmZ%2)u9{fYNk|27psfcO=cvm3QsjFzk**rPZt-~Y#~>0)Loa2l#9O3EDGAV9t%hZvvxlt_K7LO5 zVmjjA%c9t=$JV~ni?k6BKG=K6{v5ljDo*%Y{!2`BF5^OR2E$hpZeG$KH~;_u07*qo IM6N<$g1!1dFaQ7m literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_27.png b/app/src/main/res/drawable-nodpi/google_27.png new file mode 100644 index 0000000000000000000000000000000000000000..2bcffcf3b6f406b2d4d3c9cc1638c2b37ac5c0db GIT binary patch literal 958 zcmV;v13~0s#a2PWLGY7|e`sH^<}krw^`flF9-2%W`8WCjbBf z;7LS5RCt`-SJ`r-Fc1{z;Km2`I$0rEBJlsexHIBd9D^-L?aMY!<*0P4=g>$H^8bRe zAJG~85j}*j_!<+so1TcnsZPmWJ}VA&U1$5~;94L(s?RQx?aL?m3E1$-$&NZO665mD zL9s(1B&A#435e|iGrkiDH}m6DJz|FgO44clT{#HJ;V*wj6+&{I@m(Km5}@-0IDx~a z^}huG&{4IGUq15Tw{lAzM*~{xz)uosUYU>|?8KUWZxQTo~jBfr4FA|R2s z(dLVSB*$d~m`QF#3`i4abtMC0&480I_>CVgf~=&&MWELBV{1xlZ{>1dQF1Y_9E{oE zMy?EMb~8%81yn?tWd+C~mtG2seMNl*Tvz;ptA~@IA)78C?C2AM%ZK90V*z{I4EIw& z3nEUdB&pI;#b3`|`~X?is8^MKQu4-sgc zB_H#KC^>ecdc)_l2p-2R%mjtq^db(08E6Irk)t;P7}+`~$jkE*ult!}jLe=pE&u*K25$UC7Cgg6FNnvL0RpUw zY`$=xyWlMPR1+Tw5<87?b_ChEz}$OZ{G87!7DbLIM2y2D+;;bcsU5Nq$9L~)$Ezfg g2ZTR+5&ft513?s`TF$QmGXMYp07*qoM6N<$f=kQF?EnA( literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_28.png b/app/src/main/res/drawable-nodpi/google_28.png new file mode 100644 index 0000000000000000000000000000000000000000..8952def4df84b5fe7464b67eb17a86cccaff5e4c GIT binary patch literal 1189 zcmV;W1X}xvP))qsC~^}Yt}unXC~IP>%Jr=ESusyO4qEWf2gv7cL?lxviW zZ}-y|iimy0!ocR{=8ubf?Z6HE*c7z1wAk6(_4W1t)&l?61@-jv|JMus(gF7Q{r}hs z|J?=k+4!N!+4Q!TAWtV-R5 zEROU4BJ?PwUTEJwW>atag-1Wp@Q{7W&&e?b9Fuc?>%QGJI$W15y()mzFQu+&cCoj9 zAKr0J$0ra=(u0*sJ&z}Sa|bc6XwuC>10vhmv5UGy$ z_X?hKzA8Z^(D7nSls!NUTwKrZ6%rU8$3~Q5;&NkN8rj zKr94Gh6<}uP|X*XuS>9SP@(`T(6#ZiF@MznIAE*-582X#=bXm=r4V9ed}btwIxQ5! z+g0lF33H)0CF`0Is#OfCo*($On|gw+Y&CTXbk8e^2w7GI;kRJ z45kB^HPQeg)3JbO3&I3}}Umtt53$Jf885iMnwK zV@qzI1Zo}pspC1{Xw)y4b^XAqnFDwxsja~}AL9t3imd~tg~SMi-ggmi@WDc4T9eHU zu*#MJG5`kFft83{(dr&wSdeC7qR!W*fawf;3v_E%(;OIq?FhPZ;#Jp0Q%!AD-JEcb zIp22BH6}(wCJKEL^X&+heKjbMzKo|m0;VL5JF-BenOQ>+;JXwciq`EDNf@!M3 zU=WQzgit>0oOa=y@8d%hu3MRws)qIH_O^^O3oqZb?a-wFRQ}X^L$Ctf+S0A5KXuIc z2Ljck3m}oVpxB*7El}w;=%y10nd8k}_M_WO)w#`R>-%H3YAopR8@t&=WmX zP;Se04HGUH-A^ui&MXv9Ob=hPEb#fO9(Zb^&JKhj79>e+-vif;(&R+Vom~j=$Id-J zX9*xX=XY)GqtmBH2RqpJbnl^Y>;n(I8lRth|0VtcneYbBh;_$300000NkvXXu0mjf D4q!S& literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_29.png b/app/src/main/res/drawable-nodpi/google_29.png new file mode 100644 index 0000000000000000000000000000000000000000..5e6d872d1157eb8b741a27f2aa41641cdf4a6fdc GIT binary patch literal 976 zcmV;>126oEP)ody$001C# zQchC<{sRL00sZ+IDm@BVv*&lz&~uQRsMY`f|NsC0|Ns8=!|g;6x({gN~ynCSaI<(UCgG+HlN=TE0iYTNZ~HZw2~LjG>}?pL_$e}z+cg?UK) z%eb4QonRLQD4|IygeWf2IA{d8=ZRF!=Hw%~oto>R-)YdEj2Oeet+j6g( z3~(&69xkXmR4HXn*UOGgXV~e9M)f>#GlN?lW;+2Bb!}5toiR=-@%aKh6p3SYX72b~W zzYH$2G*3bnL$D~xQ?2Kcq_ugp@WPUQDku@*We^^e+uR^1`LSn!3QZpbeJ9rh&M&5VbDdbZ7bRbh%EHYJRM4}qIb#V-o*uki{Ke>yNBe)Hf=C)cxG70}gK$$)+u zkAD}FxGvDYwk$}mh&R@eoyz{@Y${l%j=y06rtor{jbh%dHsezkpu$HfS^)wp3h{C0uz9IiS13UW8@XkU(B2PbC z3e=N9gvDzNH34P8R**ZMRamc@O-%?u_1_~}$+`@n=|gOe$oA*3UX1hV*@?w_}C z>nB*Z2ouXo_kta1&1e00005&L{k*Rvz3l~tmZW%c#- z^z`-r)&Tz10RH~|`uh4j$p7Z%=j!U{|Jw%N-{arcv-tSIRF3v zBXm+uQvd<}`~&*@*!pG@Uqm0_ouf~}cvT4m=LI&jZz{;ghoD6?4!z#Y000B+Nkla42@uv+w_KTa^SvIcK;0L{#dh&ZHouT`2j_LWQ8u zCx0bYCk(@<@1ySyZ+~^!PlF(st}inm5r3gh30>`Znr4NRGRv}5t!Lr*c))eDAk8EP zVIc6KiZqywB?#j0(}Hs;nUY$V1Xz)-kD~~Jtegzg8IuozFN_y#Hi96?ER|f=wM#QN zOWy}WiTa$i=p%vgK>{W7E`3Yr_kt47X|?}BkiC(lWS@2G>o^o^N_+HIX`j9(^f^K4 zwBWK=6qiBRoq_p)0Vqy76I&5QQM0`$S!M$Upb5pgX7V!uQox1`fGhar9c4E6o)NkR zq#eMAYZ%&-XBaF~@sk zfz|Yx`boaOa;cc?Bk2ATrVh$N0&UDu9s>Xgs*k{Uw%0yDC1zaJ9N>Qv1Pl_OK_e5y zFp%7;g9H30F@W0ufhijV-Hi$}08TTW-xKY^?RIl|2~08H`mifFwqxl)Y%LfdaOwC} zBB2tL(FX_O(t>^hs}?B;W1$yyW*sO2dEQ6BC5G14Bq%^EA&8&`pgs`tE`rjfD9RdLGn_>wVLMi`%7mo8nz>aaU({Y9ce|y=8+u#mSR8IPeAj;-wdyEOtv!=1LtdWqvBZ8+e&Hf~iM;}4iqadxEmKc0zl?4&Il?CD++jQ{sv z_BNC(j<#(ND`2*b&=edj$}dd<1Ky0e6xFT^ zwA$NDuIH#@PN{zWz*vI*sdP6wUni669O`6&Cx?!KPZ-$>@WnV#E;eAm1Wh2`1W(TW zL#xeZ*kjoOig-Tm0kY$w kBh1+U{~fq;JW^YD*~dWnU4t)5|_m21?tH0{bB_t6pTu@&v==;6F1#;roTqe=JO zbLZ#h(9qDky1M_?0sq$o_4W1t*9iaB0sq+y`^^IX+ywXe{`SBH^yatRxQ|Z&000(r zQchC<`~v|3{TT{QHl5Do`}ewjYyQ`$WQ$X|DF6Tikx4{BRCt`tSBsLXDi8$4S9CXz z%>@Nf|NkrR@KQiXHg&2_o!Q+~ZIW)fX8>mq`j?|D_8{fQXi~)gf5K5}blu%=7Zvxm zYZ9C|li$GWTMwX#Vi%N2iLWhadus%~(cA_pCV)*7pD3GDC=w}q zpeWuhe;?$8Clg$~Fb2O=kqCM1&`S*ks;>$zrX!dO$}pDVj$Tj{s2ik)3nzf7U&jCx zTwa=NE(_FxcLf)ogM$EqGc5Z$qk*7SD!dRvBpetGlw*-$0K8E04}9c6r-5?C&?E>- z)Zz2`wgwK*8RwK@c}=8&G`$G%JY3ybfWY#0Vj$=uEj}+m<5e24jQ0aU9n>$z#{!H4 z2+ZO%l!Y>IT0anA6quLTgsNbe0GcSG5?~a7iJ=JukY1HAvOmQsWJZ8C0TK$YgssVd z2d6ADU`s%)1m;U9bqRvy=_vu=;1B=|vh^g?!xRRM{f7edj=t<^B*wu@JYakQKtK-< zg>vv_eRB*v2C6m_aVh8{1qr;_guVoM-;>Y`(efw%I)kAAm4w0ysKuN0&jNr!xHDOr zbMPJ?GQfE_6@ezxr!T`39tehFzY2jsTQ?t_^UqEOfMBnqCh!kWNI_ExFbW#q0@pz& zt$?2KJV8+Gx1qp%5|772*isz~Sv*vs-;Yv_#a1m43MgMl0Ui8fKaQPdFK^~=V3;Pt66 z2Lm&fX?5*5Qq-4qRbY*`6x=ZA?reV5Y{RTT5NQp5-UV>00iK5RUAu1wj<0$4@tEtW zMett?9LS73_kPCn5pd5kHvewqu@q%@yMhLHG0mS0T}Y38gzRJA?c=cz`QI*KfF+*} ho=(S~jJ|&@{s%4t-mvtbbFBaX002ovPDHLkV1hA>21)<` literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_31.png b/app/src/main/res/drawable-nodpi/google_31.png new file mode 100644 index 0000000000000000000000000000000000000000..4d379cc0425271b966e71600c941025fd3d170c3 GIT binary patch literal 833 zcmV-H1HSx;P)iyfU%7AnuE)Rfsc)Wr=*A5goB8SgPg00>wbQHw2J?;i2t{Z z|J}5-MgRZ+5Oh*bQvmw|0{USA+fd&}+Z*35NL#w}{adiA&&GHt<(XDhr5ASfL zm^C_tVA!iTa9D}>I0pGjKrlNaPJfaOZ}?RcP688CFZ`Ed;zNM7-vhy9IQS6y1#tWm zhkgOY*73umKyMDzw&-wLe-#Ecp8+HR(Z^3A4`2*)p8y3g79qGEysSVJfYEkkQIrk@ z;9W@&rvs2)VT8G(3`Gfm_!L9C+0uWAb!d+vMF0g40D9S)1@Z_Ep7%^f_sJo^{s!RD zg{Dd>O2PQSA>mYr#=bbPH6|e8AD)7knu3Vy0B$(>&^8^Z2t2tE3LZGPr9ok@;+0Mc zv-qtL1t8pc?@3|#nTNxJ3Qr2o{;CBg5o$Q`q@XAE-3crs{=Ul7_uL2CslRxE6Ny*w zT@!V9aFRm(;)Vl$!~OY$PB=;D1tA6%i=qZ0@+_LbbKGYk#Yd9RW);t6I6UwdJmrF% zK#8DdIjweC7HcPIOt#eaBqTad=%Kc2&}pP}_ zUwEkU5Bn}I2_K{QIy~`DdmhdPekwfR$Upa4i~=*s;pj%S;W7R%eVPv26b4jBCtUwH zKgQ!eO7N=lIK2JUF(7TIy*KUm=;XEmOG!jQRCt`tRWWbWFcgl|E1exNIBYqA6yL-ENOUS7kYK8Sg_|mYiqxqSqTODW z+G7ex_HE6nRCm9UXZt0N6CW#h$nt&pzR%D0ds+6st=At;PoI9=3GaVhZEa6N2Fv5F+=-}8OMUY8?ztIT+NjG~bcHn&-SlR$9=?O1k2QJw|I;?c7aR{Ofx}hzZmJ|M`gF<*p!gMdH--`B~K9`Kk6TE zmBPd0%?@r79$bXyKVy7i0t1IE`&3ROc>ZhH#IDB@03zyx&&Lux{}DG*T}2FDt5LUp zADN)RqZr3#UIzw1HEHJA-lAr7CX7|>WE|i?5lv|+jO9g}7$`WBzHb0W(wwiZk|W6u rwF;-&rrtHwGCLNZeg4Z>{8#G_D1Bx|VaB{p00000NkvXXu0mjfy2?2| literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_33.png b/app/src/main/res/drawable-nodpi/google_33.png new file mode 100644 index 0000000000000000000000000000000000000000..4d379cc0425271b966e71600c941025fd3d170c3 GIT binary patch literal 833 zcmV-H1HSx;P)iyfU%7AnuE)Rfsc)Wr=*A5goB8SgPg00>wbQHw2J?;i2t{Z z|J}5-MgRZ+5Oh*bQvmw|0{USA+fd&}+Z*35NL#w}{adiA&&GHt<(XDhr5ASfL zm^C_tVA!iTa9D}>I0pGjKrlNaPJfaOZ}?RcP688CFZ`Ed;zNM7-vhy9IQS6y1#tWm zhkgOY*73umKyMDzw&-wLe-#Ecp8+HR(Z^3A4`2*)p8y3g79qGEysSVJfYEkkQIrk@ z;9W@&rvs2)VT8G(3`Gfm_!L9C+0uWAb!d+vMF0g40D9S)1@Z_Ep7%^f_sJo^{s!RD zg{Dd>O2PQSA>mYr#=bbPH6|e8AD)7knu3Vy0B$(>&^8^Z2t2tE3LZGPr9ok@;+0Mc zv-qtL1t8pc?@3|#nTNxJ3Qr2o{;CBg5o$Q`q@XAE-3crs{=Ul7_uL2CslRxE6Ny*w zT@!V9aFRm(;)Vl$!~OY$PB=;D1tA6%i=qZ0@+_LbbKGYk#Yd9RW);t6I6UwdJmrF% zK#8DdIjweC7HcPIOt#eaBqTad=%Kc2&}pP}_ zUwEkU5Bn}I2_K{QIy~`DdmhdPekwfR$Upa4i~=*s;pj%S;W7R%eVPv26b4jBCtUwH zKgQ!eO7N=lIK2JUF(7TIy*KUm=;XEmOG!jQRCt`tRWWbWFcgl|E1exNIBYqA6yL-ENOUS7kYK8Sg_|mYiqxqSqTODW z+G7ex_HE6nRCm9UXZt0N6CW#h$nt&pzR%D0ds+6st=At;PoI9=3GaVhZEa6N2Fv5F+=-}8OMUY8?ztIT+NjG~bcHn&-SlR$9=?O1k2QJw|I;?c7aR{Ofx}hzZmJ|M`gF<*p!gMdH--`B~K9`Kk6TE zmBPd0%?@r79$bXyKVy7i0t1IE`&3ROc>ZhH#IDB@03zyx&&Lux{}DG*T}2FDt5LUp zADN)RqZr3#UIzw1HEHJA-lAr7CX7|>WE|i?5lv|+jO9g}7$`WBzHb0W(wwiZk|W6u rwF;-&rrtHwGCLNZeg4Z>{8#G_D1Bx|VaB{p00000NkvXXu0mjfy2?2| literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_35.png b/app/src/main/res/drawable-nodpi/google_35.png new file mode 100644 index 0000000000000000000000000000000000000000..fbb99c76eb5ab68c973010346ac70174005bae16 GIT binary patch literal 1030 zcmV+h1o``kP)FMc5yz+C6n{c4D_V)Jl^z{1r`sU{5+S=Ow{{EpYjKlx{02p*qPE!E>{sI93 z{Tb5eU<%26NtHb+x~SRSEK`8>iO2u|14BtfK~#90rB~~ks~`+S5fSgLb{A0J|20p- zMeME>+>;;MwBOD+35f}WoLW&7xWGh1%*U1LDu&h9b&Pkop3T4A)UW{^S)Nq7a;1oF=8!HG#_XbRmI80*D9E z2pJ`iRl)v400z<1h8p`xz(}Q22&O~M-jDDhRf^@Ev3i6~KfWo_B0yV|h7R4dn8ss+ zQ8MTx0=cYthNkp39U3ex1xS#uONK>d8f**DRv$TLGAs4K;!B!mb;K}7li%Ge6Xa*qdwFe?hoV-~?X0XzI{R6rW!=cbm~ z8Zzijh*p9*)wj9BX3uv^L?dyzi#A0&91xj%L@#kCWPu zJw_PLQP^1NZs0oMmpd?ho16Ym_#w7J!>sMP-ad(;|L}f~espVva)2am=8&*U!A!w0 zGT;iFurb1%f`ig#^l^o~qfE|5jpsMV@DPB?u}(WoXD`vm$HE?|(O2;xxG6c*U64^? z*~k&E4YkHr&N+!nfGLsb8UK;d7X8-DKt7{C#IwknL5LQV79fF7LclHoF2vRfF*JeD!H#jUcQpFAMxZ_mQTAuFp568 z#X!k-31&73C;{}p@94JzN)V1;Aei#L1OqC~ad6|lZe2mCRq(_sW5KL{D+EY9pk7~i z3~-X@y>6Ouym^ZD1si6s`+jEs046b?6vj(&BLDyZ07*qoM6N<$f_qQx AW&i*H literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_36.png b/app/src/main/res/drawable-nodpi/google_36.png new file mode 100644 index 0000000000000000000000000000000000000000..40a462a09cf2469d8ba82ae9094adc836dd47618 GIT binary patch literal 686 zcmV;f0#W^mP)>`hfX?iQb(dpEy-3bXH!h%StwssQsikpw^1!xSXTULHU4lr5PI=70000E zbW%=J0Q><1V>p(|A?y+AwFhkCQp5lN0v}04K~#90wUxh196=PvAG3GikXS6FNSfK< z45VFl14$|2NZvI-kaI^4!|o%*>xR;r(Ik96Bj{<1F+xUKTre1(dKPfojmq^ z?{It>99_Qj%lDg`V5=ozyhi|jZM0?>5lGZ`bB0t3?Iya8 zF$L>H0Y<^Y01>Q&@eT#rU4FrV8wIcfv;x0XCDVC%E$p=o0$D0EGP-VUjhIQXb&Z7iF2zv@@cNB%S(d6_y3hjWk}wzpba9QyYkoL02aiRfv2_c41`rn U)S{|y9smFU07*qoM6N<$f^SbTrvLx| literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_37.png b/app/src/main/res/drawable-nodpi/google_37.png new file mode 100644 index 0000000000000000000000000000000000000000..6c3cef69f4da85dd8b4fca5842399df1e695ad6e GIT binary patch literal 1323 zcmV+`1=RY9P)+S=NbrLBd8fy~Uz-QC`Yhk~n^Q@f~0R;<;xx3=xd z8-Rz3@bK{Z(h9||M~;zziHnCpx$>W%pJSoFkCBUUl&0UkBvHHT>gwwE(-)|gS<<&P z_4f7u*8%nP^#9cW{QUdp=jZM1>;K#YJjnmw;N_vQvd<|0t5W~`q)keo4gEFUY%yn6X)@ED;wuJZy`Fd$JygRmRZD*mjD0+9Z5t% zRCt_?m)U}KRe`w#`k^ayO#N5->zFs-FiJ71&76AaR^4Uow*($?i>-NHv^>3tf}!Ce;l!$+h->oaMRCQvc)4m27@EQDg(EK! zp{Ilu;MM1(_ z^_p?9zk%8GA%-4s;4dw@Gm=Ox_+|^xOqigk1K}OKaEbEuTb0Vu-LI1ve-HAWmt=TS``KQ3uT%C?diQ=f~` zs}ZLj0L)S!uMEb=HEN7$80|c-4w%543Vjn(^}kxtQb-$P9!5V903f{P2!YYmcudj1 zA)?qBp{@QaujS8Mu1(hl*?I5ln}44N>y|l}o+gF;npAkvXW6ttcAmnWQMehL_pD`5 zwn0raKm}kn8ngX*FgSlholMo@U(2*k8N41a=Ce-)fB<%7vjGPN$^{e-)MEest%D&0 zu!CeBFxd0~c=;ULnEcHdYzTi%)#6{vtX~Cyttzczwcl(&#!xujY^FZy_MkBdug686 z!w{h!0GP$8QzYv5v8o~T-hb=Csdk+z;whw|OI-l+-^Ny}Y8(u9Jzg9Y00O982uDrr z;Jycd0^rnemFXf><=9Dpw(!%e)e_Jn3mBc&7&ieb1?njFu-8tqDHQRr-`jV~MXT?y h=i7T*a$4TH{{z}gFbp8$s)PUl002ovPDHLkV1fipiy{C3 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_38.png b/app/src/main/res/drawable-nodpi/google_38.png new file mode 100644 index 0000000000000000000000000000000000000000..6c3cef69f4da85dd8b4fca5842399df1e695ad6e GIT binary patch literal 1323 zcmV+`1=RY9P)+S=NbrLBd8fy~Uz-QC`Yhk~n^Q@f~0R;<;xx3=xd z8-Rz3@bK{Z(h9||M~;zziHnCpx$>W%pJSoFkCBUUl&0UkBvHHT>gwwE(-)|gS<<&P z_4f7u*8%nP^#9cW{QUdp=jZM1>;K#YJjnmw;N_vQvd<|0t5W~`q)keo4gEFUY%yn6X)@ED;wuJZy`Fd$JygRmRZD*mjD0+9Z5t% zRCt_?m)U}KRe`w#`k^ayO#N5->zFs-FiJ71&76AaR^4Uow*($?i>-NHv^>3tf}!Ce;l!$+h->oaMRCQvc)4m27@EQDg(EK! zp{Ilu;MM1(_ z^_p?9zk%8GA%-4s;4dw@Gm=Ox_+|^xOqigk1K}OKaEbEuTb0Vu-LI1ve-HAWmt=TS``KQ3uT%C?diQ=f~` zs}ZLj0L)S!uMEb=HEN7$80|c-4w%543Vjn(^}kxtQb-$P9!5V903f{P2!YYmcudj1 zA)?qBp{@QaujS8Mu1(hl*?I5ln}44N>y|l}o+gF;npAkvXW6ttcAmnWQMehL_pD`5 zwn0raKm}kn8ngX*FgSlholMo@U(2*k8N41a=Ce-)fB<%7vjGPN$^{e-)MEest%D&0 zu!CeBFxd0~c=;ULnEcHdYzTi%)#6{vtX~Cyttzczwcl(&#!xujY^FZy_MkBdug686 z!w{h!0GP$8QzYv5v8o~T-hb=Csdk+z;whw|OI-l+-^Ny}Y8(u9Jzg9Y00O982uDrr z;Jycd0^rnemFXf><=9Dpw(!%e)e_Jn3mBc&7&ieb1?njFu-8tqDHQRr-`jV~MXT?y h=i7T*a$4TH{{z}gFbp8$s)PUl002ovPDHLkV1fipiy{C3 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_39.png b/app/src/main/res/drawable-nodpi/google_39.png new file mode 100644 index 0000000000000000000000000000000000000000..6c3cef69f4da85dd8b4fca5842399df1e695ad6e GIT binary patch literal 1323 zcmV+`1=RY9P)+S=NbrLBd8fy~Uz-QC`Yhk~n^Q@f~0R;<;xx3=xd z8-Rz3@bK{Z(h9||M~;zziHnCpx$>W%pJSoFkCBUUl&0UkBvHHT>gwwE(-)|gS<<&P z_4f7u*8%nP^#9cW{QUdp=jZM1>;K#YJjnmw;N_vQvd<|0t5W~`q)keo4gEFUY%yn6X)@ED;wuJZy`Fd$JygRmRZD*mjD0+9Z5t% zRCt_?m)U}KRe`w#`k^ayO#N5->zFs-FiJ71&76AaR^4Uow*($?i>-NHv^>3tf}!Ce;l!$+h->oaMRCQvc)4m27@EQDg(EK! zp{Ilu;MM1(_ z^_p?9zk%8GA%-4s;4dw@Gm=Ox_+|^xOqigk1K}OKaEbEuTb0Vu-LI1ve-HAWmt=TS``KQ3uT%C?diQ=f~` zs}ZLj0L)S!uMEb=HEN7$80|c-4w%543Vjn(^}kxtQb-$P9!5V903f{P2!YYmcudj1 zA)?qBp{@QaujS8Mu1(hl*?I5ln}44N>y|l}o+gF;npAkvXW6ttcAmnWQMehL_pD`5 zwn0raKm}kn8ngX*FgSlholMo@U(2*k8N41a=Ce-)fB<%7vjGPN$^{e-)MEest%D&0 zu!CeBFxd0~c=;ULnEcHdYzTi%)#6{vtX~Cyttzczwcl(&#!xujY^FZy_MkBdug686 z!w{h!0GP$8QzYv5v8o~T-hb=Csdk+z;whw|OI-l+-^Ny}Y8(u9Jzg9Y00O982uDrr z;Jycd0^rnemFXf><=9Dpw(!%e)e_Jn3mBc&7&ieb1?njFu-8tqDHQRr-`jV~MXT?y h=i7T*a$4TH{{z}gFbp8$s)PUl002ovPDHLkV1fipiy{C3 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_4.png b/app/src/main/res/drawable-nodpi/google_4.png new file mode 100644 index 0000000000000000000000000000000000000000..be0b0130f4ec44dbbfd6c29e721bb3a80e61cfd1 GIT binary patch literal 1274 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_42.png b/app/src/main/res/drawable-nodpi/google_42.png new file mode 100644 index 0000000000000000000000000000000000000000..25a9756cc7888ef7a5911ee4acd610350f3eda8f GIT binary patch literal 1261 zcmVFjkUG4hlhyV+}weIfuf+M9*~a>87iIYX0019!QchC<{r&#_0t8j!*%o69zXL|o>;^ZJDjs~z z{iyw$>3%N)QRUwCH#&AOU)r~O*8 z&f(01aU^8Y0(iaHmXPp7R#=c_LBDwVqCTB3BwK>J9|TE~j6b7Yj+;%mM1WtnyCyB7 zGAhz0Y^^u;?F4ur2;Pb(B-y3H7^SrkN*P1bFmnMpZ8n=F1%Tg0MoCI3LxcZ9nIgpa zg-1(p!BEcQ_o)$-2?2lBa7ndETN0lwesg-`LO^y*0i5-4O97v$D)WoOZ_d@5@O6e! zF-G??s8ru~&ydeaKs;_Q!~_Fl1H;#B6nArY$Dn(L={!LE#4KJ2DWv8{ABA>`AqWah zXYt6u)Nk*^1Vexhyuky5d<61bL&$u^_Y6rSm=teK>YGo*=6H!;Gk^jX@FNMEAy}p0`g5aFG8<9;eZTbhtk7&N!IdF_fH(a( z7ElH26!4!LGDwUlW96Rw7eUWJb+H}Q;aV4f;3}o{ftp?4!|^1ojls2N0E(#kpb$~@ z%@c5BKnbqP+d5dGfDHtmfvUz=VrW(=kS+v(=avD&=v`>(io?J#3D=$g8J>f%DB$4% z=Z=AjGVzB2d{~em(E~?d;gnNU;P1es!bHlqDYOD^{q~%q=_2TRVufl${+Q|ab zT1QPgGpXR!IPVT=QT&;(0$(sb#$xCT zpVwVi58>&$Jy|p;YHf^Z+d)|1q&U^gYKWPJ2DYMvo&?wu!YX!?xUkjm34w+V!f}FtdNf?Z z!`Ej7RRN{1O6Nie1!;=UTp;^G=*XSDtd6uOR-EK#%jzL@L6X7eCx@E3lsJi XH6z#&&Ghv!00000NkvXXu0mjfA@_jH literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_43.png b/app/src/main/res/drawable-nodpi/google_43.png new file mode 100644 index 0000000000000000000000000000000000000000..283e387f2f44753a4c62bf8e43030a45c00413e5 GIT binary patch literal 868 zcmV-q1DpJbP)(mw6w&;#GRd;(9qEJ_4WMx{OIWD+S=MX2d4A@ z000eiQchC<{{98!8PrP1VTCiJna5w@0008hNkli#f<-m&WP`v~03i`N*|huKV{p=O@|AYtGS5Plw$Flz)0 zitRgqo%`X@5;`T3O3)*6c+**lS%4JGa0DrlAYD)LQviB-x(EFY=B5V1%WrsQ5FHHj z6Mkc8Wf7Bj!j~*$!xA<<MwZgXyNn1$3Hk6vC4F`MS+(_az+CEI61jRW7kF+p4E1^yym9E+huQDSiHsXN7y=i zaBoxB`5$%0#2@>;`qKn_S))Z@LO3ps7{YN6x)8cXUq|%|<$0#NbSrqEvUW_2cuU|$ z0k3Q5&CoYj~XjyFC_>2ySO#;JKDMy{i3W$dYijFGqw4nKg z3cIZU&$11jl$SB5DniiOZ%WOg^*&2Pd>ayaEP#iqEMFGBKL4+W20|(4j)EEIhL?`` z=4XGSft?0)d;hKi$WEJu3>!d?X^81;dvxoF9t+(Fik&C}==9(v1q&p*q(JF_9ZNwO ui=As5VWLjS4i=GM=hi6~e{)dJ8}NV4`%;Hldc>Xp0000XqOC literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_44.png b/app/src/main/res/drawable-nodpi/google_44.png new file mode 100644 index 0000000000000000000000000000000000000000..5e6d872d1157eb8b741a27f2aa41641cdf4a6fdc GIT binary patch literal 976 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 XH6z#&&Ghv!00000NkvXXu0mjfA@_jH literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_47.png b/app/src/main/res/drawable-nodpi/google_47.png new file mode 100644 index 0000000000000000000000000000000000000000..a1305059578e3ed1e90019c7ec1521e3089e9e0e GIT binary patch literal 1536 zcmV+b2LJhqP)Ttv8Z;!tKg9q=4%9 z-A?uO_4M@h|JDJsi2wf80sQ^@=H}<>>gxFU_dUt~;^N}}+yJkF|K8cd``a+?@cjSU z0N&o^xQqY7pZ@dSdhzMP>gD#kmHyPe`}4DMasU7THgr->Qvd=1{`&*{`~Ca`K6(ri ziA?9DrfSZ&H5e})f9MCs*rDI=Wjl+|umfc1Cs#8|r2dP6{?q&{bxP;}00fLlL_t(| zoSm18R@zDwhUb!y5F}iRhzKGmidK8no-+f93_VaNw%GT7obI^D8al?FzjAEg7}e;c*B6-H61*L?XcM)y*mAKfQffT@}#Hx!IoIw%uirQ{<_ z8a+@$2K^)eOkcA?CUuN)_{SuPg_Rl<5X2JD86@eO^^jXy83hLh3+v5}0*vy@o1;ar z(OE_8$TfmnVdY~wQh?FjF%KA>S;E?rO9E$>m`8-=u};8EiyhRfBrLI7DndTrYaS$! z_Nh3gSCtSyA`_j)0Rl#)@VH(P!rxP+2f__hOtlxmn*t>2buB+4!m{u0b&xcWtf%5x zR{`pf@Ab=Q)A{|+c@}=A%RWM)${vk3Q0^&U)ypGc?Km{!I%(Y^$tc}QB=dau(HZc z2=SbM-R!GVK@W{gCv-aA6$p8pR-LM7_)Nnb~tpf&z!BA)L29ZRtM0XH7Q{x5{ zKv2n3E4Yhz#-0mey$^)l)+MOaj=fHW`+HW`eM5;zrS2*)1`YXh+i#>WWq zadjHIa>;|$jSOsOFm?|R)RFKd{-`D%G_*D#0pFvTxrYew(T%qA`r$%K^Zx=v7zQT3 zLJqF$?wk&4{?p>lopFHvSvXM!`p?jrjTInHkS#|+-`u%$64HDyLKC3>xq6d&DoxPn ztb~h?2f&O;AOy|+C&z>5*e?=i+V4*|nApz$J zdDynGhsu)+)W+Du&B-OaIe6p8FP}`@4jp4a=Sfhrm7B;DoD42=fJ*zta3X6d4S3Om z=W>$EwS3~C3wV<|KXTPHKN8yZiR`Ap37+&+1l>s4XZw+BKC+32EGlq;11u-Gx65YUZj3%JSP zVXsaE`7N~)=>!`9k9*^6-Gr@TmJD8Q_ve9jR!wxC{?i#Uc-kL@(Uoe)2FehJ78=?S mYLL6gQblwyOCVex(fFMc5yz+C6n{c4D_V)Jl^z{1r`sU{5+S=Ow{{EpYjKlx{02p*qPE!E>{sI93 z{Tb5eU<%26NtHb+x~SRSEK`8>iO2u|14BtfK~#90rB~~ks~`+S5fSgLb{A0J|20p- zMeME>+>;;MwBOD+35f}WoLW&7xWGh1%*U1LDu&h9b&Pkop3T4A)UW{^S)Nq7a;1oF=8!HG#_XbRmI80*D9E z2pJ`iRl)v400z<1h8p`xz(}Q22&O~M-jDDhRf^@Ev3i6~KfWo_B0yV|h7R4dn8ss+ zQ8MTx0=cYthNkp39U3ex1xS#uONK>d8f**DRv$TLGAs4K;!B!mb;K}7li%Ge6Xa*qdwFe?hoV-~?X0XzI{R6rW!=cbm~ z8Zzijh*p9*)wj9BX3uv^L?dyzi#A0&91xj%L@#kCWPu zJw_PLQP^1NZs0oMmpd?ho16Ym_#w7J!>sMP-ad(;|L}f~espVva)2am=8&*U!A!w0 zGT;iFurb1%f`ig#^l^o~qfE|5jpsMV@DPB?u}(WoXD`vm$HE?|(O2;xxG6c*U64^? z*~k&E4YkHr&N+!nfGLsb8UK;d7X8-DKt7{C#IwknL5LQV79fF7LclHoF2vRfF*JeD!H#jUcQpFAMxZ_mQTAuFp568 z#X!k-31&73C;{}p@94JzN)V1;Aei#L1OqC~ad6|lZe2mCRq(_sW5KL{D+EY9pk7~i z3~-X@y>6Ouym^ZD1si6s`+jEs046b?6vj(&BLDyZ07*qoM6N<$f_qQx AW&i*H literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_6.png b/app/src/main/res/drawable-nodpi/google_6.png new file mode 100644 index 0000000000000000000000000000000000000000..fbb99c76eb5ab68c973010346ac70174005bae16 GIT binary patch literal 1030 zcmV+h1o``kP)FMc5yz+C6n{c4D_V)Jl^z{1r`sU{5+S=Ow{{EpYjKlx{02p*qPE!E>{sI93 z{Tb5eU<%26NtHb+x~SRSEK`8>iO2u|14BtfK~#90rB~~ks~`+S5fSgLb{A0J|20p- zMeME>+>;;MwBOD+35f}WoLW&7xWGh1%*U1LDu&h9b&Pkop3T4A)UW{^S)Nq7a;1oF=8!HG#_XbRmI80*D9E z2pJ`iRl)v400z<1h8p`xz(}Q22&O~M-jDDhRf^@Ev3i6~KfWo_B0yV|h7R4dn8ss+ zQ8MTx0=cYthNkp39U3ex1xS#uONK>d8f**DRv$TLGAs4K;!B!mb;K}7li%Ge6Xa*qdwFe?hoV-~?X0XzI{R6rW!=cbm~ z8Zzijh*p9*)wj9BX3uv^L?dyzi#A0&91xj%L@#kCWPu zJw_PLQP^1NZs0oMmpd?ho16Ym_#w7J!>sMP-ad(;|L}f~espVva)2am=8&*U!A!w0 zGT;iFurb1%f`ig#^l^o~qfE|5jpsMV@DPB?u}(WoXD`vm$HE?|(O2;xxG6c*U64^? z*~k&E4YkHr&N+!nfGLsb8UK;d7X8-DKt7{C#IwknL5LQV79fF7LclHoF2vRfF*JeD!H#jUcQpFAMxZ_mQTAuFp568 z#X!k-31&73C;{}p@94JzN)V1;Aei#L1OqC~ad6|lZe2mCRq(_sW5KL{D+EY9pk7~i z3~-X@y>6Ouym^ZD1si6s`+jEs046b?6vj(&BLDyZ07*qoM6N<$f_qQx AW&i*H literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_7.png b/app/src/main/res/drawable-nodpi/google_7.png new file mode 100644 index 0000000000000000000000000000000000000000..fbb99c76eb5ab68c973010346ac70174005bae16 GIT binary patch literal 1030 zcmV+h1o``kP)FMc5yz+C6n{c4D_V)Jl^z{1r`sU{5+S=Ow{{EpYjKlx{02p*qPE!E>{sI93 z{Tb5eU<%26NtHb+x~SRSEK`8>iO2u|14BtfK~#90rB~~ks~`+S5fSgLb{A0J|20p- zMeME>+>;;MwBOD+35f}WoLW&7xWGh1%*U1LDu&h9b&Pkop3T4A)UW{^S)Nq7a;1oF=8!HG#_XbRmI80*D9E z2pJ`iRl)v400z<1h8p`xz(}Q22&O~M-jDDhRf^@Ev3i6~KfWo_B0yV|h7R4dn8ss+ zQ8MTx0=cYthNkp39U3ex1xS#uONK>d8f**DRv$TLGAs4K;!B!mb;K}7li%Ge6Xa*qdwFe?hoV-~?X0XzI{R6rW!=cbm~ z8Zzijh*p9*)wj9BX3uv^L?dyzi#A0&91xj%L@#kCWPu zJw_PLQP^1NZs0oMmpd?ho16Ym_#w7J!>sMP-ad(;|L}f~espVva)2am=8&*U!A!w0 zGT;iFurb1%f`ig#^l^o~qfE|5jpsMV@DPB?u}(WoXD`vm$HE?|(O2;xxG6c*U64^? z*~k&E4YkHr&N+!nfGLsb8UK;d7X8-DKt7{C#IwknL5LQV79fF7LclHoF2vRfF*JeD!H#jUcQpFAMxZ_mQTAuFp568 z#X!k-31&73C;{}p@94JzN)V1;Aei#L1OqC~ad6|lZe2mCRq(_sW5KL{D+EY9pk7~i z3~-X@y>6Ouym^ZD1si6s`+jEs046b?6vj(&BLDyZ07*qoM6N<$f_qQx AW&i*H literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_8.png b/app/src/main/res/drawable-nodpi/google_8.png new file mode 100644 index 0000000000000000000000000000000000000000..fbb99c76eb5ab68c973010346ac70174005bae16 GIT binary patch literal 1030 zcmV+h1o``kP)FMc5yz+C6n{c4D_V)Jl^z{1r`sU{5+S=Ow{{EpYjKlx{02p*qPE!E>{sI93 z{Tb5eU<%26NtHb+x~SRSEK`8>iO2u|14BtfK~#90rB~~ks~`+S5fSgLb{A0J|20p- zMeME>+>;;MwBOD+35f}WoLW&7xWGh1%*U1LDu&h9b&Pkop3T4A)UW{^S)Nq7a;1oF=8!HG#_XbRmI80*D9E z2pJ`iRl)v400z<1h8p`xz(}Q22&O~M-jDDhRf^@Ev3i6~KfWo_B0yV|h7R4dn8ss+ zQ8MTx0=cYthNkp39U3ex1xS#uONK>d8f**DRv$TLGAs4K;!B!mb;K}7li%Ge6Xa*qdwFe?hoV-~?X0XzI{R6rW!=cbm~ z8Zzijh*p9*)wj9BX3uv^L?dyzi#A0&91xj%L@#kCWPu zJw_PLQP^1NZs0oMmpd?ho16Ym_#w7J!>sMP-ad(;|L}f~espVva)2am=8&*U!A!w0 zGT;iFurb1%f`ig#^l^o~qfE|5jpsMV@DPB?u}(WoXD`vm$HE?|(O2;xxG6c*U64^? z*~k&E4YkHr&N+!nfGLsb8UK;d7X8-DKt7{C#IwknL5LQV79fF7LclHoF2vRfF*JeD!H#jUcQpFAMxZ_mQTAuFp568 z#X!k-31&73C;{}p@94JzN)V1;Aei#L1OqC~ad6|lZe2mCRq(_sW5KL{D+EY9pk7~i z3~-X@y>6Ouym^ZD1si6s`+jEs046b?6vj(&BLDyZ07*qoM6N<$f_qQx AW&i*H literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_9.png b/app/src/main/res/drawable-nodpi/google_9.png new file mode 100644 index 0000000000000000000000000000000000000000..c582b6a45d7e1d40390a7bc4de0b30294293a0bd GIT binary patch literal 1030 zcmV+h1o``kP)C%Mf$#6{&(F_Jy6ugUmBhrvrKhNEn6A;$ z(R-DnYNy2M>FHXo)%N!G^z`)Z?(Y2j{65G3>FMd=;o;cW*z?jW<^TWy7j#liQvm$~ z0r~;~(_s$+=gZU}he%SRJ9gEcHp#tq0009)NklJdG82LzAs>TtPJRu}*b0vAKYv57A9>F9--82(*IA#AWm%55Cad9l z5e|o;d6o*Lln_GVC%t8iBs?6Sl}brUsg!t83M69|Dk3IBssxofyEK6ux0Fi$ca|;3B`@L|$U)ukbKIBTv5001B}93khtEHz5g0)u{o$RKXR!I8I@$ z4d8VdOQRzjawr==JCM=?hXIRJI?8_7FEB=W?Lc}7p09~w08d|U47vn!Kdy0|0?***=D89LP z&p)jdD2}^BTdI#Dz`rd3=9g=F)tonMM(SR?`w;Z`+6rjZ3&1DuI}~Z*h$Wm!#7_W6 z{MLlHlvJ6K4;vkxPTRf|cuG_F*T4a6go!oErv9>5V^#9D>2E2-%|?2NThrzj2R9bm z-6CPTNRk9|#weV#qPRLb7G$^^fe72R%6-6z_Z^|(F<;HyyTzDvb9H&naRaM4it6)7 zST0dCSN;Pd2%T}{`8bkregW7AT~{0YfLRB_ zPUUf5KD$oD=8pyDxkl;@K`0{5$E5Nqu0^WGOc!3Fl z(z9P*gJD7*RrScp@9)vjSHIccOh7IFCx1Zv1B}$D%GeA9iU0rr07*qoM6N<$f-4Q? AUH||9 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/google_na.png b/app/src/main/res/drawable-nodpi/google_na.png new file mode 100644 index 0000000000000000000000000000000000000000..21e3dfb27c07e25495b1326a18fbd9839fe3d119 GIT binary patch literal 998 zcmV1D0GZ+wuC){r~_2SV=@dRCt`tR|%HmDh!P90vH3%{V)5478cv_ zr2ovDH%dC)ouo=7AqjZB{$Vqn{U7x6|KFgOd7jATdHE@aG4r(ARL!o_{52fExJ({F zu9-zLKP~j(H*iD)!4yv~$$mj$UIyXfbu@enDaio!2pP;LJTyE4H~Jyl zllQ-1DDgM{wqb=~>ltqHfcY0ZrF_KlYwQ@VYhlc4ReRkCZRIGxf+(F z@(Y3bCwR_5H0*GMS`LE*%0O#B5lr|{EN2##j;su)EEq4nW2J`h0dK++MRuG9d?Ts^ zZ-yEIZa=FEQi*{57XqjR%FtI6M^L-oh2wZ15`b_tf*9j9hFU~ihJXx||4=2^o*-&5 zwKcGH0I|M6$?r_^dN4s8*P*phV~9;XMlAyNcmyVhLlP*5eF)_ln}8U+6mu2=U;3&i zn0f`$(Xr_lJPOE)$KGyP90_zDDns?Z+p?^LM}p`-5@;Y!8MKuS7C`u7PXtyqp#N>e zD;$G(B4`XfK2ZGemf#Zu&!&oR{-GzBWgHK9+h)_gUHyA+`#Lx&&`rc{GFmFW`bPz= zo0ijF+V&p~*`lS|j@Ph9)jx6i+S#_>B>-@j-70l0%y UX@4}Ung9R*07*qoM6N<$g4f~N0RR91 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-v24/ic_humidity_symbol.xml b/app/src/main/res/drawable-v24/ic_humidity_symbol.xml new file mode 100644 index 000000000..c52b21cbf --- /dev/null +++ b/app/src/main/res/drawable-v24/ic_humidity_symbol.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/ic_wind_symbol.xml b/app/src/main/res/drawable-v24/ic_wind_symbol.xml new file mode 100644 index 000000000..236f1c338 --- /dev/null +++ b/app/src/main/res/drawable-v24/ic_wind_symbol.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ambient_indication_pill_background.xml b/app/src/main/res/drawable/ambient_indication_pill_background.xml new file mode 100644 index 000000000..d64e2748f --- /dev/null +++ b/app/src/main/res/drawable/ambient_indication_pill_background.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/date_box_str_border.xml b/app/src/main/res/drawable/date_box_str_border.xml new file mode 100644 index 000000000..c29214c49 --- /dev/null +++ b/app/src/main/res/drawable/date_box_str_border.xml @@ -0,0 +1,13 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/date_str_accent.xml b/app/src/main/res/drawable/date_str_accent.xml new file mode 100644 index 000000000..5ba7bf7d7 --- /dev/null +++ b/app/src/main/res/drawable/date_str_accent.xml @@ -0,0 +1,10 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/date_str_border.xml b/app/src/main/res/drawable/date_str_border.xml new file mode 100644 index 000000000..a31c282df --- /dev/null +++ b/app/src/main/res/drawable/date_str_border.xml @@ -0,0 +1,13 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/date_str_borderacc.xml b/app/src/main/res/drawable/date_str_borderacc.xml new file mode 100644 index 000000000..f9ab608be --- /dev/null +++ b/app/src/main/res/drawable/date_str_borderacc.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/date_str_bordergrad.xml b/app/src/main/res/drawable/date_str_bordergrad.xml new file mode 100644 index 000000000..767bfbe10 --- /dev/null +++ b/app/src/main/res/drawable/date_str_bordergrad.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/date_str_gradient.xml b/app/src/main/res/drawable/date_str_gradient.xml new file mode 100644 index 000000000..619ad0c09 --- /dev/null +++ b/app/src/main/res/drawable/date_str_gradient.xml @@ -0,0 +1,14 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_xposed_lockscreen_weather.xml b/app/src/main/res/drawable/ic_xposed_lockscreen_weather.xml new file mode 100644 index 000000000..fa68fe1f3 --- /dev/null +++ b/app/src/main/res/drawable/ic_xposed_lockscreen_weather.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/layout/fragment_xposed_lockscreen_clock.xml b/app/src/main/res/layout/fragment_xposed_lockscreen_clock.xml index 65b59c9fd..d13a4156d 100644 --- a/app/src/main/res/layout/fragment_xposed_lockscreen_clock.xml +++ b/app/src/main/res/layout/fragment_xposed_lockscreen_clock.xml @@ -199,6 +199,13 @@ app:titleText="@string/lockscreen_clock_custom_username" app:summaryText="@string/lockscreen_clock_custom_username_desc" /> + + diff --git a/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml b/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml new file mode 100644 index 000000000..df91b432e --- /dev/null +++ b/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml @@ -0,0 +1,180 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/view_current_weather.xml b/app/src/main/res/layout/view_current_weather.xml new file mode 100644 index 000000000..c33e72086 --- /dev/null +++ b/app/src/main/res/layout/view_current_weather.xml @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/navigation/nav_xposed_menu.xml b/app/src/main/res/navigation/nav_xposed_menu.xml index d850a3937..9a1b22326 100644 --- a/app/src/main/res/navigation/nav_xposed_menu.xml +++ b/app/src/main/res/navigation/nav_xposed_menu.xml @@ -204,6 +204,26 @@ app:exitAnim="@anim/fragment_fade_out" app:popEnterAnim="@anim/fragment_fade_in" app:popExitAnim="@anim/fragment_fade_out" /> + + + + + diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index 2f76e70fe..947d99d39 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -143,4 +143,33 @@ @string/settings_auto_force_reload_ui @string/settings_manual_restart_systemui + + + + @string/unit_metric + @string/unit_imperial + + + + + @string/interval_1_hour + @string/interval_2_hour + @string/interval_4_hour + @string/interval_6_hour + @string/interval_12_hour + + + + + @string/lockscreen_weather_selection_default + @string/lockscreen_weather_selection_str_box + @string/lockscreen_weather_selection_str_round + @string/lockscreen_weather_selection_qbeta_style + @string/lockscreen_weather_selection_str_accent + @string/lockscreen_weather_selection_str_accent_transparent + @string/lockscreen_weather_selection_str_gradient + @string/lockscreen_weather_selection_str_border_accent + @string/lockscreen_weather_selection_str_border_gradient + + diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index b1ea8d0eb..d8543b2f2 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -34,4 +34,14 @@ -20dp 4dp + + 12dp + 8dp + 17.0sp + 8.0sp + + + 10dp + 6dp + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 68df40d06..67726a153 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -446,6 +446,8 @@ Add custom clock on QS panel Lockscreen Clock Add custom clock on lockscreen + Lockscreen Weather + Add weather on lockscreen Depth Wallpaper Show iOS like depth wallpaper Background Chip @@ -988,4 +990,95 @@ Tap on preview to select Don\'t show again To ensure proper functionality, enabling the Iconify module in LSPosed is mandatory for android 14 and above.\n\nAfter that, enable the fixes from: Tweaks > Xposed Menu > Themes > Others. + + + + Unit + Verifying location + Select location + Custom location + Enter location + Location + Set custom location + Cannot retrieve location! + Network geolocation is disabled.\n\nSet a custom location or enable network location + Enable + Settings + Automatic updates + Check for new versions once in a while + Check updates over WiFi only + Check for updates in background only when connected to wifi + Metric (\u00b0C) + Imperial (\u00b0F) + Update + Enable + Update interval + 1 hour + 2 hours + 4 hours + 6 hours + 12 hours + Weather + Condition icon pack + Find icon packs + Disabled + Error + Waiting \u2026 + No weather data + Error loading weather data + Waiting\u2026 + Updating\u2026 + Service disabled + Now + Background shadow + Service settings + * + Unknown + Error loading weather data + Weather + Last update: + No location available + No network found + Location permissions not granted + Select location + Search for a location + Custom Margins + Top margin + Center Layout + Left Margin + Enable Location Permissions + Location permissions are required to fetch weather data. Click OK to open Settings. + + + Cloudy + Rainy + Sunny + Stormy + Snowy + Windy + Misty + + + Show Weather on Lockscreen + Last update time + Show Location + Show Condition + Show Humidity + Show Wind + Text Size + Image Size + Weather Text Custom Color + + + Weather Background Style + Default + Semi-transparent box + Semi-transparent box (round) + Q-Beta pill + Rounded, simple and with accent + Rounded, transparent and with accent + Gradient + Dark with accented borders + Dark with gradient borders + From c5abb0aa18a9d8fe29060dbed71a9ed3bd215f70 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Wed, 14 Aug 2024 17:38:12 +0200 Subject: [PATCH 124/369] IconsAdapter: add a new ViewHolder for Weather Icons --- .../iconify/ui/adapters/IconsAdapter.kt | 86 +++++++++++++++++-- .../iconify/ui/widgets/BottomSheetWidget.kt | 29 +++++-- 2 files changed, 102 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/adapters/IconsAdapter.kt b/app/src/main/java/com/drdisagree/iconify/ui/adapters/IconsAdapter.kt index 9ba682989..9e72749cd 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/adapters/IconsAdapter.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/adapters/IconsAdapter.kt @@ -1,5 +1,6 @@ package com.drdisagree.iconify.ui.adapters +import android.content.Context import android.graphics.Color import android.graphics.drawable.Drawable import android.view.LayoutInflater @@ -10,14 +11,24 @@ import androidx.recyclerview.widget.RecyclerView import com.drdisagree.iconify.Iconify.Companion.appContext import com.drdisagree.iconify.R import com.drdisagree.iconify.databinding.ViewListIconItemBinding +import com.drdisagree.iconify.databinding.ViewListOptionWeatherIconsBinding +import com.drdisagree.iconify.ui.dialogs.LoadingDialog +import com.drdisagree.iconify.ui.models.IconPackModel class IconsAdapter( private val mEntries: Array, private val mEntryValues: Array, private var mValue: String, + private val mAdapterType: Int, private val onItemClickListener: OnItemClickListener ) : RecyclerView.Adapter() { + + companion object { + const val ICONS_ADAPTER = 0 + const val WEATHER_ICONS_ADAPTER = 1 + } + private var mEntryDrawables: Array? = null private var mEntryResIds: IntArray? = null @@ -39,17 +50,40 @@ class IconsAdapter( } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { - return IconsViewHolder( - ViewListIconItemBinding.inflate( - LayoutInflater.from(parent.context), - parent, - false + if (mAdapterType == ICONS_ADAPTER) { + return IconsViewHolder( + ViewListIconItemBinding.inflate( + LayoutInflater.from(parent.context), + parent, + false + ) ) - ) + } else if (mAdapterType == WEATHER_ICONS_ADAPTER) { + return WeatherIconsViewHolder( + ViewListOptionWeatherIconsBinding.inflate( + LayoutInflater.from(parent.context), + parent, + false + ) + ) + } else { + throw IllegalStateException(javaClass.getSimpleName() + " - No adapter type provided") + } } override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { - (holder as IconsViewHolder).binding.typeTitle.text = mEntries[position] + when (mAdapterType) { + ICONS_ADAPTER -> { + bindIconsViewHolder(holder as IconsViewHolder, position) + } + WEATHER_ICONS_ADAPTER -> { + bindWeatherIconsViewHolder(holder as WeatherIconsViewHolder, position) + } + } + } + + private fun bindIconsViewHolder(holder: IconsViewHolder, position: Int) { + holder.binding.typeTitle.text = mEntries[position] if (mEntryDrawables != null) { holder.binding.batteryIcon.setImageDrawable(mEntryDrawables!![position]) @@ -81,6 +115,39 @@ class IconsAdapter( } } + private fun bindWeatherIconsViewHolder(holder: WeatherIconsViewHolder, position: Int) { + holder.binding.text.text = mEntries[position] + + if (mEntryDrawables != null) { + holder.binding.image.setImageDrawable(mEntryDrawables!![position]) + } else if (mEntryResIds != null) { + holder.binding.image.setImageDrawable( + ContextCompat.getDrawable( + holder.binding.getRoot().context, + mEntryResIds!![position] + ) + ) + } else { + throw IllegalStateException(javaClass.getSimpleName() + " - No icons provided") + } + + if (mEntryValues[position].toString().contentEquals(mValue)) { + holder.binding.rootLayout.strokeColor = appContext.getColor(R.color.colorAccent) + } else { + holder.binding.rootLayout.strokeColor = Color.TRANSPARENT + } + + holder.binding.rootLayout.setOnClickListener { v: View -> + val previousPosition = mEntryValues.indexOf(mValue) + mValue = mEntryValues[position].toString() + + notifyItemChanged(previousPosition) + notifyItemChanged(position) + + onItemClickListener.onItemClick(v, position) + } + } + override fun getItemCount(): Int { return mEntries.size } @@ -94,6 +161,11 @@ class IconsAdapter( binding.getRoot() ) + class WeatherIconsViewHolder internal constructor(val binding: ViewListOptionWeatherIconsBinding) : + RecyclerView.ViewHolder( + binding.getRoot() + ) + /** * Interface for the click on the item */ diff --git a/app/src/main/java/com/drdisagree/iconify/ui/widgets/BottomSheetWidget.kt b/app/src/main/java/com/drdisagree/iconify/ui/widgets/BottomSheetWidget.kt index 402f496f9..6439ea461 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/widgets/BottomSheetWidget.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/widgets/BottomSheetWidget.kt @@ -17,6 +17,7 @@ import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.RecyclerView import com.drdisagree.iconify.R import com.drdisagree.iconify.ui.adapters.IconsAdapter +import com.drdisagree.iconify.ui.adapters.IconsAdapter.Companion.ICONS_ADAPTER import com.drdisagree.iconify.utils.SystemUtil import com.google.android.material.appbar.MaterialToolbar import com.google.android.material.bottomsheet.BottomSheetDialog @@ -37,7 +38,8 @@ class BottomSheetWidget : RelativeLayout, IconsAdapter.OnItemClickListener { private lateinit var mEntryValues: Array private var mDrawables: Array? = null private var mValue: String = selectedIndex.toString() - private var mAdapter: IconsAdapter? = null + private var mAdapter: RecyclerView.Adapter? = null + private var mLayoutManager: RecyclerView.LayoutManager? = null private var onItemClickListener: OnItemClickListener? = null constructor(context: Context) : super(context) { @@ -126,6 +128,10 @@ class BottomSheetWidget : RelativeLayout, IconsAdapter.OnItemClickListener { titleTextView.text = title } + fun setSummary(summary: String) { + summaryTextView.text = summary + } + private fun setSelectedText(summaryResId: Int) { setSelectedText(context.getString(summaryResId)) } @@ -149,12 +155,16 @@ class BottomSheetWidget : RelativeLayout, IconsAdapter.OnItemClickListener { fun setDrawable(drawable: Array) { mDrawables = drawable - mAdapter?.setDrawables(drawable) + if (mAdapter is IconsAdapter) (mAdapter as IconsAdapter).setDrawables(drawable) } fun setCurrentValue(currentValue: String) { mValue = currentValue - mAdapter?.setCurrentValue(currentValue) + if (mAdapter is IconsAdapter) (mAdapter as IconsAdapter).setCurrentValue(currentValue) + } + + fun setLayoutManager(layoutManager: RecyclerView.LayoutManager) { + mLayoutManager = layoutManager } fun setIconVisibility(visibility: Int) { @@ -190,15 +200,22 @@ class BottomSheetWidget : RelativeLayout, IconsAdapter.OnItemClickListener { toolbar.title = titleTextView.text toolbar.isTitleCentered = true - recyclerView.layoutManager = GridLayoutManager(context, 3) + recyclerView.layoutManager = mLayoutManager ?: GridLayoutManager(context, 3) - mAdapter = IconsAdapter(mEntries, mEntryValues, mValue, this) - mAdapter!!.setDrawables(mDrawables) + if (mAdapter == null) { + mAdapter = IconsAdapter(mEntries, mEntryValues, mValue, ICONS_ADAPTER, this) + (mAdapter!! as IconsAdapter).setDrawables(mDrawables) + } recyclerView.adapter = mAdapter mBottomSheetDialog.setContentView(view) } + fun setAdapter(adapter: RecyclerView.Adapter) { + mAdapter = adapter + initBottomSheetDialog() + } + override fun setEnabled(enabled: Boolean) { super.setEnabled(enabled) From b125bd8bafdfaeed004e71e3e87d90bfae24451e Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Wed, 14 Aug 2024 17:38:46 +0200 Subject: [PATCH 125/369] Add summary for weather prefs --- .../fragment_xposed_lockscreen_weather.xml | 18 +++++++++--------- app/src/main/res/values/strings.xml | 17 ++++++++++++----- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml b/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml index df91b432e..ecd5dd515 100644 --- a/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml +++ b/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml @@ -52,28 +52,28 @@ android:layout_width="match_parent" android:layout_height="wrap_content" app:titleText="@string/weather_show_location" - app:summaryText="@string/general_on" /> + app:summaryText="@string/weather_show_location_summary" /> + app:summaryText="@string/weather_show_condition_summary" /> + app:summaryText="@string/weather_show_humidity_summary" /> + app:summaryText="@string/weather_show_wind_summary" /> + app:summaryText="@string/weather_custom_color_summary" /> + app:titleText="@string/weather_custom_color"/> + app:summaryText="@string/custom_location_summary" /> @@ -136,7 +136,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" app:titleText="@string/weather_custom_margins" - app:summaryText="@string/general_off" /> + app:summaryText="@string/weather_custom_margins_summary" /> Unit Verifying location Select location - Custom location Enter location Location Set custom location @@ -1042,10 +1041,6 @@ Location permissions not granted Select location Search for a location - Custom Margins - Top margin - Center Layout - Left Margin Enable Location Permissions Location permissions are required to fetch weather data. Click OK to open Settings. @@ -1062,12 +1057,24 @@ Show Weather on Lockscreen Last update time Show Location + Show Location before icon Show Condition + Show Condition after temperature Show Humidity + Show Humidity in a new row Show Wind + Show Wind in a new row Text Size Image Size Weather Text Custom Color + Custom color for all text in weather view + Custom location + Set custom location for weather + Custom Margins + Set custom margins for weather + Top margin + Center Layout + Left Margin Weather Background Style From bf11ee82528e1c6a8d0c8a2991cb69c0f3f998e3 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Wed, 14 Aug 2024 17:42:33 +0200 Subject: [PATCH 126/369] Weather Icon list option --- .../layout/view_list_option_weather_icons.xml | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 app/src/main/res/layout/view_list_option_weather_icons.xml diff --git a/app/src/main/res/layout/view_list_option_weather_icons.xml b/app/src/main/res/layout/view_list_option_weather_icons.xml new file mode 100644 index 000000000..8a03f43b3 --- /dev/null +++ b/app/src/main/res/layout/view_list_option_weather_icons.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + \ No newline at end of file From fba623e8beae46835bd7a028d3e1596d0fd29b46 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Wed, 14 Aug 2024 17:44:13 +0200 Subject: [PATCH 127/369] More Weather Icons --- app/src/main/AndroidManifest.xml | 141 +++++++++++++++++- .../drawable-nodpi/icons8_color_hand_0.png | Bin 0 -> 1209 bytes .../drawable-nodpi/icons8_color_hand_1.png | Bin 0 -> 983 bytes .../drawable-nodpi/icons8_color_hand_10.png | Bin 0 -> 911 bytes .../drawable-nodpi/icons8_color_hand_11.png | Bin 0 -> 837 bytes .../drawable-nodpi/icons8_color_hand_12.png | Bin 0 -> 837 bytes .../drawable-nodpi/icons8_color_hand_13.png | Bin 0 -> 808 bytes .../drawable-nodpi/icons8_color_hand_14.png | Bin 0 -> 808 bytes .../drawable-nodpi/icons8_color_hand_15.png | Bin 0 -> 808 bytes .../drawable-nodpi/icons8_color_hand_16.png | Bin 0 -> 808 bytes .../drawable-nodpi/icons8_color_hand_17.png | Bin 0 -> 808 bytes .../drawable-nodpi/icons8_color_hand_18.png | Bin 0 -> 808 bytes .../drawable-nodpi/icons8_color_hand_19.png | Bin 0 -> 606 bytes .../drawable-nodpi/icons8_color_hand_2.png | Bin 0 -> 1209 bytes .../drawable-nodpi/icons8_color_hand_20.png | Bin 0 -> 606 bytes .../drawable-nodpi/icons8_color_hand_21.png | Bin 0 -> 606 bytes .../drawable-nodpi/icons8_color_hand_22.png | Bin 0 -> 606 bytes .../drawable-nodpi/icons8_color_hand_23.png | Bin 0 -> 688 bytes .../drawable-nodpi/icons8_color_hand_24.png | Bin 0 -> 688 bytes .../drawable-nodpi/icons8_color_hand_25.png | Bin 0 -> 891 bytes .../drawable-nodpi/icons8_color_hand_26.png | Bin 0 -> 560 bytes .../drawable-nodpi/icons8_color_hand_27.png | Bin 0 -> 953 bytes .../drawable-nodpi/icons8_color_hand_28.png | Bin 0 -> 930 bytes .../drawable-nodpi/icons8_color_hand_29.png | Bin 0 -> 953 bytes .../drawable-nodpi/icons8_color_hand_3.png | Bin 0 -> 983 bytes .../drawable-nodpi/icons8_color_hand_30.png | Bin 0 -> 930 bytes .../drawable-nodpi/icons8_color_hand_31.png | Bin 0 -> 1104 bytes .../drawable-nodpi/icons8_color_hand_32.png | Bin 0 -> 1062 bytes .../drawable-nodpi/icons8_color_hand_33.png | Bin 0 -> 1104 bytes .../drawable-nodpi/icons8_color_hand_34.png | Bin 0 -> 1062 bytes .../drawable-nodpi/icons8_color_hand_35.png | Bin 0 -> 911 bytes .../drawable-nodpi/icons8_color_hand_36.png | Bin 0 -> 448 bytes .../drawable-nodpi/icons8_color_hand_37.png | Bin 0 -> 983 bytes .../drawable-nodpi/icons8_color_hand_38.png | Bin 0 -> 983 bytes .../drawable-nodpi/icons8_color_hand_39.png | Bin 0 -> 983 bytes .../drawable-nodpi/icons8_color_hand_4.png | Bin 0 -> 911 bytes .../drawable-nodpi/icons8_color_hand_40.png | Bin 0 -> 837 bytes .../drawable-nodpi/icons8_color_hand_41.png | Bin 0 -> 808 bytes .../drawable-nodpi/icons8_color_hand_42.png | Bin 0 -> 1217 bytes .../drawable-nodpi/icons8_color_hand_43.png | Bin 0 -> 808 bytes .../drawable-nodpi/icons8_color_hand_44.png | Bin 0 -> 953 bytes .../drawable-nodpi/icons8_color_hand_45.png | Bin 0 -> 837 bytes .../drawable-nodpi/icons8_color_hand_46.png | Bin 0 -> 1217 bytes .../drawable-nodpi/icons8_color_hand_47.png | Bin 0 -> 1231 bytes .../drawable-nodpi/icons8_color_hand_5.png | Bin 0 -> 911 bytes .../drawable-nodpi/icons8_color_hand_6.png | Bin 0 -> 911 bytes .../drawable-nodpi/icons8_color_hand_7.png | Bin 0 -> 911 bytes .../drawable-nodpi/icons8_color_hand_8.png | Bin 0 -> 911 bytes .../drawable-nodpi/icons8_color_hand_9.png | Bin 0 -> 837 bytes .../drawable-nodpi/icons8_color_hand_na.png | Bin 0 -> 1062 bytes .../main/res/drawable-nodpi/marshmallow_0.png | Bin 0 -> 471 bytes .../main/res/drawable-nodpi/marshmallow_1.png | Bin 0 -> 471 bytes .../res/drawable-nodpi/marshmallow_10.png | Bin 0 -> 1282 bytes .../res/drawable-nodpi/marshmallow_11.png | Bin 0 -> 1388 bytes .../res/drawable-nodpi/marshmallow_12.png | Bin 0 -> 1388 bytes .../res/drawable-nodpi/marshmallow_13.png | Bin 0 -> 1353 bytes .../res/drawable-nodpi/marshmallow_14.png | Bin 0 -> 1480 bytes .../res/drawable-nodpi/marshmallow_15.png | Bin 0 -> 1506 bytes .../res/drawable-nodpi/marshmallow_16.png | Bin 0 -> 1573 bytes .../res/drawable-nodpi/marshmallow_17.png | Bin 0 -> 1225 bytes .../res/drawable-nodpi/marshmallow_18.png | Bin 0 -> 1649 bytes .../res/drawable-nodpi/marshmallow_19.png | Bin 0 -> 2239 bytes .../main/res/drawable-nodpi/marshmallow_2.png | Bin 0 -> 471 bytes .../res/drawable-nodpi/marshmallow_20.png | Bin 0 -> 1878 bytes .../res/drawable-nodpi/marshmallow_21.png | Bin 0 -> 2239 bytes .../res/drawable-nodpi/marshmallow_22.png | Bin 0 -> 2239 bytes .../res/drawable-nodpi/marshmallow_23.png | Bin 0 -> 1805 bytes .../res/drawable-nodpi/marshmallow_24.png | Bin 0 -> 1805 bytes .../res/drawable-nodpi/marshmallow_25.png | Bin 0 -> 622 bytes .../res/drawable-nodpi/marshmallow_26.png | Bin 0 -> 966 bytes .../res/drawable-nodpi/marshmallow_27.png | Bin 0 -> 1257 bytes .../res/drawable-nodpi/marshmallow_28.png | Bin 0 -> 1645 bytes .../res/drawable-nodpi/marshmallow_29.png | Bin 0 -> 1257 bytes .../main/res/drawable-nodpi/marshmallow_3.png | Bin 0 -> 1467 bytes .../res/drawable-nodpi/marshmallow_30.png | Bin 0 -> 1645 bytes .../res/drawable-nodpi/marshmallow_31.png | Bin 0 -> 1199 bytes .../res/drawable-nodpi/marshmallow_32.png | Bin 0 -> 1617 bytes .../res/drawable-nodpi/marshmallow_33.png | Bin 0 -> 1199 bytes .../res/drawable-nodpi/marshmallow_34.png | Bin 0 -> 1617 bytes .../res/drawable-nodpi/marshmallow_35.png | Bin 0 -> 1282 bytes .../res/drawable-nodpi/marshmallow_36.png | Bin 0 -> 636 bytes .../res/drawable-nodpi/marshmallow_37.png | Bin 0 -> 2096 bytes .../res/drawable-nodpi/marshmallow_38.png | Bin 0 -> 2096 bytes .../res/drawable-nodpi/marshmallow_39.png | Bin 0 -> 2096 bytes .../main/res/drawable-nodpi/marshmallow_4.png | Bin 0 -> 1467 bytes .../res/drawable-nodpi/marshmallow_40.png | Bin 0 -> 1977 bytes .../res/drawable-nodpi/marshmallow_41.png | Bin 0 -> 1595 bytes .../res/drawable-nodpi/marshmallow_42.png | Bin 0 -> 1478 bytes .../res/drawable-nodpi/marshmallow_43.png | Bin 0 -> 1595 bytes .../res/drawable-nodpi/marshmallow_44.png | Bin 0 -> 1645 bytes .../res/drawable-nodpi/marshmallow_45.png | Bin 0 -> 1467 bytes .../res/drawable-nodpi/marshmallow_46.png | Bin 0 -> 1478 bytes .../res/drawable-nodpi/marshmallow_47.png | Bin 0 -> 1467 bytes .../main/res/drawable-nodpi/marshmallow_5.png | Bin 0 -> 1649 bytes .../main/res/drawable-nodpi/marshmallow_6.png | Bin 0 -> 1560 bytes .../main/res/drawable-nodpi/marshmallow_7.png | Bin 0 -> 1649 bytes .../main/res/drawable-nodpi/marshmallow_8.png | Bin 0 -> 1282 bytes .../main/res/drawable-nodpi/marshmallow_9.png | Bin 0 -> 1039 bytes .../res/drawable-nodpi/marshmallow_na.png | Bin 0 -> 108 bytes .../main/res/drawable-nodpi/stickers_0.png | Bin 0 -> 1762 bytes .../main/res/drawable-nodpi/stickers_1.png | Bin 0 -> 1622 bytes .../main/res/drawable-nodpi/stickers_10.png | Bin 0 -> 1570 bytes .../main/res/drawable-nodpi/stickers_11.png | Bin 0 -> 1466 bytes .../main/res/drawable-nodpi/stickers_12.png | Bin 0 -> 1466 bytes .../main/res/drawable-nodpi/stickers_13.png | Bin 0 -> 1385 bytes .../main/res/drawable-nodpi/stickers_14.png | Bin 0 -> 1385 bytes .../main/res/drawable-nodpi/stickers_15.png | Bin 0 -> 1385 bytes .../main/res/drawable-nodpi/stickers_16.png | Bin 0 -> 1385 bytes .../main/res/drawable-nodpi/stickers_17.png | Bin 0 -> 1385 bytes .../main/res/drawable-nodpi/stickers_18.png | Bin 0 -> 1385 bytes .../main/res/drawable-nodpi/stickers_19.png | Bin 0 -> 1238 bytes .../main/res/drawable-nodpi/stickers_2.png | Bin 0 -> 1762 bytes .../main/res/drawable-nodpi/stickers_20.png | Bin 0 -> 1238 bytes .../main/res/drawable-nodpi/stickers_21.png | Bin 0 -> 1238 bytes .../main/res/drawable-nodpi/stickers_22.png | Bin 0 -> 1238 bytes .../main/res/drawable-nodpi/stickers_23.png | Bin 0 -> 1404 bytes .../main/res/drawable-nodpi/stickers_24.png | Bin 0 -> 1404 bytes .../main/res/drawable-nodpi/stickers_25.png | Bin 0 -> 1537 bytes .../main/res/drawable-nodpi/stickers_26.png | Bin 0 -> 1384 bytes .../main/res/drawable-nodpi/stickers_27.png | Bin 0 -> 1462 bytes .../main/res/drawable-nodpi/stickers_28.png | Bin 0 -> 1710 bytes .../main/res/drawable-nodpi/stickers_29.png | Bin 0 -> 1666 bytes .../main/res/drawable-nodpi/stickers_3.png | Bin 0 -> 1622 bytes .../main/res/drawable-nodpi/stickers_30.png | Bin 0 -> 1549 bytes .../main/res/drawable-nodpi/stickers_31.png | Bin 0 -> 1853 bytes .../main/res/drawable-nodpi/stickers_32.png | Bin 0 -> 1952 bytes .../main/res/drawable-nodpi/stickers_33.png | Bin 0 -> 1853 bytes .../main/res/drawable-nodpi/stickers_34.png | Bin 0 -> 1952 bytes .../main/res/drawable-nodpi/stickers_35.png | Bin 0 -> 1570 bytes .../main/res/drawable-nodpi/stickers_36.png | Bin 0 -> 951 bytes .../main/res/drawable-nodpi/stickers_37.png | Bin 0 -> 1622 bytes .../main/res/drawable-nodpi/stickers_38.png | Bin 0 -> 1622 bytes .../main/res/drawable-nodpi/stickers_39.png | Bin 0 -> 1622 bytes .../main/res/drawable-nodpi/stickers_4.png | Bin 0 -> 1622 bytes .../main/res/drawable-nodpi/stickers_40.png | Bin 0 -> 1466 bytes .../main/res/drawable-nodpi/stickers_41.png | Bin 0 -> 1385 bytes .../main/res/drawable-nodpi/stickers_42.png | Bin 0 -> 1385 bytes .../main/res/drawable-nodpi/stickers_43.png | Bin 0 -> 1385 bytes .../main/res/drawable-nodpi/stickers_44.png | Bin 0 -> 1462 bytes .../main/res/drawable-nodpi/stickers_45.png | Bin 0 -> 1622 bytes .../main/res/drawable-nodpi/stickers_46.png | Bin 0 -> 1385 bytes .../main/res/drawable-nodpi/stickers_47.png | Bin 0 -> 1622 bytes .../main/res/drawable-nodpi/stickers_5.png | Bin 0 -> 1570 bytes .../main/res/drawable-nodpi/stickers_6.png | Bin 0 -> 1570 bytes .../main/res/drawable-nodpi/stickers_7.png | Bin 0 -> 1570 bytes .../main/res/drawable-nodpi/stickers_8.png | Bin 0 -> 1570 bytes .../main/res/drawable-nodpi/stickers_9.png | Bin 0 -> 1466 bytes .../main/res/drawable-nodpi/stickers_na.png | Bin 0 -> 1763 bytes .../res/drawable-nodpi/weather_color_0.png | Bin 0 -> 4315 bytes .../res/drawable-nodpi/weather_color_1.png | Bin 0 -> 2780 bytes .../res/drawable-nodpi/weather_color_10.png | Bin 0 -> 2951 bytes .../res/drawable-nodpi/weather_color_11.png | Bin 0 -> 3508 bytes .../res/drawable-nodpi/weather_color_12.png | Bin 0 -> 3508 bytes .../res/drawable-nodpi/weather_color_13.png | Bin 0 -> 3567 bytes .../res/drawable-nodpi/weather_color_14.png | Bin 0 -> 3567 bytes .../res/drawable-nodpi/weather_color_15.png | Bin 0 -> 3567 bytes .../res/drawable-nodpi/weather_color_16.png | Bin 0 -> 3567 bytes .../res/drawable-nodpi/weather_color_17.png | Bin 0 -> 3221 bytes .../res/drawable-nodpi/weather_color_18.png | Bin 0 -> 3754 bytes .../res/drawable-nodpi/weather_color_19.png | Bin 0 -> 636 bytes .../res/drawable-nodpi/weather_color_2.png | Bin 0 -> 2780 bytes .../res/drawable-nodpi/weather_color_20.png | Bin 0 -> 652 bytes .../res/drawable-nodpi/weather_color_21.png | Bin 0 -> 3994 bytes .../res/drawable-nodpi/weather_color_22.png | Bin 0 -> 667 bytes .../res/drawable-nodpi/weather_color_23.png | Bin 0 -> 1177 bytes .../res/drawable-nodpi/weather_color_24.png | Bin 0 -> 1177 bytes .../res/drawable-nodpi/weather_color_25.png | Bin 0 -> 965 bytes .../res/drawable-nodpi/weather_color_26.png | Bin 0 -> 2844 bytes .../res/drawable-nodpi/weather_color_27.png | Bin 0 -> 2122 bytes .../res/drawable-nodpi/weather_color_28.png | Bin 0 -> 3976 bytes .../res/drawable-nodpi/weather_color_29.png | Bin 0 -> 2428 bytes .../res/drawable-nodpi/weather_color_3.png | Bin 0 -> 4315 bytes .../res/drawable-nodpi/weather_color_30.png | Bin 0 -> 4158 bytes .../res/drawable-nodpi/weather_color_31.png | Bin 0 -> 1990 bytes .../res/drawable-nodpi/weather_color_32.png | Bin 0 -> 3290 bytes .../res/drawable-nodpi/weather_color_33.png | Bin 0 -> 2485 bytes .../res/drawable-nodpi/weather_color_34.png | Bin 0 -> 3921 bytes .../res/drawable-nodpi/weather_color_35.png | Bin 0 -> 3400 bytes .../res/drawable-nodpi/weather_color_36.png | Bin 0 -> 1034 bytes .../res/drawable-nodpi/weather_color_37.png | Bin 0 -> 5455 bytes .../res/drawable-nodpi/weather_color_38.png | Bin 0 -> 5455 bytes .../res/drawable-nodpi/weather_color_39.png | Bin 0 -> 5455 bytes .../res/drawable-nodpi/weather_color_4.png | Bin 0 -> 4315 bytes .../res/drawable-nodpi/weather_color_40.png | Bin 0 -> 5165 bytes .../res/drawable-nodpi/weather_color_41.png | Bin 0 -> 3798 bytes .../res/drawable-nodpi/weather_color_42.png | Bin 0 -> 3567 bytes .../res/drawable-nodpi/weather_color_43.png | Bin 0 -> 3798 bytes .../res/drawable-nodpi/weather_color_44.png | Bin 0 -> 2485 bytes .../res/drawable-nodpi/weather_color_45.png | Bin 0 -> 3097 bytes .../res/drawable-nodpi/weather_color_46.png | Bin 0 -> 3423 bytes .../res/drawable-nodpi/weather_color_47.png | Bin 0 -> 3850 bytes .../res/drawable-nodpi/weather_color_5.png | Bin 0 -> 3754 bytes .../res/drawable-nodpi/weather_color_6.png | Bin 0 -> 3754 bytes .../res/drawable-nodpi/weather_color_7.png | Bin 0 -> 3567 bytes .../res/drawable-nodpi/weather_color_8.png | Bin 0 -> 2735 bytes .../res/drawable-nodpi/weather_color_9.png | Bin 0 -> 2810 bytes .../res/drawable-nodpi/weather_color_na.png | Bin 0 -> 1473 bytes .../res/drawable-nodpi/weather_faded_0.png | Bin 0 -> 903 bytes .../res/drawable-nodpi/weather_faded_1.png | Bin 0 -> 937 bytes .../res/drawable-nodpi/weather_faded_10.png | Bin 0 -> 2237 bytes .../res/drawable-nodpi/weather_faded_11.png | Bin 0 -> 1860 bytes .../res/drawable-nodpi/weather_faded_12.png | Bin 0 -> 1683 bytes .../res/drawable-nodpi/weather_faded_13.png | Bin 0 -> 1634 bytes .../res/drawable-nodpi/weather_faded_14.png | Bin 0 -> 1866 bytes .../res/drawable-nodpi/weather_faded_15.png | Bin 0 -> 1755 bytes .../res/drawable-nodpi/weather_faded_16.png | Bin 0 -> 1446 bytes .../res/drawable-nodpi/weather_faded_17.png | Bin 0 -> 1104 bytes .../res/drawable-nodpi/weather_faded_18.png | Bin 0 -> 1133 bytes .../res/drawable-nodpi/weather_faded_19.png | Bin 0 -> 2258 bytes .../res/drawable-nodpi/weather_faded_2.png | Bin 0 -> 903 bytes .../res/drawable-nodpi/weather_faded_20.png | Bin 0 -> 1525 bytes .../res/drawable-nodpi/weather_faded_21.png | Bin 0 -> 2258 bytes .../res/drawable-nodpi/weather_faded_22.png | Bin 0 -> 1525 bytes .../res/drawable-nodpi/weather_faded_23.png | Bin 0 -> 1333 bytes .../res/drawable-nodpi/weather_faded_24.png | Bin 0 -> 1417 bytes .../res/drawable-nodpi/weather_faded_25.png | Bin 0 -> 1634 bytes .../res/drawable-nodpi/weather_faded_26.png | Bin 0 -> 1236 bytes .../res/drawable-nodpi/weather_faded_27.png | Bin 0 -> 950 bytes .../res/drawable-nodpi/weather_faded_28.png | Bin 0 -> 977 bytes .../res/drawable-nodpi/weather_faded_29.png | Bin 0 -> 978 bytes .../res/drawable-nodpi/weather_faded_3.png | Bin 0 -> 1683 bytes .../res/drawable-nodpi/weather_faded_30.png | Bin 0 -> 1236 bytes .../res/drawable-nodpi/weather_faded_31.png | Bin 0 -> 846 bytes .../res/drawable-nodpi/weather_faded_32.png | Bin 0 -> 1706 bytes .../res/drawable-nodpi/weather_faded_33.png | Bin 0 -> 846 bytes .../res/drawable-nodpi/weather_faded_34.png | Bin 0 -> 1706 bytes .../res/drawable-nodpi/weather_faded_35.png | Bin 0 -> 1755 bytes .../res/drawable-nodpi/weather_faded_36.png | Bin 0 -> 1706 bytes .../res/drawable-nodpi/weather_faded_37.png | Bin 0 -> 1683 bytes .../res/drawable-nodpi/weather_faded_38.png | Bin 0 -> 1683 bytes .../res/drawable-nodpi/weather_faded_39.png | Bin 0 -> 1860 bytes .../res/drawable-nodpi/weather_faded_4.png | Bin 0 -> 1683 bytes .../res/drawable-nodpi/weather_faded_40.png | Bin 0 -> 1837 bytes .../res/drawable-nodpi/weather_faded_41.png | Bin 0 -> 1866 bytes .../res/drawable-nodpi/weather_faded_42.png | Bin 0 -> 1755 bytes .../res/drawable-nodpi/weather_faded_43.png | Bin 0 -> 1755 bytes .../res/drawable-nodpi/weather_faded_44.png | Bin 0 -> 1236 bytes .../res/drawable-nodpi/weather_faded_45.png | Bin 0 -> 1860 bytes .../res/drawable-nodpi/weather_faded_46.png | Bin 0 -> 1755 bytes .../res/drawable-nodpi/weather_faded_47.png | Bin 0 -> 1860 bytes .../res/drawable-nodpi/weather_faded_5.png | Bin 0 -> 2237 bytes .../res/drawable-nodpi/weather_faded_6.png | Bin 0 -> 1866 bytes .../res/drawable-nodpi/weather_faded_7.png | Bin 0 -> 1866 bytes .../res/drawable-nodpi/weather_faded_8.png | Bin 0 -> 2237 bytes .../res/drawable-nodpi/weather_faded_9.png | Bin 0 -> 2223 bytes .../res/drawable-nodpi/weather_faded_na.png | Bin 0 -> 1815 bytes .../drawable-nodpi/weather_faded_refresh.png | Bin 0 -> 1815 bytes .../main/res/drawable-nodpi/weather_gs6_0.png | Bin 0 -> 1886 bytes .../main/res/drawable-nodpi/weather_gs6_1.png | Bin 0 -> 1886 bytes .../res/drawable-nodpi/weather_gs6_10.png | Bin 0 -> 1516 bytes .../res/drawable-nodpi/weather_gs6_11.png | Bin 0 -> 1516 bytes .../res/drawable-nodpi/weather_gs6_12.png | Bin 0 -> 1516 bytes .../res/drawable-nodpi/weather_gs6_13.png | Bin 0 -> 1899 bytes .../res/drawable-nodpi/weather_gs6_14.png | Bin 0 -> 1899 bytes .../res/drawable-nodpi/weather_gs6_15.png | Bin 0 -> 1899 bytes .../res/drawable-nodpi/weather_gs6_16.png | Bin 0 -> 1899 bytes .../res/drawable-nodpi/weather_gs6_17.png | Bin 0 -> 1637 bytes .../res/drawable-nodpi/weather_gs6_18.png | Bin 0 -> 1637 bytes .../res/drawable-nodpi/weather_gs6_19.png | Bin 0 -> 1886 bytes .../main/res/drawable-nodpi/weather_gs6_2.png | Bin 0 -> 1886 bytes .../res/drawable-nodpi/weather_gs6_20.png | Bin 0 -> 1254 bytes .../res/drawable-nodpi/weather_gs6_21.png | Bin 0 -> 2202 bytes .../res/drawable-nodpi/weather_gs6_22.png | Bin 0 -> 1459 bytes .../res/drawable-nodpi/weather_gs6_23.png | Bin 0 -> 1886 bytes .../res/drawable-nodpi/weather_gs6_24.png | Bin 0 -> 1886 bytes .../res/drawable-nodpi/weather_gs6_25.png | Bin 0 -> 2287 bytes .../res/drawable-nodpi/weather_gs6_26.png | Bin 0 -> 1254 bytes .../res/drawable-nodpi/weather_gs6_27.png | Bin 0 -> 2093 bytes .../res/drawable-nodpi/weather_gs6_28.png | Bin 0 -> 2202 bytes .../res/drawable-nodpi/weather_gs6_29.png | Bin 0 -> 2093 bytes .../main/res/drawable-nodpi/weather_gs6_3.png | Bin 0 -> 1857 bytes .../res/drawable-nodpi/weather_gs6_30.png | Bin 0 -> 2202 bytes .../res/drawable-nodpi/weather_gs6_31.png | Bin 0 -> 1308 bytes .../res/drawable-nodpi/weather_gs6_32.png | Bin 0 -> 1724 bytes .../res/drawable-nodpi/weather_gs6_33.png | Bin 0 -> 1308 bytes .../res/drawable-nodpi/weather_gs6_34.png | Bin 0 -> 1724 bytes .../res/drawable-nodpi/weather_gs6_35.png | Bin 0 -> 1917 bytes .../res/drawable-nodpi/weather_gs6_36.png | Bin 0 -> 1959 bytes .../res/drawable-nodpi/weather_gs6_37.png | Bin 0 -> 2932 bytes .../res/drawable-nodpi/weather_gs6_38.png | Bin 0 -> 2932 bytes .../res/drawable-nodpi/weather_gs6_39.png | Bin 0 -> 2932 bytes .../main/res/drawable-nodpi/weather_gs6_4.png | Bin 0 -> 1857 bytes .../res/drawable-nodpi/weather_gs6_40.png | Bin 0 -> 2573 bytes .../res/drawable-nodpi/weather_gs6_41.png | Bin 0 -> 1899 bytes .../res/drawable-nodpi/weather_gs6_42.png | Bin 0 -> 1899 bytes .../res/drawable-nodpi/weather_gs6_43.png | Bin 0 -> 1899 bytes .../res/drawable-nodpi/weather_gs6_44.png | Bin 0 -> 2093 bytes .../res/drawable-nodpi/weather_gs6_45.png | Bin 0 -> 1857 bytes .../res/drawable-nodpi/weather_gs6_46.png | Bin 0 -> 1899 bytes .../res/drawable-nodpi/weather_gs6_47.png | Bin 0 -> 1857 bytes .../main/res/drawable-nodpi/weather_gs6_5.png | Bin 0 -> 1674 bytes .../main/res/drawable-nodpi/weather_gs6_6.png | Bin 0 -> 1674 bytes .../main/res/drawable-nodpi/weather_gs6_7.png | Bin 0 -> 1674 bytes .../main/res/drawable-nodpi/weather_gs6_8.png | Bin 0 -> 1917 bytes .../main/res/drawable-nodpi/weather_gs6_9.png | Bin 0 -> 1917 bytes .../res/drawable-nodpi/weather_gs6_na.png | Bin 0 -> 1692 bytes .../drawable-nodpi/weather_gs6_refresh.png | Bin 0 -> 1739 bytes .../res/drawable-nodpi/weather_magical_0.png | Bin 0 -> 12113 bytes .../res/drawable-nodpi/weather_magical_1.png | Bin 0 -> 14341 bytes .../res/drawable-nodpi/weather_magical_10.png | Bin 0 -> 12440 bytes .../res/drawable-nodpi/weather_magical_11.png | Bin 0 -> 13693 bytes .../res/drawable-nodpi/weather_magical_12.png | Bin 0 -> 13693 bytes .../res/drawable-nodpi/weather_magical_13.png | Bin 0 -> 15756 bytes .../res/drawable-nodpi/weather_magical_14.png | Bin 0 -> 12440 bytes .../res/drawable-nodpi/weather_magical_15.png | Bin 0 -> 15756 bytes .../res/drawable-nodpi/weather_magical_16.png | Bin 0 -> 15756 bytes .../res/drawable-nodpi/weather_magical_17.png | Bin 0 -> 16497 bytes .../res/drawable-nodpi/weather_magical_18.png | Bin 0 -> 12440 bytes .../res/drawable-nodpi/weather_magical_19.png | Bin 0 -> 14681 bytes .../res/drawable-nodpi/weather_magical_2.png | Bin 0 -> 14341 bytes .../res/drawable-nodpi/weather_magical_20.png | Bin 0 -> 14681 bytes .../res/drawable-nodpi/weather_magical_21.png | Bin 0 -> 14681 bytes .../res/drawable-nodpi/weather_magical_22.png | Bin 0 -> 9474 bytes .../res/drawable-nodpi/weather_magical_23.png | Bin 0 -> 9069 bytes .../res/drawable-nodpi/weather_magical_24.png | Bin 0 -> 9069 bytes .../res/drawable-nodpi/weather_magical_25.png | Bin 0 -> 13914 bytes .../res/drawable-nodpi/weather_magical_26.png | Bin 0 -> 12280 bytes .../res/drawable-nodpi/weather_magical_27.png | Bin 0 -> 15155 bytes .../res/drawable-nodpi/weather_magical_28.png | Bin 0 -> 14213 bytes .../res/drawable-nodpi/weather_magical_29.png | Bin 0 -> 11215 bytes .../res/drawable-nodpi/weather_magical_3.png | Bin 0 -> 14341 bytes .../res/drawable-nodpi/weather_magical_30.png | Bin 0 -> 12633 bytes .../res/drawable-nodpi/weather_magical_31.png | Bin 0 -> 3754 bytes .../res/drawable-nodpi/weather_magical_32.png | Bin 0 -> 10469 bytes .../res/drawable-nodpi/weather_magical_33.png | Bin 0 -> 8773 bytes .../res/drawable-nodpi/weather_magical_34.png | Bin 0 -> 14244 bytes .../res/drawable-nodpi/weather_magical_35.png | Bin 0 -> 13345 bytes .../res/drawable-nodpi/weather_magical_36.png | Bin 0 -> 9746 bytes .../res/drawable-nodpi/weather_magical_37.png | Bin 0 -> 14767 bytes .../res/drawable-nodpi/weather_magical_38.png | Bin 0 -> 14502 bytes .../res/drawable-nodpi/weather_magical_39.png | Bin 0 -> 14502 bytes .../res/drawable-nodpi/weather_magical_4.png | Bin 0 -> 14341 bytes .../res/drawable-nodpi/weather_magical_40.png | Bin 0 -> 13232 bytes .../res/drawable-nodpi/weather_magical_41.png | Bin 0 -> 15756 bytes .../res/drawable-nodpi/weather_magical_42.png | Bin 0 -> 15756 bytes .../res/drawable-nodpi/weather_magical_43.png | Bin 0 -> 14940 bytes .../res/drawable-nodpi/weather_magical_44.png | Bin 0 -> 15155 bytes .../res/drawable-nodpi/weather_magical_45.png | Bin 0 -> 12223 bytes .../res/drawable-nodpi/weather_magical_46.png | Bin 0 -> 12421 bytes .../res/drawable-nodpi/weather_magical_47.png | Bin 0 -> 14996 bytes .../res/drawable-nodpi/weather_magical_5.png | Bin 0 -> 12440 bytes .../res/drawable-nodpi/weather_magical_6.png | Bin 0 -> 12440 bytes .../res/drawable-nodpi/weather_magical_7.png | Bin 0 -> 15756 bytes .../res/drawable-nodpi/weather_magical_8.png | Bin 0 -> 13232 bytes .../res/drawable-nodpi/weather_magical_9.png | Bin 0 -> 10834 bytes .../res/drawable-nodpi/weather_magical_na.png | Bin 0 -> 2460 bytes .../res/drawable-nodpi/weather_miui_0.png | Bin 0 -> 7383 bytes .../res/drawable-nodpi/weather_miui_1.png | Bin 0 -> 7383 bytes .../res/drawable-nodpi/weather_miui_10.png | Bin 0 -> 6314 bytes .../res/drawable-nodpi/weather_miui_11.png | Bin 0 -> 7506 bytes .../res/drawable-nodpi/weather_miui_12.png | Bin 0 -> 7506 bytes .../res/drawable-nodpi/weather_miui_13.png | Bin 0 -> 8002 bytes .../res/drawable-nodpi/weather_miui_14.png | Bin 0 -> 6314 bytes .../res/drawable-nodpi/weather_miui_15.png | Bin 0 -> 8002 bytes .../res/drawable-nodpi/weather_miui_16.png | Bin 0 -> 8002 bytes .../res/drawable-nodpi/weather_miui_17.png | Bin 0 -> 7506 bytes .../res/drawable-nodpi/weather_miui_18.png | Bin 0 -> 6314 bytes .../res/drawable-nodpi/weather_miui_19.png | Bin 0 -> 4690 bytes .../res/drawable-nodpi/weather_miui_2.png | Bin 0 -> 7383 bytes .../res/drawable-nodpi/weather_miui_20.png | Bin 0 -> 5556 bytes .../res/drawable-nodpi/weather_miui_21.png | Bin 0 -> 5556 bytes .../res/drawable-nodpi/weather_miui_22.png | Bin 0 -> 4690 bytes .../res/drawable-nodpi/weather_miui_23.png | Bin 0 -> 4690 bytes .../res/drawable-nodpi/weather_miui_24.png | Bin 0 -> 5558 bytes .../res/drawable-nodpi/weather_miui_25.png | Bin 0 -> 4690 bytes .../res/drawable-nodpi/weather_miui_26.png | Bin 0 -> 5558 bytes .../res/drawable-nodpi/weather_miui_27.png | Bin 0 -> 9077 bytes .../res/drawable-nodpi/weather_miui_28.png | Bin 0 -> 7489 bytes .../res/drawable-nodpi/weather_miui_29.png | Bin 0 -> 9157 bytes .../res/drawable-nodpi/weather_miui_3.png | Bin 0 -> 7383 bytes .../res/drawable-nodpi/weather_miui_30.png | Bin 0 -> 6917 bytes .../res/drawable-nodpi/weather_miui_31.png | Bin 0 -> 7492 bytes .../res/drawable-nodpi/weather_miui_32.png | Bin 0 -> 4551 bytes .../res/drawable-nodpi/weather_miui_33.png | Bin 0 -> 7492 bytes .../res/drawable-nodpi/weather_miui_34.png | Bin 0 -> 4551 bytes .../res/drawable-nodpi/weather_miui_35.png | Bin 0 -> 6314 bytes .../res/drawable-nodpi/weather_miui_36.png | Bin 0 -> 4551 bytes .../res/drawable-nodpi/weather_miui_37.png | Bin 0 -> 10104 bytes .../res/drawable-nodpi/weather_miui_38.png | Bin 0 -> 10104 bytes .../res/drawable-nodpi/weather_miui_39.png | Bin 0 -> 10104 bytes .../res/drawable-nodpi/weather_miui_4.png | Bin 0 -> 7383 bytes .../res/drawable-nodpi/weather_miui_40.png | Bin 0 -> 8977 bytes .../res/drawable-nodpi/weather_miui_41.png | Bin 0 -> 8002 bytes .../res/drawable-nodpi/weather_miui_42.png | Bin 0 -> 8002 bytes .../res/drawable-nodpi/weather_miui_43.png | Bin 0 -> 8002 bytes .../res/drawable-nodpi/weather_miui_44.png | Bin 0 -> 5558 bytes .../res/drawable-nodpi/weather_miui_45.png | Bin 0 -> 9756 bytes .../res/drawable-nodpi/weather_miui_46.png | Bin 0 -> 8002 bytes .../res/drawable-nodpi/weather_miui_47.png | Bin 0 -> 9303 bytes .../res/drawable-nodpi/weather_miui_5.png | Bin 0 -> 6314 bytes .../res/drawable-nodpi/weather_miui_6.png | Bin 0 -> 6314 bytes .../res/drawable-nodpi/weather_miui_7.png | Bin 0 -> 8002 bytes .../res/drawable-nodpi/weather_miui_8.png | Bin 0 -> 6314 bytes .../res/drawable-nodpi/weather_miui_9.png | Bin 0 -> 6924 bytes .../res/drawable-nodpi/weather_miui_na.png | Bin 0 -> 890 bytes .../res/drawable-nodpi/weather_sthul_0.png | Bin 0 -> 7059 bytes .../res/drawable-nodpi/weather_sthul_1.png | Bin 0 -> 8394 bytes .../res/drawable-nodpi/weather_sthul_10.png | Bin 0 -> 5516 bytes .../res/drawable-nodpi/weather_sthul_11.png | Bin 0 -> 4716 bytes .../res/drawable-nodpi/weather_sthul_12.png | Bin 0 -> 4545 bytes .../res/drawable-nodpi/weather_sthul_13.png | Bin 0 -> 6696 bytes .../res/drawable-nodpi/weather_sthul_14.png | Bin 0 -> 6526 bytes .../res/drawable-nodpi/weather_sthul_15.png | Bin 0 -> 8109 bytes .../res/drawable-nodpi/weather_sthul_16.png | Bin 0 -> 6717 bytes .../res/drawable-nodpi/weather_sthul_17.png | Bin 0 -> 3847 bytes .../res/drawable-nodpi/weather_sthul_18.png | Bin 0 -> 4694 bytes .../res/drawable-nodpi/weather_sthul_19.png | Bin 0 -> 3271 bytes .../res/drawable-nodpi/weather_sthul_2.png | Bin 0 -> 9267 bytes .../res/drawable-nodpi/weather_sthul_20.png | Bin 0 -> 3466 bytes .../res/drawable-nodpi/weather_sthul_21.png | Bin 0 -> 5515 bytes .../res/drawable-nodpi/weather_sthul_22.png | Bin 0 -> 2911 bytes .../res/drawable-nodpi/weather_sthul_23.png | Bin 0 -> 4574 bytes .../res/drawable-nodpi/weather_sthul_24.png | Bin 0 -> 3861 bytes .../res/drawable-nodpi/weather_sthul_25.png | Bin 0 -> 3708 bytes .../res/drawable-nodpi/weather_sthul_26.png | Bin 0 -> 3076 bytes .../res/drawable-nodpi/weather_sthul_27.png | Bin 0 -> 4039 bytes .../res/drawable-nodpi/weather_sthul_28.png | Bin 0 -> 5002 bytes .../res/drawable-nodpi/weather_sthul_29.png | Bin 0 -> 3905 bytes .../res/drawable-nodpi/weather_sthul_3.png | Bin 0 -> 4887 bytes .../res/drawable-nodpi/weather_sthul_30.png | Bin 0 -> 4681 bytes .../res/drawable-nodpi/weather_sthul_31.png | Bin 0 -> 3844 bytes .../res/drawable-nodpi/weather_sthul_32.png | Bin 0 -> 4825 bytes .../res/drawable-nodpi/weather_sthul_33.png | Bin 0 -> 4008 bytes .../res/drawable-nodpi/weather_sthul_34.png | Bin 0 -> 4524 bytes .../res/drawable-nodpi/weather_sthul_35.png | Bin 0 -> 5100 bytes .../res/drawable-nodpi/weather_sthul_36.png | Bin 0 -> 5516 bytes .../res/drawable-nodpi/weather_sthul_37.png | Bin 0 -> 4888 bytes .../res/drawable-nodpi/weather_sthul_38.png | Bin 0 -> 5049 bytes .../res/drawable-nodpi/weather_sthul_39.png | Bin 0 -> 4094 bytes .../res/drawable-nodpi/weather_sthul_4.png | Bin 0 -> 5032 bytes .../res/drawable-nodpi/weather_sthul_40.png | Bin 0 -> 4508 bytes .../res/drawable-nodpi/weather_sthul_41.png | Bin 0 -> 8167 bytes .../res/drawable-nodpi/weather_sthul_42.png | Bin 0 -> 6413 bytes .../res/drawable-nodpi/weather_sthul_43.png | Bin 0 -> 7261 bytes .../res/drawable-nodpi/weather_sthul_44.png | Bin 0 -> 3677 bytes .../res/drawable-nodpi/weather_sthul_45.png | Bin 0 -> 5159 bytes .../res/drawable-nodpi/weather_sthul_46.png | Bin 0 -> 6174 bytes .../res/drawable-nodpi/weather_sthul_47.png | Bin 0 -> 4291 bytes .../res/drawable-nodpi/weather_sthul_5.png | Bin 0 -> 5632 bytes .../res/drawable-nodpi/weather_sthul_6.png | Bin 0 -> 5347 bytes .../res/drawable-nodpi/weather_sthul_7.png | Bin 0 -> 5675 bytes .../res/drawable-nodpi/weather_sthul_8.png | Bin 0 -> 5089 bytes .../res/drawable-nodpi/weather_sthul_9.png | Bin 0 -> 4718 bytes .../res/drawable-nodpi/weather_sthul_na.png | Bin 0 -> 4718 bytes .../res/drawable-nodpi/weather_tapas_0.png | Bin 0 -> 8587 bytes .../res/drawable-nodpi/weather_tapas_1.png | Bin 0 -> 10177 bytes .../res/drawable-nodpi/weather_tapas_10.png | Bin 0 -> 6548 bytes .../res/drawable-nodpi/weather_tapas_11.png | Bin 0 -> 5048 bytes .../res/drawable-nodpi/weather_tapas_12.png | Bin 0 -> 5048 bytes .../res/drawable-nodpi/weather_tapas_13.png | Bin 0 -> 8399 bytes .../res/drawable-nodpi/weather_tapas_14.png | Bin 0 -> 8399 bytes .../res/drawable-nodpi/weather_tapas_15.png | Bin 0 -> 10157 bytes .../res/drawable-nodpi/weather_tapas_16.png | Bin 0 -> 9435 bytes .../res/drawable-nodpi/weather_tapas_17.png | Bin 0 -> 4050 bytes .../res/drawable-nodpi/weather_tapas_18.png | Bin 0 -> 8439 bytes .../res/drawable-nodpi/weather_tapas_19.png | Bin 0 -> 2449 bytes .../res/drawable-nodpi/weather_tapas_2.png | Bin 0 -> 10177 bytes .../res/drawable-nodpi/weather_tapas_20.png | Bin 0 -> 3331 bytes .../res/drawable-nodpi/weather_tapas_21.png | Bin 0 -> 4378 bytes .../res/drawable-nodpi/weather_tapas_22.png | Bin 0 -> 2412 bytes .../res/drawable-nodpi/weather_tapas_23.png | Bin 0 -> 4334 bytes .../res/drawable-nodpi/weather_tapas_24.png | Bin 0 -> 3922 bytes .../res/drawable-nodpi/weather_tapas_25.png | Bin 0 -> 3724 bytes .../res/drawable-nodpi/weather_tapas_26.png | Bin 0 -> 2405 bytes .../res/drawable-nodpi/weather_tapas_27.png | Bin 0 -> 4329 bytes .../res/drawable-nodpi/weather_tapas_28.png | Bin 0 -> 5006 bytes .../res/drawable-nodpi/weather_tapas_29.png | Bin 0 -> 4278 bytes .../res/drawable-nodpi/weather_tapas_3.png | Bin 0 -> 4544 bytes .../res/drawable-nodpi/weather_tapas_30.png | Bin 0 -> 5319 bytes .../res/drawable-nodpi/weather_tapas_31.png | Bin 0 -> 3871 bytes .../res/drawable-nodpi/weather_tapas_32.png | Bin 0 -> 4944 bytes .../res/drawable-nodpi/weather_tapas_33.png | Bin 0 -> 3871 bytes .../res/drawable-nodpi/weather_tapas_34.png | Bin 0 -> 4944 bytes .../res/drawable-nodpi/weather_tapas_35.png | Bin 0 -> 6659 bytes .../res/drawable-nodpi/weather_tapas_36.png | Bin 0 -> 6295 bytes .../res/drawable-nodpi/weather_tapas_37.png | Bin 0 -> 5117 bytes .../res/drawable-nodpi/weather_tapas_38.png | Bin 0 -> 5117 bytes .../res/drawable-nodpi/weather_tapas_39.png | Bin 0 -> 5117 bytes .../res/drawable-nodpi/weather_tapas_4.png | Bin 0 -> 4544 bytes .../res/drawable-nodpi/weather_tapas_40.png | Bin 0 -> 6284 bytes .../res/drawable-nodpi/weather_tapas_41.png | Bin 0 -> 9452 bytes .../res/drawable-nodpi/weather_tapas_42.png | Bin 0 -> 9067 bytes .../res/drawable-nodpi/weather_tapas_43.png | Bin 0 -> 9650 bytes .../res/drawable-nodpi/weather_tapas_44.png | Bin 0 -> 4194 bytes .../res/drawable-nodpi/weather_tapas_45.png | Bin 0 -> 5891 bytes .../res/drawable-nodpi/weather_tapas_46.png | Bin 0 -> 8510 bytes .../res/drawable-nodpi/weather_tapas_47.png | Bin 0 -> 5010 bytes .../res/drawable-nodpi/weather_vclouds_0.png | Bin 0 -> 8098 bytes .../res/drawable-nodpi/weather_vclouds_1.png | Bin 0 -> 8098 bytes .../res/drawable-nodpi/weather_vclouds_10.png | Bin 0 -> 7734 bytes .../res/drawable-nodpi/weather_vclouds_11.png | Bin 0 -> 6179 bytes .../res/drawable-nodpi/weather_vclouds_12.png | Bin 0 -> 7654 bytes .../res/drawable-nodpi/weather_vclouds_13.png | Bin 0 -> 5262 bytes .../res/drawable-nodpi/weather_vclouds_14.png | Bin 0 -> 5679 bytes .../res/drawable-nodpi/weather_vclouds_15.png | Bin 0 -> 7885 bytes .../res/drawable-nodpi/weather_vclouds_16.png | Bin 0 -> 5804 bytes .../res/drawable-nodpi/weather_vclouds_17.png | Bin 0 -> 8098 bytes .../res/drawable-nodpi/weather_vclouds_18.png | Bin 0 -> 6284 bytes .../res/drawable-nodpi/weather_vclouds_19.png | Bin 0 -> 2332 bytes .../res/drawable-nodpi/weather_vclouds_2.png | Bin 0 -> 8098 bytes .../res/drawable-nodpi/weather_vclouds_20.png | Bin 0 -> 1696 bytes .../res/drawable-nodpi/weather_vclouds_21.png | Bin 0 -> 2316 bytes .../res/drawable-nodpi/weather_vclouds_22.png | Bin 0 -> 2170 bytes .../res/drawable-nodpi/weather_vclouds_23.png | Bin 0 -> 5604 bytes .../res/drawable-nodpi/weather_vclouds_24.png | Bin 0 -> 5604 bytes .../res/drawable-nodpi/weather_vclouds_25.png | Bin 0 -> 4646 bytes .../res/drawable-nodpi/weather_vclouds_26.png | Bin 0 -> 5084 bytes .../res/drawable-nodpi/weather_vclouds_27.png | Bin 0 -> 5170 bytes .../res/drawable-nodpi/weather_vclouds_28.png | Bin 0 -> 7085 bytes .../res/drawable-nodpi/weather_vclouds_29.png | Bin 0 -> 3840 bytes .../res/drawable-nodpi/weather_vclouds_3.png | Bin 0 -> 8098 bytes .../res/drawable-nodpi/weather_vclouds_30.png | Bin 0 -> 5210 bytes .../res/drawable-nodpi/weather_vclouds_31.png | Bin 0 -> 2347 bytes .../res/drawable-nodpi/weather_vclouds_32.png | Bin 0 -> 3192 bytes .../res/drawable-nodpi/weather_vclouds_33.png | Bin 0 -> 3487 bytes .../res/drawable-nodpi/weather_vclouds_34.png | Bin 0 -> 4583 bytes .../res/drawable-nodpi/weather_vclouds_35.png | Bin 0 -> 8098 bytes .../res/drawable-nodpi/weather_vclouds_36.png | Bin 0 -> 3031 bytes .../res/drawable-nodpi/weather_vclouds_37.png | Bin 0 -> 7128 bytes .../res/drawable-nodpi/weather_vclouds_38.png | Bin 0 -> 7128 bytes .../res/drawable-nodpi/weather_vclouds_39.png | Bin 0 -> 7068 bytes .../res/drawable-nodpi/weather_vclouds_4.png | Bin 0 -> 8098 bytes .../res/drawable-nodpi/weather_vclouds_40.png | Bin 0 -> 7654 bytes .../res/drawable-nodpi/weather_vclouds_41.png | Bin 0 -> 6141 bytes .../res/drawable-nodpi/weather_vclouds_42.png | Bin 0 -> 5804 bytes .../res/drawable-nodpi/weather_vclouds_43.png | Bin 0 -> 7885 bytes .../res/drawable-nodpi/weather_vclouds_44.png | Bin 0 -> 3589 bytes .../res/drawable-nodpi/weather_vclouds_45.png | Bin 0 -> 6470 bytes .../res/drawable-nodpi/weather_vclouds_46.png | Bin 0 -> 5440 bytes .../res/drawable-nodpi/weather_vclouds_47.png | Bin 0 -> 7123 bytes .../res/drawable-nodpi/weather_vclouds_5.png | Bin 0 -> 7162 bytes .../res/drawable-nodpi/weather_vclouds_6.png | Bin 0 -> 7668 bytes .../res/drawable-nodpi/weather_vclouds_7.png | Bin 0 -> 7419 bytes .../res/drawable-nodpi/weather_vclouds_8.png | Bin 0 -> 6454 bytes .../res/drawable-nodpi/weather_vclouds_9.png | Bin 0 -> 6298 bytes .../res/drawable-nodpi/weather_vclouds_na.png | Bin 0 -> 3589 bytes .../res/drawable-nodpi/weather_weezle_0.png | Bin 0 -> 5617 bytes .../res/drawable-nodpi/weather_weezle_1.png | Bin 0 -> 530 bytes .../res/drawable-nodpi/weather_weezle_10.png | Bin 0 -> 4231 bytes .../res/drawable-nodpi/weather_weezle_11.png | Bin 0 -> 5150 bytes .../res/drawable-nodpi/weather_weezle_12.png | Bin 0 -> 5150 bytes .../res/drawable-nodpi/weather_weezle_13.png | Bin 0 -> 4923 bytes .../res/drawable-nodpi/weather_weezle_14.png | Bin 0 -> 4699 bytes .../res/drawable-nodpi/weather_weezle_15.png | Bin 0 -> 4699 bytes .../res/drawable-nodpi/weather_weezle_16.png | Bin 0 -> 4923 bytes .../res/drawable-nodpi/weather_weezle_17.png | Bin 0 -> 4231 bytes .../res/drawable-nodpi/weather_weezle_18.png | Bin 0 -> 4231 bytes .../res/drawable-nodpi/weather_weezle_19.png | Bin 0 -> 530 bytes .../res/drawable-nodpi/weather_weezle_2.png | Bin 0 -> 530 bytes .../res/drawable-nodpi/weather_weezle_20.png | Bin 0 -> 530 bytes .../res/drawable-nodpi/weather_weezle_21.png | Bin 0 -> 530 bytes .../res/drawable-nodpi/weather_weezle_22.png | Bin 0 -> 530 bytes .../res/drawable-nodpi/weather_weezle_23.png | Bin 0 -> 3929 bytes .../res/drawable-nodpi/weather_weezle_24.png | Bin 0 -> 2712 bytes .../res/drawable-nodpi/weather_weezle_25.png | Bin 0 -> 1304 bytes .../res/drawable-nodpi/weather_weezle_26.png | Bin 0 -> 3929 bytes .../res/drawable-nodpi/weather_weezle_27.png | Bin 0 -> 3877 bytes .../res/drawable-nodpi/weather_weezle_28.png | Bin 0 -> 5481 bytes .../res/drawable-nodpi/weather_weezle_29.png | Bin 0 -> 3877 bytes .../res/drawable-nodpi/weather_weezle_3.png | Bin 0 -> 5617 bytes .../res/drawable-nodpi/weather_weezle_30.png | Bin 0 -> 5130 bytes .../res/drawable-nodpi/weather_weezle_31.png | Bin 0 -> 3489 bytes .../res/drawable-nodpi/weather_weezle_32.png | Bin 0 -> 3526 bytes .../res/drawable-nodpi/weather_weezle_33.png | Bin 0 -> 4024 bytes .../res/drawable-nodpi/weather_weezle_34.png | Bin 0 -> 4625 bytes .../res/drawable-nodpi/weather_weezle_35.png | Bin 0 -> 5607 bytes .../res/drawable-nodpi/weather_weezle_36.png | Bin 0 -> 1278 bytes .../res/drawable-nodpi/weather_weezle_37.png | Bin 0 -> 6668 bytes .../res/drawable-nodpi/weather_weezle_38.png | Bin 0 -> 6668 bytes .../res/drawable-nodpi/weather_weezle_39.png | Bin 0 -> 6668 bytes .../res/drawable-nodpi/weather_weezle_4.png | Bin 0 -> 5617 bytes .../res/drawable-nodpi/weather_weezle_40.png | Bin 0 -> 6257 bytes .../res/drawable-nodpi/weather_weezle_41.png | Bin 0 -> 4923 bytes .../res/drawable-nodpi/weather_weezle_42.png | Bin 0 -> 4699 bytes .../res/drawable-nodpi/weather_weezle_43.png | Bin 0 -> 4923 bytes .../res/drawable-nodpi/weather_weezle_44.png | Bin 0 -> 3877 bytes .../res/drawable-nodpi/weather_weezle_45.png | Bin 0 -> 5017 bytes .../res/drawable-nodpi/weather_weezle_46.png | Bin 0 -> 4159 bytes .../res/drawable-nodpi/weather_weezle_47.png | Bin 0 -> 5017 bytes .../res/drawable-nodpi/weather_weezle_5.png | Bin 0 -> 5607 bytes .../res/drawable-nodpi/weather_weezle_6.png | Bin 0 -> 5607 bytes .../res/drawable-nodpi/weather_weezle_7.png | Bin 0 -> 5607 bytes .../res/drawable-nodpi/weather_weezle_8.png | Bin 0 -> 4231 bytes .../res/drawable-nodpi/weather_weezle_9.png | Bin 0 -> 4762 bytes .../res/drawable-nodpi/weather_weezle_na.png | Bin 0 -> 1588 bytes app/src/main/res/drawable/outline_0.xml | 44 ++++++ app/src/main/res/drawable/outline_1.xml | 50 +++++++ app/src/main/res/drawable/outline_10.xml | 76 ++++++++++ app/src/main/res/drawable/outline_11.xml | 102 +++++++++++++ app/src/main/res/drawable/outline_12.xml | 94 ++++++++++++ app/src/main/res/drawable/outline_13.xml | 82 ++++++++++ app/src/main/res/drawable/outline_14.xml | 92 ++++++++++++ app/src/main/res/drawable/outline_15.xml | 133 +++++++++++++++++ app/src/main/res/drawable/outline_16.xml | 92 ++++++++++++ app/src/main/res/drawable/outline_17.xml | 99 ++++++++++++ app/src/main/res/drawable/outline_18.xml | 76 ++++++++++ app/src/main/res/drawable/outline_19.xml | 25 ++++ app/src/main/res/drawable/outline_2.xml | 44 ++++++ app/src/main/res/drawable/outline_20.xml | 25 ++++ app/src/main/res/drawable/outline_21.xml | 25 ++++ app/src/main/res/drawable/outline_22.xml | 25 ++++ app/src/main/res/drawable/outline_23.xml | 25 ++++ app/src/main/res/drawable/outline_24.xml | 44 ++++++ app/src/main/res/drawable/outline_25.xml | 44 ++++++ app/src/main/res/drawable/outline_26.xml | 54 +++++++ app/src/main/res/drawable/outline_27.xml | 53 +++++++ app/src/main/res/drawable/outline_28.xml | 53 +++++++ app/src/main/res/drawable/outline_29.xml | 45 ++++++ app/src/main/res/drawable/outline_3.xml | 50 +++++++ app/src/main/res/drawable/outline_30.xml | 113 ++++++++++++++ app/src/main/res/drawable/outline_31.xml | 19 +++ app/src/main/res/drawable/outline_32.xml | 113 ++++++++++++++ app/src/main/res/drawable/outline_33.xml | 19 +++ app/src/main/res/drawable/outline_34.xml | 113 ++++++++++++++ app/src/main/res/drawable/outline_35.xml | 76 ++++++++++ app/src/main/res/drawable/outline_36.xml | 44 ++++++ app/src/main/res/drawable/outline_37.xml | 140 +++++++++++++++++ app/src/main/res/drawable/outline_38.xml | 140 +++++++++++++++++ app/src/main/res/drawable/outline_39.xml | 140 +++++++++++++++++ app/src/main/res/drawable/outline_4.xml | 50 +++++++ app/src/main/res/drawable/outline_40.xml | 70 +++++++++ app/src/main/res/drawable/outline_41.xml | 133 +++++++++++++++++ app/src/main/res/drawable/outline_42.xml | 92 ++++++++++++ app/src/main/res/drawable/outline_43.xml | 133 +++++++++++++++++ app/src/main/res/drawable/outline_44.xml | 113 ++++++++++++++ app/src/main/res/drawable/outline_45.xml | 140 +++++++++++++++++ app/src/main/res/drawable/outline_46.xml | 106 +++++++++++++ app/src/main/res/drawable/outline_47.xml | 140 +++++++++++++++++ app/src/main/res/drawable/outline_5.xml | 106 +++++++++++++ app/src/main/res/drawable/outline_6.xml | 106 +++++++++++++ app/src/main/res/drawable/outline_7.xml | 106 +++++++++++++ app/src/main/res/drawable/outline_8.xml | 82 ++++++++++ app/src/main/res/drawable/outline_9.xml | 99 ++++++++++++ app/src/main/res/drawable/outline_na.xml | 30 ++++ app/src/main/res/drawable/weatherclient_0.xml | 36 +++++ app/src/main/res/drawable/weatherclient_1.xml | 36 +++++ .../main/res/drawable/weatherclient_10.xml | 54 +++++++ .../main/res/drawable/weatherclient_11.xml | 39 +++++ .../main/res/drawable/weatherclient_12.xml | 39 +++++ .../main/res/drawable/weatherclient_13.xml | 54 +++++++ .../main/res/drawable/weatherclient_14.xml | 54 +++++++ .../main/res/drawable/weatherclient_15.xml | 54 +++++++ .../main/res/drawable/weatherclient_16.xml | 54 +++++++ .../main/res/drawable/weatherclient_17.xml | 54 +++++++ .../main/res/drawable/weatherclient_18.xml | 54 +++++++ .../main/res/drawable/weatherclient_19.xml | 26 ++++ .../main/res/drawable/weatherclient_20.xml | 26 ++++ .../main/res/drawable/weatherclient_21.xml | 26 ++++ .../main/res/drawable/weatherclient_22.xml | 26 ++++ .../main/res/drawable/weatherclient_23.xml | 9 ++ .../main/res/drawable/weatherclient_24.xml | 9 ++ .../main/res/drawable/weatherclient_25.xml | 8 + .../main/res/drawable/weatherclient_26.xml | 33 ++++ .../main/res/drawable/weatherclient_27.xml | 33 ++++ .../main/res/drawable/weatherclient_28.xml | 36 +++++ .../main/res/drawable/weatherclient_29.xml | 33 ++++ app/src/main/res/drawable/weatherclient_3.xml | 36 +++++ .../main/res/drawable/weatherclient_30.xml | 36 +++++ .../main/res/drawable/weatherclient_31.xml | 33 ++++ .../main/res/drawable/weatherclient_32.xml | 24 +++ .../main/res/drawable/weatherclient_33.xml | 9 ++ .../main/res/drawable/weatherclient_34.xml | 24 +++ .../main/res/drawable/weatherclient_35.xml | 36 +++++ .../main/res/drawable/weatherclient_36.xml | 24 +++ .../main/res/drawable/weatherclient_37.xml | 45 ++++++ .../main/res/drawable/weatherclient_38.xml | 45 ++++++ .../main/res/drawable/weatherclient_39.xml | 45 ++++++ app/src/main/res/drawable/weatherclient_4.xml | 36 +++++ .../main/res/drawable/weatherclient_40.xml | 42 ++++++ .../main/res/drawable/weatherclient_41.xml | 54 +++++++ .../main/res/drawable/weatherclient_42.xml | 54 +++++++ .../main/res/drawable/weatherclient_43.xml | 36 +++++ .../main/res/drawable/weatherclient_44.xml | 36 +++++ .../main/res/drawable/weatherclient_45.xml | 36 +++++ .../main/res/drawable/weatherclient_46.xml | 54 +++++++ .../main/res/drawable/weatherclient_47.xml | 45 ++++++ app/src/main/res/drawable/weatherclient_5.xml | 36 +++++ app/src/main/res/drawable/weatherclient_6.xml | 54 +++++++ app/src/main/res/drawable/weatherclient_7.xml | 54 +++++++ app/src/main/res/drawable/weatherclient_8.xml | 54 +++++++ app/src/main/res/drawable/weatherclient_9.xml | 39 +++++ .../main/res/drawable/weatherclient_na.xml | 8 + .../res/raw/com_drdisagree_iconify_keep.xml | 17 ++- 683 files changed, 5819 insertions(+), 2 deletions(-) create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_0.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_1.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_10.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_11.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_12.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_13.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_14.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_15.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_16.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_17.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_18.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_19.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_2.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_20.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_21.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_22.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_23.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_24.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_25.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_26.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_27.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_28.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_29.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_3.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_30.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_31.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_32.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_33.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_34.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_35.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_36.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_37.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_38.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_39.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_4.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_40.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_41.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_42.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_43.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_44.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_45.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_46.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_47.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_5.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_6.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_7.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_8.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_9.png create mode 100644 app/src/main/res/drawable-nodpi/icons8_color_hand_na.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_0.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_1.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_10.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_11.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_12.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_13.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_14.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_15.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_16.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_17.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_18.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_19.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_2.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_20.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_21.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_22.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_23.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_24.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_25.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_26.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_27.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_28.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_29.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_3.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_30.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_31.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_32.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_33.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_34.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_35.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_36.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_37.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_38.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_39.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_4.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_40.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_41.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_42.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_43.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_44.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_45.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_46.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_47.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_5.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_6.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_7.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_8.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_9.png create mode 100644 app/src/main/res/drawable-nodpi/marshmallow_na.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_0.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_1.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_10.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_11.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_12.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_13.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_14.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_15.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_16.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_17.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_18.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_19.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_2.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_20.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_21.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_22.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_23.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_24.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_25.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_26.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_27.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_28.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_29.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_3.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_30.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_31.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_32.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_33.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_34.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_35.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_36.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_37.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_38.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_39.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_4.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_40.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_41.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_42.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_43.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_44.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_45.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_46.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_47.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_5.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_6.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_7.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_8.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_9.png create mode 100644 app/src/main/res/drawable-nodpi/stickers_na.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_0.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_1.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_10.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_11.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_12.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_13.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_14.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_15.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_16.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_17.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_18.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_19.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_2.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_20.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_21.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_22.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_23.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_24.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_25.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_26.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_27.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_28.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_29.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_3.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_30.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_31.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_32.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_33.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_34.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_35.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_36.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_37.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_38.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_39.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_4.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_40.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_41.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_42.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_43.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_44.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_45.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_46.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_47.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_5.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_6.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_7.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_8.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_9.png create mode 100644 app/src/main/res/drawable-nodpi/weather_color_na.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_0.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_1.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_10.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_11.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_12.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_13.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_14.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_15.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_16.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_17.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_18.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_19.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_2.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_20.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_21.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_22.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_23.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_24.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_25.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_26.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_27.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_28.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_29.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_3.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_30.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_31.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_32.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_33.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_34.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_35.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_36.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_37.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_38.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_39.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_4.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_40.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_41.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_42.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_43.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_44.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_45.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_46.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_47.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_5.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_6.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_7.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_8.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_9.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_na.png create mode 100644 app/src/main/res/drawable-nodpi/weather_faded_refresh.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_0.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_1.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_10.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_11.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_12.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_13.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_14.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_15.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_16.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_17.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_18.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_19.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_2.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_20.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_21.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_22.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_23.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_24.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_25.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_26.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_27.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_28.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_29.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_3.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_30.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_31.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_32.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_33.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_34.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_35.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_36.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_37.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_38.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_39.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_4.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_40.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_41.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_42.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_43.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_44.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_45.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_46.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_47.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_5.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_6.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_7.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_8.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_9.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_na.png create mode 100644 app/src/main/res/drawable-nodpi/weather_gs6_refresh.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_0.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_1.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_10.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_11.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_12.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_13.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_14.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_15.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_16.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_17.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_18.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_19.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_2.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_20.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_21.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_22.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_23.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_24.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_25.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_26.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_27.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_28.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_29.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_3.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_30.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_31.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_32.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_33.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_34.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_35.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_36.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_37.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_38.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_39.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_4.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_40.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_41.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_42.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_43.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_44.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_45.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_46.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_47.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_5.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_6.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_7.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_8.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_9.png create mode 100644 app/src/main/res/drawable-nodpi/weather_magical_na.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_0.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_1.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_10.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_11.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_12.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_13.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_14.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_15.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_16.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_17.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_18.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_19.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_2.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_20.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_21.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_22.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_23.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_24.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_25.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_26.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_27.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_28.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_29.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_3.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_30.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_31.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_32.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_33.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_34.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_35.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_36.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_37.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_38.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_39.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_4.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_40.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_41.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_42.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_43.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_44.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_45.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_46.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_47.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_5.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_6.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_7.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_8.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_9.png create mode 100644 app/src/main/res/drawable-nodpi/weather_miui_na.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_0.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_1.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_10.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_11.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_12.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_13.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_14.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_15.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_16.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_17.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_18.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_19.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_2.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_20.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_21.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_22.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_23.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_24.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_25.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_26.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_27.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_28.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_29.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_3.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_30.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_31.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_32.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_33.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_34.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_35.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_36.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_37.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_38.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_39.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_4.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_40.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_41.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_42.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_43.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_44.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_45.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_46.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_47.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_5.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_6.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_7.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_8.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_9.png create mode 100644 app/src/main/res/drawable-nodpi/weather_sthul_na.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_0.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_1.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_10.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_11.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_12.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_13.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_14.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_15.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_16.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_17.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_18.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_19.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_2.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_20.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_21.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_22.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_23.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_24.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_25.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_26.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_27.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_28.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_29.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_3.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_30.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_31.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_32.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_33.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_34.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_35.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_36.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_37.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_38.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_39.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_4.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_40.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_41.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_42.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_43.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_44.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_45.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_46.png create mode 100644 app/src/main/res/drawable-nodpi/weather_tapas_47.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_0.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_1.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_10.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_11.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_12.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_13.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_14.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_15.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_16.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_17.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_18.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_19.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_2.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_20.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_21.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_22.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_23.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_24.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_25.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_26.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_27.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_28.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_29.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_3.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_30.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_31.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_32.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_33.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_34.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_35.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_36.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_37.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_38.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_39.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_4.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_40.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_41.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_42.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_43.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_44.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_45.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_46.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_47.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_5.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_6.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_7.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_8.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_9.png create mode 100644 app/src/main/res/drawable-nodpi/weather_vclouds_na.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_0.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_1.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_10.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_11.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_12.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_13.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_14.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_15.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_16.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_17.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_18.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_19.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_2.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_20.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_21.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_22.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_23.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_24.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_25.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_26.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_27.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_28.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_29.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_3.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_30.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_31.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_32.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_33.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_34.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_35.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_36.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_37.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_38.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_39.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_4.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_40.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_41.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_42.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_43.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_44.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_45.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_46.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_47.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_5.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_6.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_7.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_8.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_9.png create mode 100644 app/src/main/res/drawable-nodpi/weather_weezle_na.png create mode 100644 app/src/main/res/drawable/outline_0.xml create mode 100644 app/src/main/res/drawable/outline_1.xml create mode 100644 app/src/main/res/drawable/outline_10.xml create mode 100644 app/src/main/res/drawable/outline_11.xml create mode 100644 app/src/main/res/drawable/outline_12.xml create mode 100644 app/src/main/res/drawable/outline_13.xml create mode 100644 app/src/main/res/drawable/outline_14.xml create mode 100644 app/src/main/res/drawable/outline_15.xml create mode 100644 app/src/main/res/drawable/outline_16.xml create mode 100644 app/src/main/res/drawable/outline_17.xml create mode 100644 app/src/main/res/drawable/outline_18.xml create mode 100644 app/src/main/res/drawable/outline_19.xml create mode 100644 app/src/main/res/drawable/outline_2.xml create mode 100644 app/src/main/res/drawable/outline_20.xml create mode 100644 app/src/main/res/drawable/outline_21.xml create mode 100644 app/src/main/res/drawable/outline_22.xml create mode 100644 app/src/main/res/drawable/outline_23.xml create mode 100644 app/src/main/res/drawable/outline_24.xml create mode 100644 app/src/main/res/drawable/outline_25.xml create mode 100644 app/src/main/res/drawable/outline_26.xml create mode 100644 app/src/main/res/drawable/outline_27.xml create mode 100644 app/src/main/res/drawable/outline_28.xml create mode 100644 app/src/main/res/drawable/outline_29.xml create mode 100644 app/src/main/res/drawable/outline_3.xml create mode 100644 app/src/main/res/drawable/outline_30.xml create mode 100644 app/src/main/res/drawable/outline_31.xml create mode 100644 app/src/main/res/drawable/outline_32.xml create mode 100644 app/src/main/res/drawable/outline_33.xml create mode 100644 app/src/main/res/drawable/outline_34.xml create mode 100644 app/src/main/res/drawable/outline_35.xml create mode 100644 app/src/main/res/drawable/outline_36.xml create mode 100644 app/src/main/res/drawable/outline_37.xml create mode 100644 app/src/main/res/drawable/outline_38.xml create mode 100644 app/src/main/res/drawable/outline_39.xml create mode 100644 app/src/main/res/drawable/outline_4.xml create mode 100644 app/src/main/res/drawable/outline_40.xml create mode 100644 app/src/main/res/drawable/outline_41.xml create mode 100644 app/src/main/res/drawable/outline_42.xml create mode 100644 app/src/main/res/drawable/outline_43.xml create mode 100644 app/src/main/res/drawable/outline_44.xml create mode 100644 app/src/main/res/drawable/outline_45.xml create mode 100644 app/src/main/res/drawable/outline_46.xml create mode 100644 app/src/main/res/drawable/outline_47.xml create mode 100644 app/src/main/res/drawable/outline_5.xml create mode 100644 app/src/main/res/drawable/outline_6.xml create mode 100644 app/src/main/res/drawable/outline_7.xml create mode 100644 app/src/main/res/drawable/outline_8.xml create mode 100644 app/src/main/res/drawable/outline_9.xml create mode 100644 app/src/main/res/drawable/outline_na.xml create mode 100644 app/src/main/res/drawable/weatherclient_0.xml create mode 100644 app/src/main/res/drawable/weatherclient_1.xml create mode 100644 app/src/main/res/drawable/weatherclient_10.xml create mode 100644 app/src/main/res/drawable/weatherclient_11.xml create mode 100644 app/src/main/res/drawable/weatherclient_12.xml create mode 100644 app/src/main/res/drawable/weatherclient_13.xml create mode 100644 app/src/main/res/drawable/weatherclient_14.xml create mode 100644 app/src/main/res/drawable/weatherclient_15.xml create mode 100644 app/src/main/res/drawable/weatherclient_16.xml create mode 100644 app/src/main/res/drawable/weatherclient_17.xml create mode 100644 app/src/main/res/drawable/weatherclient_18.xml create mode 100644 app/src/main/res/drawable/weatherclient_19.xml create mode 100644 app/src/main/res/drawable/weatherclient_20.xml create mode 100644 app/src/main/res/drawable/weatherclient_21.xml create mode 100644 app/src/main/res/drawable/weatherclient_22.xml create mode 100644 app/src/main/res/drawable/weatherclient_23.xml create mode 100644 app/src/main/res/drawable/weatherclient_24.xml create mode 100644 app/src/main/res/drawable/weatherclient_25.xml create mode 100644 app/src/main/res/drawable/weatherclient_26.xml create mode 100644 app/src/main/res/drawable/weatherclient_27.xml create mode 100644 app/src/main/res/drawable/weatherclient_28.xml create mode 100644 app/src/main/res/drawable/weatherclient_29.xml create mode 100644 app/src/main/res/drawable/weatherclient_3.xml create mode 100644 app/src/main/res/drawable/weatherclient_30.xml create mode 100644 app/src/main/res/drawable/weatherclient_31.xml create mode 100644 app/src/main/res/drawable/weatherclient_32.xml create mode 100644 app/src/main/res/drawable/weatherclient_33.xml create mode 100644 app/src/main/res/drawable/weatherclient_34.xml create mode 100644 app/src/main/res/drawable/weatherclient_35.xml create mode 100644 app/src/main/res/drawable/weatherclient_36.xml create mode 100644 app/src/main/res/drawable/weatherclient_37.xml create mode 100644 app/src/main/res/drawable/weatherclient_38.xml create mode 100644 app/src/main/res/drawable/weatherclient_39.xml create mode 100644 app/src/main/res/drawable/weatherclient_4.xml create mode 100644 app/src/main/res/drawable/weatherclient_40.xml create mode 100644 app/src/main/res/drawable/weatherclient_41.xml create mode 100644 app/src/main/res/drawable/weatherclient_42.xml create mode 100644 app/src/main/res/drawable/weatherclient_43.xml create mode 100644 app/src/main/res/drawable/weatherclient_44.xml create mode 100644 app/src/main/res/drawable/weatherclient_45.xml create mode 100644 app/src/main/res/drawable/weatherclient_46.xml create mode 100644 app/src/main/res/drawable/weatherclient_47.xml create mode 100644 app/src/main/res/drawable/weatherclient_5.xml create mode 100644 app/src/main/res/drawable/weatherclient_6.xml create mode 100644 app/src/main/res/drawable/weatherclient_7.xml create mode 100644 app/src/main/res/drawable/weatherclient_8.xml create mode 100644 app/src/main/res/drawable/weatherclient_9.xml create mode 100644 app/src/main/res/drawable/weatherclient_na.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5e5672a7c..6cf3dbb6f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -209,7 +209,146 @@ android:exported="false" android:label="Google"> - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_0.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_0.png new file mode 100644 index 0000000000000000000000000000000000000000..67f7027012d06db8f960786171522b1fad899efd GIT binary patch literal 1209 zcmV;q1V;ObP)YqPXSNBl{UvRylHZD)Jwo*~7tFZj6vJB`7JSFm-F0<#)83 zg#n6qBn5~6=BJ}9bEI)UY+@RS@^K1hgX4l6N!AeLIb3TbIU{jQECHtkIV(wNbk!N; zuHE6Vuw1DYr1+*vf);)HNE+Eay4fV z4v(4FMxE2*JvA-LB)Vcgqm3(dND4~=^}2gaUCd$CeBSa=CqgzPZl*wlqobDRLVLtB z;C=;Z_MV1&poy**d9^#5IIX3BzhX|T1g;>+_jfQSCszKu%gR{x+?F8T)7stngINVSCSPrEpkPKLt(NG$0q6; z-g*Ln%ly`c7hDb~-lFMvQ~tn2!L;Uo+g>&Kz*bhFl(9FEEv>zgA% zfcLY&q+(2T2Rv~;K&%a8Y|s%NxbXee2S~^xAVX2=;aeW0vG0-D@59tkufu(})13)e z*I?s>0$Z%s8j3IQZ}0CvFTZV}b#L!qYv@nykzI&v++h%v3yXu)ApKk(f>ezF6N;*(?1^^#xXTe?0;Bv_CG_Hya~+ewKL|m_DyY^$+R~ X*n74$JKN-j00000NkvXXu0mjfK;KgO literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_1.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_1.png new file mode 100644 index 0000000000000000000000000000000000000000..38e4fec6288b3e6191d6d409e893934b66a3aae2 GIT binary patch literal 983 zcmV;|11S87P)G$ST49v~_oAuAvvD<2{&AtNo9n7^Q)&7z{reSM&!qRby5EB*DUJ3LB>img>u zW3jA$m6C34Zi{|@pyJz^&dHC0e`9NERyhhP4FCWD4RlgYQvfdf6LOj1zDxc!wn5(?U9sBa1gV^CG-7MBVE9Ge&lAL7#GQ0-etRHLb%N}`25jMcuowi_Zl zGpVKgwOpZnmq`ITt4rZ*H7;QjQt=&sXTuNJS&crlS-r90m*|$;$~Z%7{_Lj^$kl3e zYb$T=_mzL3Yva_7`E#G{0_j#8T7-=~g|O$x_zwe_VXc~)$LFI{L6s!q1DQb9wSF!( zj{SMJ1KXn&JV)WmW`z5mTLY2di$6cbd&+7(60B4|n!ilCp3_72=f_`h9dfz!T{q7P zMe!l}K>dg-ahQBREVrt_b%16&#daTt76e}Wy_UVA^nv)9vg`El z;2~4all5L4I?d#*!mq6gfy}Trb7gD7YIpFxRl)uVZV%Xm5N@NtWI5gYKqkpbQVJ1H z)dG8cRbh_z6iXl~^o_e-!ZnvwYlrlgzSli>U4A*2Qzok(`(cucMuqdFGE}Z%=@8#@ z!5tmQ43MF6i#3p6-|ve%1XQ2xol%8)_;qeb-4>GGtut9wm_!WHwc_fIzMRP_=L;b& z`dfGOS%zn++(2ogzZ-!(pH+S-W^a1fEoero+^^QXn5(a2m_W2u$G&~W>)PZ;!Q|0a znO;=6-vvJ*_P@sb82wCnv{lBeqpi}2+&y=4a&mHV!#|cHiBOFLqqG13002ovPDHLk FV1gcm*5LpE literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_10.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_10.png new file mode 100644 index 0000000000000000000000000000000000000000..fb65d0bd7129019d67ebb674ba972a6e7c916e28 GIT binary patch literal 911 zcmV;A191F_P)4*Vx9#$y;1wt*)_eaCd=% zhnSh2EzVpD0000AbW%=J05KG6>adAR(KN}sK)e6|0{BTpK~#90?O0j1q$&_pAb}^7 z=>GTmKuhFafs!ih{%GQ-hJywfnHdbj(9zM+(b3WIk7C5Y2_YOPdx!yHE=~}N9^k-4 z2x(WXl+v@6j;A>d0!J}VCuSoAADeQFE{vFBqjAx+OpW6(YP!G*fzL4vv+)Z7k>i+B zSdLg2ki8x_{*;FcIZYWB;$AxXvXjOdUk(I+#6g8r8Is8e7_ehl^!8J&jt4#n23>Q0 zLOF$mu+b!D_fI_w2s`DmiZF+D-NMnbp2Y>C3nY^aaV}PF^`WGol_WS*SwXOP3VQO4 zy1IdQAtR~4>{fKVRxMRSqU5rbLzUyOY>#B1eF|+|R&cSlQdkzxbXzaPFb1(yl4u{g zb2W_F`$}f8+tFG{GI_n^{w$QM%r79qSZj=~B{8lXSLvS>WsmWmx2owQm=L>KN-G<3 z##Tw~VPZ2?OBxGZ#s{{Bf+nv7Zrz z{DE)~Qs(mR<<-AyH2%gx;^%31!+#f0czt1f|AcrvzjbyUf8czA(lC?ITYJZ$X#DUU z#;|w8<8R&;7`MfN98n>3;r$v2Cywr6gG^^%> zUVDVjcAMSn;HzG~$45dbX?777>4hT_XEdzgWm`B!owWCyY;qr#3x=hwr_06Q`h$)qz5Aja5-Vm lr9R+ktvWh7IyyRH{12b3W(N$7;OhVY002ovPDHLkV1nc;n)v_# literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_11.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_11.png new file mode 100644 index 0000000000000000000000000000000000000000..8c2c1e21dc0f2874953162b639c5a229c01cd581 GIT binary patch literal 837 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_2.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_2.png new file mode 100644 index 0000000000000000000000000000000000000000..67f7027012d06db8f960786171522b1fad899efd GIT binary patch literal 1209 zcmV;q1V;ObP)YqPXSNBl{UvRylHZD)Jwo*~7tFZj6vJB`7JSFm-F0<#)83 zg#n6qBn5~6=BJ}9bEI)UY+@RS@^K1hgX4l6N!AeLIb3TbIU{jQECHtkIV(wNbk!N; zuHE6Vuw1DYr1+*vf);)HNE+Eay4fV z4v(4FMxE2*JvA-LB)Vcgqm3(dND4~=^}2gaUCd$CeBSa=CqgzPZl*wlqobDRLVLtB z;C=;Z_MV1&poy**d9^#5IIX3BzhX|T1g;>+_jfQSCszKu%gR{x+?F8T)7stngINVSCSPrEpkPKLt(NG$0q6; z-g*Ln%ly`c7hDb~-lFMvQ~tn2!L;Uo+g>&Kz*bhFl(9FEEv>zgA% zfcLY&q+(2T2Rv~;K&%a8Y|s%NxbXee2S~^xAVX2=;aeW0vG0-D@59tkufu(})13)e z*I?s>0$Z%s8j3IQZ}0CvFTZV}b#L!qYv@nykzI&v++h%v3yXu)ApKk(f>ezF6N;*(?1^^#xXTe?0;Bv_CG_Hya~+ewKL|m_DyY^$+R~ X*n74$JKN-j00000NkvXXu0mjfK;KgO literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_20.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_20.png new file mode 100644 index 0000000000000000000000000000000000000000..f8c7055fdabb8975efdb8a18371ca07d18b693b2 GIT binary patch literal 606 zcmV-k0-^nhP)Jr50ozGLK~#90?UlVw!ay9rivf)rCKAGihG>|50ZcH44P1uhVQRq5X-DeT{5uE8(cFQConfKoCkgqm$4fqKhKj_E~rYWPbm7L zeGP#c25E%SaDpmXS}77HaoRWSQj`rDQ{V;KRGw%GRtnzA*&|iaDaB;^ROSA`v-o12 zt~9#E)QXX|&Xqw`n%39ca<@R5s2Ww_)rkT-q>`6S9Kef^B!g%{25u>BV!L`cm`2BC zB#_3S5Ce@%EC$xknO23!tj)A4#B{n$t3oJZXoc^DSHvGBw#hO{vV6uSyH5?{C`Vb> z#vp^iXn}i`Gc1`+MfWDhAvg@L+z>~sB-y*HlJpJh;TWT(zj+*iYTyBhX$}U%Ph$*F zT{`^MO?-9W0|>V(zZkCKd&5NpXLZHL_XN{a__VR$l%E srPo4@eFh3O_8FD`GxmsxhzK7(0HN%;Ttb}mxBvhE07*qoM6N<$f?+iUu>b%7 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_21.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_21.png new file mode 100644 index 0000000000000000000000000000000000000000..f8c7055fdabb8975efdb8a18371ca07d18b693b2 GIT binary patch literal 606 zcmV-k0-^nhP)Jr50ozGLK~#90?UlVw!ay9rivf)rCKAGihG>|50ZcH44P1uhVQRq5X-DeT{5uE8(cFQConfKoCkgqm$4fqKhKj_E~rYWPbm7L zeGP#c25E%SaDpmXS}77HaoRWSQj`rDQ{V;KRGw%GRtnzA*&|iaDaB;^ROSA`v-o12 zt~9#E)QXX|&Xqw`n%39ca<@R5s2Ww_)rkT-q>`6S9Kef^B!g%{25u>BV!L`cm`2BC zB#_3S5Ce@%EC$xknO23!tj)A4#B{n$t3oJZXoc^DSHvGBw#hO{vV6uSyH5?{C`Vb> z#vp^iXn}i`Gc1`+MfWDhAvg@L+z>~sB-y*HlJpJh;TWT(zj+*iYTyBhX$}U%Ph$*F zT{`^MO?-9W0|>V(zZkCKd&5NpXLZHL_XN{a__VR$l%E srPo4@eFh3O_8FD`GxmsxhzK7(0HN%;Ttb}mxBvhE07*qoM6N<$f?+iUu>b%7 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_22.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_22.png new file mode 100644 index 0000000000000000000000000000000000000000..f8c7055fdabb8975efdb8a18371ca07d18b693b2 GIT binary patch literal 606 zcmV-k0-^nhP)Jr50ozGLK~#90?UlVw!ay9rivf)rCKAGihG>|50ZcH44P1uhVQRq5X-DeT{5uE8(cFQConfKoCkgqm$4fqKhKj_E~rYWPbm7L zeGP#c25E%SaDpmXS}77HaoRWSQj`rDQ{V;KRGw%GRtnzA*&|iaDaB;^ROSA`v-o12 zt~9#E)QXX|&Xqw`n%39ca<@R5s2Ww_)rkT-q>`6S9Kef^B!g%{25u>BV!L`cm`2BC zB#_3S5Ce@%EC$xknO23!tj)A4#B{n$t3oJZXoc^DSHvGBw#hO{vV6uSyH5?{C`Vb> z#vp^iXn}i`Gc1`+MfWDhAvg@L+z>~sB-y*HlJpJh;TWT(zj+*iYTyBhX$}U%Ph$*F zT{`^MO?-9W0|>V(zZkCKd&5NpXLZHL_XN{a__VR$l%E srPo4@eFh3O_8FD`GxmsxhzK7(0HN%;Ttb}mxBvhE07*qoM6N<$f?+iUu>b%7 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_23.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_23.png new file mode 100644 index 0000000000000000000000000000000000000000..61c07a8b73707eb3326eeff4320f812168a58538 GIT binary patch literal 688 zcmV;h0#E&kP)yC|AlvP{0v>@zVV zW>#H==#X)q4DYI4f?N}i8Vw^a&`yj6R$}JciVjp+lUCY8<{T5dq>UA*qIDPJJ1fW|h ze2`nxl}%v7C{XRL5Iezc*QJ0#*4crkUqzHcQD{~8=?sXh3SUf0XjNF=GoBJJi7B;2 zcqJp2nC6?91bNiZp?!ifD3+@naf;%;z5ILT7sPo-noiMQzfHaq?$Nx~ zallM8U&I%O4hO(eoN=D*`y5KLN^u*nvY>B@-kBI>8Bs>N$5Q#+Wc7zr+GaBvPl+g5 zzQZE@lG!4LlL;v-v5U}3zu>>09uy@d4V{KlV#ZW16HbwHU`Qc}&;Q~YM?^&Y13m#W Wol1LQKl>s80000yC|AlvP{0v>@zVV zW>#H==#X)q4DYI4f?N}i8Vw^a&`yj6R$}JciVjp+lUCY8<{T5dq>UA*qIDPJJ1fW|h ze2`nxl}%v7C{XRL5Iezc*QJ0#*4crkUqzHcQD{~8=?sXh3SUf0XjNF=GoBJJi7B;2 zcqJp2nC6?91bNiZp?!ifD3+@naf;%;z5ILT7sPo-noiMQzfHaq?$Nx~ zallM8U&I%O4hO(eoN=D*`y5KLN^u*nvY>B@-kBI>8Bs>N$5Q#+Wc7zr+GaBvPl+g5 zzQZE@lG!4LlL;v-v5U}3zu>>09uy@d4V{KlV#ZW16HbwHU`Qc}&;Q~YM?^&Y13m#W Wol1LQKl>s800001BCpEP)9V9C z422sIcLQqs{;xXF+AT|1M5k&dKX3K@>Les5@%8%ef>9y_q3kJ~q8;%Fk_rK{97j2W z5cCn=JRUJWKx9HJ<1d!{th)~VGbg9MT_efkRR9bZ2%{B{Cz00xHAgEr+rT-miWJrr zuwN1(ZJ^A`xdV_A04bvoqZ2}8B|Hzqj3r$LR0$6%u%wHCOeL&=5_#z_P#BQ}5}mM) z8ORgB>Ja#mSUr$3{R-3)=>tIW6*vrwmvadaVE6^V1Hk%JD4{L{n%+Xp8WyHpna|nn zZN0a47XZfFh7$nt8#6U{{m$$C;mZR$-lFubib#PLmDXURitTAKC4R!duEFj`7 zyd!l@I>cdffDvyg0>-?h1h^->Hyye~t^%pqb?KxhB&;8(7FkX!@Z9P;kbIkXZ{*|# zo2K3g8_3{vf~XmYGre#3KXwb~2+WWe2Ub=E18eCD&~U!61L8ouZOGY! z;k9%HSi2cxTjWa0?i-_f?h5d6g*R%51F74F*zs`%$owLvM&++fO2EFDGb%EBmP3B1 z{MsNcY0pmCm%bTH$0mubQenW#C9bnlDd#nV*Gz90_?{ZuPrBnwP=`YIy3Rw0yrcR~ zpj~Q-a+LQWV*hIX4gVBvah@i&aVZS#9`zs_4&0oF@wDns(Fzd=eIOt%k?3>Ln;0Gx z_>mZS0J?vQx-HH^72K=HVg+12P0q42j^@k{!|-mgCY-U(xd|t{;^@4=Y5vShVi0)O}|Uf-}$`qiCc=N>bNgK z^jC^#Ar&skOGK-VnKx_-x^19vQ_ElXg16?O)ZUYKAX(d})SISdch&u~@drEWb;@;k RYv2F?002ovPDHLkV1kSSrT+i` literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_26.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_26.png new file mode 100644 index 0000000000000000000000000000000000000000..1ef60681fcddd4063c6feff6d8fdcf6a1e90c4da GIT binary patch literal 560 zcmV-00?+-4P)ymEG-WG6`|vi zmqKK~YS2LAC7ko>D;C|z*RELLrjPeWpD_Ez9A1%=;3LS5(rJUf0F$C>Qu+*U4yoHs ztmQK)Fae#slRzrCbfT4aM(AT@vewYRE>4obtxhS4WK&w}BmsH8O@L}pwVj*+$gYxe zWK0I|<4t5A3e@P&p|s~+S-OO$jz&_wgK%i(`cDPfZ*xD2eeAgNN} zPLjY*2gtIEfFMp{p!nrmA0aC%Ej>(Bi$6tf*~wIdd_kp} zNor*~#<)=K+*z5&N*@3K019+cPE!CiVE!86l>E6~bA2Wq0009VNkl6q<}uz8+u!#0?yxAQklw!YyV=027U} z-ghkIh5{yz&=ZAM7=ounZV*BoF^w*C(Jj0o5drXwBgTGxY3YJF`cVa&c7t0L7~(Kb zG4A?imw;4PVP;skoP^Ax(7l;uVlL0UjAo&|m81X)+%2l>auT@}a(yOMOeD-XF0U>P zNaG~<1&N31QW6O)LM`07sN)N%1lRQ&!|)sn`w-V@T@FhxBdl}jh~@msqD$U+Rm(u8u^X1+ zY){fQ2da6DXj&p%6@fLh+3U@#9neQx5Ka`4MvZ&X6TRaL#9WPF^~ocewjlLbp&ePQ zH)J0gZ)+Rqp+zO75JJi^!c-;XRr`3nVCja}A1^7cudP!6v)}mi30-Y0b<5$zKj zariPoeWpNeLxb231s3o2RLWi2L=od?-^sm=-QkCZX~$-F6i7-R@=)aG@5bILKDB;Q zc?{FjlqnnnQcJfnowK+~DJ}FOxjkA$g{u;5k`j^oMKzJM?9lp`DUF!Yf*+C4i8`SL zcl7O7mq>T(Ey-^5a<2t<(d?6)SCT-YFR*LB8~;Uh(NT3SlqRK5^e|QM9Tckg;k#E! zo53=&G#@a0_*zHmmS4`d-=m=?--_h$<@IsUpQZ2F^Bc(_RL3q6S{%o%|A5HI$jHdZ b_%-+gyDNKaN^c$2!dgY4y>gr>@#nsfJv9@+o^01tFhPE!Cg`l82Baor959QywKIm!nT zYybcP^hrcPRCt{2n2V09AP_)XL=+#ZGa%^y|L7gm-L_U}rS2v-;iSnnZtHQFhuF&{ zkw_#GiA3V>sj~d?>*SDKew`#qlK)2{c(rr1+WlyBhh|W0&sgQT5F+0kE;HbJ1!-HnkNo0)*b0+h!b6$f^&m^B(8kosO9T(7DCRNWK9y`?sUeW>C?^+i(`$8HC; z%oZ{4D8pNQP4&@105qlXr8y=doip#X&EDtOMh_js;cM?BBe$ZBT=a7yL6R2&?7W> zL5|(0&>b|eH=@BC6~PnQZxP<%9+4f-FfJLK6Gu1C7~u&ds&4mDo>2ICfpo4h_p(w& zjS??%cfBG?fW|csNnQVE^ZxGuLbI?IhQ2 zkirmyan+a07*qoM6N<$ Eg3~^*B>(^b literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_29.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_29.png new file mode 100644 index 0000000000000000000000000000000000000000..26f43604a39d43a6e0e41c0dbf2f672dffee46e0 GIT binary patch literal 953 zcmV;q14jIbP){p!nrmA0aC%Ej>(Bi$6tf*~wIdd_kp} zNor*~#<)=K+*z5&N*@3K019+cPE!CiVE!86l>E6~bA2Wq0009VNkl6q<}uz8+u!#0?yxAQklw!YyV=027U} z-ghkIh5{yz&=ZAM7=ounZV*BoF^w*C(Jj0o5drXwBgTGxY3YJF`cVa&c7t0L7~(Kb zG4A?imw;4PVP;skoP^Ax(7l;uVlL0UjAo&|m81X)+%2l>auT@}a(yOMOeD-XF0U>P zNaG~<1&N31QW6O)LM`07sN)N%1lRQ&!|)sn`w-V@T@FhxBdl}jh~@msqD$U+Rm(u8u^X1+ zY){fQ2da6DXj&p%6@fLh+3U@#9neQx5Ka`4MvZ&X6TRaL#9WPF^~ocewjlLbp&ePQ zH)J0gZ)+Rqp+zO75JJi^!c-;XRr`3nVCja}A1^7cudP!6v)}mi30-Y0b<5$zKj zariPoeWpNeLxb231s3o2RLWi2L=od?-^sm=-QkCZX~$-F6i7-R@=)aG@5bILKDB;Q zc?{FjlqnnnQcJfnowK+~DJ}FOxjkA$g{u;5k`j^oMKzJM?9lp`DUF!Yf*+C4i8`SL zcl7O7mq>T(Ey-^5a<2t<(d?6)SCT-YFR*LB8~;Uh(NT3SlqRK5^e|QM9Tckg;k#E! zo53=&G#@a0_*zHmmS4`d-=m=?--_h$<@IsUpQZ2F^Bc(_RL3q6S{%o%|A5HI$jHdZ b_%-+gG$ST49v~_oAuAvvD<2{&AtNo9n7^Q)&7z{reSM&!qRby5EB*DUJ3LB>img>u zW3jA$m6C34Zi{|@pyJz^&dHC0e`9NERyhhP4FCWD4RlgYQvfdf6LOj1zDxc!wn5(?U9sBa1gV^CG-7MBVE9Ge&lAL7#GQ0-etRHLb%N}`25jMcuowi_Zl zGpVKgwOpZnmq`ITt4rZ*H7;QjQt=&sXTuNJS&crlS-r90m*|$;$~Z%7{_Lj^$kl3e zYb$T=_mzL3Yva_7`E#G{0_j#8T7-=~g|O$x_zwe_VXc~)$LFI{L6s!q1DQb9wSF!( zj{SMJ1KXn&JV)WmW`z5mTLY2di$6cbd&+7(60B4|n!ilCp3_72=f_`h9dfz!T{q7P zMe!l}K>dg-ahQBREVrt_b%16&#daTt76e}Wy_UVA^nv)9vg`El z;2~4all5L4I?d#*!mq6gfy}Trb7gD7YIpFxRl)uVZV%Xm5N@NtWI5gYKqkpbQVJ1H z)dG8cRbh_z6iXl~^o_e-!ZnvwYlrlgzSli>U4A*2Qzok(`(cucMuqdFGE}Z%=@8#@ z!5tmQ43MF6i#3p6-|ve%1XQ2xol%8)_;qeb-4>GGtut9wm_!WHwc_fIzMRP_=L;b& z`dfGOS%zn++(2ogzZ-!(pH+S-W^a1fEoero+^^QXn5(a2m_W2u$G&~W>)PZ;!Q|0a znO;=6-vvJ*_P@sb82wCnv{lBeqpi}2+&y=4a&mHV!#|cHiBOFLqqG13002ovPDHLk FV1gcm*5LpE literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_30.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_30.png new file mode 100644 index 0000000000000000000000000000000000000000..43277558588c4642a66e816692e695d2890a722c GIT binary patch literal 930 zcmV;T16}-yP)yDNKaN^c$2!dgY4y>gr>@#nsfJv9@+o^01tFhPE!Cg`l82Baor959QywKIm!nT zYybcP^hrcPRCt{2n2V09AP_)XL=+#ZGa%^y|L7gm-L_U}rS2v-;iSnnZtHQFhuF&{ zkw_#GiA3V>sj~d?>*SDKew`#qlK)2{c(rr1+WlyBhh|W0&sgQT5F+0kE;HbJ1!-HnkNo0)*b0+h!b6$f^&m^B(8kosO9T(7DCRNWK9y`?sUeW>C?^+i(`$8HC; z%oZ{4D8pNQP4&@105qlXr8y=doip#X&EDtOMh_js;cM?BBe$ZBT=a7yL6R2&?7W> zL5|(0&>b|eH=@BC6~PnQZxP<%9+4f-FfJLK6Gu1C7~u&ds&4mDo>2ICfpo4h_p(w& zjS??%cfBG?fW|csNnQVE^ZxGuLbI?IhQ2 zkirmyan+a07*qoM6N<$ Eg3~^*B>(^b literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_31.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_31.png new file mode 100644 index 0000000000000000000000000000000000000000..7a19b27adc8624d0fb5abc395386ad7d9e33ef61 GIT binary patch literal 1104 zcmV-W1h4yvP)Y*`S9&Hw*s7h_UQK+)>Wx%AR@GP4V_Y>MK-g$oxh zTo_T)su6;)_AG*eHUdV7a~SGsVBpRHu%aw)aA*#v^e!b}9!??Lq;;F)Bq0ayf(9qiEMW8{ zkg=nBj53hHDr+46;ID#|wEg~W=_kz&eI)@GZ0d)?TOece62|52COISTf3RI2a>$`? z2gj6z>Sf~B4e>?j{P$D(mLPy@^+NX&5^Vgr-G11dBdKo*4VdnaL-o@mLVgf$|1603kvMu*;gI_B38dtBcF zY694{`gv)+l_X(sTwfXu@Nkc~SKa>__&5wg?&hzB4QwfB7OFuA_i93NcpeJyLCEBo zFgQ98OJHb}>?b4u2XmlXcxh>-PgT+ex4fKioKO=6cm}zhlJKLui-LJ~>-ck0g=@?5 zDM!wU--ZUTuX;BlvFZ7D-%Qbl;7L_?~*cFq(cBniLINU-wJqU_4t01}#O7K_Qd zeplv>B>Iy?v)D;_W-i;@-~i$DsW-T&lpUEnA^AWD(eoJ3+*+&!=}?nTxL6k_GPeP? zk3^eDgT*tqWU$r=LkmY>A=CR>tiN4{OE_*A$vO~i#shh{R-%S+5E-$81#zoaT?JC5 zS;}<|ux|Cz9B}*5Jl~Mk#P_5gvZZW#nkh(tZWYTxij1Zb(gA@?0v!FVj!IdbNbkvB1+*w5*G| z#06Dg06EScK5LCc!RSR6r9Fo^c>hw*^QI25RQe~6?Ikx1nBlVb6MyaGdAVGAqjrPm zPBvntDofp$DFk~3ShtTOnh41Tllw^e4I4__N9;1p!j`GIf<$&LqBGm(*|(KMUP1WA zbuNbJW)_*5oii5RZROZJfno8tXwedOOnG6=X|k)Ik(x=zayuDghU|P-hOCnrmW7OI z_rF~$0&G=`H~-vympH2#zmzYQFXVnM!nWS@3Da~?LH_?Xu8ZN@6Yf7ct@Dxvii6e_ zv<;$3! literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_32.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_32.png new file mode 100644 index 0000000000000000000000000000000000000000..954fb7db4e618ac2434caa0cbaf16d661e920c66 GIT binary patch literal 1062 zcmV+>1ljwEP)=NzG)NL()oCe@uc$;W;Gy!a-2hY&(5RQc3o?N(Mp1^EWp>wG$e6O809t z@~We0r99DTEfdy3#A2Uq)o{k7WQ;deOE~K(o{WVb702b5V0^fN?3&g`aiF;B#xsEJ zO{ay>o#`!jo~9nY{{rd;7gRkizl81;4maPScvg4{+ld4^i>JA0zQZv%QfRRQPs1-C zrezY$Bp_pzR|SA_X5uv<8O?;BRkW)Ll`$@dD!{cz#XJ1akJNaWNM!Y)=SMHJ`W`vl zu#$sm(YM}V9C2$Fuf!uoJ)4y#k)t1Fq7s_#oET2oFIl{uG{;w`MLqLT#_hymXSKut zJF&Fe`9~sSqxECR3bN9$Z(UlcQDPx%MUps^S?!%t*k%V#9AFfq@-D7Em(;>KIFeKn zbT~&ZGN1v~QZwS6!CeJK9G~M2^GTd<24Pt%GGXa1A48E2wySeVy3_EscaUA%{l-x+ zIq+uVR6YkDg&4jn8J36Xo;#4S1#E{DF>B%BuJ>x5?xEHzZiaed+QNd`C!c81-D~ve zZmEFHkkFD*I9dr|(l{H!l`&y(f5;C~B1;u)%goYJ%O86~{&*CnG(jac^Rh3LLNQ_< zgrN+P#E>*U+!E-BBppffgK_1%lw9-TbNy;0ZyE#o=S!w6I6=TVm zh&1Yh&cu{(tKUkv3zQD;A}ENe%PJm-MbKPW&gGm^r*W88&ZP=dZO@W>QejFfv5k9k zyeGA1GTUty2;VGN3(b7oEXZnm_zzatQG{9%+a3uW#SI(?p~lThqBn372(75yR1!VS z7g|wenre?C?ZFa_&LS<_63yo#ZS)ck0#$*hjUtaUC7zp#Je(DI0xa^FnZ*6T{P&R* g`S*nzH~u~R51;gC3dE3>%m4rY07*qoM6N<$f-O1X#Q*>R literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_33.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_33.png new file mode 100644 index 0000000000000000000000000000000000000000..7a19b27adc8624d0fb5abc395386ad7d9e33ef61 GIT binary patch literal 1104 zcmV-W1h4yvP)Y*`S9&Hw*s7h_UQK+)>Wx%AR@GP4V_Y>MK-g$oxh zTo_T)su6;)_AG*eHUdV7a~SGsVBpRHu%aw)aA*#v^e!b}9!??Lq;;F)Bq0ayf(9qiEMW8{ zkg=nBj53hHDr+46;ID#|wEg~W=_kz&eI)@GZ0d)?TOece62|52COISTf3RI2a>$`? z2gj6z>Sf~B4e>?j{P$D(mLPy@^+NX&5^Vgr-G11dBdKo*4VdnaL-o@mLVgf$|1603kvMu*;gI_B38dtBcF zY694{`gv)+l_X(sTwfXu@Nkc~SKa>__&5wg?&hzB4QwfB7OFuA_i93NcpeJyLCEBo zFgQ98OJHb}>?b4u2XmlXcxh>-PgT+ex4fKioKO=6cm}zhlJKLui-LJ~>-ck0g=@?5 zDM!wU--ZUTuX;BlvFZ7D-%Qbl;7L_?~*cFq(cBniLINU-wJqU_4t01}#O7K_Qd zeplv>B>Iy?v)D;_W-i;@-~i$DsW-T&lpUEnA^AWD(eoJ3+*+&!=}?nTxL6k_GPeP? zk3^eDgT*tqWU$r=LkmY>A=CR>tiN4{OE_*A$vO~i#shh{R-%S+5E-$81#zoaT?JC5 zS;}<|ux|Cz9B}*5Jl~Mk#P_5gvZZW#nkh(tZWYTxij1Zb(gA@?0v!FVj!IdbNbkvB1+*w5*G| z#06Dg06EScK5LCc!RSR6r9Fo^c>hw*^QI25RQe~6?Ikx1nBlVb6MyaGdAVGAqjrPm zPBvntDofp$DFk~3ShtTOnh41Tllw^e4I4__N9;1p!j`GIf<$&LqBGm(*|(KMUP1WA zbuNbJW)_*5oii5RZROZJfno8tXwedOOnG6=X|k)Ik(x=zayuDghU|P-hOCnrmW7OI z_rF~$0&G=`H~-vympH2#zmzYQFXVnM!nWS@3Da~?LH_?Xu8ZN@6Yf7ct@Dxvii6e_ zv<;$3! literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_34.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_34.png new file mode 100644 index 0000000000000000000000000000000000000000..954fb7db4e618ac2434caa0cbaf16d661e920c66 GIT binary patch literal 1062 zcmV+>1ljwEP)=NzG)NL()oCe@uc$;W;Gy!a-2hY&(5RQc3o?N(Mp1^EWp>wG$e6O809t z@~We0r99DTEfdy3#A2Uq)o{k7WQ;deOE~K(o{WVb702b5V0^fN?3&g`aiF;B#xsEJ zO{ay>o#`!jo~9nY{{rd;7gRkizl81;4maPScvg4{+ld4^i>JA0zQZv%QfRRQPs1-C zrezY$Bp_pzR|SA_X5uv<8O?;BRkW)Ll`$@dD!{cz#XJ1akJNaWNM!Y)=SMHJ`W`vl zu#$sm(YM}V9C2$Fuf!uoJ)4y#k)t1Fq7s_#oET2oFIl{uG{;w`MLqLT#_hymXSKut zJF&Fe`9~sSqxECR3bN9$Z(UlcQDPx%MUps^S?!%t*k%V#9AFfq@-D7Em(;>KIFeKn zbT~&ZGN1v~QZwS6!CeJK9G~M2^GTd<24Pt%GGXa1A48E2wySeVy3_EscaUA%{l-x+ zIq+uVR6YkDg&4jn8J36Xo;#4S1#E{DF>B%BuJ>x5?xEHzZiaed+QNd`C!c81-D~ve zZmEFHkkFD*I9dr|(l{H!l`&y(f5;C~B1;u)%goYJ%O86~{&*CnG(jac^Rh3LLNQ_< zgrN+P#E>*U+!E-BBppffgK_1%lw9-TbNy;0ZyE#o=S!w6I6=TVm zh&1Yh&cu{(tKUkv3zQD;A}ENe%PJm-MbKPW&gGm^r*W88&ZP=dZO@W>QejFfv5k9k zyeGA1GTUty2;VGN3(b7oEXZnm_zzatQG{9%+a3uW#SI(?p~lThqBn372(75yR1!VS z7g|wenre?C?ZFa_&LS<_63yo#ZS)ck0#$*hjUtaUC7zp#Je(DI0xa^FnZ*6T{P&R* g`S*nzH~u~R51;gC3dE3>%m4rY07*qoM6N<$f-O1X#Q*>R literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_35.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_35.png new file mode 100644 index 0000000000000000000000000000000000000000..fb65d0bd7129019d67ebb674ba972a6e7c916e28 GIT binary patch literal 911 zcmV;A191F_P)4*Vx9#$y;1wt*)_eaCd=% zhnSh2EzVpD0000AbW%=J05KG6>adAR(KN}sK)e6|0{BTpK~#90?O0j1q$&_pAb}^7 z=>GTmKuhFafs!ih{%GQ-hJywfnHdbj(9zM+(b3WIk7C5Y2_YOPdx!yHE=~}N9^k-4 z2x(WXl+v@6j;A>d0!J}VCuSoAADeQFE{vFBqjAx+OpW6(YP!G*fzL4vv+)Z7k>i+B zSdLg2ki8x_{*;FcIZYWB;$AxXvXjOdUk(I+#6g8r8Is8e7_ehl^!8J&jt4#n23>Q0 zLOF$mu+b!D_fI_w2s`DmiZF+D-NMnbp2Y>C3nY^aaV}PF^`WGol_WS*SwXOP3VQO4 zy1IdQAtR~4>{fKVRxMRSqU5rbLzUyOY>#B1eF|+|R&cSlQdkzxbXzaPFb1(yl4u{g zb2W_F`$}f8+tFG{GI_n^{w$QM%r79qSZj=~B{8lXSLvS>WsmWmx2owQm=L>KN-G<3 z##Tw~VPZ2?OBxGZ#s{{Bf+nv7Zrz z{DE)~Qs(mR<<-AyH2%gx;^%31!+#f0czt1f|AcrvzjbyUf8czA(lC?ITYJZ$X#DUU z#;|w8<8R&;7`MfN98n>3;r$v2Cywr6gG^^%> zUVDVjcAMSn;HzG~$45dbX?777>4hT_XEdzgWm`B!owWCyY;qr#3x=hwr_06Q`h$)qz5Aja5-Vm lr9R+ktvWh7IyyRH{12b3W(N$7;OhVY002ovPDHLkV1nc;n)v_# literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_36.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_36.png new file mode 100644 index 0000000000000000000000000000000000000000..b845de2524b78c83fdb8d5c70c3045ab8de332a9 GIT binary patch literal 448 zcmV;x0YCnUP)#_m7X^>+;7#LwSsyPI|S{Q&aAMfV9HS-)Lye*x{Mb z%gz7*00?waPE!EclOj=-*;ez^l=T1r0WnELK~#90?bqE7gCGnAU_n7C6ZQRHcHrO8 zfQhBs*uuHm)t6JOm{rw}rx8+XDH3yxaiAv7oCcl0fO7;Bty-GoL4RGZ!#h5Vp&7%b6XWF^+iOvdt4$q(7AUp%%CR0000G$ST49v~_oAuAvvD<2{&AtNo9n7^Q)&7z{reSM&!qRby5EB*DUJ3LB>img>u zW3jA$m6C34Zi{|@pyJz^&dHC0e`9NERyhhP4FCWD4RlgYQvfdf6LOj1zDxc!wn5(?U9sBa1gV^CG-7MBVE9Ge&lAL7#GQ0-etRHLb%N}`25jMcuowi_Zl zGpVKgwOpZnmq`ITt4rZ*H7;QjQt=&sXTuNJS&crlS-r90m*|$;$~Z%7{_Lj^$kl3e zYb$T=_mzL3Yva_7`E#G{0_j#8T7-=~g|O$x_zwe_VXc~)$LFI{L6s!q1DQb9wSF!( zj{SMJ1KXn&JV)WmW`z5mTLY2di$6cbd&+7(60B4|n!ilCp3_72=f_`h9dfz!T{q7P zMe!l}K>dg-ahQBREVrt_b%16&#daTt76e}Wy_UVA^nv)9vg`El z;2~4all5L4I?d#*!mq6gfy}Trb7gD7YIpFxRl)uVZV%Xm5N@NtWI5gYKqkpbQVJ1H z)dG8cRbh_z6iXl~^o_e-!ZnvwYlrlgzSli>U4A*2Qzok(`(cucMuqdFGE}Z%=@8#@ z!5tmQ43MF6i#3p6-|ve%1XQ2xol%8)_;qeb-4>GGtut9wm_!WHwc_fIzMRP_=L;b& z`dfGOS%zn++(2ogzZ-!(pH+S-W^a1fEoero+^^QXn5(a2m_W2u$G&~W>)PZ;!Q|0a znO;=6-vvJ*_P@sb82wCnv{lBeqpi}2+&y=4a&mHV!#|cHiBOFLqqG13002ovPDHLk FV1gcm*5LpE literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_38.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_38.png new file mode 100644 index 0000000000000000000000000000000000000000..38e4fec6288b3e6191d6d409e893934b66a3aae2 GIT binary patch literal 983 zcmV;|11S87P)G$ST49v~_oAuAvvD<2{&AtNo9n7^Q)&7z{reSM&!qRby5EB*DUJ3LB>img>u zW3jA$m6C34Zi{|@pyJz^&dHC0e`9NERyhhP4FCWD4RlgYQvfdf6LOj1zDxc!wn5(?U9sBa1gV^CG-7MBVE9Ge&lAL7#GQ0-etRHLb%N}`25jMcuowi_Zl zGpVKgwOpZnmq`ITt4rZ*H7;QjQt=&sXTuNJS&crlS-r90m*|$;$~Z%7{_Lj^$kl3e zYb$T=_mzL3Yva_7`E#G{0_j#8T7-=~g|O$x_zwe_VXc~)$LFI{L6s!q1DQb9wSF!( zj{SMJ1KXn&JV)WmW`z5mTLY2di$6cbd&+7(60B4|n!ilCp3_72=f_`h9dfz!T{q7P zMe!l}K>dg-ahQBREVrt_b%16&#daTt76e}Wy_UVA^nv)9vg`El z;2~4all5L4I?d#*!mq6gfy}Trb7gD7YIpFxRl)uVZV%Xm5N@NtWI5gYKqkpbQVJ1H z)dG8cRbh_z6iXl~^o_e-!ZnvwYlrlgzSli>U4A*2Qzok(`(cucMuqdFGE}Z%=@8#@ z!5tmQ43MF6i#3p6-|ve%1XQ2xol%8)_;qeb-4>GGtut9wm_!WHwc_fIzMRP_=L;b& z`dfGOS%zn++(2ogzZ-!(pH+S-W^a1fEoero+^^QXn5(a2m_W2u$G&~W>)PZ;!Q|0a znO;=6-vvJ*_P@sb82wCnv{lBeqpi}2+&y=4a&mHV!#|cHiBOFLqqG13002ovPDHLk FV1gcm*5LpE literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_39.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_39.png new file mode 100644 index 0000000000000000000000000000000000000000..38e4fec6288b3e6191d6d409e893934b66a3aae2 GIT binary patch literal 983 zcmV;|11S87P)G$ST49v~_oAuAvvD<2{&AtNo9n7^Q)&7z{reSM&!qRby5EB*DUJ3LB>img>u zW3jA$m6C34Zi{|@pyJz^&dHC0e`9NERyhhP4FCWD4RlgYQvfdf6LOj1zDxc!wn5(?U9sBa1gV^CG-7MBVE9Ge&lAL7#GQ0-etRHLb%N}`25jMcuowi_Zl zGpVKgwOpZnmq`ITt4rZ*H7;QjQt=&sXTuNJS&crlS-r90m*|$;$~Z%7{_Lj^$kl3e zYb$T=_mzL3Yva_7`E#G{0_j#8T7-=~g|O$x_zwe_VXc~)$LFI{L6s!q1DQb9wSF!( zj{SMJ1KXn&JV)WmW`z5mTLY2di$6cbd&+7(60B4|n!ilCp3_72=f_`h9dfz!T{q7P zMe!l}K>dg-ahQBREVrt_b%16&#daTt76e}Wy_UVA^nv)9vg`El z;2~4all5L4I?d#*!mq6gfy}Trb7gD7YIpFxRl)uVZV%Xm5N@NtWI5gYKqkpbQVJ1H z)dG8cRbh_z6iXl~^o_e-!ZnvwYlrlgzSli>U4A*2Qzok(`(cucMuqdFGE}Z%=@8#@ z!5tmQ43MF6i#3p6-|ve%1XQ2xol%8)_;qeb-4>GGtut9wm_!WHwc_fIzMRP_=L;b& z`dfGOS%zn++(2ogzZ-!(pH+S-W^a1fEoero+^^QXn5(a2m_W2u$G&~W>)PZ;!Q|0a znO;=6-vvJ*_P@sb82wCnv{lBeqpi}2+&y=4a&mHV!#|cHiBOFLqqG13002ovPDHLk FV1gcm*5LpE literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_4.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_4.png new file mode 100644 index 0000000000000000000000000000000000000000..fb65d0bd7129019d67ebb674ba972a6e7c916e28 GIT binary patch literal 911 zcmV;A191F_P)4*Vx9#$y;1wt*)_eaCd=% zhnSh2EzVpD0000AbW%=J05KG6>adAR(KN}sK)e6|0{BTpK~#90?O0j1q$&_pAb}^7 z=>GTmKuhFafs!ih{%GQ-hJywfnHdbj(9zM+(b3WIk7C5Y2_YOPdx!yHE=~}N9^k-4 z2x(WXl+v@6j;A>d0!J}VCuSoAADeQFE{vFBqjAx+OpW6(YP!G*fzL4vv+)Z7k>i+B zSdLg2ki8x_{*;FcIZYWB;$AxXvXjOdUk(I+#6g8r8Is8e7_ehl^!8J&jt4#n23>Q0 zLOF$mu+b!D_fI_w2s`DmiZF+D-NMnbp2Y>C3nY^aaV}PF^`WGol_WS*SwXOP3VQO4 zy1IdQAtR~4>{fKVRxMRSqU5rbLzUyOY>#B1eF|+|R&cSlQdkzxbXzaPFb1(yl4u{g zb2W_F`$}f8+tFG{GI_n^{w$QM%r79qSZj=~B{8lXSLvS>WsmWmx2owQm=L>KN-G<3 z##Tw~VPZ2?OBxGZ#s{{Bf+nv7Zrz z{DE)~Qs(mR<<-AyH2%gx;^%31!+#f0czt1f|AcrvzjbyUf8czA(lC?ITYJZ$X#DUU z#;|w8<8R&;7`MfN98n>3;r$v2Cywr6gG^^%> zUVDVjcAMSn;HzG~$45dbX?777>4hT_XEdzgWm`B!owWCyY;qr#3x=hwr_06Q`h$)qz5Aja5-Vm lr9R+ktvWh7IyyRH{12b3W(N$7;OhVY002ovPDHLkV1nc;n)v_# literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_40.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_40.png new file mode 100644 index 0000000000000000000000000000000000000000..8c2c1e21dc0f2874953162b639c5a229c01cd581 GIT binary patch literal 837 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 fiYu_z literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_43.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_43.png new file mode 100644 index 0000000000000000000000000000000000000000..afd219db9f2c257492b774ba75c1f9a4f16db2fa GIT binary patch literal 808 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 fiYu_z literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_47.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_47.png new file mode 100644 index 0000000000000000000000000000000000000000..2d04cff7be46fecd7c228a68625cd65ccecf5e90 GIT binary patch literal 1231 zcmV;=1Tg!FP)E;TkdA0a9rA}bysDj_2-EG;n}ASxmxEOKs5H#}NMM>^`+SeuekQ(c`yLNdy` zQ&wM~_~lz4AuIj$sZUmtLP&I5SU}dsQ;UR7N>YdL=%Ku?QL3Y5%f^l0*_b9JrSAX$ z026dlPE!E=?EPrfMvo6AuKxc1{`zO`VpDq9$N&HY1xZ9fRCt{2S=*AMIt+|#z}(q6 zpl}Uj{{JVBd?6tT*)lu!zHItoYEo0W3mG3drV$kYN~m;fNUGSW1d!Kuo-F1c?108A=(5AF%|5K?GHSP?eqn z5eU+Zv7afB%1qT_maK|;L?;uWk|RWwc-#n;usA_iOf9*iB*(MmaS?H7`o?( z85uGcrB@PxebW?o;m4K@KnPhPtijclHL-Q1hLs#M?{%9!pc%f#B$}&FcqDfTq=#)tHTyl5hATnl#cpNgzi{`<#mqyZQ+&$eN^E z#muP1B5CF?Wn36)0}mtv-BEd6@32&5PbcMF*X6M4H;iAPSXo*P2-c7nha| zN6GCII6|l`(aC#xQ=ImJ1n<<^0pQ)0`N$A1UTfqn@_V-#z*ek)9ys9uiOlMvuSzw8 z+of-$JMNnV-ovE-0VtkISk)mlEY?l!G}ZQ)rdBoSzO*a#01xQ&LwCGf`_s$#5M z7Y8zTF9U39ggS3q{{Udqwhq+!E^?deD)^CFQm@nt$<%4+4}M6xby?I|M{?Mc39}2~ z3f$h4)6wkW{Bk~@zq$EtR@rr{lXf5K#?rs&Zw^=DxD@6-wyTr1;&a$Xo5Q63Hkm^g z$h?{@YxaCBQ?-Z8zFgw*t#I4Zia z0AvdPIvqe9r6GGj_)8)+j3CrUp$s`^bSY+I;pmYo!cmsQVvb8d8KQ9M9dRVAm*-tU z*K`~zLlmwY9BmCk{;kT+>}XSEh{6J)qve`FRdy@K34n7h1-sBn)zNcygq137wtnYG z&?0@L&vTE|r=A zL+2ZG)eJY?BXGWa)Xngrdn6uS1f+1KM(gV>+$v7xuF<|h0)6JRB=!)ZZ>iLqGUo5i ts|M|Hd`m@vc$Z2>;ysKHKKS5o;eQ7;yykM&kpTbz002ovPDHLkV1lMONGSjS literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_5.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_5.png new file mode 100644 index 0000000000000000000000000000000000000000..fb65d0bd7129019d67ebb674ba972a6e7c916e28 GIT binary patch literal 911 zcmV;A191F_P)4*Vx9#$y;1wt*)_eaCd=% zhnSh2EzVpD0000AbW%=J05KG6>adAR(KN}sK)e6|0{BTpK~#90?O0j1q$&_pAb}^7 z=>GTmKuhFafs!ih{%GQ-hJywfnHdbj(9zM+(b3WIk7C5Y2_YOPdx!yHE=~}N9^k-4 z2x(WXl+v@6j;A>d0!J}VCuSoAADeQFE{vFBqjAx+OpW6(YP!G*fzL4vv+)Z7k>i+B zSdLg2ki8x_{*;FcIZYWB;$AxXvXjOdUk(I+#6g8r8Is8e7_ehl^!8J&jt4#n23>Q0 zLOF$mu+b!D_fI_w2s`DmiZF+D-NMnbp2Y>C3nY^aaV}PF^`WGol_WS*SwXOP3VQO4 zy1IdQAtR~4>{fKVRxMRSqU5rbLzUyOY>#B1eF|+|R&cSlQdkzxbXzaPFb1(yl4u{g zb2W_F`$}f8+tFG{GI_n^{w$QM%r79qSZj=~B{8lXSLvS>WsmWmx2owQm=L>KN-G<3 z##Tw~VPZ2?OBxGZ#s{{Bf+nv7Zrz z{DE)~Qs(mR<<-AyH2%gx;^%31!+#f0czt1f|AcrvzjbyUf8czA(lC?ITYJZ$X#DUU z#;|w8<8R&;7`MfN98n>3;r$v2Cywr6gG^^%> zUVDVjcAMSn;HzG~$45dbX?777>4hT_XEdzgWm`B!owWCyY;qr#3x=hwr_06Q`h$)qz5Aja5-Vm lr9R+ktvWh7IyyRH{12b3W(N$7;OhVY002ovPDHLkV1nc;n)v_# literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_6.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_6.png new file mode 100644 index 0000000000000000000000000000000000000000..fb65d0bd7129019d67ebb674ba972a6e7c916e28 GIT binary patch literal 911 zcmV;A191F_P)4*Vx9#$y;1wt*)_eaCd=% zhnSh2EzVpD0000AbW%=J05KG6>adAR(KN}sK)e6|0{BTpK~#90?O0j1q$&_pAb}^7 z=>GTmKuhFafs!ih{%GQ-hJywfnHdbj(9zM+(b3WIk7C5Y2_YOPdx!yHE=~}N9^k-4 z2x(WXl+v@6j;A>d0!J}VCuSoAADeQFE{vFBqjAx+OpW6(YP!G*fzL4vv+)Z7k>i+B zSdLg2ki8x_{*;FcIZYWB;$AxXvXjOdUk(I+#6g8r8Is8e7_ehl^!8J&jt4#n23>Q0 zLOF$mu+b!D_fI_w2s`DmiZF+D-NMnbp2Y>C3nY^aaV}PF^`WGol_WS*SwXOP3VQO4 zy1IdQAtR~4>{fKVRxMRSqU5rbLzUyOY>#B1eF|+|R&cSlQdkzxbXzaPFb1(yl4u{g zb2W_F`$}f8+tFG{GI_n^{w$QM%r79qSZj=~B{8lXSLvS>WsmWmx2owQm=L>KN-G<3 z##Tw~VPZ2?OBxGZ#s{{Bf+nv7Zrz z{DE)~Qs(mR<<-AyH2%gx;^%31!+#f0czt1f|AcrvzjbyUf8czA(lC?ITYJZ$X#DUU z#;|w8<8R&;7`MfN98n>3;r$v2Cywr6gG^^%> zUVDVjcAMSn;HzG~$45dbX?777>4hT_XEdzgWm`B!owWCyY;qr#3x=hwr_06Q`h$)qz5Aja5-Vm lr9R+ktvWh7IyyRH{12b3W(N$7;OhVY002ovPDHLkV1nc;n)v_# literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_7.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_7.png new file mode 100644 index 0000000000000000000000000000000000000000..fb65d0bd7129019d67ebb674ba972a6e7c916e28 GIT binary patch literal 911 zcmV;A191F_P)4*Vx9#$y;1wt*)_eaCd=% zhnSh2EzVpD0000AbW%=J05KG6>adAR(KN}sK)e6|0{BTpK~#90?O0j1q$&_pAb}^7 z=>GTmKuhFafs!ih{%GQ-hJywfnHdbj(9zM+(b3WIk7C5Y2_YOPdx!yHE=~}N9^k-4 z2x(WXl+v@6j;A>d0!J}VCuSoAADeQFE{vFBqjAx+OpW6(YP!G*fzL4vv+)Z7k>i+B zSdLg2ki8x_{*;FcIZYWB;$AxXvXjOdUk(I+#6g8r8Is8e7_ehl^!8J&jt4#n23>Q0 zLOF$mu+b!D_fI_w2s`DmiZF+D-NMnbp2Y>C3nY^aaV}PF^`WGol_WS*SwXOP3VQO4 zy1IdQAtR~4>{fKVRxMRSqU5rbLzUyOY>#B1eF|+|R&cSlQdkzxbXzaPFb1(yl4u{g zb2W_F`$}f8+tFG{GI_n^{w$QM%r79qSZj=~B{8lXSLvS>WsmWmx2owQm=L>KN-G<3 z##Tw~VPZ2?OBxGZ#s{{Bf+nv7Zrz z{DE)~Qs(mR<<-AyH2%gx;^%31!+#f0czt1f|AcrvzjbyUf8czA(lC?ITYJZ$X#DUU z#;|w8<8R&;7`MfN98n>3;r$v2Cywr6gG^^%> zUVDVjcAMSn;HzG~$45dbX?777>4hT_XEdzgWm`B!owWCyY;qr#3x=hwr_06Q`h$)qz5Aja5-Vm lr9R+ktvWh7IyyRH{12b3W(N$7;OhVY002ovPDHLkV1nc;n)v_# literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_8.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_8.png new file mode 100644 index 0000000000000000000000000000000000000000..fb65d0bd7129019d67ebb674ba972a6e7c916e28 GIT binary patch literal 911 zcmV;A191F_P)4*Vx9#$y;1wt*)_eaCd=% zhnSh2EzVpD0000AbW%=J05KG6>adAR(KN}sK)e6|0{BTpK~#90?O0j1q$&_pAb}^7 z=>GTmKuhFafs!ih{%GQ-hJywfnHdbj(9zM+(b3WIk7C5Y2_YOPdx!yHE=~}N9^k-4 z2x(WXl+v@6j;A>d0!J}VCuSoAADeQFE{vFBqjAx+OpW6(YP!G*fzL4vv+)Z7k>i+B zSdLg2ki8x_{*;FcIZYWB;$AxXvXjOdUk(I+#6g8r8Is8e7_ehl^!8J&jt4#n23>Q0 zLOF$mu+b!D_fI_w2s`DmiZF+D-NMnbp2Y>C3nY^aaV}PF^`WGol_WS*SwXOP3VQO4 zy1IdQAtR~4>{fKVRxMRSqU5rbLzUyOY>#B1eF|+|R&cSlQdkzxbXzaPFb1(yl4u{g zb2W_F`$}f8+tFG{GI_n^{w$QM%r79qSZj=~B{8lXSLvS>WsmWmx2owQm=L>KN-G<3 z##Tw~VPZ2?OBxGZ#s{{Bf+nv7Zrz z{DE)~Qs(mR<<-AyH2%gx;^%31!+#f0czt1f|AcrvzjbyUf8czA(lC?ITYJZ$X#DUU z#;|w8<8R&;7`MfN98n>3;r$v2Cywr6gG^^%> zUVDVjcAMSn;HzG~$45dbX?777>4hT_XEdzgWm`B!owWCyY;qr#3x=hwr_06Q`h$)qz5Aja5-Vm lr9R+ktvWh7IyyRH{12b3W(N$7;OhVY002ovPDHLkV1nc;n)v_# literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_9.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_9.png new file mode 100644 index 0000000000000000000000000000000000000000..8c2c1e21dc0f2874953162b639c5a229c01cd581 GIT binary patch literal 837 zcmV-L1G@Z)P)=cR`5+T8Xndx)5FW4RBQnwZ;rfFbcU|?WiU|`@s0iPMh3S&l5Ck8TObplh;g92t2 zX0hH|>x>9AtvL`_VHSB}(Mqwl#&D(dGev+C3b%9(a2WXpub)^5;*_K28~|Y16r(K0 z1LHS22+nW>78Vu}!cJ?WbqKqAG)(CXhx9_x3F1yWzx@r4Qu8gbgwK)41r$=sJ;#Gu zt*Zo1=6HpH?6K>U6~ct4Mbz5@h7>rY-8n!jNYZFsZJx5CAux5KrPV$thAYz)D=RBt z0*kH`jORlu!(xJls>&3a&5@jZ!AH8zEAt1JT$|#)*NbpUv05rg799c%Q%d<~&1l@C zY$b_Qpjj+sbGc-O4Mb>Tw5jEg!71<^e5=Ye1`4lm@*eb&Io6bRHn78Z*#J;uvXu<0 zdX=tWMJ}3Yxn9-TlB+TGaa%wpF;PQ9f+_4;tyUgcab3vjOUVblu2PbI{@U^NA-oh!cbUS%YW1>(RpsgmKhHVe>b~R+!Pm7boJ=!CI3-{9xlPWCa0tsC zj^T`*u_gVt(;xJ5rGp+}FP)W4m+ZISyz-ai8@$uy!{pi{LO+neZ^wkN^0)x)Ui5P3 z+v1Bx0wvw1ljwEP)=NzG)NL()oCe@uc$;W;Gy!a-2hY&(5RQc3o?N(Mp1^EWp>wG$e6O809t z@~We0r99DTEfdy3#A2Uq)o{k7WQ;deOE~K(o{WVb702b5V0^fN?3&g`aiF;B#xsEJ zO{ay>o#`!jo~9nY{{rd;7gRkizl81;4maPScvg4{+ld4^i>JA0zQZv%QfRRQPs1-C zrezY$Bp_pzR|SA_X5uv<8O?;BRkW)Ll`$@dD!{cz#XJ1akJNaWNM!Y)=SMHJ`W`vl zu#$sm(YM}V9C2$Fuf!uoJ)4y#k)t1Fq7s_#oET2oFIl{uG{;w`MLqLT#_hymXSKut zJF&Fe`9~sSqxECR3bN9$Z(UlcQDPx%MUps^S?!%t*k%V#9AFfq@-D7Em(;>KIFeKn zbT~&ZGN1v~QZwS6!CeJK9G~M2^GTd<24Pt%GGXa1A48E2wySeVy3_EscaUA%{l-x+ zIq+uVR6YkDg&4jn8J36Xo;#4S1#E{DF>B%BuJ>x5?xEHzZiaed+QNd`C!c81-D~ve zZmEFHkkFD*I9dr|(l{H!l`&y(f5;C~B1;u)%goYJ%O86~{&*CnG(jac^Rh3LLNQ_< zgrN+P#E>*U+!E-BBppffgK_1%lw9-TbNy;0ZyE#o=S!w6I6=TVm zh&1Yh&cu{(tKUkv3zQD;A}ENe%PJm-MbKPW&gGm^r*W88&ZP=dZO@W>QejFfv5k9k zyeGA1GTUty2;VGN3(b7oEXZnm_zzatQG{9%+a3uW#SI(?p~lThqBn372(75yR1!VS z7g|wenre?C?ZFa_&LS<_63yo#ZS)ck0#$*hjUtaUC7zp#Je(DI0xa^FnZ*6T{P&R* g`S*nzH~u~R51;gC3dE3>%m4rY07*qoM6N<$f-O1X#Q*>R literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/marshmallow_0.png b/app/src/main/res/drawable-nodpi/marshmallow_0.png new file mode 100644 index 0000000000000000000000000000000000000000..d25b81149c5df78b1a6daa386b969f4acb9311e4 GIT binary patch literal 471 zcmV;|0Vw{7P)eL_t(| zob8s~Zi6rkg&mfV9~MSw-v3z#Yc(MtiEXU57x_TFsr2a(*#`g`jYgyKGJ-`A2tsQR z%y^%QKGhk5u+Yy+ROr2%WD^o1YNXIv*@VfD$cQ>RB*;@#-4~8tBZa!dq49(BxXP^m z!<(_jXE7G&L{r*j`tz!y&_rQj8YYkx`Wa+}^oTVfIbuzi3^8JLr?I=dF?RiWAATO! zvdlm=*4CLq$N)_2kbykTPvZHccy#aYPcP<%&v9y|AWVrDu^?nMVM&ED1Sf z4eECP&T)^7SzO-DeHQu-{~5DR6y&o?(T8jZ#W@C!;;NbbRGP;&qP N002ovPDHLkV1i#j)64(> literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/marshmallow_1.png b/app/src/main/res/drawable-nodpi/marshmallow_1.png new file mode 100644 index 0000000000000000000000000000000000000000..d25b81149c5df78b1a6daa386b969f4acb9311e4 GIT binary patch literal 471 zcmV;|0Vw{7P)eL_t(| zob8s~Zi6rkg&mfV9~MSw-v3z#Yc(MtiEXU57x_TFsr2a(*#`g`jYgyKGJ-`A2tsQR z%y^%QKGhk5u+Yy+ROr2%WD^o1YNXIv*@VfD$cQ>RB*;@#-4~8tBZa!dq49(BxXP^m z!<(_jXE7G&L{r*j`tz!y&_rQj8YYkx`Wa+}^oTVfIbuzi3^8JLr?I=dF?RiWAATO! zvdlm=*4CLq$N)_2kbykTPvZHccy#aYPcP<%&v9y|AWVrDu^?nMVM&ED1Sf z4eECP&T)^7SzO-DeHQu-{~5DR6y&o?(T8jZ#W@C!;;NbbRGP;&qP N002ovPDHLkV1i#j)64(> literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/marshmallow_10.png b/app/src/main/res/drawable-nodpi/marshmallow_10.png new file mode 100644 index 0000000000000000000000000000000000000000..6b9789ca8fb8c6041275c42258842e6cc3b5cffc GIT binary patch literal 1282 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 LNkvXXu0mjf)y}5G literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/marshmallow_14.png b/app/src/main/res/drawable-nodpi/marshmallow_14.png new file mode 100644 index 0000000000000000000000000000000000000000..259b46685b64019acebfecaa4aeca85f70a05b3b GIT binary patch literal 1480 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 X#=4w;mXX@#00000NkvXXu0mjftav7D literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/marshmallow_17.png b/app/src/main/res/drawable-nodpi/marshmallow_17.png new file mode 100644 index 0000000000000000000000000000000000000000..2e76eaa841786065d5671c94bfae9e03e7d91d31 GIT binary patch literal 1225 zcmV;)1UCDLP)Gt;a)7IGP>gv?l+|Ae9k(!>ixxA~jy0^i_%+l7%%*@Zz*4p3Vcz}cu5fPiEsn*@# zs;{!!-{Ed>a79K&ii?YekCK<5rQze`dVYbkzQdfPr<yd{@RWM*x3cf`=u`1ttf=;)C9PoDq)06TP2PE!E*1qvt_`1o^J{kjV% zGeNfc`1w-eaPIjR=lIyjH>31R`G}hOdt#UQ;K?iKddIZzT{u?Jor|a8;i()))&Kwl zgGod|RCt{2*V&SyFcb!02?P~XHkB4|#daUJcIh7E{amku<19}hGy7Mr4m)h&uit{8&mvU{ubC0@4&@J##ja2hE(4E3q6l>k6ADmK6#0?4Ib)EfLf@1Jxdl#{a-icK6ggA5F)&!A2lI{| zuw`BV(b1Cy;qE2yen&_jbz@cXclB9fIY? z*A?%3f@>miIr=b#jF%&t`+N_HP^x{eP``q9^Tf$=G+Hu3+RKW7=V!E98HVx4#2ym=1Tl>B?z=W_!6z>yEFv$eKdiH;C3Cex@1}{-r**`! z&tK};u7<~Tjx7%Tp?Lpf?G}sE;6sjsMI3q^jt6!IEMNf&`qxf){x>M-n@VB2T54Rp z1Nx~7VTCZ@)Jcq!H}P_f#Yj{ak`Fcsepmo*7KvJa4ilTS9*XKk^4GN~%LF29MPfg- zU(tgUh}r^sYu8;Diy#vF^T2DQYmDkco~y1&YLsT)MznB!4Z9uJ*w?hn829V?kx6R| z`|Zi98vYzX5BoIHZxF&7Mci+1sJd<^u2BlSp6o`Edn7eVxL;ZI#zZ2EAB>F{gW{&R zM1TfH^#vlx^dRDIR8b<{XN*^)HE-o!Y7kO-xJIkaQ4f3=bP>+x nZ}j|&@U5Qr)V$aG&Hs>psDc4p&7$a#00000NkvXXu0mjfWm{>L literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/marshmallow_18.png b/app/src/main/res/drawable-nodpi/marshmallow_18.png new file mode 100644 index 0000000000000000000000000000000000000000..61b5410645294f5307d48f637c4fce75ea464cd9 GIT binary patch literal 1649 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 N002ovPDHLkV1i#j)64(> literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/marshmallow_20.png b/app/src/main/res/drawable-nodpi/marshmallow_20.png new file mode 100644 index 0000000000000000000000000000000000000000..50562acece38acfb079a7a9bce4379eec9376b6f GIT binary patch literal 1878 zcmV-c2dVgpP)y)ByiZ6Ieqh+|aoph=rK<@#ItMT@1S2JH^7d8k?m6J)A6jKX|Nm|6^Z*71 zF8cZ|{QL{R`z+MdZ~6Npud;sr{!8)yBjf5Bl$r@cM{C&U6o`*x;^~9<{3qPv6u9p) z&He^zha$MkBfY&+-{T>bopaaMO78cC`~5NR`X|@dc>4Vw&DAW**&NQ;XZ`(#`uaEV z|3&KRFMWoH{r!UV{DS`e2B6tD&HiA>>0j^rb^H55^YbnE_%(upQStr-hPDi)*+{$G z4|sx$`T27G{xJXl3B&&$@Bc>s|LI8K?*IS*TXa%RQvd-3AqN-^3lshdLPa3-H|BrD`k`}5X+8N&5`}=v`_)ycQX>Q}wI7&k{G;YL$vT;BhOw>F)08D=Xr)e1w_>x+P|=K1DaPb8WU*4o(EjQfqO_MD z3R6|$dMHFyndcWyqu_q~pDLAenSJ{|E0v;`HpNQi=f1q+`B(<=J4@L5W0_}M^DLp; zk7eN)E|i+M5H{)j{L zAE9)RA^cGnKmMU0<%s!nQX3dz1Cxh)P=NrTA-CC#sF+qGck;4_5|czk7qNE_3m_g?IcSOj%C1cZD0hW z2CKQPcsvz>6jmk@ay*iX$G38-GLbltA;PK=jT#ysO}UI|l4UIhhgB-1A!N|p#zbQh z55y()NTEz4SePh;%TVw@=p{Mr@SD->|Eion*_zFT1=IgKeO~$1Z@y`?U+iz29KDr9 zV&zNP@3*tF;G0tV3m?JJGq?N2sZ}9-I~-PvNTO#8-rU<;*cpv{juZ4yu{s>yPN`gI z4{C;UKrdWUK4QP0-*JK-J%Ce=_FjIT${uX@PMa;eERUy46g87{YIUY{#SHJ<>Va-{MsDof$f=O}onX1Ev3ku(X4IDr5sRccjTj}__NuP0 z_T1{xydI6?S}rV&_4tT(me5$ElZvn@DFi4O7E`cV8uJDRPe#5t5ziG#^hzpLm}R&i zy?E1yDm8SI$P^Bk-TV;>E>>r-mPb zZPLF_()+vo+;AB^8xkbKho3)fziznw>GR>+tzEcv*fe>)oJ%C;L=&fI-<}$N6T5!6 zz(?@vYBmqIry84u>hPh3lp?R4_8f2G5ZijX$|;_6s5Qq&B#H`ZJq)V_bBdv48Q)8m zby0Px@#LOA7(CnE?ZckG#{pO-UKtfED{5-pKS4p+gk|y?%ceDee|DKB3-B7RogqYw z&e(CiV-P+WvbiQJx5m0KiGekRWi6M9rwqcfHE@J_DOiRI*SQjw>sK8YM_FC|^z zL)40tN|RyG78=n~3E1@-MSf`*VR4ozdksNZ$`I9{vz!d$Y^$oDU4)?z)nr)?RQ`~n zpl4TlcHVCzUX3(I&va$K@1YRh?tea%CC=pN1%3xo%5#s8bD}3sf8nwq@2$YKsIKNY zmt`}cUqPY=MGh5KJPEZ=@U{Z(AbF}L3c)(q`vcu;c(L1XF7gi6;|&9Pl9Yq{K!%et zikRCHa|-E_+Y&%;RHRzr1W>N`UZ5cWAp;8G|L|G(d{fnBv<1eZNA4)qs`rG zIRcIC0Hl7DWr1dh)qMQ;G!q5%umut*lpQSab{x-J@C?;x=JYt;2-?9CE1J&>^v05} zGVqqqM=ieJ_+%i*33`4CeZ2Y63uZY6%Pbz0TW$iIt@1(9d_LmO0xeV>=fQ1Nn-7jt zUHB`X$pVQ_1iSJDd{=xT_>)%s_aI$fGwSlSf`2Y>y0d*EAlX4O3GY literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/marshmallow_21.png b/app/src/main/res/drawable-nodpi/marshmallow_21.png new file mode 100644 index 0000000000000000000000000000000000000000..fba3b21d40a9cbce2e4f0adc4679c49bcf1a3463 GIT binary patch literal 2239 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/marshmallow_24.png b/app/src/main/res/drawable-nodpi/marshmallow_24.png new file mode 100644 index 0000000000000000000000000000000000000000..511d2a77b052d0bb87c265c76cf97530057e9d0b GIT binary patch literal 1805 zcmV+o2lDudP)An0|5a91Oxy90RaI3000071qGz9v_3Fe&ybqWPngM755?CCm!^rkMI165 z{qRuXJAA6wX`0YZ@aK5{^KY}-d!yD{+Vbk49wYBqB zmUyK-9w-zNwZ?fKKboVcuG4wqGP|)jT@^0A;EkENX;7=T3#hq(Aw*Je zD(I@hSC5%aZz^hqh^@A}@ z3$w-$(BiYi$(yRM{QUHVxJ3E$^!@grp~r2l(%1d@#p7d^%j4!*sI$4uqg$b?(>inc z;_Kymr165UaGIidrbU=NAxZ!M0DyE-PE!B@4+RJtBrp{^l~D{v`6tWpXZ-ygyBhb~ zhh6jy^XK!q)>ruI^ZJnR@cvNz!xfasF_3RKMAD+wzjB43+ht74H=is9`npctlEQ`D z;h+7wwg{$c#0marQy z!7cy*1Xf8zK~#90?U?yn8b=t%nVmh$F0F#1;Dt&=5YY&D#cDK-M>SrJsnMFVxtpU& z?`r`Y4DpIKX_DUmX=j&fk9pW3$&+8g_a~l*;lulV-|sNP+H4h7RM9I7yjfgixC`Rn zS$2&P#?aBJ1xaDAM@b|kDASP0%Tq*2<`Nx0+}lLjKg=l8U|?A%7-YXQb@88rO;!7I z7phlpt*?)}%RmB3xNRiPUyx%tq`t4CdRVWmkzea9a z8q(GHcM%xO0TpKO5@C@*WbHHl(iN&YGEYjRSt&YHME-e@=N&xJ0u!P62pQ1^dCnfa zecbPFXlU^Jhpz1BruShD)(RGoqdndZ4P z3%qL4!{yUwaduIGFE)5}1=MAyY1QHe+k-6+@fP+rsO%b1o1NA*x+GA%k;Vg^|L(n) z143%XBX`QmjHDudXoOs@^1)z=Q&SyNcdxy9$=B5kLsu@H54V-k$yk7gZ_20iB<900000NkvXXu0mjfYEFnr literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/marshmallow_25.png b/app/src/main/res/drawable-nodpi/marshmallow_25.png new file mode 100644 index 0000000000000000000000000000000000000000..f267c84f308d557f706efb8d4398770df8c606db GIT binary patch literal 622 zcmV-!0+IcRP)+AIN^rxq%4-XH`&CTuZ?%mzp<>lq&<>eF<6tlCl;Nalouy^*6B6E@NLZN*x1;Uv0&R5q#^E8I;a|Wv2Lw5Axx~c8ylW83wxDoc z-lUYKMIMOEibM!1rA%)@L{tc2K}iGDh)~XdL78S?@PZrh0u_AFI7<$otT7Zs*Ati$ zXo>g)s?eZ}U<4x=!3ahW4ywSQcz1A|=BHBO!0~g72nX_c2cI+;I2dpY0%i?Af)v`% z8Selppoj|7zP>Xv=wN~h_t5ye@awEFmSeGhJyM93SfnH4u{ow(`dhQ<-2Z3wR?P6T#2hT zL*`ds5I@X1oGYt5DVNzD7W3=rV=nz1g*w@^Fig$NLU{~->WM$vg z38zV2-Akxv#Etwg*|`7@Er#4f2*!b)f)L(=!o5|+#Qe8>0|fX{MHsze7ytkO07*qo IM6N<$g6y;`^Z)<= literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/marshmallow_26.png b/app/src/main/res/drawable-nodpi/marshmallow_26.png new file mode 100644 index 0000000000000000000000000000000000000000..689aa1f7580954d397b8eb1170a22a6784efe1f2 GIT binary patch literal 966 zcmV;%13CPOP)FEfh;y~^!L{BvoLM8Q0fVXlJS`1n=W zwjy8v00MeRL_t(|ob8s`mZC5ah8vJ{G$I6S#D#Xl-ErUT&ig;sgtpb7EFoUa9KPd~ z7vHJBid6FUmXVQ>k@3G!?(SEX<|s#L2Ez+plHCPx8dVLBlZV2rGCdLJUuV4TvZ_KpaXIIvgdm#r(c zHX;dt4rd?NmC?sXJ)h_UV5)NHdcIDQ8ia#ZH976NMs1SR1{^*BtfUeP71J+IQSyWf zT#YxX71J+IQn(8AiJyzQFn{tYQiE4G>Bjc&;*+F0XJXpMT}?0Fql8LPNQhQ}&@wA*5D}bmq;M`IB!OKf z9~faB5D|9lxz;OpVM(lsq@%OKgFQm)40*SSAWY$Z4ia~h0zlR#O^HD?3URD4P__StAR@_G7R z4e`=HQR_5p+AfTI=P)$onz9TP*^yM`9>oxZ1H2du~&AUPA-9WRbBO)%5 zl#@PabgnHoh9)$iT4u9wccflfC7Y()-On!l?>8eZeoR=hBrlLsRbeAAlB%=Yk)GS8 zu-v<^C$F~J86jhXlGrUdo&WJT{_r<2J)Ml1*?Wl0PF9bWlx!-{ zfP8&&?2Nzg0000vbW%=J0Qd(jI1Bs}AB1-N^!DZQY##glQgt}*w*CFsl1$yn2mWrl z4#6_p`%-Dn#pwC=_?4D)^q8Se;b2s_5&!@LheG$tZX;NKP%%w z?tA30Wv+ zu4UH8pLV$CRA~GkL>V?$H|LK(RW_SI(8@Tp$cYPUvjllJ&{&&LqRh3s)(5Aacbn~_ z3QMIy;Qo=TvZuIqtE1Z6uXhRHHixU1&KN5bwAOUJQy1H2#8!R5s&1#+2YENJB1y~T z@+sij!`MAf#X4Va7v#AkUKX^xmD&5JjDu6w-viV;1=`?5%WH}q&4AZvnKCu^gYZFt z6VJNX$}CFuJ-{&cs%CB|9g+AA{t5>@s$3T>r^uImkHn_lLXfV{nXPA>xV7dY5E zBA%q@^O`wbN<&iu^S1VG9O?r(J9;Oy#cU_nHBj=(oxFW|XHl5DyT)i(C%c{AGSQR} znIVIoUXLTQpQ2k?3gs!v+H=Cvq$3(1Ft)shLm`}}%s6DFEis^>9=0J1RJ14Ldm*QD zUS*H|k9VSk%{zgL!bdOQdy4?p&~8QpVTE^8snKZY;X$n75+Iw-9K734Gk3EV9(=+( ze8Q0wE`S6wlVplUTwmY$viV~3v0IBh{yJs?m$es@*gwpN6kfM9WqC5Z_(LJRI zFp#=|67$21tk0!I{nN;BD5V9s|RqlKmmZlllPi1J-b2=dhh zUm~w^F$erl7>067e32r0wHz66&mlnB5nrC8jk&g>0&ik8>59*hc49F{F~M&(hAa@p^>0J8oy5cT00000NkvXXu0mjf3=&iD literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/marshmallow_28.png b/app/src/main/res/drawable-nodpi/marshmallow_28.png new file mode 100644 index 0000000000000000000000000000000000000000..9cab75a1a2eaa7adbf0a3b45d61a4c58fd31df6d GIT binary patch literal 1645 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/marshmallow_3.png b/app/src/main/res/drawable-nodpi/marshmallow_3.png new file mode 100644 index 0000000000000000000000000000000000000000..26c7a43e9b521e22303f1dd13907a3e2009409a8 GIT binary patch literal 1467 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 LNkvXXu0mjf^w-|S literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/marshmallow_41.png b/app/src/main/res/drawable-nodpi/marshmallow_41.png new file mode 100644 index 0000000000000000000000000000000000000000..1d215345cf55baf6f1625cc31afcdbc30a84a367 GIT binary patch literal 1595 zcmV-B2E_S^P) z@$vC!XlU5L`>2Q7t%~Fz7c0}a{Mo_&gKMa%iP+Z3>0?)Sc5i?7_V#O5h*V2r`1ttC z%ggok_0_xngmIsebiSyR!A{2E$3nXlFB+uQYeEt3SFrtQ^^a;dPZRPLyjjDG?L zlJ#85@QN|($z?-_$$BAdOetKbEr*O}j%MI2rH=NN$R()djJe9?1A9EFrHl`h$_K0s z_?TxA19=4b1w4bMG6C`k_j1NUUGUc$o@_7X8R4JDyg-x>8$84emqn1g|Ci(88T0}z z#+}@6?h20vpTg&h>H^LgP7tD;Kx0uBkMDN{3z*^sE-3WzAB!f01_rl2j2SvSA@s-( z+|Jz0@0D|hC&Z%sK%-EY%iP~|ctR)$kd->OJ@aA!e}s{!VFX0Z*w*miYGg1laOUv{ ze(in&NK<>0#KtItLMUJk9bF_RBHq6m17pho!$19L1P9}igjSaUPHr0XYYY@t2gVYj zc`y$c+gb)VaZnI1Fc!SbOt%eh%;c}&N#as58~fgvQOgSqEyJS+KA?W(iTQ&%Q)9^V zM5nV7^#UOfyL=XDv~QZ`Fggvq^*Mxi#{-Pb%pxrmD5V1n_&i`1pTa)srZ0z(w644s zX9P`Cudju7pfS{jhL`vc`x{a8SY%lY(P^G(_6yMwaHyH`(38sOU*g*;5VzL6L1%>t z9(|Qfi|7KMt#{_rJ8)B85?VGc8dHqAuF`7H# zFq4WdN$akDupe8!#2jFGUB~3Zp$-Cqu_F4VpUwkT4#?u!9Rh$5I!Pvvkt-rrH!PLk zNr|+*QpLQJJ8V`e;~5%YF~XGg`m9vhiY^i!AiQbD(Qi|0qMN2OT3MD!QS(KsW(Zs5 zG8jKhv>ObVZ?v`c=p$IXY59{Y7FD&aRx+I7f{bj+#iFVGK9tSGXlil%RW?*c?UZby zy2nQZ3QLxznzE{yi8E)DLUd>~cDX7spxKdZqLxQ|KrE%*ZK0JSE|9cXiPfsETfm}d z6-Y~qTtL`t7dxt3%1*J}wBtgeR4!LVvTp-1j+E5V!xjly|Ki!Whsd!gwpuy?4v+vG zsYVp88bhr5H^U)u)`_AJI08a|70j1Gh);XHQpF9q*Xx~P_YVL-RXS+e{1Ti^PB^dICKoUP~tlN|s6002ovPDHLkV1n9*Df$2a literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/marshmallow_42.png b/app/src/main/res/drawable-nodpi/marshmallow_42.png new file mode 100644 index 0000000000000000000000000000000000000000..2208ac455c5a70bba96ef27c62678f92a6054a5d GIT binary patch literal 1478 zcmV;%1v&bOP)um8xl;{E*on|sS(Txa|H z`_8iaX;^~S&F9j${ko{vw36%3z3aJ_^Bfu<*1r3uh1t5K+Hz%s>+9>fy1Mi8^ObhN z&$sl~*Voy>{==aAtBK&;+}s=#C1Yb_cwC<^CpzZl=7VdfjEs!3q0gg((NITR=Hu(> z=<56X`-5eyyu7@mgwm#s&8VoTwwvF^sr8eBtc-27*UIM1y5o0bmP9~G+S=OJ*VkoC zhICw)!=L~E|NrRd=)j%(_w@VO$@12|{^Qg9@ap;_*^GJs002mIQchC<_yPqBD;^T~ z{yX_f@C*I?jP?FBK+G}yTmM^%$^IDArt95z&a3VHsc~`maEYsl73W(0?Bw#dn{t=< zvsHK_{Bt|$cHypBavVIiV4J-{t+#nJ1RGu*=Dm@F64d;jc3YP zO^e#nv~2lDOps}6QG*v@HXlJ)T&|fS2xCLhR5=_nUdVof*~n}r1QC`sW2>~Iz{IO^ z)G)k=0c!)jd4WBGqa8fM)CvKJAfp*OmCgAl*0P2V-Cy}m;Ld=Vj{OA{O zXgBU^R1t)+;Zr*;f(L>V1k)$aysvrl;-fC*2~nRw8jgJ{U^T1FsAEzC_9uJhm0F5-CMD)^K6BC{>e-VAU#q0n=@sJ0~+f!xE zCX>mR>5@YS5a3IhBi^`XF-7)bW|0Etv{gTygT3MeO1*W=vK(^@I=Wb-3^Tt3&h;09jRY$RR^yv4+Ke~ZavmRbVMFMXo(ksm)x&iR0QhkT*WPd0Nzc$8=Z=Q{m3UlS|J z#zPv3Nx_R)e3~(0l>sf@qG+xS;*IAOkQBZygy@`$#YEL2>dQZqe&S@cdT3xL$jjdZx2)eMfF4GOMQOBhh5Ca9K?Pikzesj*lnAGu$nw1 z$nm&3KA}U_^JpF=vDdIx>Q9GMH}CK7H;3KvYzuJkai%I5Zr$Pl)LweoOI}c&F%x0vlaM)JU3u4!>!FBXbGX0R+6f*KD#$$M_Sl>&j|}W5OBFw z6h%GYeGZ<D7>f1P1#M?E@iy}}pwv41x9;N= z65_jMSoNM`9s!$|q<0)ztFCtw$%wEMHRy=Q(NFu-+J39VfF(xM-=GhRYNxTM*M}{| zG8oTf9@(9G`^0ridAX(?CDH=vL(#{J3dBmObXHPD#*4QH)9Li|k z@$vC!XlU5L`>2Q7t%~Fz7c0}a{Mo_&gKMa%iP+Z3>0?)Sc5i?7_V#O5h*V2r`1ttC z%ggok_0_xngmIsebiSyR!A{2E$3nXlFB+uQYeEt3SFrtQ^^a;dPZRPLyjjDG?L zlJ#85@QN|($z?-_$$BAdOetKbEr*O}j%MI2rH=NN$R()djJe9?1A9EFrHl`h$_K0s z_?TxA19=4b1w4bMG6C`k_j1NUUGUc$o@_7X8R4JDyg-x>8$84emqn1g|Ci(88T0}z z#+}@6?h20vpTg&h>H^LgP7tD;Kx0uBkMDN{3z*^sE-3WzAB!f01_rl2j2SvSA@s-( z+|Jz0@0D|hC&Z%sK%-EY%iP~|ctR)$kd->OJ@aA!e}s{!VFX0Z*w*miYGg1laOUv{ ze(in&NK<>0#KtItLMUJk9bF_RBHq6m17pho!$19L1P9}igjSaUPHr0XYYY@t2gVYj zc`y$c+gb)VaZnI1Fc!SbOt%eh%;c}&N#as58~fgvQOgSqEyJS+KA?W(iTQ&%Q)9^V zM5nV7^#UOfyL=XDv~QZ`Fggvq^*Mxi#{-Pb%pxrmD5V1n_&i`1pTa)srZ0z(w644s zX9P`Cudju7pfS{jhL`vc`x{a8SY%lY(P^G(_6yMwaHyH`(38sOU*g*;5VzL6L1%>t z9(|Qfi|7KMt#{_rJ8)B85?VGc8dHqAuF`7H# zFq4WdN$akDupe8!#2jFGUB~3Zp$-Cqu_F4VpUwkT4#?u!9Rh$5I!Pvvkt-rrH!PLk zNr|+*QpLQJJ8V`e;~5%YF~XGg`m9vhiY^i!AiQbD(Qi|0qMN2OT3MD!QS(KsW(Zs5 zG8jKhv>ObVZ?v`c=p$IXY59{Y7FD&aRx+I7f{bj+#iFVGK9tSGXlil%RW?*c?UZby zy2nQZ3QLxznzE{yi8E)DLUd>~cDX7spxKdZqLxQ|KrE%*ZK0JSE|9cXiPfsETfm}d z6-Y~qTtL`t7dxt3%1*J}wBtgeR4!LVvTp-1j+E5V!xjly|Ki!Whsd!gwpuy?4v+vG zsYVp88bhr5H^U)u)`_AJI08a|70j1Gh);XHQpF9q*Xx~P_YVL-RXS+e{1Ti^PB^dICKoUP~tlN|s6002ovPDHLkV1n9*Df$2a literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/marshmallow_44.png b/app/src/main/res/drawable-nodpi/marshmallow_44.png new file mode 100644 index 0000000000000000000000000000000000000000..9cab75a1a2eaa7adbf0a3b45d61a4c58fd31df6d GIT binary patch literal 1645 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�< KMNUMnLSTX-r2RVp literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/marshmallow_7.png b/app/src/main/res/drawable-nodpi/marshmallow_7.png new file mode 100644 index 0000000000000000000000000000000000000000..61b5410645294f5307d48f637c4fce75ea464cd9 GIT binary patch literal 1649 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 JPDHLkV1gR6_l5uf literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/marshmallow_na.png b/app/src/main/res/drawable-nodpi/marshmallow_na.png new file mode 100644 index 0000000000000000000000000000000000000000..9c7abaadfaeb1059ddb662e417f69d3f7215d536 GIT binary patch literal 108 zcmeAS@N?(olHy`uVBq!ia0vp^0U*rC3?#SQPk0BUm;-!5T-^(Nntoln1mrT71o;Is zI6S+N2IPo)x;TbZ%z1mjkP*l`wBW0MF1NnMgH+}M2F81$^PPZ#44$rjF6*2UngF8L B9jX8T literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/stickers_0.png b/app/src/main/res/drawable-nodpi/stickers_0.png new file mode 100644 index 0000000000000000000000000000000000000000..49bb8af8f10f87ddf220c82b3fa9722e9ae3ec11 GIT binary patch literal 1762 zcmV<81|9i{P)+1;#3E|-7@$vE3*Vn_t!|?F%^78WW@$vET@vN+@c6N4OUtjI* z?Ua<1K|w)qzyI>`@|4g2Ksj!C!~cxT|Aff@R8@vZMR`_XmC(=Gl8>uyuIpx;*sra@ zcXF3ui^W%Vu-+m-eEK*bKKegh@sEek5f1VG$1d*vGnmsLfywcGs~wK+&xH7IDswQE zcvi1EPqW|OEX(WaDQ))kDa5m?$-yZRL^`GL8RrX1kQY~oJ4MbGqN56 z5ivd}$k*T(ZnISp?f^Bi)_gurk_QOZKTf&5F3wzrt9c_YOu|D+qWuqfoeF|@ro99M zOx5TJozT&x<&g6{2xqu8b$DSxB$zq`e(XcOo!xv!K=U~7BNFLwM1DdRbIpL9e8p&b z2*cL~B;$_v=Ro#~p#m3iGnrwgLud%IiXTlwjy4AFYr#L2KQz>VjB=S`d@-NrdIB<2 zbrE1K^&xJl3&EY?Zk9u8T@Pj|)MH@%Q}QLM%L{(}x}9OHm+o_9hLqtEm5fx`W?qqG z#(I)3w}w0VrebVlYMXOa{Ly@b$Z}IHKagUW6)`c`EWSyEW$>C~QT!#0l@#fD!@ z{X{9qco<*32}J_kA?jIJe=5XV(ur_puc=CW5RsMkZGv?dAhQCaM;9_uiDRKi*$W^v zi}6rr${@t&9?5k@)W48sDmx<~F9_*)8-y@xrKTeI-bwCmh0%`~(oLigpUxm8<~fq- z{!}=s2;weAHa%3Hgu@WX_R6#t)|?{`UVOJRWFbB~&S(I?jDjMoiDnbM!eHYpPPw%R z#2bawdWE;VG1k-GWMJChRTJlyKLQ~SOp?SPbi0ZKj`?h&R|QS-AxNM4=rZ64W*y6< zxtckMZga%)rsd%kO-5I{Tn!O$C2xqsL8pj3`7M?rWKb)JH=6PJq$)jx3hHSH3$N;T z-1R*~r&Z-X8HB{Li5T)d>LZNPUq;t3`MqlADFU}W(a?d_x@LbuidkdWDF^3S}(b4e!;+GO#fK zDMhP&S#GS&#^nu6a~Dmw4O56bbk{K0I80s>V@c_qh-~@%oES_dtVO2Cj7>v{?bvGI zbgOs+;VfpTxt^Oz&yob>!46OvT8pj4TO@j-Bs_rowFT0U?djd?3TwrpKBn46sFU(o zxC5s56>gVpYYXGA$P(O9B;}0riagw$Llkcap|ORb&hrykU3N=EK=PQ!1qYAykH106#K=rZF)pTu_M1d&T<)gg>NVksfJ>pATFS%goE;oA;3Wa~N3jeuO& zkD@S)&Ja+ZxBHM50<-fx#}MyxI`lyv$cJ_KlYdkG0|EE1^+;SZf&c&j07*qoM6N<$ Ef-WsvI{*Lx literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/stickers_1.png b/app/src/main/res/drawable-nodpi/stickers_1.png new file mode 100644 index 0000000000000000000000000000000000000000..2f1a5bbd309a0829e2ecff8449cce3d2b2300383 GIT binary patch literal 1622 zcmV-c2C4apP)G1II@$vEGFMe5@$t#Y z$p#ua);=Wr__ zJV&Af9xj=Sfg;^jkOB>MJK?~`fW3WsJ$$^se;lqU%PKhH4p?TqR#8G986P$h4l(;1 zPsVvf7p{3kUprAK7!9QkIm@Wunu9No9Vu0C*=TSfzl6NcR&7~aUJ8;&aM);Zpezmx z8@D83#lmqt2WN?y`b(=7htJ;dND5!eL0HJoM;17}w_xsIK7__1uX@?sz=b3VEjFAF z%zJqtSuRmd*1POV`aMK9#COrBW8L$YBERn3XnM5+^Bx_;;%Z*~$&#%oSS2-Rm zv(}io<~wSKL3*X0e!W~a2Dn^!bV@e_Ftd@~0S1yCzHeILomytVSv;)+U}5XwVbdCi zP}sj?*Cs;y>0|Q%K4`D;RID0BvRjsGmG>#-54wiaVg8tl*n#4;1U#aP;E5vvMX zYF^+y05kI{s?1^YNH-571v6WszD|tx3n57D9I2 zuGQW4tEpD6I!N3}P#PoUOEMD)X5tNJyT$ny?Yk z1Km7ATAowK;gARa0gg}M9n~n(ySMV-$=F^^HpHX9MIuD@y*3L*VK*OAEj0F)Bc~z{ z>A5%H_#x_)e#g#e;n6}hl&YYyk%A@29*RWrrIfISdXZvn^8nD^81gl zkUd|HYKIN)=8ŒxdFE>=qE{Jvha=g3z(*f8gK+g5!AkK1rWS-u$Ze&X)+lixw{ zK)717?&l!8X0Wo+g@kh3+dBO#9nZ(H1Jo^ybBNB1_CoqVkQdHgzo3b zIaV(*6V^u1yh}7y0t1%V)Kqy~tP-V#qph@Z=opHNRRaBnP4`~-4zLd-4vCkS&mp_H zEd>TgNY8Ykz)b99`#scZ$x4wHtb7c0^S}&zY>bSTyuVg4nu-P%?ha#Uc|%y$Prx-@ zTyTs%;QIcXLLU-73Z-AA5U4bO*;$ijzKAtV;U}s(|1`AC+&ztgz&{e9ZK1>Ph-3u|?(ZN>wOu(8~j_b>T_oHuF zFcG?W>G4=olp^pUxK5D=>fm`bS$Sm6ADNsz9%2#W_Y*mK{6Jy1`_lJ|U;Nkj3p~}f U-jLvMz5oCK07*qoM6N<$g6ne~L;wH) literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/stickers_10.png b/app/src/main/res/drawable-nodpi/stickers_10.png new file mode 100644 index 0000000000000000000000000000000000000000..99cdb36aa940cc25b2f3ff9c65b0cc0daad607da GIT binary patch literal 1570 zcmV+-2Hp9IP)W+YG{*PS%!tQ<+-}da&?`~%-4^`_nDTk z%iZ#Nq0?)HxHeXekBzH?fup0Q!7yo{yUOFOcPn%N000zpQchC^ONHy9p@tOV=i{iqF>%wBrT)v7qOxUbMrR;c5Aa5F!XVdv(^6%|hez(eZTRLq z(vb`%GD+e=H=oK1F8vZT^QCb~-jtnK%0+NT4geE*uOD$}0bq1Zt@p<-+?RpK#{8_YNIVH> zED`_!3FGmE7zb}yxf0p(K;+Bab5<^Qx+hhnMqz8}bLZFAR4fSSd?;FL+YyY!0eT+1 zO!s}p66*naA0a1>)ptOYLzqW>pU^g-KMqPUoMktIzV1Lh6pAp^52+@wyEyzQA@7EG zs#H~&RmTx9fTxU4*RDtgKG4rCnHUJh_NT#x{UV|nC@*&$a$5126SC0AxiDx7Mywh&OA^GW4&W(nxfSSSO*pmley#_gj z;SB|sFpPub9)|Y@r1VNtE6*7jZCqJ(1b%CPZebW=5OPhEkD?Gj@MPU}EwmHli(<$^1_f4E!*G}(n8DbC8Xt* z)2IBLL*N5)5!1zIK7&xZ%Dw7^&`30SB##CuK$!4tubkfUs%ug%&TO`nt)4-$7@{lR zuq2U~s_MEC9e;K|b zjh}?rU4l1*YEnuUiH29MVpm!7ZWkk%@abxi#d-0V`L&fuU&*}kfTBaTe(NL4AP#mRcf>wIpH)t7vr}Sq>P; zAlon~tyS=b~g zevgljc6N61^753=|3EozCxpCUTZctMcT7rr+uGrTv*gUn)?{p(Lq2kk#r8B?l6Z8O zxwptJZ>DO5w|bz`k&dgGmawj?z=M9Ep`NyihNVm_0f7Jj02OpnPE!C__5RR8ClJ8h z6nr(LU~aXKgF%CM#fQ`Y00hcOL_t(|ob6fJmZ~}sH3=w)IP_^yKm;e$Zu|d#?^Xts z03lKFKDi&xT7A06rfSzjdNBClgAe+|c~*Sd%^} zoIrv8Xgm@qLA+il#@6k?&2=9od7ec3>*hvm^&rgzi^JA`@v?&WycWN}lfF3C`(*?B zbw4bEgIscYYLcDObh}N{Q`4+9EE1_XI7`Id z#Th>52n*I3Vx{B&7KqrH8Gbz)u!-lmmy&&Xo5DCyE;j}Xn>+PfiVmKI@S{2%-r@4AlhM0+u=5R3R~JTbFPfv)&cnJpzSb8!>5rZ zWy{32(h<-jdD0Ex46sDpm7zkBLw7qg@&zKsa?C}|)G8e*!WU7LuFQt5(SlYLzZ5JM zFvu~cz29(!ZK4;W;?n_&^TOsB8nsE185N%nP@EatEm1vQSV;1s>=daG1*3Wvv$h4% zd|46@1(c;lPyPpzfFShta1q=fd5iGq?I}#02FV+WanTU|9c`sS(tm>lNrrE4^$UcW zbF1f}+I$%2C(fIB$`gMZfR9L}tpV=x%`FFNBw5o$Pq#rB`~hFCtO zu=O9QLp1Xp3#)Fq$Tj)v3Y02$8#FeU&f8hm^mAm>PEY3Gh4}~lNR>#r7N}}#aP^)l5-+|Jpa+kUafNZ%U!Z1$Sh#x z)h6qd)ze_lSngJ(2{hgC_E zRXA$4GuzOSUlIPeTHFdx>b75cQJCt7io`$F)3_$F_>>A-ZGF8c<#x}WqYvJWBQ(2` zwj{BIqS6A zF7zbRTYYgHcojpOrAbNXx}dhziNf9nizj2AMsv1)eBGQOY?u#Kw)(y@6*aa`lIVP2 zZ0WCtbir^f$DfIHp~Kchm7o?H{&FK5mEc=Xhpi@HwI_*RS=L5F+eWrM92wYlvq*`A z7hRjwBepdxteV7KwywFY4Et+txws;6Pqs3Kb%}ejtzkr;y-VDi?FS!x@WJc&4;kvE Un0NjZQ2+n{07*qoM6N<$f>rs~g zevgljc6N61^753=|3EozCxpCUTZctMcT7rr+uGrTv*gUn)?{p(Lq2kk#r8B?l6Z8O zxwptJZ>DO5w|bz`k&dgGmawj?z=M9Ep`NyihNVm_0f7Jj02OpnPE!C__5RR8ClJ8h z6nr(LU~aXKgF%CM#fQ`Y00hcOL_t(|ob6fJmZ~}sH3=w)IP_^yKm;e$Zu|d#?^Xts z03lKFKDi&xT7A06rfSzjdNBClgAe+|c~*Sd%^} zoIrv8Xgm@qLA+il#@6k?&2=9od7ec3>*hvm^&rgzi^JA`@v?&WycWN}lfF3C`(*?B zbw4bEgIscYYLcDObh}N{Q`4+9EE1_XI7`Id z#Th>52n*I3Vx{B&7KqrH8Gbz)u!-lmmy&&Xo5DCyE;j}Xn>+PfiVmKI@S{2%-r@4AlhM0+u=5R3R~JTbFPfv)&cnJpzSb8!>5rZ zWy{32(h<-jdD0Ex46sDpm7zkBLw7qg@&zKsa?C}|)G8e*!WU7LuFQt5(SlYLzZ5JM zFvu~cz29(!ZK4;W;?n_&^TOsB8nsE185N%nP@EatEm1vQSV;1s>=daG1*3Wvv$h4% zd|46@1(c;lPyPpzfFShta1q=fd5iGq?I}#02FV+WanTU|9c`sS(tm>lNrrE4^$UcW zbF1f}+I$%2C(fIB$`gMZfR9L}tpV=x%`FFNBw5o$Pq#rB`~hFCtO zu=O9QLp1Xp3#)Fq$Tj)v3Y02$8#FeU&f8hm^mAm>PEY3Gh4}~lNR>#r7N}}#aP^)l5-+|Jpa+kUafNZ%U!Z1$Sh#x z)h6qd)ze_lSngJ(2{hgC_E zRXA$4GuzOSUlIPeTHFdx>b75cQJCt7io`$F)3_$F_>>A-ZGF8c<#x}WqYvJWBQ(2` zwj{BIqS6A zF7zbRTYYgHcojpOrAbNXx}dhziNf9nizj2AMsv1)eBGQOY?u#Kw)(y@6*aa`lIVP2 zZ0WCtbir^f$DfIHp~Kchm7o?H{&FK5mEc=Xhpi@HwI_*RS=L5F+eWrM92wYlvq*`A z7hRjwBepdxteV7KwywFY4Et+txws;6Pqs3Kb%}ejtzkr;y-VDi?FS!x@WJc&4;kvE Un0NjZQ2+n{07*qoM6N<$f>rs+$jN($dnSqoaI$eDd=0l+XV_Id0kR|4Br5a&ns9-Q!YCeqCIOLp^bZg{Qv8*{!zF z$=mSN)ZK!w;gHDqmYTS1g|>>j>wBNjG_@*E0000NbW%=J09Z)p@c9xj*&NC+c)1CT zvusaq%AR{@j>8QA00ezWL_t(|ob6d@lcF#bl>5*TM%@(wxg1dR|Np;zBmsdW1O#_$ ztL!gRB{a=D(l23Fs}DZ-;J<^lb6i`|G{ttEo%I$4M>%$&I7{p7>>~s2Zb1pdJ#ye0 zOKCXTkqgaPM8bMzD!YYolq69c-m>OLdx6pzDtTC*2B#K+^h_?O#!?!2c%l&I%cvN* z9NH~GZy!F2`}KM+9wCYJE-n7zhd_?T~Ci(sn&pkA#7sP@*nN-Hp=7Qtau_zMc?O8>73^ zW&rHO8kgvlG*&AXX$(3!MHi6@v0QA2H6CJ-NBe$anHsOjaLuy-n|kHxkFxYepe*s- zXaEE_XQs~XU96E*c6jw(!nLx@1greoveqD4ALn4ms>CQNJ4G2&Wo{r(4R-CA`Zr8g609m;0S%obQx@M6uMxCX?`eo<9H6Y4f<@re+U z5p$4qR!PE9i%*0HF@IC)=SwAiIIFcV?xZLxC4wvkvN^jXP!y;vvKC4H7a|Jj;04pA zNYdXZy!8GS{-VSlcyu((g7GB;Up(Jar)kpKJK5DF9lIZEE)O+}7k)Z_*Ec2$; za^shgtrfkIm?+TONJx^z(CD5J6Z*7!iZY)dix`)a_9^n49Y||)7oXTjYmt<5LrgYz z+HYn>Ix5E;zC8rgBZ6lnjEnG{qTbzC8q$^{vNhBr8`Xg;{qg;uN}~FkCjHHPYr|b> z=qoNPo6Un7Tp)n>6#9O6iXo&6wVAJBeh+J`dWWEn$WOJiPJF*AaQMR$QK5H58g-A+ z=_2s`XCE*{AP#vuq+mEU`{UL*qD7)J^H$AthK^cR^M&pl20@s2R8sgQt3@)no^~|4 z43~R6HJVfJ8FgqtzbX8lWn_eRBkeI1PB7N;0#9o!d4{t zcS}XxNRp7TW{bpJivp3AW!4(Vo<=Zu>Ef8JSyA-OSM^_quMM)NF$`|ugIhf|Zo#vR zh_aO>0N!)E(e=|Af}wR_ZEdGB2FI`R&Du&$XS6pG{VA(#*!$<{ z40y9ceNT7F9=Q9p=?rA$^pr)$F6&D%05UygiLo!osI0s{Wr?vb$UuqiPTB2hwLGIg rW#7Z-P1!dwR-GyPHpT}Z{4e+e+$jN($dnSqoaI$eDd=0l+XV_Id0kR|4Br5a&ns9-Q!YCeqCIOLp^bZg{Qv8*{!zF z$=mSN)ZK!w;gHDqmYTS1g|>>j>wBNjG_@*E0000NbW%=J09Z)p@c9xj*&NC+c)1CT zvusaq%AR{@j>8QA00ezWL_t(|ob6d@lcF#bl>5*TM%@(wxg1dR|Np;zBmsdW1O#_$ ztL!gRB{a=D(l23Fs}DZ-;J<^lb6i`|G{ttEo%I$4M>%$&I7{p7>>~s2Zb1pdJ#ye0 zOKCXTkqgaPM8bMzD!YYolq69c-m>OLdx6pzDtTC*2B#K+^h_?O#!?!2c%l&I%cvN* z9NH~GZy!F2`}KM+9wCYJE-n7zhd_?T~Ci(sn&pkA#7sP@*nN-Hp=7Qtau_zMc?O8>73^ zW&rHO8kgvlG*&AXX$(3!MHi6@v0QA2H6CJ-NBe$anHsOjaLuy-n|kHxkFxYepe*s- zXaEE_XQs~XU96E*c6jw(!nLx@1greoveqD4ALn4ms>CQNJ4G2&Wo{r(4R-CA`Zr8g609m;0S%obQx@M6uMxCX?`eo<9H6Y4f<@re+U z5p$4qR!PE9i%*0HF@IC)=SwAiIIFcV?xZLxC4wvkvN^jXP!y;vvKC4H7a|Jj;04pA zNYdXZy!8GS{-VSlcyu((g7GB;Up(Jar)kpKJK5DF9lIZEE)O+}7k)Z_*Ec2$; za^shgtrfkIm?+TONJx^z(CD5J6Z*7!iZY)dix`)a_9^n49Y||)7oXTjYmt<5LrgYz z+HYn>Ix5E;zC8rgBZ6lnjEnG{qTbzC8q$^{vNhBr8`Xg;{qg;uN}~FkCjHHPYr|b> z=qoNPo6Un7Tp)n>6#9O6iXo&6wVAJBeh+J`dWWEn$WOJiPJF*AaQMR$QK5H58g-A+ z=_2s`XCE*{AP#vuq+mEU`{UL*qD7)J^H$AthK^cR^M&pl20@s2R8sgQt3@)no^~|4 z43~R6HJVfJ8FgqtzbX8lWn_eRBkeI1PB7N;0#9o!d4{t zcS}XxNRp7TW{bpJivp3AW!4(Vo<=Zu>Ef8JSyA-OSM^_quMM)NF$`|ugIhf|Zo#vR zh_aO>0N!)E(e=|Af}wR_ZEdGB2FI`R&Du&$XS6pG{VA(#*!$<{ z40y9ceNT7F9=Q9p=?rA$^pr)$F6&D%05UygiLo!osI0s{Wr?vb$UuqiPTB2hwLGIg rW#7Z-P1!dwR-GyPHpT}Z{4e+e+$jN($dnSqoaI$eDd=0l+XV_Id0kR|4Br5a&ns9-Q!YCeqCIOLp^bZg{Qv8*{!zF z$=mSN)ZK!w;gHDqmYTS1g|>>j>wBNjG_@*E0000NbW%=J09Z)p@c9xj*&NC+c)1CT zvusaq%AR{@j>8QA00ezWL_t(|ob6d@lcF#bl>5*TM%@(wxg1dR|Np;zBmsdW1O#_$ ztL!gRB{a=D(l23Fs}DZ-;J<^lb6i`|G{ttEo%I$4M>%$&I7{p7>>~s2Zb1pdJ#ye0 zOKCXTkqgaPM8bMzD!YYolq69c-m>OLdx6pzDtTC*2B#K+^h_?O#!?!2c%l&I%cvN* z9NH~GZy!F2`}KM+9wCYJE-n7zhd_?T~Ci(sn&pkA#7sP@*nN-Hp=7Qtau_zMc?O8>73^ zW&rHO8kgvlG*&AXX$(3!MHi6@v0QA2H6CJ-NBe$anHsOjaLuy-n|kHxkFxYepe*s- zXaEE_XQs~XU96E*c6jw(!nLx@1greoveqD4ALn4ms>CQNJ4G2&Wo{r(4R-CA`Zr8g609m;0S%obQx@M6uMxCX?`eo<9H6Y4f<@re+U z5p$4qR!PE9i%*0HF@IC)=SwAiIIFcV?xZLxC4wvkvN^jXP!y;vvKC4H7a|Jj;04pA zNYdXZy!8GS{-VSlcyu((g7GB;Up(Jar)kpKJK5DF9lIZEE)O+}7k)Z_*Ec2$; za^shgtrfkIm?+TONJx^z(CD5J6Z*7!iZY)dix`)a_9^n49Y||)7oXTjYmt<5LrgYz z+HYn>Ix5E;zC8rgBZ6lnjEnG{qTbzC8q$^{vNhBr8`Xg;{qg;uN}~FkCjHHPYr|b> z=qoNPo6Un7Tp)n>6#9O6iXo&6wVAJBeh+J`dWWEn$WOJiPJF*AaQMR$QK5H58g-A+ z=_2s`XCE*{AP#vuq+mEU`{UL*qD7)J^H$AthK^cR^M&pl20@s2R8sgQt3@)no^~|4 z43~R6HJVfJ8FgqtzbX8lWn_eRBkeI1PB7N;0#9o!d4{t zcS}XxNRp7TW{bpJivp3AW!4(Vo<=Zu>Ef8JSyA-OSM^_quMM)NF$`|ugIhf|Zo#vR zh_aO>0N!)E(e=|Af}wR_ZEdGB2FI`R&Du&$XS6pG{VA(#*!$<{ z40y9ceNT7F9=Q9p=?rA$^pr)$F6&D%05UygiLo!osI0s{Wr?vb$UuqiPTB2hwLGIg rW#7Z-P1!dwR-GyPHpT}Z{4e+e+$jN($dnSqoaI$eDd=0l+XV_Id0kR|4Br5a&ns9-Q!YCeqCIOLp^bZg{Qv8*{!zF z$=mSN)ZK!w;gHDqmYTS1g|>>j>wBNjG_@*E0000NbW%=J09Z)p@c9xj*&NC+c)1CT zvusaq%AR{@j>8QA00ezWL_t(|ob6d@lcF#bl>5*TM%@(wxg1dR|Np;zBmsdW1O#_$ ztL!gRB{a=D(l23Fs}DZ-;J<^lb6i`|G{ttEo%I$4M>%$&I7{p7>>~s2Zb1pdJ#ye0 zOKCXTkqgaPM8bMzD!YYolq69c-m>OLdx6pzDtTC*2B#K+^h_?O#!?!2c%l&I%cvN* z9NH~GZy!F2`}KM+9wCYJE-n7zhd_?T~Ci(sn&pkA#7sP@*nN-Hp=7Qtau_zMc?O8>73^ zW&rHO8kgvlG*&AXX$(3!MHi6@v0QA2H6CJ-NBe$anHsOjaLuy-n|kHxkFxYepe*s- zXaEE_XQs~XU96E*c6jw(!nLx@1greoveqD4ALn4ms>CQNJ4G2&Wo{r(4R-CA`Zr8g609m;0S%obQx@M6uMxCX?`eo<9H6Y4f<@re+U z5p$4qR!PE9i%*0HF@IC)=SwAiIIFcV?xZLxC4wvkvN^jXP!y;vvKC4H7a|Jj;04pA zNYdXZy!8GS{-VSlcyu((g7GB;Up(Jar)kpKJK5DF9lIZEE)O+}7k)Z_*Ec2$; za^shgtrfkIm?+TONJx^z(CD5J6Z*7!iZY)dix`)a_9^n49Y||)7oXTjYmt<5LrgYz z+HYn>Ix5E;zC8rgBZ6lnjEnG{qTbzC8q$^{vNhBr8`Xg;{qg;uN}~FkCjHHPYr|b> z=qoNPo6Un7Tp)n>6#9O6iXo&6wVAJBeh+J`dWWEn$WOJiPJF*AaQMR$QK5H58g-A+ z=_2s`XCE*{AP#vuq+mEU`{UL*qD7)J^H$AthK^cR^M&pl20@s2R8sgQt3@)no^~|4 z43~R6HJVfJ8FgqtzbX8lWn_eRBkeI1PB7N;0#9o!d4{t zcS}XxNRp7TW{bpJivp3AW!4(Vo<=Zu>Ef8JSyA-OSM^_quMM)NF$`|ugIhf|Zo#vR zh_aO>0N!)E(e=|Af}wR_ZEdGB2FI`R&Du&$XS6pG{VA(#*!$<{ z40y9ceNT7F9=Q9p=?rA$^pr)$F6&D%05UygiLo!osI0s{Wr?vb$UuqiPTB2hwLGIg rW#7Z-P1!dwR-GyPHpT}Z{4e+e+$jN($dnSqoaI$eDd=0l+XV_Id0kR|4Br5a&ns9-Q!YCeqCIOLp^bZg{Qv8*{!zF z$=mSN)ZK!w;gHDqmYTS1g|>>j>wBNjG_@*E0000NbW%=J09Z)p@c9xj*&NC+c)1CT zvusaq%AR{@j>8QA00ezWL_t(|ob6d@lcF#bl>5*TM%@(wxg1dR|Np;zBmsdW1O#_$ ztL!gRB{a=D(l23Fs}DZ-;J<^lb6i`|G{ttEo%I$4M>%$&I7{p7>>~s2Zb1pdJ#ye0 zOKCXTkqgaPM8bMzD!YYolq69c-m>OLdx6pzDtTC*2B#K+^h_?O#!?!2c%l&I%cvN* z9NH~GZy!F2`}KM+9wCYJE-n7zhd_?T~Ci(sn&pkA#7sP@*nN-Hp=7Qtau_zMc?O8>73^ zW&rHO8kgvlG*&AXX$(3!MHi6@v0QA2H6CJ-NBe$anHsOjaLuy-n|kHxkFxYepe*s- zXaEE_XQs~XU96E*c6jw(!nLx@1greoveqD4ALn4ms>CQNJ4G2&Wo{r(4R-CA`Zr8g609m;0S%obQx@M6uMxCX?`eo<9H6Y4f<@re+U z5p$4qR!PE9i%*0HF@IC)=SwAiIIFcV?xZLxC4wvkvN^jXP!y;vvKC4H7a|Jj;04pA zNYdXZy!8GS{-VSlcyu((g7GB;Up(Jar)kpKJK5DF9lIZEE)O+}7k)Z_*Ec2$; za^shgtrfkIm?+TONJx^z(CD5J6Z*7!iZY)dix`)a_9^n49Y||)7oXTjYmt<5LrgYz z+HYn>Ix5E;zC8rgBZ6lnjEnG{qTbzC8q$^{vNhBr8`Xg;{qg;uN}~FkCjHHPYr|b> z=qoNPo6Un7Tp)n>6#9O6iXo&6wVAJBeh+J`dWWEn$WOJiPJF*AaQMR$QK5H58g-A+ z=_2s`XCE*{AP#vuq+mEU`{UL*qD7)J^H$AthK^cR^M&pl20@s2R8sgQt3@)no^~|4 z43~R6HJVfJ8FgqtzbX8lWn_eRBkeI1PB7N;0#9o!d4{t zcS}XxNRp7TW{bpJivp3AW!4(Vo<=Zu>Ef8JSyA-OSM^_quMM)NF$`|ugIhf|Zo#vR zh_aO>0N!)E(e=|Af}wR_ZEdGB2FI`R&Du&$XS6pG{VA(#*!$<{ z40y9ceNT7F9=Q9p=?rA$^pr)$F6&D%05UygiLo!osI0s{Wr?vb$UuqiPTB2hwLGIg rW#7Z-P1!dwR-GyPHpT}Z{4e+e+$jN($dnSqoaI$eDd=0l+XV_Id0kR|4Br5a&ns9-Q!YCeqCIOLp^bZg{Qv8*{!zF z$=mSN)ZK!w;gHDqmYTS1g|>>j>wBNjG_@*E0000NbW%=J09Z)p@c9xj*&NC+c)1CT zvusaq%AR{@j>8QA00ezWL_t(|ob6d@lcF#bl>5*TM%@(wxg1dR|Np;zBmsdW1O#_$ ztL!gRB{a=D(l23Fs}DZ-;J<^lb6i`|G{ttEo%I$4M>%$&I7{p7>>~s2Zb1pdJ#ye0 zOKCXTkqgaPM8bMzD!YYolq69c-m>OLdx6pzDtTC*2B#K+^h_?O#!?!2c%l&I%cvN* z9NH~GZy!F2`}KM+9wCYJE-n7zhd_?T~Ci(sn&pkA#7sP@*nN-Hp=7Qtau_zMc?O8>73^ zW&rHO8kgvlG*&AXX$(3!MHi6@v0QA2H6CJ-NBe$anHsOjaLuy-n|kHxkFxYepe*s- zXaEE_XQs~XU96E*c6jw(!nLx@1greoveqD4ALn4ms>CQNJ4G2&Wo{r(4R-CA`Zr8g609m;0S%obQx@M6uMxCX?`eo<9H6Y4f<@re+U z5p$4qR!PE9i%*0HF@IC)=SwAiIIFcV?xZLxC4wvkvN^jXP!y;vvKC4H7a|Jj;04pA zNYdXZy!8GS{-VSlcyu((g7GB;Up(Jar)kpKJK5DF9lIZEE)O+}7k)Z_*Ec2$; za^shgtrfkIm?+TONJx^z(CD5J6Z*7!iZY)dix`)a_9^n49Y||)7oXTjYmt<5LrgYz z+HYn>Ix5E;zC8rgBZ6lnjEnG{qTbzC8q$^{vNhBr8`Xg;{qg;uN}~FkCjHHPYr|b> z=qoNPo6Un7Tp)n>6#9O6iXo&6wVAJBeh+J`dWWEn$WOJiPJF*AaQMR$QK5H58g-A+ z=_2s`XCE*{AP#vuq+mEU`{UL*qD7)J^H$AthK^cR^M&pl20@s2R8sgQt3@)no^~|4 z43~R6HJVfJ8FgqtzbX8lWn_eRBkeI1PB7N;0#9o!d4{t zcS}XxNRp7TW{bpJivp3AW!4(Vo<=Zu>Ef8JSyA-OSM^_quMM)NF$`|ugIhf|Zo#vR zh_aO>0N!)E(e=|Af}wR_ZEdGB2FI`R&Du&$XS6pG{VA(#*!$<{ z40y9ceNT7F9=Q9p=?rA$^pr)$F6&D%05UygiLo!osI0s{Wr?vb$UuqiPTB2hwLGIg rW#7Z-P1!dwR-GyPHpT}Z{4e+egwtM007$B+SAk1^78WW@$sjpr%OvqgM)+e^753= z|3EozMnH66U5QRhe9g?)g0JA++~SbP_-lr^nwGJNyX?BR$a$a9UvZ>+cAAZer?{cC zd;kCd5p+^cQvg`_>q8VL)JQAWuy(ScZh{^3NM8T|1Pe(-K~#90?U~!UYcLdrCDgG+ zEkdgY`u-2Ob0SnCh<^LVxLd9I%|phFEXz7{=+L46Cf7e-JR3sWyPSRZCxo+o9mziL z&G9c+i7x(*2v>@rnBAf|UuSgQ1>t)A4a-Mcpgc!K`zZSly&Zz_yL#U~`QJe3bL%?5 znBqc?X#XZ^IR+Zm-{*`6jRH0A>UqCEt9OIQ-}!^bVnlISu5JanWl?1VRqV5ydB#}H zOEf|B7{odtJZ)yM-Ys#e@;Z~KCf_hhw3XqqT;VwKDwC?h6vQ%?Y=qEt4huDdQ3~1| zVX%qe(lv>?SZ$++G~(*wrK50LzZFA2f9oOd;q}}yp{gzeJItFm@$`3H zXA4x#eGe&#N1Jl;(0;w}Y)me^&MB1 zT8kNk-3uu~5s>dDw%4SqFK|7dE?`pld59=HFlpiWbcq%QhKo^Mc(E8Kh1c3joloCT zq=5)qnLxA#Ic3Oq;k`lPk_2n5{yP%XNUs}MJpj|WW$!$+0B}@O%Y6LuH`EIbGH(~H+L|VR)kUDaGSdB{=;o5VF2Yz(f5XXo9tP} z|3v(AcCy=xu`6{95jckPWe zfn;s5ckS5GLj0`-hlmfv5NIJ*w3YJe_YcAEC{VfGk|~V_=LI(;sW58GImm*1Sylk3 zV%lhmPWmX*9)C#Q!qrt3paR=7dpK!CMQr#OV#NJdK620|!6C{om9s2Hpc zgeY)22sh}qWZlK~qN6}zs-0IljYka&BuzrWh{(X&c68f|Mba@KU)@d;hxor~UKl69 zIF4@FlpmC%_SKj9baF)59LrSGQ4_J-o@m`1$1qb&-$NkWAw4=uv`c=bN<}Yu>5mwA z)zDtD!zcwmV|1g2Y5#f%4C|%fhloRm4jr1;KW9oi+1;#3E|-7@$vE3*Vn_t!|?F%^78WW@$vET@vN+@c6N4OUtjI* z?Ua<1K|w)qzyI>`@|4g2Ksj!C!~cxT|Aff@R8@vZMR`_XmC(=Gl8>uyuIpx;*sra@ zcXF3ui^W%Vu-+m-eEK*bKKegh@sEek5f1VG$1d*vGnmsLfywcGs~wK+&xH7IDswQE zcvi1EPqW|OEX(WaDQ))kDa5m?$-yZRL^`GL8RrX1kQY~oJ4MbGqN56 z5ivd}$k*T(ZnISp?f^Bi)_gurk_QOZKTf&5F3wzrt9c_YOu|D+qWuqfoeF|@ro99M zOx5TJozT&x<&g6{2xqu8b$DSxB$zq`e(XcOo!xv!K=U~7BNFLwM1DdRbIpL9e8p&b z2*cL~B;$_v=Ro#~p#m3iGnrwgLud%IiXTlwjy4AFYr#L2KQz>VjB=S`d@-NrdIB<2 zbrE1K^&xJl3&EY?Zk9u8T@Pj|)MH@%Q}QLM%L{(}x}9OHm+o_9hLqtEm5fx`W?qqG z#(I)3w}w0VrebVlYMXOa{Ly@b$Z}IHKagUW6)`c`EWSyEW$>C~QT!#0l@#fD!@ z{X{9qco<*32}J_kA?jIJe=5XV(ur_puc=CW5RsMkZGv?dAhQCaM;9_uiDRKi*$W^v zi}6rr${@t&9?5k@)W48sDmx<~F9_*)8-y@xrKTeI-bwCmh0%`~(oLigpUxm8<~fq- z{!}=s2;weAHa%3Hgu@WX_R6#t)|?{`UVOJRWFbB~&S(I?jDjMoiDnbM!eHYpPPw%R z#2bawdWE;VG1k-GWMJChRTJlyKLQ~SOp?SPbi0ZKj`?h&R|QS-AxNM4=rZ64W*y6< zxtckMZga%)rsd%kO-5I{Tn!O$C2xqsL8pj3`7M?rWKb)JH=6PJq$)jx3hHSH3$N;T z-1R*~r&Z-X8HB{Li5T)d>LZNPUq;t3`MqlADFU}W(a?d_x@LbuidkdWDF^3S}(b4e!;+GO#fK zDMhP&S#GS&#^nu6a~Dmw4O56bbk{K0I80s>V@c_qh-~@%oES_dtVO2Cj7>v{?bvGI zbgOs+;VfpTxt^Oz&yob>!46OvT8pj4TO@j-Bs_rowFT0U?djd?3TwrpKBn46sFU(o zxC5s56>gVpYYXGA$P(O9B;}0riagw$Llkcap|ORb&hrykU3N=EK=PQ!1qYAykH106#K=rZF)pTu_M1d&T<)gg>NVksfJ>pATFS%goE;oA;3Wa~N3jeuO& zkD@S)&Ja+ZxBHM50<-fx#}MyxI`lyv$cJ_KlYdkG0|EE1^+;SZf&c&j07*qoM6N<$ Ef-WsvI{*Lx literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/stickers_20.png b/app/src/main/res/drawable-nodpi/stickers_20.png new file mode 100644 index 0000000000000000000000000000000000000000..35b0777bd6d529699d1cc11e986e8da516db5553 GIT binary patch literal 1238 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 KMNUMnLSTZ`cC0V} literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/stickers_24.png b/app/src/main/res/drawable-nodpi/stickers_24.png new file mode 100644 index 0000000000000000000000000000000000000000..4866291d84904519df50b8f98cbb2ffd65870973 GIT binary patch literal 1404 zcmV-?1%vvDP)+0+P008jt@B;$_1Ox=?>gx3L^z!oZ+uPgj?(TSac=Gb{#l^*|tE*E} zQ$RUx^78UkGLJK`xOy1r{5X0DPLB^Mr46%$F@&;xgSI%}$^J!7keD=K?N)@dQJf zlQqXlw|}o#j-48>s?J%KW~`|z+ATZUaU7*D$~xx~^12$abf&7Bbb##LF2i;#(j4zj z08{%f;sEN%Wu8uvmo6-D*5`2lTk00Iwj%Nb?EWZzev0C8XYhYbtXTqBnx&}_!3FTY z(gr@mfsBZkP$Ro@f)2$UlzGAT;bGk+AcspC?ysd=B!@V6KBRzUf|*H{%aB_h~)~iw}Js#O8wt!c#JYm&&&0sPYE7oo=K$TjN@UXip6Q=pIq&HeVA)eb$ zA(BJS;0s=MN0qg#UZiBOn;$XnNpdNT^?rgA2^LP*m{kcTrMqK-Fe`ee2s<(%v!R1! zw2@XUT2*3=D#!gz4-sbkgq*7VM3sVOa;T;=>>F|l%~T0Y9Kz3IO}N3h%d>iR8fjR* zG6VYaEWk|Fn^ZHO2zg~iwZ{=UGZl!*)Lydg(kDwbm_(NuIe4XA8c*#7K}+*g%c1h5 zTqSw7N<(~w$k(LbQ%eD+8^^*fLa6Re?ySByDlmQb2iK z_sBHb2|~7-sQcti>_}v^>q*Q$k+9JNVtC{eWFKAqqdf5} zGu{Q$jGvL1YnL_p+Lc1hInPLT$MBaNq_4t|@D!o>6&%Fm_6rQ}lS;Y->8`D765>yZ zhBu=uK<8<2DfkGX*qz{2%BZ}nP6DElXNlpKKlsl`iQZZkS-C(V`z~IA zatN)^sE9><(GtkMd)z_lVygul!(8*1FzkinB}JBN{vySwt49kSS-rjV@@MnOb;($t z`D9wG>2=XqpGOy;8QWql^w8(wxDj^ClkxN$UQG@$HNwsyJgy8J$KMxvr3TLrQ(SFvE#7Dh6rLeJj!s39kD<@;txs_nC%|B&_$X`}MU$W*{KLixD92AC6+oWn z`^%H4V<{;fpfrqA1h0O+8N9_x<<2CVyDW{ zxp^2)kukFKic`kZ$vljaoxL1uS2db-D6(|DTO&N3+AK-j8sYI91vOoR8rU?#)w`+7 zxlim#pb<6!8f5a;Mpx)U!W&`FL;^LTp5=*Qp!y8*_`BHBb=dG;OzTuXA1#R2j zcsoUQf%?s)62GVn-Y8Z^1V=>LVi2P3j0FbMu!y#IGh<0zra#C*Pr5A!uWiYY1}A7^ zTS*)|QK_luN|WnyPx>omh85J?UX4~8-}7Ww`d760;)^f-b^HO5!e?(H7W01q0000< KMNUMnLSTZ`cC0V} literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/stickers_25.png b/app/src/main/res/drawable-nodpi/stickers_25.png new file mode 100644 index 0000000000000000000000000000000000000000..490b1bc181dbe322582ed6da9e08cd7aedbeadf7 GIT binary patch literal 1537 zcmV+c2LAbpP)ER#l^+3v9VE6 zQN6vrp`oFho160T@^HWZKsjzjKXlpd|58tXR$!BBvhiAhyw=y@t*gIrY?EW0*}uQe zkBq9GoVJLAqkegu7+}4!0000MbW%=J09pO$FZUPNMZ*myiEfolzN>GvoN9&~7^DCI z1tLjAK~#90?OE%3qA(C`xQKYEh*qHCqNwfrzu_j63ka+G z=vp05JmaUM`X!i6L4=NY%%N6x4ewgzsfxUU-}e(3KFWlK0>!F$iopTJo!ibV+6ucA zEpFgZkw2{a)DP?p5@S|!Cy30S$zH|FwWmH&H@E^iP+Q!tB$I&t7#CR{Wnc7 z-zu(YdIIX%%wA!ir(81QxE_rX!APY+D!~fWnvI@SQuz`5{lHJ#$%08G9z>14F~nIo z%EqWy$~uEe&X7}lH;DKdUSrJ0B1i>A5_!)CSvn|{8b#v7_kifDVg(5`>uH&k0tspt zc+Uk{LV+$q9!ZjL&AqdlJrx8JslnH=KT6G1>) z;x0iVkV*=v?B-7daWx}(l3*$qb$4e35I8cz$zmP4ZYXCzbS)>tL=-FjWJ4u@;OG?d z65A=4uLvSLFs4$pqj z-xH9pbAncto7|sq8RQCBXzSq{?_zNZgJO00_3G>>mR8nkSwWiZveaT#9QR{uPs9om z>O_=ayQ!G5XI4h6oT$B|y?Uj|N*k`I6|-*=7LYYct7tk%TJ<1gsTgrv836gzYQ-to zjKLORC$pHSm7Nn;(~eV6j=`IH1@Uwmb`ZbUa&=p8!|}hU_GAzw>Vp(L5Q@`U=&3iv zi5`PD<>EbYO*t*ZaMCV_Z@kB4lz5ucLJVj`CI~+pZx2X(>LO3pne<__$(? zcFa`Lye^7b{)dqW&1tF5BztU{mBwaJ$`N&HOLl78`l-dHIW09S03$CFGvv54-cO|} z<6`tjn$!Ahicu!FQ8uMeyj=1u;}^4~(45wyv6p=eg>pWO2hnM%p~p?i&B(`whmQrI zIIR$qE(Sr845xP&Y8Rlc2~KN??3Ke9FbCCL3tEUEjscVCv~X68B?74cD|;4i1K0Q6 zU@KbgPM;$=t=_B{Vg>3IvDut8G3K=Vp_$S*8n;m!-{j0Zi8G&j_c^V;(YTF4<8hzU z@+lyhD#YAY0Gre5jrM*FeO+{))ABV4B@@;^*7+=>P76O$Z6m&Kp=_D3zfu>wIYxF` z_uLcKR~OA`H8*|~q`mP*u{TXyr8q6syEvhD#inf90YP$F6J5B#E*x}ED_2i-TGV-R zb6S6aPIOwt$tcRut@TEGE1J_ql-sM~OuE8>V zb^ml^cUpRb{DH3<^0F41tjjzzHppnW4Boa~{roAXW$wZ$yt(=pci~{H3^TTh0`X_b zAewes3%w&aM{Wq8Ysmn{*hlo*i9F@B7R@G7U4&X$d z6WKBDiZAyt6d;*rVRWTJmdxETWBZ^35$s9k{N7|(ycd%64`NM>_Az^Q8VF-7iJ+N} n*Mz5m=H9Ci-tmri{M+~gDz$=VT%Ft+00000NkvXXu0mjfgnjKS literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/stickers_26.png b/app/src/main/res/drawable-nodpi/stickers_26.png new file mode 100644 index 0000000000000000000000000000000000000000..30a6279f4d8956400328a3c8dfbf4ec8933fdc9b GIT binary patch literal 1384 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 Ef|zYNwEzGB literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/stickers_29.png b/app/src/main/res/drawable-nodpi/stickers_29.png new file mode 100644 index 0000000000000000000000000000000000000000..8476a2ce791e430da184c93dfaae4d92e87a9ac2 GIT binary patch literal 1666 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ŒxdFE>=qE{Jvha=g3z(*f8gK+g5!AkK1rWS-u$Ze&X)+lixw{ zK)717?&l!8X0Wo+g@kh3+dBO#9nZ(H1Jo^ybBNB1_CoqVkQdHgzo3b zIaV(*6V^u1yh}7y0t1%V)Kqy~tP-V#qph@Z=opHNRRaBnP4`~-4zLd-4vCkS&mp_H zEd>TgNY8Ykz)b99`#scZ$x4wHtb7c0^S}&zY>bSTyuVg4nu-P%?ha#Uc|%y$Prx-@ zTyTs%;QIcXLLU-73Z-AA5U4bO*;$ijzKAtV;U}s(|1`AC+&ztgz&{e9ZK1>Ph-3u|?(ZN>wOu(8~j_b>T_oHuF zFcG?W>G4=olp^pUxK5D=>fm`bS$Sm6ADNsz9%2#W_Y*mK{6Jy1`_lJ|U;Nkj3p~}f U-jLvMz5oCK07*qoM6N<$g6ne~L;wH) literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/stickers_30.png b/app/src/main/res/drawable-nodpi/stickers_30.png new file mode 100644 index 0000000000000000000000000000000000000000..d347d4f4476d153abaf8922f912779c4331258de GIT binary patch literal 1549 zcmV+o2J-odP)+9Iq*qWM}Wo2cAgoLiH zu2ND`FE20h^753=|3Eoz`M6L2#c@YJaa&MyypCB>M{xSSVBg;4l#{JxUy8%Y&v9OA zwzI{FhoFIdmzcuik#S&_ti*YAm7}7%-lkL2#-lfydmsP+02OpnPE!C__v1Zxzb2Lo z61gBk)R%aRpmJuu@>W>@00kXML_t(|ob8#}Vxlk14IxI-1`2nH(3Y} zh!DhHjsKOU*3Yw_q_f#uZ~ed8IJRwDo7pdFX}es`?ANq0T_JnYukAt?8$As#j5i0Ol)^d@sLlCkAZ@^PNg7bg~P zqJS`%Df|HqOL7W=8+-fb>IrYLd`0+_(CP@!^apB)=h2t=P8^m*alqb`(D#4L$3Yw( z?NR~x)}9vz0cQ|OdcIRsAl|`D`D2VTMOcE*7}b7~74qNsXJ1%ijEl-v^5e7E)BmQ>F}ki}QOhA0`rVRXL4 z)x;mzldFB&&8~b#p?jYpl_@m8a4c%&PamV&r!z4oaK9lHglDmT;utU=X3#RH>3fYY zkf=z04i6z!f`tLc@UmYFG1xf7c>$YBh9CmNCgl2IhVghr)C@m|9VNZ~Vxp5j=a2`c zI5i_Jph`a@EKx^gTQhR_K#6ut)R3hq#s`Wa)TbPj*=499Ru%IehJw+ckuoNH zZAj>L3*i`ws^WKsx=C8XSt%UQk1`}u?=lpIEVq^o%C74dLlCG;V5tjtBeHQSGlM~A zwH>COCvC>2anhkXDb$cEf7xWjWoETj39ES^yY^Iw(v*XG#>;jrr2`uv-=)xjz_zdC zZAH$kYIuO`bi|lWbS(x;u;xmH>E4xyy-R`!MigUl#<*%iTFafZLCRq-8Mg|7{EHqW z@nki3;V-F1c=>@V8&CPAfW<{GB4moSAkD2_GGxQ@3ebj#Z*ZgT)uiXNYSd1ueHD?@|QJ^gNlAs0AN z1#R*tEN-T}gDWJ4e%!_)_LB`#XIl~0Sh5E&3z3E4{tY?gCyvbTux>K<<`w-ja{ z*6q6ex`+#@kJi{_4@pYAfB}noTFIlGS>nIO5=bJ?zI1ziFw2qtikKADiL|u`*=6H; zMRr}Px!Zy`<>HXS=@QwsYeQaF@pYZ7+mNbvO*f^g_lrKij2+Al77 zfGP&~Hk4Pw<=z$hXo7H7HF@O$P8{2#{Aq+QPFHK=(FIg>$q{9FfX4!YW1jV%tpsJ~ zzC?YD*=)6b0Rrp|qxVX1^*Py?^|vv2c|PCozyvGSUxuM^LBE=R@7FtXGzplyHFcDs zcYC^;8xu6wzR_OHp90MnBmal>)?07A^}PN8js4@u11QB100000NkvXXu0mjf$TjM! literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/stickers_31.png b/app/src/main/res/drawable-nodpi/stickers_31.png new file mode 100644 index 0000000000000000000000000000000000000000..afb85c08789b5cf3c5144619cf68719d6fcb74c6 GIT binary patch literal 1853 zcmV-D2g3M?P)x@bB;M=H=)B008Of=?Mu51Ox=}@$u*9=kf9J^78WInzOH*dytH&fO2+gU~_eFmBg-ofP0?i%!1g#fQPy1f`lxi z0000QbW%=J09gL_`xOr^MdBsTLFJ`}yJ*l?aizR`hmC%n_p|^21~y4VK~#90?OE4) zvPu-C#oiN*KQM%DR3u{F|J}}1$}kLIxjA3fMO5;I?ErZ!|I-V)ikjS

_n!Vtro~NXOIhYM3q<5t}M~JS5?E_#@aGXrDkpy?)fG0V! zWRnkocT&|zs~=NBVj#T?p2W>7Y9TWntE|J+bxIs{<1H&Cld+mxq;9;HYT4z2mpKp# zS8;5{^Vgz?UEd9)Vg(gH5Kg6H%Ogb<>$mVq z6K3*~eIIbBl4N`r6hQN#P43qhG(Yuekc+xx1Dz%3&E()vI~##J4erjkGt+*f)jP}w zz7D@h%yaO~i`R+vOcV$XrI=~iQdn}0%%A*U9!{bC9c%R(V_60tgoSe14%WiCor6Bpn=0Y06~|m3P!u|Q7jcJ_n_7qs|nU3 z7@8-n0j(f~`o@(z_Wj&w3GFSwkg^n$QCss;<>M;lhE-iKxh=RXv8J1vRC#i_f(Bf| z4b___F~y_Xie+ufC0HeaU-cj%!M3EDTrVbIb!kD(l{ zlT16LFsqjY*PJg)GjR@gD8`axczC#hM6|sqhgn;RyO5ZNm^}HWJdfs)?9zl4j~k>f zYmj0Z8>DC74?{2X{ov}-ir3~MOOzQ-bJ#`At~i`7wg`CPSP9z-9$F~9Zf196apKfS za1s3zwiS|IS81;o;&zIY^|IUtLiwRjrEvchTf*||kx(wwcCJdpgRCoKu zf_4ihWMZjG8_3ZIKJe=7%TK{ESKGwG*cB{Ew@gO+9_2uW4BI)_AtXLb1s#mZ&=976 z=$~zwm9xyrzJYSgPO=VR*b&)T^nDjYDlC={@cFh(vlBjhIBEsQTSpRQLRk!aFl#3b zvoeb@MMT$cq*Zqg7|Vw4Y9TqpaN`^k9E$R`Ws9yK(SI{s;?pfV9Lz&@ z`-u~JL<0i$42hqpdvQSg%lFUl>eyoB#~bAEp*M%33^)0LtNT~L6FB8HcwRqz=qlNM zUfQHR|9Eu)aBK&-={X3C=LQWQH+8B(5k}kc&ff4iqOaEcIZe-CM%%e1g|S^f5(aff z-LD!CA@t2Z^>GSJGlD#Vc#IWccmf3$ZK$g2{dTpP&kfzu=kv{KyI&KA2fPsQjMN%N r&t%AnhNIDl+W+sL literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/stickers_32.png b/app/src/main/res/drawable-nodpi/stickers_32.png new file mode 100644 index 0000000000000000000000000000000000000000..6881ccb2590aaafdcd0a5896f4c32c74c5b07c19 GIT binary patch literal 1952 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 r&t%AnhNIDl+W+sL literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/stickers_34.png b/app/src/main/res/drawable-nodpi/stickers_34.png new file mode 100644 index 0000000000000000000000000000000000000000..6881ccb2590aaafdcd0a5896f4c32c74c5b07c19 GIT binary patch literal 1952 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 ZoBxgI+}q~8Q%3**002ovPDHLkV1fn$%NhUx literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/stickers_37.png b/app/src/main/res/drawable-nodpi/stickers_37.png new file mode 100644 index 0000000000000000000000000000000000000000..2f1a5bbd309a0829e2ecff8449cce3d2b2300383 GIT binary patch literal 1622 zcmV-c2C4apP)G1II@$vEGFMe5@$t#Y z$p#ua);=Wr__ zJV&Af9xj=Sfg;^jkOB>MJK?~`fW3WsJ$$^se;lqU%PKhH4p?TqR#8G986P$h4l(;1 zPsVvf7p{3kUprAK7!9QkIm@Wunu9No9Vu0C*=TSfzl6NcR&7~aUJ8;&aM);Zpezmx z8@D83#lmqt2WN?y`b(=7htJ;dND5!eL0HJoM;17}w_xsIK7__1uX@?sz=b3VEjFAF z%zJqtSuRmd*1POV`aMK9#COrBW8L$YBERn3XnM5+^Bx_;;%Z*~$&#%oSS2-Rm zv(}io<~wSKL3*X0e!W~a2Dn^!bV@e_Ftd@~0S1yCzHeILomytVSv;)+U}5XwVbdCi zP}sj?*Cs;y>0|Q%K4`D;RID0BvRjsGmG>#-54wiaVg8tl*n#4;1U#aP;E5vvMX zYF^+y05kI{s?1^YNH-571v6WszD|tx3n57D9I2 zuGQW4tEpD6I!N3}P#PoUOEMD)X5tNJyT$ny?Yk z1Km7ATAowK;gARa0gg}M9n~n(ySMV-$=F^^HpHX9MIuD@y*3L*VK*OAEj0F)Bc~z{ z>A5%H_#x_)e#g#e;n6}hl&YYyk%A@29*RWrrIfISdXZvn^8nD^81gl zkUd|HYKIN)=8ŒxdFE>=qE{Jvha=g3z(*f8gK+g5!AkK1rWS-u$Ze&X)+lixw{ zK)717?&l!8X0Wo+g@kh3+dBO#9nZ(H1Jo^ybBNB1_CoqVkQdHgzo3b zIaV(*6V^u1yh}7y0t1%V)Kqy~tP-V#qph@Z=opHNRRaBnP4`~-4zLd-4vCkS&mp_H zEd>TgNY8Ykz)b99`#scZ$x4wHtb7c0^S}&zY>bSTyuVg4nu-P%?ha#Uc|%y$Prx-@ zTyTs%;QIcXLLU-73Z-AA5U4bO*;$ijzKAtV;U}s(|1`AC+&ztgz&{e9ZK1>Ph-3u|?(ZN>wOu(8~j_b>T_oHuF zFcG?W>G4=olp^pUxK5D=>fm`bS$Sm6ADNsz9%2#W_Y*mK{6Jy1`_lJ|U;Nkj3p~}f U-jLvMz5oCK07*qoM6N<$g6ne~L;wH) literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/stickers_38.png b/app/src/main/res/drawable-nodpi/stickers_38.png new file mode 100644 index 0000000000000000000000000000000000000000..2f1a5bbd309a0829e2ecff8449cce3d2b2300383 GIT binary patch literal 1622 zcmV-c2C4apP)G1II@$vEGFMe5@$t#Y z$p#ua);=Wr__ zJV&Af9xj=Sfg;^jkOB>MJK?~`fW3WsJ$$^se;lqU%PKhH4p?TqR#8G986P$h4l(;1 zPsVvf7p{3kUprAK7!9QkIm@Wunu9No9Vu0C*=TSfzl6NcR&7~aUJ8;&aM);Zpezmx z8@D83#lmqt2WN?y`b(=7htJ;dND5!eL0HJoM;17}w_xsIK7__1uX@?sz=b3VEjFAF z%zJqtSuRmd*1POV`aMK9#COrBW8L$YBERn3XnM5+^Bx_;;%Z*~$&#%oSS2-Rm zv(}io<~wSKL3*X0e!W~a2Dn^!bV@e_Ftd@~0S1yCzHeILomytVSv;)+U}5XwVbdCi zP}sj?*Cs;y>0|Q%K4`D;RID0BvRjsGmG>#-54wiaVg8tl*n#4;1U#aP;E5vvMX zYF^+y05kI{s?1^YNH-571v6WszD|tx3n57D9I2 zuGQW4tEpD6I!N3}P#PoUOEMD)X5tNJyT$ny?Yk z1Km7ATAowK;gARa0gg}M9n~n(ySMV-$=F^^HpHX9MIuD@y*3L*VK*OAEj0F)Bc~z{ z>A5%H_#x_)e#g#e;n6}hl&YYyk%A@29*RWrrIfISdXZvn^8nD^81gl zkUd|HYKIN)=8ŒxdFE>=qE{Jvha=g3z(*f8gK+g5!AkK1rWS-u$Ze&X)+lixw{ zK)717?&l!8X0Wo+g@kh3+dBO#9nZ(H1Jo^ybBNB1_CoqVkQdHgzo3b zIaV(*6V^u1yh}7y0t1%V)Kqy~tP-V#qph@Z=opHNRRaBnP4`~-4zLd-4vCkS&mp_H zEd>TgNY8Ykz)b99`#scZ$x4wHtb7c0^S}&zY>bSTyuVg4nu-P%?ha#Uc|%y$Prx-@ zTyTs%;QIcXLLU-73Z-AA5U4bO*;$ijzKAtV;U}s(|1`AC+&ztgz&{e9ZK1>Ph-3u|?(ZN>wOu(8~j_b>T_oHuF zFcG?W>G4=olp^pUxK5D=>fm`bS$Sm6ADNsz9%2#W_Y*mK{6Jy1`_lJ|U;Nkj3p~}f U-jLvMz5oCK07*qoM6N<$g6ne~L;wH) literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/stickers_39.png b/app/src/main/res/drawable-nodpi/stickers_39.png new file mode 100644 index 0000000000000000000000000000000000000000..2f1a5bbd309a0829e2ecff8449cce3d2b2300383 GIT binary patch literal 1622 zcmV-c2C4apP)G1II@$vEGFMe5@$t#Y z$p#ua);=Wr__ zJV&Af9xj=Sfg;^jkOB>MJK?~`fW3WsJ$$^se;lqU%PKhH4p?TqR#8G986P$h4l(;1 zPsVvf7p{3kUprAK7!9QkIm@Wunu9No9Vu0C*=TSfzl6NcR&7~aUJ8;&aM);Zpezmx z8@D83#lmqt2WN?y`b(=7htJ;dND5!eL0HJoM;17}w_xsIK7__1uX@?sz=b3VEjFAF z%zJqtSuRmd*1POV`aMK9#COrBW8L$YBERn3XnM5+^Bx_;;%Z*~$&#%oSS2-Rm zv(}io<~wSKL3*X0e!W~a2Dn^!bV@e_Ftd@~0S1yCzHeILomytVSv;)+U}5XwVbdCi zP}sj?*Cs;y>0|Q%K4`D;RID0BvRjsGmG>#-54wiaVg8tl*n#4;1U#aP;E5vvMX zYF^+y05kI{s?1^YNH-571v6WszD|tx3n57D9I2 zuGQW4tEpD6I!N3}P#PoUOEMD)X5tNJyT$ny?Yk z1Km7ATAowK;gARa0gg}M9n~n(ySMV-$=F^^HpHX9MIuD@y*3L*VK*OAEj0F)Bc~z{ z>A5%H_#x_)e#g#e;n6}hl&YYyk%A@29*RWrrIfISdXZvn^8nD^81gl zkUd|HYKIN)=8ŒxdFE>=qE{Jvha=g3z(*f8gK+g5!AkK1rWS-u$Ze&X)+lixw{ zK)717?&l!8X0Wo+g@kh3+dBO#9nZ(H1Jo^ybBNB1_CoqVkQdHgzo3b zIaV(*6V^u1yh}7y0t1%V)Kqy~tP-V#qph@Z=opHNRRaBnP4`~-4zLd-4vCkS&mp_H zEd>TgNY8Ykz)b99`#scZ$x4wHtb7c0^S}&zY>bSTyuVg4nu-P%?ha#Uc|%y$Prx-@ zTyTs%;QIcXLLU-73Z-AA5U4bO*;$ijzKAtV;U}s(|1`AC+&ztgz&{e9ZK1>Ph-3u|?(ZN>wOu(8~j_b>T_oHuF zFcG?W>G4=olp^pUxK5D=>fm`bS$Sm6ADNsz9%2#W_Y*mK{6Jy1`_lJ|U;Nkj3p~}f U-jLvMz5oCK07*qoM6N<$g6ne~L;wH) literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/stickers_4.png b/app/src/main/res/drawable-nodpi/stickers_4.png new file mode 100644 index 0000000000000000000000000000000000000000..2f1a5bbd309a0829e2ecff8449cce3d2b2300383 GIT binary patch literal 1622 zcmV-c2C4apP)G1II@$vEGFMe5@$t#Y z$p#ua);=Wr__ zJV&Af9xj=Sfg;^jkOB>MJK?~`fW3WsJ$$^se;lqU%PKhH4p?TqR#8G986P$h4l(;1 zPsVvf7p{3kUprAK7!9QkIm@Wunu9No9Vu0C*=TSfzl6NcR&7~aUJ8;&aM);Zpezmx z8@D83#lmqt2WN?y`b(=7htJ;dND5!eL0HJoM;17}w_xsIK7__1uX@?sz=b3VEjFAF z%zJqtSuRmd*1POV`aMK9#COrBW8L$YBERn3XnM5+^Bx_;;%Z*~$&#%oSS2-Rm zv(}io<~wSKL3*X0e!W~a2Dn^!bV@e_Ftd@~0S1yCzHeILomytVSv;)+U}5XwVbdCi zP}sj?*Cs;y>0|Q%K4`D;RID0BvRjsGmG>#-54wiaVg8tl*n#4;1U#aP;E5vvMX zYF^+y05kI{s?1^YNH-571v6WszD|tx3n57D9I2 zuGQW4tEpD6I!N3}P#PoUOEMD)X5tNJyT$ny?Yk z1Km7ATAowK;gARa0gg}M9n~n(ySMV-$=F^^HpHX9MIuD@y*3L*VK*OAEj0F)Bc~z{ z>A5%H_#x_)e#g#e;n6}hl&YYyk%A@29*RWrrIfISdXZvn^8nD^81gl zkUd|HYKIN)=8ŒxdFE>=qE{Jvha=g3z(*f8gK+g5!AkK1rWS-u$Ze&X)+lixw{ zK)717?&l!8X0Wo+g@kh3+dBO#9nZ(H1Jo^ybBNB1_CoqVkQdHgzo3b zIaV(*6V^u1yh}7y0t1%V)Kqy~tP-V#qph@Z=opHNRRaBnP4`~-4zLd-4vCkS&mp_H zEd>TgNY8Ykz)b99`#scZ$x4wHtb7c0^S}&zY>bSTyuVg4nu-P%?ha#Uc|%y$Prx-@ zTyTs%;QIcXLLU-73Z-AA5U4bO*;$ijzKAtV;U}s(|1`AC+&ztgz&{e9ZK1>Ph-3u|?(ZN>wOu(8~j_b>T_oHuF zFcG?W>G4=olp^pUxK5D=>fm`bS$Sm6ADNsz9%2#W_Y*mK{6Jy1`_lJ|U;Nkj3p~}f U-jLvMz5oCK07*qoM6N<$g6ne~L;wH) literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/stickers_40.png b/app/src/main/res/drawable-nodpi/stickers_40.png new file mode 100644 index 0000000000000000000000000000000000000000..afdb9d523df2ff65744733b52de8914a249e7e9c GIT binary patch literal 1466 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ŒxdFE>=qE{Jvha=g3z(*f8gK+g5!AkK1rWS-u$Ze&X)+lixw{ zK)717?&l!8X0Wo+g@kh3+dBO#9nZ(H1Jo^ybBNB1_CoqVkQdHgzo3b zIaV(*6V^u1yh}7y0t1%V)Kqy~tP-V#qph@Z=opHNRRaBnP4`~-4zLd-4vCkS&mp_H zEd>TgNY8Ykz)b99`#scZ$x4wHtb7c0^S}&zY>bSTyuVg4nu-P%?ha#Uc|%y$Prx-@ zTyTs%;QIcXLLU-73Z-AA5U4bO*;$ijzKAtV;U}s(|1`AC+&ztgz&{e9ZK1>Ph-3u|?(ZN>wOu(8~j_b>T_oHuF zFcG?W>G4=olp^pUxK5D=>fm`bS$Sm6ADNsz9%2#W_Y*mK{6Jy1`_lJ|U;Nkj3p~}f U-jLvMz5oCK07*qoM6N<$g6ne~L;wH) literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/stickers_46.png b/app/src/main/res/drawable-nodpi/stickers_46.png new file mode 100644 index 0000000000000000000000000000000000000000..3cd97d6c1d8845a497bbddb84dd9072768217b56 GIT binary patch literal 1385 zcmV-v1(y1WP)+$jN($dnSqoaI$eDd=0l+XV_Id0kR|4Br5a&ns9-Q!YCeqCIOLp^bZg{Qv8*{!zF z$=mSN)ZK!w;gHDqmYTS1g|>>j>wBNjG_@*E0000NbW%=J09Z)p@c9xj*&NC+c)1CT zvusaq%AR{@j>8QA00ezWL_t(|ob6d@lcF#bl>5*TM%@(wxg1dR|Np;zBmsdW1O#_$ ztL!gRB{a=D(l23Fs}DZ-;J<^lb6i`|G{ttEo%I$4M>%$&I7{p7>>~s2Zb1pdJ#ye0 zOKCXTkqgaPM8bMzD!YYolq69c-m>OLdx6pzDtTC*2B#K+^h_?O#!?!2c%l&I%cvN* z9NH~GZy!F2`}KM+9wCYJE-n7zhd_?T~Ci(sn&pkA#7sP@*nN-Hp=7Qtau_zMc?O8>73^ zW&rHO8kgvlG*&AXX$(3!MHi6@v0QA2H6CJ-NBe$anHsOjaLuy-n|kHxkFxYepe*s- zXaEE_XQs~XU96E*c6jw(!nLx@1greoveqD4ALn4ms>CQNJ4G2&Wo{r(4R-CA`Zr8g609m;0S%obQx@M6uMxCX?`eo<9H6Y4f<@re+U z5p$4qR!PE9i%*0HF@IC)=SwAiIIFcV?xZLxC4wvkvN^jXP!y;vvKC4H7a|Jj;04pA zNYdXZy!8GS{-VSlcyu((g7GB;Up(Jar)kpKJK5DF9lIZEE)O+}7k)Z_*Ec2$; za^shgtrfkIm?+TONJx^z(CD5J6Z*7!iZY)dix`)a_9^n49Y||)7oXTjYmt<5LrgYz z+HYn>Ix5E;zC8rgBZ6lnjEnG{qTbzC8q$^{vNhBr8`Xg;{qg;uN}~FkCjHHPYr|b> z=qoNPo6Un7Tp)n>6#9O6iXo&6wVAJBeh+J`dWWEn$WOJiPJF*AaQMR$QK5H58g-A+ z=_2s`XCE*{AP#vuq+mEU`{UL*qD7)J^H$AthK^cR^M&pl20@s2R8sgQt3@)no^~|4 z43~R6HJVfJ8FgqtzbX8lWn_eRBkeI1PB7N;0#9o!d4{t zcS}XxNRp7TW{bpJivp3AW!4(Vo<=Zu>Ef8JSyA-OSM^_quMM)NF$`|ugIhf|Zo#vR zh_aO>0N!)E(e=|Af}wR_ZEdGB2FI`R&Du&$XS6pG{VA(#*!$<{ z40y9ceNT7F9=Q9p=?rA$^pr)$F6&D%05UygiLo!osI0s{Wr?vb$UuqiPTB2hwLGIg rW#7Z-P1!dwR-GyPHpT}Z{4e+eG1II@$vEGFMe5@$t#Y z$p#ua);=Wr__ zJV&Af9xj=Sfg;^jkOB>MJK?~`fW3WsJ$$^se;lqU%PKhH4p?TqR#8G986P$h4l(;1 zPsVvf7p{3kUprAK7!9QkIm@Wunu9No9Vu0C*=TSfzl6NcR&7~aUJ8;&aM);Zpezmx z8@D83#lmqt2WN?y`b(=7htJ;dND5!eL0HJoM;17}w_xsIK7__1uX@?sz=b3VEjFAF z%zJqtSuRmd*1POV`aMK9#COrBW8L$YBERn3XnM5+^Bx_;;%Z*~$&#%oSS2-Rm zv(}io<~wSKL3*X0e!W~a2Dn^!bV@e_Ftd@~0S1yCzHeILomytVSv;)+U}5XwVbdCi zP}sj?*Cs;y>0|Q%K4`D;RID0BvRjsGmG>#-54wiaVg8tl*n#4;1U#aP;E5vvMX zYF^+y05kI{s?1^YNH-571v6WszD|tx3n57D9I2 zuGQW4tEpD6I!N3}P#PoUOEMD)X5tNJyT$ny?Yk z1Km7ATAowK;gARa0gg}M9n~n(ySMV-$=F^^HpHX9MIuD@y*3L*VK*OAEj0F)Bc~z{ z>A5%H_#x_)e#g#e;n6}hl&YYyk%A@29*RWrrIfISdXZvn^8nD^81gl zkUd|HYKIN)=8ŒxdFE>=qE{Jvha=g3z(*f8gK+g5!AkK1rWS-u$Ze&X)+lixw{ zK)717?&l!8X0Wo+g@kh3+dBO#9nZ(H1Jo^ybBNB1_CoqVkQdHgzo3b zIaV(*6V^u1yh}7y0t1%V)Kqy~tP-V#qph@Z=opHNRRaBnP4`~-4zLd-4vCkS&mp_H zEd>TgNY8Ykz)b99`#scZ$x4wHtb7c0^S}&zY>bSTyuVg4nu-P%?ha#Uc|%y$Prx-@ zTyTs%;QIcXLLU-73Z-AA5U4bO*;$ijzKAtV;U}s(|1`AC+&ztgz&{e9ZK1>Ph-3u|?(ZN>wOu(8~j_b>T_oHuF zFcG?W>G4=olp^pUxK5D=>fm`bS$Sm6ADNsz9%2#W_Y*mK{6Jy1`_lJ|U;Nkj3p~}f U-jLvMz5oCK07*qoM6N<$g6ne~L;wH) literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/stickers_5.png b/app/src/main/res/drawable-nodpi/stickers_5.png new file mode 100644 index 0000000000000000000000000000000000000000..99cdb36aa940cc25b2f3ff9c65b0cc0daad607da GIT binary patch literal 1570 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

fe)fgGy_E)0pzpp`Gmyhpk$M&>mH@J> zj22~@vt7$v@+mk2=u zmj64rs_tS}2tscwQm8ThRb}qGB9b1RvJF0!?p2BzU>iCj;@YY0#(A|0y#uRKgHHN~ zvZ}9QApj>x)1V;m1qwA8K-W??5)vm(Z724NLcPT*)fGV1cab9sU_u=Hi?-2z)3CeK@#T#@ksB~EM)+$AV35FM+C^r)TWyc zcnpq@fh{C~2>_8>5O@Hfb~ubUz{rdQ0W8ZrLJ;Hx;U55y+m}TSU@TlQfa4kfqEZd> zXPceUp)h9v8%N9l<^^03IAsDaoPVhtp&bDPp)p#x$L?a=YYtGU)M1MbZ%=@n2pfweK6XmQCIzedA(ST0Iok*S`M)MAkapm$r{Rg$Ll8mJ92Ib z95e?Vp2>edkL1eqr&1s+Y~HJwW7G5ZsKJ~6;|<~psf?~a^+0i>gD0QrKLR@7J_CswUKq5231 zp*T&#+V(Cs5snkM3q#XI#w6TSs@ub1JX%=C27rVqD^_S>u{}$zf*{$80>GvcHl)6N zu`a27qdql*2TQcjW+x-7lw%IiNj)71%BSZij-6VU%hA5MelvNrJag8}1R%-B$bc;9 zI3$sN+|F*u^&>GH)MM)H)2_Wt`g4K41;>LRn z0KMD7j3vO%E$IgnQ09RVF4v!H;I>`c_zMhxj=LfSHDFML-rqh0D;kIwaZUKVe4nY@y zAQA=8jI~o!&jGCV8;l5IKo{E<8k?kPG(&)O`=vp&HUt4+P4M9aO-~5n(v4>K4QV4tnjrB#74Kg|(9g&SdfUS*@Zp*;}#A0*L7T#CncK;8UwA`8%iOKfab zb!M6-0oC9!Fc@vBhdu6Ma~sURPp9Qh=Y^e*&1`h933JkXs*|~TKI+A9qpv{!>3gQ* z&*V=hIzh!|NcdSnOZEJ+4cZJa-|nfu2emy_I$>R8NgVA z0sexV!4KOauK0si(tIjqP<)>GW-ePPeIIb58`oD0fGin}g+yga_^$A1P8ct6qc1Z}ZH0W#@WVNCaZe)O( z$HX7<;(gH+BMN@#H-^^IVBG~DpR3`9CA{vjo&XB$s60Y|KRj>B`>S%eowIP`9y?V% zCLRSG;LnK&NdIY$|FI&F92gx=$}E0tE?1O zq3Q>Oe9vQVf&|$;ypZc(VT(1N%A~&*ZZZLsJ?3Q|>jOad@MhEHayok-j}2q~J;yrS za6mxyz2`AefP6lo+gH?M&c07mQq^=o$Tg1vfYhrWDNP5|WX{gindsOr*A586Dm)gh z#DrJ{Dcs~6kBJQ>6#&dOHXUG(yE)Sp!@-09^vA0l5Sp&b`pU@X zxv{`{u*n3h{iGh)n1a74?IF5BQ8nB^nF^g?;W6={TvfiD|3VNTR zq-F#hmEi)<#ld5+yUWE8TI$_N`VR%=NRVm=&nO>J*$}$PJ3%&(&|@Rd(qHaOvN|_n zgL^iG8l}=qmGPPH05x|eS`ls#aODi4f%uuPK{a$HQ0Fv-4eBIKo#6A{IB4!nH1xHs zvi-pmJHh(^x1EVDXT#`IJHbYRo6aPwa}t05MtNo@co(3l&QWv70iM+f-t~drROi?s z_1sSI4gh<)s8;8iGo)7|c9$UUOv-icQSbg-fMLG3tkk*24C&ViJ|xgI x37RtG7YUj(ioXr{{R-cD!llyi`4)C002ovPDHLkV1nz2fph=> literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_11.png b/app/src/main/res/drawable-nodpi/weather_color_11.png new file mode 100644 index 0000000000000000000000000000000000000000..5f1b6b6c0ca4dcf4a97687c08dc787d91eaac3ef GIT binary patch literal 3508 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

C0002AP)t-sM{rC4 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

C0001)P)t-sM{rC4 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_14.png b/app/src/main/res/drawable-nodpi/weather_color_14.png new file mode 100644 index 0000000000000000000000000000000000000000..58936279df8b6201b9c458ca37ff45ddabf63038 GIT binary patch literal 3567 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_15.png b/app/src/main/res/drawable-nodpi/weather_color_15.png new file mode 100644 index 0000000000000000000000000000000000000000..58936279df8b6201b9c458ca37ff45ddabf63038 GIT binary patch literal 3567 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_16.png b/app/src/main/res/drawable-nodpi/weather_color_16.png new file mode 100644 index 0000000000000000000000000000000000000000..58936279df8b6201b9c458ca37ff45ddabf63038 GIT binary patch literal 3567 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_17.png b/app/src/main/res/drawable-nodpi/weather_color_17.png new file mode 100644 index 0000000000000000000000000000000000000000..c9a81c11aa2e71a4e494a0b50d1d49715039ff50 GIT binary patch literal 3221 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 Hu0mjfI?D$h literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_18.png b/app/src/main/res/drawable-nodpi/weather_color_18.png new file mode 100644 index 0000000000000000000000000000000000000000..e1d2691bbff8851842c456aaa86256376229af50 GIT binary patch literal 3754 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 UUf9%D`v3p{07*qoM6N<$g8O6v)Bpeg literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_19.png b/app/src/main/res/drawable-nodpi/weather_color_19.png new file mode 100644 index 0000000000000000000000000000000000000000..052cfc68dd39ea3d58456c7fcc6172b4e5723a0f GIT binary patch literal 636 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H3?#oinD`S&83*`;xVjhku%d#wZ8?{A%>#;U zm|0tw8E}5vjB9%rJUO*y&E)c}a)iI!U?vfzCUc0QKrI{giqwu2{8Bt5C|AqYBAiT4n#Q8cS z&>R$S;J;!>@wN%N?^k!OJ=2=>_xJ_zpSM2RmTwaK#QWo8*!eprqE1|2e(;cqU$Ua~ z!7YvVm@11Er5l(3{-I%zmm~k>dL{EQCqu?^{f{Si?)s^}L6oghaK~x)iKqG8Kf7k= zOxdnDQ8}F1x89+{c!i2sm*AgYEghSt_I!Q*NBN?1sQR}JSw+9xlBb=R5O79mc}f4G zzBgXCwB2qxzj)CzDNc0pyNNQ57j>+UKB?|GZWW~#VAdUS#x2BW*YOjzDy3We7UWE8 zN^|ZC8_(LBCv-7o{X7ycYjztg_~D z^LEis867TP^g1*CZ&MOH>7=sg-Fu;nZy4NPb9=IK3jSO($)vL*$9=P2;W3@`#XoW{ z8MeD${_=85_LSa9hR0npo=8})l_^eQ>dG$&6()& zJ!Zw8);XSWJg#1Xk>3Q2{0~f7ZhqDAOhw_Ir3>@Ux-IDUf7(2QHjT#65 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_2.png b/app/src/main/res/drawable-nodpi/weather_color_2.png new file mode 100644 index 0000000000000000000000000000000000000000..1664c72cacb62d206e18820c37cb88106479fa27 GIT binary patch literal 2780 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 ZtA;6NLywI3wSr?H0Z&&ymvv4FO#n|d8MXib literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_21.png b/app/src/main/res/drawable-nodpi/weather_color_21.png new file mode 100644 index 0000000000000000000000000000000000000000..5830cb4d602b371eb5cf51f661f5b8eba793610c GIT binary patch literal 3994 zcmV;L4`uL)P)C0002YP)t-sM{rC4 z00000000000RR930RRUD0@v8s1OovG1_KKR0tW>G1q1;C0s#X801OBMooN~Hr7Y;A zFX7_jy@4P4u`|(J75}6f|F$;&mI0w)1oZd&%goT{ z=jg)4$+fMa|Gzq~ZVvL22lSvG<(ebdfd#~O2k46h_T$F&)TGFmQsBp;Q13G#0000c zbW%=J009ID3=$pwBrQTVT^LSs{`}$o{_)KJlbHUhd6TzadB0ly-o2xZ9sU3S4p&J; zK~#90#aoMdn>Z7-!4Qm%U1&_o`WkQR3t(I6wq26u@^AP3-|3$jNgzNtcIs{iw~3wa z^Er%0Ge;xQYQ4?cV6ER~?c7?w#Q@ka_`lymf#ciVwn-GqfB6p_L-=NE`ln|QgF5^# zW`OvejvZvKl%S294Dj@4OYEL*_OoB(%>VT_lpl3y+YS#f~bvFv~`HgY?b zDQ>q-pBvUVn;M-pnfz3a=5CQyR7*rWqJOaEq!h^A;MYn69TRO`TLtA=EX#BJT48sbS zW}C-5-6}Z19!mm2&w?;OmV^(Vux#Ra7a9YCGp!&43Z|r>Isov-Hu%6q{Dt^1n>see zX6q6R#Ej3fao3<(kN1iWNTp>{3p@_jG?Sddu8m`G34HXo<=~9VMhlxLz`c6zD9#C_ z@!az~OLF4F;&@6B{6uQx{_X}C@hl6L76dwcU{6`P$}J9hw$}~WDrdyzwkJ}-PiAK% z;Mu(qO*xwr$DuKX}kkFGRj@w98%&XlS6 zt0bKUasCbnu$dzXP|!d)7^d+y0w&-U1mL?zi*7F<2PDaEcR1|#hrDXz%fk93{pd)U|!g0FV9k!eG`YyNidb2(3B#YE{9n6qmhGDx?m_>nwzrT$@ z7YPV>`ub$MR*)4Q>#g7r&m9QEj$t}WM29&vHLW*PsDeNNzuT{K)Z{w$X$4BoT=`QFps3&0;5Wi*6t=50PYaZsd)?CrQ1us?L*#uRK;L#) ztMD6*l_>0sv;gI4h6GL+0;>Knf7(=rOssK0U=oYlKZai8ut^FAY|`tV5(8YY%y%?G|3r z;H`#&7=|)G@BrqWlaQuVxe;I$TGp!Hyt2D$IB<=hP1(ExEgOEuF>`M246uwG9=A=VBb9=lz z8-+O1b7)iQ>$y=T9FVNl`>&uM6l-?E-Q8+7nY&%fG!$!KAjZJ$2aFHErV;;8w-N`1 z!8(o85$2TXVu{gcv|2`kHjrcB&NzX64Zjgxp-^Ffr3teUWfwLYL86`7M;Oo;^r-+Q z3chmt5^i_c6{b=s7>GgGM7$UIg{uR&!)p?nMhQV5KK{oA@ zI?>cdDS}`O+$gR(pa!3)*2q9Dj7We%TGGm+qR#^5pf`v>f|MLk!B1+YP>>AjE{NG^ z;_50xzKDaRjMbgbf>d!p9Y4`o0|P!2WE8My;0krpt~no9GN!#8gCI!d6sQs?-@jNK zmMG|5u;B#QtS?4D4S}|7@fnDop`gYjtVTcyzl2`m(C7k@3s}$}xZRoqc!RUe(HXA- zT!mF5P{ChSOwXWj0j0xqLIYr#6$cpP`4Oz*ave~Fpca3nv4Vom1vmz5HpmB{Ou#gj zxQ1jo0c8X#1Qh(DO`|Z-3<94AJ6N`B2Y}~aYat2H5Y*>@>VPV~j)5`;A{(Z`P!2$) z$xq40CI(Uo?eh>Q@XHQJWlt(rD5zmj9fNHWX$L^$e^g?l+yO!e=pCT0`h?XOXvSdU zM|ua42ateE3>rc}aX=lvkg!JxtdlsLbZtHb>M?)>29tmZ0(l6OM<6L25LZmgKqUal zFpkGA_EjqkL=A=#*q@*l%VY4E17znxMsBPOf;I?vO=hF1lQ(_KH5e)oFc@+*csPv! z;}@&ApdkwPJQ-8Jv+M-12f`VIEUip}A_*uFAn;kq2W0|>%0%1>>d@~r%M{u*23x%c z$_`+K#Y`p85Cq%2UBIaIZIs%{1%p0F;*$uJ802HnOkks^qS2zf=O-BONF2_zdFTWW zyh0#Rv@x~5D-5tR&PTyNg@A~FOm)HO1b~54(&lm$Fdqf+_E&oV#=x=4x{Noduqo!V zSAsBAJy3DLDM1)#@odl)ox^s8fCqh1?KIpS3&MITY@UWGVg5}`jE_WQyCrcp^npi0zY zbhH>Mx%ky$l-GhdC3wR3lxZmOrV4w<3|6irku$9KCl4x>KZei!!>s`wpm zoUuZX9M=O?L6DxH2UbBu-gmpG3e=+q1%6Io+aL(E49b$MsTgkkVSf8%Q6Nr4gsLVy zys8OHnpBTpnFJ}UiU#EUiY6fkbc3=iudPcos(4k_#5GyItq7tt0{8RiuL_b*XNeoc z1%Y}H=+*_~hE)|_#m}d}-CdHT{+wC^rde5-peXga^J&Pkyg|6H27z{Erbpi&zE@X< z*rrK9m5S+a)JDMLqI4E8zBXOySLgb*VUqZ}@BVjuNn69Ud00Ob_Wk?L-=$MA|4Mtg zqALOfpb|&3ASMc%(&DhhKv^Cqhz`)cFW?{X!q)@83IaabXbwRDQD~@pxqOe@;SBo3 z0d|QGNBRS$z63!3^S{&W3hn(TTVar^p`Obr5Qj>GprJ#7&VT&pud01L`WEd|r>F#? zGvwJoL2?*I$-eA@3Ik4ImjJ&1UTas4Z_vJWJL(xIVt^Eg!+?~jXjE^S7yt*vhvB~Z za`i=h6<7ZLs`8hstDdF0KpX>-96%Qar7qE?u}=v2H-CTm_Dy}kKYkVO`3rxi-@aUp zYjS{^RCqvwf+1o`uU^wD6eJGlfT!ypf1hWcK22T6u1Z4Qrt5HV9>xv3C6#tL5V*Oy zzQ2F>`Q7Iu_O5JEU(+irH7e&!ZWnM459`eXPcGl9_5cK)fdSfQe%0*$9b9PF-2Uk2 zje=II)-6N=VIASZOf$L4*gU-a`PcdO@ADJc3;y?b z%W;KiBx$8t;`IV1*IE9<%hlKSUq$jzFR=GtvfI4bVvuXm@P*S-nD? z0)a=$Gv^piJcvIea3ImZX58%v-4Pq8&D(~aI}%Gi(1uq6nt$?e+D2-HsDL1}`#M`hkmS$1IM8w)Do&4J{Un ziI_LTKK{JLWLq)Fsy~hys4wMyn zaH6fPo@C1pvyIdiKpOiy2*_uBCJ@Q+LvBCp!Ft%4Nq@ z&}jrRCOV9ip8I%|8?pkV$W;e@x? zC_TG_h;Odpv=~j07!FJz4%o+`Ji0||J#L-aX5DE7=vdJx;0;b1NGeuz)GDU^pNRWq zfT6)3amXUEK`U|z3IX#C@U8rK|6z``e42v$rN{TX=+i7eKG;?h+gqM6 zQ0lXcBc7ezKA)P5HpEfucKLo6%1M5NRRaF(0}i}Cqo5XXWb$J^Grm_8QG&%-b0mX| zLf|rwc(g=)wn@wv54kwB(G7EhpNPPRT%?kUST^om@F5pjpNlY-r_IKAuROu?$9zPe zZNg7VUFtC(-bg1ouRiF6E`Zcj97!qqZ0>xHMdwlvn~Bp+X5~>YbU~Q$0H6scwNw`~ z#o0yYxC`3l#;SBdZ!&f{e(|uIg&I!mhFt7F*VB%Ja%~6z4RlORhLNZYmR+Q|P|qE!M+*si!8+T?cXu z3TXJ>yndPK1ljkiB7;^kPyVcbxIoWXXZ`w);1f%DpRn#Y9pUc*WIVsTAYsn!l{_iB zGq^3X6_)d*=oXah4Jo#3Wt!6H$^PqhX?x}_zxi{5<@YhgF7TIc`uF?sg!diu4mq#j z@u_cfxf1U9S^U9txi4J@mayv27tvnW^7Zi_-FeE=)30pED*AW+n9kR(ou@l*d#+I4 zJ1OZXN3n`kRzT1aiNwCbGus?8r+FA&l9`g(7(P=qtjEB8)#9zpztaRYj#bZdUbUD@ z^{v*jDarBf|9)DpG2kvfwra*>nR3Y-=?_AJQ>S`7JX)(HAjo~XGsE}>kLk6-mBmYT zy|PhL@^P8b@h?Y-Yv#*;-xoH%$(k~$!p}f(VxH-1BkN_>C1(O;I?KW@|0%mAdDiWw zp?j-&QIDMVag&k*M+|jkHx&AKbNk3Fwu{$Q|G4);A*br(JzS?xd+N+@X5unWICt|7 zx2cUxexAnDA0`o8PRT1y22DKP7IkA^?i+U-JBxt9ADD qSk9)kuf@;n`*}P&#t4kodtLI;^CqYtb9r_T6v>{helF{r5}E++zaEkR literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_23.png b/app/src/main/res/drawable-nodpi/weather_color_23.png new file mode 100644 index 0000000000000000000000000000000000000000..d7a10eed9dace64d31f0bf3f9210efc1645704cf GIT binary patch literal 1177 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_26.png b/app/src/main/res/drawable-nodpi/weather_color_26.png new file mode 100644 index 0000000000000000000000000000000000000000..5c6057de8d555e3660762f4aa8ba3ff1f40f0432 GIT binary patch literal 2844 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 Y2N2B*#I0#6T>t<807*qoM6N<$g6fxj^8f$< literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_32.png b/app/src/main/res/drawable-nodpi/weather_color_32.png new file mode 100644 index 0000000000000000000000000000000000000000..da6d3d53b998183a66b5c591490487faf5a184f5 GIT binary patch literal 3290 zcmV<03?=i4P)C0000{P)t-sM{rC4 z0003200jd92L%BP2m%xi1P%!TT0RhXR2kZtD#nW^m1Y~Td?o9nD)z86|E?qW%64dO?5-NRf`?@l5|*rcI{#rorLC z4kDM!|IbG!%jn<#P<~Ou=l=?Vl004W?7u>gWqDp)<&@!25TC zXz7aLdlaajJjgmOTeN&7E}V9Vv-h9`8^#d z0F_jly> zyC&NL2t$SPtLws#n98~r?7ssm%(BmO2D-cf01!YHd}9)eeJdQI)>|!1GRC8UXvs#c$`sAgt=|I{*+s-UpBw=hboF z0Jz;B&$Mt4gHpte#cBb8;avcfSM{GT5EB5r{twc94BPGy$nISRl+5WmOkJn`mjWZd z0&v_l`%cgb|F9E6cs}ljMX=ZJ1AwwZ(h+mt1C+L#mfQLID3pDuPXU6*&DcTz8vuE! z>N*wv@gD%P82UZwvE!=&Y*7Oks&^A~M#)yN=)Zt`|N40M6ol0yfe^^{Hw3uk6PF)I zyxkHs7z7H!+ctPXzptp`)bVfS^m~&1lR}_!Q~etNMOo?U66N2>{6qP-*a;v|P`WuA zd;G3eY5`Ldl&Tco z0LnBKNd#I44duV*BP#z$o+yIH^I#>r0y4a)PDls!AbbTd`JTjGfA|m>0!mCwzUpzx zR{%%{txz5ilWzg+{5T9z1Uf5d2D;)!VAcRsr?EK?4DY`mB-99}uSodW3UBk(vjeS!ZM6aU zhMjX;M^iK1U3GCb4X=+^3Ruo3;2@*`bg-ut002}eDqJD5KSK+!?yrq6hJkTl?a=7p zzC&%;qzr&&zpNBvKCn3e#~u(Myw2Tl;8CEoK%oFUFs=X!K1F9KFnQ3{AVvX9|62T_ zCsQ5=aUI0p2e5)2$Z12Rg1Q$i36 zEdYYh*9k3v5}G;1fNul({t*g(V1N)5DNAf;k!HX%LMcrOlVKo;GGNuGba1ZC%}{Jk z+khViq&7q$gFx`34T!NW&y^{?#&nBVmLC~dm=63vu%A^BFaVuV6U_?r@`OJp76*(Q zxB}k~14|?htdTe%`xevk34nR|Iu~SKHLwIa5Wz$VAsop_DCeIap$d_hHV;0BC>SViEMr928aFPvM)enkI8PX@hs zHR0J0cvWgJEH(%(Apy(@#F)4~0;qb)Lpqk_Tf8E06p&mIb_PeRAW}BiR(4(%mSkCH z+7eB{7AXp?C%VGi6@yFx(cVn;1#_K{k4d0W&uh{%0?!Y;&gj&d?1p~_z@Jg5KrDuM zQEIYK(~e3JE)+#5U}ms$@vcRW6Y#)6RpMpeCSu6MfI r46eu<-z!55$^dB;Zb* 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_34.png b/app/src/main/res/drawable-nodpi/weather_color_34.png new file mode 100644 index 0000000000000000000000000000000000000000..36974c906964a4816f98d3680d582241bcd75a69 GIT binary patch literal 3921 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 f6efR9z6C0002hP)t-sM{rC4 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_37.png b/app/src/main/res/drawable-nodpi/weather_color_37.png new file mode 100644 index 0000000000000000000000000000000000000000..ee51d9305b18c22a684659cb9bd8e2eb33e1c174 GIT binary patch literal 5455 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 xL2hh@K!4J!;fNl;}k7 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 xL2hh@K!4J!;fNl;}k7 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 xL2C0003gP)t-sM{rC4 z000000000000000000FB2Lb~F00000000010s{jA0RaI50s;d90R{&M0s;aA1qA~G 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 M07*qoM6N<$f>t*3dH?_b literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_42.png b/app/src/main/res/drawable-nodpi/weather_color_42.png new file mode 100644 index 0000000000000000000000000000000000000000..58936279df8b6201b9c458ca37ff45ddabf63038 GIT binary patch literal 3567 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_43.png b/app/src/main/res/drawable-nodpi/weather_color_43.png new file mode 100644 index 0000000000000000000000000000000000000000..393df8b380c2afc97dd02b9cab7d47fadcc4c1f1 GIT binary patch literal 3798 zcmV;{4k_`8P)C0001%P)t-sM{rC4 z00000000001Ox;H1qA^C0RjR72?+@a2?+-W2M7oV*Vx#=!NQ@UqSDgSNlHrQ=I0w5 z8%|D64h{~9ii&G%Yf4H=j*gGGxVdm}aeRDyg@uNpqN1#=u3}?jy1KjN<>ueu;qUP9 z>gwzD_V(=U?c(F)^7HfP=;`|U`u_g@+1c9A(9yoWznq+%uCK4i$;t8A=D`2}03mcz zPE!B@1q&Z25*R))O-vOu_PgZ}%1S0O{#?}i0`w%K#Q`1f<6(8c! zY*h6pOd#}2TgKzAAs+o8HNWtwu@&tHOwj9x+ZGBNu2p<|lqM7=_}&5`^sgKGcWDl? zCVfQkbr9SDs_fN60C)<<;Zu#8e}jHiXO#V2>Ohw@6>WfjH=B3q`702_0@O5fh<*SW zq6s7=TyGECFx2K>EK*(ORW;2Y1b|WBkd2K;y8;m$LUr*42wmZkw6z;BGC&xM%p~a2 zk`Ozbj-b~cdUZ2MKT1WiGAHx_!~qw^r0gK{t6N6NZ~>%wRuOiCfEjvPk?P`q+YHxU z@CPZ%s^AEkzD7(!!1YU;rWh~zF)Ml-AcDh`8X@c-!u?E;vaLQKSWDv(a06%uIz@kx zx5pgfpes~$6DTSV#L@bVpvb34acoO4!97QhFVq6Sy3VIbc{<`!=xqRTII>XlC7@{u zttQF|O>nnC9ctrDAPk_a$W#E=6Gj2M`#{si1CR};_yT|mb8{z+3uSUd7zz)_#;VAs zNp-!pS@8hCQRFc`5C9azB@+Q;=Z^qt&lnYkJ%ET!G(ZagpeWrCP@7Yg!DX=r;AdGm zMXJ*U0Tj0?K?7fxrQv08?D`G>j#>3mq{#3Fw)cT)?TT#N z?U$(k+8#3~O3y+)MI8zN7&V%}wD#AcDu=6YFYjmo08sq~!Qi?$zeRy*E%&=q2I;k1 z{fwg>#@3MdYv-|?}pdSp-9?J|-KY=LdT2qHd z0ptSo0zlxhw3Z-mzy2(M;R5=vCqRH0N{-v}gdX=lVP+0R}dUrf=KlGB1 z0nkCf1`$yp4nUA*?US7F5;(3`@;pLoKOiU^T^Y#?x)C8qp<#ilj_vc+A^>>0p0k$` z9yxIY9R!vb<3?HY4-j~TtUgpeo`2vjD`23kJ=OH-0ux*X0xl#nM$gjv5%F9y!qBiT zZT18J^|O9x_%b=F3k1+1$XaVWfPPX6gMzwncjt5VqW?rb8)98K0uG^Ybz}5EwOb5f zT{BW;r}O2MJ=*^Wu5atlW>+VknmK~X*A01One>r|O#G>t`Lr^%D-tqHs4uCA6taBK@6nWW# z3EtmNBKo=h>#6*FY;!#G`dH>W%N*^2t|F|xnp3+xJK`O`zn{?vxc;xFim|^<&vICb z$Mc@+AGZejNmauqRX}MfZi34@(2gtD-wqpI73ck%WkLkV6WU}LmEUF`6%^SkA`s-` z*Ja=ghuLq|WCw)orXK*57p2aY*dkI9IlaE7(IK^r_6X=3~_sH?id6vr# za^ZV6tb5O05zm2l;+>1@! zn6kAj*pTQ@MUVO@9ftkxYTLhkoNScyZoiyRi8}xt0_Y5tzDqUu)igIExFPhYqEnR>SpfQ-Z(hVSZuzf;U2o0)s7g_Ew^y345JwEvN zCKydr!o>sw;1;wBd$6+X6fKz1I4EEdNfI5arpd~~{NVQzx$Z{hv*N`h4=l6;gRz3_ zQX8IE%u)E%w{I71xY>)Gfi>_TuI6f{wiW@Y$54-;9H?&l;p z1Ze?x7*ZI*!Dlf`z;S{a24pQOYr-~wCC^|ddvsgM7oi+_l=@MV_(2`4W%0>`?B!VyDq+snif&g`ATK6$MY3U-t0n*dPUHE8(OaO0C~2#D1G9^O z9Kh@j-S8N}@CZFZJl#Ap(^wH=_lI0Y89*}pFoZ0avWx^ZG?!)=`eD!Q1aCjE5=?D) z^;S_1q@*D~_9S8QaB1V3c5Wthz0&28OL5+XU{Tu6%JuL(g1d9{#Q3|iv&dB{s9?EcoF6{g*)5cxyYPvFwI{-`qDdRUWCh)w<34~!(BSSn?Wuhqhs!m~hFJLRc=#YpTfX~)(k41+<nc=$A5|{=Oy6K|z-|Nti60p}NZ0GNA?TtN$G+gDV@E`{ zLA9WtTmV7BNMQOj(0xL(jo3{BJ#o!!!GPh{R0S45D0f>;_{7(aG@6;u?+{eM^sw^e zjpJty@FPe{qGRFtI*NFZC_bbC#j7$M7f?q|abc>`1Y+Fpm`FVckzX1Y5`BYd*$}OY zaT8_3Tx3Q?0IOkBZ)HXBRCUA=iWdYo49daX_`c;kc$nFRFZ_+WRXX2rN-nQ~9|0NW zBzm0#iPrGuZ|bL40Q-nXWjv%>U5FqIWkYCSMvbdG(2^KkQ}pGxp$GuVHj2OnOV~dl zP@cgBQM3^h>@h}y#sLzYG)4Nb`o4U|`M#YV2N;AqtUS>7ck4^UDaHaUeIW1^a3oy+ zit;_@{(E`?>n$bC?yYj(Y-kpEk=MFr5k7@ShjT~|*g+7*sk?H5XfdTR{|x{>t}&qW zF?$)aU>R48B>JuM=BI#tf*cS6q!u5*1ZlMR9t()lsCzK7i>;WJZ&nKNzPc580iX`B zi%57I0Sp@Yh&qzgZ!!VrsBTe2rnRRe#@d%B+yfm$RiQNuaa@tqL2lP8h!N zA0Yp5fgeGu#(<)mPNFf=$eevV;^kG`jMJaQvorM<1!%L0-5T$97SdUC__C0cE z29oqr6CDoW_2>5( z`6?3}0O9vP?;)rUVKVz?a_7(s>6_kfHVwl3ru=_?Yx?Z}l5yJq19N0Fe0RHp;s5{u M07*qoM6N<$f>t*3dH?_b literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_44.png b/app/src/main/res/drawable-nodpi/weather_color_44.png new file mode 100644 index 0000000000000000000000000000000000000000..a6ad077ff7976586bdf992464997ddc976aae317 GIT binary patch literal 2485 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_45.png b/app/src/main/res/drawable-nodpi/weather_color_45.png new file mode 100644 index 0000000000000000000000000000000000000000..5a6297f3da2e6bcb3dd88ea191ee67d26044d0f9 GIT binary patch literal 3097 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 BP#*vQ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_47.png b/app/src/main/res/drawable-nodpi/weather_color_47.png new file mode 100644 index 0000000000000000000000000000000000000000..e8768872cbffbb3fe10aee081eba515bd2db932f GIT binary patch literal 3850 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 M07*qoM6N<$f++U+$^ZZW literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_5.png b/app/src/main/res/drawable-nodpi/weather_color_5.png new file mode 100644 index 0000000000000000000000000000000000000000..e1d2691bbff8851842c456aaa86256376229af50 GIT binary patch literal 3754 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 UUf9%D`v3p{07*qoM6N<$g8O6v)Bpeg literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_6.png b/app/src/main/res/drawable-nodpi/weather_color_6.png new file mode 100644 index 0000000000000000000000000000000000000000..e1d2691bbff8851842c456aaa86256376229af50 GIT binary patch literal 3754 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 UUf9%D`v3p{07*qoM6N<$g8O6v)Bpeg literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_7.png b/app/src/main/res/drawable-nodpi/weather_color_7.png new file mode 100644 index 0000000000000000000000000000000000000000..58936279df8b6201b9c458ca37ff45ddabf63038 GIT binary patch literal 3567 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_8.png b/app/src/main/res/drawable-nodpi/weather_color_8.png new file mode 100644 index 0000000000000000000000000000000000000000..05836a51d9856fdd7e5d0929cc6dcc807eb69355 GIT binary patch literal 2735 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 pC00024P)t-sM{rC4 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 M07*qoM6N<$f;w$9yZ`_I literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_color_na.png b/app/src/main/res/drawable-nodpi/weather_color_na.png new file mode 100644 index 0000000000000000000000000000000000000000..5b8c4ce376b275b1af13aeb7efd02e2640c17955 GIT binary patch literal 1473 zcmV;y1wQ(TP)C0000^P)t-sM{rC4 z00000009920|EdB1OW{Q0SN^F4G011mlyxPJ>!Q2h*b(@KL>A15!RP1^QkPWa23CI z4F9z?|F10nt0VuS6aStJ|E3%Nng-oy{B{5U026dlPE!B_3KJeHJWy!s{@|#LX1wK* z!tY6cb^rhc4@pEpRCt{2TG_IrAP_ZzpmASt`Trjsx*HT@GIJk*%&qc>#EMlphiTS<~#{HQ948TP< zy_ur&}RTp zP*L;MUQdm;PGARta(-Wb*1*pJT7t~gA&}lT-Ui}Xfc^cc27U(M+6H;2-U>*(3LppL zrN$cgF)#uJxq5|f0c~+cS7&5n93!IEnpRuz_ACJ0e1a5)AKzxfqz(nB!Mgw<4+(nk zi_8(g8_l?CW-3q>(%($hv0{3&ZX zX#WY*;8y@B;28{gDDb35AVkR;yjRMaUKt0hQ!P9$$ka|4@wPC=Omc!X#ijY!1+)Nv zTat$f%ddd$f8_@ccwCH zL2S!jK@AUUaDEa{uf(@3`hzOGEPq%7kOzoyUYu*5s~q==!Fzxxbh9mHTdzeejRS%U z*p>_Cb-+*|Fuw^E=L`S3Re6N=n@H^{U@q$@?KfM*`c=R@V5pV_=XV5b%eLVSSg`$e zrAy?3*3A~5*`neE|8~$g@`9$&zK0gL)cX~i2-AR z%p^%ETZ+qIygv|N#)ONe!tPf|Ojx9m1@NY{n~|*-EWUt#F}Gu(NbiwMgbZ?Q1dAt0}8gKXAx&YZ2*WvR>;X>mPRYs@Tf2e z4?M&yHxvK~bjVV#5lw&wkebi(PZJ7QmLbkuNP(FVfJc{BK^bQ~q%%Ae04GNPfZ4`Vc9`FfeCS-~%%gtz-a5 z4@c{SLY7tm&4XY75or`)hDhWaDlo~yWt)ds+futJu1#hDGbNfok1asfx+B7xh-r!{ z;=cTd3#yW~M8#0Y+?Ts?L0wl>RevQeaE?-?lbuVVz--Hp&_u+@&Yc99qg46>hjWga zM8ab~OC@m5qVn6n7sF91$3xuk$-xg2QhSCQ{qOaOdz}0D2K}z#d+fW0C0000&P)t-sM{rC` zLrga_I9zgUPEJbK&bn`?kYA8|SAcJLaB4hOOOJ_pzqXp{-?(e5lB}YQ&EVK_u9frW zz54RkcekAX`{Tq8diwwX01kC zRV`%s-F#wDIYlLq_EZR<(e?v^N$PLZ7W*fHPS+H|>AUSp7lKrK{9_1dT7tRn^N$GS z@iGX#+rBRYTJmwz=oV?WkU^OVAA-<-neT#kS-N~yXQOn zg-Yfh2zHFhI-&obW*}4g2LgR%0rnIjPwXFxu&F12a;degC+O4xY;1=F0c?vPPanXh z2uK3h(h&?r0P&K5^iOdYuuOowGXNrg^l+Gy0U!q>stRChKvn_lP+$lFQ2jvD0k|7t zEJ}VMev1In2#AKk0RYhmBw+xkk-(4wAX;Hg3V^sGQg#C8E(bt#gYsekaWz0l0Ilc4 z^7y?40{f6 zi5P$Z7=Qs7fB_hQ0T_S*7=Qs7fB_hQ0T_S*7=Qs7fEWPeAaN0Zee~}ld;_Zho(8}V zuR}h+|>X0QS=!Fhu0*j6%?KE9W<5)MgZ#0`}FX9mbbt zRYs!Le~)0SQP&VH>8QpNTy6zZiF{48v7TWBVr^>YL(K?sml-OT>oP_FKJD?%48I!#dc z?q;fh6kuNKMOoUFeyao)h}ZaiCuqq1``HAuCjX|;G0s?ODFCXa5PZ|ZDN8*?oYP^8 zKPd!z31=-e?Prx#ZDe?Ux~8`0*^eOrNNd}=u3KA4>}-(K2pcD(Bu1Dsh_mfq6sae| dY-dRQgTG|YE~KUPu&w|A002ovPDHLkV1ipSkw*Xk literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_1.png b/app/src/main/res/drawable-nodpi/weather_faded_1.png new file mode 100644 index 0000000000000000000000000000000000000000..164118e50215cfef53da8af185b428e717892198 GIT binary patch literal 937 zcmV;a16KTrP)C0000&P)t-sM{rC` zLrpg_H}vVfWQ3&w9fQDh{lZGKaP&Fq&fO{3a`&R-CU?>Qs@9zBvMFz4M zv|Vu@6=R@4K-!NnF0|YtzV+OnXK;`g<44Qp&LFxnjzW}({ zUF(6U^7zLps2%>M$y0!lU`Hd`jQ%hcHaDWq=?@XuZx&!r5maXXt#dKs445L=G!ty@ z0Ae3*h=3q~Z4s#a0c?uEPz10g0+Ij#ph5b}h6Vt=76>AL^m3@E0I+S?khEZrt^rvE zu=7CC0Su^lVCevQOcO}D7Qi)us3-vtO`r)YfLaMi0fuJv4Z2jc0P9_730na5?wA&! z|1tn#9+EBt5W)IF(8O<{G3sZe_dhX0tV9a0vQD!2b5?sGUWUM`yxnfs_@nXXtbb77 z1aKYY@FyX@DUe7N@&Rzu8%`?nX%6reF#rQF00S@p126ysFaQHE00S@p126ysFaQHE z00S@pF@VrX@=E~SE!(@u0H)lD^0JO}CBGUg9YWsP7mfpN}W6GZ1H|Iivb0Mk9k z8A9o_FmP$vwe|C1UlZQl1!l9PeSBd8!EZm4qYEGs=yKuqS5A=L-X_Hg0kMC)mj8hu z)ZkB8fJ88F`K5oUQQHBI6Sy*j7sKzw8UEvr3Rf(<3x zBj?@eI_?nBu4_S^yStw?{1n2UO)96_Ck8WfKiz(002%oub29w`7iJslRgQ>Q00000 LNkvXXu0mjf3Ur}z literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_10.png b/app/src/main/res/drawable-nodpi/weather_faded_10.png new file mode 100644 index 0000000000000000000000000000000000000000..4b2d447fe325b1bfeb5c05ce2864580e64f9e515 GIT binary patch literal 2237 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_13.png b/app/src/main/res/drawable-nodpi/weather_faded_13.png new file mode 100644 index 0000000000000000000000000000000000000000..4c2ef119b1cf5862af2d7944e6d663e54e4a194e GIT binary patch literal 1634 zcmV-o2A%ndP)C0001cP)t-sM{rD@ zXOcoZMMOSGhl+?pJw<0|XpLNhGA%OcJkJ8Y&S6YSu000}ycBvqU)~nF57845BwR0TDgb?~~&9Mrx zwSX%37*ffAta*jQNa5Zg%vy@q_Ou|BVa62D`n7$RLO73q7--nn4C@&}@K(02e_03P zA)rX#zN*8@uzxVfzeF%f;0*RROMpiBnrV+xtjpnef4Uw_ z-zhl31OU1wPBKTKzyF@%KdB9nzu#T2NqL8x0uYSbq+q9XKb?|C7EjZ-2%P=tdPTRd;V*T7fm?ASqO~jW z#R`}M(ApN^{d@qVEP+Fhwbs#Ed76d93YblxJ=UrYvm)RO1&7icFbF_1U=J6-!>pAI zU~U>#3}Pk%z_$dDm|KXzNchzej|CuEt>LWpnw=VWdy)ZkZbn^ejmUsqAOGxRf1SHw zcDqzMUPjc5tpW(3u_4KBX;CU21Hj&&?uKmm@W^2?YhV@F*ZcmRM#7m{fJOava( zgc?mS6`^sRq@E83H(g zEPm2ip|_*$wkjbAAk2f(FE3aE2%z*o>Jt2il(%C!g3AARWC)-HD*vM{LH0+rC6ps* z{5b*{pz+rw=m4+}b|Di1u^WGeKu)0ZF9|f>So8@va1Hv2klB~^rF#Mqfbl=(=`9-o z0M{T%woC*PftUdAe;!f-8UYN@7lGVkiGT+X{O`j6R1x$=00=mM5&r!&RCWQoAZHQ* z12D>;xgQGWLmWY-%zyzH<4^c^jo$XBHjpy7cK~FBzjSh-DgwJ2@C1(zz#io<9^Uwh z2q*#E2bX8w0F3dMk4{u=kT3*X26^88QVjP8-!;3}lcE#j49Y;#fboN8M_5f@w;_-h z1cUtHqoZ)AXass_)vO5W3Z0r}I3dCx=*^S8JUEE@f7bvxI3 z*ym&0e?^*hzuxS}S=0lxw^uJtO{!0f7=*vH*_)sCzq}vy<@xMj=xpdNZGO@x5W&x1 zFlaxtY5;n>N(=#g{rmk~edzePy-yS$$AA)zr4T6 ze+l52etL9Et@bwrAS>@{d^l{n0svPU0B~GcpO*$9XK0E8aHT&Tz;i?)=L=klH!hN| zoeqGJAkX=N+oH%_PrBGLFZ88q%VJ|7@d^HvpqQV4@dvhK^Jl>NA3qv`O}`Y*odN5g zx}WtQ#fSfqE|UT0|LHXV`G><2%$Nc1@8B*02Q89;$N3{aBR<|mNH&jZX&faLKD0C--49-te)0KjKZq^2WiZ-M>zB>)R`1jWWR?2l1Rz>Hr8 z=rW-G#&5)4MZk_90BHJP4*!OL9X|ljWH5_=O~8&H1gQGJo$0xg^0^k)9|WlOkaIm` zfVlB10LrVZxrF(5b})do+;cw)faUa=R;K{z?*VLT{ThJdH(KNwCt0|C*M@!xfD$ya g-g@h;xBg-M4>b1Ly?UjcKL7v#07*qoM6N<$f_9h$h5!Hn literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_14.png b/app/src/main/res/drawable-nodpi/weather_faded_14.png new file mode 100644 index 0000000000000000000000000000000000000000..d1ba909751453d1a0896dbbd1834817b71049ec5 GIT binary patch literal 1866 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_16.png b/app/src/main/res/drawable-nodpi/weather_faded_16.png new file mode 100644 index 0000000000000000000000000000000000000000..135523f63617ec66c3dfd53f465d7daa12892e8f GIT binary patch literal 1446 zcmV;X1zGxuP)C00018P)t-sM{rC) zI6+oSS4TidCm<$0EILdg3L)o|TznjrsQA*3-g=T71dG zx5dE3tEH(?NK*On+LmC7|NiCu_uoT0Mru`Nrj?d_b9KnVw7TkJWB>pF6?9TgQve?R z4?1Yg{{EMBQsR!}@x;EgDphy(23G(81mj6WK~#90?VE{`;vf`7C6LXfH9Cm_m;e9F zfvl_%2&8AKyfxL8=}LLeyAKfQxZ8d8)mLBruYv%8+wDew!rj(_C@r%rOOm>-6M9jW zDcEf$K+Th+GatqNo26)zBv6?N-aJGWJqL)gL~lPZWMxzYlr6Xq3|Shj5up5NKOn^M zPcs|)t`RZ%0PV^jLqMVZL1u5?g%G$6$jv`EfwMnDD1X;KBmwa9rv!nz06qPK5tP3E zfo5as?av6-FUx3!|LTDV*tVlyrNqApAgz9i;$E)=@NEJrnfraMzwb-{)c(%&SPf8n zL;%yl{(evD)pCyjRik}~0Nh8xTz-%MoF_s$+Xone9YE>rAEE=b+b|UT!*sx@2cmzN z4!HCH{RsYnI$%E!U{yo`s58r5y3~MBL%@0vNDT-!1gPv5!?K74U^fbp>>q3hSOUla z6dMBoc?5(^AhQ6Fr$AT$i-n+)0gA8*u>EBx1S~rcG=ctDt4_Luq*8Z=qRfGi39t{# z5)k}61nwaL6dvU>QyDh_l|bGqW@-X#_s<$hX8#5uowj7*i`n!-{uc1f_bNav;cRFKjsN^ z0HmgO*%C}U1)!Y?47a z!30qI)Gwc68k(?_!2rwFlB({3y1o(hes9! zLI#Q)>eruR8wm{Sfh-q){ka8ySZ%W=`qytdy+f5b1Tw15v6kRPR5|(!f3O%9!{?yl zHR|zdrt#Od)8+f|QswHup3`JP7OB|-xG{*ORx4#wEh2ZdOH5mst2HcxY1|c zzG+`x7#pXB1|YF|$^)j1fl?F{VBzJvaj|d*mH`}|_UR6ms;aCO0G=da8<89@ASS#r zkB6=f=5?n%A*S?b2Dl<#UXQmN781DjcQp9J9jmmE0F8idDGuk4h${h9%?6k2b@s>V zodE#AUe#$bGJ{KGh$99_x`26WAI01meHW>)@p8y8{H^~5A z`TFS^GXX%zXV69>09T=Yy2i~3>=;4h43zo>fSr&*3<9-&5g>L3@S@Z&0YuJVo&Zz* zGJudl_{lgC%>FU}mjOQS1N%dOIs&eK6=2E$H~a8!#2ta)uL2Ai(E1~61iB0ae+|Hp z!9L1Hgb@h-I)IK~AL)B1ltA3$=>WRBVtvT~N_$K#0KIFo@7?GDHq<`=(4Rv59soXf z`ZWM>7_|Mjy#|1ApTGPBsQ~-2`|7K&zWR^#7mBTOOi`=ey#N3J07*qoM6N<$f(pr$ A{r~^~ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_17.png b/app/src/main/res/drawable-nodpi/weather_faded_17.png new file mode 100644 index 0000000000000000000000000000000000000000..85d8fe511d261252200c94906cdb3e282cc44df4 GIT binary patch literal 1104 zcmV-W1h4yvP)C0000{P)t-sM{rC> zKuShFNKHjgM@>{rS6*wr#YtpqU8JjU$j@iEzg4HORgsvNk&I4$gxb}_>*&+5tD?*2 z>1)Hv`0?8R_T6*J&vDS#|NiBw*U;AI*fC^8MF0Q*6LeBeQvf9i897nnXtnLq`I>xx z$Kjno?5k*j000AvF3g6h`F^YVA2kg_`$&(6dovyr7UM$#jPAN2jTd zYq{Afk!D#+N=iyfN=iyfN=iyf$}bKk=${QDID3Bxt7NWJ4N=U8Voc7m=)skC_CDeEg@@+bO$Nr`;gMOEXfmSSFZ3Pp$nUvi5GXu+?f1LO;gKpSmTGmh^Xl(}*wrYb1 ze?ks?$Zf-)48~n110@3A8WO}7?_}rvyTLRjjo$FbYvKOKw(UQ{Vn*oV7A%IrqKJ0$ zCxc!7RD*e2YAxv#i)#d-ijN9w{%BD2*JV=|F8%;5YP+HB3c%+AJ+-(82DHrWm-H=v zFet!apZ_qh{2E@BKKs@fBTx`!esdk%_7yJ*)xZyKoP6j5Ww$n60WXUYdVXya8o@gJ z`Ed%gUz9N+>>ISd&OMr+Z#wQm?SWo-Y2GU^mjUpt9Ao{#od&>v>_YI1uW2zjh^>J= ze?*A&vp-!m`1xjb8*F@?e(%Oj4f^x%4~lz9M-A-xlVSVW;EjRhFFI;#F!Ha-+Td~i zy9Sr?*Q2mG|EGReNl8gbNl8gbNl8ihh4~Lv WI$?*X=V5RF0000C0000{P)t-sM{rC@ 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_2.png b/app/src/main/res/drawable-nodpi/weather_faded_2.png new file mode 100644 index 0000000000000000000000000000000000000000..c82c10efa8bca6a1e1ad9bd3313a3cca3a47f0b9 GIT binary patch literal 903 zcmV;219<$2P)C0000&P)t-sM{rC` zLrga_I9zgUPEJbK&bn`?kYA8|SAcJLaB4hOOOJ_pzqXp{-?(e5lB}YQ&EVK_u9frW zz54RkcekAX`{Tq8diwwX01kC zRV`%s-F#wDIYlLq_EZR<(e?v^N$PLZ7W*fHPS+H|>AUSp7lKrK{9_1dT7tRn^N$GS z@iGX#+rBRYTJmwz=oV?WkU^OVAA-<-neT#kS-N~yXQOn zg-Yfh2zHFhI-&obW*}4g2LgR%0rnIjPwXFxu&F12a;degC+O4xY;1=F0c?vPPanXh z2uK3h(h&?r0P&K5^iOdYuuOowGXNrg^l+Gy0U!q>stRChKvn_lP+$lFQ2jvD0k|7t zEJ}VMev1In2#AKk0RYhmBw+xkk-(4wAX;Hg3V^sGQg#C8E(bt#gYsekaWz0l0Ilc4 z^7y?40{f6 zi5P$Z7=Qs7fB_hQ0T_S*7=Qs7fB_hQ0T_S*7=Qs7fEWPeAaN0Zee~}ld;_Zho(8}V zuR}h+|>X0QS=!Fhu0*j6%?KE9W<5)MgZ#0`}FX9mbbt zRYs!Le~)0SQP&VH>8QpNTy6zZiF{48v7TWBVr^>YL(K?sml-OT>oP_FKJD?%48I!#dc z?q;fh6kuNKMOoUFeyao)h}ZaiCuqq1``HAuCjX|;G0s?ODFCXa5PZ|ZDN8*?oYP^8 zKPd!z31=-e?Prx#ZDe?Ux~8`0*^eOrNNd}=u3KA4>}-(K2pcD(Bu1Dsh_mfq6sae| dY-dRQgTG|YE~KUPu&w|A002ovPDHLkV1ipSkw*Xk literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_20.png b/app/src/main/res/drawable-nodpi/weather_faded_20.png new file mode 100644 index 0000000000000000000000000000000000000000..15861b01844a7005f959471224f2b1664b48ab66 GIT binary patch literal 1525 zcmVC0001HP)t-sM{rC` zL`+mlQ1{JqLpnpDmVl3hbV55qXI)!+acN&wQFUu&k%n`FdTHIcY{R2v^UHK#S5u&e zSCDyBvX))1oOZRFXz|H%sh)+frHQVhhohN-{?&KRtY^EVbhoL9nvQnfymCBN+KK=G z02g#pPE!CWJ^mWvx(r~IPl4{o&aCQqhHRGj*L1zxC;$KjCrLy>RCt{2TMcugAP^P7 zNc5scZB?SN{{KIDfJPJLGd;=NjE~xBqPUOc?Jnrl^9~$1aNxj!{}Ul73h!eGqcX|b z$omjLp0pIH_ZdVfY++SZ(Dyz8KW(}Bs!dVoIR_})wi*HP2MFNoVZMS1aBd%@qw_i1 zGIUKKO6K7+4@9o*7Z5(%Pk`qZdHZai#(-l7X=0(lHL zN=3PffQvv()dWg!XP^YC2<)E>L8c_IzYCNaWG;X^yFf=^cNY{o0@cn>sd6oWo%6At zz|JM9)Dze@A)63@d+w4ArhuiR{W7u zTu1s@RasJiX(4n2DClbz>piuN3TFx}OmYmCcNrn_aZX=wu}6Kj#WS39A$*0J10|6q zNm}M{oR?`b8Rs&w%@@%l6AZ7=I|8-~X1?}?3r&I8*SDJf%)bW1saah{UvpU!2zea9 zjv9T%U@Z>L2irc^2?3MghQRGT0&l$L3K5s#Fqy5#NvLn+o$*r%zVVt1BrSwPcW>s_ z)1#|Q!r}K0@FR>*RP^0_h0Zt}UL0Wiq7##*A>8FZYfKSQ_ZIdOU>O4_XcpQ1ytL)} z!FWf@V>J+g zAXN5KV5LCZ>r^i~H9)0(8wG-w(Z9N3G}CO#Bb@`4eY+$aZZt3nfsp%Xrkg}DH$u99 zH2#nQO#$!(JjKFDU=YNEEC5Sp{{gM}>xJTU5rfu%FVZu7ZHmLsS1-n$XOhP)t{MVY z-lwT=8~m_?7oq9%5C6Cv>`X0cgyqtik7j3dX_l~hZ9Ma?qK~W&1N0{~fpb&ui~g)8 z5CzhaOi7RZY7B-;gcp%Ow|fMU68Oq+{+{yj)3L_)nO%wT>IS+EbcoL;pyiP+%AW15 z*KA)WS>KowlO<+M8WWH@h|k}{ykF|-ZDy499fRQ%>Y_k{CPsdgr%A?_1O2VGMDPEa z02r4HQ9<{gfvx?z@qaZ1O%wQh&Ek(V;-wp}OtXY0aSEJgy?ODIgUg zyB$9et3FEbsGM+}fiW0wfq=HZXcoe8F$fS2giC@aj1GT%SiU}uH}Ew#VDS)(=3%Ou zr?+!5EjR22aj(6S5XIw)i@v{%z*uoj2s8=;ao@a&X;_g#C`x@>_Bg-XTR|Y4FFOC(;1UT4;LCJ&TEhO30?(X11!$IG&BKD_ zS$&z#KDS`HuzoD!Z!!d6>~6MFJ`2=L1nL2S;i61lh{V9XAc+VvInrjXxp!dooFF`J zcPJ;(5d6RtcCQSONX~+dPKe~XUx$I+Hcc3ELZ+s$d{V<}?kmJ2K&JS>e?=TPaNxj! b13LT#KPtgV(n-MQ00000NkvXXu0mjf5{JC! literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_21.png b/app/src/main/res/drawable-nodpi/weather_faded_21.png new file mode 100644 index 0000000000000000000000000000000000000000..7d7f1bf74e1f71cbb1335a7d6f7bad279630e4ff GIT binary patch literal 2258 zcmV;@2rc)CP)C0001lP)t-sM{rDD zNK8yaPIYT!O+`>rMN2g=Hj936+hbXvmVonmX{DKhlZbe6HauoRL493ZgK}y7d1&#; za;ct$(ob2gq=>1Zhx5&H`*mlhn}hSvbDWWR|9xxTRbK75aK@->;cs2FsEhD%Vz!QV zx@u$cp=`6pHRCt{2T8WmTIuKPr#9mZTAkv740;2!_f3L!l1p+2%r~ABf`r`D= znKs-@ftv)pc3~)s7thYQVFtbO2 zm3T=G8eCV@OizG_AE7ewFxwCy0yIDvj{i&mJb#%0%{am^$>X5{T>e|);ps73nvp3G&rL4MGOQu@*sm7OOCrGYCuyIZsL1fI z5+(>yaeRe}CbQu2 z-D#i{cLVLSdQ{dIa745NLd=icXMi9u3ZewhOxgmDs3gxHdg*ld2|xi2TbQGxej1`U zp?7*XnJWiSK%5vBH+0lpk|8DlQ7+Ao6+CDs0^Hao0f78ZT~|Q?@lIGk8AnF| ztpAw+cxj3h1h^@+0k}YCzkv52h`3p)1L|CG$oLT@Iy;t{|JGRvGB8!*cjL?<-4~Wf zSwX%3LOF3juGRr{Cp>6tq#A=}|A%M}rkN_gn-Le_K2TH8?mutj4jKV~5YR#NhLjYv z{4@umhk5`Y1P^93REa^i|0Wgy3+f1Pvm|6pAgzGx|49;tiB1oIfUXZ36G$px>L2t0 zv;yE}qz{Xmv;wC7K}Ug7Q^1Xw;3iu`VV)n6=H5fA2jC7xNQWXR1#JBZmCS^yC4joH zO@pTjxcV2#!jSZ!atMfx837Xt`1%_oKr;Xkfr!t;PJ#HG$zF2xKROO+3qbvWpi|&j zLIvx87J-nDfID*1X3vEl@Cr?S>H#hSvAeOw0xXMFz@(wB31d+fxbDWXW)ccm0k0ef zCir;;!scoajD+qaKd&Gg@vwXZ=$f_@5I^DP6fm=)UI5&j+#r*CeqI5YO+DSQxadu% zu>?P(0ClU%P|pNpGV!8rI+fw43c!VAWv?Y5=PeLR@)HFpOTzCYVoX=XcvmgYPZVTy zbEA<5%$gQkK!v|k!0wDI(=Ca(%$ow!i`VYOhf5{Z|h`i`|$Tp|r?V z%WHl`0meJ)y#sT#PQZUgLV)5tWX}ukl}5SVTCoCx_79&9Vgbm_3+`~`Ug-#!ZQg^1 zrHl72=u5Z^OBQg5k|+F`QOB<;z+T{Y4%VOd4%Pi~>fv^C>AMs4-{s)cjPOefur?;f zwuZU965Q{n1XvSR!lME3$G0-i6OTW;Wcg(U*sIq50|a096Fwz99a>j5Qv-$%N2mBG zv3IbF{a2};8_v%Iuhk#;;omDbJ1+b~&zr#^NJMWlLozv$D$!F9^>tD3OImYVQdVFA@Xt+V0Gd`_n# z>>(+g9>0VD(K|!tok6E$kdLRNhtmVH2EOSqpX)OLi`ChOYcTW^9O_|dC;Gyn=Zga! z!3g}-^qWjD{j`lou_Isj;y*hX9L`%g0sUv;XQ9@AP5yNsIXn?C+l<;@fM5zEZO)q~ z9yFKoxJ+TBjrn9%Zd;2X)}puK;6F{Ld3^)t7s=E1J&x^WBYc}~y|4_x=;GY^c$dT0 zFxKnORzaFxI@|6J%@i@wbcL_6SMj&!KnnhOKC=yD{)XyTM=rya%5KUY!TH@#$pVp^ z@rcq@Fyf1J7IgZ8^;iTXGvHjuuv748=E~-hYQ7RjU}h{=axfbkwe^GS!VFbX?Z>jw zG8S^M>@IEQZ}^NH?ATn62`M7qeqaKl!}j9|n!JX8ymR@#G8c7wYxA`Eb|D-HYS`ve zGt{%za6t6^HNJ;Ef76!o65F(qNB380>(5D5@`Z47GFQd^E6(ngZrQm)q8eaL=q g1hYT<;SWRn2j6gw>d@vNvH$=807*qoM6N<$f(YC|9RL6T literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_22.png b/app/src/main/res/drawable-nodpi/weather_faded_22.png new file mode 100644 index 0000000000000000000000000000000000000000..15861b01844a7005f959471224f2b1664b48ab66 GIT binary patch literal 1525 zcmVC0001HP)t-sM{rC` zL`+mlQ1{JqLpnpDmVl3hbV55qXI)!+acN&wQFUu&k%n`FdTHIcY{R2v^UHK#S5u&e zSCDyBvX))1oOZRFXz|H%sh)+frHQVhhohN-{?&KRtY^EVbhoL9nvQnfymCBN+KK=G z02g#pPE!CWJ^mWvx(r~IPl4{o&aCQqhHRGj*L1zxC;$KjCrLy>RCt{2TMcugAP^P7 zNc5scZB?SN{{KIDfJPJLGd;=NjE~xBqPUOc?Jnrl^9~$1aNxj!{}Ul73h!eGqcX|b z$omjLp0pIH_ZdVfY++SZ(Dyz8KW(}Bs!dVoIR_})wi*HP2MFNoVZMS1aBd%@qw_i1 zGIUKKO6K7+4@9o*7Z5(%Pk`qZdHZai#(-l7X=0(lHL zN=3PffQvv()dWg!XP^YC2<)E>L8c_IzYCNaWG;X^yFf=^cNY{o0@cn>sd6oWo%6At zz|JM9)Dze@A)63@d+w4ArhuiR{W7u zTu1s@RasJiX(4n2DClbz>piuN3TFx}OmYmCcNrn_aZX=wu}6Kj#WS39A$*0J10|6q zNm}M{oR?`b8Rs&w%@@%l6AZ7=I|8-~X1?}?3r&I8*SDJf%)bW1saah{UvpU!2zea9 zjv9T%U@Z>L2irc^2?3MghQRGT0&l$L3K5s#Fqy5#NvLn+o$*r%zVVt1BrSwPcW>s_ z)1#|Q!r}K0@FR>*RP^0_h0Zt}UL0Wiq7##*A>8FZYfKSQ_ZIdOU>O4_XcpQ1ytL)} z!FWf@V>J+g zAXN5KV5LCZ>r^i~H9)0(8wG-w(Z9N3G}CO#Bb@`4eY+$aZZt3nfsp%Xrkg}DH$u99 zH2#nQO#$!(JjKFDU=YNEEC5Sp{{gM}>xJTU5rfu%FVZu7ZHmLsS1-n$XOhP)t{MVY z-lwT=8~m_?7oq9%5C6Cv>`X0cgyqtik7j3dX_l~hZ9Ma?qK~W&1N0{~fpb&ui~g)8 z5CzhaOi7RZY7B-;gcp%Ow|fMU68Oq+{+{yj)3L_)nO%wT>IS+EbcoL;pyiP+%AW15 z*KA)WS>KowlO<+M8WWH@h|k}{ykF|-ZDy499fRQ%>Y_k{CPsdgr%A?_1O2VGMDPEa z02r4HQ9<{gfvx?z@qaZ1O%wQh&Ek(V;-wp}OtXY0aSEJgy?ODIgUg zyB$9et3FEbsGM+}fiW0wfq=HZXcoe8F$fS2giC@aj1GT%SiU}uH}Ew#VDS)(=3%Ou zr?+!5EjR22aj(6S5XIw)i@v{%z*uoj2s8=;ao@a&X;_g#C`x@>_Bg-XTR|Y4FFOC(;1UT4;LCJ&TEhO30?(X11!$IG&BKD_ zS$&z#KDS`HuzoD!Z!!d6>~6MFJ`2=L1nL2S;i61lh{V9XAc+VvInrjXxp!dooFF`J zcPJ;(5d6RtcCQSONX~+dPKe~XUx$I+Hcc3ELZ+s$d{V<}?kmJ2K&JS>e?=TPaNxj! b13LT#KPtgV(n-MQ00000NkvXXu0mjf5{JC! literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_23.png b/app/src/main/res/drawable-nodpi/weather_faded_23.png new file mode 100644 index 0000000000000000000000000000000000000000..20300a59a549b698b1a2370637f6f210750f9604 GIT binary patch literal 1333 zcmV-51C0000^P)t-sM{rC~ zM^QsOL^CZkM?XkZOI1)uQAt5cNI*$PKS)D6L`OeJ>geiCM^XEEXjV&A(@aVa!pn0!)>2eS=(n{#ARNjiePoxgB<_>01b3fPE!CV3LQ)8(X^FuIiVdicPfMc z00fCiL_t(|ob8(pbGs-I#^pr>JfvRIynO#Jdb@y#xy0m*z|H)9+Dm zvaq)8BrlSgGl1@WczZcp#{dv2|J9fPm~0`eP{P>j-#5>I6CrX>ga@Fih2ghS69<60 zEhZu#gahywzvG0=0HEvTa-JrlSD6?Ppu_M2!&B-2u8|>3gtghylKZ?D3c`a2A;4)k z!RW8aMA%RoSf6{huK?gLK5-W40LF1xFkGQ|o-<}+btWmD>?)Ja_r@QDgZF1ZV7@Z;AH{aFXv_BVyr3;FfSYR06fDm)C6#U_NN1k zW1T9PqL0I^ybr|S%Q z;1hssv8#4F5X*Z*Fq%s;biV7*695hSQ-B~8jR1+kyX}L$Qtk-=J~AVOcOe!0{=j&; zK1n&Yd-MQ6DExQWAH!4-!DHuY)0u{z0KhI8>=0epUI$2pE>E?60uT^N4gDE_PX$J4!3PHXv6rQ#pO`#vrm2!{ zaUjyKlw7WB`~K+*00p)PQ$b-H83{;h*CoDcNIn5DtJ)ucDu1j)ckY=g<=wirA3t~n z5PDqZd+nq?pNs8210gW|6ku!oR{*gZ!*}{do8!L(c*eByRRkc94uBZ|O5as8>wEVD z{igJHI&_gdx`oypUrB56NDUQl+}G^${A>mQyLE=D0zhZi?RTehFUcj~eobS_KP1&} z7Qmeje;SqGtLpO{ zV3+|qbl8;-o8i>q0zkcU-wa1z7XaYGtIBZ%dkIj+eP08-^M95bz`5|sXAT`scmU{X z0F*m{`L+I4;rBSu-rIgSii0o99xwl^HNLy|6mFZPDJt1MNR&Qc&v5^p5se$8_@YWG rg1!3Pje74iqLkGOe(2DlLxuDYREVYW`kQ!;00000NkvXXu0mjftu|Z4 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_24.png b/app/src/main/res/drawable-nodpi/weather_faded_24.png new file mode 100644 index 0000000000000000000000000000000000000000..80598637410a4ad2d1449fe06582b32e1de3f677 GIT binary patch literal 1417 zcmV;41$O$0P)C0000^P)t-sM{rC^ zLQ7LgQ#dj?NkK|gOIAogNlHRXQ%Y1iGdoE^N=`*jL_9?_E;Z`t>i%hrPDfB%Ojwp+ ziRNO2dQffe#&4NnjLThmpH*zVo@C<=bAkW>01tFhPE!CU{Rc+smk`4lcGa;}9ket` zXaE2N+et)0RCt{2o7;AzDilTKt|%vsfUU{0 zTeoiAx^?R>t5A|lDzdAjN^Moq>>4Si+t;f$nq5PHn6AG;uU6+IyFgO6(E983{W4f( z7pT&&Z?9VO?0k`O0C-&kkY5ataX$w^t(MsZqBvOa(hOx6sNh=LHBf6UFIk3y0)fWx zPohfzGDKx=lUSkR8UTTi#2PDfkpVy;EC3Zz`)7LrD;}iiv*H{GzjGYn3L0Eu7B||yP=2x28bTOLj)sIr6mC9Xfq-+0L$>z;SnG* zB27?P2ciWg-T?r?OaQFk7j1Ju0{13p;u^0CG3L76*DI0odq3I)I%HTs8-s zE?Wgb9ljz5`k&~YHjK9vni4n=_C&p{-nusleb?<)1V@uCSNk0fG(*=h%cVQmp5%br z4RPCd9S%gcb+oO{^J@p7^}0V3YIi_KzICzfXh^4vXWaqYc-{6zgt6;zrQ3Wk{l%H^ z5spIc&Rp`nT^|8(beLOoAnrO$ITad*)_2}c+~w2^&uo?)7^mE%>j|z#G}MGRT6CZb zw`1t~Fy;1)`a1w;fWTz&4+olO-*q;wwn8MlqPx2xCF^$CD0oFg|C-cs(U zuFn86;t+B?5BQ^N#!(a#HxAWVU4IA2{8Tux@izcJ4o6P8PXK^G$hnV9<^Vm1^qT|X z{(+w2>)QVKe*r)lQ$fq5GVZp67}VyVaE_P0l$*Gr|AaxLjXip?t+52PhncEE740ABLIbhw_QyfE(w;Wg!Enc7@Wqq=-DyTr3H}K zRoh6eSA|(>0HXY!R!Db6u|sjt2Dk(e0=4kD_A&fW>Nx-{x}J+rYB?_c7Xaqz>kdaN z%F^f#qCW;8id7vBK=X1{)iEzHi~yB8;x5Y^@Ydl3K)Pe@^5=-Rf2Vgtxh{IZrD+22 zF?|nst!d$Qd}#VE13>()eGaSKsnKKOEb3gVB_5t8T=M- z?(60MF^vZRztf!jR~DQxR2W#x6BX#1MbL|g;<`U`x^?T;t&{XW X*7d3Yo8!PZ00000NkvXXu0mjf?LK}f literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_25.png b/app/src/main/res/drawable-nodpi/weather_faded_25.png new file mode 100644 index 0000000000000000000000000000000000000000..4c2ef119b1cf5862af2d7944e6d663e54e4a194e GIT binary patch literal 1634 zcmV-o2A%ndP)C0001cP)t-sM{rD@ zXOcoZMMOSGhl+?pJw<0|XpLNhGA%OcJkJ8Y&S6YSu000}ycBvqU)~nF57845BwR0TDgb?~~&9Mrx zwSX%37*ffAta*jQNa5Zg%vy@q_Ou|BVa62D`n7$RLO73q7--nn4C@&}@K(02e_03P zA)rX#zN*8@uzxVfzeF%f;0*RROMpiBnrV+xtjpnef4Uw_ z-zhl31OU1wPBKTKzyF@%KdB9nzu#T2NqL8x0uYSbq+q9XKb?|C7EjZ-2%P=tdPTRd;V*T7fm?ASqO~jW z#R`}M(ApN^{d@qVEP+Fhwbs#Ed76d93YblxJ=UrYvm)RO1&7icFbF_1U=J6-!>pAI zU~U>#3}Pk%z_$dDm|KXzNchzej|CuEt>LWpnw=VWdy)ZkZbn^ejmUsqAOGxRf1SHw zcDqzMUPjc5tpW(3u_4KBX;CU21Hj&&?uKmm@W^2?YhV@F*ZcmRM#7m{fJOava( zgc?mS6`^sRq@E83H(g zEPm2ip|_*$wkjbAAk2f(FE3aE2%z*o>Jt2il(%C!g3AARWC)-HD*vM{LH0+rC6ps* z{5b*{pz+rw=m4+}b|Di1u^WGeKu)0ZF9|f>So8@va1Hv2klB~^rF#Mqfbl=(=`9-o z0M{T%woC*PftUdAe;!f-8UYN@7lGVkiGT+X{O`j6R1x$=00=mM5&r!&RCWQoAZHQ* z12D>;xgQGWLmWY-%zyzH<4^c^jo$XBHjpy7cK~FBzjSh-DgwJ2@C1(zz#io<9^Uwh z2q*#E2bX8w0F3dMk4{u=kT3*X26^88QVjP8-!;3}lcE#j49Y;#fboN8M_5f@w;_-h z1cUtHqoZ)AXass_)vO5W3Z0r}I3dCx=*^S8JUEE@f7bvxI3 z*ym&0e?^*hzuxS}S=0lxw^uJtO{!0f7=*vH*_)sCzq}vy<@xMj=xpdNZGO@x5W&x1 zFlaxtY5;n>N(=#g{rmk~edzePy-yS$$AA)zr4T6 ze+l52etL9Et@bwrAS>@{d^l{n0svPU0B~GcpO*$9XK0E8aHT&Tz;i?)=L=klH!hN| zoeqGJAkX=N+oH%_PrBGLFZ88q%VJ|7@d^HvpqQV4@dvhK^Jl>NA3qv`O}`Y*odN5g zx}WtQ#fSfqE|UT0|LHXV`G><2%$Nc1@8B*02Q89;$N3{aBR<|mNH&jZX&faLKD0C--49-te)0KjKZq^2WiZ-M>zB>)R`1jWWR?2l1Rz>Hr8 z=rW-G#&5)4MZk_90BHJP4*!OL9X|ljWH5_=O~8&H1gQGJo$0xg^0^k)9|WlOkaIm` zfVlB10LrVZxrF(5b})do+;cw)faUa=R;K{z?*VLT{ThJdH(KNwCt0|C*M@!xfD$ya g-g@h;xBg-M4>b1Ly?UjcKL7v#07*qoM6N<$f_9h$h5!Hn literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_26.png b/app/src/main/res/drawable-nodpi/weather_faded_26.png new file mode 100644 index 0000000000000000000000000000000000000000..6759bccca77739d7ea6767aaa71b82cf47d8d449 GIT binary patch literal 1236 zcmV;_1S|WAP)C0001BP)t-sM{rC; zJx5MLOj225YQV>WIXq*mvqEHQs8&l_k(jh%TTp|EKuJ(fbbPCLc5B1R{Ca5e$#QDQ z&+^Z5(ob3Zb7gSP*YA;P700f|(_Hs{YcyHyx9dtP3g65U~z$Ln;7PqSyM9(Py0!MK{a-eEpXhDgJ@n72^ko!-X>15xiGjH3pS6kOKwB?WbWM8r$G9ZMzrx@cD zYXJVGtwT%xx(6xw!M$t#nj5AQVO$h(vdiAn=Z`VKtp5n9+nKvkk>0%>00H_DU|NV4 zzw_rY6z3gh1n)KnAk%e-weRg^B_6v8$gBjz{nzQTzX;*JpI|%+`WT3jzvzVB1bQBr zjech0Zy^J<8^|Wp@M`^s3@&>!m=6O{08@Y7iOD_!(l7L*VL)nAe;z^P`N2gf@qR-f zn?Nszio&b`bOz^h(FvcUd$65gw9pR|;0Awzpng&g5na5E1VnH5hUH*W0Mm*T(YCe> z^|>P(mjC+q{u0680?_maQ%$fZ0Euwk5JLFXJoV8_jlz1TznGsM8vvfoQ=iS`1G;uM zz?K=ZI~{kYL$Twl>zbi9wIJgevIA)9Z&7zFlv?rU|0^&D5WBw7pIQOn^OI)?P%iCz z_7uUa4Z=DFu{U0(;v$7o5gYj5;rw|9>oej7(%+y9e5m>>fM^XM0u6xIV5JQMVE@(W zFaifyZh{1~0Xl&AxFOgHF9Ss23E;(H;GGW!03QQu0GAH{#0LWuM*}QB!T1Eg;ax~;cfFTh6MrTt$0U;=&z&AS^dk_S;h!WrQVV&puvE5GO zFEZ}FZ~m~56I`Og8UnYEgDw6Yf&Ylo0$WjM?{9oqDiDHu6rJ}fiZ97#`yRnhl3<^N yIk*4S%QT5#K|5aMc@}hXa&mHVa&mI|r}YC0000#P)t-sM{rC{ zMNdFGLT$>?PDW5vO;(b!jG zZDEz2TY7^=WuG+w000hjQchC^27)eAyRCt{2nd_3H zAP|KGgR zfJ)KztqQb#C*-{@sO(x}tz{;_;L5b!eIBT2*{uBogKt`Kiv^H>RiCl;4hwQieo975 zDqK2a%^p^X3K81x%a1|m@zOxrsD20nnu9cbaM0p7po#iuG3ZnEg98NpE?plgvCFP6 z88b)7-4D_WV2(lVLR?P(3v84@)`mo>Vk_G4p&pkn|5sT<@DhNa=>6av=iE6rcxB!^ zWDNmr*+SlU$G=AO{NcQMv5>VLNxP6AKwU3^F9yG~VCCg?6Dfrdl05H0u=;oTZwre` zVHdj*=~{?tn7dS~9>40{s{G`EFM@EX3}w&0N4}@}V$ADJ`7sL4upBucAis9on_*9W zwBR0TINy(@T5mhX#q>iOejJ?MlEhYb8{+!U4$ih?u`zYBB>j+uxeiWFsB&ZZ%%|xG z2lE4qI%9ySjrA*?YCwN^J8cwa3~bFk%q8oGegOLf(A2d!XySSTCJXZx0h<-Ck324I z5B~0ufoC{x(k)~Pz#C0!Q|vNSzb`kK{0W)?EY8o?u8-j+!9?mFg2)Llpr$dT)CkhgO zO98Lw(UMS;1Owmzs~>}Yl>(9jp0@tc01^4?pb@G1qXU`wUf{J%*9S=6AdK=y^r0IB z3w0I`yqV;W9UY7g!kJlpk#Ocl4le)MLMF}~oX|`j=#|4edYP(FC=?2XLZMJ76#jMo Y0?rpSDbj-Wc>n+a07*qoM6N<$f<9-hssI20 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_28.png b/app/src/main/res/drawable-nodpi/weather_faded_28.png new file mode 100644 index 0000000000000000000000000000000000000000..8627e12d3f4be59a668c5421f81a9eac5a00cf52 GIT binary patch literal 977 zcmV;?11|iDP)C0000>P)t-sM{rC| zLrh9UO8)iTUz3|ZI6h-*Yfo5N=Iq+*=+$Mfw$IGGx3#BhzQu}%eNA$BS%iw5nveed z`)k9>`10Cr%+vq==#9_Mx!u&Wmj!lzGMP-~--i5gkm4H<;ODlf98G)X@L3l`oU3uNjFi&rMRgV*^T2pRCptc2 zf75VQd;r2Ld&6&_(^PT%C_wXa^Ggp66u6wmY4kD4Q-KI;J-2@gLW`FM)=XoVsllqn zIDI?^vHEBZ+E{(-pheI>#p_!K>3ac2y1@V)Q?Cc4*%AO(28o;Tv`s&G5?J+;0JjfX z7PmodJaM_m>KSFWCIW|Kv4U@KA#33&TvD(S@7hL0bV26LyGY8 zF=1RGInX7n=~yUS7QF;rI%PM&Rib>JL;;Qde@W8h95_I&1av5<&;Z_fx} zDNHbS;59l)KyjGwd@Gm9WHOmdCX>lz{vZAV&10h`&>MQl00000NkvXXu0mjfBkjvN literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_29.png b/app/src/main/res/drawable-nodpi/weather_faded_29.png new file mode 100644 index 0000000000000000000000000000000000000000..7e549a5adccec2c53886d561660598a09009d116 GIT binary patch literal 978 zcmV;@11C0000*P)t-sM{rC; zJ48)FNmE%}{?&MI&(>V;NOx0YRZ%#Kf>10__Qc_Y< zQc_Y<(tjuTLm`W*l2s*-$v|4hSlf^+nrb$VBWufO2z<0+ZJ)&vRP2dRM+%{Q0_YHU z7DLY(ScE2vAkwY~$}GHonjjiMxdMn%g=P&fvhc^T{{=9P!A~Rq4Zy08rtboU0bq7pRN~P?N{%x9q+=V}b zSi2kBmy{|V_;=CL0F(K@-=*>#8{z4{X>XOw0rNIk{P*l_3I$#W{T#pCx3?jv4#ytm z{+}HFCWPU%$HCut<>_xiI7`5*z53CbF`xXG3{F;oFjjBuzko0He*PwdlXIam`>&Fd z7X%Pqwu`;DzdoktMx*UB%}~{4)AxN-*44}1oImNSTmYe5i+;7%Ty`()rS;^I{s2-H zMQ)`E(Ro8`zxGZ9V5=bKaiMQ$C45(_%@Ke+EzKbO+LBav1@O@nx$x@Cg9zj$0F6+1 zgaBl>3#NkTpx%1(P1h?h6S%9eF2ZEqT~_iY<;wY50O0NG*>#)qPX-0J z3HoQ#-|lWRaF1#rjpy7y6@heL2LR2ako0}a=Rq8>1CZ(%Kwt+Tl{oT;A~FC)uYd!9;{zNwVF-Z3 zW7q`%=;9`zB#qmIj$uS(lP~D1U!TFx=aT z`iqQ?5dWpACg38!tq$7$LBH|01f&ysyQi)zSJs|<`E8Oxpxr|h7bV2NPuLp*gFq;u z*F>z~)R$>9!VQA+-{rv_%94_jl9G~=lKy4=1%u&xU?>s@WB>pF07*qoM6N<$f^PQC AHUIzs literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_3.png b/app/src/main/res/drawable-nodpi/weather_faded_3.png new file mode 100644 index 0000000000000000000000000000000000000000..812606f7f3bf568143a74990c96a32a4b9e978cd GIT binary patch literal 1683 zcmV;E25k9>P)C0001cP)t-sM{rC) zIYB=8wDj^zDHg6TuRMXi}N_{{572A>76S3d`pYF4KmIHY(g?Ik{wxNP>Hs;@ z{29SPhCd!N|GES+`hhy#-=({`WuRcPb7zR!bCxDVw&%U?&eHTGU~>M7<9I*M-=)s9 zB;f5njv_De{BS10q?v$!zT(JZitcm$*>-V!2(*1}FCzdf1Y;LQwV3PW6`)fKg@G@|OlMA_v=+znl!PG8~)(()5=z2QmPA;JyHT zMcx7#7`!Gbtpbn;;L>45Ksx?1+F-6>%~07#ZGePI0~oX*bpjx75)5ob-3pKiK!W zXthzm=Ljx>(mnWPl0GdOA=t)X4vMiCl0Pr&DgXhV)z~vxu5{H~6>c^5p3mRk+MFp^ z0Dv0hOw>9x&~;A%9yj>_H&nI4Ho>!NzYKtT`zI)ZcL9XQYERe(NPc;M`zwG6C#ts! z0JryK5WtIBNN<00BGAb}V(|q10Q7df{!uzIFm(-d$}j*Q=PIeRk2>87E_AVVeJnfO7s~ zg3jmWW)c!B7!1(#Z<|rQ_(wqTxk0@hYQE02H-xQXf;8?_aXoB048H&nALD8{{%<^bZ}7W+Br0iePIRAuXB z2oOMEg+l^R+Vw<$?t0Gdv~wIoy)d1NorwqspbUYy2z{sj!V6&t2?X#=?ta*0fCIq% zI`yfSJtGhQ>q{2ed2azZNZ3irK4S>^H23A;ub46+J0sZ*yJmt;S=l!?=7HtKsiI_m zzx$~|Awc%HBFJB|gy}o`pbh*s^E)-SPM6E}R5F~l4IP+F5rCoQGL7`bA%BtmefZZG z$KZ7NKC+`Vd?^5eBbO-=K-uLLlwLI}-fUb)5unsO75**&tnSY$F99}nxV1bVx-sBVV?+E*0Faqy>;=H3=YQ>puXDAYlB2&&Edh@FBS97N z9!=EIw~UYlmjKH!5ljLu&&@X)V=tHBtS12_z}Sp|C7|}k=M_NSlfI#6U=Dz(HVZ(> zJJAt(28ICG>dZ>PChbIl1#&AY5CAAwI?yD>0bJk)g1ICZV6!*-=I9`RZ}^#lIt03g z!M9Z*Fvnl5Nqey++CtzqfuUj8fat;seJR$9!AV#Sj#QOs91s=_Fk6g_Nf$m-fQvYA zY}Fv9!DOnM*q^;mBV^hoY|R4ua2*3&E}Xc3hE2U#g{;7Oac!Der%UH%88Lv>@jJzO@p1D}ovcM}OApuO^yXh--~c{b0<0H*xCA!Zhf83CKiUPDln>Y7s#U92 dty;CH{sXd--7aZl2-yGt002ovPDHLkV1l?J61xBZ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_30.png b/app/src/main/res/drawable-nodpi/weather_faded_30.png new file mode 100644 index 0000000000000000000000000000000000000000..6759bccca77739d7ea6767aaa71b82cf47d8d449 GIT binary patch literal 1236 zcmV;_1S|WAP)C0001BP)t-sM{rC; zJx5MLOj225YQV>WIXq*mvqEHQs8&l_k(jh%TTp|EKuJ(fbbPCLc5B1R{Ca5e$#QDQ z&+^Z5(ob3Zb7gSP*YA;P700f|(_Hs{YcyHyx9dtP3g65U~z$Ln;7PqSyM9(Py0!MK{a-eEpXhDgJ@n72^ko!-X>15xiGjH3pS6kOKwB?WbWM8r$G9ZMzrx@cD zYXJVGtwT%xx(6xw!M$t#nj5AQVO$h(vdiAn=Z`VKtp5n9+nKvkk>0%>00H_DU|NV4 zzw_rY6z3gh1n)KnAk%e-weRg^B_6v8$gBjz{nzQTzX;*JpI|%+`WT3jzvzVB1bQBr zjech0Zy^J<8^|Wp@M`^s3@&>!m=6O{08@Y7iOD_!(l7L*VL)nAe;z^P`N2gf@qR-f zn?Nszio&b`bOz^h(FvcUd$65gw9pR|;0Awzpng&g5na5E1VnH5hUH*W0Mm*T(YCe> z^|>P(mjC+q{u0680?_maQ%$fZ0Euwk5JLFXJoV8_jlz1TznGsM8vvfoQ=iS`1G;uM zz?K=ZI~{kYL$Twl>zbi9wIJgevIA)9Z&7zFlv?rU|0^&D5WBw7pIQOn^OI)?P%iCz z_7uUa4Z=DFu{U0(;v$7o5gYj5;rw|9>oej7(%+y9e5m>>fM^XM0u6xIV5JQMVE@(W zFaifyZh{1~0Xl&AxFOgHF9Ss23E;(H;GGW!03QQu0GAH{#0LWuM*}QB!T1Eg;ax~;cfFTh6MrTt$0U;=&z&AS^dk_S;h!WrQVV&puvE5GO zFEZ}FZ~m~56I`Og8UnYEgDw6Yf&Ylo0$WjM?{9oqDiDHu6rJ}fiZ97#`yRnhl3<^N yIk*4S%QT5#K|5aMc@}hXa&mHVa&mI|r}Yb%733O6UQvfUe6;j=Jp~J~s z?Wh0%0@F!EK~#90?U>6?+dvS;Z7n4|vbCGSv8y_XZ;1?)-r_VZ$}z4GYEMZ@g?cNd zsd6PCp&q*;sPo@qhlKdCYwzQTzeALRzn^Ai-(wh+DpjiVEQH#6etS03v75(~?CAKX z1R6U2kN^yI{4M~!R4yX=8TkP|s``!HrN3pV`nPH9ho))7^pz^(p{5QuCt#R)DS=U|j(KML@XrFVvRO_EP|k+9>wce)z8hFoP#RO9@bOH36Fp z)BtD>dNtULf#N6}BmheDU;+s#08o(dtE`1BHwhTY18OP2FL}UTvIOu&9+0Xbyp;!p zDS-URW`0cpTGD{jAVgJ^o(S6+z(^KQ%K)T@;YAuCU&Rk;zx;Z9l>tZ>p_c)`KV5+A zOqhUX4mp5q4tapHqY0qbngGdrQZEmX+m;vrxe!0HVzBFc#rISDhc7vDgoHEID>IXR{`NcVF(Rew#yfXP#QoSLQxg& zO9L=a$L8*>;P?W46@$3l%AgzbV4lxnS^ zm|&mJP9ng`ZEVM~t+|*GG5YR07*qoM6N<$f=NSzEdT%j literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_32.png b/app/src/main/res/drawable-nodpi/weather_faded_32.png new file mode 100644 index 0000000000000000000000000000000000000000..773b5f0f31a957529b5c0ccc713011fa236de3d6 GIT binary patch literal 1706 zcmV;b237fqP)C0000;P)t-sM{rC+ zIYC=VQdUe?omNofb7aF#SdK$WbSyH;RA2mgXz|H%(ob3P&vW>5X53R<+GJY(fo$V% zUh$l1tv^Zey>IZYZ0(6acu%UknfzxN69Zm4~iQ9{h;)HYE&89gSA^7)7%b%|#fS-5Nn9&FEPAOT_nvPc2 zwN#yf00I(k`b=}p>)k9rn%49k)ay|dnfZn6w4q~7#4-Su*23ehdL1{*z!|XwZ~yE4 zUpWBuzms%TeqvCZ#C%W=&|3NWqtUvHj6%5wTCVoUTQA6t9qxg)tM|zd2#Or+0kOCH z^El{9dHl))m@q`7`xIN`uib$j&JgNM|UIO2|&=^gqi0;t_QsN2a_A*8C%~G83b@bY&PZrwBEy{dHja_90Ai%3APdc>?`A0khM7ll< z0&+pe5(un53PFfKl4HWfp$Ws?1mpQv(J}{sITx74XfMH_&(H{TnfkCA%u!&+U>CvI zf4m6jd;sT0HH7g;f+_#N@Cal~fiVg?KL|b(xcr9$$Q}XchQ@2r4uV;qaTmavMi4zKR_ErR0!XdEEa4+(I?0{yj)@TGo0fLu51WpV*j6dd z{zSlVf+5QVcrCGq8@^9}B0yu17X>&1>3f`MOAG@X z05FL}(`RH#`yf}HK;Y{u(9Z!dK2TW%zJ4u0J}+Ai1hr4FFI%pq*UIYWU0C$JcVk7> zj@ihVcgagtUjVQmkeYqEF~K>0(_+-m2I#xs)@suU%v|x~|F4@-Kl|3K@0EWQXsQEP zT$~Z@R~S&*PWtbBfRMl-kma?ZDK3%W)#j%bUvPCBA+Xoi z%9IarZR?3lQP1M;y2kn?x92tzm$&n-Y#>_LLS=*Xi|Pk@GaHi%D9m)}v3_9<2|TNn zDF_g#fqr2Pi6Piu#R6CSBG50bAu$Mh3t3EsLA%f|t|Kx}Z1rb^p}r#Ye^Cs$CCO9= zY?PAO>0rw{7X3e_mdxyt-~zdmEAtN2l{Qrr%~C(d1GWmV89$q0e;}AG6&V*EzmjMy ztTFpP>$kD(^pHe=>KQjdhI$oY3U`zo%+wQ&RXt|^-A7v{0^A=_t139LFyTsfgz$cV zSJbPDH%+WH{kli&0a%qixiTzl>xpbx51jvARxD~SK8i= zu`s9V8Lv`1dN9Em`WpoN9Q}2Iv-DR8_<8zqf;06a1pHk6CBfPH0RcZ>-zT_29})0t z^c}%f`V+x*`UAn0`j+5QeYh($ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_33.png b/app/src/main/res/drawable-nodpi/weather_faded_33.png new file mode 100644 index 0000000000000000000000000000000000000000..9494dcda443516a069ad1208a5f9c5e40802bd1b GIT binary patch literal 846 zcmV-U1F`&xP)b%733O6UQvfUe6;j=Jp~J~s z?Wh0%0@F!EK~#90?U>6?+dvS;Z7n4|vbCGSv8y_XZ;1?)-r_VZ$}z4GYEMZ@g?cNd zsd6PCp&q*;sPo@qhlKdCYwzQTzeALRzn^Ai-(wh+DpjiVEQH#6etS03v75(~?CAKX z1R6U2kN^yI{4M~!R4yX=8TkP|s``!HrN3pV`nPH9ho))7^pz^(p{5QuCt#R)DS=U|j(KML@XrFVvRO_EP|k+9>wce)z8hFoP#RO9@bOH36Fp z)BtD>dNtULf#N6}BmheDU;+s#08o(dtE`1BHwhTY18OP2FL}UTvIOu&9+0Xbyp;!p zDS-URW`0cpTGD{jAVgJ^o(S6+z(^KQ%K)T@;YAuCU&Rk;zx;Z9l>tZ>p_c)`KV5+A zOqhUX4mp5q4tapHqY0qbngGdrQZEmX+m;vrxe!0HVzBFc#rISDhc7vDgoHEID>IXR{`NcVF(Rew#yfXP#QoSLQxg& zO9L=a$L8*>;P?W46@$3l%AgzbV4lxnS^ zm|&mJP9ng`ZEVM~t+|*GG5YR07*qoM6N<$f=NSzEdT%j literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_34.png b/app/src/main/res/drawable-nodpi/weather_faded_34.png new file mode 100644 index 0000000000000000000000000000000000000000..773b5f0f31a957529b5c0ccc713011fa236de3d6 GIT binary patch literal 1706 zcmV;b237fqP)C0000;P)t-sM{rC+ zIYC=VQdUe?omNofb7aF#SdK$WbSyH;RA2mgXz|H%(ob3P&vW>5X53R<+GJY(fo$V% zUh$l1tv^Zey>IZYZ0(6acu%UknfzxN69Zm4~iQ9{h;)HYE&89gSA^7)7%b%|#fS-5Nn9&FEPAOT_nvPc2 zwN#yf00I(k`b=}p>)k9rn%49k)ay|dnfZn6w4q~7#4-Su*23ehdL1{*z!|XwZ~yE4 zUpWBuzms%TeqvCZ#C%W=&|3NWqtUvHj6%5wTCVoUTQA6t9qxg)tM|zd2#Or+0kOCH z^El{9dHl))m@q`7`xIN`uib$j&JgNM|UIO2|&=^gqi0;t_QsN2a_A*8C%~G83b@bY&PZrwBEy{dHja_90Ai%3APdc>?`A0khM7ll< z0&+pe5(un53PFfKl4HWfp$Ws?1mpQv(J}{sITx74XfMH_&(H{TnfkCA%u!&+U>CvI zf4m6jd;sT0HH7g;f+_#N@Cal~fiVg?KL|b(xcr9$$Q}XchQ@2r4uV;qaTmavMi4zKR_ErR0!XdEEa4+(I?0{yj)@TGo0fLu51WpV*j6dd z{zSlVf+5QVcrCGq8@^9}B0yu17X>&1>3f`MOAG@X z05FL}(`RH#`yf}HK;Y{u(9Z!dK2TW%zJ4u0J}+Ai1hr4FFI%pq*UIYWU0C$JcVk7> zj@ihVcgagtUjVQmkeYqEF~K>0(_+-m2I#xs)@suU%v|x~|F4@-Kl|3K@0EWQXsQEP zT$~Z@R~S&*PWtbBfRMl-kma?ZDK3%W)#j%bUvPCBA+Xoi z%9IarZR?3lQP1M;y2kn?x92tzm$&n-Y#>_LLS=*Xi|Pk@GaHi%D9m)}v3_9<2|TNn zDF_g#fqr2Pi6Piu#R6CSBG50bAu$Mh3t3EsLA%f|t|Kx}Z1rb^p}r#Ye^Cs$CCO9= zY?PAO>0rw{7X3e_mdxyt-~zdmEAtN2l{Qrr%~C(d1GWmV89$q0e;}AG6&V*EzmjMy ztTFpP>$kD(^pHe=>KQjdhI$oY3U`zo%+wQ&RXt|^-A7v{0^A=_t139LFyTsfgz$cV zSJbPDH%+WH{kli&0a%qixiTzl>xpbx51jvARxD~SK8i= zu`s9V8Lv`1dN9Em`WpoN9Q}2Iv-DR8_<8zqf;06a1pHk6CBfPH0RcZ>-zT_29})0t z^c}%f`V+x*`UAn0`j+5QeYh($ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_35.png b/app/src/main/res/drawable-nodpi/weather_faded_35.png new file mode 100644 index 0000000000000000000000000000000000000000..eef24d04cbbcede3448805d44d7a7ea00f029f70 GIT binary patch literal 1755 zcmV<11|<23P)C0001oP)t-sM{rC$ zH9i0N;6FD(R!&ji*tzcM)RBsZPCH96DlB_Yax*6|J1sd=NmRMCs7^vpNIghvWn!3P zjLOHi@apbSNK*On+LmC7|NiCq?Z8e(PxR-!LpnxROjk-lO#AiSQFn-0d;Rdjfq8k>#jtj6Z?31Fo|1{AvM5df000$qQchC<4*noP+x~2xG0#$U z?VH)bTHde|RgidQ000H!(FHh`Nl&`+}>Z`B*UjgOk=STSy0ce=IzO-hunYGk)Q-jI}1r2>U zM+n)-_I=;R4+vRHa|)DC2pGDBy-Px9jv17p1#D$|e`U#g?UZRmcY*tp?k6V?F>W2SEn_zy}~R zfj0Y)-vTlL>^99ph6unOQpjQsh@V->U(!HUEoN5yS;u7pG%NsfN(%v^ zfdS}YQ3!Az7=S({p8zqXH@1Q6=W2R^IphIOjCvOVigGo*0Ch|*vuzkBhhw4r&Fkmy z-L~UQ_of#pBG3uI^{{_^T@$}AfD>S;Y9l~V1*8=x`$M7qG3rHtyqmhk3W7!eTW1d= zoWPz^@Y`<(O7ePNp3s|fNpMHf!3dy#j06q`-};QJ3@ zNqZVo1o7p}spWZq>)v^IZY6;0KOEtn@F(mV?Be1pQ{=Z1_E&>~pag)g-`T1n0`CQ& z%(w%YG^4165cbD@F9IGQz5Zak6=hH)zzt>bj_FAa3WCh=Nx%VQ*Pluq-~7rNC`CZ+ z$V0>5AoIf_1S|l#{_OjS%hi+*E9TNTW_r@G_U~~_2uKDD!0Y<4e^}~l7N{J{(gdDe zxn74b95Wfv0QB{Ts8j>Yn>Oa{Dc6(g^|*%)l>r67Tz}c0d*93~0@aSruIu{gAMqEK z7afZXd>Wwk`l-{fya-fJx z+(ZQ_!AT_4a5B>wY?J(PoCLN0qWcCZfv5!?!n;?0EcitR0ryztFMQXI37E0yH69&) zU9W8hoW%Z>cd<>T1r_trHHo~sbzthC*}vwK)lDF7IKloAag(;oor)+d6R3&nu}^dB z{lQ{18VUQ&@sRu?x|_R*I~U#in3SFB5ES(ox%}zr^6yPqX;|j$B2;{iP_`j60Pi;D zbQ}}gFd<l9#RXM9rZ;ccur6#&_Plm)N~u6w~(fL~`NPGGC1quxa9-vi((YD|Y~3cwZNi$`5d7SFcG zSE18A0a07Z5`Yt4&pzNd#9tkip40UcbuAQ@K&X)&OKVe(Jy`Hh>iTmPKocu{9l&bi z2uqTCmeLiVN~I@mDo(?N@(~sO0r%)EKJmkrg}+J;gl#dce;|Xx-`Py^nQ%NAy(ZPc zGobuOFmFM@R-2BT4`o36Yq&vX0D%Uy4`smk1Kc3<4yY*w!Jrv%{xrZxGT{9w0GeR1 z-B|Lc0X~rdSdgjU>CXUA1c5UdD1w~e<5%&$LG0(@4h>=Tne1<1zl xzXO0h=Wl5OJ?C$U1pVgkufF=~tFQh@{{R}Xp2P^G=W74}002ovPDHLkV1iKRK{@~c literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_36.png b/app/src/main/res/drawable-nodpi/weather_faded_36.png new file mode 100644 index 0000000000000000000000000000000000000000..773b5f0f31a957529b5c0ccc713011fa236de3d6 GIT binary patch literal 1706 zcmV;b237fqP)C0000;P)t-sM{rC+ zIYC=VQdUe?omNofb7aF#SdK$WbSyH;RA2mgXz|H%(ob3P&vW>5X53R<+GJY(fo$V% zUh$l1tv^Zey>IZYZ0(6acu%UknfzxN69Zm4~iQ9{h;)HYE&89gSA^7)7%b%|#fS-5Nn9&FEPAOT_nvPc2 zwN#yf00I(k`b=}p>)k9rn%49k)ay|dnfZn6w4q~7#4-Su*23ehdL1{*z!|XwZ~yE4 zUpWBuzms%TeqvCZ#C%W=&|3NWqtUvHj6%5wTCVoUTQA6t9qxg)tM|zd2#Or+0kOCH z^El{9dHl))m@q`7`xIN`uib$j&JgNM|UIO2|&=^gqi0;t_QsN2a_A*8C%~G83b@bY&PZrwBEy{dHja_90Ai%3APdc>?`A0khM7ll< z0&+pe5(un53PFfKl4HWfp$Ws?1mpQv(J}{sITx74XfMH_&(H{TnfkCA%u!&+U>CvI zf4m6jd;sT0HH7g;f+_#N@Cal~fiVg?KL|b(xcr9$$Q}XchQ@2r4uV;qaTmavMi4zKR_ErR0!XdEEa4+(I?0{yj)@TGo0fLu51WpV*j6dd z{zSlVf+5QVcrCGq8@^9}B0yu17X>&1>3f`MOAG@X z05FL}(`RH#`yf}HK;Y{u(9Z!dK2TW%zJ4u0J}+Ai1hr4FFI%pq*UIYWU0C$JcVk7> zj@ihVcgagtUjVQmkeYqEF~K>0(_+-m2I#xs)@suU%v|x~|F4@-Kl|3K@0EWQXsQEP zT$~Z@R~S&*PWtbBfRMl-kma?ZDK3%W)#j%bUvPCBA+Xoi z%9IarZR?3lQP1M;y2kn?x92tzm$&n-Y#>_LLS=*Xi|Pk@GaHi%D9m)}v3_9<2|TNn zDF_g#fqr2Pi6Piu#R6CSBG50bAu$Mh3t3EsLA%f|t|Kx}Z1rb^p}r#Ye^Cs$CCO9= zY?PAO>0rw{7X3e_mdxyt-~zdmEAtN2l{Qrr%~C(d1GWmV89$q0e;}AG6&V*EzmjMy ztTFpP>$kD(^pHe=>KQjdhI$oY3U`zo%+wQ&RXt|^-A7v{0^A=_t139LFyTsfgz$cV zSJbPDH%+WH{kli&0a%qixiTzl>xpbx51jvARxD~SK8i= zu`s9V8Lv`1dN9Em`WpoN9Q}2Iv-DR8_<8zqf;06a1pHk6CBfPH0RcZ>-zT_29})0t z^c}%f`V+x*`UAn0`j+5QeYh($ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_37.png b/app/src/main/res/drawable-nodpi/weather_faded_37.png new file mode 100644 index 0000000000000000000000000000000000000000..812606f7f3bf568143a74990c96a32a4b9e978cd GIT binary patch literal 1683 zcmV;E25k9>P)C0001cP)t-sM{rC) zIYB=8wDj^zDHg6TuRMXi}N_{{572A>76S3d`pYF4KmIHY(g?Ik{wxNP>Hs;@ z{29SPhCd!N|GES+`hhy#-=({`WuRcPb7zR!bCxDVw&%U?&eHTGU~>M7<9I*M-=)s9 zB;f5njv_De{BS10q?v$!zT(JZitcm$*>-V!2(*1}FCzdf1Y;LQwV3PW6`)fKg@G@|OlMA_v=+znl!PG8~)(()5=z2QmPA;JyHT zMcx7#7`!Gbtpbn;;L>45Ksx?1+F-6>%~07#ZGePI0~oX*bpjx75)5ob-3pKiK!W zXthzm=Ljx>(mnWPl0GdOA=t)X4vMiCl0Pr&DgXhV)z~vxu5{H~6>c^5p3mRk+MFp^ z0Dv0hOw>9x&~;A%9yj>_H&nI4Ho>!NzYKtT`zI)ZcL9XQYERe(NPc;M`zwG6C#ts! z0JryK5WtIBNN<00BGAb}V(|q10Q7df{!uzIFm(-d$}j*Q=PIeRk2>87E_AVVeJnfO7s~ zg3jmWW)c!B7!1(#Z<|rQ_(wqTxk0@hYQE02H-xQXf;8?_aXoB048H&nALD8{{%<^bZ}7W+Br0iePIRAuXB z2oOMEg+l^R+Vw<$?t0Gdv~wIoy)d1NorwqspbUYy2z{sj!V6&t2?X#=?ta*0fCIq% zI`yfSJtGhQ>q{2ed2azZNZ3irK4S>^H23A;ub46+J0sZ*yJmt;S=l!?=7HtKsiI_m zzx$~|Awc%HBFJB|gy}o`pbh*s^E)-SPM6E}R5F~l4IP+F5rCoQGL7`bA%BtmefZZG z$KZ7NKC+`Vd?^5eBbO-=K-uLLlwLI}-fUb)5unsO75**&tnSY$F99}nxV1bVx-sBVV?+E*0Faqy>;=H3=YQ>puXDAYlB2&&Edh@FBS97N z9!=EIw~UYlmjKH!5ljLu&&@X)V=tHBtS12_z}Sp|C7|}k=M_NSlfI#6U=Dz(HVZ(> zJJAt(28ICG>dZ>PChbIl1#&AY5CAAwI?yD>0bJk)g1ICZV6!*-=I9`RZ}^#lIt03g z!M9Z*Fvnl5Nqey++CtzqfuUj8fat;seJR$9!AV#Sj#QOs91s=_Fk6g_Nf$m-fQvYA zY}Fv9!DOnM*q^;mBV^hoY|R4ua2*3&E}Xc3hE2U#g{;7Oac!Der%UH%88Lv>@jJzO@p1D}ovcM}OApuO^yXh--~c{b0<0H*xCA!Zhf83CKiUPDln>Y7s#U92 dty;CH{sXd--7aZl2-yGt002ovPDHLkV1l?J61xBZ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_38.png b/app/src/main/res/drawable-nodpi/weather_faded_38.png new file mode 100644 index 0000000000000000000000000000000000000000..812606f7f3bf568143a74990c96a32a4b9e978cd GIT binary patch literal 1683 zcmV;E25k9>P)C0001cP)t-sM{rC) zIYB=8wDj^zDHg6TuRMXi}N_{{572A>76S3d`pYF4KmIHY(g?Ik{wxNP>Hs;@ z{29SPhCd!N|GES+`hhy#-=({`WuRcPb7zR!bCxDVw&%U?&eHTGU~>M7<9I*M-=)s9 zB;f5njv_De{BS10q?v$!zT(JZitcm$*>-V!2(*1}FCzdf1Y;LQwV3PW6`)fKg@G@|OlMA_v=+znl!PG8~)(()5=z2QmPA;JyHT zMcx7#7`!Gbtpbn;;L>45Ksx?1+F-6>%~07#ZGePI0~oX*bpjx75)5ob-3pKiK!W zXthzm=Ljx>(mnWPl0GdOA=t)X4vMiCl0Pr&DgXhV)z~vxu5{H~6>c^5p3mRk+MFp^ z0Dv0hOw>9x&~;A%9yj>_H&nI4Ho>!NzYKtT`zI)ZcL9XQYERe(NPc;M`zwG6C#ts! z0JryK5WtIBNN<00BGAb}V(|q10Q7df{!uzIFm(-d$}j*Q=PIeRk2>87E_AVVeJnfO7s~ zg3jmWW)c!B7!1(#Z<|rQ_(wqTxk0@hYQE02H-xQXf;8?_aXoB048H&nALD8{{%<^bZ}7W+Br0iePIRAuXB z2oOMEg+l^R+Vw<$?t0Gdv~wIoy)d1NorwqspbUYy2z{sj!V6&t2?X#=?ta*0fCIq% zI`yfSJtGhQ>q{2ed2azZNZ3irK4S>^H23A;ub46+J0sZ*yJmt;S=l!?=7HtKsiI_m zzx$~|Awc%HBFJB|gy}o`pbh*s^E)-SPM6E}R5F~l4IP+F5rCoQGL7`bA%BtmefZZG z$KZ7NKC+`Vd?^5eBbO-=K-uLLlwLI}-fUb)5unsO75**&tnSY$F99}nxV1bVx-sBVV?+E*0Faqy>;=H3=YQ>puXDAYlB2&&Edh@FBS97N z9!=EIw~UYlmjKH!5ljLu&&@X)V=tHBtS12_z}Sp|C7|}k=M_NSlfI#6U=Dz(HVZ(> zJJAt(28ICG>dZ>PChbIl1#&AY5CAAwI?yD>0bJk)g1ICZV6!*-=I9`RZ}^#lIt03g z!M9Z*Fvnl5Nqey++CtzqfuUj8fat;seJR$9!AV#Sj#QOs91s=_Fk6g_Nf$m-fQvYA zY}Fv9!DOnM*q^;mBV^hoY|R4ua2*3&E}Xc3hE2U#g{;7Oac!Der%UH%88Lv>@jJzO@p1D}ovcM}OApuO^yXh--~c{b0<0H*xCA!Zhf83CKiUPDln>Y7s#U92 dty;CH{sXd--7aZl2-yGt002ovPDHLkV1l?J61xBZ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_39.png b/app/src/main/res/drawable-nodpi/weather_faded_39.png new file mode 100644 index 0000000000000000000000000000000000000000..f5a1bdb39aa5e9681042c0b8acd937433e23da87 GIT binary patch literal 1860 zcmV-K2fO%*P)C0001=P)t-sM{rC& zI6pZuIW;dfIxaaYAu3xzS6otDNG|Pk%4i)pljK-Z(oa)sE%a3xVutvcuiw#nS^0pe}_>>QkGzfYs1R%$#PXpR&CAI z`_XhxL{3URN}*u=MX-v&@l@CT&`Gcj&N(@&Et^Hc3Q5 zRCt{2o7sAzKoEsx6~uj=i3!LmkZ6pV_kXtO2HCoc)mCq)i+rC0dVZ=;RW}VY81&Ic zAAR)EN2d@tNfbp{Mt>xU8$367Nt}!|-Lfp*MSpc&QzjxO44xB$G#Oi1J0Iw?rijl- z1SgJ3@eD#!qz9*gleH4{gh3G>h`@{0@;3zOQTo!jRz5<|Cj2Ahd6a#uthfJPeZ7P9G5{ED74{vnA-F&yt{4TE0mj{GkrzkDqk+QG?V|Q3?*-`MLv?hMXOMs{DG-mT{+G)Dprs20Ih8kzAp?Mx-H0FM^h2FRSd*^$ z$195jw6dX)*Jm^Wt!yY4^g{+U&~6N*fqcR{9VBEVD$N?w~^f^-h$P%Ez!b~Osn6&{E z5rDvR9LJZUjEu(tpdmo(OJ$4$?`DA`Frxu*h!*lfMpe+927qR+c>lZ z7@80O(#XB636KGHjR-<0-a88l4PZPJ01@QP_;(i407G_l2onf30K|0cdaQxuYJh?Z zUC*=5XT}7%X&THx>cU9<-_*HyYytFasRRNT!@Rl^IIJ^}TPO%4Kp!p3Q*|dW&EU!$ zAWH$z2k>lgyLJ;tV6rcZ%ms8O3`66RTzd>Kwb%osOBIn^j~SPfnTg|YPVD=FHBNeg zL|p&H3<~NI0P7;a4o^%V6sP0xREuF|MFSjl#ZV#OUstxFFg}#sVX#%Y8BZ9Io zDrGCtllan7jI?jsNkxgn+njF7yJ@1QmTKr;o()m+MCQ2jBmJzf5dh z*qkfFg$W4b<5Y?uCIF&Cj$G3I<4x7$3`} z2Jj)gd&VU`pn74nIsp3dlGI1n8x4YMEla#vHUI?zXhuf;n9OAAvjV^pcY_*$(!I0W z;|gd-rkg=QgscR&VhAj)V(*T_&ui#j7&imAJ^@ifB<)#DUCk>7f`k!F0O0aYnKE}V^A2vHot2{`x*F^=8Rw^wsH{xCu_NwysKz$P56@ltjTlK5)0Ui zG?Du^_119I6~eXWjUQt1SR9A&9s>kZt|@@Opnp%b{UTdk2zXiPepX_U@H-JC%IrEY#*i)yzCCTzvtskbUQ6UDwnm)9E$AH%0vz7^@ zrzW^*09zn;U4#dz!P;jh`t!DL74Q*&vjM)x!E?b!CF!c|Gksy}z!pHU15yAL`&|Ho z2p~|QLr@BU1l%_S1KbLOEzJF4(+&X6EPOb&uQ2UC^Ri>-D8crQ7~ z6-&`xsvs%1@=HskHc&4Pre)j$w_9b)Uv&K?7Td4lsd3)nR~ZT0L?CVnFJTda0P70#orbgWtk^_-TPAgZ1F0v6(*mzYvfBueAW`#jmvh y>cua%z(9Sm1qQ;4E%17PKKkgRk3RZ%Wc&wSX>f;mPNLrc0000P)C0001cP)t-sM{rC) zIYB=8wDj^zDHg6TuRMXi}N_{{572A>76S3d`pYF4KmIHY(g?Ik{wxNP>Hs;@ z{29SPhCd!N|GES+`hhy#-=({`WuRcPb7zR!bCxDVw&%U?&eHTGU~>M7<9I*M-=)s9 zB;f5njv_De{BS10q?v$!zT(JZitcm$*>-V!2(*1}FCzdf1Y;LQwV3PW6`)fKg@G@|OlMA_v=+znl!PG8~)(()5=z2QmPA;JyHT zMcx7#7`!Gbtpbn;;L>45Ksx?1+F-6>%~07#ZGePI0~oX*bpjx75)5ob-3pKiK!W zXthzm=Ljx>(mnWPl0GdOA=t)X4vMiCl0Pr&DgXhV)z~vxu5{H~6>c^5p3mRk+MFp^ z0Dv0hOw>9x&~;A%9yj>_H&nI4Ho>!NzYKtT`zI)ZcL9XQYERe(NPc;M`zwG6C#ts! z0JryK5WtIBNN<00BGAb}V(|q10Q7df{!uzIFm(-d$}j*Q=PIeRk2>87E_AVVeJnfO7s~ zg3jmWW)c!B7!1(#Z<|rQ_(wqTxk0@hYQE02H-xQXf;8?_aXoB048H&nALD8{{%<^bZ}7W+Br0iePIRAuXB z2oOMEg+l^R+Vw<$?t0Gdv~wIoy)d1NorwqspbUYy2z{sj!V6&t2?X#=?ta*0fCIq% zI`yfSJtGhQ>q{2ed2azZNZ3irK4S>^H23A;ub46+J0sZ*yJmt;S=l!?=7HtKsiI_m zzx$~|Awc%HBFJB|gy}o`pbh*s^E)-SPM6E}R5F~l4IP+F5rCoQGL7`bA%BtmefZZG z$KZ7NKC+`Vd?^5eBbO-=K-uLLlwLI}-fUb)5unsO75**&tnSY$F99}nxV1bVx-sBVV?+E*0Faqy>;=H3=YQ>puXDAYlB2&&Edh@FBS97N z9!=EIw~UYlmjKH!5ljLu&&@X)V=tHBtS12_z}Sp|C7|}k=M_NSlfI#6U=Dz(HVZ(> zJJAt(28ICG>dZ>PChbIl1#&AY5CAAwI?yD>0bJk)g1ICZV6!*-=I9`RZ}^#lIt03g z!M9Z*Fvnl5Nqey++CtzqfuUj8fat;seJR$9!AV#Sj#QOs91s=_Fk6g_Nf$m-fQvYA zY}Fv9!DOnM*q^;mBV^hoY|R4ua2*3&E}Xc3hE2U#g{;7Oac!Der%UH%88Lv>@jJzO@p1D}ovcM}OApuO^yXh--~c{b0<0H*xCA!Zhf83CKiUPDln>Y7s#U92 dty;CH{sXd--7aZl2-yGt002ovPDHLkV1l?J61xBZ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_40.png b/app/src/main/res/drawable-nodpi/weather_faded_40.png new file mode 100644 index 0000000000000000000000000000000000000000..45ddcdfdeee6f9ead483efbbc790f295c0db253e GIT binary patch literal 1837 zcmV+|2h#Y7P)C0001)P)t-sM{rC| zMo>aKMQ+X0N<>XhNl->XOGQ6OZN|>}?7vJyOH@)=Yr)4!NKbNWWn-+fwXBb4xxh|i zX7A#;;nlFs!J1YVSNt$^PD5>eaz=XNG&ov8v#Wj;fHP@NPAF4-fzV1|CU7 zK~#90?OKVFsyYybgoLm^a6=t+Mjvj-IOG3++{*&45KzNZy(&)Ct!odMK6an(gal3N z(4j+z4jnpl=;E`lc?8 zXB1GHlkmMD3}Nyn;CuaP`ZfWYho>2sUNns3c!-U+Gr$>SPtBAjUW6p0#Z1dN3=$O} zZu8ZGISg4J$-hY6Pk=~5(6k|VL8c()k7zno522c${1^k$s4p+t`S}cR(a3+&8VITH zh{G2BH(4%uu(kMe0zu7lWb<{;YanjT<5SdX0w`+QVcP+ytpi`;|M;zhz*Js>u+sa_ zZmos@kY<2Xcwg^!yB{S4r1JrCtGut*>)r2O0Ra-oS`mg--Wh>!6$D@)+fj;Om3MUn zrU*3B;GK7M1eQh<0>^vr3`ZpdVhI5-EQ;Xx=zgb!0C62j3d}Qs{Z9!2B>@O+8G*=^ z5cpA2g;Twn05I$@55fMsEdoOc0nN~h2aqxXb$w{xfFKNP-H;K8iwGRo4+Lte@OWy# z0miy6>4c_^!y*I^BB vNosFu`U2uN2ZK`w|tqv#@bkvgX|_kVoxRk4bYvPT!tkg zkhg)OwV|-21mM#4WEr3YbT8(cE2RWv{`V(NV3X{n39zLZU@G)%Q3xd}tjR!a0AT2_ z07zHGCem#zmWB5s5N&{bm#@qAM?pZM6X9PT0Co=K*$!t=M&SFGN>Q4D>N=$UX#(`R z<0Tpb4^sx@K?J*>U$!i(Qo_cPW`I7KbN{IBc#DRBCIK%Ad{iNuAglUuO$MO5#N2=V z{s0XDV-N@MQH9n0Se600y+Ni9_pdiO-(w6s%qTogh`bvSz5z2`ss>6jy|Sap7KXe7*_{#P0Xz1%cg}Njkv=Cfv(Jco;AOR-YSoPR%Lq z6z=sW&UXRRfsULt6G57$tJygPb6dc3emR!hh^QrS? z76gQ6)cJZgnLExZ*W)VE1z1@!dsHZTq3O}KM>(c^Ar z=L6~k=HxKoHX866=wWVr@+-g5#XEZGbR7T#M|l$MoIv_XM`JMj1BbBvJOkq5fM1z- zD2HLbdbrQafev7p<|HRD0wx0hW6^jUX%>+)0ybGEyZfC&1v?5&#&N*gWWk?5!)=--tsgD1lXR=H_p$O9s$& zN@2n5~wIRnCa(p{yq=hJTrga}HvigTDHk?e?Z8_F8$J%)dzB2JE%U zuYR6^>+)0$eO2DxxgPRI9=pX1XlPb0ZNLQ~^e|?{X{n!x1cA@$z|wUo|KAvW^sQ~b zop%~dzrMEEqr~WA+|C=epuyrE7zn-i5Ym7^qbGYNh_>D_Za6FeE&1=zp+kob9XfRA b&>H>&Xa>)9Hs;?q00000NkvXXu0mjf?%iii literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_41.png b/app/src/main/res/drawable-nodpi/weather_faded_41.png new file mode 100644 index 0000000000000000000000000000000000000000..d1ba909751453d1a0896dbbd1834817b71049ec5 GIT binary patch literal 1866 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_43.png b/app/src/main/res/drawable-nodpi/weather_faded_43.png new file mode 100644 index 0000000000000000000000000000000000000000..eef24d04cbbcede3448805d44d7a7ea00f029f70 GIT binary patch literal 1755 zcmV<11|<23P)C0001oP)t-sM{rC$ zH9i0N;6FD(R!&ji*tzcM)RBsZPCH96DlB_Yax*6|J1sd=NmRMCs7^vpNIghvWn!3P zjLOHi@apbSNK*On+LmC7|NiCq?Z8e(PxR-!LpnxROjk-lO#AiSQFn-0d;Rdjfq8k>#jtj6Z?31Fo|1{AvM5df000$qQchC<4*noP+x~2xG0#$U z?VH)bTHde|RgidQ000H!(FHh`Nl&`+}>Z`B*UjgOk=STSy0ce=IzO-hunYGk)Q-jI}1r2>U zM+n)-_I=;R4+vRHa|)DC2pGDBy-Px9jv17p1#D$|e`U#g?UZRmcY*tp?k6V?F>W2SEn_zy}~R zfj0Y)-vTlL>^99ph6unOQpjQsh@V->U(!HUEoN5yS;u7pG%NsfN(%v^ zfdS}YQ3!Az7=S({p8zqXH@1Q6=W2R^IphIOjCvOVigGo*0Ch|*vuzkBhhw4r&Fkmy z-L~UQ_of#pBG3uI^{{_^T@$}AfD>S;Y9l~V1*8=x`$M7qG3rHtyqmhk3W7!eTW1d= zoWPz^@Y`<(O7ePNp3s|fNpMHf!3dy#j06q`-};QJ3@ zNqZVo1o7p}spWZq>)v^IZY6;0KOEtn@F(mV?Be1pQ{=Z1_E&>~pag)g-`T1n0`CQ& z%(w%YG^4165cbD@F9IGQz5Zak6=hH)zzt>bj_FAa3WCh=Nx%VQ*Pluq-~7rNC`CZ+ z$V0>5AoIf_1S|l#{_OjS%hi+*E9TNTW_r@G_U~~_2uKDD!0Y<4e^}~l7N{J{(gdDe zxn74b95Wfv0QB{Ts8j>Yn>Oa{Dc6(g^|*%)l>r67Tz}c0d*93~0@aSruIu{gAMqEK z7afZXd>Wwk`l-{fya-fJx z+(ZQ_!AT_4a5B>wY?J(PoCLN0qWcCZfv5!?!n;?0EcitR0ryztFMQXI37E0yH69&) zU9W8hoW%Z>cd<>T1r_trHHo~sbzthC*}vwK)lDF7IKloAag(;oor)+d6R3&nu}^dB z{lQ{18VUQ&@sRu?x|_R*I~U#in3SFB5ES(ox%}zr^6yPqX;|j$B2;{iP_`j60Pi;D zbQ}}gFd<l9#RXM9rZ;ccur6#&_Plm)N~u6w~(fL~`NPGGC1quxa9-vi((YD|Y~3cwZNi$`5d7SFcG zSE18A0a07Z5`Yt4&pzNd#9tkip40UcbuAQ@K&X)&OKVe(Jy`Hh>iTmPKocu{9l&bi z2uqTCmeLiVN~I@mDo(?N@(~sO0r%)EKJmkrg}+J;gl#dce;|Xx-`Py^nQ%NAy(ZPc zGobuOFmFM@R-2BT4`o36Yq&vX0D%Uy4`smk1Kc3<4yY*w!Jrv%{xrZxGT{9w0GeR1 z-B|Lc0X~rdSdgjU>CXUA1c5UdD1w~e<5%&$LG0(@4h>=Tne1<1zl xzXO0h=Wl5OJ?C$U1pVgkufF=~tFQh@{{R}Xp2P^G=W74}002ovPDHLkV1iKRK{@~c literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_44.png b/app/src/main/res/drawable-nodpi/weather_faded_44.png new file mode 100644 index 0000000000000000000000000000000000000000..6759bccca77739d7ea6767aaa71b82cf47d8d449 GIT binary patch literal 1236 zcmV;_1S|WAP)C0001BP)t-sM{rC; zJx5MLOj225YQV>WIXq*mvqEHQs8&l_k(jh%TTp|EKuJ(fbbPCLc5B1R{Ca5e$#QDQ z&+^Z5(ob3Zb7gSP*YA;P700f|(_Hs{YcyHyx9dtP3g65U~z$Ln;7PqSyM9(Py0!MK{a-eEpXhDgJ@n72^ko!-X>15xiGjH3pS6kOKwB?WbWM8r$G9ZMzrx@cD zYXJVGtwT%xx(6xw!M$t#nj5AQVO$h(vdiAn=Z`VKtp5n9+nKvkk>0%>00H_DU|NV4 zzw_rY6z3gh1n)KnAk%e-weRg^B_6v8$gBjz{nzQTzX;*JpI|%+`WT3jzvzVB1bQBr zjech0Zy^J<8^|Wp@M`^s3@&>!m=6O{08@Y7iOD_!(l7L*VL)nAe;z^P`N2gf@qR-f zn?Nszio&b`bOz^h(FvcUd$65gw9pR|;0Awzpng&g5na5E1VnH5hUH*W0Mm*T(YCe> z^|>P(mjC+q{u0680?_maQ%$fZ0Euwk5JLFXJoV8_jlz1TznGsM8vvfoQ=iS`1G;uM zz?K=ZI~{kYL$Twl>zbi9wIJgevIA)9Z&7zFlv?rU|0^&D5WBw7pIQOn^OI)?P%iCz z_7uUa4Z=DFu{U0(;v$7o5gYj5;rw|9>oej7(%+y9e5m>>fM^XM0u6xIV5JQMVE@(W zFaifyZh{1~0Xl&AxFOgHF9Ss23E;(H;GGW!03QQu0GAH{#0LWuM*}QB!T1Eg;ax~;cfFTh6MrTt$0U;=&z&AS^dk_S;h!WrQVV&puvE5GO zFEZ}FZ~m~56I`Og8UnYEgDw6Yf&Ylo0$WjM?{9oqDiDHu6rJ}fiZ97#`yRnhl3<^N yIk*4S%QT5#K|5aMc@}hXa&mHVa&mI|r}YC0001=P)t-sM{rC& zI6pZuIW;dfIxaaYAu3xzS6otDNG|Pk%4i)pljK-Z(oa)sE%a3xVutvcuiw#nS^0pe}_>>QkGzfYs1R%$#PXpR&CAI z`_XhxL{3URN}*u=MX-v&@l@CT&`Gcj&N(@&Et^Hc3Q5 zRCt{2o7sAzKoEsx6~uj=i3!LmkZ6pV_kXtO2HCoc)mCq)i+rC0dVZ=;RW}VY81&Ic zAAR)EN2d@tNfbp{Mt>xU8$367Nt}!|-Lfp*MSpc&QzjxO44xB$G#Oi1J0Iw?rijl- z1SgJ3@eD#!qz9*gleH4{gh3G>h`@{0@;3zOQTo!jRz5<|Cj2Ahd6a#uthfJPeZ7P9G5{ED74{vnA-F&yt{4TE0mj{GkrzkDqk+QG?V|Q3?*-`MLv?hMXOMs{DG-mT{+G)Dprs20Ih8kzAp?Mx-H0FM^h2FRSd*^$ z$195jw6dX)*Jm^Wt!yY4^g{+U&~6N*fqcR{9VBEVD$N?w~^f^-h$P%Ez!b~Osn6&{E z5rDvR9LJZUjEu(tpdmo(OJ$4$?`DA`Frxu*h!*lfMpe+927qR+c>lZ z7@80O(#XB636KGHjR-<0-a88l4PZPJ01@QP_;(i407G_l2onf30K|0cdaQxuYJh?Z zUC*=5XT}7%X&THx>cU9<-_*HyYytFasRRNT!@Rl^IIJ^}TPO%4Kp!p3Q*|dW&EU!$ zAWH$z2k>lgyLJ;tV6rcZ%ms8O3`66RTzd>Kwb%osOBIn^j~SPfnTg|YPVD=FHBNeg zL|p&H3<~NI0P7;a4o^%V6sP0xREuF|MFSjl#ZV#OUstxFFg}#sVX#%Y8BZ9Io zDrGCtllan7jI?jsNkxgn+njF7yJ@1QmTKr;o()m+MCQ2jBmJzf5dh z*qkfFg$W4b<5Y?uCIF&Cj$G3I<4x7$3`} z2Jj)gd&VU`pn74nIsp3dlGI1n8x4YMEla#vHUI?zXhuf;n9OAAvjV^pcY_*$(!I0W z;|gd-rkg=QgscR&VhAj)V(*T_&ui#j7&imAJ^@ifB<)#DUCk>7f`k!F0O0aYnKE}V^A2vHot2{`x*F^=8Rw^wsH{xCu_NwysKz$P56@ltjTlK5)0Ui zG?Du^_119I6~eXWjUQt1SR9A&9s>kZt|@@Opnp%b{UTdk2zXiPepX_U@H-JC%IrEY#*i)yzCCTzvtskbUQ6UDwnm)9E$AH%0vz7^@ zrzW^*09zn;U4#dz!P;jh`t!DL74Q*&vjM)x!E?b!CF!c|Gksy}z!pHU15yAL`&|Ho z2p~|QLr@BU1l%_S1KbLOEzJF4(+&X6EPOb&uQ2UC^Ri>-D8crQ7~ z6-&`xsvs%1@=HskHc&4Pre)j$w_9b)Uv&K?7Td4lsd3)nR~ZT0L?CVnFJTda0P70#orbgWtk^_-TPAgZ1F0v6(*mzYvfBueAW`#jmvh y>cua%z(9Sm1qQ;4E%17PKKkgRk3RZ%Wc&wSX>f;mPNLrc0000C0001oP)t-sM{rC$ zH9i0N;6FD(R!&ji*tzcM)RBsZPCH96DlB_Yax*6|J1sd=NmRMCs7^vpNIghvWn!3P zjLOHi@apbSNK*On+LmC7|NiCq?Z8e(PxR-!LpnxROjk-lO#AiSQFn-0d;Rdjfq8k>#jtj6Z?31Fo|1{AvM5df000$qQchC<4*noP+x~2xG0#$U z?VH)bTHde|RgidQ000H!(FHh`Nl&`+}>Z`B*UjgOk=STSy0ce=IzO-hunYGk)Q-jI}1r2>U zM+n)-_I=;R4+vRHa|)DC2pGDBy-Px9jv17p1#D$|e`U#g?UZRmcY*tp?k6V?F>W2SEn_zy}~R zfj0Y)-vTlL>^99ph6unOQpjQsh@V->U(!HUEoN5yS;u7pG%NsfN(%v^ zfdS}YQ3!Az7=S({p8zqXH@1Q6=W2R^IphIOjCvOVigGo*0Ch|*vuzkBhhw4r&Fkmy z-L~UQ_of#pBG3uI^{{_^T@$}AfD>S;Y9l~V1*8=x`$M7qG3rHtyqmhk3W7!eTW1d= zoWPz^@Y`<(O7ePNp3s|fNpMHf!3dy#j06q`-};QJ3@ zNqZVo1o7p}spWZq>)v^IZY6;0KOEtn@F(mV?Be1pQ{=Z1_E&>~pag)g-`T1n0`CQ& z%(w%YG^4165cbD@F9IGQz5Zak6=hH)zzt>bj_FAa3WCh=Nx%VQ*Pluq-~7rNC`CZ+ z$V0>5AoIf_1S|l#{_OjS%hi+*E9TNTW_r@G_U~~_2uKDD!0Y<4e^}~l7N{J{(gdDe zxn74b95Wfv0QB{Ts8j>Yn>Oa{Dc6(g^|*%)l>r67Tz}c0d*93~0@aSruIu{gAMqEK z7afZXd>Wwk`l-{fya-fJx z+(ZQ_!AT_4a5B>wY?J(PoCLN0qWcCZfv5!?!n;?0EcitR0ryztFMQXI37E0yH69&) zU9W8hoW%Z>cd<>T1r_trHHo~sbzthC*}vwK)lDF7IKloAag(;oor)+d6R3&nu}^dB z{lQ{18VUQ&@sRu?x|_R*I~U#in3SFB5ES(ox%}zr^6yPqX;|j$B2;{iP_`j60Pi;D zbQ}}gFd<l9#RXM9rZ;ccur6#&_Plm)N~u6w~(fL~`NPGGC1quxa9-vi((YD|Y~3cwZNi$`5d7SFcG zSE18A0a07Z5`Yt4&pzNd#9tkip40UcbuAQ@K&X)&OKVe(Jy`Hh>iTmPKocu{9l&bi z2uqTCmeLiVN~I@mDo(?N@(~sO0r%)EKJmkrg}+J;gl#dce;|Xx-`Py^nQ%NAy(ZPc zGobuOFmFM@R-2BT4`o36Yq&vX0D%Uy4`smk1Kc3<4yY*w!Jrv%{xrZxGT{9w0GeR1 z-B|Lc0X~rdSdgjU>CXUA1c5UdD1w~e<5%&$LG0(@4h>=Tne1<1zl xzXO0h=Wl5OJ?C$U1pVgkufF=~tFQh@{{R}Xp2P^G=W74}002ovPDHLkV1iKRK{@~c literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_47.png b/app/src/main/res/drawable-nodpi/weather_faded_47.png new file mode 100644 index 0000000000000000000000000000000000000000..f5a1bdb39aa5e9681042c0b8acd937433e23da87 GIT binary patch literal 1860 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_na.png b/app/src/main/res/drawable-nodpi/weather_faded_na.png new file mode 100644 index 0000000000000000000000000000000000000000..42fc5ec60d29b8b91efe78007f3c7491f65ebfea GIT binary patch literal 1815 zcmV+y2k7{TP)C00024P)t-sM{rD2 zNmL~uARQ1AM;|377aKVtBUw35kz9mEGbvIqF_kzzC>IuHG(bZvJ;9(`l0-*zJ3;o% zbJI{-Pef0sLP>{Jd7NX9c1vlXZ1{75$Gl$(cV|lM5!*000Huw!e^c2(0)q*p;}BjU|zYq2j>udd0w9DZ0^yPI%Nr_J`{kdMAK!DkyWf@==cYEUab5(~xDLe;hMZl2JS^Rn#u&VLL z?G!*3-ADqP6|FPE1l=VIoyjrO+5x+n1}C@90AoBipcX|BK!dhbxPryQm$TZ|%O(<= zfj<8*|HvZLc1;P_ro_6;7d>t4El_YYTsNB-_5!58-v$la4EmF>h~uOmOl_kQhGNRZ zXF}9(>X><8&S;G1w-hkk0Ae5is^G{jP6D?w%sHKm!D)3*PcepU4ss(rqSMJ`>>`WF zwA4K;+rg-_!wuGhFw9~dODV`$g<)VnXdkCRx_A~Fa&DSK4%eA-Ph@uks&x-zDp${< z2c}LczQzVMgET#1IBma?RiO7nId|W@)gTaY`;ukY?^Xmn6>DSa>hH8C#9S(EatzH5 zonQrFn%oa(MX6Q7X=ev(BIFPIwd{?MEuRlMVla^NO>4IkW>~?X6Dx}KA1Af;vs49> zr=b%K3=#icSKE_gH$K3Dh=0+W*?u^nItSYdFXK?jpk;hC74a+SXD#0MynQU;c{AUw zc6`a8=6U$0l2_tm-S?s>j`sz`?83|`%cKkMv^rRl3AlMu+|IE(i{kx1mtZ73zZA_4 zxe;45B*YC+R1w);6lW3Hx&cfJc_oVdqFB?gWfFJ-iasKKw3n-m_AK$=0RC(SDG@g! zuMiLSkC4E|-9V1d9nO}|R~kn%-!ANj*rG1;g{0u;11MjC)0BY7Vb%bU!$W}1^s?*_ zaU_LkW|WgKX()jO0^|umLjHa1-|{tfg+h^+Jz+pChGsJY+yPk?vG`(n@3llrkc@K% zW?0VR9Y8@z04J&@_&RG3iX@&{nFNgsftCcYMSSPOq8{)xM1J}pxS&}>Hu*?75ApU8 zzs`>bn_<{-> zprVrZ6L1UTFsK@Pr8w4dv_1%Y-z~~-{{K$08| zqvBl*8H;BkDDF4f6A`z-Knk!2Ul&E*Wzi)LhectL6xu;50XKnuF9E3EbQ=K&?DO8D zp@j^e@C-;Qhh4$yew@32_oBO-Aw6biO5Ott0j=OA%~Tv=v@* z5e}p5De!G9+94G5+mCw*m^lHSfvg7^YaVJ*J%WnM%k+1`a#y8s29*Ei01AVHP`sGaCrR|LdN znyA5&1B&JbcF9iWARpE#0lvt**4))<g@Gll$ z{6*4!VK42^CZM0?vZWZS&nCcvp3@z2@FK{3I)U_UiuFqoPy`eKMc@$xj&E=L4IR>7 zUti;#z<)`?39ua~?Sw{7K;Gp9(qYCM!`%c1&reU!;#mI#ke8pH87zMP`8hqRWA^$9 z74MdYVgBm=PmIykm(6DQx_^#SP*6}%P*6}%P*C{&@jnCwU%U#$D>eWC002ovPDHLk FV1kNWQ}6%) literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_faded_refresh.png b/app/src/main/res/drawable-nodpi/weather_faded_refresh.png new file mode 100644 index 0000000000000000000000000000000000000000..42fc5ec60d29b8b91efe78007f3c7491f65ebfea GIT binary patch literal 1815 zcmV+y2k7{TP)C00024P)t-sM{rD2 zNmL~uARQ1AM;|377aKVtBUw35kz9mEGbvIqF_kzzC>IuHG(bZvJ;9(`l0-*zJ3;o% zbJI{-Pef0sLP>{Jd7NX9c1vlXZ1{75$Gl$(cV|lM5!*000Huw!e^c2(0)q*p;}BjU|zYq2j>udd0w9DZ0^yPI%Nr_J`{kdMAK!DkyWf@==cYEUab5(~xDLe;hMZl2JS^Rn#u&VLL z?G!*3-ADqP6|FPE1l=VIoyjrO+5x+n1}C@90AoBipcX|BK!dhbxPryQm$TZ|%O(<= zfj<8*|HvZLc1;P_ro_6;7d>t4El_YYTsNB-_5!58-v$la4EmF>h~uOmOl_kQhGNRZ zXF}9(>X><8&S;G1w-hkk0Ae5is^G{jP6D?w%sHKm!D)3*PcepU4ss(rqSMJ`>>`WF zwA4K;+rg-_!wuGhFw9~dODV`$g<)VnXdkCRx_A~Fa&DSK4%eA-Ph@uks&x-zDp${< z2c}LczQzVMgET#1IBma?RiO7nId|W@)gTaY`;ukY?^Xmn6>DSa>hH8C#9S(EatzH5 zonQrFn%oa(MX6Q7X=ev(BIFPIwd{?MEuRlMVla^NO>4IkW>~?X6Dx}KA1Af;vs49> zr=b%K3=#icSKE_gH$K3Dh=0+W*?u^nItSYdFXK?jpk;hC74a+SXD#0MynQU;c{AUw zc6`a8=6U$0l2_tm-S?s>j`sz`?83|`%cKkMv^rRl3AlMu+|IE(i{kx1mtZ73zZA_4 zxe;45B*YC+R1w);6lW3Hx&cfJc_oVdqFB?gWfFJ-iasKKw3n-m_AK$=0RC(SDG@g! zuMiLSkC4E|-9V1d9nO}|R~kn%-!ANj*rG1;g{0u;11MjC)0BY7Vb%bU!$W}1^s?*_ zaU_LkW|WgKX()jO0^|umLjHa1-|{tfg+h^+Jz+pChGsJY+yPk?vG`(n@3llrkc@K% zW?0VR9Y8@z04J&@_&RG3iX@&{nFNgsftCcYMSSPOq8{)xM1J}pxS&}>Hu*?75ApU8 zzs`>bn_<{-> zprVrZ6L1UTFsK@Pr8w4dv_1%Y-z~~-{{K$08| zqvBl*8H;BkDDF4f6A`z-Knk!2Ul&E*Wzi)LhectL6xu;50XKnuF9E3EbQ=K&?DO8D zp@j^e@C-;Qhh4$yew@32_oBO-Aw6biO5Ott0j=OA%~Tv=v@* z5e}p5De!G9+94G5+mCw*m^lHSfvg7^YaVJ*J%WnM%k+1`a#y8s29*Ei01AVHP`sGaCrR|LdN znyA5&1B&JbcF9iWARpE#0lvt**4))<g@Gll$ z{6*4!VK42^CZM0?vZWZS&nCcvp3@z2@FK{3I)U_UiuFqoPy`eKMc@$xj&E=L4IR>7 zUti;#z<)`?39ua~?Sw{7K;Gp9(qYCM!`%c1&reU!;#mI#ke8pH87zMP`8hqRWA^$9 z74MdYVgBm=PmIykm(6DQx_^#SP*6}%P*6}%P*C{&@jnCwU%U#$D>eWC002ovPDHLk FV1kNWQ}6%) literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_0.png b/app/src/main/res/drawable-nodpi/weather_gs6_0.png new file mode 100644 index 0000000000000000000000000000000000000000..3f9aaed90d947bfff165251aeda506aab67a9355 GIT binary patch literal 1886 zcmV-k2ch_hP)C0001fP)t-sM{rCG z3=9ei3IzoP1qB5G0Rj2>`2hg|kB^TK5D*Lu3|CiI1_lN}K|!dfsNvz^2L}h7oSZ;F zKyh(#&CSiQu&|Vrl=SrUxVX61*4BQ0eoRbEcXxMiaB%wi`v3p`@$vEO?Cj^~=l1sY z;^N}i*x1q0(f$4X-QC^9#KcxGP9FdO03LKwPE!CPGYte;{zab@n8A2b=IU+Sy=BR# zeCEL3y^NnhBohkG000JYNkl291)D%R zFWk}bj{X+&)I;lea0j<`xP0jT5g-l`acm;^VHL z0)6iP2ZJ^IBOYal$fCJ3#U3PjuSUH6y- z0}x{}P70)uL=`WX;qmCYzB4EzYRGifVlz_9gy8dtZrygXUi~ev<;r#F9Z&OUtmASL>QLNcSfcupUf`T22&oBFf-N zL?D~K0(g)LNftFb7XEnOyDG_k{OezlLs_lY8Sv8O(rZ5tCIjCe+dWgz(=XV^Dea@F zBI{saKCjlj$@IUf9h7UKrGfio{Z0G++!9vntQ`kWs`UZI#{egkO&7z zR_m;*dtY=45KIqIs6` zHzt5aHqzhY0aQTvpsfKk_r=9~1Q6{)(!rp)4)iyL05V8B8Gx%bw*kd3EN7+a1c0{- zfFbCsSDj+!AjDsv1DrAfW65 zI1_3aE9IEM%BZL@C^cvjAOi?s;Yh62L3MOeWJS@|py>kQs(KZ+B53J$qsBlGKng`& zgS-)hwx>!U--!l8qi3Zs$b&2u1gZ?U0*CsJtpBJIz-74SWu;~*c?~CsfK$hMa6n6%&YgQ!sc|d-J4ga_m$O&){bTA0>b8~v9Q{{z-LEv%%YqdxnfXo`*jA0IN5d$Y&5!EDPe1ggJb!2B*s>41`N)$bAW6Ussv(l`|=tN zV&QJ*LC{C z$AtNFNP`b>`F;J~6}WkUg~#Q}lKEe^skJ&C%l8~UFW?`G)4TZ_iwqAllCRUsptdyr zbS(Ic)$(*qa(D${fx1_+j!3>p>GZuaEX6A(oWgeXd0r03_Y+|H;^vi?pKkNo`xR_E zpIR2CuVKe$x~|zanF_Y1zvp7hjQ2ucFUG^ajBvgOQ{eS0MY!co08EbVt4EioFd7X( z;l;yK&G;OT^A}E2o{h(4E+E!;7~3VDVZC^UuWO@Wv-idp9tKK|D`lX$G}(DQ86TTi z>4~j`z-iZmFPxg@&#!FZ{0#|iN8KhO)^>$I-T$zo-Ejt;TaM;{;t*9 zo-oyP9)}VTmyLJE*qe>L&8kg}19VED(~$QG6Lg~zdITqSol#(6Ij~#Fy0P)l*4T}9 z-I${1^KG8-UeM3)Wmll%R%8+T4=QpDgU+@Kn+xqv8UnFf{MXjwKD(JQW5$dbGiD6L YKi3=s7?7TkMF0Q*07*qoM6N<$f}mJ*UjP6A literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_1.png b/app/src/main/res/drawable-nodpi/weather_gs6_1.png new file mode 100644 index 0000000000000000000000000000000000000000..3f9aaed90d947bfff165251aeda506aab67a9355 GIT binary patch literal 1886 zcmV-k2ch_hP)C0001fP)t-sM{rCG z3=9ei3IzoP1qB5G0Rj2>`2hg|kB^TK5D*Lu3|CiI1_lN}K|!dfsNvz^2L}h7oSZ;F zKyh(#&CSiQu&|Vrl=SrUxVX61*4BQ0eoRbEcXxMiaB%wi`v3p`@$vEO?Cj^~=l1sY z;^N}i*x1q0(f$4X-QC^9#KcxGP9FdO03LKwPE!CPGYte;{zab@n8A2b=IU+Sy=BR# zeCEL3y^NnhBohkG000JYNkl291)D%R zFWk}bj{X+&)I;lea0j<`xP0jT5g-l`acm;^VHL z0)6iP2ZJ^IBOYal$fCJ3#U3PjuSUH6y- z0}x{}P70)uL=`WX;qmCYzB4EzYRGifVlz_9gy8dtZrygXUi~ev<;r#F9Z&OUtmASL>QLNcSfcupUf`T22&oBFf-N zL?D~K0(g)LNftFb7XEnOyDG_k{OezlLs_lY8Sv8O(rZ5tCIjCe+dWgz(=XV^Dea@F zBI{saKCjlj$@IUf9h7UKrGfio{Z0G++!9vntQ`kWs`UZI#{egkO&7z zR_m;*dtY=45KIqIs6` zHzt5aHqzhY0aQTvpsfKk_r=9~1Q6{)(!rp)4)iyL05V8B8Gx%bw*kd3EN7+a1c0{- zfFbCsSDj+!AjDsv1DrAfW65 zI1_3aE9IEM%BZL@C^cvjAOi?s;Yh62L3MOeWJS@|py>kQs(KZ+B53J$qsBlGKng`& zgS-)hwx>!U--!l8qi3Zs$b&2u1gZ?U0*CsJtpBJIz-74SWu;~*c?~CsfK$hMa6n6%&YgQ!sc|d-J4ga_m$O&){bTA0>b8~v9Q{{z-LEv%%YqdxnfXo`*jA0IN5d$Y&5!EDPe1ggJb!2B*s>41`N)$bAW6Ussv(l`|=tN zV&QJ*LC{C z$AtNFNP`b>`F;J~6}WkUg~#Q}lKEe^skJ&C%l8~UFW?`G)4TZ_iwqAllCRUsptdyr zbS(Ic)$(*qa(D${fx1_+j!3>p>GZuaEX6A(oWgeXd0r03_Y+|H;^vi?pKkNo`xR_E zpIR2CuVKe$x~|zanF_Y1zvp7hjQ2ucFUG^ajBvgOQ{eS0MY!co08EbVt4EioFd7X( z;l;yK&G;OT^A}E2o{h(4E+E!;7~3VDVZC^UuWO@Wv-idp9tKK|D`lX$G}(DQ86TTi z>4~j`z-iZmFPxg@&#!FZ{0#|iN8KhO)^>$I-T$zo-Ejt;TaM;{;t*9 zo-oyP9)}VTmyLJE*qe>L&8kg}19VED(~$QG6Lg~zdITqSol#(6Ij~#Fy0P)l*4T}9 z-I${1^KG8-UeM3)Wmll%R%8+T4=QpDgU+@Kn+xqv8UnFf{MXjwKD(JQW5$dbGiD6L YKi3=s7?7TkMF0Q*07*qoM6N<$f}mJ*UjP6A literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_10.png b/app/src/main/res/drawable-nodpi/weather_gs6_10.png new file mode 100644 index 0000000000000000000000000000000000000000..16da4cf006b9d324e7c233eb564cf1c093673229 GIT binary patch literal 1516 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 YKi3=s7?7TkMF0Q*07*qoM6N<$f}mJ*UjP6A literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_2.png b/app/src/main/res/drawable-nodpi/weather_gs6_2.png new file mode 100644 index 0000000000000000000000000000000000000000..3f9aaed90d947bfff165251aeda506aab67a9355 GIT binary patch literal 1886 zcmV-k2ch_hP)C0001fP)t-sM{rCG z3=9ei3IzoP1qB5G0Rj2>`2hg|kB^TK5D*Lu3|CiI1_lN}K|!dfsNvz^2L}h7oSZ;F zKyh(#&CSiQu&|Vrl=SrUxVX61*4BQ0eoRbEcXxMiaB%wi`v3p`@$vEO?Cj^~=l1sY z;^N}i*x1q0(f$4X-QC^9#KcxGP9FdO03LKwPE!CPGYte;{zab@n8A2b=IU+Sy=BR# zeCEL3y^NnhBohkG000JYNkl291)D%R zFWk}bj{X+&)I;lea0j<`xP0jT5g-l`acm;^VHL z0)6iP2ZJ^IBOYal$fCJ3#U3PjuSUH6y- z0}x{}P70)uL=`WX;qmCYzB4EzYRGifVlz_9gy8dtZrygXUi~ev<;r#F9Z&OUtmASL>QLNcSfcupUf`T22&oBFf-N zL?D~K0(g)LNftFb7XEnOyDG_k{OezlLs_lY8Sv8O(rZ5tCIjCe+dWgz(=XV^Dea@F zBI{saKCjlj$@IUf9h7UKrGfio{Z0G++!9vntQ`kWs`UZI#{egkO&7z zR_m;*dtY=45KIqIs6` zHzt5aHqzhY0aQTvpsfKk_r=9~1Q6{)(!rp)4)iyL05V8B8Gx%bw*kd3EN7+a1c0{- zfFbCsSDj+!AjDsv1DrAfW65 zI1_3aE9IEM%BZL@C^cvjAOi?s;Yh62L3MOeWJS@|py>kQs(KZ+B53J$qsBlGKng`& zgS-)hwx>!U--!l8qi3Zs$b&2u1gZ?U0*CsJtpBJIz-74SWu;~*c?~CsfK$hMa6n6%&YgQ!sc|d-J4ga_m$O&){bTA0>b8~v9Q{{z-LEv%%YqdxnfXo`*jA0IN5d$Y&5!EDPe1ggJb!2B*s>41`N)$bAW6Ussv(l`|=tN zV&QJ*LC{C z$AtNFNP`b>`F;J~6}WkUg~#Q}lKEe^skJ&C%l8~UFW?`G)4TZ_iwqAllCRUsptdyr zbS(Ic)$(*qa(D${fx1_+j!3>p>GZuaEX6A(oWgeXd0r03_Y+|H;^vi?pKkNo`xR_E zpIR2CuVKe$x~|zanF_Y1zvp7hjQ2ucFUG^ajBvgOQ{eS0MY!co08EbVt4EioFd7X( z;l;yK&G;OT^A}E2o{h(4E+E!;7~3VDVZC^UuWO@Wv-idp9tKK|D`lX$G}(DQ86TTi z>4~j`z-iZmFPxg@&#!FZ{0#|iN8KhO)^>$I-T$zo-Ejt;TaM;{;t*9 zo-oyP9)}VTmyLJE*qe>L&8kg}19VED(~$QG6Lg~zdITqSol#(6Ij~#Fy0P)l*4T}9 z-I${1^KG8-UeM3)Wmll%R%8+T4=QpDgU+@Kn+xqv8UnFf{MXjwKD(JQW5$dbGiD6L YKi3=s7?7TkMF0Q*07*qoM6N<$f}mJ*UjP6A literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_20.png b/app/src/main/res/drawable-nodpi/weather_gs6_20.png new file mode 100644 index 0000000000000000000000000000000000000000..0516f020be3ab1003e5b97f1330bba91dbde9571 GIT binary patch literal 1254 zcmVC0000>P)t-sM{rCH z4GjSS0RaI46%`d48XCB`xKmS8uCA_xgoG3n6zb~g&d$z+goM}E*ZTVU|NsB%>+A6F z@b&fe`T6n&U`bhe$`B^r?oe_p&pN@sHmu@ zsHmu@sHmu@sQ*j}!nqROygt8-9zli6;#E_|Sp6!>g#qPdQ;UHyS~q1Li~*GmSgK3y zl^0Y#A@7%Ik%zHo%4Sh7pLQk6B~_Jvb9CQ25!#>6I^o!0TuV`Cj?>7NV-C&rgb&{_vE(Jw7w9q1>xJYuI4Wf{$w|) zcKu9Ne)IPwH^JvwIrr%Q3xS+IdO!J31ad@h5*%C`)ds{XfVw?US05bQp9-J(8>h~m z*53rhK>>UNs3I^2fx8F|c#VH17+e{+BES#?Ku?N00#^k7J3u>i+i6`BIHvWld+=Wg z%%r#_*e`?}0s-u&bw#k>F_j@YfSAjnlc3zSKo9_VM8LO`YOiOMO%tFdPy)_ry_a)Z zV>bbQ1q9H;GPMcdWiLd`gC-z$I~L$OfH3|hfnm2__(Om}l|XDe5k|c2flvT~>j*Y| zu9T_ z;8PVefyton(#@qf4b+7&W@gX4ZUjo*vr zM3X_ssx3f*L#zWJhQJGw$uh^bg){9S{k3XTBOfsFSqki$SWj^ok=a|o^g zR0O^k0;nZ0>W2jYS>@UqCAeaK@5#V*0NV()7b^x&KX zrB9CplmDpwm$lFx`^zGvPv)l&9#K(IQBhG*QBhG*QBlYG2MDf(DDYD< Q&;S4c07*qoM6N<$fC0002wP)t-sM{rC8 z1OfvB0t5pC1qA~h9v}1a^A8RR2?+-L{Qd6j?hXwM1_lHS3=8=9`DbBCTv$o}@o7s& zBS}R(-^*I*>FK$vLaM8+hK7gH(b0QxIN;#m!NI|rj5zS-V3CoLrkO(Q+*!W9y_<k<|NPbg_|yU7;^Xzw0{{PS)zsGK=jzbV(f;LP-Q3;S z+S|;`&F{?u$H&Ou;NkktoJ`QA#w!Nj(=yz|fk=*R=6sHx!5fdA-C&#w&p-#7T! zC)>FK(#e$5#cSu^y3)ToH^iH-0000gbW%=J00T%K3!eQb7XJHIIA{EHQ~i@Y)!U?{ zeZ!Nd?}GpU2RlhbK~#90?V5R4+DsJ2$?|3=fPg@?TDRIx z4cTKzB8n&#{r=zQy^|1@kVue3&*|Z@=k$+KpWocMbLY+smC9aw?X}ll|DtHD$`|Up z*)nUDFVqj!S1&4GCW8K;XOxpngbf1<*X?Dn+WFUT4!fxt;37v9D=L)ei{BT!I>DhfX%}bC_=vP zH+=Z}>>?_B1S{24zYPD7K>T?iQQ=^zLohc@FL;I@&odip;{yK!!I5OG9RDZ=vtL~U zLo=BCi8ToT;f%!}qDWC#K+AuvF{!j@5|D=E&kmw3%O}%ENdCVhWV7tNCoAmn`1nRGy{p)R% zCcdpOx@B9&V*vhh`vgH?s#iM>zk{+QJBDIG0KDL44v>t&#PfFx0e6J5#oLZ;OrIeE z7c-EI0W5`G@{nqycV)Z7Y4H4~f8WoHfw_6Vd}sU{{1MVdlVEZW{{4PN9t8f`hudMI zhc@cvEx5T&5Uf_jMnn22!0BdxBu^jiV}MkGiK#{x7R0i0`PWe%y}sQ(!~m%T=IoqM zKWWACa^0cON4Wsd^zZHMdjzKXJ^Xz&+$%)NcZYJ7&mRd-54RX0D-XO7fB*n9R<6?{ zmoor31R+6I3}ygyO&sL$A@}i`e++~=@TY+ zhzim&K;QFEM0)!Oz?x}q1Mu>Mh35enmH_(DjvQ=jPdB^AZGqvp0pMlk_4V-$Gt8#} z>~Fw-dR=3;v2S)5^kE6WfWr{a!q^;7N4Bo_uJUFl-dg_jqfXc;@(VG;}qE zM|w980@p#ii+_FkiGg^CjY@)V56!E`hlLI7;Vetgt<$m-s^&1n}EsF$bd=rZ!x6z%ajc+_Q?M@Q6W zj6c-y@)GQ0f6oL0o|jQCGZpKoU=1&^zoA(G5SS4G#Nar?pW0#Zr%N6U?_9$kD3+zY zED?0m0gh4OQljxI1Ixa98OH>OXFp{Euryb*1_MR0G-H_{Z4&66>tAXJoB;+H3^c2?E2cFN7K@NwyY+V1Q%b+zlN|7Z|8Ui4KJ*Vh>D}0&@@&Shi*uhGW;)DbF4ObmcyU>KS!`For0HRy~+p=)AalBT&$JvMr@0vXuQ$7#cVN5y7k?LIhAPd0_!_Q0TENmNPW) z790^+aZN_&(%Ov)grJ1BSQ$D_NMJ7!3vG|3ArI#w43LNcx=wq>CM2@( zNpS9rFakheEC|p!nR;c$k>V*TRK^heV}dvaHvhYteoKufp-=*CJv25MV~24FvnTN^W|kfZj-~R%^W-CW2R7u*c?3>VYV5E5X?(g%<>w~ID=KCI7h=3WY{}m>9 zq9WmqDCcD{LC_p4k)%j&t?d88QruQA7Qnz!g^A;6`XetkMX6HQHyHQYYp=cb+H0@9 c_WC#VKPUlqzPIIBHUIzs07*qoM6N<$f*6AoMgRZ+ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_22.png b/app/src/main/res/drawable-nodpi/weather_gs6_22.png new file mode 100644 index 0000000000000000000000000000000000000000..89d1624a70324eb19b822f0570c504c47d9a49bc GIT binary patch literal 1459 zcmV;k1x)&hP)C00015P)t-sM{rE@ z^YaD<2I%PM4Gj$o3kw1Q0tW{NqN1V$0|SeTivR!sQBhF~3k%`l;X*<}v$L~qZf?=h z(Vd;0`uh6+|Nrdl?DzNg+1c6Q;ork_3(1leQN$vmu1oTNnK~#90?V9VdbUF}*ha?PU9MdEY_kWwaF^0h! zK{C6(D)0IZRer2~yxr+^aJyZ)bm`KiOP4O~6lD>L(b;9YyBtybW>z%G;!at@rs1Ra z<;Wlc%~B4d(yV8&lb8V1!(|dDj*;*z#uyw`@S?!~+K6#^;6ISkpTz$l zn0SCDSnMb9dxCsPz`@ewK?XJF8w9c^nA8FO1)`-6qVM1&Ed6w*@Ei7lAb) zIBfytiU74G2wCyqtObc;{I&{YPL>`3Ikzvx>Hu9179IdZXX4XR830$JBxLEqxg12G z48U<6ObFf{oNGqORu`UHAU+5N4*O8p5yD$Sh6qR|&eV`n4}mYe(xu7<$C;>wNvuS-Gm=^&x1%Op3k4Hbvkv_bn{dIplF&mff&01_#Qp` zW;aj(=WE=04bY?8*Js@v032y)$Yfn@8Ez>CC2c* z2N+%E^8Ro=wq1XYO#{z;_^GVnh)Rj~JZ(Fz5b1&81I15FIt2Im(5L6q^_0VRHc-j} zFYt6J2pHYD_#MZ#sXp0ezH3>*zAb+)9arLO($TL7V$h_6?=JDQq)Gl!fHK#j(m%Eo zZ11T_-m$m04h=Nv-~`k*Lp^e?Zgf(IQ=!Xwnudpz>iVP*-(?&djx>Eu=dgnfu-5fK zA-f-wuM2<%?jZ%bKI*h7J0yLdSvyB{`(JhS-%FP+UAlDX(xrby{{ijD1JQ~*6^{S_ N002ovPDHLkV1o9$wC0001fP)t-sM{rCG z3=9ei3IzoP1qB5G0Rj2>`2hg|kB^TK5D*Lu3|CiI1_lN}K|!dfsNvz^2L}h7oSZ;F zKyh(#&CSiQu&|Vrl=SrUxVX61*4BQ0eoRbEcXxMiaB%wi`v3p`@$vEO?Cj^~=l1sY z;^N}i*x1q0(f$4X-QC^9#KcxGP9FdO03LKwPE!CPGYte;{zab@n8A2b=IU+Sy=BR# zeCEL3y^NnhBohkG000JYNkl291)D%R zFWk}bj{X+&)I;lea0j<`xP0jT5g-l`acm;^VHL z0)6iP2ZJ^IBOYal$fCJ3#U3PjuSUH6y- z0}x{}P70)uL=`WX;qmCYzB4EzYRGifVlz_9gy8dtZrygXUi~ev<;r#F9Z&OUtmASL>QLNcSfcupUf`T22&oBFf-N zL?D~K0(g)LNftFb7XEnOyDG_k{OezlLs_lY8Sv8O(rZ5tCIjCe+dWgz(=XV^Dea@F zBI{saKCjlj$@IUf9h7UKrGfio{Z0G++!9vntQ`kWs`UZI#{egkO&7z zR_m;*dtY=45KIqIs6` zHzt5aHqzhY0aQTvpsfKk_r=9~1Q6{)(!rp)4)iyL05V8B8Gx%bw*kd3EN7+a1c0{- zfFbCsSDj+!AjDsv1DrAfW65 zI1_3aE9IEM%BZL@C^cvjAOi?s;Yh62L3MOeWJS@|py>kQs(KZ+B53J$qsBlGKng`& zgS-)hwx>!U--!l8qi3Zs$b&2u1gZ?U0*CsJtpBJIz-74SWu;~*c?~CsfK$hMa6n6%&YgQ!sc|d-J4ga_m$O&){bTA0>b8~v9Q{{z-LEv%%YqdxnfXo`*jA0IN5d$Y&5!EDPe1ggJb!2B*s>41`N)$bAW6Ussv(l`|=tN zV&QJ*LC{C z$AtNFNP`b>`F;J~6}WkUg~#Q}lKEe^skJ&C%l8~UFW?`G)4TZ_iwqAllCRUsptdyr zbS(Ic)$(*qa(D${fx1_+j!3>p>GZuaEX6A(oWgeXd0r03_Y+|H;^vi?pKkNo`xR_E zpIR2CuVKe$x~|zanF_Y1zvp7hjQ2ucFUG^ajBvgOQ{eS0MY!co08EbVt4EioFd7X( z;l;yK&G;OT^A}E2o{h(4E+E!;7~3VDVZC^UuWO@Wv-idp9tKK|D`lX$G}(DQ86TTi z>4~j`z-iZmFPxg@&#!FZ{0#|iN8KhO)^>$I-T$zo-Ejt;TaM;{;t*9 zo-oyP9)}VTmyLJE*qe>L&8kg}19VED(~$QG6Lg~zdITqSol#(6Ij~#Fy0P)l*4T}9 z-I${1^KG8-UeM3)Wmll%R%8+T4=QpDgU+@Kn+xqv8UnFf{MXjwKD(JQW5$dbGiD6L YKi3=s7?7TkMF0Q*07*qoM6N<$f}mJ*UjP6A literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_24.png b/app/src/main/res/drawable-nodpi/weather_gs6_24.png new file mode 100644 index 0000000000000000000000000000000000000000..3f9aaed90d947bfff165251aeda506aab67a9355 GIT binary patch literal 1886 zcmV-k2ch_hP)C0001fP)t-sM{rCG z3=9ei3IzoP1qB5G0Rj2>`2hg|kB^TK5D*Lu3|CiI1_lN}K|!dfsNvz^2L}h7oSZ;F zKyh(#&CSiQu&|Vrl=SrUxVX61*4BQ0eoRbEcXxMiaB%wi`v3p`@$vEO?Cj^~=l1sY z;^N}i*x1q0(f$4X-QC^9#KcxGP9FdO03LKwPE!CPGYte;{zab@n8A2b=IU+Sy=BR# zeCEL3y^NnhBohkG000JYNkl291)D%R zFWk}bj{X+&)I;lea0j<`xP0jT5g-l`acm;^VHL z0)6iP2ZJ^IBOYal$fCJ3#U3PjuSUH6y- z0}x{}P70)uL=`WX;qmCYzB4EzYRGifVlz_9gy8dtZrygXUi~ev<;r#F9Z&OUtmASL>QLNcSfcupUf`T22&oBFf-N zL?D~K0(g)LNftFb7XEnOyDG_k{OezlLs_lY8Sv8O(rZ5tCIjCe+dWgz(=XV^Dea@F zBI{saKCjlj$@IUf9h7UKrGfio{Z0G++!9vntQ`kWs`UZI#{egkO&7z zR_m;*dtY=45KIqIs6` zHzt5aHqzhY0aQTvpsfKk_r=9~1Q6{)(!rp)4)iyL05V8B8Gx%bw*kd3EN7+a1c0{- zfFbCsSDj+!AjDsv1DrAfW65 zI1_3aE9IEM%BZL@C^cvjAOi?s;Yh62L3MOeWJS@|py>kQs(KZ+B53J$qsBlGKng`& zgS-)hwx>!U--!l8qi3Zs$b&2u1gZ?U0*CsJtpBJIz-74SWu;~*c?~CsfK$hMa6n6%&YgQ!sc|d-J4ga_m$O&){bTA0>b8~v9Q{{z-LEv%%YqdxnfXo`*jA0IN5d$Y&5!EDPe1ggJb!2B*s>41`N)$bAW6Ussv(l`|=tN zV&QJ*LC{C z$AtNFNP`b>`F;J~6}WkUg~#Q}lKEe^skJ&C%l8~UFW?`G)4TZ_iwqAllCRUsptdyr zbS(Ic)$(*qa(D${fx1_+j!3>p>GZuaEX6A(oWgeXd0r03_Y+|H;^vi?pKkNo`xR_E zpIR2CuVKe$x~|zanF_Y1zvp7hjQ2ucFUG^ajBvgOQ{eS0MY!co08EbVt4EioFd7X( z;l;yK&G;OT^A}E2o{h(4E+E!;7~3VDVZC^UuWO@Wv-idp9tKK|D`lX$G}(DQ86TTi z>4~j`z-iZmFPxg@&#!FZ{0#|iN8KhO)^>$I-T$zo-Ejt;TaM;{;t*9 zo-oyP9)}VTmyLJE*qe>L&8kg}19VED(~$QG6Lg~zdITqSol#(6Ij~#Fy0P)l*4T}9 z-I${1^KG8-UeM3)Wmll%R%8+T4=QpDgU+@Kn+xqv8UnFf{MXjwKD(JQW5$dbGiD6L YKi3=s7?7TkMF0Q*07*qoM6N<$f}mJ*UjP6A literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_25.png b/app/src/main/res/drawable-nodpi/weather_gs6_25.png new file mode 100644 index 0000000000000000000000000000000000000000..cfa73747dddc5441af10a6af161bdec60c9068f3 GIT binary patch literal 2287 zcmVC0001!P)t-sM{rC8 z1O$qTiuU*S3=9kg1_lle4iOO%5D*X#4-XCw4iXX)+uPgn^704>2%esv($doC=;+bW z(YLp^baZreb#*^KKfb=csi~=OaBw<0I#pFwqobp1Yio#zh)YXL%gf7!g@yY1`v3p` z18(K{`T70*{rmg;<>lo7SmFR@-epT(1O|7sH~WiRdrjuI;x#8^8f$`=}AOERCt{2T8na` zN)QE+w+P0)KB7jKmO)KS_W!@`cK6I6AexBWwd$6qwzg`MS^Ch^@5V5mc;bmCo_OMk z{{{L>NCM*l*gz%;q>pjM6$nir1Uc0RQ~= zE094D7JjU#3_48--x1ho1=xKjl4rYh#p?tD%z_#JYT}vwIh$h!S^uvQaMAKIy7yja z8m>Q3cG#sWUMH}m5Rj%~Rd4I2b`mttze1Vn`ZzclK7BBb1C zATK~9K3Ulq(k2L4^niY|ll(|opga(%|L__q z`(OuYPvFI|eS$MMIiKO89hPjIBzU?y>hW>kRvd+NkoH#)ja}D6gbNjNfLzg23Xv8- zZ@5$n7&v`8ZiIpf3F#pB*g(GKAL^IptfMlJw(>E{t6Kb+jR30_|Mp_3W`tAu#KQUD zZHbZSG0t;+TDWR#_C05>Oriv(K9r^caOztRzblS@2?0H%>v7FZ_`Rcotj){u$H zS#BKeB_Q&DD!A&1Fsqzhgu(p;0EWIp@a3Nvt{L4zo|W+J){~oRUr?Htc>VaQ1{Rgs ziW_u7pwbxy*9lCFZcrgmose9=f_3)?Sj_*eq%XBHh1Xg{{OSdiq|_cF^TVPtkfAfLuFLOl4kB%Af*$&o6c zmu(5;s=p)x>1e3JyCi@~ujY+eE?*hjFm+P3MUee&M?fc5S(eZ3kl-!VIA|~`b%rb# zMv?4`VD0f)e|pdO5Qo)Y+auuvtoM|Ajexf_QpjQ$1C(Dsnh$4++y;*Z*u550l;70^yKgo34#Ai)=cE=>232e99!xjlxvFdGBs{6!d z%MI;Cp#yAx?YNKj6a7=BHg6DnK0f+Y0udP>$zj4{x0ajO0LUtp})G zv_-*~6tJxkATu~U-Sl|^ra#~@Rhia)8c_zS7yi@hN+`6d6ik52{x@|2mg9Bs zDT$5!)bUU!KzA@cJ)MTeQUz%EeM>1|-h~1TAK+tqPT&u~w3O5->kt7^T3WRn2sRNo zG!rN_nv``|1!A+(g;>jh;0+omce<2ym_am>Q|s0P!8&ZT_v4un?!Q2c%K`$Lo3jc| zGxBaeX6jE>8mc$}rX=`P5x`#!6#ZhGt8EEZ zUkT~H8TJyI zPm0lOG4#U=5~u@jwV3@D*nB&~A??41G;_ZwfLt;0|BDZs1GjI}%AAVHD;G?z*i{lZ z=U}>sZ)!NL%U1s*CGG_002ov JPDHLkV1iLzLe2mH literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_26.png b/app/src/main/res/drawable-nodpi/weather_gs6_26.png new file mode 100644 index 0000000000000000000000000000000000000000..0516f020be3ab1003e5b97f1330bba91dbde9571 GIT binary patch literal 1254 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 VfCG}4Sg`YofGyG9s?>r;{|6TI>o@=a literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_28.png b/app/src/main/res/drawable-nodpi/weather_gs6_28.png new file mode 100644 index 0000000000000000000000000000000000000000..f72ed9f1b9ebb34655ec7d2fe21adbdc6f9d93de GIT binary patch literal 2202 zcmV;L2xa$)P)C0002wP)t-sM{rC8 z1OfvB0t5pC1qA~h9v}1a^A8RR2?+-L{Qd6j?hXwM1_lHS3=8=9`DbBCTv$o}@o7s& zBS}R(-^*I*>FK$vLaM8+hK7gH(b0QxIN;#m!NI|rj5zS-V3CoLrkO(Q+*!W9y_<k<|NPbg_|yU7;^Xzw0{{PS)zsGK=jzbV(f;LP-Q3;S z+S|;`&F{?u$H&Ou;NkktoJ`QA#w!Nj(=yz|fk=*R=6sHx!5fdA-C&#w&p-#7T! zC)>FK(#e$5#cSu^y3)ToH^iH-0000gbW%=J00T%K3!eQb7XJHIIA{EHQ~i@Y)!U?{ zeZ!Nd?}GpU2RlhbK~#90?V5R4+DsJ2$?|3=fPg@?TDRIx z4cTKzB8n&#{r=zQy^|1@kVue3&*|Z@=k$+KpWocMbLY+smC9aw?X}ll|DtHD$`|Up z*)nUDFVqj!S1&4GCW8K;XOxpngbf1<*X?Dn+WFUT4!fxt;37v9D=L)ei{BT!I>DhfX%}bC_=vP zH+=Z}>>?_B1S{24zYPD7K>T?iQQ=^zLohc@FL;I@&odip;{yK!!I5OG9RDZ=vtL~U zLo=BCi8ToT;f%!}qDWC#K+AuvF{!j@5|D=E&kmw3%O}%ENdCVhWV7tNCoAmn`1nRGy{p)R% zCcdpOx@B9&V*vhh`vgH?s#iM>zk{+QJBDIG0KDL44v>t&#PfFx0e6J5#oLZ;OrIeE z7c-EI0W5`G@{nqycV)Z7Y4H4~f8WoHfw_6Vd}sU{{1MVdlVEZW{{4PN9t8f`hudMI zhc@cvEx5T&5Uf_jMnn22!0BdxBu^jiV}MkGiK#{x7R0i0`PWe%y}sQ(!~m%T=IoqM zKWWACa^0cON4Wsd^zZHMdjzKXJ^Xz&+$%)NcZYJ7&mRd-54RX0D-XO7fB*n9R<6?{ zmoor31R+6I3}ygyO&sL$A@}i`e++~=@TY+ zhzim&K;QFEM0)!Oz?x}q1Mu>Mh35enmH_(DjvQ=jPdB^AZGqvp0pMlk_4V-$Gt8#} z>~Fw-dR=3;v2S)5^kE6WfWr{a!q^;7N4Bo_uJUFl-dg_jqfXc;@(VG;}qE zM|w980@p#ii+_FkiGg^CjY@)V56!E`hlLI7;Vetgt<$m-s^&1n}EsF$bd=rZ!x6z%ajc+_Q?M@Q6W zj6c-y@)GQ0f6oL0o|jQCGZpKoU=1&^zoA(G5SS4G#Nar?pW0#Zr%N6U?_9$kD3+zY zED?0m0gh4OQljxI1Ixa98OH>OXFp{Euryb*1_MR0G-H_{Z4&66>tAXJoB;+H3^c2?E2cFN7K@NwyY+V1Q%b+zlN|7Z|8Ui4KJ*Vh>D}0&@@&Shi*uhGW;)DbF4ObmcyU>KS!`For0HRy~+p=)AalBT&$JvMr@0vXuQ$7#cVN5y7k?LIhAPd0_!_Q0TENmNPW) z790^+aZN_&(%Ov)grJ1BSQ$D_NMJ7!3vG|3ArI#w43LNcx=wq>CM2@( zNpS9rFakheEC|p!nR;c$k>V*TRK^heV}dvaHvhYteoKufp-=*CJv25MV~24FvnTN^W|kfZj-~R%^W-CW2R7u*c?3>VYV5E5X?(g%<>w~ID=KCI7h=3WY{}m>9 zq9WmqDCcD{LC_p4k)%j&t?d88QruQA7Qnz!g^A;6`XetkMX6HQHyHQYYp=cb+H0@9 c_WC#VKPUlqzPIIBHUIzs07*qoM6N<$f*6AoMgRZ+ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_29.png b/app/src/main/res/drawable-nodpi/weather_gs6_29.png new file mode 100644 index 0000000000000000000000000000000000000000..15a7222ee74a0685d441e9087cd1cf9279e74661 GIT binary patch literal 2093 zcmZ`)X*iS%1AX6F?97mCq0vRdO*9Hcn!y<6i!`Pp$)pG&WGmz~8KbgBB`H2P%C5~) zckCrw#=d68B>OVBx5hfxeV*^{cb?}gKhODf?mF0$q$N}&005A-wXve?IP@>Y;5+&k zH+5~t#vD#kiKKv&NF-boE((KznVFgO^^Kxp2qY*bCW73zS6NX(zOt%%YirwyN(>4N zQd3n73$!oEB2KWW0)ZeuKmRi;>dTie91drNN2@C(D=EmFIz_&6*)A?FE({SBq2FQ$e2qgL9Ua^J;W^z5TbQ5k?;qHnrEPGIt*orJmrAb>YYJDqgaY59qM~mf z!H17uaM~%Y)t1vd)<`FFY_PZnSF^mc)H;}A?+EOH+YD?=fO5vz?M=J>5YPP1ts>!@ z)`bSw+^~QO<_vS}abhZLey7?0$97mWE*$_ws%)(Y)bOl@%$cAnX*Ng7CVgnb*9eZA~PA=xg3dm#VGP#tmoYY>V;XBNgxVoc`j` zeXgZX>T>`4Z?{&lc21v@IScLOAjt-B>pu{_=|2#f#gml^_d#zEKJ=T!fgT;~K*3@= zTfN7aJEO35)^JM!%h(AIdky)TM@t_^!yN37!+nW{p3nT9VBS|DJ#V(~TMi=2 zb6A-+TiWF(3iuy?8Y<$i0WR2!ImkMSq|7Fbd54J;M3Xgi(n{mOg$fjnu_~Lh{k!})ALfGLZ=|d6dZ5>HVC2XZ1z9}Ch7pegbqhGzcF2apkTrWVmRYvISNvy z$-Eej^Bw9ll?9q@W^Eec8Qo_Js44r7`g22??*n|L z(3oI9xD4@~)&;lRS1XEwLy|{`1#{+5Co}^6JRcCnG@8zJu(MFdQ3dA4>58|moB8XD1Ne`5iqBcroR;*dYk=Cf0`^nJ zujvT8sq5?Es+}>`zl&DO4d-u+W%-eQC?I&z87(I$2>`&h z3yW}m3@FynYSW~?85!2JgbdhTUtfP}U{;2qp|aLdaX81Sn%deCQSR3F%gb>Z&l^Me zV!n+-zg}s(x>385sZl~8UJPu9J7vs9{K?X}Fwq6JM%U<>;xq%^lfCyV)(inlsnU4< z{jT5m=vj}zje|4ClCfBn-l5y-Ws4|ZtaV4hs6q{^enQ8r=DI~XknLKJZ0kGBqTG({ z$-_SCZ*#BxEWD_#p~M6x_+%vjcEx+xPZe5YU|U^O9|2AQiAHZjTq_U63$aZK*PioM zMG-N`@o%8HMW}CMw*paTo052b8_tSwiB-a1^|T}%zL(oXipY(9C26EH9@CO6<3V#? z%;o{$Ei#sWKsXb?w4g^#Kz5IN2(@OmZ~1YUw~!piI{kuGy|i@TN|JN~)tw zW}jHSaccGG=84B1{wB8wc~u}XJq6=~QFVPpDm<2vbN+DT!2&7FVS1GnE*y0Vb&k9% zFPW7ytl!jAQ4GqNg>TKgHE+r}MdJ2z% zar<(vg4VA-i^z7G<-{IVwl{y-N*r4L{ZBm{=SjM~+gyYX5z&CW~SLOkVA z`EWc0@ygN>I;m>P#l%tknZ9tj!Yu)EpZ<}wp$GM|sD>LRnm}y0NPukoU8kG?A3XOa zbj~u*$8(?}w#6xBicgjY5D1A6;{!=EGy?3IU|+IzY#p5c666`V?t+lLVZ?khY7~s7 z6dq!5sE8QaxSL>)zMt+AsGH{J0C7LENhKX_nHF->a@0$rs%XJO8y?4Ie)7J`#a4yg z!^?jl?!-8=QUzs;UIyTMVoUlDnqifN!9rzCQnGRL5KsA;K-WBmCF6UxL|i6JRH{wE8?La-$7 VfCG}4Sg`YofGyG9s?>r;{|6TI>o@=a literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_3.png b/app/src/main/res/drawable-nodpi/weather_gs6_3.png new file mode 100644 index 0000000000000000000000000000000000000000..cadc03f841e8ddc6dc97ade5bcabda4bc2f9b832 GIT binary patch literal 1857 zcmV-H2fp};P)C0001KP)t-sM{rEr z+uH^P1_J{F1Ox;G1Ox>I1rZSu4Gj$r4i2!eum%POLqkK^+1XN3Qea?UtgNh&k&(^K z&3k)$rKP3v^74?7ki)~n`uh6+|Nr^<`RwfM_4W1e@bJ{s)aU2t;o;%Q$;tiw{g{ev z!vFvP7<5ujQvm)D2TVLG9e0Y@VL0DXqWXo-X`ti4wE_WeqyPX0Z%IT!RCt{2TG`UF zIuMi{S$|QHgw?$NL!Lw5l*9`{8v=G0ID7e9v*C{zI=n6~P& zGr)&Z>=S9De7&8bKj>#B z=+>7Mr6@zFSO*A3)rno&&>w&cZv%10sK7!wQpR`$wxS_;felK@yY z8;V{T2BMqfan2g+;0gmn1HDVUlc$cFs2?r2qpqzoemgt z52gYV8P%4uI$M=&C!$usJSv1M;PG{tIAG)#X_KKusylOF@Lp=;__L!wLb%ggR)YaN2_z3t>MHgsJUe)$0Fl(T z9mjFQv3sQaK3wA;$4%tE5)*PC1V~Xpfvs8^S*~w94Fab8u4P$=NaPQE$Fq6}clrdN zLy+bGmoS=uW8YP7)|ig}EDa$4C_j8D8V3t3GK0{0By&_x`Hg?ffzbrcUm3phWYf&E zkCjq^z+a6lgyf==!ku0oUDbR~a5GC!oDPdpVrLe0o8M8PQT zFZd6ZXZyiyFiZTxy^;@o*4$0_VUzvd^Gi`^ap2qDtKB+Kke0FpfxnP$&^_&2 z!`1HJgP+sGr>o-h4L{Aq(9cWs*sBuwiNc#abWJ%j@Z0V#@iPyMw!Y`b(0RLeZn}1O zOtVMb9r%;sT=IsFgGj2zq`kBHJCqOdp=Zvph$OTO^Ms<`wfT1`_^}8m)2{dVn;XkADXhU3cHFO`A^fxq z(;LYJaHe0j4rh9t@ZSlbg?b}I{52X&f6jkqna5ZAC-&c(4_*v>Zc2=>kp7$>UJ%>N zC;EyDWwyE5hWW}{B*`i1rlf&V2b6Zo^Y%S zE)mk7!FtTFmbKw*`ve&>#`OCIPD1+s0tt*UTjL!24qlPl&JX#m+r`#A#$F>ix$ZCd vEoi8J$$zj+^LOdb75tcg$BrF4c4)_coPJ@~dSWGB00000NkvXXu0mjf4Iz6> literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_30.png b/app/src/main/res/drawable-nodpi/weather_gs6_30.png new file mode 100644 index 0000000000000000000000000000000000000000..f72ed9f1b9ebb34655ec7d2fe21adbdc6f9d93de GIT binary patch literal 2202 zcmV;L2xa$)P)C0002wP)t-sM{rC8 z1OfvB0t5pC1qA~h9v}1a^A8RR2?+-L{Qd6j?hXwM1_lHS3=8=9`DbBCTv$o}@o7s& zBS}R(-^*I*>FK$vLaM8+hK7gH(b0QxIN;#m!NI|rj5zS-V3CoLrkO(Q+*!W9y_<k<|NPbg_|yU7;^Xzw0{{PS)zsGK=jzbV(f;LP-Q3;S z+S|;`&F{?u$H&Ou;NkktoJ`QA#w!Nj(=yz|fk=*R=6sHx!5fdA-C&#w&p-#7T! zC)>FK(#e$5#cSu^y3)ToH^iH-0000gbW%=J00T%K3!eQb7XJHIIA{EHQ~i@Y)!U?{ zeZ!Nd?}GpU2RlhbK~#90?V5R4+DsJ2$?|3=fPg@?TDRIx z4cTKzB8n&#{r=zQy^|1@kVue3&*|Z@=k$+KpWocMbLY+smC9aw?X}ll|DtHD$`|Up z*)nUDFVqj!S1&4GCW8K;XOxpngbf1<*X?Dn+WFUT4!fxt;37v9D=L)ei{BT!I>DhfX%}bC_=vP zH+=Z}>>?_B1S{24zYPD7K>T?iQQ=^zLohc@FL;I@&odip;{yK!!I5OG9RDZ=vtL~U zLo=BCi8ToT;f%!}qDWC#K+AuvF{!j@5|D=E&kmw3%O}%ENdCVhWV7tNCoAmn`1nRGy{p)R% zCcdpOx@B9&V*vhh`vgH?s#iM>zk{+QJBDIG0KDL44v>t&#PfFx0e6J5#oLZ;OrIeE z7c-EI0W5`G@{nqycV)Z7Y4H4~f8WoHfw_6Vd}sU{{1MVdlVEZW{{4PN9t8f`hudMI zhc@cvEx5T&5Uf_jMnn22!0BdxBu^jiV}MkGiK#{x7R0i0`PWe%y}sQ(!~m%T=IoqM zKWWACa^0cON4Wsd^zZHMdjzKXJ^Xz&+$%)NcZYJ7&mRd-54RX0D-XO7fB*n9R<6?{ zmoor31R+6I3}ygyO&sL$A@}i`e++~=@TY+ zhzim&K;QFEM0)!Oz?x}q1Mu>Mh35enmH_(DjvQ=jPdB^AZGqvp0pMlk_4V-$Gt8#} z>~Fw-dR=3;v2S)5^kE6WfWr{a!q^;7N4Bo_uJUFl-dg_jqfXc;@(VG;}qE zM|w980@p#ii+_FkiGg^CjY@)V56!E`hlLI7;Vetgt<$m-s^&1n}EsF$bd=rZ!x6z%ajc+_Q?M@Q6W zj6c-y@)GQ0f6oL0o|jQCGZpKoU=1&^zoA(G5SS4G#Nar?pW0#Zr%N6U?_9$kD3+zY zED?0m0gh4OQljxI1Ixa98OH>OXFp{Euryb*1_MR0G-H_{Z4&66>tAXJoB;+H3^c2?E2cFN7K@NwyY+V1Q%b+zlN|7Z|8Ui4KJ*Vh>D}0&@@&Shi*uhGW;)DbF4ObmcyU>KS!`For0HRy~+p=)AalBT&$JvMr@0vXuQ$7#cVN5y7k?LIhAPd0_!_Q0TENmNPW) z790^+aZN_&(%Ov)grJ1BSQ$D_NMJ7!3vG|3ArI#w43LNcx=wq>CM2@( zNpS9rFakheEC|p!nR;c$k>V*TRK^heV}dvaHvhYteoKufp-=*CJv25MV~24FvnTN^W|kfZj-~R%^W-CW2R7u*c?3>VYV5E5X?(g%<>w~ID=KCI7h=3WY{}m>9 zq9WmqDCcD{LC_p4k)%j&t?d88QruQA7Qnz!g^A;6`XetkMX6HQHyHQYYp=cb+H0@9 c_WC#VKPUlqzPIIBHUIzs07*qoM6N<$f*6AoMgRZ+ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_31.png b/app/src/main/res/drawable-nodpi/weather_gs6_31.png new file mode 100644 index 0000000000000000000000000000000000000000..9268f5c0576dd1843f424bb05eaf60e72551ff6a GIT binary patch literal 1308 zcmV+%1>^dOP)C00012P)t-sM{rF3 z=xYlL2MGrS4h#hc1_aZ^R0RbC@7!LioI{w4K8%4mDJ2n4Mjdf#FTAi%W?L&zOCn#8 zcmLP`|JDHi|8@WEZ~x|9|Nd?N-z@**NB{M4|JoC>ZXhiH000woQchC<`VKE0Xw6FH z%Y(O(Mq;a^eKvVpMce=Y1Yt=;K~#90?V8(mvn&vX1r>?LB>iF7i1&Y;|A1}Uv})58 z8P~U#?@@a+5ASS%NKqU*bm-8bLx)~e#fx3lw^gy9`c}fV*h~B(z=7P$0FH|f*0{HQ zYJj)Q8EY+^nqA^wBp5b~LooFo8K|xhnDu&O(3LwFaA9DqS6UB&)jPz;<(pyDN{v@^e%kFS84#+6twD{V}6Q0 zl_2p9i0k+I1Hj`Hrp-Xb+-H330rCt8hxxz9SJ(rz8Mrz#=uZQ%1a71mxZwCz`qP0} z0tKNe6L9`0wOa{XzZM|I*A@ij80_I|0ZcV`r7Qsn4+)rRu%Oe$nXd_$00?W4%V6~* z05-v;AkzidqXEPK(E#-WAoK;5a0Y!d00Dxf1GvJs3P=Eq44^bP1JsTHEwFJ0fG!2X z+3)d5i?C#2m;-QB0I>(uPXJ3c2RfMU0cxjF%mv^I zcr6h$=Yceb_0KjKf}}YSwW$VY`j8RzVYdK4)&{r}sX2gnC@cuXg^Nv~)l3mEiknd- zU;)50pqPcr03%HfD!BxpXmYUVK>CS>AO|Y|*axD>F1`qWeL!(0;HP*Zod>{QY6;4) zn;%5)qaftp4;J=<$pS;LC*!?z2_RL$e??|BX6`(2w;+Eb^s^_T`!LFXN3EtdPzwY$ zu-pfu4$Qa=;PbcQn+tvk0IMK>5*q1-MS!>|<{k#I2-GqFCc(+9Wx(IukKZRAgh|NT zi;Y~fAbvc{JP@mH<_ChuUNq1a`NZomb3uPBMB{Q2l&5tIvJ=EIT(w{#$X5sacMB3h zzT0Yr({SB_$pe||goYM4=GT*eUl5E7xeB4GnOmC$AM*gykY_CO@`iQz8-em@g2`h7 zZv_03gy;c|<=|wN-Lb?ZtarkP3Cw}WfPhJW$M0rKwHWh&2%EQL)pX8S{To3#qo50p zwOjXORpU5%iXgdQz{$4X^!i-Z;@ii&HH0BCFwtH%duPKF!80BtgfTG$fFPx~wv(1Ay9DgKG=~|6W41-Mq@#?#;s>DhR*6ZgGJ~41kGXtmk z<$6F5I&86F`~$)?BC#{OdV_l8WpkF(ORhhd;B5eTt2gO~NN{ps?2{(MDu~M$=Vq&Z zteW~JA+W*gC&Q=ZH`@)RXhO$aFoV~6&4)CQu=q^3-SY1yoKGx0Dje0quXt(k7FTah z=Pj3iH=#av62KTcc>msNUxoc|aSl2b!{>PQI3b7-888=qL``cSM;w4@D}W%nOyNHe zA_Ja4ARvXk3x_YnjR>RX3!f0G#Bl3Q(!7uRH1b1`;&e;VbHDlJks(5yBgUlehW}yk zrYt$dhqcIn5J+)X6N6Wr@|h1(RLGHpe{sIki+f(|{M7%@p+kob9XfRA-_-vSjMhpS SVgnlh0000C0001ZP)t-sM{rCH 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 SVgnlh0000C0001ZP)t-sM{rCH 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 Dk_4Ul literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_36.png b/app/src/main/res/drawable-nodpi/weather_gs6_36.png new file mode 100644 index 0000000000000000000000000000000000000000..6299e7f508d45d249cef7da49eb52e80612dbcfe GIT binary patch literal 1959 zcmV;Y2Uz%tP)C0002hP)t-sM{rC9 z1_l%k2p1L&C?_Nm5eE3Fm>+6Syhn%RVc6WpN*Z}7pCIA2b|NnUU*8%(c`v3oM`sG;s|Nr~wapV94`{-x; z+6d(m8u;Sk`QS(T;56=qjQ{y?`rIJw;iCD|0`toN=NBLJsH*EjN$y}~|NnsUl9uds ze4Y^j(*OVfDRfd!Qve1LIcO;zNngQq{lk2tjO*g+)w8Fl*U_e0x|j0u{NR1S(A4aY zxw-uoK?48)23Sc%K~#90?VD+LqDl~kS;C^kfJ^4aHOnM-27xppC=85a%<}(#(yc~~ zfQkfKy>kw4PCn!$hxehot*)x>P*kZ>rAqy+5^7j1bv9Mr5JGQP)Y())wr!(t)VV}g zbTcsZ^8z>}KnYL+lmP#K0G^?aB@Cb*0^m@OI+ieiYo`P74PVbqzzFQ81a2pQ4_{a5 z{+6AaK+v@3wY19}01r~X-Y#Yi1aZXWEk9=xpYQ6$|@gfay5Y$0q>a)g{{vz*db2{}{NIgnG2U|UGpNRR~R!0HPOb+11r@GR8ejst-6J3CO*Wz2v;A(e>70De+k zWO?dA&0Gt0j{;CbmaFbs|49N^iJc<=Jl1{FF){!cj_nhggebu1w`&EnEC4DjME#yP zfcD!pmx1>%fMZGx{s;iUVeb_|V4-{R0G^W-Ks8L%Egp!I05dhSa5!R#1N`{{KwuM@ zg9Lz+9RRup-E#t{hU@qFa{|mfiNvN@000)jIvn#?302tB0Mu4b;e0(N^wv2ofM7~y zRGZ%%6TpcA_@3dc1yRz!IQazZV#=7bHS4z54o!3hjnh1k%F%`G6})7c^;rAoCQ! z44@`U93Xp6h^wP(5{dbCR-A1B9Me|>(g3(F@G=6x0DR+!C#8>d-OiL3!vN@gkw|G2 zuMOKet_?G+K&Vb@L`{fN|LFNWY?Kb? z^Vb1%tncs`R9gy0h($%{lET~jsNWVh^Uo9`>45)qF~$>s3C5FmAow1(!R3mAU?NP{ zgMN7^*Mw#{QXZ;8B-`m0Y83HLcma-wpPG!{VHRpQ!xBXKp^nQPX?j zvy0G80RlV$i-5(z?rij;0t5ao#H8E=_^4ty872r|2!5>ofW{2MD$|DZV~&Xh zKMta{`^U{s05kBC7ytlx9cfRI;{clBm)br)ro}o$to#JbcTM}X1uz-jjx-_L1K4UI z0v-Tfw*cnzsitKts|pen2PjB@0X}w2!509E5imb?F2cn~yA`rOqyPa^gE%F4%5s@x#wNY{rOeRyv3Sv9V6;c#M>KzyZ*VZdv1z;axE1HkD2H-hf z@l|x+_t91QEI>%Ed^tyAAQZwXn8a294?@!)Eij<@F8}tBpt{ffnYRxo=$J^4Fc`9olN&K0pvcz27=Zg zdY5cF-OdJ(Taft3t;fMLm_Ob9#Q7F=S^#`k4bmRD-EPZ?eCtF2VT%vnm%}&am>pAj ze1I_R0qwakcM5=&6Ln?)YCnK_Zh*i(D*&=B8=Vs%{4bmHUF~M7EeH~=3qlQ<8~_}y tjRfv&0CajzcnX40RH;&>N|pNi^&g;vn+@I^Pt5=T002ovPDHLkV1f}0h93X` literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_37.png b/app/src/main/res/drawable-nodpi/weather_gs6_37.png new file mode 100644 index 0000000000000000000000000000000000000000..d8ad4b46228150787f56c98ee1893191a7630ecb GIT binary patch literal 2932 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_40.png b/app/src/main/res/drawable-nodpi/weather_gs6_40.png new file mode 100644 index 0000000000000000000000000000000000000000..1140c2465adaff189f87f68f0b3a4ba973d2cd61 GIT binary patch literal 2573 zcmV+o3i9=dP)C0002wP)t-sM{rCF z3JU}T0|Eg81_lNA`1lkP5(xwZT3S^E1p@#801FEV4h#$T-(9}GzP!At*xz>mX`?%36+OCSy@(}k~~yWN1U9TIXN;!Lo;!6bB>OVq?tzA+S-18et~*D z-{0S{q()_CXVuG6b7d%riHV(&KHAA!)6~DObAbB#`v3p``qlyY)B)n*;`P!3+}z#$ z{r>;|Zr0Y<%gW8=~3?d+wI{bQQT^P6Yy*)s#SQ237ALMnV= zG#<|$|6lmRxLIkd$HEuJg*MTC6uvHmuLfYg0lon~4}dQp1|a+@WE#@b>eoR4_u2L* z{z;o_2?Px3gh>GR@coZWA+vbYYO^E)rrPaxi$a3_WHMis3t5HK`l-#52pG0iX|Y10 zzIMT82f!AS2?U1cc}7asZ}Hh})Vx^T;z2@q`jt|KHE;+)F8V$}Z7+dvzsg15BLIN2 zkl5v~v&YA?vtO5?f4k7;x#)WY^ET^OR{8$tT+_7GO4H^~XFh`kGmQ!3`A54tSx z>R&dsNzGXf27`XT4}S-Pr30PsiKia0dFlI6*0exAh~;deHQnBqP5WWX*Vi40>vE)_ zGM85mKj!nAGjJmWFz5q8jn729aCzP1kRQ0$@k*S(I=SXOINYAAkpEAD=yum!kpya@5h0IZ|x>&6#cb?*}Y~%Ma>b z!`wM}BftmSP)CX~ZO&@_!8U^BN0Y$7^b_PM0wK^BPR;3WCzyTA0{#xkTl7gH%&~4X z9kKw2!(k%904#X?nEtLn=5*1lEr&FcJ*a6vh4<>_|1G~OpKmG{lxt;DyNKM>mqmXj521(#>*NOe4Bto;Un1=jP+8X$on zsKN%E6TDd6XOsYH!E*pGNFZ3wR`+B#k{YmIdy(q)$a9EGMPL#OhQny ztpgZ8zr1YsAXtVxTM8n@73m?x8cfPT;DHa|%$u|kN#WRE1IK9%01N(lD=}d$43;(R z;ytG#<}N(|q5yw}e-b=^Ls9!ZM^bil001mRS_RR5;GPR%FB0Fg8HwfrDUdyYhzTwM zY(-l8U6=BM0Pr(}hY)z+mH{N-qI9SMeEGU_e8i<*1f&Yz-kMDU5#5)D%i6rwE*++R zbwtnK2k5(JRQQR%Z@>^j7&?>LWU-hY{gZkb@E!9|?T`wp59+GNJA`kkiqP#iIn~5R4*E{vGoLM02 z=Jl28>xv3jx0y?TcMz0O+TA}Lf$GY`{8dGVt6R+{*p>yB%TynFqYmjeVE&3S0)h!8 zFfrb;9DAAN-zPxEVyx@r@~WuQfPh22iqY5qYPS{+6 z8Mc5>4y-YmKm1iaf~H}cCPo|g!cHy*z>R544H!`m77IgHEyzJ9o`GII08oayYk_T3 z4`5#e01nk-Wmq!v0vP!KHh7?q$7EkJWo$*aMJcBeAXhe;0{|F}Myg8Mf^Bkgya*oh z0w6`8x&HJ0q_ad9>f6}D7QXfz|!*xXbG646~-PLwyfMbAq5Bs z+%%YI)QSSId9`A!!JmLzkGGHY4&V-2?F35h1YAkJw%yG;luK@o1_i z5SViO;|-En&*wlgHeCG}0ji7fTOyxJD?-+k?0*{`p!UYeoN4Vmlld>}_6#-+AOPdI z2dLiKIF(B5E(=iooJ9AOd<#0FgJUQgj85p_BS(LJ$nt!l0k><=FN!P+1Gvb8e$oBP z15Wr+jK&MYFkJcZ+5;6CMK!Qd2T7KswO89XDr_ftG&9M-p@{g=$Y5`7gR6|()G1yrBbp9Gr$#?k!8^|KDz za*x(aeqDd~^YoMQ-!PN>&sG1*4CTM!)nCr~n5a;F3F;4r{r_ZrQvclN>j(8m>fgkn z{x5&7K7El8?f;*nf0Cpxd;aJ8`N)VqopMND{#^fmN6x=~{&SuGmAkQf`v15CsxLga zgS_?GULE3;>a!=I!DT%($S>erxc-cbHz;im@(YF)A-v;Dcpyc-l3z#y32Ad6MZWSK j-|-#a@g3jsABlefms19OBb##c00000NkvXXu0mjfDBthZ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_41.png b/app/src/main/res/drawable-nodpi/weather_gs6_41.png new file mode 100644 index 0000000000000000000000000000000000000000..81b8447023d0f5f900670c4d8141f38aef523836 GIT binary patch literal 1899 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 VfCG}4Sg`YofGyG9s?>r;{|6TI>o@=a literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_45.png b/app/src/main/res/drawable-nodpi/weather_gs6_45.png new file mode 100644 index 0000000000000000000000000000000000000000..cadc03f841e8ddc6dc97ade5bcabda4bc2f9b832 GIT binary patch literal 1857 zcmV-H2fp};P)C0001KP)t-sM{rEr z+uH^P1_J{F1Ox;G1Ox>I1rZSu4Gj$r4i2!eum%POLqkK^+1XN3Qea?UtgNh&k&(^K z&3k)$rKP3v^74?7ki)~n`uh6+|Nr^<`RwfM_4W1e@bJ{s)aU2t;o;%Q$;tiw{g{ev z!vFvP7<5ujQvm)D2TVLG9e0Y@VL0DXqWXo-X`ti4wE_WeqyPX0Z%IT!RCt{2TG`UF zIuMi{S$|QHgw?$NL!Lw5l*9`{8v=G0ID7e9v*C{zI=n6~P& zGr)&Z>=S9De7&8bKj>#B z=+>7Mr6@zFSO*A3)rno&&>w&cZv%10sK7!wQpR`$wxS_;felK@yY z8;V{T2BMqfan2g+;0gmn1HDVUlc$cFs2?r2qpqzoemgt z52gYV8P%4uI$M=&C!$usJSv1M;PG{tIAG)#X_KKusylOF@Lp=;__L!wLb%ggR)YaN2_z3t>MHgsJUe)$0Fl(T z9mjFQv3sQaK3wA;$4%tE5)*PC1V~Xpfvs8^S*~w94Fab8u4P$=NaPQE$Fq6}clrdN zLy+bGmoS=uW8YP7)|ig}EDa$4C_j8D8V3t3GK0{0By&_x`Hg?ffzbrcUm3phWYf&E zkCjq^z+a6lgyf==!ku0oUDbR~a5GC!oDPdpVrLe0o8M8PQT zFZd6ZXZyiyFiZTxy^;@o*4$0_VUzvd^Gi`^ap2qDtKB+Kke0FpfxnP$&^_&2 z!`1HJgP+sGr>o-h4L{Aq(9cWs*sBuwiNc#abWJ%j@Z0V#@iPyMw!Y`b(0RLeZn}1O zOtVMb9r%;sT=IsFgGj2zq`kBHJCqOdp=Zvph$OTO^Ms<`wfT1`_^}8m)2{dVn;XkADXhU3cHFO`A^fxq z(;LYJaHe0j4rh9t@ZSlbg?b}I{52X&f6jkqna5ZAC-&c(4_*v>Zc2=>kp7$>UJ%>N zC;EyDWwyE5hWW}{B*`i1rlf&V2b6Zo^Y%S zE)mk7!FtTFmbKw*`ve&>#`OCIPD1+s0tt*UTjL!24qlPl&JX#m+r`#A#$F>ix$ZCd vEoi8J$$zj+^LOdb75tcg$BrF4c4)_coPJ@~dSWGB00000NkvXXu0mjf4Iz6> literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_46.png b/app/src/main/res/drawable-nodpi/weather_gs6_46.png new file mode 100644 index 0000000000000000000000000000000000000000..81b8447023d0f5f900670c4d8141f38aef523836 GIT binary patch literal 1899 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_5.png b/app/src/main/res/drawable-nodpi/weather_gs6_5.png new file mode 100644 index 0000000000000000000000000000000000000000..cbcc679d100b7f06aeea9106d45151ba9bf007f1 GIT binary patch literal 1674 zcmV;526g#~P)C00018P)t-sM{rC9 z1qIO1&yoo75DemV^BH5*I4bb| zk9h{rsCbEqvisxMRjFO9O1fTy}*3B6cC@Te7uKxnp{Dpjd`*fdR9>gQ=_haP`jlmke%oQ4I6 zx~?P|B|<(gj+c;#F?**$2+nJXfdVNZJ+>oAj)u?)lP_6))Sq0)S1p!~>mkJ!K3eq?HsGxTEY%d%V2amV>NX3~JP>&Ue1IB_68w3b3 z2!o-5e7}Hn1HbG9rsspP2V#FGgewDZq`-As1tSk2-76s9WI$`d)Pvm?Y>EKwHgoxm z2YaI+*~%{m0-x~!ntcNy-7Y}&!DMCH*$1@RETAk^A50YNn+`+REf6al2wPC;q)AIMjfcRm2{X{_RFvjr1>wyQA zXtFSzWbtp|KT??ji}C}=tg)&&s&MP!SP(jk|DY#GQoyI|FA+$_nO+;KZc^0gdXa1# z4@vzUc`u?w3AMRAqljvY1e$&@_Ln8Ntc!zYurNUJHX=i@n_f#8X6u9H8Im{l!y)|T zD_ie9=#;Ha&5vE3ZzyPtG;M=|eXt>0PwW^_ipt@$*?RITA)ta_P%rdzqB#|i)RKU{ zTo~7lkdA{OuqFUp$91P3n5hYM>pKaD*>$s!2DklAX)*hnn`;wall>-Fh>@R zrUzyW1i8IYAPc6k2Pi-oqk!CO%>#|%H$13oxEUovW=Vjq7*PQm#{p!}MAOJ@>V0s`@Ga(4<^Z`^6dnp)r0NLc&Eq1MBL`({BOb;6FP0CcdJ`O-b zOd6tX%zjHWk<;-HJ%HP^NG0Bi1p=af5;vJQ36biC`~rab|9YK0)j$IrrC{tq<9gG| zfY59)DH3qKOL$MLUHS%A7yvij$mXhQs3pJCo1i`5kjhY4mn<%@#+cYIKzTbE|&3(f!5BXj7 z`W?GgfZH`u_T$mFo3;c^xMz8#=GP^D(eXcE0^Bw4VvluW&*imqMS4HjvRO(fO8Cic zx%-wsESWPzq-X32uG#bF?!}vLn2>BtUnnZw0Q@B{-uCt{38;bk@A&1F znoXcIAm5(ctns7HjktV`RsLVV8b1lu-|*wpkPrD`fj=zNE=K@mV$F~>e%#iBf~c9G zvgN@l|0M>w`R~KqBLGYM1hZItcl05R?R3G2KbgiqiScNw!1JZ&U+@PAKa(>*CU_JZ zhl|il-s1Z|fOD5MqTPwC>pkbQU+~Kz&=n)PGKqhepQsF;tIKbK`Eg7Sor~h9e5aOj)aVu90w=pB z!*kXg^9OR|C?J>@A~dDUP3CXQ;u#mZB!}YR_cw_g<=s1t8bjbBPb%7 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_6.png b/app/src/main/res/drawable-nodpi/weather_gs6_6.png new file mode 100644 index 0000000000000000000000000000000000000000..cbcc679d100b7f06aeea9106d45151ba9bf007f1 GIT binary patch literal 1674 zcmV;526g#~P)C00018P)t-sM{rC9 z1qIO1&yoo75DemV^BH5*I4bb| zk9h{rsCbEqvisxMRjFO9O1fTy}*3B6cC@Te7uKxnp{Dpjd`*fdR9>gQ=_haP`jlmke%oQ4I6 zx~?P|B|<(gj+c;#F?**$2+nJXfdVNZJ+>oAj)u?)lP_6))Sq0)S1p!~>mkJ!K3eq?HsGxTEY%d%V2amV>NX3~JP>&Ue1IB_68w3b3 z2!o-5e7}Hn1HbG9rsspP2V#FGgewDZq`-As1tSk2-76s9WI$`d)Pvm?Y>EKwHgoxm z2YaI+*~%{m0-x~!ntcNy-7Y}&!DMCH*$1@RETAk^A50YNn+`+REf6al2wPC;q)AIMjfcRm2{X{_RFvjr1>wyQA zXtFSzWbtp|KT??ji}C}=tg)&&s&MP!SP(jk|DY#GQoyI|FA+$_nO+;KZc^0gdXa1# z4@vzUc`u?w3AMRAqljvY1e$&@_Ln8Ntc!zYurNUJHX=i@n_f#8X6u9H8Im{l!y)|T zD_ie9=#;Ha&5vE3ZzyPtG;M=|eXt>0PwW^_ipt@$*?RITA)ta_P%rdzqB#|i)RKU{ zTo~7lkdA{OuqFUp$91P3n5hYM>pKaD*>$s!2DklAX)*hnn`;wall>-Fh>@R zrUzyW1i8IYAPc6k2Pi-oqk!CO%>#|%H$13oxEUovW=Vjq7*PQm#{p!}MAOJ@>V0s`@Ga(4<^Z`^6dnp)r0NLc&Eq1MBL`({BOb;6FP0CcdJ`O-b zOd6tX%zjHWk<;-HJ%HP^NG0Bi1p=af5;vJQ36biC`~rab|9YK0)j$IrrC{tq<9gG| zfY59)DH3qKOL$MLUHS%A7yvij$mXhQs3pJCo1i`5kjhY4mn<%@#+cYIKzTbE|&3(f!5BXj7 z`W?GgfZH`u_T$mFo3;c^xMz8#=GP^D(eXcE0^Bw4VvluW&*imqMS4HjvRO(fO8Cic zx%-wsESWPzq-X32uG#bF?!}vLn2>BtUnnZw0Q@B{-uCt{38;bk@A&1F znoXcIAm5(ctns7HjktV`RsLVV8b1lu-|*wpkPrD`fj=zNE=K@mV$F~>e%#iBf~c9G zvgN@l|0M>w`R~KqBLGYM1hZItcl05R?R3G2KbgiqiScNw!1JZ&U+@PAKa(>*CU_JZ zhl|il-s1Z|fOD5MqTPwC>pkbQU+~Kz&=n)PGKqhepQsF;tIKbK`Eg7Sor~h9e5aOj)aVu90w=pB z!*kXg^9OR|C?J>@A~dDUP3CXQ;u#mZB!}YR_cw_g<=s1t8bjbBPb%7 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_7.png b/app/src/main/res/drawable-nodpi/weather_gs6_7.png new file mode 100644 index 0000000000000000000000000000000000000000..cbcc679d100b7f06aeea9106d45151ba9bf007f1 GIT binary patch literal 1674 zcmV;526g#~P)C00018P)t-sM{rC9 z1qIO1&yoo75DemV^BH5*I4bb| zk9h{rsCbEqvisxMRjFO9O1fTy}*3B6cC@Te7uKxnp{Dpjd`*fdR9>gQ=_haP`jlmke%oQ4I6 zx~?P|B|<(gj+c;#F?**$2+nJXfdVNZJ+>oAj)u?)lP_6))Sq0)S1p!~>mkJ!K3eq?HsGxTEY%d%V2amV>NX3~JP>&Ue1IB_68w3b3 z2!o-5e7}Hn1HbG9rsspP2V#FGgewDZq`-As1tSk2-76s9WI$`d)Pvm?Y>EKwHgoxm z2YaI+*~%{m0-x~!ntcNy-7Y}&!DMCH*$1@RETAk^A50YNn+`+REf6al2wPC;q)AIMjfcRm2{X{_RFvjr1>wyQA zXtFSzWbtp|KT??ji}C}=tg)&&s&MP!SP(jk|DY#GQoyI|FA+$_nO+;KZc^0gdXa1# z4@vzUc`u?w3AMRAqljvY1e$&@_Ln8Ntc!zYurNUJHX=i@n_f#8X6u9H8Im{l!y)|T zD_ie9=#;Ha&5vE3ZzyPtG;M=|eXt>0PwW^_ipt@$*?RITA)ta_P%rdzqB#|i)RKU{ zTo~7lkdA{OuqFUp$91P3n5hYM>pKaD*>$s!2DklAX)*hnn`;wall>-Fh>@R zrUzyW1i8IYAPc6k2Pi-oqk!CO%>#|%H$13oxEUovW=Vjq7*PQm#{p!}MAOJ@>V0s`@Ga(4<^Z`^6dnp)r0NLc&Eq1MBL`({BOb;6FP0CcdJ`O-b zOd6tX%zjHWk<;-HJ%HP^NG0Bi1p=af5;vJQ36biC`~rab|9YK0)j$IrrC{tq<9gG| zfY59)DH3qKOL$MLUHS%A7yvij$mXhQs3pJCo1i`5kjhY4mn<%@#+cYIKzTbE|&3(f!5BXj7 z`W?GgfZH`u_T$mFo3;c^xMz8#=GP^D(eXcE0^Bw4VvluW&*imqMS4HjvRO(fO8Cic zx%-wsESWPzq-X32uG#bF?!}vLn2>BtUnnZw0Q@B{-uCt{38;bk@A&1F znoXcIAm5(ctns7HjktV`RsLVV8b1lu-|*wpkPrD`fj=zNE=K@mV$F~>e%#iBf~c9G zvgN@l|0M>w`R~KqBLGYM1hZItcl05R?R3G2KbgiqiScNw!1JZ&U+@PAKa(>*CU_JZ zhl|il-s1Z|fOD5MqTPwC>pkbQU+~Kz&=n)PGKqhepQsF;tIKbK`Eg7Sor~h9e5aOj)aVu90w=pB z!*kXg^9OR|C?J>@A~dDUP3CXQ;u#mZB!}YR_cw_g<=s1t8bjbBPb%7 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_8.png b/app/src/main/res/drawable-nodpi/weather_gs6_8.png new file mode 100644 index 0000000000000000000000000000000000000000..8e887a02c5d3e8ddb5e9128cc4d1596d54a1ef52 GIT binary patch literal 1917 zcmV-@2ZH#CP)C0001EP)t-sM{rEw z;Na)y=LH1?4Gj$d000*k7Zw&42nYxf5fMg4MvIG!u&}V?Tn+!Af_icmMzfvq?ljRCt{2nv0IBIt)dJ02%0$ zzG4Uo>HmM_wG$pKP@qHU(UsVvBQZH@y>Ofz2j=Hz)v8siR;^mKYSpS$|33wMLke2M zz8mKL&!XCFk9(;Bv`kOiO&yFMt_hRE7?tg>hhVAb!FCU|4E{^6oW>7Ffxl=av>O(u z!y@6Y62D)OgcD(0`5^(woTQRcXvBa85DqEcno^GdLJ@;X8UCb>0EPdnkm2;%iSUmY zUeu8v1i*5P-w-%H4e2M75bSA+UkI|?>k=T@_LK2nhNnAp`3Vry0Ma65-AdH3nHQgf(bEV-?y)X`g5x}Z?W77Q7Xs@c0KsPg zB%stZ1oFckf|+H=)novn>>N0R2Liax0XX0$G!=k~peln00!Zd`X{@*<#RaL=nUsB(Y+=Fb4sXdlhw_`;+`o)?8sc{z3mk2#>P*`K!WB;s(Q)>aEG-jp_UW?*^VtOaUR=_o<1^29tG z_5g2(ex!hmJ?zfXiQ4u36jKUL)PIXvGT5Z$?1?~WB7@WDL>#h#2Kb%1U~K|r$+D3o zY~QQ90b#fPOd#!jjr7VGUwz>I9f54;K#UR`V6*|AK~R42K)1euH=K8Z(3;XN0e0&z zx+I_B>iZ-BH7Pv=*gEug>(@`!Uy}k+cq!{4=m7QAnU84&zTI5 zthviTV+U#0al%N#$o*e_Q5UVz#OUf5pWYZz55AH;Gv_V~%&VWF2-!X#j8!2dafCX8 zFzSpK;Tgljjjp1h`hntJ#jkQe8v`U^3m_Pt0|RFs1lYIZSKh)P@XOLw_v`auB&0qowR9-wKfk_tkoDBHo z)m$oYX}`Jz*rB^P?aX!XI<1bu>0=m{wW2yC-d9yXna}=Vf=eZboG}CS=@5I z%-UgP!q62f>ZDht=dmo`T`>HlhsK0}47X%YdwAu1qV%Axbpt!7=+d@(DC=v|+V zH*6f@X!0{_M2I4UAVtoEwJD?GiMzH#jDP!`qBxGD@U2JYz8~<=$~hl4A4%9UVW7E) z!;YfvP>6lQAKu*fB)T}!)HWtuc@Pb9zgNNYuRrttx@QAfnpIIT?amI3OtV|K@ZSwN zajJ&WgzNpF8C+gi4rK{ZBPdj*%S`7s0nOm@@e_2I zy}j4KI)im)8a#a`0b4o|x^tBECmuWxE-g;S&m?T7-L3%IDU$D0;MLhp8N4hz8Z_tc z)IenS18c&2lzqJDM`s-TjtBVxPJ6W<7~@{WH-ldxD7TRlXfWl8t{(iNoCk&94%=vR z{+{*sil#l{|1JS`+Jk=>-!lBHTD5A`s#U92eO~_oTssLVv;iUV00000NkvXXu0mjf Dk_4Ul literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_9.png b/app/src/main/res/drawable-nodpi/weather_gs6_9.png new file mode 100644 index 0000000000000000000000000000000000000000..8e887a02c5d3e8ddb5e9128cc4d1596d54a1ef52 GIT binary patch literal 1917 zcmV-@2ZH#CP)C0001EP)t-sM{rEw z;Na)y=LH1?4Gj$d000*k7Zw&42nYxf5fMg4MvIG!u&}V?Tn+!Af_icmMzfvq?ljRCt{2nv0IBIt)dJ02%0$ zzG4Uo>HmM_wG$pKP@qHU(UsVvBQZH@y>Ofz2j=Hz)v8siR;^mKYSpS$|33wMLke2M zz8mKL&!XCFk9(;Bv`kOiO&yFMt_hRE7?tg>hhVAb!FCU|4E{^6oW>7Ffxl=av>O(u z!y@6Y62D)OgcD(0`5^(woTQRcXvBa85DqEcno^GdLJ@;X8UCb>0EPdnkm2;%iSUmY zUeu8v1i*5P-w-%H4e2M75bSA+UkI|?>k=T@_LK2nhNnAp`3Vry0Ma65-AdH3nHQgf(bEV-?y)X`g5x}Z?W77Q7Xs@c0KsPg zB%stZ1oFckf|+H=)novn>>N0R2Liax0XX0$G!=k~peln00!Zd`X{@*<#RaL=nUsB(Y+=Fb4sXdlhw_`;+`o)?8sc{z3mk2#>P*`K!WB;s(Q)>aEG-jp_UW?*^VtOaUR=_o<1^29tG z_5g2(ex!hmJ?zfXiQ4u36jKUL)PIXvGT5Z$?1?~WB7@WDL>#h#2Kb%1U~K|r$+D3o zY~QQ90b#fPOd#!jjr7VGUwz>I9f54;K#UR`V6*|AK~R42K)1euH=K8Z(3;XN0e0&z zx+I_B>iZ-BH7Pv=*gEug>(@`!Uy}k+cq!{4=m7QAnU84&zTI5 zthviTV+U#0al%N#$o*e_Q5UVz#OUf5pWYZz55AH;Gv_V~%&VWF2-!X#j8!2dafCX8 zFzSpK;Tgljjjp1h`hntJ#jkQe8v`U^3m_Pt0|RFs1lYIZSKh)P@XOLw_v`auB&0qowR9-wKfk_tkoDBHo z)m$oYX}`Jz*rB^P?aX!XI<1bu>0=m{wW2yC-d9yXna}=Vf=eZboG}CS=@5I z%-UgP!q62f>ZDht=dmo`T`>HlhsK0}47X%YdwAu1qV%Axbpt!7=+d@(DC=v|+V zH*6f@X!0{_M2I4UAVtoEwJD?GiMzH#jDP!`qBxGD@U2JYz8~<=$~hl4A4%9UVW7E) z!;YfvP>6lQAKu*fB)T}!)HWtuc@Pb9zgNNYuRrttx@QAfnpIIT?amI3OtV|K@ZSwN zajJ&WgzNpF8C+gi4rK{ZBPdj*%S`7s0nOm@@e_2I zy}j4KI)im)8a#a`0b4o|x^tBECmuWxE-g;S&m?T7-L3%IDU$D0;MLhp8N4hz8Z_tc z)IenS18c&2lzqJDM`s-TjtBVxPJ6W<7~@{WH-ldxD7TRlXfWl8t{(iNoCk&94%=vR z{+{*sil#l{|1JS`+Jk=>-!lBHTD5A`s#U92eO~_oTssLVv;iUV00000NkvXXu0mjf Dk_4Ul literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_na.png b/app/src/main/res/drawable-nodpi/weather_gs6_na.png new file mode 100644 index 0000000000000000000000000000000000000000..349f373b87f256fc219ccab973982bea1358f1cd GIT binary patch literal 1692 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 H0Ehn%0Jt+D literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_1.png b/app/src/main/res/drawable-nodpi/weather_magical_1.png new file mode 100644 index 0000000000000000000000000000000000000000..47e5345c9ffd0358b1de29f09078079f36eebfdd GIT binary patch literal 14341 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_10.png b/app/src/main/res/drawable-nodpi/weather_magical_10.png new file mode 100644 index 0000000000000000000000000000000000000000..595d2863d48566690774eb8e785ebe963700621b GIT binary patch literal 12440 zcmX|H1yEc~kjC8|7PsKAxI=LF;BLV+5G1&}y9EisS$qk)Sa6rc9g^UlAj|RJRb5xT zp6^Z1``%2|^k~OvX((c2P+-8p!C@;a$?3eM(ElDZ#5dgw+uVkOLxj^()00>9P(#Ha zK*M^)z#_VPeLehNxq5hfOAihX{_pkwG&~YIG79z^Mn=VcGa#e=hyPy?k+A+BzgbIu z{YQ0lbo8bn7yse^*96c_H}pv zKw|-hg!Zy=|GN1AL+A6yVm4@LX>Dz7i{E}l$9e7O=y<2(TQPItEvzig;;_}MG^t__B9b{mjdh?}h@3p0O#Ao?mVOhP| z(qrP@lfAuNMRoJw0(4+>JR~^8^Gi~6Od4v_g;6JTX$4waTkEs&N{wn43 zf>gRgJ@70dBBr6PmzLqM|=r`oPBc(*vRq8 zEAih41FIYm3=HnnxAaI%EleHXepmeBRtV!zagYct_NyD@jru1n|6=>m+o=Q$u=wlg z=^L9~Mk(jUU=iWs=#eq8onKPz!O!LhO`@721wLKSX8}|FLHyHe;f7?S$0t3Qgh{ zns6wxOd_g8^!?Lw$4G?S_^CJHuUQKn<_C7eAFVxjy&|egX4FV!-mwoQ;Y88Do|g} za?J2tT+C%F00I)%gE)YYcQTI-sDdN>7BVmaaqGwBnnKCld7U0N9tX2VV}1>`C%+W? zz&dliPoS5F_wop;#Y2p-ZsfrI1FQkHwK=T~@EgejeAcmJ9fCRiUS zHScB%9?3^OgmrUrTPpYL?=0-t2wNU6c(Tw7SA{NuT0HG68yfUqnNWC^xwvrd?|mmvsZ34lF3eJf z78HW&>chsS=L8uyIOB}`V(S^ob!(ySMw_zC-{Rl`f2Lkme63>n{BXCivAJ0up1vVN zc~)P4QEw~r9mBd4DxwhcPM+y|1;2pZ$Bzb{5!?m&`8w(4;REGVXOyPDb1smD=lj=& zx40NtS%gHm-*x@DOn(@^zPaHWy}p?k*WeK877=^LEh5B%9%+OB(We7|Vd?7Xj%j?D zMY|aHoS3mtDb51TbbLp8fM`nG--#NvPQNCB=fswk&{J=s=cTN%l-`Ui`(3>N;r?sf z?&nH%zz^CGi)A>>N;EuuS2^onN!n;=ghic zgv^JPp@#ot*R36g1?`MS(x+BgJC*4^1M|m6)`sV>mqeT3T7P)Tdh|Gk$2IsPelpSW z6@JIPGBpQTJ90}Dn2fsL4fO%LzkwypEpRyt7q zhqKX#I5DLBJF~CkL!@4=(?2r?zXv-+ijZh`zvevT4d2YXx!Y2z%7hlbN+o$r2e@mK z*p@9z*3WHhH<6WyMX1v5i!X=#(Bm_ANk}p!X5R3E;0)tU^}uFI1yYxO4AIMZ6?0w!eI7tB}(j(nYL*%wJXM zgP4YXVE{oU#hwThy~s9?(vYuxeXo;wy5FY@RXW1)shWad=yDWbh6WNLH(Dcb(IB^C z^hqO8ulZqW$XYn(1{PuFQ8~^Tp=@)IFYgp#! zaaS?WmCX+mqR%6+FVav*R)R0+azhd$=Lq^rHkwm2QBI&VHF=8wyoWPFEDMOX_JeHxr29eTyFj&}| z?ZDAhgZHbFfv$IVUes!YkaTm^ujwqcsA|b4Bs&~0xv&!v{5TV#?wvNk6NdYh$`=I6 z(kaJLBd>JRQVzhMXAPzZH17yKTyL_vid+VI0|(QMjV*7H95o-^eV0vSL0ZI*6@{-m zNu@;` zne~0oluBR~n-DIbX^dg&Ed%e&wV+}z!vTWW&UgVP>r3PmJqod3fUWRM<=>O)?LHT( z4X;uTY}Q`C-t2@Zflzjgf1n^Gz;o$VGqPwbqMjNJqj=wunS4g(bPFcLx`82PYq#~@ z)O=a{!eS(YD(Nr$u9F;mG-*Ul$k$=)^}Zn!JuPncfk;$Ykeu@tE)nqSsx+0UG0bLq+5KL54Cj8=07#$_AyV?1<*&3tUN zu<(e>wPyS$;`7I!R%S9V~kAMyp1@SVc2vjTge<5tyyc8Ii_kaL z?@kwaG{MjCDL*^jO(Vj; zA&?F)TONg{>ruw9Hy#wAlI2$vC62r_1$G>wdf^nm2hm(cH#OBeIjaVgj}HUIF+iah z!;e=n7myu4RBxU9Fm^&nd<8VUjo@qW(zu+svfxoFqw!=I<)yqYFcLX51ewJ2cNjBPR;!;% zR8JOUP2jgT2Yc+2tx=B-ulPQzi$*yIem&?@=e-@Q$dm}&g@3&l0-uAU_0&-*C@As) zIB?5R0=%Tiq*ls$2s(}CJ=FMEFxFXgmq{As*0RXONdeMq^Uy&&z}H$e_ljL>fJm&bjTB{=loS_d*5&)*V9yDE ziGg7D@*@&JBiaSQm{guWp1&$7fq+2RYSA&JJ*O;|3Z<++MLI*vSxAGVR@tkdQnGgDjb*hX1ujivo%HLla zin=iBeH7bKKD4TTLZ><2zJNWgby5lvML8}~48_NVAu!K&;|xYHN>2`V);9 zpZ3_?_}W4y5%Ecix{gmmGJ>vH0rB*t*6$6B%=Gwk08>$xWj}OdW+$zja^Dy)6TzVgsCJX?kYV5l7&5FpPWAE~uc#TMPc?Eew$!9i> z_m22oMEc@O^m*0q*R#kSUr+vY+7$>wY`$DMjyw5_;ttAEDgYZK&5S%*ysz2}^;IDO zdi?K2j06k`Vo!HV=nA$$PtVOEgK@5pdu(b)Ypi)HhfbtO;ia5n9ZW{6KGF^6n+|BR zYq&=9cuP*hx4+6YWBqi%W9JU(GKRacwk{(JfKmP_rtR+c@9yu4O`%c|W5I#u$7Nnk zQ=1Xtt^okvnA2EKwMI9N{>hirjnreTJ(<1?hhiS!9z&yTbC`psCx6Nh?|YLy*uqOH*A1Aau_csNt9mHdWnKZaiARqfs6vv^((!g8+q06R&D;%cXZH$uVC`xHQp*o z7rOB^WRjx5{fwP(%%PusbSn(Y`No1;)j?&E&y6SvG@w%O+Y~C)j$q1SpqlkhiwzJ zvmKVYHuk1ALI%^xye}*_<9h1k)Tj^1X5=0zPX)W+7_L3BpHb7+l(~8qxX#Sl3@0DSsSu#)wk7DMz6@?Yfi^+_d<6e*G&xT++ZUE(}&l~fW*-g z&kR+FQi>n%TIcuA!2a6xr7F_Kw6V#A+&wr76YcQ?)$n`T)` zqPD_$f2o<7Fy_P8|tLs!@`8eiqMvDpIBoa z5ux}MU1!aArc?6j13x{I$-)!dO8Y-4I)!7zv8`%1LoDBLaReU*vK!4q5YKdY!`f7V zKfiM3{GM*4p#vQP%ifLSGkefM36D(amtRvMAEVTl)l`xy(^-G-)5T$Z0TO$ot{tj^ zHn%i*$k>jGjx9|nvIz`*oI&RGNae_CaokZSA##LckvxP8F?xn^oHcorAZ7qr zX#?!RY}=|e@h{@z7b9N5$&dcP-GOZR#yS6@ZGuA*>veM;7lA$qD(x6f9fXvaIIn%0 zH&^e|n;$91#+x!TqvXfgT0i1JKtnNmh$EY+C+~TXo-)PpA#Op=;jYQ9R_Q(WOKIsx zlZRkzxOm?7Q?n@ThjY>wBXO>bkVnOlL|LVIG68IM1L?EM+j(LHvz zz)(1{E5i0KZ6oK}W-AdRJKG-T5u(m2eCPg{?sr=Vk!B`U6Lu%joGmX`9+|C55_f}b z5~&x-l>Ns$b#pzxRw8Tt4xH$S8qU9D9!1#Gxp9p->5z(M#7>POg8p2~%4DT*Z28Vv zbITfZTb)ew-qD+~^h=|ArS4R3B;*Kh1PHB<2k0KF)6@P>Z^5WJ;zvf_)JaBG1Zef% zz<{o6G#To?8;dtx-f2>$wt{6!{OTYU$Cb=jTBCiR!u`}^Rk9y_Pezp4?4vuhoQD?* zq2x&1Br~+KLJDO)ys%-8R}M!vWp+S-x{s0$xBg{xt~gwlPYF;qO(hr_ZUAlkJgto69;?5Htdry(#0}Z0*qVNwtCROxj-%_BT;&?Q<%JBz0?2=)~Ix=%?i9a z29TL7^jn8YynS-4;WK@7ULJRI%{Wq>0k_tqVaJPM@+dMnuzN7v=&Fwj>UB`xVc#cD zlK{tg42?SR@lmj0$~|{cCGV{O)$!DmarOwCH7DL;jgi=LI4m4kgj(p=I%a#bq^Ox6^; z;~UcbWCMCVya%qn&Lg|8xt<2o+@R{XJp5GL31vWP;3hXvdJ=6~PVa<9Db~Mw;Y(h2 z_`$d0C%{@`Pc<2KuHQZPYm)GPIhEho@nh&6MjV{me)OHoxs4%AXYl=dk*T+wcxrcv zY|paxc{_>rNuw9o(WqcJ+naS(E6?5dz1y?P6b;38?)^D;$Ug!~%b|_|ZP6)(%l%}- z+rx>IrX4)6=rgY_aZg`OJs=jvVY_Wm;d0_LgWDtK^~L4(kAM3im{MQRLH*cMZv`KX z6pqNK50V|YgC4l~p3W_{(JeaKFaFARj&D1itgQ3@UCKdYXB)FNCCDqP2b99Et8%~8 z>SCw-WwHWxdQk4L^z4F`Ttl@Bl^sqjP=qU<3;;P|)*j#-3v=#jVk-5MoFXPzuXcd9 zeL%vtY3SlCc&r(J{_upg?U!>FE^A&7l$_uH=PezUOSInXDd4-7Kl^X5S&DfX5PE~y!PhfIG%%Yp z+oxrzZYFPOh8nRO#nVwcnr`3i;bS4UjaZuStUIizcnF$BT0+yAW;Q+{gu_bevfo=bw)G2C*7=u+b|r=-FTy8q zNb9KA>`T^B|6=xwoc6Q^W#~> zl2e-|WPE`kE+zS<)-XbS=|`>py8h4F zpx@F0L64}U5A{XA{2yMv^E(~IMWBp%;b*!K9;yEl!3)wx(XH*F^FBplcFUBiI~Sb# z#jlxzX^frO6fn?s-0gp4d8tMz!$t0TyjJ3=aL2t{Lu7qOrctQ_Pe>kmSBUz4L=(q` zfHLi?`4BEB;fW_?iC>mLy~E{R>6t!{WUl#kQrR)-?~ zXQf4nC-gc!fA?+|b`pgQCb7glZcd?$^yC1cYgzb?YL-JnbY1f2TCC#iEUms%s? zR}z@-pCwHv-Mr47G)s0YOGkkKPtRX* zsJ!vyq7XiZ-`Sew#WYI9Mp|1L_rYB;p`R9Zsw;mvf{AJ0c1)P|(T?2EkelXU^?Iw% zkq37PG$_V8Xt9qh7k%j$e0d)HqV->B8x5bRU2>aPo(5I|K-qpF+TJfTOYAeXjKTRA zP#7ZJ!<23nqc`;#Ry$b(0hxVr0yl;hLlZlh$o0Pk_J|-;ldxS0X%May(wL~gI3v$! zkOTdqL%2-cusLsTttPy18J0l$9nxP%hNG1B{_Y6evms_Uv$h3DfXqMslyK$nKf4@x zIW0Lk296Tp@52icsaPY@T}MZ~z#=^am@0hUZQ5`98_8$998sU+tarKCcrLPs(Z;j@ z2^CN2R^YU`&4`~Tj{tF8jBogZ1h>u=wcGx0=ve(9Tz~*!qVjUJB{=ykzvF#v{SXlg zgGkEmk$k%|d%evTV{Sjc+#l5|k|%AS+V8Gs)3{Qh6ERY4i<|F3txB%L4o2UB7%OCr zu$LZ{((B7g$sIiRHe$9vd*fF!-`(#2vH%6#7M*IvI776SF{X{1N`-s;2H_?{rV*BM zVH+wZO%-Km>kbI=at=H)WRcp;0e}p@ckW73aBdgVr|=*iaPRIS`|n}m^6u`!qNgNZ z!QpE-P@Sc?9nBvl#q5Ns_Kjh6GJc0B$A1vfvIHz=QRg->AosvLQJ~q=5Dg9H!m~O_05rJ35~p89f6#A^SWWuAbK)b2B{?D-QaGdDo|R0eqU7 zrJ0>*f}YoC@Lp=Q(R#EK0ow+y3+N7ly}?((y<2c3MonOS0C_cEg(A_4sEChhU40c# zs2}xUH1^G`%Odl3->wZ?0_XF2KoVB`gnFiLin1$dY(W;fPRW9_sHIFx-vcMjwHibrwcYMQP&zB z5Y>l(!tCspyRC-Y1Xt4wygY2O@P9%SNhdlp?TeiEEM^92#rW{ql}nXTQQ!KmBTL&U zI!BgCE!!jT5k9RQx@wK_Mf!JHzcXH+Wvz8YFL0Yr)8OWC?u7MzCze@_{ci0j%w8M% z7s<6kpVa?8pjy$|zC{&R9S8m1>3E$^iq*H1PgZ!=ZE;`qI>wb;=Xj9T1rzk&ZKRh%F5j*hbML=> z3FlGCPnvD+yBQ``|1npNL}K)LLx|QqqvlFiTfE;N32f{jeNM4MO4FAL%PH3ivXzrl zfUO=uALp$GRS4PHoogj#;h)Hj{{*Da2)R)T(|3}FVKa74Dxi%c!S_R5hT<`qBi>Kk zKhF&`HxCSCXOBb$Q`~R;uX-)?6LiEd^xM=4mkz=cD3Qy*~NZ%GN%8Y zpHFap*|(~XW3A!&rSrm(@nTkwKszA?n;p!0T-3t$x9x6xkehV@C`Fp?J5ewUemW_x zom-sAPgEyCEm+Ylrp4l+q1!=%B!p?BNO0ODQFiV+SnX=x4wcKIB#E!hBm8EY%Eeo7 zSR}U>=iMN~uxucK_rAN)RC*g9YU3Ubk7}-q$tX?wT>l7L7nqRam)7(D;q%PNo>C?T z!6P1!hu=7S6Sy-z6|g5ACaa(FD!^vC87;TMk0P^DES;zHZ~w-DFxqcn2@w}~4$F;# z*C)}&YSs=d2~l(XroE4qD_b8VtQPBmLvrY4AV_IYFx zG4NA5K0g#f4Aq6nlA-Sq*Opzw)(Pf!#K&p*X5t=(w(TvE;ZVpCrdB(bu;AxLczDRT zO16Z(Di)J*D0ppUtt1WQc2PJ4go=~YG=<0jHqWHJG&QOVsNt6SB)m$kyGNlX;+~|&>Qpfo9G_h>#j!+f>!o?r zLWHw3ax=$bV^A|EmU$@RHWl{~)uN*m6EGPV7&J4(qNq5($JcQ;>uv>(@7>(YM z)KipZUm=1({1Mc;v9U+L&(5eC=bYODLguu4-u*n6fzUpc=BY&SA+ZRal$vG(bYkm9 zd7js^W$N_VxW zA|J}x7nuK|%CtD!*p;pgj*Q^)E2~C)C+ati@{yYg#-T%_N}AiA`S2+CxW~oqhLDYF zJ{!H8ISr8TM8-Mb(R2|GV59OXUBm>jc~hrCgf-6qh6N<}D7AJ@Nx%3yut{o!C`xtI z5RE3gDfPJw;lCi>Sq+1tQ9+R@6K))#Sp!R^Yy;P1`WaDTIUv!-ul|(x<+R4+q3BwR z9af|}6f_wqCq|x4`ZUKMtDoUt!b|!T2*0mb$MYz6%qso`nm`Q;B`I}!xqn7yanvr> zwi1C=)N}DLT>(p3#SmwM%az_xEkLpYJ-H<|rS#JpBIpz36d!M!j3kXZ+uX&J+5tG+ zuQ!`M{L`T=>1tVUk*t)9C=ljJfvx4Na}r-d-B6EtxRXoV?3;DZ9c90+$2tb>Cev>s z?sgxXvd9h2lGoSAI%Rcr8Z5pK9Zr?l`4xTpiG^aHmeYh6h>&1WGhKD{;XSew;Z6cN z9$b)s4-W_Jg1){U*$D+A6VK%^2PIvrd=wRHC63{+eZA>>FZG?UZ%G^xzqh2f(#z;_ zQz%GuY>abBymI6f#ROXue;KOi{X=;ypRhU|mOC1R%9?y%5gHkC+}q>7I(Wx_#2ved zJeI;59U%hm{JdC?EG%PbNyt2EvL?ZP1;4-cvP?$G?MZ*ORvi^@QmaC z3PxndvJz%c$$%(`Fp&9iF7Kghtt{<$IRbeMOZNdjJ`}lu{YV433ae=mQN-Vwr2D9M zRG7Wr_Xy`HpdD$wEnoWU(CfapR!ew92y##yM%kr|(Vcr>ItL1|sX0^AW82<)Mq7dk%f*Hz$*}>~@c!!#%*M zlcb-=o`)5Xk`x$$_9HbJ#Jf&*M3!btIT27?ZwGSA8i@HHW-H|tqN6@I@r>`?@eB&} zxBN<|6-;OSJm5<>>NGMTm<&k9gX&{+?ui!;Yv+f;N4A57CCUwt!X?gtAZ~%Q4sft% z)-a!w4Tz)zjl2RUNz&7!UK`bDplWcnu^l+O!rb52AWzfLFi-Yp{YU-qHR9Mvx|WiF z`OY;F1P?=O9-i2882@+H%(aATok^i;i@j@991@KCEI)Ewx910$jUSyyS8{A;u)mqB zwokd_l9c3PuD%P8gU{u!RIN`GN<-)Z!LE`KYJ8G1meC9)mIpGLL+VX!?0)4E@yH*L z)e6`P4|^cEOY=hc$|MkpXiL?Tgrvg z&w)K{7pp{w-nzz}4R!tT0oATUx#%kErE4f4Cqphf4-2r@+fJq~QrqyMaB0bVH_@XFD z0cK_#_M(12RqPwHCdS)u@-*=P4s@%HB6}XPuS1?MW3JSrNrVxY81_9Wbj=|lJfny8 zF19-LiS>f+9wUkHn*6uq3wQn)NfwI8n+0~ zB#$;`ge8_N!2t?oeU0M^qu2G|QL1;E#oaX6lA4S{dPD_=Ak~2ZgS-B7_ln(8>KCUZ zlw5pyvd7z)=ugXE%#6qsVjwa8_(&8PsSCsS20aAC_BhSo1+&;(|+jO%x zB61jVj;Ekx5q)qLRus@1d467uRoCj76PHLEKOLrO>Vp1-E2|Dko8x)b19D`72r2bZ zlH%#`kuawh9q)L89I&uJO(0AAKdT^g&q57U#N!h6Zsx`s{*X58MEz3t!C)e>dATAh zVGbr^DyQf`&$KM`yQhvnrTI50j)`HVWm!{Hn~02L`)d}=g-hHDUR1@p4nwdJ2aCu&I?P@TPod4!bS;wYd#FC4=MlaypCNNkb zY2vmCq6<~{Dp^{lO20nvho9@eI5+Hn<-vfR0XQ6fC-|WBJAkHpLO-? zL{(QZvVYFd`Otg%qS}FC0PNAPop~72GADu=LKVTKK1mO3WUX)+R$b<0`Eg0>lddfo zRh|)9B3tQ$+Zyr_OD?>wP7FkYYd=Z^Dx3gyKQ21aGWzR0jz5#gQBZtxi$%s}eMvNj zdANtqopZ&bxIBG?ptif|>{ojE^q}sm(v`Pk-=AQ9-NwNw9yOulF9=-3MHY5Y3i?t- zcXvJ{mH7*ahjJ9s-u}+zo5>4l*w~j>AEo~d<9+h|FQ#|@{uTZ{OQ8MC`tjpicr~1| MyoOwZjAi)$0CfFEo&W#< literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_11.png b/app/src/main/res/drawable-nodpi/weather_magical_11.png new file mode 100644 index 0000000000000000000000000000000000000000..042a6bd6d098f503a721fbdb237445c93f690ee3 GIT binary patch literal 13693 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_14.png b/app/src/main/res/drawable-nodpi/weather_magical_14.png new file mode 100644 index 0000000000000000000000000000000000000000..595d2863d48566690774eb8e785ebe963700621b GIT binary patch literal 12440 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 MyoOwZjAi)$0CfFEo&W#< literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_15.png b/app/src/main/res/drawable-nodpi/weather_magical_15.png new file mode 100644 index 0000000000000000000000000000000000000000..6101bd1dd8f66334c0db67b08c8b250e74fdb9d2 GIT binary patch literal 15756 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_16.png b/app/src/main/res/drawable-nodpi/weather_magical_16.png new file mode 100644 index 0000000000000000000000000000000000000000..6101bd1dd8f66334c0db67b08c8b250e74fdb9d2 GIT binary patch literal 15756 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_17.png b/app/src/main/res/drawable-nodpi/weather_magical_17.png new file mode 100644 index 0000000000000000000000000000000000000000..467927eef4db8915fe16799645a49da72b2da415 GIT binary patch literal 16497 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 Yvn${;yx~^gzqB5D#t&Q0a^| zeXw&fqqlZ30vi=g;SJJ zc<|TX4{cE^b!qP^a_lVV=x!{17%ovI4!ewf8d?EXx5bOMPh7+PuE$7FfV5Ks$ zgFPinY}4?mJbY%BNhE7f=1CBfyu6E*ykjVvTI)MpkOChA>ttqJQ6_n{pV`aQ+r>BR z-c4g+?j9eqGvo@w#(SnCgmP5=u2k%6rzsVbCdN#jIvo?vlc`pe>;#Xv4Ym^{YK{yy z#^@sJ@PJOKGB?e72)-h<`r0N@BblGh{OI%KMvzhBm*=rTGs0YgOYpBh z-Tto3W`FF*TaI=**DE;)RB5_>%aFF#-h=oe5ODC6S1OBA%O+=jg;E;g2#G9*Z2*PO zC8O$BDV)<}3&O(N^uG&k?$+lMWc{MqU($>9*5BZB_!TxG#l_{JqMY^Sl@6u17x5h}-9*)h_COhiy)x>e<1k*O?oybpB5My%wKhBbwB{{FB z8M{^r-a5W$VH0QmaaD1VjE5#$KC_qgNHNyEp#ET-I#aB*VDqGM+P#KrRs z1uJHjuz|oav1?#O7ZB6kMc%}i#rIbb`n$e$$=YE0Ci(chvRAxGMLfY z4k?8b+t7wv`U-F5DVUJT4AkRMi%CYh*_oyPI15YU3!cm zkn84!mS=U=Cuc^2yrFrxlH-O9#U)Fd%qUMN9R4~(F*F8g*8BUoL)Mt51U`-x;tn}aStM+wa7d|Dg3B8c90zLaB;6;Fs zUm5h{04d43NPVWVq%?A!Xrf2DHOj9GD@G!u%3xG}gACu^>U~xt_7U9nyBrup7TNlj zrlsNz=Dn*MYY$$Fh4Oh47?9Gv8~Y0XiE?q5yTWGQ!eUSY)X#~pv&?g?6PDcmXsI&c zy>7Fowgi{nFXuxKn*kp?L(u`U4=qdC4|8t7{+wgBQ&c!4pj3xQ>OFkcO&!+ga^aYm zx|{Rr zHC6R#LC#h$VW!8(hZ{K04vxt6&;i%?fmH(J?$QrYIcv@HgPWE#p%rcJThB%&qU;w(yYkET3_sdUo zeyXEzFJWBt5YLqY;)xLAipjak#!CncL%{nDv4H#6HQ_849^DAQkNj_X9qA#U^Qz51 zJouCTFCDO1kiSjIZP4D;96xDTV(op|*5a*jl`Ln$I!-PdmMys79gw-m*vjuLI?M3F zE-y+2Vs=!?;udOTHSF|}i?nmlCqA#tW5p6`Mkv|aLxQIcW{=4)eA^96Q8VHw~I zHvD;*w-P1zcvo_6T3^t6rqw63??qF9`=9j_PM0J ztW|@5LTYaEEB^cLJXm*Id&OPjicwd_G|;;xtLPp>hk@^gShAUiiQ_AW9%Gyr*&3qi zU)2HAbz((p&f`MMeY=QYno%6rZjH;O^zQ4jrTYOeb4ZR)zdIt{e>-9=rDP2SWv2Jn z@(}&enI64K&z)`N=F+YNRBM$oM6kJ)1F=GqDf1M8wsI#|2X%!Rz=zf z>d+1`bm2@qL-h=1isB06{TaXJhjB41wB}5Wv7PSWbt?N@AfWHZR_YxafA<9wbO2Rx z-%-+<-RT<9CB)lGMY!?YOVk{Al)mV$nX+bBU-JpDDz$LyK7w-EpuQnF+S=HNv0~V8 z=qZ#7(Z7lc1LhKnm!GE(nzB^T1q}5jU}iKm4EBAU;d7a>sJpX({DP=31Mn@hy-Je$1x zEg7K>#Y!g;{aB?eW=@p){d64zL)AGr)!JM3@1jUGu_-^L1LVzk50uSp64!lClc)3` z;msFA4M{ySXN7a6MSclZ#ORg^M-J*fK^%I-S|N3jZV_A@J1)EC-21b-#O`jUV)Lh& zn(>5@__37freWNw;D={KfE?;760QqwC)%}pbR;@((DVraJ*O8viF0x}d@J;;9)TiD zUym3RwNb5{m4gCs4<4$A78>r0`JA`$b1edqWm{DhoBqEQD}n7n)U0(G zn-d5VXxfkP5cx|$wixC)UJ`NG#F8sk@yiSshnf-V>)^VSnYDs#T{0W)^Gq}PQ0 zZiWhu_yb=PMJ~GlpYXJCk{O;M6*10(vw8YGx8}%_ z2Gxxs9xE&2l>*f~h0fcvy)79>apEG629{OjH%XfF{`ykRIOyUYdt%|0+E6bcRNj$x z4%@f9v(f?H7faT=i>iMFJrjCGY6hIfEqo@#rQ6?iO9fTEBB%ETN7>B@z zGHiO{a_t7m{ikFI*ii}1Z4Sf|+NY$?NbnMJ-1=u%&%+8DZN;h{M}0aFX}3R#hc z6)5S808{g*C5_tY-sPtQTvnx``mj2UWv34(617q#Re%}#BZ*M^#0rnhs7wprpez#6 zxYMv^=ENtP%_soY(eMdHf3SRN`^*ZZ=-h(PI-M(@Dy1J_?#Ry1ACY^SwIB#bz+a`8;t|iB?)1Wu5i^xmEX5Es1A5|@u;luAy$>SgZ7=K%SRS&Qe8Hrr~>;^R=)g z4b1u-Jtj(<{AF)%10O3_f;^dW`Y}th8B{4&3ul90pHw=O)PPonkt-9RlO@5$y%F$F zmAhG0&*~vWt3Z;_)rGy2{xTi`qST#&upST_a&VenI5_gqT0U8qhu@I25jC3?#k*p& zhl~POLS5P+8BM+7tu2_Hczz)ZYy`GS`*n(otm1sJFY0R?Odvt=2JUA;H+m;wGr3nx zwy(Y2cAjk=Yl2CLS7!~HT}3UN2B8))nK^Z>fAwnKD)ndy3mjK|!z%u^WUuoGIO0j4 zYGu9{SD#7=eFK%ez$f8d8i)fVXx1|)J1F2nVcjR)mDSg#rG4L%r@|p(i3g{3f>{KF zO&mrt`)m-_Y%FifdEwGyB3*tVKl2Bcc!dTCSm&H*2BWFb4388pE#Uh2Gb|*S6-+-C zh1{AsoSiSRE^>Texb!<;x7#!;fC);Sz^$?(rW7FAwvLH1n`+_)HRHD`u#9fon`ejLBO_4;|D&+_*WkO1h_ zC%zi`t+39i&!N2-jz>#`|8m28Fi`S0$f_AqMUaAY7YEtwtgN!1&bV4RV@@WCQ>YD9 zjOFvPkYj>DTMt$dwq8P9ZNSxXb6>j9a}Hdg`F$dX<7%a!D}d2E4~}f}b~hc3-QrDe zL|nZXt#0f)o8W4mPEj+G4-i#E2~y}-6py~u7_pzz<%MfTq6q)J6hjv!C4RGqardES zDbI(ef8KmE`Cq#2avXNN+-d$3KNB8b6}Ym*8=OB|awG@btE-HC&OF1^=Z|ln!<|X1 zkOXs6WB2!QF3!^LbLo(G(w!*rDc}*5tZl!8X!|J?FaZ;>jx-L|?DGbK) z2tniK9wBy!_OsH?wtyR8)VY>4x#VTqf3=*wwQ5_tXt*GSVox~W4{2Ua@5>lZ(WbT-DXGlm(pjrDc=xAme|CL|*an~)8v~D?oN9{XM_1&Qu;A(jb3KkI;g2A$FRl7Z)Dx!mAPgxB3b4++` zr&tG&@$exIutYytAtm zvDa1%c=^r7|EooaVS0@^Oq!;1GVM-V$!F&h3eNNM)-=d6>hgc!KE%HRu%d(9KWqF*Qt48%V=tyy}I)=q( z#lTgmZSGED+g-)Xt?&HF>ZFEagdIQiOCvZWY!4WTGpgl7*g5mSlj?nyJ%#WO@HiSCNc4^ zteo6zklWMBV^T!c|GtWoMdg);0syd1wam(m7IHcU=(mU4HIb*q|dB;^8fNz}YItr*MC5 z8%VEHAtff}Xo3pE3Fio#HmQ|*v`Rl1Y>lHYsM@u1m50X(f znUum)H$;2ugmG6!_-O;VE%nAX8Wl_W`r-X7Z-3p|6fGkbaPI!QRBX~eLE*0uB9NOs zuuAD?y(r}QGiYZQ4r^aGJrIvE!A2?C3Vk;18@p5HYOd7%=J)EJyYZCsuWMX%U zR#4~_h+~}o!M*!$lGplrCA=wd8Y5=ZK9&!=@Gc{r*E%hGK)cnM6K8p>7^LGAUJ&7+ z=jyFFdjWh=4NDp2$EImMP@OK|iF;N!m0@bVyDy%t%;W~Pewz_1r!y5d#+(=ft-;x7 z;-A;0I+@A;UaDZksrLM9i`#7SBX4ol6nteW8K^F0KqsN@KWea@t+DA;WhAi{$oI}4u!unj3&`=)|u*kK z$5~Ii5m-Zyh>KXPzlY3-TaYt%ucuip*^v9AaMQSKFxb@25l-4Iwtu4?wfWOhFv|1a z^6Gk?m2$kuQM16v*BCjjVt)2l(ciZoidy%>3j8gC^pY!{U^SHXh)kR&q`mDom59-EuKHAymdD%r~vMy>PthIl`o=UUKlO=l;%OLA_of$)r~*6 z8=6!VRMW}TY-jSLAE_N2EjU27Z$5hsRNp5NK)VkoSlQ2+apZ#Lusy;g6Hitq6_50= zC8nGY(=WLqq!oFJ(+6(zjy^DOx`v(E{*%$0g^LBhFt*yO_knF zI}C?vw8Dq3DzmdHPfc6T*~-BL8c{VNzIT8R(i6bgKHqi}^ygpLP_mLr64hdW;Qt32 Cug^*V literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_18.png b/app/src/main/res/drawable-nodpi/weather_magical_18.png new file mode 100644 index 0000000000000000000000000000000000000000..595d2863d48566690774eb8e785ebe963700621b GIT binary patch literal 12440 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 MyoOwZjAi)$0CfFEo&W#< literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_19.png b/app/src/main/res/drawable-nodpi/weather_magical_19.png new file mode 100644 index 0000000000000000000000000000000000000000..3c46af9e5a7133d0a48901d5a071a689d56f9b28 GIT binary patch literal 14681 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_20.png b/app/src/main/res/drawable-nodpi/weather_magical_20.png new file mode 100644 index 0000000000000000000000000000000000000000..3c46af9e5a7133d0a48901d5a071a689d56f9b28 GIT binary patch literal 14681 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 U-Zl5S4*&oF07*qoM6N<$f+qY6KL7v# literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_23.png b/app/src/main/res/drawable-nodpi/weather_magical_23.png new file mode 100644 index 0000000000000000000000000000000000000000..79d1b993a3479985610fb144a3c09d77e329ce32 GIT binary patch literal 9069 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_24.png b/app/src/main/res/drawable-nodpi/weather_magical_24.png new file mode 100644 index 0000000000000000000000000000000000000000..79d1b993a3479985610fb144a3c09d77e329ce32 GIT binary patch literal 9069 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_25.png b/app/src/main/res/drawable-nodpi/weather_magical_25.png new file mode 100644 index 0000000000000000000000000000000000000000..7c8d100baa93a6ed8a1756066c21589a9cc59fc7 GIT binary patch literal 13914 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 CW!`K6 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_27.png b/app/src/main/res/drawable-nodpi/weather_magical_27.png new file mode 100644 index 0000000000000000000000000000000000000000..62830cebb204f9c800b14c8956aa08a6613f829f GIT binary patch literal 15155 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 EKfwSb!2kdN literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_28.png b/app/src/main/res/drawable-nodpi/weather_magical_28.png new file mode 100644 index 0000000000000000000000000000000000000000..0fb3fe38e1e874fc3419514173be17f55cd6f92d GIT binary patch literal 14213 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 bf7Sm3_;q8^ha()Q00000NkvXXu0mjfZ* zo}Sxh?(H*Ow|lB)rXy99q|s4GP(FP4fG#T|q4s`;{^vk~eXqOT);2zTfbmsP(2$gN zQn37CgMopu_x}SH4h|6><(-3rgNuladN+3ei+2MS7ViJ`g@J`dghzb8`2YI+uer0c z^KOvH_{S%v{ojyx<{enLwBZrae*XSBIeC5o0q@NJ9Q^$Jyu5w<{QUo0{L<31khpz( zeSI;gWc>a8-#hdV2n+}eL}Rn~pIksdz&rnrcjG?@3=9ei_VfP_xxT*sKkD7{z4IN#3q5V*K$Z*QNrjxI5Sfd2jgkDuO>YUUoEo+RY#KfQdV$V zGC#ktw6rulJp3-SwYAmP*9RvW^=EBuV`BqJAmm-*JuzcrV^rSHRZo6&TsDTpI-}$N>0!Jf;OMrfr$r4C)SQWMSG73M)?9$FP6|37q2jk zffv;Ji((BAj1Ebu7MXNmM;4 zKzphH`g6|O!Tjazk725ElJy(r8@}{b-U-t4*Xy?zjtUK-t(5(vJyIc?lB%ZHfY02f zLpRRnUek(F%XB%QS5$pw)h>>gy_k#FVbQm@&^PGiDRles&O1)H0_p)6?0%aWJ2}5@ znd*G9jnsdgIw*5)+j;jCel`D8i_l8*unq*?8~I*8dX+E=H*8qo^C3k-zQh-HMO!^*0U< z%pH?&(czcupN1|Zz?aX^^zh5@Se>XA9oK>AT`Z)_h@zsRV!#FKD~*5A6*A3sMrwR~ zd_n?;GD6oxk8%li!2sy7KioUUn5w`Ud7!?fh=!Gwm6q0m0LDn|qB${f5OjdO*-@WKK6B^vO>nvt3n0m}*ng@7%a!%V6+ikOpt%|J&*B;Fd5*5eeQbBPp{0)xj< z3}O19>^yn8T<_|7eYH>ZK2r|m4GkU6PnY@lLS%fc(Rf)Ib9>)ZoVFX0etUu7apPTr z)SJvlAsL~et_%Q9&PQ95El37uS|H$yC(nh*u#>meTM%@FF*Q-cnlW%}^rQMR4$K$? zGRDMOnW>zRH)XW1t!ZIlfo;A8p_NaM-JF$^`P#YtMr3eVq$x{M#6-uyF8T|s7Cbs- z6e6<(d~0LKV~|J2bh8L#&i%M0M^Nt&fW<|CsyD%u9&}^IU`qAbn8u}ugo-02U?8Fg zmb`ajf_h7)8IG+v9g(~YY)uT3PiLyOiwvPE85q#)k&!Z=D@D7#-`$;`*9;kULqpt3 zw|AE6n{7dqAt0r8VK;Lg1BVV4;g`YT$!a7RsH!Gp+cy&6>#`8EuQ?QEO*jm1M1i$z zd0u@a;qeq`zB2HZV#)Hg|1=Rr8684?6uAg7fiTNb*2V`-qiCo^xtY3uu&7<_+frdT z#EiIrf9W-5$HQ1Xg~22#LHW9f&WF4Vw*oslqN9bX!$P2@qLQGIY#WU9?JaQX;L4ly z~S zD;3f1sS}T-g=Ro}Qa@#ZXh>o2%$5gyFeO18AZhux3{Pm&O_zW<3kxtYzP9eS3|PY> zf~uVrF2jJWI!nVeA-w|Flg*ztEKZ@s07YtJ4*|NU@q~tjC`84z#$l5xrv|NKnp{A@bp*8@y&RKM(cZEbO)BM4jS+a z1dOA@0CvLCh;bOy{4!UwbAO{|&Pq0si%~6Xho~Pak(H(2p%TdhcB9c=VKJwyk-H{z z#(^2fR4yfRYcCAudj@8-!s)83$df2d#D~#l8XQI9k7nwP^ht3N)#y>9 zp2ixp0^U0Z&EYrbCoylvUl&`^63d5AJ?xbBqN#qDtFo&gHzVLCh>77(#UM~ML;!~& zb-LBiS=wHG?WAmnNLMukC!1VjDT$|>5RXghIEfvnbr@DhR;-)fsP?{*rm0j`7IR}Y zVP#^W-$l4ZlYXii%npkONmo(n$1hN^QK#NKYF+I_DcL&d7fyr5GUq$K{;T@4a;Hc57hxl-MsBLtcjed1B5 zv-{}o`6f4GB3`N_F7B!X2nI~(q%qb|66Cvfe=B2KQ-)E=$3rw|R3ftmKUcO?bH8RzKAjg#hxQ$2dg$n zK83K4W=u4cbSp8N|{d7kOET>AEc4#}S=k;a)cgwU$AGtgyylx-X z?eny)Gm5i?mMRH>DrR+!MvyFfq4U=qPd4_M8#VpE)>iI5e*VJM1W+qkiK^I5WfrDs z8Zy_5&$l`TRu--7!y!fa+oqj>1JtTtn^ETxp5yStu5R-_-#?1=;jO4OL{T|w@^9cc z@BAwM`~gSjib;}(#+{(zO2tXH3;ACgV>P|wp(sX2E#vm!I}XdSN;Jb~#0{$2s&IblI@7Bm9~cm>0Vik0 zoH~bh`IXDgRGC+=QPC*YaLL?JB38#y-f;@>DK^>*~71 z_KU`YfQqOkmbtm>tr&~G+rN@E#YEjLT{2&6yq;IXdU>Bp^Vx`4YI@Nt?Fe>__)%#I z&a8POo04{8Ki|PIUa;C%;~!i&%;VHjsz~~fT}$pnd@{fAGqY2ZTInO}O|fs3U1bj@ zE`jX(3yHBo+v+*63ee1%?CHhMKH1*{CD&=YANA7 zt@tGRmZ%=dd^2vT$!>{HQN*qiI6U*NCX}$ecE4WnKNfqu2KKj~BV+gKLv1`YWTcMSHi@eKTIR$etv z8QX#ISVS!EqgS{dG;+sBQ#)kH6u0XgBSbZ|+LquB82A@!nlqFjY z)$xI!9*D^LW`2g0K&sfxxIi;*ffJ9ARoxYbplGHRBRS~4<>UD9he3MuSky=vYEBdd zF0!r>r7`1(5)W~nQ1i=?zAN-=i#&Gu{wQLYnsm`ms#2^}v{d-%fqLjkiyJU`y zvy;wF>$wsjBIYNdj(`CBv&G5=xa*$Y28kjV)I%?#%8kQKKB6!%!iobtF8Pqj+4;%Y zS!Ef+myP-#$`%%TZ?EcUF%+B*r&fj)KScsZ){4+lBD{lcjap`gzpQYDYoy~6&LogG zIYnrhcsP^syX}rN9g|qRFMl__Vb~E+Jz#v@O>7?67@o_FB&5*pU*(4kx&Hqv-CPRE0#Qk3|yIx=?$v5~FHi z4hMcL=sY|h;*V>d+_FA7vg@{tzMIS~37c#8Bws<`*`=8tsr~CIHYCRWbvTmDrccXet-TT&a+l-Kw_;DP<%ms!Fa3jF%S*7G(m;`Rl;CLK|IHle9uzriD+e4-{>gWbK}{b||d-{*o-*-8J4G81EuC+bN_9 zjHEN)-PHg7Jp{0eax>5rsLRP19d_Sjuiwsm(n4DtjO0*yp|v#PQEaNsIIS`CKWX+ZcHF-{L~erOd?E#Q0DgZQZk` zb*&h?o_&2tjVfN{hOvBzVGMNRs0mJ0_Y92hQdwF~yzFr}()4mn5_Qe3tGVIpdJbHR z^(5R3z}A0mocuIAMD2s&DnxZ2XQN@lM?=IHK2AC_ZELLYy$dU9oWKfOV;57={bTS- zAjjjy+eB9Bc9Yk?x7X6iA0N;EM1|$DS+kr8o{N(*-PemI+Hv%Ms=XAec|00DB?}8B z{m!!O(tu#c{UK)JvtGJLK(=JHEhOhr) z&Ve9iB)0|gk*FIlb;OLbfjw?~$SbOU>rVfvt^fR!e@+COa?k7%D!8-fcjfn{1-uUi zTJ7C+mT&p^s6^;?42_cE+H9n*Mk6XFw04nu6%y(ces6n+PNAD5yD6J*-)6UjH6{S8HXTZw(CAbUqgXnM-3S#;y9jzb2$t)zIqo zf2>}@x8FkWf^MPqbHhxCRZTX{$&4HJy8Dm+Ssv^Fk2AMhGup2 z^G1NvxDWF+`kXWuP9$F&L5V*PI-=YcY{+UHPE|DXw zWI}l?Aam(QRWsE0@RV7RiW|pZ0nxULxqNTAAQxYw1Y2ML{fKtxB2c4f7wpU>GEUJfW_uddEYL4c*n)Ql~-`Dcy6V!QusGuiG8q@89-{8Lb zADCo6nfW#0C}D^N#$}ppr{vt8xim2Qe-aF5M0EM5uudPIr-iX&(4)=FLM6SR%VftV z6BvlKJbBsaLc%9hu1A+`(ajG@4%MVbfp?RhgN+hH%TSlY&utZ3l(@MvKq5eGEk~5| zR|9qlitfa_eJ7)8ZnA;jA|5tRO}{~eQ~ti2?y%G3+pOe&bN)R$AS9>~&aR(7T2(g; zG6pH?XI5uDa6)1^X9ved_)6d_5EEV)ZJF1V_RsyddQs6=R+uNEl}abv7%eq{9kIl z*Q(#r*n2ogEp`&-zS})%SSCk{D-l%t6g+x29)O>UDAv1B}v*6>_`6 zu)_M8+0`GIPp?=CPWIu({IfYb3o`t4s|!OGCu{+(M2Q@!CF%3@C58WDpb^D5t~@<_ zr?(8%wrA)~T|z9eYN5Kq{9*>H!v6UbbIF7yWj*(=M|isS7H?936x|w zwsKbR(5%3|B3RNC6wa*w5MG;%)S1t+yMBIEtEuk2jZ%{xVpcbdM0+v`_$oFo3P@aP zx<8$zCFQRvCbnj%{e7j81=2oHL|k+G$sbHZRKm3Mt!dp*ptC{)>5e-{apsp>Vw%y= z@c0WnFZ$F6`k1SpQ}xrwvn8c^^PMma084wZQ)DHIPb06qb+`V{WQ|~Eo>vVG|AV|<*RTWVy|jU+Ek4CY7kt%P1c6qu6Sg# zXKoX!bO^1U5I;=S)aUeIHKe415acPA)l>BaQm@c(+N7KXl^_%4=%;ecRAaN8-0%*Q z$f_=mKQSoni^vCuC#(h36+meFw<~;LCzWlKtFow|z>%&XWF&wi^5VUUKB49#5k#SZUfZL3-+y`k+?twe7oN-exOxp2%kg>!A|E1< zsIwDdMm{g+&*l6Ko})NR`R@N``V=rY7fj{eQz6E7{gKQnV6Dr^$mroF0E>kPCn2_1 zXdu{+M^^1f9we_IcPdV=2$^BjfCZ`m{C=4drq-8U$n zd^}>~pPcfGVCDc8P6C_&TyGDz>{67`a}sV|hx+CQUbeY9v6nF_jal7ypS!B;sP7NX z;_8-tc(owi5S)snrWw^Gnc;T5XYclY`heG|>IbB|TfIXG%o+@wQ&bpEHN|9&xJ=jp zZ9Ci;J29R>zi-VhtM@N>!e`7I&--KL4LJh*=ef$iaOLHD>dPCO;iko8+4*Uz+cABZ zhVMC+s=IT)t%sLTi)2^2??CZbcDB%FCXWGnlO+o=irhwX3}%#sBj#p=!-wvj|Hi7 z4=Z0KZN?=%#~LlWis7$z#z(^c?o(s&eE3P;4#fC=a&jWn<+vdmbc-8A{`aggq{uz{ z`4}`M{H#DIuX^-#N|3sM;+K}A7|$=o#}@GZi0mWRNOaQkuT@boQcq=bIE3arBM0>7 zpX96LEMgdSTEf;r3KCf(Ku(Ko!Vf+!1=lkL#2?+?wB?p=5#CDWOTY=mwTWOE(ccN&Z(wS29#S zd#8`g!_`@Nf1gGRwck_5bnl8tOEUC>WC#heI1@pI@IR>%I_Bim9|t)wGyC# z^O;vzh-08~`lLHG6h*TIqm#T6mW`jUo{lKnCK4J*!9oyGX$^?|Ki z@6eYmy3T0MG|btjd*cyPi=80%kKG%y@&>%s8y#M+kc`5St}X{>rVMBBD#WL&y3$5Q#aVfZW!#Wo}m53;S;kEvYN)w;d;$FWRik#@%EbUT&I zK{`fueIx-x?J4%f2~KHITICC%YQ_d=w>YUgM3at*Ez%+|6N?zep>1AK+~ty=$cRyoit=y5pj8aOiyp-z^6IS7^TN-3wsMWZv_(Tl_VmwYUV&fwYV zn)Kk`h*moT?T^kvWXB-#8>O0fgdv?aJ^n@YS8Y24UyLYQLmDN& z(oSf@H?XRisecHeL^_)=@_NeL&qOQfg7;KsEb7n~|>59r*eoUX!V=;`DI` zAvqccj1W8n{PVT#iKntwwn|G&KG(Cbcii|N9s3}yt4buTs+6FxTo|^Jx?+?i%?{hH zuIx}|5V+|IkhIovduG_G;CpWyTW}49>8-jF_icOOIpcpgf|H_2>$9=8ac+5OM^bQB z)ON8ZE^ASkiJM@^oDq`%kc_@(#1}ML^=U3O5)ti=Q5X(~L;r!&K-{VPx{Is%>7`xh z^Pt3Y(QkPZNg&|Tnt1fl>NBTJNm8dA^Rsr9+$cg>38#v=p6@Jnt$1IypiXeI85 z;%Rp|xFUD^cMHH)H7@%Ct1YjeRm!osA!CfI;hs@r{vA188gG>WcI~>5YMLekTu)Dt z(%B^n0AF8xc}XMRC?NinZq79W7WB2dWo>&tRy55*>L=s@2!_=&H#TzrgeB!wqf_E_ z=Fkere+r$X8`WT@8r_v47ftnqp}j&?Lyi>|88uC#D_S^zby;KmK*u6=P-9xP{YI?r^=pg8m?@<-Ce32*H>)#VpI?+CttZpHHv0o=`ys0nVi!iXWR`I z=0U1So)FNU`@5G4k@#xb$$^~(#XIpOg@?i&g$ILdPq0Nx3cu08Ze(n6&Cq0|Mkkoh zUNI6P+l609k`(=I8repUKKHYIoyw{!Hm<}_r-Fg(q#D<8;L$lMh(#8O68EJijXk4h zjwa|ab9zXrTGUV3wj$MVz$UP;nViUdY&w^}k_bdTV9)IYPoP=Wp~I#s-D8GF?i zO+)^)zNZR~PtO&iT*bsV>Esd=<=p?UIEf~RFzs4{uet|~ZE1A=1ok-ep3irY3p$1HK`ps@NGoIx-2B%!`ch_`= zx%ah8S!CG8N`aMFQMWs@uVR56=4j-KG)1kG^CFcA85IhFYo_dIGoRaiYKY3AtT6Q; z9M_*zlfKZ!*)1GnWz<66#k5Gd=?(_*(mBnfWtmLD;soaMtR^1_q{5>}ucz`rh0`_>vnn8*7~}HkXMArK1G-8C1B5fjhHNGujA@F>!msT);GPWcsmNW`o+?gZC zGyen&C%+<>GaO5P5)iib?-SJL-=Y+IIbm!5uJ=sO?e@Pet1#ThvLA&FQhW-eQb+WP z#`BvEe9bktBEFm#Tt_vRZ{*{x^SOn9s%%^ZTw#I?JbuNuX8 zNr%(jOEX&2rwUlxp=b(~6Kr9R<1C{pqi(a;w#KYPWbn+dbpBCR-cLp8*(@Lw&b@rP zr47aWLdiJ@Qps(_4bH`^ouLJ?x|6oI<>+Joxu1qawiGkghF`k)m*b$nKWI!^e=f z)3&DQGRyO=Bes{vBK(7vBOGpN(Cs{G&0BCe*L=+zF}Bou7yM0(}k_7!~k#Zz*0Pvo498^$rXQskLo&J_boqE3^WZnj815^ z`tba76uG0uoeH;jHLhz_GY*>GQaiq$-H~~YF$xyV6jrYup{_?LDK1!?tAOD=DlS6{ zxT8-RWkBSd`&@bZu=}aH2UojVACb#^d!8FMvnhg_Y6vXBriL^sk?@LYSA z$(rW|_wSN~asY@+iZP>h#Bg2cdZ78GZt*qR{_YYMt`H&MbiUK5Y9BFOL344WwJdL< zLl%+rwt)?5sKMhu@LxOW z`qS#N8LWDJ373iaZRmJ`Mz?w*e1bYrA?I4(;}hK72t(%)yEah}BN+asR-{%kew0bQ zm4P;kz4se)*2C#tAMQ4Hr1;wv*jx08 zi4{p{8X`s>n`G76G_Jv9W5`0Cu_&$sD{9LM98?%x@-F>YDB6|KFXHWVn{2z_!_s65 z5HFfLtI7S}D=~T{88>;)MByoOlHIOGXl92JohyC2yMq zaJrmjbY$|2eRwh@7;W@mHH35SeBB?jV1XKMkmIzwtuMa%h?WFTKSdqlIJtqtd9l#W zR@~43v|=_sZ1!WCgH>v?`r3Uw3khy`2cp)l0?OJqCs$zoF1HBDi~{^Fv%s^0(X>0w z&5}XrS~WzqIT{M)-PV}=#CCxvCGt{N76{ri#b28D9Q7L%b5 zx&A!pmA(HW^||W^I3+R+x+D3uB*<9^X9C|HX4e#biRf%>7Pzh1mOWE&<(j{H?V_|&jZgGzq@qhVvNxFf65A4Xgob2)Tp?`@-tl_x7J7>OJgo(GOYM=;sxeP}na_s0# z+So5}UF#?HdWfEMo%-7fSEo$(k6|0}t>xrF^sRgY0Z%w$syXO(-!dbNWNCBbpzlZH zY9ex-Vl!`kk-sl&kZ?eU<0XP1tr>DFn!)|mWQC59{0an&p2l{2cgI$m?7Jg0y!y+u zkqhh$6!^AAcBPTGu!lb?>4BOO?e2A%HmK! zOuS(ei6r<^O$XpFva|^xvdMC#@7}{Ukw`X(5)Eo6J>odv@p}R*fbjRXri2Jaq zoHbmKs)59A-H^HXLj}J-_gTmzKp+1Q>knV3V`@iRGF)1A=YOLFdAzyFNnsjQE0OhY zqgiO%F|b0Ia~pNO-Chjh_B&%t>%7jQF7r65E63^GSs~+TCQs#Y5*oii`f;6MY`#v$ zK^z@II8$e3Y1WQ44h6s48~WII`R^w#!-H_Q!+67vq8Iy!N3T^a$wiK_ml{uzba8pj zCm`R`Q+v`niBcnoCpYWY>kqW?9!U=yRsv5>ZSM5d#>+?40OuQ$>)~9{X;^h|nHi{V z_AyQKSI2zvE+_=bq+KVRn6?+?>{eW`895^Z%hRNrAW%Grb2e<>CKWSS!LXzvYO?4& z$=vM|BuY{<)D@(@&q|)qN>nixJ)%}`Uq#1MKY7QKCdgfz>04`Fv|nIV>2f%xOp2$g zU3xXxK}@|Uv^$Gov>P|#%bFdn_z^W`#)29uG$0$?Fb-HTV0EJnWou?_{r3L+_Emr& z;VX8>Tk=^iO3+u^A?d1*3b|Ous620Cr3vLQ*CiPI)APxi%2lvWITez!8L%}!Djy}d z`FxgxK{6)QVSaqoS48ZM)m?a^r`#iVS8IOPmzcn!8+|0UBuV*$a9P^apI~C_d@r~b z^V>jilJz&{31#pI#!|D_i)6W2T|+dzRE@bpQ@nRP_~lBYV&dRtrOZSk#e{{lHxU_e zW~A=yO$3^m8QaC=Nz+V`7%gSf*29d#+CCyx`rA-LFXFC{hLVlWW4CT_s1T8nVKS7j zU|D&h$y9)!LpX_l$V;}Cnkafh&7f}|2~{*8B_}64(~!F~nkArUa@>4?P4V;U6z)-a zrb1%=Xz58?+#!?t{>Ty1jF!cZ(h~V`iqXObnsJ#zw?BYzNqNPP00{Za93lQ?a_sJN zD2<+JLBmV0(c&v6Zmq1$aPaoBYg)Y3(a~d#uiQ|AU^)l!Y%N?t{w%xR!9iNzl{Gu* z<)}9cw0v(b(stvYZjb4q z=`90y8C~leUOB_`b}C?{PncL6EsZ3KqR#Hi#O3XO; F{{S!hC3OG* literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_3.png b/app/src/main/res/drawable-nodpi/weather_magical_3.png new file mode 100644 index 0000000000000000000000000000000000000000..47e5345c9ffd0358b1de29f09078079f36eebfdd GIT binary patch literal 14341 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_30.png b/app/src/main/res/drawable-nodpi/weather_magical_30.png new file mode 100644 index 0000000000000000000000000000000000000000..3b9e9df787cc240a787b9ac3c2139f6f6e51ae23 GIT binary patch literal 12633 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 U{!;mh0000007*qoM6N<$g2Zz&q5uE@ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_32.png b/app/src/main/res/drawable-nodpi/weather_magical_32.png new file mode 100644 index 0000000000000000000000000000000000000000..39f2007f69d679518a293d03ad340a43fea78397 GIT binary patch literal 10469 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 YDj%Iw`&)_sw0i&r8CB^TNl4KD0Ynew>Hq)$ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_33.png b/app/src/main/res/drawable-nodpi/weather_magical_33.png new file mode 100644 index 0000000000000000000000000000000000000000..a8a06d75941713e29f817ae040b2370f58e6b345 GIT binary patch literal 8773 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_37.png b/app/src/main/res/drawable-nodpi/weather_magical_37.png new file mode 100644 index 0000000000000000000000000000000000000000..ae277929c6756f90c69b2f83c96fb8e452e7d1cc GIT binary patch literal 14767 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 JPDHLkV1jgRvsnND literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_38.png b/app/src/main/res/drawable-nodpi/weather_magical_38.png new file mode 100644 index 0000000000000000000000000000000000000000..44344e4cb91a6deba3ebdf597913d70c11b6f9fe GIT binary patch literal 14502 zcmV;XI9bPuP)&5Eljy5e5zr2M_4q$^FX!<>chu-r?os;N|4x<>ch+;;{a% z0O#P(<>ch$uqm<>ch$}$V z_qqV(hh9$1LN=XVs3Ng z0-l(gC^tefHbwn|0PWC->(`_GM*#h90P4`2 zc7cV6-1+C&(1owS>Y|7n95(2~n6J;bPgi62rvT!>wa3E9?%Rw|O-%f00PD%GNl8k; z$+PLw#gCSo<>ln-!KiX^a3mx)^Em*Tvb*QEv1G{2I6F`94gy0-QlFionwOmD(8oA6 zNtd0VBN{FE2m)&m34XP?gN%@5PZS;=F+9B5`w#$~rl;)&1N%(@lhMD&$ji=s72w2j z*B=G?LIC`*0G7wvf_sAXHUs??0`~*~=F`woQD`(Y@Q{?A{ha`(Y7fc}1HZ0r=i1XD zB{!z7uBQtaiwh0>j{w*l2Uc5KmA|t5lLh!)0gpWt>BqVJg8-jT1;wVHR#a8X%gfAI z6#I7o`ep!aXj{LHiu@Mz0gkrNgq=!9J*DEG-Z5*iq+ zsZ1I;bjh~C#B^tIqyNRA7YaC-*3PP3Bs9i+iuap|Sa`tIMrzTdz>b%Vn+^*1j1&;z zsf&DqkjTcy3U0N6!qfdyrn2gh?RyjGb;c{fRjb*D(XxfN-@>MD6T2dWQ zxdap*3LPc?*Z}_E0sqhd|MCF;$pHWB0RQ>`|K$Mw!2tcZ03;qD;FAQ{h5*)h1Ho+s zlu;0_wYFI|8tI+^zte%L+>^h)WXs`s(7iI=)Fbum3)SpzOEr;&0002vbW%=J009L8 z4+tVW7cbXl$Xn{#z`bSOsnNIOgW{9>VkV+%{d9}ZXR!Un8he`wLJ$JxWH^XU{qb_n zeg3q%{F|*#Tx&|D{GO+kV*aj1kH<1x`_5pUu{cbt{)xVhiB_Gn@cxNDph#W6zpk_U z_pw2%(0Fsqr9$33c%_H?hlyX%{iDXwqy1Rzy>@h&y;)g@c<8%slBQ7R{D7sc%;o)! zbo$ZP!%^Xap7xiYc=G=5^S_YP*uib6{iVw6j5_ygYQUYI0qo3_h)1rtl>V+JyT0Mn z6WH1IzwiFI^Ze<~o!sCEA&k%f05oz*L_t(|ob8YK&eCH60=$Njql#(@t;m z{+{PqYwvv`G~sBypO0ss9KpVQ_wQNHTI*SB@9pMx&+gehyJz?8p540H*xc^fJ^SrV zJP+STjyN24We(U8amkWA^Zx^9wb_7R<8Ql%hr73@n76x!-S`hjF$`N^pgqv-ZZ;dA zI<)ctkdKd-S7>x}2rtp0US2-TM{8h3t44u#fB(CfjL+9$vy)6dULXodNl8gc%Ah49 z3BQMg0MEzU9pW8vSc0X^9ssku-KEBA!TmrL8Xc07l(BW|4%jI%`gLnYMn+0VG?ep( zU)l`S0t5VD{&#IL!BLhsQ7L9r1PgZ+l%%W3Fml6`{h2CBvDO=eI+0EVc zDKiHSjOth;;I0C5b9i{7aP2rXMhEpFy_?hq6(OaH%ky7^t;z&kH z_CWy)yqm!6?mi(&t4@uP^L%5>klwzn1PUP?4Jp{mp=|hDNJ=WPEo)m_WTUNyoZ32Z z1JF7~AbQ+AU>=^KDH-gAL^ftZ^O)qwNGKITt;3f?Uv@TXIfg(vIAyCQy@!k$LvTYT z?1-P3eekXdi#Bq@_#H#oug0Kg`6f4*1g!|lYCbQ&`tqwj_~ljnL`Rcu4I0EKG;DWj z6_M5OxJv}HQSpKs4q+;CLct1QEH6fS)!FcO`qya4hSC<(dIEBgDtu@w<~5TzpbZST49Az!on)c(8*(^`g~Yd(nyQ<&e}#68a~w zW+3xG-oWkmGc*xAgp0ihQDYKg5!i;six;OK>`hN-hgNqmM+n2s;R~O=XrkK$`SlC{DwL|vA_(-bL7_B#vx&MCo zRUDV&d~cI0B}A}Z1=v0^pb^(~XbMolb?LBpaVLQ5+DKH0 z7+qfNkWO6vcJ0~~+`9fVSc=;-^xMkU!XrScK&u(N@lZrQiB6j%mqIrERjor^=tordypl9Oj%?7 zOMTU-u z<(o`gWXu&zC2Ci{eM~i7p_MORzHxc6#^WX*TPLoyGK5+!3V1Xfg36nD8@CYVhNhP+x#a?(ZvOQ;${7o0Ds2&;ep z?)~F{R^7=oop5zmXz#zjH5o19CO~VlisDB}F`t44d12JRfde~^tl`R}INFG*k-o&$ zytXP}IbI@Qfj2hUj+rWXY z70k`y8J&PWJ-B?eBN7&I>0%^c1jR;VX|-zAsxFHO78lmNyOr!sc1B+$9}UT@M@HU= zy^yc~Hq)hfNSn>WD>d1d3IaKz7L2$Q7BopCFaUKQilrBwHr%n6vsJHND-MFa^pX{g zC1bJ}C7Hu=WcI?IQBk032ryR)X5$hD!GP7oH<<-w(NYi?F=2tdw2nlpQ>#ub z`e-A;!1WRtg8_{sV=`Zo%)`UOt_PYh<{7|pb!*tLA%R7aV6F;@4ywaaBWqJBP?2L! zhfxGZG2AFWwHQpG#9msr4rFAtjqz(YHwq1xC9W83V-&*K}(* zt0AGOETpSqz0Kwxos^97-Nd(ca(u?d4s*H?S9#@wOhxAmuwK1}YOFR)wjl1QI);Id z1Z(qBFK055jL?!(QJ3jbhM+-SxMq!D0Zj77E^|es15zVnfaUAk3WCj<)1}KO(aWSF zu(&XTs#lL*Jzy-_Q)I;T6mj+M)uv4^u$i(c$(SrTKE%u0on6tUyl~B|SrscbtVmpI zIJ@c+y=*kO0cnl|5)1=Fts*lv!Vg6-D;1r$0Y*qY*xHPSXpcT6R_Cdw;-G1p9&PaH z)kf1H;A|twKvuhUa#9G#4?6`7jYV7)m0-6W5@jwFk1mIXBqfudfU7|~1RF(yrImNa z(qI~i?KwtU@aUsY30&N|p}p{rZHTN5DJNw8Az4=;Lm8%#YHxRvOJOlt#fG!GMR7X( zw!mmq?}(lWkQC2cIBcs(^2AZ2f`qf;;rn;he-xRN6?h-;MSWmSu8!8!&T zBwQ_9w&>BaMa!1Y^%y;x$iRjbhzd%=dYNqS#SE5=&|;E-mXwm6eK5UZ-MV#6vNbH& zZG}XdkwSyZA)s2tRLlji_zdO>PNU|8MJyPf_fVFqC0h&qVY0_bu+hDGv}o~M3lmTv9&? z70!FX0)UZJicIKQv}oC5Fwh=D#%xKWHE6^BDlMxz;MqIO^cz(fcfWZyD zkhN(doiFABR9CVF@#Kla6Vp`ja-w?N1Ord!3iKi4KU%aLJP6j3SqW{>P!kNAtwSMO zR;^msYD_0&+|*eW->FekSClYhMKKB+zl!?mA{SFF>$(gUnRHkS=EU{5Sk(oi2M=mV zCWUK}}zkw`X1RKs=PhE!vW3bNTfc1a{t5B~Vs06KZXU$ciWsjlj z)=>;?A!KcOAuh(pC&OrR2&1t(vS=V{xaPKI7tm;mXJ~4?ui|1X03{`5uxYNe>$$2{ zRbX`bo$FNysu0w95dKonViov{!3HCiP>`hJMrdt@hJF0uhg->3tpc5(`EtkFch%NL z=~TjQy?k-<5L~^P%eOXRB_w5RL~Da>)F=Tnz0d+x_35flGgv*)1c3lxgE|M*b4IJc zXaK89C9($vlIQS2t@i1gId8%~B)(OQW|B?Jo*5Bv8$%Z8pLlUf@tFOZX?vK-R8ZyEny%jnJf%Mrodj<05Xo zgNY3(DJr=raFJS|>Y%k^EaG}fbD44pR?V6M#)<_6F_@4!u~q0Zc=XfcxB#nQkoD-* z%OC?AtJb!auOvf|GjMm5ax|s{Fb~g=1Wt+~7X>a!ZkSxdg$tcxal=PVFBB|*4TdWQ z)nk~T&YcJM=}cr#fQ)`LUrPlxbTG$B6U{;fG$K>p$T@>s8$h#hvNs{QiJ=$d>R=Qt zrbMo>=#0R&)u2KVXHIVk7}LDOVVtR}WVk)#Tsg%*u8D<+zSEG6{1 z%v>qK9GuyRVZDe;vebkn&CxYYswZjb(+3RYo+wwY9Ke?Ld4#M_pQTpGmO?QmW3YM^tfE1&{$XM5 ziL3i`X!a%|h@^>|OPaXM&ggKnL$KNe)}&Q~gcL4coEA+aHx#V?{f8<;KpQ=nK5THf zho2N9dB6oYCS$Ni9ul&0TCgWs+?u*}Fv-BRu74P=BKm4Cahlj9lgz$HnI${ou0vw& z1_{RS7qV=LGC&j-rlE!cWzgUr!bEYek9^~V=_@FxoLHqN?qB-QLytT}nk@xcIbO&? zA2z`Hbmr!W3i^~ESx4nK?9*P7n3K$YD`^fZ$;v{7Sa0`CofJb&`X;T6Q3uKPQt}$t zFl?wo8`NvipdRRfbZ&`Cs!wNv;V;-yNTa!)s8sF=fU!OD5Xj1v6B#L@klQ}2z!Vue z+MM@!stz)*-6b~%GMy$yYgoq5$|M|Ul)MqnWc7{I4cFM?^kI2}b7@lzoiBxs@+S{bk>%+NqQSOCR;R5rjK63xn$7$<{c8rqujo#YPNErzYM<*Gq_r!3D{C$ z)zhJzLt!~ZR*BF6xAgw|AG%+IEhWh$peW507`O&=zDFhL){$UsC{^5jdcRR~AekPr zK>oW-r3{&DPaaQUPc(4 z;}Kj{snQ2o9JnOO1F-&yiCvUrzP|A(p=FEsG#cua(7?C3;fV%U`RY0|zhGUM;%doW zNK_=5@<3Ir45});l&h?$_=k(30((T&4nf>@g?I zA~ib@J6N!`3M|+nm}CMLP-k8g8zh2>Tq=+&xtzEvStWxly@W4c0#{v3%=M8ERl~6-@;JnWOYzXxL9`E1npcVhUE?!o}B8moTefCYI)^QiZvy z5LxBQ_tRpcJ*4V34c3R6j?^*}vIXl#8@Vgwc-k{qB&R@RTo7QTR?I>3qy$V_9TqU< zh}>1dL5CV8EJz9%3054dlET8LGTZ%?O*j=yv^Vyl`nskjBd}gZ?yAj8080!WbvUwt z0YA=)jlpUanxa&S3rsH_*5@XZ@L2+<7aF(+f8r%2bfO^fi;n4hgmn*s;;;c z7`pR=6^{N?U=+&s!m6B}qU?U|* zlF=A-|M&G6HO4!~z1*>5Pgo5xx-GXj<@I2`CRhofL-#Dvq#vXNdqP~XT)967VJWw? zk`WWd9;i~~u}Tk$8EA%R+8ebql4RVe=9HX@AJk%;&b>0qdnZriTeFlgAsBlaj5J5n zI{Q?)VsS8wU@FNWJxj{iFqw{rl|Y8JQl+JpD_5%YptEKQi+?O=#huaGr#2;%S{h(& zHCU(g^z?=eXRQ&7S_8bOjv`{uhzQ_0-3qUQ2Mutj;Gv6{63pNtvYHPQnN(p$K!jZ7 zlqgIhRF748?6C(8G^c{*6dE-cyrHGeff!^?V2zqJZQ8Wrth%$r1W)uMz6ienD;RZJ z1gtiP`|FCBnQY@s0JZUm%n~)qRjOoA(HHSNMqE`inSpk{Nmfj4e3X*(Or==`P4tqx#hv# zF#>BFnKDOpFsm1j^`ciz&PEwsWwTZ`p&k?}!ybIB7@DrBA9={?jDuAUq=l0&LNPts z8Bbt5e5*#L8=71*JC0;7n=_c*CxL2r8ed78qZM65klFj)=aCS!P0%9vF#o}Sq;f&*gl zD%wUJ%}HGa3j8#SN(s;dqM1T_usE3|eyH%lwr=z~vHr03AF?NsMZy!6VhW6=`pq=3u5VL8F+`7L zZFzD4hR|tpn{&h7xri~BBD2)T#8Sn=W!3C~65Y`(WtJ8rrJ30%6W4y*RvH8(vIg-A z%uoziQL6H~K}(p1kW%4`1lBb&Y0fBe#S&r%uxc8DaU!Ff(SjnX2dY?L{-72M8KYIc zK73f3!qP2!l+!vmeB$BwWz~cXMa=NTy4nj#E&rR0PCFd#(UU~7u2jl+R*}(8G@DZv zPb4z*94%y33=D(o5A{FuU?X13QTcPDubPouyFoW7~>BQ2$D8KG{YOOD`Z9^UxR6~;WGaN zTwOUP8eHs!Tyfoe_J_kkt*T`LwhZxOxSD-)ee8JB8SH)~*#kOeW#L8HcBtEnw$n$HPVuN-d&=;Gi#@?u_>B>eayRIhFV2>|YkRx2; ziiTh+6#AE3ag`{U2L{)d@oX?5+crF{n&1#m9oDQ_I<+&T^;Ftam5rxsPg*8i7eN+(xNlk=v&*6tvjqF4 zmCeZUfDRjfEWwIP_MnqwM)a`cblU9{E|F}RIAVG_+8Gg4ag}8<3rPlNT-LQ3$mlvD z>VFJ0vyADHW@&bycCK7b#d=jQTMAflvOlWG=maK;slJQhicd4vj^wVQ*G0`mH~qs4 z`QFpAfI%`3@6d!vG_|f8UnvspQSWK@6uG6c;a9z`s zV1J>{Uy9i)e;J_nymRNyx8L3oW5K$(3|yUnbucu-)7|41X6Nt|AAJx&gi8YLvIfcV zTeog~+iIt1Ikjlf1pW-c!e2uS8#82#lksCoXtm<@HZ4xJW5=qPWGhy+y~LFbEP9lo z$1TlwrrSNdeL@l@?PXWg5eaOj#U#fRx7xJSrXT)GjQrKv%#~=3+A$>>AD}_kuGRFx zFDkAL+1cax{s|BJElm`oJ3fdE5u}=uOu_9X_vFHNr);nJ>&1VVSX3CmwPKtXb9vn2 zgBBE7G|2W|w4$;7Lw)~)K5Y8WTd<4PUo9vXoqiXt4WyShKT^|it8*6ZOcqK{BXXwV z1M=xyREsN2?dhV)XTgGu4Zzi@6TmRa;$GHC9>pX>G4uBH;s-75y;zb7p!vtGGAg8E zG^TyCm*fIhr%q6e9r4!hl;Ee4y3C z)-+?$_(4m1zxl>mvMyRZ$m&P8ESRRWvV8;l?6c1zCz26Zv-E*zAeL={n0|1QF>c1S z8Ik#TMT6|K&%XJl8hvD;k7577W!<~?;@)pA?ltTm^sgn@KX}>eZ2CWo?HN#?z4zWp z!6L3^O&hN1DbH~&{rIz^7#N(E9*Td;fWl&Xk@m zNI(h7PQLfvze_f3@ZM)96B1JS@rz_wxx_X1?`N(ALooE3@2fj&O%#*ej@iT=-94u) zS-F4Hzpl4Un>PKMk3K1W(y|7VA`>QxWp6n7-hOPcsigI>!O7Ir5L)PIh0!5!hZ6RV zb+PKnlgm?60oF)*&G*4((H&&BM`mMp^kA?}*U0{P?Vrl7UDHP=u!MxjufP5}L6!1O zop#TVbEQqL-vB2oOwpmCUZLaERkN=9uWPjG{{1UYV$Bt)*{auk-+czzZQhb351}48 zf8N|p>bT$XqE7YNzZeX~fWhLEn5t2uPP^$`%`-JN_}8^f`&Z65nQCBp`FO1$Fk@YF z-?Zw<;L(!lkw5TT_z?aeEs#& zqhBWhifqGfK36(V>-zsR&Q`F93t%(m7GKv`b@>WfEqWZ0HNDR;4j}=z<&O090tmK! z>gKF(v%dY#VuA+2Rw8UAoc;Rf>#rX@o52Z*W*cU#+^T3axQUM zR#odxUAbh%xKLg(^x)!j3)p=sINthQ-ZpxC!IZJ{=5AS^nfYC2EG!&LtU7!a3$T0Q z#Is)?dL3YgGI-po*@YQ%r(V-%8q141-7RxxEZ1l2LtLIC$F8Jx)tbh>vt(7i0FZUc z{0sX^APc-zG@IQ&AOfBU!7_mrZn4u>2 zIC@by&J$NPJ0dOEL3x>*4mXb zHZ0z_c;i8_3l~f6Sic~|e z5h!Jy(#aDyQ(5E<^3?`(wws47Sw7B7bGf_Q9RVZ94ufE_bKW;rhHkOYb~m->7cWjv z@7Azk)292)CBBTM$~-T7(0OA9~nq0V5|5+ngD0UIVpnT(cP)sOC@uD~w|nF+wxR zN)`5=l`;bnPqWhd~`VLWiEZK31LPWo`I1cI^x* zFb6(3bo624Ml7oUw`XqLbJ<7>xa?xkN)87AuHGON6(&I$ydVZLSU2FwG?T_flN6f zMz#D$j@?cdL9crW3oLxgFcGYorHN?a((_h?tRsj0GR1wg6$2v1&cmS#)uAu3;m`cc zwH&#f1bY_C@k5`Vp({~rgUf~Mhs{`$y>a8lkWl4_=m7@66F0{?t&8tp6HEmUncu-= z6dcP6Mnx>vnTxCl5e|+B!H!y}o_+rL42E(x}wlMy*ez^Z7>?|^ACx3Z80QU$u+dgxsGD#*{Gh{%z{iUq-rk3V&O z(|2?wWP@DeLa=vr$~gOhq?#a@e*}A?u`aKidwIQ%9F496Gs;(8%e1#yGGJSJGOQ`V z-Z*qF+ogis@M4Y#CbH+BJwAT?qUPtnH^D*uFVj zuS+ZAhqT>o3H8pNXej11>rH}VS<(e4-NQD=YQfZL78K+cb411U?6VMT{Fn*N&xOmC z$dyeBE+N#jcXi4*bo9^%???&bV86bo*v<=;wh}scifl!maw&EnH#;g?XT8xg)1o?- zAz?s;Ks?brbU{IG?v+cK!?a*ls%O~~7mayi$hj{I&2ud%xN=E**J0FoM^7v~&B=F( zxEyYI-2(o}oN5s)eeuDW17S3Kl$?%c%id?`WzJLV#!r&;FJ;To2=?Zo#fqc}5&gjl z7R=y+V5F*(BH(T6dmzr3lry7OZKrbPV#*1ZJA) z8x6xVwr41oADPoz1V0@N&d6(C-BeGx?xlFMCzH#o$d}D(vR}AkW z!Cq&{=ruNe9PA67cAkrBe2Ezn(+7^^3FkENJVNsg)Ee?536;@g;8M4*j;LU79{LJh zREZoA43WbL?D+9%t9O0@u#et?WU>J)*Ah9nQF-XVI|z!(9STh@tXqio%<^mvR<~PJ zgde(2uz-L7=8K3>0(Kl&+)5c7ZBn||k|(M|(^*2W&D56if?!7tsuy@UK4A6gMPI!2 z(SQH@(YY@#>kSHuHk*-ydjZd%Son#Zf<3zfgVDOm8J4fe?xY)uv!eKkD`bK6VmaX> zK*pQdaVFV7Du?*9W2w9m`|`&%CBgFL&~%=8SK%yZOL=)6_~3-0mvHSFaD4SnfPMe{ ze?J=Y)=#=C&5K=29R@2{PYot;Fgr=8^rHtM z_Z-<#_-3L!mLfJvvt!=oBEu1xE3Zf#kxH0_iay5&kSBie5x~Cx=&heF@dkMX;b!DG zO1)9)3P3UsKkC7qX^u$36q1~z<@J5pLjHvPJ8AtKNVe1Po z8@_^LUzNz=MImvI=3=ZD_PjD+!0Nw}V6gxG@a4~PviU}vL%5ji=m!f=BQT*Bv+n## z=2W_9Lj6l1i(gc@8-Ze2==^p0+XF9!B!|Rs*Kk}{n~S=L_y`Be7nxC zf>E$vn`svAJih+yi10)f>;;pI1RKC$KN8sYC}eaY3N398(hK&wkgb3x#^&p*mY0{8 zOV=QK#flZnH*`{sDUKecncilUz`$Rtq>-@;;P#Z|&{wZs$`VIZo@mkQ-FL+kzxaU# z`|QL}@RxAN~g#`Nniv7rBKm7uQw`_+ecG@s8{?O48 zBdla6K3_Rky8~afD_q@S-Q5DlWL(Hx3C2Zi3hEi|RS{TTo`en+6In24E&(Gq1lRw5 zB(STj*oN%o38r8pj#K**UF|b-GdVD+o#%y92Io4kC>K5wSiqk_SFh$3 zZkCL|ffLU@JNsEDFxaPm{o>0XST6$mA@}N4ZcZ&(o_f|I7?E*@bU%V3H43k^N7=e&!8G zWXh?IkkBz=+KA)Fxf{S_m$)q@JI{?JvJIW|I3IOWsET&!o5|>nq$B4~o;OvFt-(-< zez$h_@>D8fdtT6FN-#+F)mMKzN1FYQ!Dy3T^0WSa5`v8%G2WC6HUeGkGw2gtmU^6b zUJ$;S$;?h>#bPy?OVIp5Hg?{y&Ec1>n8)U$&p3G&Wo-6r)~wD8b!H1#JAN|J-yj;m z{-?m;V&9(Maccbd@vk%6v=P(BlTDijXIzO)-6iGbWWN-yU&~~RsgudKE7DL{pljb4 zjWMK%DPt!OTbp?)&p0$RD=7T-{O51)+_Q(c07s74t{t$5jmZASWZxs+V{M%6mlK8{ zV*nWCimUPK>JihX9sL|+Q?o8x_Wnyg7qksJ_13iFnkbip@l&wL9oJ^%8-meE6cnC2 ze`@E>J$+}BXmw^Y7^A_M?A(_>DzK}0zx@2x8y|i2#v&qvW>Ad5ror9@8H#aX!Bu1D z1(##l9Z9ovh*r@BkI%h>&HR{t{eta26y}$MEhPT zmY4ezcVyle!U(VB9=;d4rm)7Ot#q5oxM$+`gbZ*3ycQmrp8|3;v!(VmjU(`feBd-frYi}-)1FeYz%Q{=Bm<*eHY~Bub0|vaU%?lHEr0< z)is$(7BO~MEP<(G7vx_0>D;-$eoSCM>zk946J}!ZgBpDKG^q$o=yCc^0hi?BUGSj-H%G4^IoD zm(ZjonqWUGE(o?$VNKIm=)es?D}UZxc67aSPC_a$%9m1__fEWem=#+ap63Mi?fLT} z*zmp#mLm^^3kz${@7B>^c^oum%k1djj1TwRa93Dr;;g)=(9)I|Npw z!06b>uU|X!x#B_z%MmP45f;5ONWgyj+3>{g|Fmf5&Yg;jcnq8E1V-s|CD>vSES-i^ zB3%FKVd|M8PqwxYhenU=ia1O7S^)zW36|47C#*d^T@PH<%a?E5Sb^nU`Q_&ynCqi2 z{tB?2PI|GuJNrb&jJb5#)V?YAvxEf`S0u%v?!X&*8Em8ljB@t~TPKrF5Z3U%+lZ?@ zVH6%h=10tmK8felz~>h#5Lh_-Auie# z+BZ_c+1c6^1uELUTbt2Mwjo%=aYgNa}S_R8v43~Mvs zm3L>SiDJBWIKyShf`uX*oXuQ3o+4GWi+h`DXrfR;78-Jwjrjs6MiCge=q-hc2@AdH z@51>_-{$7!QtbHt`?o}}zDy?8>yK3po zhG0DTG-9NX4J5FhelBh<0*vyDn+tPgf`^gg#<4**Dmd8r6}$BI;QGf>&g`d4aY_1Z z)Lh;p-GDb${-E7U_#rL@#(P&G(U=}rgUALF7ZtLAI|_EGXp4DlpM?h&b}^9nWy1Vg zxvSRY%sFm%2Nc3yM!O`DCbbvxZ16~WL3 z1K7X9>8jFXs8FpMS@;n4Z!vGtV0(?n){3HfWs7QXWdja6px zJiXZS=ie5vzQbpyrJ;jEP?A7MOQUy%R^Rsd`D@`cKQ4UjWa~wvTb*qNSx4?gyA+J) zL~Jfna}Gr?A3aCZe)^Ml$R9;)=vK_3!!f~F+(2jK~1a`g^%i-a1`V+R(r|BJ$4uBz5c$wxbOTUe~ zq{Hbk<^4!9>T0*w&F0|4XZB+dt`LIF5B2gfL!v{U0F5BPY=7z>SgB9i%X04rU zgnDm%Z1r-((_|ierzg*^1Q< zTdw;#^&5Bj{LIwMA`#5T$Hx*9-JHlq0?ehaA~(SJ`iFX1u4zfP?b>9v!S<=Km&4Z& z8#@J^00s-LUS7RaS-p=PT-0J|-DUYofXTW(Y{dj4qj#U)_MMqG0?S-GPdkedIc^4) zPaA~#cu5XnILE+X@kQ#Gw&vbj{bO?g7F&d{G~dhThC8R**!=Dg7_RALbxqZ@`4aCR zH^4HBSOiZW?rH}I2lGqh6Z`F>L_)tr-6uG9fWRm$O+n++$E?GgubPc!7TNCrSXOM- z+IiMOaHGe~3m69FGf9MzI9W(GXE?nxn!tkl?Xz+{^CG~uZ;^F9J$-y`ymMQiJ2OVHt^FMcyi~4eDB3By9_Yu;GFhDpqX22=k`0#MPT+CX!*^Z zJSDfsRBJQB>qU2}Q-7F-H! z9$i!Gp>OOf1cvSyZD3bh$m5oz+XlD;)Grme(3z_-W%A_W>$?30CJm&?Vw+9&_UEEstB0=S-YtGUED#x;PHLKW*&T`4Iv1AS|)pq=eD!!T_5;cK*l!r_=m3 zFl^w*Po|M`<@*e!*QR=;{Av=8OjG7#T@Q!3?r$O(D;6U2EL*ML@5*SVvg4yKp zElM!ywjDV_4|U-yqrpZ_!Mf^EFYX?{Q3>NS4WLe5fZcLv+s!Y9KTa0I`~)WE6lpfD zLzm(emNx$Y8X9pp_=!8%;AYOI&5Eljy5e5zr2M_4q$^FX!<>chu-r?os;N|4x<>ch+;;{a% z0O#P(<>ch$uqm<>ch$}$V z_qqV(hh9$1LN=XVs3Ng z0-l(gC^tefHbwn|0PWC->(`_GM*#h90P4`2 zc7cV6-1+C&(1owS>Y|7n95(2~n6J;bPgi62rvT!>wa3E9?%Rw|O-%f00PD%GNl8k; z$+PLw#gCSo<>ln-!KiX^a3mx)^Em*Tvb*QEv1G{2I6F`94gy0-QlFionwOmD(8oA6 zNtd0VBN{FE2m)&m34XP?gN%@5PZS;=F+9B5`w#$~rl;)&1N%(@lhMD&$ji=s72w2j z*B=G?LIC`*0G7wvf_sAXHUs??0`~*~=F`woQD`(Y@Q{?A{ha`(Y7fc}1HZ0r=i1XD zB{!z7uBQtaiwh0>j{w*l2Uc5KmA|t5lLh!)0gpWt>BqVJg8-jT1;wVHR#a8X%gfAI z6#I7o`ep!aXj{LHiu@Mz0gkrNgq=!9J*DEG-Z5*iq+ zsZ1I;bjh~C#B^tIqyNRA7YaC-*3PP3Bs9i+iuap|Sa`tIMrzTdz>b%Vn+^*1j1&;z zsf&DqkjTcy3U0N6!qfdyrn2gh?RyjGb;c{fRjb*D(XxfN-@>MD6T2dWQ zxdap*3LPc?*Z}_E0sqhd|MCF;$pHWB0RQ>`|K$Mw!2tcZ03;qD;FAQ{h5*)h1Ho+s zlu;0_wYFI|8tI+^zte%L+>^h)WXs`s(7iI=)Fbum3)SpzOEr;&0002vbW%=J009L8 z4+tVW7cbXl$Xn{#z`bSOsnNIOgW{9>VkV+%{d9}ZXR!Un8he`wLJ$JxWH^XU{qb_n zeg3q%{F|*#Tx&|D{GO+kV*aj1kH<1x`_5pUu{cbt{)xVhiB_Gn@cxNDph#W6zpk_U z_pw2%(0Fsqr9$33c%_H?hlyX%{iDXwqy1Rzy>@h&y;)g@c<8%slBQ7R{D7sc%;o)! zbo$ZP!%^Xap7xiYc=G=5^S_YP*uib6{iVw6j5_ygYQUYI0qo3_h)1rtl>V+JyT0Mn z6WH1IzwiFI^Ze<~o!sCEA&k%f05oz*L_t(|ob8YK&eCH60=$Njql#(@t;m z{+{PqYwvv`G~sBypO0ss9KpVQ_wQNHTI*SB@9pMx&+gehyJz?8p540H*xc^fJ^SrV zJP+STjyN24We(U8amkWA^Zx^9wb_7R<8Ql%hr73@n76x!-S`hjF$`N^pgqv-ZZ;dA zI<)ctkdKd-S7>x}2rtp0US2-TM{8h3t44u#fB(CfjL+9$vy)6dULXodNl8gc%Ah49 z3BQMg0MEzU9pW8vSc0X^9ssku-KEBA!TmrL8Xc07l(BW|4%jI%`gLnYMn+0VG?ep( zU)l`S0t5VD{&#IL!BLhsQ7L9r1PgZ+l%%W3Fml6`{h2CBvDO=eI+0EVc zDKiHSjOth;;I0C5b9i{7aP2rXMhEpFy_?hq6(OaH%ky7^t;z&kH z_CWy)yqm!6?mi(&t4@uP^L%5>klwzn1PUP?4Jp{mp=|hDNJ=WPEo)m_WTUNyoZ32Z z1JF7~AbQ+AU>=^KDH-gAL^ftZ^O)qwNGKITt;3f?Uv@TXIfg(vIAyCQy@!k$LvTYT z?1-P3eekXdi#Bq@_#H#oug0Kg`6f4*1g!|lYCbQ&`tqwj_~ljnL`Rcu4I0EKG;DWj z6_M5OxJv}HQSpKs4q+;CLct1QEH6fS)!FcO`qya4hSC<(dIEBgDtu@w<~5TzpbZST49Az!on)c(8*(^`g~Yd(nyQ<&e}#68a~w zW+3xG-oWkmGc*xAgp0ihQDYKg5!i;six;OK>`hN-hgNqmM+n2s;R~O=XrkK$`SlC{DwL|vA_(-bL7_B#vx&MCo zRUDV&d~cI0B}A}Z1=v0^pb^(~XbMolb?LBpaVLQ5+DKH0 z7+qfNkWO6vcJ0~~+`9fVSc=;-^xMkU!XrScK&u(N@lZrQiB6j%mqIrERjor^=tordypl9Oj%?7 zOMTU-u z<(o`gWXu&zC2Ci{eM~i7p_MORzHxc6#^WX*TPLoyGK5+!3V1Xfg36nD8@CYVhNhP+x#a?(ZvOQ;${7o0Ds2&;ep z?)~F{R^7=oop5zmXz#zjH5o19CO~VlisDB}F`t44d12JRfde~^tl`R}INFG*k-o&$ zytXP}IbI@Qfj2hUj+rWXY z70k`y8J&PWJ-B?eBN7&I>0%^c1jR;VX|-zAsxFHO78lmNyOr!sc1B+$9}UT@M@HU= zy^yc~Hq)hfNSn>WD>d1d3IaKz7L2$Q7BopCFaUKQilrBwHr%n6vsJHND-MFa^pX{g zC1bJ}C7Hu=WcI?IQBk032ryR)X5$hD!GP7oH<<-w(NYi?F=2tdw2nlpQ>#ub z`e-A;!1WRtg8_{sV=`Zo%)`UOt_PYh<{7|pb!*tLA%R7aV6F;@4ywaaBWqJBP?2L! zhfxGZG2AFWwHQpG#9msr4rFAtjqz(YHwq1xC9W83V-&*K}(* zt0AGOETpSqz0Kwxos^97-Nd(ca(u?d4s*H?S9#@wOhxAmuwK1}YOFR)wjl1QI);Id z1Z(qBFK055jL?!(QJ3jbhM+-SxMq!D0Zj77E^|es15zVnfaUAk3WCj<)1}KO(aWSF zu(&XTs#lL*Jzy-_Q)I;T6mj+M)uv4^u$i(c$(SrTKE%u0on6tUyl~B|SrscbtVmpI zIJ@c+y=*kO0cnl|5)1=Fts*lv!Vg6-D;1r$0Y*qY*xHPSXpcT6R_Cdw;-G1p9&PaH z)kf1H;A|twKvuhUa#9G#4?6`7jYV7)m0-6W5@jwFk1mIXBqfudfU7|~1RF(yrImNa z(qI~i?KwtU@aUsY30&N|p}p{rZHTN5DJNw8Az4=;Lm8%#YHxRvOJOlt#fG!GMR7X( zw!mmq?}(lWkQC2cIBcs(^2AZ2f`qf;;rn;he-xRN6?h-;MSWmSu8!8!&T zBwQ_9w&>BaMa!1Y^%y;x$iRjbhzd%=dYNqS#SE5=&|;E-mXwm6eK5UZ-MV#6vNbH& zZG}XdkwSyZA)s2tRLlji_zdO>PNU|8MJyPf_fVFqC0h&qVY0_bu+hDGv}o~M3lmTv9&? z70!FX0)UZJicIKQv}oC5Fwh=D#%xKWHE6^BDlMxz;MqIO^cz(fcfWZyD zkhN(doiFABR9CVF@#Kla6Vp`ja-w?N1Ord!3iKi4KU%aLJP6j3SqW{>P!kNAtwSMO zR;^msYD_0&+|*eW->FekSClYhMKKB+zl!?mA{SFF>$(gUnRHkS=EU{5Sk(oi2M=mV zCWUK}}zkw`X1RKs=PhE!vW3bNTfc1a{t5B~Vs06KZXU$ciWsjlj z)=>;?A!KcOAuh(pC&OrR2&1t(vS=V{xaPKI7tm;mXJ~4?ui|1X03{`5uxYNe>$$2{ zRbX`bo$FNysu0w95dKonViov{!3HCiP>`hJMrdt@hJF0uhg->3tpc5(`EtkFch%NL z=~TjQy?k-<5L~^P%eOXRB_w5RL~Da>)F=Tnz0d+x_35flGgv*)1c3lxgE|M*b4IJc zXaK89C9($vlIQS2t@i1gId8%~B)(OQW|B?Jo*5Bv8$%Z8pLlUf@tFOZX?vK-R8ZyEny%jnJf%Mrodj<05Xo zgNY3(DJr=raFJS|>Y%k^EaG}fbD44pR?V6M#)<_6F_@4!u~q0Zc=XfcxB#nQkoD-* z%OC?AtJb!auOvf|GjMm5ax|s{Fb~g=1Wt+~7X>a!ZkSxdg$tcxal=PVFBB|*4TdWQ z)nk~T&YcJM=}cr#fQ)`LUrPlxbTG$B6U{;fG$K>p$T@>s8$h#hvNs{QiJ=$d>R=Qt zrbMo>=#0R&)u2KVXHIVk7}LDOVVtR}WVk)#Tsg%*u8D<+zSEG6{1 z%v>qK9GuyRVZDe;vebkn&CxYYswZjb(+3RYo+wwY9Ke?Ld4#M_pQTpGmO?QmW3YM^tfE1&{$XM5 ziL3i`X!a%|h@^>|OPaXM&ggKnL$KNe)}&Q~gcL4coEA+aHx#V?{f8<;KpQ=nK5THf zho2N9dB6oYCS$Ni9ul&0TCgWs+?u*}Fv-BRu74P=BKm4Cahlj9lgz$HnI${ou0vw& z1_{RS7qV=LGC&j-rlE!cWzgUr!bEYek9^~V=_@FxoLHqN?qB-QLytT}nk@xcIbO&? zA2z`Hbmr!W3i^~ESx4nK?9*P7n3K$YD`^fZ$;v{7Sa0`CofJb&`X;T6Q3uKPQt}$t zFl?wo8`NvipdRRfbZ&`Cs!wNv;V;-yNTa!)s8sF=fU!OD5Xj1v6B#L@klQ}2z!Vue z+MM@!stz)*-6b~%GMy$yYgoq5$|M|Ul)MqnWc7{I4cFM?^kI2}b7@lzoiBxs@+S{bk>%+NqQSOCR;R5rjK63xn$7$<{c8rqujo#YPNErzYM<*Gq_r!3D{C$ z)zhJzLt!~ZR*BF6xAgw|AG%+IEhWh$peW507`O&=zDFhL){$UsC{^5jdcRR~AekPr zK>oW-r3{&DPaaQUPc(4 z;}Kj{snQ2o9JnOO1F-&yiCvUrzP|A(p=FEsG#cua(7?C3;fV%U`RY0|zhGUM;%doW zNK_=5@<3Ir45});l&h?$_=k(30((T&4nf>@g?I zA~ib@J6N!`3M|+nm}CMLP-k8g8zh2>Tq=+&xtzEvStWxly@W4c0#{v3%=M8ERl~6-@;JnWOYzXxL9`E1npcVhUE?!o}B8moTefCYI)^QiZvy z5LxBQ_tRpcJ*4V34c3R6j?^*}vIXl#8@Vgwc-k{qB&R@RTo7QTR?I>3qy$V_9TqU< zh}>1dL5CV8EJz9%3054dlET8LGTZ%?O*j=yv^Vyl`nskjBd}gZ?yAj8080!WbvUwt z0YA=)jlpUanxa&S3rsH_*5@XZ@L2+<7aF(+f8r%2bfO^fi;n4hgmn*s;;;c z7`pR=6^{N?U=+&s!m6B}qU?U|* zlF=A-|M&G6HO4!~z1*>5Pgo5xx-GXj<@I2`CRhofL-#Dvq#vXNdqP~XT)967VJWw? zk`WWd9;i~~u}Tk$8EA%R+8ebql4RVe=9HX@AJk%;&b>0qdnZriTeFlgAsBlaj5J5n zI{Q?)VsS8wU@FNWJxj{iFqw{rl|Y8JQl+JpD_5%YptEKQi+?O=#huaGr#2;%S{h(& zHCU(g^z?=eXRQ&7S_8bOjv`{uhzQ_0-3qUQ2Mutj;Gv6{63pNtvYHPQnN(p$K!jZ7 zlqgIhRF748?6C(8G^c{*6dE-cyrHGeff!^?V2zqJZQ8Wrth%$r1W)uMz6ienD;RZJ z1gtiP`|FCBnQY@s0JZUm%n~)qRjOoA(HHSNMqE`inSpk{Nmfj4e3X*(Or==`P4tqx#hv# zF#>BFnKDOpFsm1j^`ciz&PEwsWwTZ`p&k?}!ybIB7@DrBA9={?jDuAUq=l0&LNPts z8Bbt5e5*#L8=71*JC0;7n=_c*CxL2r8ed78qZM65klFj)=aCS!P0%9vF#o}Sq;f&*gl zD%wUJ%}HGa3j8#SN(s;dqM1T_usE3|eyH%lwr=z~vHr03AF?NsMZy!6VhW6=`pq=3u5VL8F+`7L zZFzD4hR|tpn{&h7xri~BBD2)T#8Sn=W!3C~65Y`(WtJ8rrJ30%6W4y*RvH8(vIg-A z%uoziQL6H~K}(p1kW%4`1lBb&Y0fBe#S&r%uxc8DaU!Ff(SjnX2dY?L{-72M8KYIc zK73f3!qP2!l+!vmeB$BwWz~cXMa=NTy4nj#E&rR0PCFd#(UU~7u2jl+R*}(8G@DZv zPb4z*94%y33=D(o5A{FuU?X13QTcPDubPouyFoW7~>BQ2$D8KG{YOOD`Z9^UxR6~;WGaN zTwOUP8eHs!Tyfoe_J_kkt*T`LwhZxOxSD-)ee8JB8SH)~*#kOeW#L8HcBtEnw$n$HPVuN-d&=;Gi#@?u_>B>eayRIhFV2>|YkRx2; ziiTh+6#AE3ag`{U2L{)d@oX?5+crF{n&1#m9oDQ_I<+&T^;Ftam5rxsPg*8i7eN+(xNlk=v&*6tvjqF4 zmCeZUfDRjfEWwIP_MnqwM)a`cblU9{E|F}RIAVG_+8Gg4ag}8<3rPlNT-LQ3$mlvD z>VFJ0vyADHW@&bycCK7b#d=jQTMAflvOlWG=maK;slJQhicd4vj^wVQ*G0`mH~qs4 z`QFpAfI%`3@6d!vG_|f8UnvspQSWK@6uG6c;a9z`s zV1J>{Uy9i)e;J_nymRNyx8L3oW5K$(3|yUnbucu-)7|41X6Nt|AAJx&gi8YLvIfcV zTeog~+iIt1Ikjlf1pW-c!e2uS8#82#lksCoXtm<@HZ4xJW5=qPWGhy+y~LFbEP9lo z$1TlwrrSNdeL@l@?PXWg5eaOj#U#fRx7xJSrXT)GjQrKv%#~=3+A$>>AD}_kuGRFx zFDkAL+1cax{s|BJElm`oJ3fdE5u}=uOu_9X_vFHNr);nJ>&1VVSX3CmwPKtXb9vn2 zgBBE7G|2W|w4$;7Lw)~)K5Y8WTd<4PUo9vXoqiXt4WyShKT^|it8*6ZOcqK{BXXwV z1M=xyREsN2?dhV)XTgGu4Zzi@6TmRa;$GHC9>pX>G4uBH;s-75y;zb7p!vtGGAg8E zG^TyCm*fIhr%q6e9r4!hl;Ee4y3C z)-+?$_(4m1zxl>mvMyRZ$m&P8ESRRWvV8;l?6c1zCz26Zv-E*zAeL={n0|1QF>c1S z8Ik#TMT6|K&%XJl8hvD;k7577W!<~?;@)pA?ltTm^sgn@KX}>eZ2CWo?HN#?z4zWp z!6L3^O&hN1DbH~&{rIz^7#N(E9*Td;fWl&Xk@m zNI(h7PQLfvze_f3@ZM)96B1JS@rz_wxx_X1?`N(ALooE3@2fj&O%#*ej@iT=-94u) zS-F4Hzpl4Un>PKMk3K1W(y|7VA`>QxWp6n7-hOPcsigI>!O7Ir5L)PIh0!5!hZ6RV zb+PKnlgm?60oF)*&G*4((H&&BM`mMp^kA?}*U0{P?Vrl7UDHP=u!MxjufP5}L6!1O zop#TVbEQqL-vB2oOwpmCUZLaERkN=9uWPjG{{1UYV$Bt)*{auk-+czzZQhb351}48 zf8N|p>bT$XqE7YNzZeX~fWhLEn5t2uPP^$`%`-JN_}8^f`&Z65nQCBp`FO1$Fk@YF z-?Zw<;L(!lkw5TT_z?aeEs#& zqhBWhifqGfK36(V>-zsR&Q`F93t%(m7GKv`b@>WfEqWZ0HNDR;4j}=z<&O090tmK! z>gKF(v%dY#VuA+2Rw8UAoc;Rf>#rX@o52Z*W*cU#+^T3axQUM zR#odxUAbh%xKLg(^x)!j3)p=sINthQ-ZpxC!IZJ{=5AS^nfYC2EG!&LtU7!a3$T0Q z#Is)?dL3YgGI-po*@YQ%r(V-%8q141-7RxxEZ1l2LtLIC$F8Jx)tbh>vt(7i0FZUc z{0sX^APc-zG@IQ&AOfBU!7_mrZn4u>2 zIC@by&J$NPJ0dOEL3x>*4mXb zHZ0z_c;i8_3l~f6Sic~|e z5h!Jy(#aDyQ(5E<^3?`(wws47Sw7B7bGf_Q9RVZ94ufE_bKW;rhHkOYb~m->7cWjv z@7Azk)292)CBBTM$~-T7(0OA9~nq0V5|5+ngD0UIVpnT(cP)sOC@uD~w|nF+wxR zN)`5=l`;bnPqWhd~`VLWiEZK31LPWo`I1cI^x* zFb6(3bo624Ml7oUw`XqLbJ<7>xa?xkN)87AuHGON6(&I$ydVZLSU2FwG?T_flN6f zMz#D$j@?cdL9crW3oLxgFcGYorHN?a((_h?tRsj0GR1wg6$2v1&cmS#)uAu3;m`cc zwH&#f1bY_C@k5`Vp({~rgUf~Mhs{`$y>a8lkWl4_=m7@66F0{?t&8tp6HEmUncu-= z6dcP6Mnx>vnTxCl5e|+B!H!y}o_+rL42E(x}wlMy*ez^Z7>?|^ACx3Z80QU$u+dgxsGD#*{Gh{%z{iUq-rk3V&O z(|2?wWP@DeLa=vr$~gOhq?#a@e*}A?u`aKidwIQ%9F496Gs;(8%e1#yGGJSJGOQ`V z-Z*qF+ogis@M4Y#CbH+BJwAT?qUPtnH^D*uFVj zuS+ZAhqT>o3H8pNXej11>rH}VS<(e4-NQD=YQfZL78K+cb411U?6VMT{Fn*N&xOmC z$dyeBE+N#jcXi4*bo9^%???&bV86bo*v<=;wh}scifl!maw&EnH#;g?XT8xg)1o?- zAz?s;Ks?brbU{IG?v+cK!?a*ls%O~~7mayi$hj{I&2ud%xN=E**J0FoM^7v~&B=F( zxEyYI-2(o}oN5s)eeuDW17S3Kl$?%c%id?`WzJLV#!r&;FJ;To2=?Zo#fqc}5&gjl z7R=y+V5F*(BH(T6dmzr3lry7OZKrbPV#*1ZJA) z8x6xVwr41oADPoz1V0@N&d6(C-BeGx?xlFMCzH#o$d}D(vR}AkW z!Cq&{=ruNe9PA67cAkrBe2Ezn(+7^^3FkENJVNsg)Ee?536;@g;8M4*j;LU79{LJh zREZoA43WbL?D+9%t9O0@u#et?WU>J)*Ah9nQF-XVI|z!(9STh@tXqio%<^mvR<~PJ zgde(2uz-L7=8K3>0(Kl&+)5c7ZBn||k|(M|(^*2W&D56if?!7tsuy@UK4A6gMPI!2 z(SQH@(YY@#>kSHuHk*-ydjZd%Son#Zf<3zfgVDOm8J4fe?xY)uv!eKkD`bK6VmaX> zK*pQdaVFV7Du?*9W2w9m`|`&%CBgFL&~%=8SK%yZOL=)6_~3-0mvHSFaD4SnfPMe{ ze?J=Y)=#=C&5K=29R@2{PYot;Fgr=8^rHtM z_Z-<#_-3L!mLfJvvt!=oBEu1xE3Zf#kxH0_iay5&kSBie5x~Cx=&heF@dkMX;b!DG zO1)9)3P3UsKkC7qX^u$36q1~z<@J5pLjHvPJ8AtKNVe1Po z8@_^LUzNz=MImvI=3=ZD_PjD+!0Nw}V6gxG@a4~PviU}vL%5ji=m!f=BQT*Bv+n## z=2W_9Lj6l1i(gc@8-Ze2==^p0+XF9!B!|Rs*Kk}{n~S=L_y`Be7nxC zf>E$vn`svAJih+yi10)f>;;pI1RKC$KN8sYC}eaY3N398(hK&wkgb3x#^&p*mY0{8 zOV=QK#flZnH*`{sDUKecncilUz`$Rtq>-@;;P#Z|&{wZs$`VIZo@mkQ-FL+kzxaU# z`|QL}@RxAN~g#`Nniv7rBKm7uQw`_+ecG@s8{?O48 zBdla6K3_Rky8~afD_q@S-Q5DlWL(Hx3C2Zi3hEi|RS{TTo`en+6In24E&(Gq1lRw5 zB(STj*oN%o38r8pj#K**UF|b-GdVD+o#%y92Io4kC>K5wSiqk_SFh$3 zZkCL|ffLU@JNsEDFxaPm{o>0XST6$mA@}N4ZcZ&(o_f|I7?E*@bU%V3H43k^N7=e&!8G zWXh?IkkBz=+KA)Fxf{S_m$)q@JI{?JvJIW|I3IOWsET&!o5|>nq$B4~o;OvFt-(-< zez$h_@>D8fdtT6FN-#+F)mMKzN1FYQ!Dy3T^0WSa5`v8%G2WC6HUeGkGw2gtmU^6b zUJ$;S$;?h>#bPy?OVIp5Hg?{y&Ec1>n8)U$&p3G&Wo-6r)~wD8b!H1#JAN|J-yj;m z{-?m;V&9(Maccbd@vk%6v=P(BlTDijXIzO)-6iGbWWN-yU&~~RsgudKE7DL{pljb4 zjWMK%DPt!OTbp?)&p0$RD=7T-{O51)+_Q(c07s74t{t$5jmZASWZxs+V{M%6mlK8{ zV*nWCimUPK>JihX9sL|+Q?o8x_Wnyg7qksJ_13iFnkbip@l&wL9oJ^%8-meE6cnC2 ze`@E>J$+}BXmw^Y7^A_M?A(_>DzK}0zx@2x8y|i2#v&qvW>Ad5ror9@8H#aX!Bu1D z1(##l9Z9ovh*r@BkI%h>&HR{t{eta26y}$MEhPT zmY4ezcVyle!U(VB9=;d4rm)7Ot#q5oxM$+`gbZ*3ycQmrp8|3;v!(VmjU(`feBd-frYi}-)1FeYz%Q{=Bm<*eHY~Bub0|vaU%?lHEr0< z)is$(7BO~MEP<(G7vx_0>D;-$eoSCM>zk946J}!ZgBpDKG^q$o=yCc^0hi?BUGSj-H%G4^IoD zm(ZjonqWUGE(o?$VNKIm=)es?D}UZxc67aSPC_a$%9m1__fEWem=#+ap63Mi?fLT} z*zmp#mLm^^3kz${@7B>^c^oum%k1djj1TwRa93Dr;;g)=(9)I|Npw z!06b>uU|X!x#B_z%MmP45f;5ONWgyj+3>{g|Fmf5&Yg;jcnq8E1V-s|CD>vSES-i^ zB3%FKVd|M8PqwxYhenU=ia1O7S^)zW36|47C#*d^T@PH<%a?E5Sb^nU`Q_&ynCqi2 z{tB?2PI|GuJNrb&jJb5#)V?YAvxEf`S0u%v?!X&*8Em8ljB@t~TPKrF5Z3U%+lZ?@ zVH6%h=10tmK8felz~>h#5Lh_-Auie# z+BZ_c+1c6^1uELUTbt2Mwjo%=aYgNa}S_R8v43~Mvs zm3L>SiDJBWIKyShf`uX*oXuQ3o+4GWi+h`DXrfR;78-Jwjrjs6MiCge=q-hc2@AdH z@51>_-{$7!QtbHt`?o}}zDy?8>yK3po zhG0DTG-9NX4J5FhelBh<0*vyDn+tPgf`^gg#<4**Dmd8r6}$BI;QGf>&g`d4aY_1Z z)Lh;p-GDb${-E7U_#rL@#(P&G(U=}rgUALF7ZtLAI|_EGXp4DlpM?h&b}^9nWy1Vg zxvSRY%sFm%2Nc3yM!O`DCbbvxZ16~WL3 z1K7X9>8jFXs8FpMS@;n4Z!vGtV0(?n){3HfWs7QXWdja6px zJiXZS=ie5vzQbpyrJ;jEP?A7MOQUy%R^Rsd`D@`cKQ4UjWa~wvTb*qNSx4?gyA+J) zL~Jfna}Gr?A3aCZe)^Ml$R9;)=vK_3!!f~F+(2jK~1a`g^%i-a1`V+R(r|BJ$4uBz5c$wxbOTUe~ zq{Hbk<^4!9>T0*w&F0|4XZB+dt`LIF5B2gfL!v{U0F5BPY=7z>SgB9i%X04rU zgnDm%Z1r-((_|ierzg*^1Q< zTdw;#^&5Bj{LIwMA`#5T$Hx*9-JHlq0?ehaA~(SJ`iFX1u4zfP?b>9v!S<=Km&4Z& z8#@J^00s-LUS7RaS-p=PT-0J|-DUYofXTW(Y{dj4qj#U)_MMqG0?S-GPdkedIc^4) zPaA~#cu5XnILE+X@kQ#Gw&vbj{bO?g7F&d{G~dhThC8R**!=Dg7_RALbxqZ@`4aCR zH^4HBSOiZW?rH}I2lGqh6Z`F>L_)tr-6uG9fWRm$O+n++$E?GgubPc!7TNCrSXOM- z+IiMOaHGe~3m69FGf9MzI9W(GXE?nxn!tkl?Xz+{^CG~uZ;^F9J$-y`ymMQiJ2OVHt^FMcyi~4eDB3By9_Yu;GFhDpqX22=k`0#MPT+CX!*^Z zJSDfsRBJQB>qU2}Q-7F-H! z9$i!Gp>OOf1cvSyZD3bh$m5oz+XlD;)Grme(3z_-W%A_W>$?30CJm&?Vw+9&_UEEstB0=S-YtGUED#x;PHLKW*&T`4Iv1AS|)pq=eD!!T_5;cK*l!r_=m3 zFl^w*Po|M`<@*e!*QR=;{Av=8OjG7#T@Q!3?r$O(D;6U2EL*ML@5*SVvg4yKp zElM!ywjDV_4|U-yqrpZ_!Mf^EFYX?{Q3>NS4WLe5fZcLv+s!Y9KTa0I`~)WE6lpfD zLzm(emNx$Y8X9pp_=!8%;AYOIloL1`yuf-rL*TIR**k<>lq& zlp%kC5f%lq&<=EKRe|>%B<>lq&<>ch#U2AU$1P|rq<>lq& z<>lq%lp=mzSQNoTK<>lPn-QwcnW^s2+TVc-5&(O}zjEs$Ze0{jMxRjKXe0+RLQ(z)7 zJm25nLP}QpvjKpDgEd1;%*@P~n3>bl)EEaBgp81LeuJy4tH8j(e}8{_dwY9(e0zI) zudlCCSZ2@e_nVoUq@<;Yl9qvjg3!>=l$@Zmv$T(umwkPGnBw-7o1e1l`JAGse20r~ zg^m^yBf`SMl9H6r>+<-B1{)vk7#{G4hlthH*8G$L(9qNUs{xjkmQj?cU14pbtF8?S z>^)HLVvwJdtGl2J{C9rn<((#mO@}PVz4riHeN9#>yWVFmZE! z@LCXEV`*b&bNrzKYHfG!1qlWO>-ifGprD~HI7s&k25O_WnxdxsX9UE=#X?D0)g2ZW z8!)P|xiB|KaC3aFJ4k(ggKvlMZ)kG6ySqhm^@)0Z@jMdIeTVk}1?*}MbZu~7Vsdf6x; z3@ll#kBy1VcZ38I9Sj^K|KtGw$^ie+0RP(n|JDHi=>Y%W0RF-N|Lp+(_W=L=0RQm- z{JH>ZcY84~w?u558)=qr|`c{;@}}%4)Z= z&GnmK`~B^lT@<~$DeU^h^8QKvz|!tmcKyA>H!m6^#o|(tvHd^E{jY=`Z+Kt){e^9x z(?|F{DpKJ4-2I=T-ToU&kzTpV@!a$uJnFsU$y|uO=vvDB**Ff@qw1cGPx#E&yrpy4 z&Cbt7lHhh}*=b^e;^%hTfPV1wQJ-h-cd3gv{;;cMk=5!#iuTA+b4std%VGTFvErG) zbCs|3gP!)upnmGGz^43>8;tIwFS!5!GtNmwK~#90?VSl+l~wx3xrkO8$_z15>I}50 zHJ~C0p^gipppuBYD6XU;qJ|hQxMhl=f{Lb6h)b?zx#iM?mF7||qhn5+P1}rs2q@Uh zH2=o`?|Ghc-uJy1Yy_cc=F@W#P~Z2y@Av$k=Q-y*=iGapoPM^S?PvShezu?OXRDOi zOmq5QF{bgb*nc^m7Kl(9JDAD$Uq*<#HGrDII@wz@HUa#vK+_tCP>sRUzkmNx{l6g_ zHEPrVW%zXz{(}ks8|Vz*b8&NZcX#*nY&FQCO6j$y?Al1QxU;@;bX@C2@)uv4wGkoahpMTDD zX|qB?0?CLEbP$i=6dQceN`R!G8}Mrh}tT1eE0s3?Em zpdb=2FfbFsMKT+^WaIxJ8u!9lt>M$AO=Ed*>oCb0!-o$aGhAhmX{L=C1J!b71&$cs zY6RedV7|USq8s@nWaDW2524wdF#oStl22w{-bCZw>KN5WI_QW@*FkIZIES0$V%9Hk{Fh zjwR8?L$qMB4y`DgFj}UdA=Z9Of8-3`e?ZLX=NAkbJ4REHSh)35OBIpogtdi$Z|SK) zS)p@o5Sj=F(UNn-9h(FbT^%Kxub_30>4)V1qxIM{AsN->$hO?9a(XkY2H7^=P*QhT2VxZTc-inLHe-v7zRftewOd&}2)|nBbd}rkl z+Kr)P+$sGB>(>MKhLQBmd(RvFSS|%ecb3A2zf)WE7REwZcgJ_7fPR(kL3|##O^oyB%fVilw zhl*SdYH6ifD{Iu+FwF+Ej6s|r*~Xfh2^BkJ>sAzMz9gD<$C^PyHiTSOuAvfLN-ket z#$ZjMr)uStd z(k7z$SlqE%$tZ1*8wQL^I~CfpH(`w(YjFAc`bI@*te$pYZRA@U`H3HG9#DTFxX!*z z)|*sA7oS5jv{oHjx9-pyd=DyP(Sq0=iL6<5l7WlED{|z%Q=#o|m|Pn|P`F?>?95)+ z(@vx2gu*m!8p+QG7`GtXdu3fwK9oW0)=76jnq1|X1nvBX^ypK;19)v}If*6krBSVC& zdNfmdZ5cT=kkT^*gWKHj3PnH|diCMx68CG)KiL{I0EuaB8r*+B!!>U{Z0*{YUw-H1 zcitI8WT9a#ylxPgSLh(>74@vg7k$2Okm7rnej&{|Ru7ql%V)!&FbF1GgL0_m39fsZ!b4cJ2 zg~!D#O8eD8CR~%j72*TI5MjW&fnZpw^g;^j(-T}uq&BRRojtC;?#K5A!-l=~+RHD$ zY)~P5qM|~UW)T_Cyh0byvdoq(0kFt`$k>t0I5jg+iAUa89b~3nAwKblFe)}t!wyQ` z5Mt;>SdE%Nyu5C-3tjO1wk1ot zi(xfpGFF|4kKi&1ZitSvJL}Ipnten0khy58;dO(!T2g?KBPzYLTqaX(v2L}&gCE@< zzXv~*SWMQZ51?9&hh2h=+_Ye23y`&I*D~v+xFbjUp=8>nOFtOa3S&U1=*TlOdEnT$ zOaD8WRbzZ8c|IgHK0bA6)*N_CyLOb7Qyu)UjRRH#p#l@WVCAq{8B~`pWoJhogfo(6 zkSxy6)6<>Sa%r6x>$@N{=tw$r)I7SvxUs5SHk1zgasQPXAK^oTDdwW2?Bna>>u>61 zNq$1rKmm!>obJh7b@xJWQxU;il4%i@FNe&l;5R4shfCN8FW z?d7$GSUZ)q1z6if0ql$|TjJSYificZ>gMJmn?hvc0aocpiF7PnK*!aHvZ@aCDRE%B z46YDx4Vi^eq8GTl+OuH37!hc$1`Jl4zL-gSU+r$S$OwzLUPG4*st)5jjDM7w9(nAs zwrtSsK<>I8?THNO!;irzg!EPs6OPzmQoE{>WSkI*YidY*yzdAI#)+#X3x>=~Tz!bk znk_hCfUA~iQ$Pi**BGmHs}3E2_2_SY^P5M2wNsM~Zkw`c-O3h3)-vp+IB$@-=-goJ zgAqE0>w5=_7BW!@Ktha9jYrLFP$)pib+ z8baGEKWyJ344xRIGDmY$ErSYLX)NMmxq#K0ir9}n1T0oeiKf`tAxGu{tOa=^qbua^@8(717 zYOaSKdgxI$4QDze{4x9Bx~@c~R13|@T96AgcNe;UN7cwDtHMQ@ehG6yDa!F87r4Sg zGvfVOu(c3OCBj;oOQY4V|MYWKu3%aydWg*q&7#_4*_*Of_E2OkDL>8$Wi(Hy=2U(m zsY**rw#MJ|TXHlvi?MESudKLQAjINXu(dshHLz0EH>_U0dQVSLT*HR-Y}A_9P?|JR zWG0-wXgd*PT{RiNs4?ecVNmQ1(W+^il}D$3v`jQdCP`ivt{w=n2oY>p^9HKRs%_;0 zR(){&PGdD9u)1}D)r74an;{y43}A+6jMk3OdU?842N`s4)&5w4xWopXBTpo*Vb=4$kyVFsB2r_pp4*?B2?$P9Ik|bqEf|F2p>WM1EZ&8utFuTP?^MiH?`|s>z#jN*IkTYIIiwPe$g(k$ zjEo!yHbRqm^$j9xNMu#>Mzn{sXB^^7am}G+q776A@DEZIXVhSz7lFy(NmJcT2Cm;d z_cXXLrv?}7w-1OpqCIHmkcMWMq+JrUfXK*AM|0OMCtz))%xb}J} zOUD*51g&%>V=bs(GW$=H~r;mKSqT@lfPqFQnyxK4gqFthQY;WGvQ;xf-CZ{i_EmHmh!` z19-?Pn$irGk{u9m;HV;NhngRz)-toURT|4ijyOki&5@~>!rt#m~5Uxcx3!0%BW&Ov940BHy zk*(~}p27@u9{Xy@?Q%ImFk}u|B$A@2_@T%}Sj~qSQ!hs@Q?KR?+T8B|WkFM3=|EQ3 zAvsc=M~YV#vUXB)th6(#R4;;&BW@6`C@F3XYp!RN8mqpM<&|E@^R>wl9f=+RE5_#2umcJai8mQTqrB_x|cPXx? znM-3l?r3(xiE5^3D$wl69@C;7$Q5Vwq9~&(apf|j&F0z*g0UmE+y=s0%w;*j4sVGBv$3C!O)DHk@AO^l!-xh`(QZGrD5CxFCHS2BT5xp zb5Yf1n03%=V%^PL0INk@k87xV?z!i2%Y*)EVY5SX@J1bGk14PTivn`l8NH}X?5!lb zeZ3^tvtaE*GkASDN*52cBdYO+rB}X7C61@3fU6ts`*DM-0<)-gzlmmgV?|_b2Txd} zGh_R8YRST-GGOpT%)(@yD2KTGEnEav%bGZpUU%L7q~VC&?4a&dKkk*k+-ssSoRLK; z)J#`+hznqmD$3f2VZ>ND$nsH0>7o5&YY0}P|C%)N48Hct!_xyaFe4zCkM8P$179G2pS@ zd=X%s{9X!eCrg$No+yr}1hY$saKtAeSbZ#9-a~rbYoYqZeZPP)k@|7peU^ALbBL*# zl(FpdhdARRs(+)n!(f~jZyU^`e=h~rp24sZihI+C)_h|KjQ=>@?6rsdLN5!El0 z5v5hPdlXuE&2AytqD=-^oVW7D+XWl74cYz%m!+^|>1&BFJ(e4?H5aw(_^ z&6MpPD;c3l$)|3UiXurNF>{5qyC{@3nLl5S_Wm4UZ$6XdPq_ZQl zi?dtj4^gZIN}MLx?fD|Wx&RErFlb!dM0S^SX472?H+3e zv5T@Mreu#jVpR;K_H|VRB_npT_~Ct4t$qn3vR_*L(Sgix zMkSeJl<^>+vtm`iY#yBqFj}~_dJ8h7e)dO;Yi$jUM^gPEg5V^pt7H#}J(!GJ6QW^ic_tibrc>RGa5 zg_6~6@{oO$L9y)IS9l#a48!||l>)6e?`uU(74c5SJl;|*)Vn?ji%|0JGVEq~o z2QpJKGc`IS#wLznvAJCttOtfv2H0(RVzY0$EXk!s0A4`PNVRSY=w=xtTDdsY*V6s6 z#SINA)5IYK&7RDnnRQ@gEfTcN-n5`AFXOKKV(_SnOT}hScHb=}v*bkri{-^mET~ep*I-V!4R$b#SfS8{P3^kA!tU1G{|J`X_pwSU73Jo?}K1O22Z4_5V zK{9_k#p>6x>zvJ0FI@LBnC7y>A~Vo_ZS_VY%HvddS{@9$}D7_TCs=*4$woBpMNBuh+v4#%RB^lHJM|>#B@zExVG67(B}UqPb1T7qX9#wWiZHu;s9Bz%#}iK|E~_(|QAV2C zfjy|fWbq|BcV$z6_2}AFJh2kF!-K&_2KwZL(sm{S6KCvcE*Y7E-Nl8eDN|&SsB)s= ziIn{w)_Of*JPdFAwH?^KCfNOsK}PlNM}D(2`rx{zO<6HX9hJ!)1Qyc~U?dp}1`ExI z=&TmeIdz!h4sg*H6?3+Np)XIq90KeKZH8zLWWO+?>=s~9?9#z?uV^p`rbFyD!7!j= zu=ovwR%)`9q342>WX38)Jsn|x0$6P|y|j*{n2hBjnukp?7EMcb*DtN(k00#Gq7P=h z()2QuDZwf`QjFOW9T*?slS6y!sCn>Aq30srp)FHpb*i2k)<5^BKm7?{j~l~8OW&*n zQ_*Fr=BU_RW{}wp@vXzfoy;(+jp7z&|2s}ld zA#vf!!jeB9C}fyy)H4>*iHpb{w@V#%DbZ1|CoInBkUs2sGBe-T8J{`p6gsfW?1@cZ z(T-S|S!QDsZ2X8>LWbwM+>`I8w%4F#&$b4$Bco@=FfA-JIpf^9&&9^7cRrxsCJrN*bGrf%4flaV|qYvoFf#g6z2y~Mz~a(!3@ zV2X^P)H94onxS1Wmj@d^L?zqHKVa2B$j_ljDlo`JTyed6 zv0#$Au6k6b{Qwpu=<)-D3F00nnT3)Uq6#cY5nU(6Y$Q2jIf>kcl{{R?7OCz*$ zvZ;Hp_@?>2@=*MXc0qyEYJK~O$>pc(zm?f-WY`;dI6=k3I9RGiSa!d-3f%h%W|{`IwjNC0ZfI8mcSmU{IC=1rhUN5Ig8ZAj+ zqKO%_{|JVv!{1o7KYzM#_nDhFZ~ooRzFhtw;i~goGK5dY90)x6(hbn47TR)34j0lKg7PnpTGY@ zE)M~Yol5&d?(;H2MNb3sd;7(OXXH-R;dF)^|LWO`C*lk&Pfza?bnH#LV+HNZt1rHN zqL&&;Rh5gE{RAwC6%!@}HhbZodAMHUcmMd#Fup#nes(>${&4WfDPbG=G)3q^@XyY022W{9^X*H3@vl z@0ES`y0xdGcNjcQgXES~?%8pZvRYI+U8gTXDHn z^@U?pyBDws3mCA1I{<7?LV8kCQh0cHnKJwe%*6e#u76*+&X3#9uVH|>E!*+I?s;g4 zr0Vg@I5+U*NQI_}u z8hc_QVbN8K+2mG}65xnwg!Rn%^Dk_k$gjwAc6MF1V+FT_d4}9?QX;8f%yomx6%O?EMN=K{(P4Vm7kxl&=U90U4M|cUO0dL(4h-6 zCZTfVY;z_N&=Tr|e17l=N%Ll}I?>C}i|&@x-IKt+P%H=MTMn&!iK8OP8dJWHMvdFQ zl_^;>yKS#P1SN2@wbG})Jb zp1s?0=_|mZuflN795cxgckMbvSg(&hOkkYn63u(PLRLsB%)JDSiaL-Ucx5_76$tz5Jb^Wp2qrHsG!5_>6b!V?hXTj8y;(=))T)xo|I*j?RcrDAHDph|IxA+1u0D z%}dFC@2aiy!WEYscr~who{>4KMKC?~pddr`2$t@dlKs3S^U`^Fxc1e;baY{x;E3SL z-ZgqBpq>)2{Tq?o&~apOkD#%5<9KI{Mn5lFBCPQr zf-;AmwVj{2eUb}f*_;}qD~F%!Rx2TGF#!-qY*-D0MAJN)4NwUmzStzVu1@w^Ftq;l z63HCn#>K{7V7=Nt1tfe8e(L1LNexK^3}XvK1e{Qsm%dm{N6$ZV{?Pf&6PG&+7=_rp zB%{@E=(YU)bE`eV#23F&zKFpG6zhOwpAfDhOfG$`Fu~3d+cJ|Fz-T;`4lwhCl6=k_ z&xj{t9)S5MgGpCj#$L!sm0=N@~0 zn_o3eSL}U}@}laaCB)K;4PPlOg(I#(!0Z#SltqgMTWrF~8AtZ6!o3;_L*SBdazw(C z0s@r~raS8iDXB{xxg1N*a4L739#B>%n97Tpls-DtJZN@N?bVieR0HR)J!`?N(ekqOfrwXURt(>ij-8LG;&9Ek?B5~(+4H{ zJ(eJVVAqQh46uLzr5G_yz_*hdCmunbE4z}fTo)%?D@s^6_ZSKzm}*OHglF26?`fcz zSZ07-gD37eyFLS8maUf6g+?!zpf|y!0zv0G3|5R8ZK2%ewd>bQlGflxDcchmkxgJO z`ZIsVBod+QiaLQ?q9kb#lITI8&3s19wW*xt#53*1iN%El+7qu|E1+`T(zLI)`DtIg zlXq(>CmFi3SWX|Uq})*~{U?Fp;#W}Wz@2V705B$-VA#fqoD>r+CtSw~m};*-ri%z5 zBQRA$*g7wXdlGT;>m`_FuRnGw_vkinUIuWj+WX^FY}}Pe`sn=SpFiD-8dC8U8uL-W z;NsWw!V?zHUH|c>0}PgOQjxuh)G={7hU>E-1141(jG6)?74#4?Ev4z(g^8GHJJVDf zla|7wJmc8X{C{AOLiwYi)~wq4GL=3gPmJeOzD472x#izlilFG4W|omnqaGZ*J-8Zb69B#UYl z+~LbFKHa)_UU-pmL|~zBDug@Ee(U3pwg8R5h-@PSgM&>!{_(L-7tbrBrZ7&(D}X!7 z6prR_7q(Aybyj3=&4p&V)o^I(mGA_VeP~M7&{BY`7GFfh7s-M;2iL6w(Lk1TMYsPo z+{M)^#fketc0kDH&wumH`5P&42<+?k(H3S?&l-(?wN6cr;fKSnn(GxmiGn7g>}`&*(J(vH14uk0!}0>Dae zY#s&i+i|kuSH&gu3MKPUlA)7^WDnM*D)+)QWhK{*_NSzmKX2<>A1zt3Wb)+h^XJds zI0J)rT;FBV_RWVzU;6B=g=-4Pv-kwuE6M|y6%ZK60Orp1H|I&)&z}#0W(B3}ve)Rj z^Gb@sbq%t5$M{^-p(qQYD631FeY#?IdY;4!H7eD~!uQX9o58wwXRhfkP8#g>(a~?M z*i$U`N;gX<6r_t{<03C;FqZej5y$4PDJ~&-Rij;{uJ2-HU+Qr?lIbY(MU=IsPhI*F zV2MS-rS3By>jod6X0Vu;88gTcsiG!|jn4jT#qKgC0^ckurcn5O28)f|&aUXReB$== zAAb1Z`*YWnT~$whm5!x;I#*Wft24$VG1BluMvNf)QWTThWKS%jC5Dd(tb6zFGmdkB z*@Hnb%5~fjc|}(WF*g>$pxAb<4?wW54KRLg_Cyr-XjuRQD}EWbt4lSG@ue>t8A!b} z@&_xHboDwXExu0{>;!SajtiF)mkI&4OThB4mzK&2Xb1>4_pSHGF<5rW_K5_xeBx%} zI`lrdqC7Xe{3>RqG=tkm)m8WE^h781dQCOR?_5U|ODeg}moDKhY7FKmFD@4_r2E3_7%y@|6d~21H$MQbNSf-T&>)!841r}bm})dyM3NQY zXI>b$-P^sI1v5U^gq?90Y%sW zC0I(zM(Xq=*T4SZ>!Mhx981wl#Uh%$&7|(mR^1;_%b&0_IUpM45C5n?)5znhT$}o^ z1m5O^kwN)+1*OHq8Z3{wXwV^oZ6U6c5Ddf0<;O`dfU#mFJWj(5MlVp&42Qw0{lg`V zk8BAFiugi-w-_vsSE%wxFq*j$+2-S1f~;oKp8=BT8x)V_T7Z@Cick^OPB3FSy6v=gMJtZ% ziv%{W@LC?JK=crwPZ#c<2QXP8E+fH~3YcqoFiQ9r7_3y*pK-IZsgPiB(RL6{ z_5wB)VEH7MID-;wB)ATzOmeLWFy7LFoSzvYU}%0?CMUr%(hhDqedLH|1(PNA#lOs^ zOjjfu3^>BJ9ME7g5tu#^o=7%2n!)(kqHvl4U@kiDg%>XDQX5BVz@(e*7&{eU3B^Tn zpDb8LP8xw#Fp}fJ$M%nBZ%rsD;S*?^4GXq}xlr?=VTWz{3?$W zY(>$BX4$c^y9}@z_@HF@RJDM=5LmwKU7?Bau?zw`umoV``cE5q+4hfL1lZLpw8sHA ziyFd#C0k^!jR-^U40;9w*CheNu|=4N&E^>ZmU4DwV-1+VY&DQRbeJ7@OTY>XC}3V) zpR?gyPTD?zb#W~>;NkMX@wZ>xoluZR`*I4C7L#C0wqUAF)e)}w&@5oa1#rO#ERmkP z5d9-h*=F(*6_(yeF_)SF!vtnjmzXUWAmQ4wBWm&7FJ`4~$jI5ZX~~g({VN!HlVku( zEGVKqSH%g`H)C?sk!uJv)#fq|f${c`oqw6VRi3;cNehN0MP5^^IWT!K&yrOHR*1!k z0@O1F*Q|Y!OZtu~|G9`Z-d>3%J=|=5LD@VA#uL)+ zC?RZ|AyaJulbuT01jeh@NsC3WNLd6PT(e*{o5we@*@kwBvS34o42e(OkUDkbmY6R6 z%YT%m+Fl8;{QTl{RT-huNOvxcILj;m>7KxzdMf)f0n4W>^AS(ku%vi+(P3I5MRD2Y zR8wHKW&#GI^79uVLzpZzBs#Ktzft8s@KJ%K)6LRuS#d3|{woERUr>yc z_!%uvVUC@WEh}#uC)G?pCSbH}VZ|B(D^A2(*9L%%7~vZqA2M}h$G!u~eXgp_0L$ks zupb+hk>eBf2nnYw$H*Lq?2`3X1m$ zj1FMQY_|d{=E}&n)7ws;R;3YV!>?p|V}cc(wmc=l z5vly1eC}MT?}+iOqJknqGGi;03}Dm}#rb6zOi5*A8@L)ympyOlS*HuwU-u9kIp;Q{`i}3=*+0T3lO!wmv8uGIjZP>lrc{3dRK0o~rw<~u zj4JWl^zGYOv4GEJV-XYs8VD8;85wC=C*^gHng^ry|M>kh3_H%nN407-kUq9Pwqr~= z$qcaYgxNdxdN=g;F8^{p8<&AE9DZu>V1TVjEaM0ZU<21l=AsohTaALz3x<-4>BS2l zZQ7K^ANv$VAMWm(Sy7Z}u<*qFtKK+*wPbnk9=qYPnzvC(XRvS*Y>Ngvsn)b-NPW46 z!NTd)CZ|t>Y*uP&e9*wo1N}uZ$G(iWrr-pm`W<^4deWn!r3IPFF$3 zN0xwH#c%GR#T=n$FE6B-@0l?uhT@fk3MPG-=DySLl&`Rva+u0FY%jaKU4tnmmlz!rY6W0^bOr>7@>h&IY{Lr65r zAKm*|^M`;foXsaNS;b2xQqbD|5vJ$li1X(wuKB_>u|^%yNo|;1v0~L;Pq|I}8PKI~ z%;b(FnyNu-g+&_1!Nz+xMIZzpG_vN`Q5EtHR^~4*avV# zH@Qn!w@&>B^y^EaMQ8c~EIM{_U!yalng@b%1r&C5Au!>psP%b_fBeLYICjf?veolr z=*OG$)r7RB!Itg#;Da5i{rNUsnspk5wV3WCTIP@;$RFg4jn!^?2KxYlxhSw7+77jR zB7s4$H|J|pTs7;63Tzb;ftz`o^fA-lK(v_20fYw0I>zWJrvh8GW0{-H#ZBy%T(Y_E z#fu+V!8UH3s3zJ@HEA?JdSlfNZh!MOZ5~=Q_+xZ-Y(RH7V>5YS2fgNR2TpL-V7K1o z#b7&Dy}fP5MzWZVeK+<47ERo2HI3y&FRj@D!JM7tKIJ`YY!I!}fG((jcML#LDP?j@ zmr?ADw4eUjy>HM7HhvlV5A6~quw`$&vG@4I88eRK0Rxs4I%+t?oaohSd-pCw`#Z~R z>TSA&)}QhtR0~L19n)_>f9j_3aCvr_oIq!|{O~7wI`gs9Crv!QefxHrWdqCER`XQq z+RL8BI+eanV_g<#oFCDvt?oXbz_^sH)~8> zKdl?94mPBb|3xlA`(MOzvc~_<_OtzL|Fic0Jc0cU589Ia00000NkvXXu0mjf4CVjV literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_40.png b/app/src/main/res/drawable-nodpi/weather_magical_40.png new file mode 100644 index 0000000000000000000000000000000000000000..10a3729c628a569c5da7247d07de24797e391f20 GIT binary patch literal 13232 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_42.png b/app/src/main/res/drawable-nodpi/weather_magical_42.png new file mode 100644 index 0000000000000000000000000000000000000000..6101bd1dd8f66334c0db67b08c8b250e74fdb9d2 GIT binary patch literal 15756 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_43.png b/app/src/main/res/drawable-nodpi/weather_magical_43.png new file mode 100644 index 0000000000000000000000000000000000000000..0574cf30cbff2b9c25dd9eccfc8dde51483fd07c GIT binary patch literal 14940 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 EKfwSb!2kdN literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_45.png b/app/src/main/res/drawable-nodpi/weather_magical_45.png new file mode 100644 index 0000000000000000000000000000000000000000..2b6fe7f6edda2537ff0ab489dc5bbc24f8da1fd0 GIT binary patch literal 12223 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

Isf!Jw&LNw zvPdwU9EQT`#eHnI(ABguyQ$*X+UnjL9?qRDs~K0eR@b(%vm;DMYwc2P%)k3f<58Rv zgiV%2QgK?YMO2Q$1+a5cGgDJDGmCcx1p0Uxn3?KHZ~F@IhKSZRFH=Et+lk$c9@-o=jPWCOW}M+AZ9JW;=>w&%_HOW9x^K6>UJD z`$Tm=jqHwajEI#EP;5r|~>%GpXgcnha>=gfH<;FZeGot{pk) z)()pff&csgJ5a>^0$KjfX~#9=dmPxn{d_OUZ1Xd+&|lmpzY)9F97M=efD}||JFMeN zl#<^j)ZTCGFtb}UMj?j3KFB7tCA2@@NdIFFVA?2s%XejDd9I{<#OxaId~L~*Mx}e- zw_l*mdrdN1I2NJ1oe_&|9*z>Rk~UEa*AaMlxf&T88*AIFo!eYjHM0h=RZ(e_Nga8P z+j7hc$BDQT_i)t-Hq^BXZlB$V+O@rkM#EqFeMuN)${|>Y5FS8XUB@qM;fy-Q<3%E* zp%Ev45*RftSO4@+t_MpYV?N5;L&sAmXXxY7B2n}dCr@b}^A}+erbVIb-p%7E-GV~} z3vai+tF}F_5uuHUBmDaa>>107W~V!(-MgLK+<#@DQrxjEnjj(wLLM789Vnl#F!!9D z@FF;uib|ofdU@C+z!Kyr!!m;V7%WrAd#(rA9#F)~^7BchCt9k&v$0@2*}JTzQ5IC zji;O-z#sFxvxefq?HmrAn!TW)TPbO8OB-9;3PmIKfXX~qC7a4sHS$BDcPn*Idhf$b zNGek8X#FPk!TvQkSQsT7FHJ&9`k34it=w+ZBG1bKE`rG1z+f$8DY{muJq4eM7ST-( z#h8+4Pbh8@k?`MKjPAqJx6dmJbLmO=$1EDLVa)9CBXEu+84WkNn%;wQG`T3Ic(An; z))*Oq<(%YX>>MB2qhkyD$8C_!?H0Deq=1*jKg^g62KN3L{rZrIt&L6H05qSlt#j=y zbWJqXam)Rl0Gpi0Rb1A{SC%&_yp~L~ubL4oa%9l@zoJrp1{CiM{Aci2M>(%FVde$j|Bx+mFQX1c$wLy>c8SgDtG; zcn4NSs$n-9e%CL#dNbJbxaKrRM~{634faXmEp1IAP$VnmN1Z*~fcpng3OgaBItGC0 z^CaLjfcT3z(V5hJxTT`DSw;2wnNxg=wL6ISIS7-bkfWu>!O$h8N_x2OF!wS0c4M%+ zW|lc7h2HjIPd#`wIVv=)ug7eSHuzLLBC!|+MUFQ$uX%tF12N0tM`1al`JCqiRl!X5 z6M7Jvr#;7ViR}8|)%Zbq53L&y{fh~4w#N@aPU2?7^97YO8v zs-GnNzD{XmV_wv{!B<0dT8MGKifftitqpA`-GgBwep%*lh!n$vKHbOWL^GW$8j8ec zP2=KKV@o*OGT(<|qosXF44Yhc=|(Vaw>+wX(%FX|{w=-5rFUr#@ZJe=Wkemw zMwwY9T7@F@m}}`%6uu*WhKnhlIdihJ<$W-XxV>O+PGHgeA1i*l+ZkB9e`hUlQNhFvlg7+UfY;pnXR_|QKeAz|> z{?KZmtqz4Rb&f`@OVT8Qe9|5|ZGJ)j57S07Qw4Ra>yD=`e)Q>_xDHk>q^l)krNSW; zX$+&(Kj54Ulo|ivxRK#uF!;6GJu)LO_DnS*t~Ycp)xj<69QZ@WwuL1(A0Ms zNF%>$Pwy3{p|5u(JvZ?e{wpOfN@y>x)Bd;I$PYNsh_8(XJ@_cdZu#fwzdxLo+-7nlGI|RpynPm za!a=^85rYAq(e97A}R)uvzzMYdE|ea6c(~VLK(>oCL-FpfW$d9e_Bs#<2>OnWO~?j z)sGv|aN?DbPHpbaKQ%N|WPz$ist;@NS_=E#?3a)TL3H943uf^g=5jS-#6@7q<<+f?g+y?ZFE=SJKeMn z+Lq$3JOc_)%WWp9Fb4%0a4D`fW7xfSsB?Dr*~Uk81b;z1`N)(=zrxyi!lSvdM* z;bBB2oA%H@ktkyC^LvL_t2(?Fi*^=JnZ=&WQMrRDX7~!GHuPb!X!twQbPp3rA!heC R=(}wgIVoky3UMR<{{y~+ZN>lq literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_47.png b/app/src/main/res/drawable-nodpi/weather_magical_47.png new file mode 100644 index 0000000000000000000000000000000000000000..ae114573e2f1dd5616e8679b603754bf0e3caf53 GIT binary patch literal 14996 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 MyoOwZjAi)$0CfFEo&W#< literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_6.png b/app/src/main/res/drawable-nodpi/weather_magical_6.png new file mode 100644 index 0000000000000000000000000000000000000000..595d2863d48566690774eb8e785ebe963700621b GIT binary patch literal 12440 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 MyoOwZjAi)$0CfFEo&W#< literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_7.png b/app/src/main/res/drawable-nodpi/weather_magical_7.png new file mode 100644 index 0000000000000000000000000000000000000000..6101bd1dd8f66334c0db67b08c8b250e74fdb9d2 GIT binary patch literal 15756 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_8.png b/app/src/main/res/drawable-nodpi/weather_magical_8.png new file mode 100644 index 0000000000000000000000000000000000000000..10a3729c628a569c5da7247d07de24797e391f20 GIT binary patch literal 13232 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 B6psJ^ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_magical_na.png b/app/src/main/res/drawable-nodpi/weather_magical_na.png new file mode 100644 index 0000000000000000000000000000000000000000..b5e542d41c3af1de3cdf4a88e65a7a6292209783 GIT binary patch literal 2460 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 F{tqy=^n?Ha literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_1.png b/app/src/main/res/drawable-nodpi/weather_miui_1.png new file mode 100644 index 0000000000000000000000000000000000000000..a4a3b8dc1e6e6236d5b0b329d2a1e3d2f66817e4 GIT binary patch literal 7383 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 F{tqy=^n?Ha literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_10.png b/app/src/main/res/drawable-nodpi/weather_miui_10.png new file mode 100644 index 0000000000000000000000000000000000000000..e3f443cebeaba49c648bc28201bc01b61d2fceb7 GIT binary patch literal 6314 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_11.png b/app/src/main/res/drawable-nodpi/weather_miui_11.png new file mode 100644 index 0000000000000000000000000000000000000000..e23f492735d991324799713708629330a02699e7 GIT binary patch literal 7506 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_12.png b/app/src/main/res/drawable-nodpi/weather_miui_12.png new file mode 100644 index 0000000000000000000000000000000000000000..e23f492735d991324799713708629330a02699e7 GIT binary patch literal 7506 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_13.png b/app/src/main/res/drawable-nodpi/weather_miui_13.png new file mode 100644 index 0000000000000000000000000000000000000000..c2216a62a61ac9b1bacf2766d8e2f5b4a1a1cdd8 GIT binary patch literal 8002 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 Ef=n?>-v9sr literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_14.png b/app/src/main/res/drawable-nodpi/weather_miui_14.png new file mode 100644 index 0000000000000000000000000000000000000000..e3f443cebeaba49c648bc28201bc01b61d2fceb7 GIT binary patch literal 6314 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_15.png b/app/src/main/res/drawable-nodpi/weather_miui_15.png new file mode 100644 index 0000000000000000000000000000000000000000..c2216a62a61ac9b1bacf2766d8e2f5b4a1a1cdd8 GIT binary patch literal 8002 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 Ef=n?>-v9sr literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_16.png b/app/src/main/res/drawable-nodpi/weather_miui_16.png new file mode 100644 index 0000000000000000000000000000000000000000..c2216a62a61ac9b1bacf2766d8e2f5b4a1a1cdd8 GIT binary patch literal 8002 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 Ef=n?>-v9sr literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_17.png b/app/src/main/res/drawable-nodpi/weather_miui_17.png new file mode 100644 index 0000000000000000000000000000000000000000..e23f492735d991324799713708629330a02699e7 GIT binary patch literal 7506 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_18.png b/app/src/main/res/drawable-nodpi/weather_miui_18.png new file mode 100644 index 0000000000000000000000000000000000000000..e3f443cebeaba49c648bc28201bc01b61d2fceb7 GIT binary patch literal 6314 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_19.png b/app/src/main/res/drawable-nodpi/weather_miui_19.png new file mode 100644 index 0000000000000000000000000000000000000000..0c6f985b8a514adf7ed5cf63e55361ad8828589a GIT binary patch literal 4690 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 U^)$%Rv;Y7A07*qoM6N<$g4SBgKmY&$ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_2.png b/app/src/main/res/drawable-nodpi/weather_miui_2.png new file mode 100644 index 0000000000000000000000000000000000000000..a4a3b8dc1e6e6236d5b0b329d2a1e3d2f66817e4 GIT binary patch literal 7383 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 F{tqy=^n?Ha literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_20.png b/app/src/main/res/drawable-nodpi/weather_miui_20.png new file mode 100644 index 0000000000000000000000000000000000000000..b02eb24b9868a13e5629b3b39759dd0fd84e74f9 GIT binary patch literal 5556 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 OAvkl&%&_DnnfgD?Gc1Mx literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_21.png b/app/src/main/res/drawable-nodpi/weather_miui_21.png new file mode 100644 index 0000000000000000000000000000000000000000..b02eb24b9868a13e5629b3b39759dd0fd84e74f9 GIT binary patch literal 5556 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 OAvkl&%&_DnnfgD?Gc1Mx literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_22.png b/app/src/main/res/drawable-nodpi/weather_miui_22.png new file mode 100644 index 0000000000000000000000000000000000000000..0c6f985b8a514adf7ed5cf63e55361ad8828589a GIT binary patch literal 4690 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 U^)$%Rv;Y7A07*qoM6N<$g4SBgKmY&$ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_23.png b/app/src/main/res/drawable-nodpi/weather_miui_23.png new file mode 100644 index 0000000000000000000000000000000000000000..0c6f985b8a514adf7ed5cf63e55361ad8828589a GIT binary patch literal 4690 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 U^)$%Rv;Y7A07*qoM6N<$g4SBgKmY&$ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_24.png b/app/src/main/res/drawable-nodpi/weather_miui_24.png new file mode 100644 index 0000000000000000000000000000000000000000..90e7f063bdcfca38fc268e14da70cc1ddb06da82 GIT binary patch literal 5558 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 Ef|T#7!2kdN literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_25.png b/app/src/main/res/drawable-nodpi/weather_miui_25.png new file mode 100644 index 0000000000000000000000000000000000000000..0c6f985b8a514adf7ed5cf63e55361ad8828589a GIT binary patch literal 4690 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 U^)$%Rv;Y7A07*qoM6N<$g4SBgKmY&$ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_26.png b/app/src/main/res/drawable-nodpi/weather_miui_26.png new file mode 100644 index 0000000000000000000000000000000000000000..90e7f063bdcfca38fc268e14da70cc1ddb06da82 GIT binary patch literal 5558 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 Ef|T#7!2kdN literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_27.png b/app/src/main/res/drawable-nodpi/weather_miui_27.png new file mode 100644 index 0000000000000000000000000000000000000000..2e4ec962b783cc3edb1341b55a643c86b6a59db9 GIT binary patch literal 9077 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 LNkvXXu0mjfP)nmP literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_29.png b/app/src/main/res/drawable-nodpi/weather_miui_29.png new file mode 100644 index 0000000000000000000000000000000000000000..114d37cb5b9f024f627d2250178b52c6af8b83a4 GIT binary patch literal 9157 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 F{tqy=^n?Ha literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_30.png b/app/src/main/res/drawable-nodpi/weather_miui_30.png new file mode 100644 index 0000000000000000000000000000000000000000..5adc15bf57eefac7d71d442aa1e7fdc0f93f7cb1 GIT binary patch literal 6917 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_36.png b/app/src/main/res/drawable-nodpi/weather_miui_36.png new file mode 100644 index 0000000000000000000000000000000000000000..d483024cc72df815baabe90117688748ff04198f GIT binary patch literal 4551 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 F{tqy=^n?Ha literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_40.png b/app/src/main/res/drawable-nodpi/weather_miui_40.png new file mode 100644 index 0000000000000000000000000000000000000000..fb2a6b0bbcae7dbe13148c2886ed5e4930005f88 GIT binary patch literal 8977 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 Ef=n?>-v9sr literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_42.png b/app/src/main/res/drawable-nodpi/weather_miui_42.png new file mode 100644 index 0000000000000000000000000000000000000000..c2216a62a61ac9b1bacf2766d8e2f5b4a1a1cdd8 GIT binary patch literal 8002 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 Ef=n?>-v9sr literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_43.png b/app/src/main/res/drawable-nodpi/weather_miui_43.png new file mode 100644 index 0000000000000000000000000000000000000000..c2216a62a61ac9b1bacf2766d8e2f5b4a1a1cdd8 GIT binary patch literal 8002 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 Ef=n?>-v9sr literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_44.png b/app/src/main/res/drawable-nodpi/weather_miui_44.png new file mode 100644 index 0000000000000000000000000000000000000000..90e7f063bdcfca38fc268e14da70cc1ddb06da82 GIT binary patch literal 5558 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 Ef|T#7!2kdN literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_45.png b/app/src/main/res/drawable-nodpi/weather_miui_45.png new file mode 100644 index 0000000000000000000000000000000000000000..7705b64cf1101610c78988f84bc6e79566d3262a GIT binary patch literal 9756 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 Ef=n?>-v9sr literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_47.png b/app/src/main/res/drawable-nodpi/weather_miui_47.png new file mode 100644 index 0000000000000000000000000000000000000000..33b8d723e576780f5a9ba4a4eaed46f6aefa20e5 GIT binary patch literal 9303 zcmWkybyU<{6aH<%veXjNvGjsc3kpc>(nuo;($WZ0t8^^g2!ez(2ngs)BPcDYNQo%j z-HqhuH|Ng1f6SR@=FGY0%*+$5tF20oU_t-@K(4N)r2p?F{9oaafA`T`(q8}oi|c9{ zD66_@(l~8UyKVhDq|Z0t&YR>;o5<%IBrcm!=S|9I8wjT@h|4C#Wdr2CwXwYoyx4`f zZ-SlI0j~ql^9{g#ALO7Q+)y8 zw*ik$nWn!axo0GqX8?Zd*4qED|eeN7S`7PfsltT$#-7hIxhsO&qr5w zrk2;cW)HRdPv=+H@3&seudK|kZ$0TfWiI^}boqYsdBN!M`09>+&zVfeh1y0ye$cW{!)jj?EsUNc&p+krHgC~YV zCncl1a$hesB_i!dj`$L0?q{qNPVPP`nftM@W|p(mH?j5hzZT!pE}yb4zp>qyHQS@J zOJ((KFUkfAey`h%?Dx%VW{mGQPp>IOfBJiMZCd!_e8-3xC>s{58Xv2}HE5!<=IM(A?RY3m-F0eLp8uC11rf5^!%`rOoyFW)?Kc8$)g5OvGpu}VZ5M6%+nWba|wO@vSidbBg)n&g0{5U|BI`u%tmrkHsz|{e2A~yUJV6rT^skd^Jac~-QKx4{v)iU zrsKoG?62j@;{CNrld;JS0N@Z%SHc;1XVv*dTO|Lkug9V|ID*4Cpm1oSE=t7?o){K^ zi~wW$xDSn#uo?NaAqJzy#2Lz~XoFqSS+qqh8vEOc?sP{;?_BCXW?L`zqQp6rS}Io`}6{zGehGZm0Fx z;BaT0$zs+F;A<7A`GKhEfdJ`}3MvF32BM-`$q5WC41T)0x_L1smPiq(J7*Zf<&7^~ zb?JM@<>k<70ky&GB2+at_x=I?Qd>< zFBAMAT%W37SXqfLO~S(e?EA{t$l;6I`#q!R|%2?fO?maFFIK)w}i+^tsbE(4{SwxXbe|>!yF0jE? z6e!Zo{`k?%D`T%&go+z=naY%9!- zdr-IiYHH2Yr0bB(|0qjR@7v5t+V5T>`Vm@=c9CXn=Io)%l*`sXljHLKhZ{ex2d>9< zR@yhcu!$@^DZS{#?>B;wqP<3K?eyKD0t}M(kms( zF@`P3?arH%nU!m1yGU10WSkT6?yRh_)RSAbmVki_Jqd969egcKlsZv7Nq?`iJbq#I zis$O;mhH3_56`W^+Z)o}P@B8^`-n5jU|>|V96}#78@59sdinM1SBZ;@NE5%zOjpX8 zX1`MhI*hIuYgyvmCTS4xSK=oAW@PyK`t|Fr@Px+toczX|)j_dmnbnz}W5oo{FD`QB zciFf-MJ|YW-zuO%2XRl`Np4emeY)p0(=_f=LrKoUw&ScA{;!0AH`lTuy0>mo75=;( z1*Vu|u3mI0`V;ASG)kA&ruXEzr%F(e%5!z)C(qpu^(cNf*2>FGy&h!AqT&U{x?A~ zk+X&s^`{gP7Drq(p7j?J7R|ng7B|P&It8ftrK>k0FDo%d>RkkzwN)6Cf?L%{ui?z}IH?x60(NLw6?OkV=U6)-2 zurz8;7HGOToNoQ5!|NX?ps84@2B2xQ&-xK9izSBmpLOHoT6>w(N`-^H4g#TflP=<7 z5PL&6Eb9!dRU#5;7y;e9!Zr0XcWdqko4h|0Da|3<7pX2@fTwU#*cK48VmO=Ke^!O1902y}k zNuN#om+o6CIoRCVvA&7DiaTRB#RNx?DK@IBtFBIqmO3gCu&I6Ne8*;>V!9>Z>in4b zG*_;v?!x1=3!f6AcsA|#_n<45{z|yM9j4a?3Ud%|_l3Ep1enxV19ZMB(zgZPerxmg z6pUdvO-58_e*275AWC<%qD^^`K%u2$k=q*J=O%g?pY+@0^yJj|#Q3<(lwv_s zTUJA3UAXaC4rItt++kP*U!JElP7J);49BFr-Kw?%deNIZLWRMh{%!n)`lhCjA5V4i z=dlFLG>XjJ8?Es_zP^fd{p2z|q57An#6t8gNDECHa)`~0`NI6=`?t^1PXR&- znpaZGn;C<447qo%F(GUgf^ZR@Y4TZ|-we(E`Wrb*S`g&NtmzC{h!sRNoO~aYpC0V{ zra>zD^fKZD!$;$F#o!8nzF1T#(Ly7EnOT~-q-2Tu7$#tKZzR98s-&gB z+0M@A@A<~B;F5}`7nw*-Yop-X=IMPglAitKYQ$tZ~m6vo4uh9 zomF}OJdo#syj8TC>pq@5q;N}&c%v94ca{!U&>)r=lbBFZom^4b++>b^abRKbis|=^ zIVIw=6!4%2V~%>S^ynxJn|Q^OH@D&H6(|J&&)}Am!hhz17nXNEntX~PF#oQo_#r(q z5(O0?>KVzic5rxF`=JK^_VSlR$oY;+TvN^$*DV{`JSgo$r zI=%N#EQuKj^){zG%AlQ3uA&eS6u|ZBeAm*@7`+_=UT&G#bSST=c>e5zEBkhEkE6$f zDY372L1lu4ZI$0$Oi>b4#AOKi*N+VRZ>~;n3D53qHBC>v%gKsrc)2;TQs-o13Lpb4SstXMb{bHBsR0+(L_iZjxZdRm{Y^~lI_vVBMa3N7gb;k5c&6ePMovD=5-DZ(%;&+MG>e7BnKTgsK;WBw@c6`9 zg@pWuQe>}ZP$#$9?`G%9se<+L`r>P(yx6Jp>tOl2#rcGkoBL`c`&_16&?S}rKR@=?tHoFHEv@*)jxJR~+t&1#--8r^K}SdH zSIiRsbx2S79US5p`)(qEdunHeiqHE`S@4vA2>Z=yLjdfHA2HAneDj*xVQ!NBy5Vq= zQhv6zwff*_xW;}hY*yCKb8l<7_4>Ht;#By<$lSxJv~E%VJ>h8%$+xd1B2b?^yRUR7 zr>1yR0H3r={GiwF%+=0L_U_Iljpu5v*NzBFXJ;~B!})f1n#9g*u9?{rpUWdEiGyoz z+oEw9dCHw0=E&Y4Epiw806ZDip{GM((n0ni`^4V9)LAY!w3)0Oei)QC6?8fnbREk4 zv;n`0kmvn(MOOy z6N*I(LsB5?>fA~DtCy*3`?Fc4}ivYA2PIEH%|OvqrxV0|qaS#9kLkd;~XOXs+5o&Us0uz@jO z=YcTI(;>;HIFOp=mfD9>e!({``r(0LfGad5wOa!qw8=_2cIECeF-V=>@_*1`LbUhy zcpOxn`rqe}cOhWITxKYM=LNaZ04Zj=b1qKb`&n7uAyWP%nb070H=5OtIe-s_R}e`^ z^j}&m+Se)_5Ptz``@Pg;n-_j*JqO{kSoHgf{SE-!w~Q{%ySp(YxCb$QWMqi=QJNTKqs| zyA`SeS4=#V{m4C3n;J9-LI4bKf-V*(=WxTaHP91Kj@v9LlbVMY;TS5^JSeIrFhTKRFyAEq({{&uy!TA5Oz4}t| z=`+D#=HQp%l51Z1e-vnAlT9Y34He@Jphz1KIgQuS=QxsN@$pdtZOUnth3Bw=MH<4G zx%@X(gybo(y7R<73n!1Xi2HbkQ*@G!@=y=SkkD`5Ox`b@UMjlY=5W|%Dz&~gA^k@q z(P}1uFi1j(33oNm+?wdxW{G>^XA0hm}NyV4FX2$wL8J-XeY;(OxCaxDsYAvXG`D zYv7Co1m8;**6Y^gwM)p4JUcjWt9yi9-j&9tqU4G!C@Pi*}*xuKA%^ zkXL(DcrmIfo!k5Phz!n-i0KjYUp{aPz8j6It;bv^n|eFe87I#*7PS)z5$qc1$==;J zqfu6gwEkd!M^KPkI5%|x5&j^_^)GkTpDnfhbVS+agOIJ;w@DGsQA8pyK{&axFZNp)bmiv{WZ+J_Iy$2t|AEWPM{J$y>gsDJ=GagX znEpxwe9?HS!4nDH z3vr-`_T{3{i2UWb=CJt07TioMk!s%cNn6Z&ac~>tnwkv>k0xH z2?1eZ;?JI8<82DFIyD>cL}`T8qWQxO92rN0!?K~4#g<>Op+D?g90&|Jm6ykr zZ-95k*(%nv3kP9b8riFDW}@L8*^Fw+Nzb_+-m7M=18wG^j*RHeYskGBQ$n7jXfhv& z6iH8s*&6!tUFe(HrF|#j$6U|nApgAX{|He7Wj0p-mu6+@e*X!XP`vqp&2lNL&mWAz z=g5&1pJG!Atn(UiB?F6Aj}>w1HmJach*#jJNapf#6@!d7Ms$6HYlffItkkajI~Yz^ z(?~tM`|P8$R&}OH6&e6ye`<=l3F`P(SBswwt-bLnT*RfP-xAo>zJEKiMHFs(H_ret z>X2i3Es_iB^=P2yyZG>!Pmcl$GjgIeFu5ZomC6z}lloBAM>iw+#kI`C{GSU7WHIN2 zj`R}zQt93H;{0K8SV&&V$$_m$#)}4JU`|X_+AG9kI0+6QaJba3YkLe2NzWNzZ)hR0 z+cJCaj7NSz+aefhAFmjkn6uSWLA3GD^wNjl!w`iN=|$Zt@qVMMy`L(1fJKdj(Zs zhl~+@na;8PbbRtyfl0fhD~=)TRxsq%n5FppyS}QE@A(o1sO3kggjwzOa<-Eag7YYT znmZ#|72zZU8p96o;IDd1;+$Wy?i}~p`i>aje0{aG6IkJh=VtW^e)-c8At^3>AQ+v7 zo{^EB64WZMkYTNc&bPa&j(-4yU7i`}qz69d6PVoL;hqJGM?QPPdUG%I$nHpC|5e_6 z+;4^gSP%F7^26Nd_uGd?a5PLES0UX*pQtyID-=%b`fmUd+|Ias08#CmIJ0;f@h&i9Aqhh#(m z3h}{?kJyrzsCdBovZ^XCuztwgknuaZ@=>wLh~QHxu~_5IHU_GE7|b}Tt!C&Ry{4$; zvhFyQusxph<$@eXo`RY(T)%4BH`7bBdr64X03avaSVNYpD578xIRbyZrUN< zJbQU)o$QIRf@N)%m+}+zh1xYR#H^t*MgQN}__|-wbPk(~y4U?kW0$3GYpxPMGQ z4^_lVE5Ly_U?S{^I)KR#(7T@yO70Hq*@yy9mGz#kbcHlHkbb|}JIc%!t3NW*#yOw; z&~8E@+5jNko~>58ZVv0jl50o0RzZRQg8xjt|SRe0)zuh22SFZ@)007Dc+bj zP0&5nO##Vf?o(4Ig2719u>+OHei=hZiTUAq_ta(LcqcM!|3rE)8Y?@t1Pae1Xhn~N zp@FlS=%{7DF%hKeM8<-Ja#S{?CNC8H{HX`b@yW=%E=R&UwtwoVQEjab&kr=r40Nk= zfrjYf=}TYUhvGuBtbi0SaB{noUsV`zM@4dC0r6+q6Tn{@f(Wf)tPd4!qLVI?k!|3z zXJWgmDyd3>eRSA~00A`8>rUD+HVpakXeMSw&Qei2+1OxlJ`Ca?k~>SxC+kZ|CRVsL z@WL33q@tp`MMw9%UdRMS=-oR~YbVGu8X8L5BN)MKkk!%9E|E)N|Nd9ZPsrLpR!HhQ z1NBre4|bq{)e2Axi39Fl^HCGva0s~Mds71gYrK+1WMQvb1Pas0VjN|f?K8xbkX!vn zNwufQSWqv8Xo7R~Pg4R1k{0cc&Z}>uCusI7sTrXFpbkg>P>B`^ybE^nkcvb{EnRaZ zb0sHpQHA#Qj+YXPt)KbWa6^!+%IP@5y?&{CbP(Xa3MkuizYKdv?;SFVCc12qERTXd z|E&jN|ec2?+?q{OW+OHch_gVx$H)yRvzc27f|+ z^A_f$1xWJXU6tGfqCMimk8fhX&eMiw8PS0*H4-!{xrk0Oe^L(6i0{nCq7*hewM;^T zOR+yZU3^TaxeeA}ZLi+NaHqg6fnIq~RBUYZOg&vE82her>5q+(j}KiSND z772zbFxTJPIRabKLT_{5ijlEog6G+xb+e+mVS8{S0Zs=1a1DzrmU>nE%^g^8P&F&S zS)na|cFY?TiJJo$U`|ho6xs~(<}=>wmx7ydD1eg~{AwBa(dmCl#ey{*6__A6JPv;S z>JA47hm?nB@z(E*4gq$+-5m_-Cb(A`=MAgz$vje>u9_uTH>gxoNCL}&EUEuxoe*13 zuM!!X&!^Unp&}CEzWLGNw8hJUdm%<&!@YZo-$8=mb$n z|JWKWwX1&;x&8Uc0v3%!4YBnl{^(PsRb%?sZ4KOD$SZ1)fj>tJIjhbm(Qh0?aCiB+0*PNOt;!2A2okNzV-55zy;DNHR* z6hlTY8+L3xde2O4(ue{{?&K;;YJ(oof#9Fs{rB(s4qwL7&v1b7DDu53e06F>X#awm51N1e*#niE;`b86UQPD7O zY79NNmFBu=bMue1MS=7Z??z8v$DNG`N9E3Hq!$4IJP$X%efzaC_%?$=_+M%(3rS{e zlyJf;C|5bBwK85IJ{TRI63**ftl<-t`Qnd|nbkF3%O5jR#Z#381Ci>#2=BB^fVmZ2@=5;WRNGpN{99yENZdk9*|Y zJux!|ni0mHB?`OSu|A5rT-Hz8=!%02=x(2lq(2>6H?rvU3qjAkHi&ji@=|t-J~A@P z7PODYh6MZ?C}XFqY+{b;(CoDbl`hA0{rst`!$(Bb3CBPa{UUjzxbJLT{wG0tle_-5-Gyzhal)ec*5$PfqN+77EmA5a zhY5c4U}wD#%UbC;zEsGRbSCu8NU{ZPgvQ(747FGj90jgH+W8i%lT$|48qsWTh+21L zegwTgoon%#J6%fg3(Lm&bbK+S=3XbrOMcCm^U^rt+&ONgy=>3UsC^QN$ViWJ+$mM#Nsf9iIxNfOGZQ2L_iq@{g-Ln@e~L&_py zzlS~aPh^(ss5+#T6Yx!%_F23P}o3H^K?%HLk)DLAe{%MTpfa%L^CUzkk7di(l+615RQ+ zPMSOk(8&43hn6-WOec?4j_2_0fuUyV)^JPT!-(l!8o-~;lwK5(m}7OiO8JU-PbsP4 zX(X-_R&H;;;2rQLFzpHyh`~8iupDmTy%iMNTK`^Cf+lkp_rmd8jDG71$nAi2X}b!s z*~JfXfPbFC0002YP)t-sM{rDR zqvT(ld7TbSU9x9*d^ z@|nT(ro`%&zwxlo^_RZ!ZKCA0()D<(?_HPPc=0000) zbW%=J009FB4KooXD+M_lOCUfO3KSg=0wpU6L>Dhr-8eeYFI((K#9mBjAxBwqtC4Sm zw=zh9`sQk`=-mc_bl;;h2yZ z%~L?Z7aZ}(@&Es)*;U=01ohnc?%aE4)~xll3Ivh8d)Kb&>c+FPzsKL>@A3Eed;C5A zpNs|uZqNRYMx!zN^3>V?{xIEd2sHllOaw&wczd^4rYBQx%w{4q{}Dv-sL`bRsEFdL zhf91XXJ@m9RG`tsAP#sm`#0jx`e$c-0_ii56U52o!^7R(_4NYxF+z%zAN+vAB}(L=EX^rhXiyX;>s6uwAW^VqduO?MND}dG;6UR6`DV z={RTh^%bCr#3c_Q0KkP0Ai-TaOMTyu;}{WGW2}BX=f&Q4*cg3S5-Fk^y2dpADSUFl zT0p~k@>>%j?UtrJLI9 zFA=D&&G421FCqKgLNQ@3C4sBUbsR_D{brNp&(FVp{d(E1VMC12Pg@gXbNlf2c6Igk z`s;afZ#Mo30)Dc-gVNVLYbt&V;XJw!R2Cu#hr|B%@%cW>!|)jtR@;I{68eF?d0tQo zy}kYZ{qyJR^S$}s6Ht%+>npB1EC8yn3PSBl*x=#)9T>O1ABG7rcwWJUNf^fQ%ggEo zS^W0)_Vf2|X7Fp{oc+boUsLMy%n6dbe@6ouK$l#N5Cdrg)GBfTe3%o3JkLWvdj0wK z^Y!gb;?vJ7tZ?sYe<>rKHRl>(Ef#mTcZ`2a1jvBw1DT7Q8&~Tv3bG6wqA1HY8_&*P zf4@PRx1T=&{gdKA_n?q_#vk2SH=zGWQv?Cv@_2kiA8;+LNDMByHc(U+x5@JAdb!-L zB0uxVkegq>->x|LJbjAN`xUtS#A|ZT(zQQSg$DmLTtq5Zvd|3w__*Zpc*~K$lm+Qh zn39&KTlU)BDzk0d+dTim^eOlNrx0AdKfF=Czy%bAY-5>Dv-w>I(`dS>gNn9}qcz~f zDI2wahQWfYQJi8@Iyp(?q2dHv1Cr|Bzji4OwI zpyl+NUnOwE<>U1NnCk+F6!zQ4^-=|Z2;6Z#;OQeJ#qmy7C8`&cv!pcYHQ~Q9KH*+V zc!~f@6%n`}5`!;Z>^spT-d!q=fxALIW)eH{Dy!70vKzts-T*opd`59OVHp*ETtt#qT4$m2{XAS3EtuOtHle|WCEnze<9)d z>V=+%2R8Q>VxY~w5(r?v-83HMLo_uqhso3iwBqttw~3p=sM7;{-6MfI{1}9zu$MGBEhN#`6C})c18?V zIo6lw4Kbh}#DOg+@^dY$neZZ3)+ch26)Ep#UQ|zH;ypj2KE$Bl9 zKM=$BJ>So=EXrjFSKDXlDuiTxw`3+zCFg;A^krBLJsU39T~{aksiyT!m)d3`&<6$5 zpf7e(Ul<@dCbl>Da@`cew(srxdoSO3g28sRIfoX+B3s>V1!|seo>%!M%V_dgjylYlvkfQJ{bse^jK{#I zpNx<<1d5A%m2Er^bGIYkws!>xxGsuKhZ$&k8Yk(@G#z5VHjumN($lzHJC2PW#w7Br#2j z2so(0w28*PwsH3DhJifN?1Op7)%6Jy+Q{xl-Cpm$w@DI!dz&8R)uzb3`+Jls(94qj zGLQV|erUh|6WuWUq=-{pWCCm$gkh?g>;lbn#CCcn34CVIAOd(DG=Kzp2NY}%Iv|nn z!@?V7Vb-O`_XtkU3O_zVaEh@X+pQBDueC?RiEAhOeVDo(K|s^7Y4wE!nkKVB5;*&o zfJQHzPED8U2`1!^AjD{B#YHrX65kpcm?@sIjPU(Ef#^|K?2pHtZ%ix?wbro1{Vq0K zDSJqE}uQxa$j0<%VC z0(k;C%wtT2;8$-K5Aixa++F?}? z64-GVaSRY#hbt2DfaY2ypSYiqIhr#wb(&L_z->)i21*im0M0LVp#ce8(+GS!H7pDM z3Q~(?r}V>Z6b1$}z%qbsF=kB?=uzmKm^%>=)rb?Zl%TwyVV%HQ;iP5*R5cVaM8l2| zcE=0?xFHEsQ@0_34M!r_uD>fHo3Mvg%2L=ictINAgFo=`J#8V1;DQpTNdl5VMSyQO zE=Up0btw}y6tT3`aIxFApa$mS+K?V`M;v1Ed7Apz2}eYBnQ2C^^tR0Ze>1OWuV z*y+M7&yA? zumX-$fV+ZE1o+UoBw&&Pni~Xe-wk)MZBjmB;&B+H;o)%H$B+QS2yhqy0w{>dK1$&~ z%SM7?1@uAKFigP!Zzu>j!UCLapCnKO5FbiFuA3?R<+$-a@ePLwpicC0Wb!>OW`%mXupqb2ueLdY6r>T z9YDhmVnEa?vGucSlUm_c;b0&@%%XMYb1F3}|tL8p#nF1xOB;I#hU2cexNa z$_33Y1W14;!{ZeW3&yRPuB9Ll(;~>jM*m)*{slhuKb~iJF+v`BxG6#^L;FLL8bPwd z3K@#J+;RgQy>UxW5cOC!hK=tCkV+2K9bVT7ID6&Xf$aQi1x%PF#hWf&jgY384JIM#1g?lj-C@lHD5W zm_8&Y0)Av?5gGvB_OO$L2?Epzo9bb4_$X500<4F+qnlC#tx}*`j`^}F7rVWB z^aCAB&k-WSWJ3>e_DBJLzxTY{^L!i;WiietJ+4J$7jm$n%NWGAhSgm#_!EJdsKcKK zAR({}?h@1-J^pwEA zqCrXHRBP1;^gj_eQ#DB9Pr*P$fOa`Lw}B*hL_0Q0Ko1h+ABTtt*f!4pycoM`B4F|8 za+?AYh9nUAEg`{Flmhi>U*l^PBK(#VfSW-CQg?{})gdeS*rWOYFUSx32+d&V&GXFi zijR*ZDMI9?H5UqCXElTjOaP8BrXmJYS&B{wG#Zrzia?9uG0(Y)L;q&!YnTWC$ zHog#;RUrUAb(Yv6PRRa6I`ptdvgT0N>UQVh@dM?_o6m{B9Q*P-!B!EMbYsMYHSCT^ zf&krwJLwEjIgM6_yVNN!ii$v^BG8Zmlmu9QY)bGhJBVtai-eYw9vI|QVcs+%{#{z-3=vX-W&^v0gr1hI+B{-?X zVq+@t!2laDkKSsB8ZN|M4TaI2m!9WBw_8v=+3=jAK|57VADncVeFuF z>Qn@@X21Ex1tmTapmQ$Tpc@t+6O2Z%)I820frr%wSRppV1$OCPmW5%K@3K6S_&ww* z7HpEBI~oNxpW0z6Lq0oeiNl+I|BDM`5>6F?$wa3;DM$ex+5>3y)|iot+ogPpWVnrR2nD(N&rM)GNA(s*bZ-iH|ln+ zxfgmPFN@jk(4M9~n0v|l`(w7=dqDOEECF7KHqM}ZDd{%9x(^zd#VfMpn=9<&*GKDf9b z3HWApEaq)67_@oJdpz)mAkZDwC@3GwHE~uFP#%={lE7#LK^Y%!IY7!~J-j^th5U?< z2oQl|hUYm7@JAaFh56NkCb!RSGbY_Tz!iO4Don~$R6C?k1XKo$Mv4F^(3IM}3!Khg2$b;! zNMz^&@&QY5vppVGk^rgDRvL7n8`nf;ATpsP3CMbUR_lf;0uo=&zTM-u%)=E&n&8Ld zi)?*Zaty|U^X>6tc`+D|>kNnl{dKouFq8_&)=2yplvoI*2UQBl`Lq2MetVqf3_k`Y z-5@6C7vgI5_;JiYKr#^N&?5%)CX#_H%2hRD2_%6p5hx8H;pr{M1kaE(&hg-Uj4#OX z^msU|h=8ELUR4x&%s{G8+OXUrl_4kvQ24@rZ3!j|R=0LB*{kaIw8REN>*cG7#T0n8-wwYw}sG z475HApv+XlGX=)3t*FXkSEYiC!6^ayoS-bjqp|>$_+v$YP`-|f z^X=`5A1D!O94ZD>lS>zrY1mL9Q0tHqpo;!@EWXF*D(Z6lz?XP%bMxb-WWxl;r4bYb zmOvCE8H1TPubj!1sKhU4uS!cf{c#;z4Lsr}Zq9G;O%bWQSmIMUej?DU2sEoCs0^t5 zS4O{@{tw2dSwB5717^eEQUFq5pg1TeN(rho5FwBRL=~u|po{=ppV1YAALaaSZf>5W z2z5)Imz+<0pd{d0LNs4LGI*uSdQdH$Up5!e<8330O9$E|sY`Q4)Oe zfXG62fU+P>U-+Mb`vv}{K2CLDw}^@`=H+U@D##dg{xN}(Sj(vdN&lhvJgsEr|4{l9 zsDi!`S3gu%2n{Yo*%r$;b?veia96_nWZ4nX2bR1iWCG-X`Mg~>01W~6<7uVbPvL)3 zQ^(~KGpKwZt;5sj)^RS2k%7+_Ndc#?S~5PUFHIi0z8onA&{Ydx;Yn_PXt!0C-L;t z)9Q&u5CJF?K@??XKrND75V1=#TdFZvSwIrd$E93|DFy?z0%7_YL%eKXo}QS%xzJny zi!ZvkktM0DMEK)D)uD++StP-!0-`AxKnjlvOIc{#U8`&S+2my24kb%wG*8I)cht465oN^9Cz@Z~xn zPDy5;2x#TbtmIG^qE4jVs&W%v+YGc%TCozowmGbIgo=PPLA5>q*G|rhYXrne>2#_N%W7kCN~O+aJgseQU zpUp}Fih(>Wu2@JS-%#Nno?4AoonfaA-IC{nQ}yYs{CA=g0)jy)#P>w_o#+ia{8irk zVbJdsHbqySk;>qgpBOY6wa>1ZfcW@Ge2mFFH1!VuXtYkov<59^UQWI|qpS`}tIsS- zAxb&=r6lscU)~TkVyFF)TKR7a@`D-$U*gL`BndQ{^;p!{C`Fp(ZS|ZGs*>wuRIe%H zUc>%GKz(o`|D|ZAoKdrA^OHXOT|WLotUm3NiJzVRD_7$m4(X4X`j1RC#K#QuuRou3 g`!cFo)$!H%FI-p(^hLy}XaE2J07*qoM6N<$g1#5!oB#j- literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_6.png b/app/src/main/res/drawable-nodpi/weather_miui_6.png new file mode 100644 index 0000000000000000000000000000000000000000..e3f443cebeaba49c648bc28201bc01b61d2fceb7 GIT binary patch literal 6314 zcmV;b7**$qP)C0002YP)t-sM{rDR zqvT(ld7TbSU9x9*d^ z@|nT(ro`%&zwxlo^_RZ!ZKCA0()D<(?_HPPc=0000) zbW%=J009FB4KooXD+M_lOCUfO3KSg=0wpU6L>Dhr-8eeYFI((K#9mBjAxBwqtC4Sm zw=zh9`sQk`=-mc_bl;;h2yZ z%~L?Z7aZ}(@&Es)*;U=01ohnc?%aE4)~xll3Ivh8d)Kb&>c+FPzsKL>@A3Eed;C5A zpNs|uZqNRYMx!zN^3>V?{xIEd2sHllOaw&wczd^4rYBQx%w{4q{}Dv-sL`bRsEFdL zhf91XXJ@m9RG`tsAP#sm`#0jx`e$c-0_ii56U52o!^7R(_4NYxF+z%zAN+vAB}(L=EX^rhXiyX;>s6uwAW^VqduO?MND}dG;6UR6`DV z={RTh^%bCr#3c_Q0KkP0Ai-TaOMTyu;}{WGW2}BX=f&Q4*cg3S5-Fk^y2dpADSUFl zT0p~k@>>%j?UtrJLI9 zFA=D&&G421FCqKgLNQ@3C4sBUbsR_D{brNp&(FVp{d(E1VMC12Pg@gXbNlf2c6Igk z`s;afZ#Mo30)Dc-gVNVLYbt&V;XJw!R2Cu#hr|B%@%cW>!|)jtR@;I{68eF?d0tQo zy}kYZ{qyJR^S$}s6Ht%+>npB1EC8yn3PSBl*x=#)9T>O1ABG7rcwWJUNf^fQ%ggEo zS^W0)_Vf2|X7Fp{oc+boUsLMy%n6dbe@6ouK$l#N5Cdrg)GBfTe3%o3JkLWvdj0wK z^Y!gb;?vJ7tZ?sYe<>rKHRl>(Ef#mTcZ`2a1jvBw1DT7Q8&~Tv3bG6wqA1HY8_&*P zf4@PRx1T=&{gdKA_n?q_#vk2SH=zGWQv?Cv@_2kiA8;+LNDMByHc(U+x5@JAdb!-L zB0uxVkegq>->x|LJbjAN`xUtS#A|ZT(zQQSg$DmLTtq5Zvd|3w__*Zpc*~K$lm+Qh zn39&KTlU)BDzk0d+dTim^eOlNrx0AdKfF=Czy%bAY-5>Dv-w>I(`dS>gNn9}qcz~f zDI2wahQWfYQJi8@Iyp(?q2dHv1Cr|Bzji4OwI zpyl+NUnOwE<>U1NnCk+F6!zQ4^-=|Z2;6Z#;OQeJ#qmy7C8`&cv!pcYHQ~Q9KH*+V zc!~f@6%n`}5`!;Z>^spT-d!q=fxALIW)eH{Dy!70vKzts-T*opd`59OVHp*ETtt#qT4$m2{XAS3EtuOtHle|WCEnze<9)d z>V=+%2R8Q>VxY~w5(r?v-83HMLo_uqhso3iwBqttw~3p=sM7;{-6MfI{1}9zu$MGBEhN#`6C})c18?V zIo6lw4Kbh}#DOg+@^dY$neZZ3)+ch26)Ep#UQ|zH;ypj2KE$Bl9 zKM=$BJ>So=EXrjFSKDXlDuiTxw`3+zCFg;A^krBLJsU39T~{aksiyT!m)d3`&<6$5 zpf7e(Ul<@dCbl>Da@`cew(srxdoSO3g28sRIfoX+B3s>V1!|seo>%!M%V_dgjylYlvkfQJ{bse^jK{#I zpNx<<1d5A%m2Er^bGIYkws!>xxGsuKhZ$&k8Yk(@G#z5VHjumN($lzHJC2PW#w7Br#2j z2so(0w28*PwsH3DhJifN?1Op7)%6Jy+Q{xl-Cpm$w@DI!dz&8R)uzb3`+Jls(94qj zGLQV|erUh|6WuWUq=-{pWCCm$gkh?g>;lbn#CCcn34CVIAOd(DG=Kzp2NY}%Iv|nn z!@?V7Vb-O`_XtkU3O_zVaEh@X+pQBDueC?RiEAhOeVDo(K|s^7Y4wE!nkKVB5;*&o zfJQHzPED8U2`1!^AjD{B#YHrX65kpcm?@sIjPU(Ef#^|K?2pHtZ%ix?wbro1{Vq0K zDSJqE}uQxa$j0<%VC z0(k;C%wtT2;8$-K5Aixa++F?}? z64-GVaSRY#hbt2DfaY2ypSYiqIhr#wb(&L_z->)i21*im0M0LVp#ce8(+GS!H7pDM z3Q~(?r}V>Z6b1$}z%qbsF=kB?=uzmKm^%>=)rb?Zl%TwyVV%HQ;iP5*R5cVaM8l2| zcE=0?xFHEsQ@0_34M!r_uD>fHo3Mvg%2L=ictINAgFo=`J#8V1;DQpTNdl5VMSyQO zE=Up0btw}y6tT3`aIxFApa$mS+K?V`M;v1Ed7Apz2}eYBnQ2C^^tR0Ze>1OWuV z*y+M7&yA? zumX-$fV+ZE1o+UoBw&&Pni~Xe-wk)MZBjmB;&B+H;o)%H$B+QS2yhqy0w{>dK1$&~ z%SM7?1@uAKFigP!Zzu>j!UCLapCnKO5FbiFuA3?R<+$-a@ePLwpicC0Wb!>OW`%mXupqb2ueLdY6r>T z9YDhmVnEa?vGucSlUm_c;b0&@%%XMYb1F3}|tL8p#nF1xOB;I#hU2cexNa z$_33Y1W14;!{ZeW3&yRPuB9Ll(;~>jM*m)*{slhuKb~iJF+v`BxG6#^L;FLL8bPwd z3K@#J+;RgQy>UxW5cOC!hK=tCkV+2K9bVT7ID6&Xf$aQi1x%PF#hWf&jgY384JIM#1g?lj-C@lHD5W zm_8&Y0)Av?5gGvB_OO$L2?Epzo9bb4_$X500<4F+qnlC#tx}*`j`^}F7rVWB z^aCAB&k-WSWJ3>e_DBJLzxTY{^L!i;WiietJ+4J$7jm$n%NWGAhSgm#_!EJdsKcKK zAR({}?h@1-J^pwEA zqCrXHRBP1;^gj_eQ#DB9Pr*P$fOa`Lw}B*hL_0Q0Ko1h+ABTtt*f!4pycoM`B4F|8 za+?AYh9nUAEg`{Flmhi>U*l^PBK(#VfSW-CQg?{})gdeS*rWOYFUSx32+d&V&GXFi zijR*ZDMI9?H5UqCXElTjOaP8BrXmJYS&B{wG#Zrzia?9uG0(Y)L;q&!YnTWC$ zHog#;RUrUAb(Yv6PRRa6I`ptdvgT0N>UQVh@dM?_o6m{B9Q*P-!B!EMbYsMYHSCT^ zf&krwJLwEjIgM6_yVNN!ii$v^BG8Zmlmu9QY)bGhJBVtai-eYw9vI|QVcs+%{#{z-3=vX-W&^v0gr1hI+B{-?X zVq+@t!2laDkKSsB8ZN|M4TaI2m!9WBw_8v=+3=jAK|57VADncVeFuF z>Qn@@X21Ex1tmTapmQ$Tpc@t+6O2Z%)I820frr%wSRppV1$OCPmW5%K@3K6S_&ww* z7HpEBI~oNxpW0z6Lq0oeiNl+I|BDM`5>6F?$wa3;DM$ex+5>3y)|iot+ogPpWVnrR2nD(N&rM)GNA(s*bZ-iH|ln+ zxfgmPFN@jk(4M9~n0v|l`(w7=dqDOEECF7KHqM}ZDd{%9x(^zd#VfMpn=9<&*GKDf9b z3HWApEaq)67_@oJdpz)mAkZDwC@3GwHE~uFP#%={lE7#LK^Y%!IY7!~J-j^th5U?< z2oQl|hUYm7@JAaFh56NkCb!RSGbY_Tz!iO4Don~$R6C?k1XKo$Mv4F^(3IM}3!Khg2$b;! zNMz^&@&QY5vppVGk^rgDRvL7n8`nf;ATpsP3CMbUR_lf;0uo=&zTM-u%)=E&n&8Ld zi)?*Zaty|U^X>6tc`+D|>kNnl{dKouFq8_&)=2yplvoI*2UQBl`Lq2MetVqf3_k`Y z-5@6C7vgI5_;JiYKr#^N&?5%)CX#_H%2hRD2_%6p5hx8H;pr{M1kaE(&hg-Uj4#OX z^msU|h=8ELUR4x&%s{G8+OXUrl_4kvQ24@rZ3!j|R=0LB*{kaIw8REN>*cG7#T0n8-wwYw}sG z475HApv+XlGX=)3t*FXkSEYiC!6^ayoS-bjqp|>$_+v$YP`-|f z^X=`5A1D!O94ZD>lS>zrY1mL9Q0tHqpo;!@EWXF*D(Z6lz?XP%bMxb-WWxl;r4bYb zmOvCE8H1TPubj!1sKhU4uS!cf{c#;z4Lsr}Zq9G;O%bWQSmIMUej?DU2sEoCs0^t5 zS4O{@{tw2dSwB5717^eEQUFq5pg1TeN(rho5FwBRL=~u|po{=ppV1YAALaaSZf>5W z2z5)Imz+<0pd{d0LNs4LGI*uSdQdH$Up5!e<8330O9$E|sY`Q4)Oe zfXG62fU+P>U-+Mb`vv}{K2CLDw}^@`=H+U@D##dg{xN}(Sj(vdN&lhvJgsEr|4{l9 zsDi!`S3gu%2n{Yo*%r$;b?veia96_nWZ4nX2bR1iWCG-X`Mg~>01W~6<7uVbPvL)3 zQ^(~KGpKwZt;5sj)^RS2k%7+_Ndc#?S~5PUFHIi0z8onA&{Ydx;Yn_PXt!0C-L;t z)9Q&u5CJF?K@??XKrND75V1=#TdFZvSwIrd$E93|DFy?z0%7_YL%eKXo}QS%xzJny zi!ZvkktM0DMEK)D)uD++StP-!0-`AxKnjlvOIc{#U8`&S+2my24kb%wG*8I)cht465oN^9Cz@Z~xn zPDy5;2x#TbtmIG^qE4jVs&W%v+YGc%TCozowmGbIgo=PPLA5>q*G|rhYXrne>2#_N%W7kCN~O+aJgseQU zpUp}Fih(>Wu2@JS-%#Nno?4AoonfaA-IC{nQ}yYs{CA=g0)jy)#P>w_o#+ia{8irk zVbJdsHbqySk;>qgpBOY6wa>1ZfcW@Ge2mFFH1!VuXtYkov<59^UQWI|qpS`}tIsS- zAxb&=r6lscU)~TkVyFF)TKR7a@`D-$U*gL`BndQ{^;p!{C`Fp(ZS|ZGs*>wuRIe%H zUc>%GKz(o`|D|ZAoKdrA^OHXOT|WLotUm3NiJzVRD_7$m4(X4X`j1RC#K#QuuRou3 g`!cFo)$!H%FI-p(^hLy}XaE2J07*qoM6N<$g1#5!oB#j- literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_7.png b/app/src/main/res/drawable-nodpi/weather_miui_7.png new file mode 100644 index 0000000000000000000000000000000000000000..c2216a62a61ac9b1bacf2766d8e2f5b4a1a1cdd8 GIT binary patch literal 8002 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 Ef=n?>-v9sr literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_8.png b/app/src/main/res/drawable-nodpi/weather_miui_8.png new file mode 100644 index 0000000000000000000000000000000000000000..e3f443cebeaba49c648bc28201bc01b61d2fceb7 GIT binary patch literal 6314 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_9.png b/app/src/main/res/drawable-nodpi/weather_miui_9.png new file mode 100644 index 0000000000000000000000000000000000000000..083b91b0ffc0e677c21df4fc8501176ba827f5ec GIT binary patch literal 6924 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_miui_na.png b/app/src/main/res/drawable-nodpi/weather_miui_na.png new file mode 100644 index 0000000000000000000000000000000000000000..d4aea19c3bdee756d51e6a19e5a806dda9d96128 GIT binary patch literal 890 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

-aPhLhM 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 UjcNSfg8@KUUPG=%#xm@G09Nj;E&u=k literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_10.png b/app/src/main/res/drawable-nodpi/weather_sthul_10.png new file mode 100644 index 0000000000000000000000000000000000000000..45b819359c269a793376ec06746131d9bd855c1a GIT binary patch literal 5516 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 L;ZTLSH~oJAqp1=) literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_13.png b/app/src/main/res/drawable-nodpi/weather_sthul_13.png new file mode 100644 index 0000000000000000000000000000000000000000..9dfad0dd1e04d3078b44fef942c9016fd0578dd6 GIT binary patch literal 6696 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_14.png b/app/src/main/res/drawable-nodpi/weather_sthul_14.png new file mode 100644 index 0000000000000000000000000000000000000000..21572fbbdf442fed4c61886bc079383b05281eac GIT binary patch literal 6526 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_15.png b/app/src/main/res/drawable-nodpi/weather_sthul_15.png new file mode 100644 index 0000000000000000000000000000000000000000..672239ba41ce8ec50b54663237ebd7629bfd6924 GIT binary patch literal 8109 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_16.png b/app/src/main/res/drawable-nodpi/weather_sthul_16.png new file mode 100644 index 0000000000000000000000000000000000000000..b9212816e07031b1bee0aae383637ee0090ab301 GIT binary patch literal 6717 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_17.png b/app/src/main/res/drawable-nodpi/weather_sthul_17.png new file mode 100644 index 0000000000000000000000000000000000000000..872cddb203d2b72d82c9a88750c4c4f608d47701 GIT binary patch literal 3847 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_18.png b/app/src/main/res/drawable-nodpi/weather_sthul_18.png new file mode 100644 index 0000000000000000000000000000000000000000..36f52825e9ff5e955501d5ba9c0760c5623c2d1d GIT binary patch literal 4694 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_19.png b/app/src/main/res/drawable-nodpi/weather_sthul_19.png new file mode 100644 index 0000000000000000000000000000000000000000..002c9ace511e9801220f3efde196ea1802ff694c GIT binary patch literal 3271 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_20.png b/app/src/main/res/drawable-nodpi/weather_sthul_20.png new file mode 100644 index 0000000000000000000000000000000000000000..e30db16d7c61695084437b088dbc58e487cf54b4 GIT binary patch literal 3466 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 Uc$nbQKkf+_=-{;LweT_j1F>l#NdN!< literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_22.png b/app/src/main/res/drawable-nodpi/weather_sthul_22.png new file mode 100644 index 0000000000000000000000000000000000000000..352dfedc5c02b5ccada194ec49439921fed4bf3c GIT binary patch literal 2911 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 T;E(_67Qjf~RIf(IDfWK=YIJCw literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_24.png b/app/src/main/res/drawable-nodpi/weather_sthul_24.png new file mode 100644 index 0000000000000000000000000000000000000000..0268c2bf2cabfec3253119a1048364ca95749f60 GIT binary patch literal 3861 zcmZu!c{J3G_x{Y7!3;A-GnNozUy>zcjTyV_Td$or+q@~uh{!fW_9a_LMD{llie#IS zEwUz3*~v~4!dSk(fBeq*{qcRyz4tliIrsVNo_o%{@n$A^2sjrU004x6zP1GbfJpyM z2;I4IbG0JroFvSQtaS8zjo!Ub=&l$0|8aJ9Mh@h9;Bz4}PIzr)?8kJ`P*)JQ;+XBZ zi~gR4i6yYtYv2*12RyrIw zgtqTJv(@Kca4|%!lN|26)y7Br%~M|Tzp$vN>F)P;V4D-=X8wL<_S%=_W$!ED>!I?J z(|NBlWY>Nxa^ycE_1y`}^(Bli-|>l!R&`jvc)Dkw(keO04^%w{legx{ZovMruaWOQ08nprv6E%JLB#_O5E2s+1P&gua}Tww&aQ~lax4aGziyf2){MK z+9ncx_+B;+OiPw9yG6l66E+mfa8FKRFk)|J;vzNBrJ<{YB`NcyrBE3KW6XlrONlav zqP#L)=wo`ki-GgqBQ`wVUd)1r6hnaPtX)#lc_g@?1ZX94W0e7|DDLBDh4acEtQ;b5 zpqtTCA|EF2o8h-`vd^Lz0~r$Vo7xquVn5^<5Qs}+^wRkXaqL+&8+w&wsYomI>b47g zI$wm|8^4Pkr{YDd%o@5w?Zwzd*Ov&=2n12Y_T#ygC6aqyoP8LZYd#72#*GU=%f|&~ zUL%v~&Avkrw}5ElLS=@MijPpcjBS+r>Vz3xg;!)qCyM3sgfspr6Wd(nMGgXYTyn7o zVd;Xay!C{SP<&|+9KxCKoEe(-*@oF2^QeR?b|*tjz2$zqIlQ^noFnBI94@o=UKTpl zsF`Fb$sKWCFAEjolPn1iu1YYOgp$Y^R;GhDBp}-cN49d&VUhS0%bd+Be)tiVZG+!Z zcQat=n~AN8!^;LQm_^xW4mx-kv-H`s*qSkvekQ_XoD5ictu5`%&S^9@=~0*NFCwGN zH9?hlwbvz5wQ)SXoEmY@@-JO#y-uetS&)<#wX!x6o>&*S&Atz@?Sl%ah{>pi@)Irqtz#2^##Cie=UjywhdD%c zxzVEGLixZDG{s(R{53^v8A6b%xtgTrIhKEW?_Na3YDc*IXoE;R#1l4sZFnx$ybie;Gf*joAy8v1j9-qSzOGMcVF#Fh4SiQs+pWjRfjt_#s#P$R=9X7c{<7clCU1WN z+MPwint05mBieny1gY+)88lx_Zj$SKal|Ke3^A&a0YiFQBa7ZvL6v^o=@j|7KK!@v zv~PMe)|=0^?A`1`nzB5HA|rdaXbSFF&6H_9dx2j9#1(`36E79JIZI0#vVHM=aW(eq zBbCcd9K`EbkrXX2&|8-F1lZ?jP=SwQzgBM5_ZIb8GGw;8+Ue`SQ6_uUt9Qv(bTFBw zI##A2uANE9O@u-m9{G=im%n;+G=Day&>&f{!8SI(Yc6m_1KHzq2{#1!IXWIR> zrXB=(fxMdRVTCKdL{zVaK?{@VP5%7pQiZ2mP0k_ny1=PBHg!#+)8lE3vt8zXB3h2$ zQB{%2jI(3K^G4%XPM(e|i!N|hKO?7<&)aJ?&_)P(G18QmP;p32kmv5!Jrdj?q#YRmP9|oM>C`YIrfCS&ksupwlM>Aue?pSV%QAa z)w}I9e!L~io%Z7yZ&za!|Hb0YM8k+;w2!UaM(jPJJOxOylUil-V>-sU8rAehH0pT@ zAAor|QQJWg5of`Y*bQ}8{8d3@{X|QuHTX!a=woGb(XVkA4=D;zay!?%_A76hxOe+i z-vh@%x<3Pqg{sWgo~TxN!h$|vh_RWPAVj35sO^l&xO8L0Ogr7ANrT%>oGI$ZD8mLC z_0un3gl|Ig8U=cDl!3_P3xj{0^1dIN*Pt!yAsk#dU_XaSAvlnQ%k>To8Vo$Uau#;U z#*(0(mqndYeRs*cm&@c@CR<1xwSWm{snoX60*D(jT$kxOqm`yv3ykEn)sRI0?oQ!X z*>B0MFV$~!h1yf?L|s3kH}UIfW8mo?1od+Hs&oX`4j;gXtpJZtbcZ;h*1CrB+%{jV zTbfa0PlbX__GeC;INUewN=Eg(?m1)e=wY9ZK&QyX37F5Qt?9}l0GfZIqtSO6YxHNz z^fxzY9~;gqwbgktgK9`@|JvK0g(I-^5kbGfK~I-#f`SZs20PCu?D-d=?qTX<5ggc| zmQ(?pux+d+Av+zE{9Qd>*8p{21_q{09{)DX5KgVUXi{wi(8r&c5*~icYi+Q=J|%JbOoGZFIFR% z6-keRH{La({w_oi0Ac@PF>v_W!_@zZp8B|3lp0WG6$_Rz=rPa8fL(K~4Yi#nRvVFs zVcU)m2hmQ_JS^s7=5IBY;i$3oVeUM61I+zCp4Ftwm|;&-*wn-d`EZlKupO}v0lQq@ zi|&SS=rYpLwBk-QLDT`>yL;4)zv}IE>i6)S1!mc3U~;?U+p#ZGlciCkE7N`=Sm#7T zB%z^sHradr%ig=f8M#qwed}8V&w|cc4Xbn|3-MLDEk2)%>~%%?rytxI6V6_UQ;e|p zAN%Fj`3LNV(JI$V2nyLxSu7F3q?$8dlBjylLcFp45L~v)NXm=Od3b;_)5!+f>xn$T zvY(?PxU*cjo17QtO+eR(NCQO7uZC-&_oF-uIAqlHs3@)thVAh?jGt{RCkV}~3&T$Z zFBj6IQWYfjt*wU(q{cw9zmn+lGk_lxoBld3KE)SERm%UD1^n?LVe z{p!jU13oxIK3E_`t&sD*`=)Jukt+&!n>=o&{}%HVB{^l5d)*RHZiL?luUJPnRcGl- z%K#DWba3js{KcvvZP4BASAcW==7l{oubzm^fc-;(?T;V1wXa)I4|@w2`#EiZ<378j zL-Q0;RmXP@vNKmwpv2L#zs3!zIuO$~6+ApxN_mm8WrxWRYm4ht#X1!6-fT){FNh_A z-JEd4*foRxsTM3u3b!;6%IOr^AGx$N%OKC#N@7ZV*T&b8xVm-pWv*uDxn7pZtjUG} zBlSbqE=!y2)$mo}cuoo2T796DIZM9Y#pzxnXqR3V3A{L65@l}A_pCtgIbvHLv$4l3 z@P~^dXqar2Q`>nJp#4ss7#vc8o!UasJkF1yLFRuvRabSq zd@?roXFA$)7OpQy;b+Y;Tjxuvtn$=gT0h2uQPww5Js`6EiF$(x9nJ397utOP(3L-) z{41J#f)Eqq5M>B2PiyQdyI}o3x`kBKN zoAw`*V98ajcOj|5VPX+1bwbE6I~<8EtOCbUH?P)X!AeV}B$F0jMp+n9(xUVSUp#U> z)*lEf=PYyXP4kirL}qiAu41};mHoboC(K#-c8DjLE4DdLhQIdS5J$OuN`9IGm#KDT z*eSgLVsoVF_iR%FGF>)8SLpN*-2$r!J=Pe3e-k)wzky{cke>Suq!%Lvd;2ZLsM_d? zJAk0^tTVH%!-yx_)#NSWo(S-dH84KSE6Lu2Jh<8vqO3{eS&@*`IA z$i}#a=TCCU6A&(KrZp`>LfM@qWkRTq{PvTmSfobxj!R68$)a*a;j(KIj~YBs^!+AI z_Cx*$|6zQxb`C3nWH@Z2`4cB=N$@XKzrm`4v@_mKE`|vy4$lLbH|RRTuOq2B#If%) zpBI66@Q;)YulgCktrzTt17u4~tiT&QXTdA$Z)ef2Kr}pQ;*}YhpY~W>#)BdNrQiIk zh+1(1-y!cGM5ICA#vPts=~2>ID=J$$`upl*)!(RWAv&H`ccc$ff literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_25.png b/app/src/main/res/drawable-nodpi/weather_sthul_25.png new file mode 100644 index 0000000000000000000000000000000000000000..1b8b153a3e9141c7e9fd04cf61025eceaa981586 GIT binary patch literal 3708 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 EUsNjn(*OVf literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_28.png b/app/src/main/res/drawable-nodpi/weather_sthul_28.png new file mode 100644 index 0000000000000000000000000000000000000000..ee9dde6975aeb23a7f1df843e598be66c3fd9cf3 GIT binary patch literal 5002 zcma)=c{tSX*T+Azni+$!4`If>#zdA7Ga_UeOGP0=`jYzEk|@krvX}8qk&;Ozl`L7y zHpr4>|01PEi+!>)4Ce8Bp8uYIp69ym`#R@+?sMJu{m;41xn8MGj@AMwX%qke0=71m zE&u?c{bwT}`;j|RR=4(zjg$RJE9($@*-szk2K)cl+S=OM`vwwEPdP9$E}Wc%p~cFU zyrPxaq_wp4jA}v>vYvl-zA%zm`RgZlk%4x16D*jW-M^DB+{MuqSUjuQoAmOUK$s=~ zh|Jkql1@fGWP7F86xNA|d$&NHGRIeWRO2Y1Fy6-Hu4Fa0w?seY#`?hc=k*gVpD!bz z;5Z^4^M4uE0h3hrMu?GICU>`KMxJ+UZ)CE3;-z_oJnh)HSDx4S!^UF`yd=M4&LmSJ zDR0lnmvcr39gpii;wJSK7sn7%bQb6>Dzf#h<98qONw7goi_9<$o?a! z752+3Pd0u{=H6qY%VAaxy*%;zN%5Sx2&5$pPR(t(Bn4X0g z^w@*HO~JSC3v1(Sr#h=!zakeRp&zo|2#kTE=cX_=8*g;!|W#R zEWPMJck6DrO}~Kh*=UE!I$Qo163yON8x71ak=SG#b+N@a$mU~W9|+|a?ki;Zsd;c! zTZyMk9+_D9gj6q5Lnt-!9-riMhLF#L< z80I|^)&#-ifGw(&z~4z}_Mp9drx`mSOP$#)ii$z18^AcdiSgd?8IGXXd?${F&44MehSq$d3fT4z~6@+6TKN zoIK&uKmFpYA$+Wwd!uxRTuQZrp&id85LhH|5E%O?Fv6GkwT#TY;sHx}tO-ela704H zm@Ix1U8bMb+edxu?OGRR`mT@TnJ0G4YWRWJpF^M2uSv#_-d*9=XQwN>(2^(&_OA7Y@n*-8g{NlGP<(UiKhQijM+!!nct_7E{A8&Rs>$(pdMiOO@ zU-Kt6_)PZUs;TX4%{fDgzSU&JkG>H!qKF+sC4EG2*UPY(&BhO2YS4Vq7pZc843Yv$ zumKJ_CYZ9{Uv2j~90r)N@;-sPwX!+N7;GHUb!N4N znCs!!iY9gKdqYKr=Dok*(ttz)Iz~Rs5)z#eM=qGOZ27f4O`9+9N%Z0HN8!*9&5ey) z2X{I|V_cTb#WlR9GIjWHNt0y7*Z|hfW(O@{tMk;-abSGg8quca_U1d5UZ1|sc%|~* z_dAc&QeT)`u-?at!F1ncxd}8l9t9D2xwv;xXL#sue3LSKvbu~+!!bcv^4Ch7#eLqvoTG}fHo*U!LaeTL++d_L{u1e$Q4UVX_f0Zza>r!x1d%(CjjNDEO|IL zg9#6_`*ue(EVEV4w>)_Nlg!aqc7L45tkD|>0nz09LUqIZMBw(D80GtpSa)FwUZldm{IrCVnu#cA_VauH*o(Qe2XI~WJ3(*IfUO4RVSI! zdo3GJo*xj!C_yzt%$=F~LhXGPDsVp8)glpK&kE?-~_Cbn$!pisLuq&14MaZj#EDD5GQa4I+HodklQ6e<`Lr4}J8@ed#i zU8)~+7R9^QVM`Kd$);VmfHmU2m`w@IP0>Vf7=sL{6(^!j^G$3A;EQ@v5!<~9t|f&4}wl{eI=vO^n2RRmuy=Vz5=uF((Njgq#%B+)9?+tYxe^&4%p574mhFRlI?&wM znVpvxzhABnkcm>IRd9FC4sIE;VtdL)sCP;8@!5JiW<|9R!Y&ROp@_6OtB0!2_k;iL zux!JWckNFwOOBu`1@~)RwRc4+QCc?T%@?csZU!7VhAIELBMWPA1BT8IshEfHy8eNI zxP<){n{Ro9^ZZokzv@I{)f0A4uv$Q8a?Ms_9-h0Ay2X0y=>dbv(<=IO&Uc7~ndSDQ z%H>^+S>7gP;Y0wpJA72wz@#e(Iu_KGQkdVqE#qv$aWi53+bF_ydpFrSKWEFNJe-+- z{-^oG-_B^hap5~3UwDukye-MFD*shkq+0$m9Tr5jJgc{q6o>nVI$VU|uU1x<*2}vh z)9^R^tr(bh0&zH@Ep)*$>hB~tF3*Abqo`uu zCfP(%sp&CSueN_92d%Z+Z-ykA9|$}EJwY_ZswkL0yktv6rtwW31Q~*t%8-40anzX1 zw~O;_TLmNh@^YE!+*qb320I_R2dQoL1=#N%DT2n_BAd4Hk;lk-w5vXYp{H8}si&>c zQ#k>2Y)Jk{9GQ6#zG@dD1NTG{n~RT5CY)G|WZ7$nG#1}7*YwpAT4~x5*H#nSmhn}k zXbGWwsk4a$?Mron^UQ+Jo3jbs#7GLdJXD$4Io$0bv*DKS%<*{DD_Xg2vwqCILe|=_?i=##MV)E0+BOAa2~T4BDW6;axWp7#`2pj zugx9_VK%9}y_+?SS-{$A@1G~>%iPDAoli304K>Ew1SC!Mu+tD;_|CGp_Ep#sGw=^v zkN0Xa57zDSQ!P4tQut)b3(Hgbwoz}eua00r7;-M&YSQRaSqz2&#mg;|QdB#nrLP(k7(?a}|2dKPo5T z2Y>l@F>ku*_vFB?56S2v-XDlbj`SpUlNo&Z@(D!g4L31Upb!|oGZjL@OK~p=K5W*u zM*wKB?PnYf%)kJW(C%T@R5HT?IBBA`x8t7yPS!yWAmZ0Z>f_&2K?EV_&xFCM=0vt+ z(ir~?kd<=pL#r-^8HJ}?9zFxgu92plu+V?V-!`n$xsQwWxoOZlxpf)pr_z% z97YwpECMNky9=xnOU=|ih_GNe&%R`r%XL*t*qMN_a0xld_?|eiuYnc6V2oM~$wPqq zO{uzJUnvA}Lf)el@Wdfn`7YpTgXo&A`=9`!UlFc~LSQ-mb2M${QM#+T(^TBl=KO(j zD_UHPI^7DPwtoM$_Z?@J0+VTso}P?Tid_F0CC=nRqKdZ;`<7I}9 zP>+g*+L7XPX!qr%{-J07t%OIwWo4%+h`#4_ZBZ*R+B0Z(Gy}=`CfxczKIIXXGne25 zqtxo3nS#hd_RGK%EI8o=yGz8OO6mgiY0<)oFAW@Wd7rLTAqsG|6y#ND|E=Q0l z1Gub2|Cp4a{=UiVuiqrVz+vFw_JFrI>)3z05q@h=PPlrDy%v~Li@O}%|I8rxtV1;U z;jMCEq*iH1w|##S4GBh(!R0A!_c?e`u*y8(4Ia}XTj?#6Bo%3?#!NEwTs3q&hoE|$ zbk3z;&@QvsPd?7>-zH7d6EthSs*04hBQ}f|4hZZiVC`nc5v>S|3oDV~VC)2ad5$J_ zPXaP)^0+9-yINKh7;$D?Ea^qgYUHj4hP!_AMlQW~QO&M{$~A~G-KC}`K`^GWIHr@J}3E5ZFL3*@4AOf2{;_g#vdop)A&a@?2B&tDiD54ha3+HGyS(Hh1Dj z&_DylZW_L);|@`$WBm5o6l-{Y)q3~RuIte|rTMj2e*XJk*Xyv9bl=UdC-MacD zzBoI*@qJN3a#hm~1+u6Y#KVf<4dK!balaU;iHV&*6>jyd`~UcR)isLxVmQm8t9T*! zYJisuzLEZe7~|7!k)BRH>~Q|xyLTw>_501Gv9DCp93ms(N_;m(KyKgP+HuYvTPkqk z84^FqQqaLn?%1os;D0l|rDpW*Mf^<6#=U&^DX6WDDN-5fLvzz+O^sdYi>=@Oorakt z`}pWG)L4x}`eE+nVLl_&OB=oH@O-{mu4++)^+oEJtg{wkD(rxm#i8B3rB_4D^e;8r z`ktKQX@fhyJ7$4TH)`bqRho-_FrVW7U94I7dd=$!g6pOtPYAm_{G*^wQ0Db6yR#eF zP8z71%2p|+CZ8!K^k1ZTZr$9n`SAJs#imlH?{A%1+inOkwlBwkUm=idLOz2lHJOyE zEF!n;VS;ZXJDA_X`K;GAlCQ7dS_l@J;bSOTB(5*M#M->y3wrYBrqq!`g@E5Z0w3>!7e3-D&W^$y4dhUV}o8)5Fu87?MPgn(aO- zfEZ>M@3Vq;2TqLbvx0E}Wp=Fb)A=NqPqE*!0?$13TsFBSW<~$FVrWB#N*$yoR9VtT zR}9CLvjt_t_OZkl%fR@Uq>s(*@*wk*epy_ye5`r)i%lsf%vG~&(zK7(hu~udpvX(8OtVz)zTa+b@ zvL!OIYa!7uyM%<{^}Nsf$9p}`b=~K>zu$Ad=l}CbAlR7ma*1;R0C@2hCPV-r)PEHm zw%>7>Exo<}DH5#Cn3|KUG<6;R|J&T$l$O)o+uQ5u?SK5F+J<;BE-}mRGG&xJIK02b zMkdeOHIf1UtPuuXXA)D($@V%nhTceUNhR$>@%i zIQ=e2hkoY$+q3t2^voI3?}DPO-=q7`%ejv4c?yPB z$M64vddx1+m4wG#8b(7NRIF<~UWdijUA4Jd*P;lVd=;TRI~_90H{=BLzJ!QBseOj= z{arL5ckCJ0a|eSGwZ>^K-pf%7nz)xg1JBDVhsM;`8IlC4r6R6BxCr(3Tu}7fwafFAOkaFW7$jN_uG;%uvk*W8F zR^P~%WpSvmdh~(JDqJ#AA?>mpMkQaf>Mm$F_mM$_PJ38H^T*h`l9c`5i8$1ag)Gc9 zSCzj{ws+)1E0kfq^r^+=>}l&Dy=GMK7?)^7^05$jQhmUftpTUqJWhY(suxMcGNR`P zuvBsHo^;7)1DW#VqulG+LlA8jCbC>6@RXPycA#iUFa%y3@5)#Leh0|#CJR?WG|b19 ziPVZ`vh`@WA5Gz*)^VnoIwboCgFJ4-icS5rs$wP0jk9-PMMk#{Bkyo`cS54pmYgqG zYJR8L%uf7#Wii3!EaQuRpLA|n?&R$lt<%D_zeOe}TbNNHtfkXlE zgyC4T<&WskNi`Ew7Ncnq;!SgL+qMJfRE34k>Z)REyKPJ2=)!-THgF z@Dl3MMx2}Fc7-lO=T6q3Z6+esl&RtS+7$F_LC+BkM{O{*{ zD{47!;xT`n;CHwBB6g5xA%}c>3hvUd1wXQnjAnT>#h3 zxf=Gdh4l@!jr0=4&0T2=S^~+!s$$t8CJnH2L@pzOO{y&Ixu?Y#f1?%|vl_#JsWmE2MDL~CgsmnMUYnp0oRn^rB@31k z-DPN76+Uv=)6x)O1=TV3^`_u7cR_8$zIo;mY?CAea^P2fd0t6IrT#Hx%Sy!;THFjW z^3ll`4p=1sx*|yeJ`iG6g~);@3TFqHIL>D?|CqXh$u58w1qR=o#heY29= z95e-`9niZ9%w@a@%{E)@-=hVvuVmtmlwk}DZ^H{z9T!B6Jg)I!RJqdH>FOJuau~)U z#6%%_nzRv>J_d_dj-4j$Ucr#K^4k+7TJ8;UgFcTJn~+ahFly~VV%$6cBOdmAM*MTu z9wgDS*t_Nf;MxLUO4iB5RocMdJAkRYBuu$(RPhPMJfU^vS7!-3Ec!#PyGWH7F+{HZ z5@_+_0HN|{?l8$p4~}aHG}E+jbhDqmJdDdx;G9NrWUZPjJIy^y3Jf2bJ8F2t07hc) z1OHf;_L7u~kn5pgTlPq|Qx>Gm68z6kG+4((&+0 za0}DW<12}2@f7TtbAT$pflPbww<@OyPo5Wo7-GP}FW8y0H53M9I@L_ItTFvYBGB>i zIIN!nEGD$8(nAD*W0;Cy^LP>4sQ+Ykk16Q-5Ho4-t#IBLB4?B|zrBt)rs)k`c_fIo z$bVQqIw8`i-gR>-AptA!rDHmXTuy1sM=&mRD}SK)TH{7{V1qg~j5KGjlLqqu7-xg46x@<0^Y z?f%Lm0z5&|^p~A4CH$aoLElSncBYaw6u(k>8yzX$9f)rJ-l+vSdhvxkq9vldrswt6 zL<@_>meW`nN(Xelzh7Azd-3zPAOx@f~kE90f{q?OXbuC4y#VFRC| z9u3S|L3X|u5`BaBhRFB3TbA5x-h68&ZVk&|hSX+uZSh*zi*u~ADc(5Qd#vws1xK)Y zTZMS|{bs2ydlZg!T-Q2md2eN;k4SlSJ^TbJ$4KYwQ*B_u!z)%(5Vp)mIW!*^$1k%eVD#=wFeXVYu*Hb9+MG&4U&6p*7zZe|!jsVKbzUMKxG3F7c7ctjUc z8WT=!qC9kFn}kY21M$-E0#B!bIe%R=KtARsXq=+1|3P(m`nXc>XMQe%6oz0|OiegJ zV|~}elYn^I+JrlG?r~=UEnf&Z4As?;z(VK;D90I+9C+puy%4`d zbtTg=Fp!HKf1e^P+QPrHY@@(I^w|sHf=Z}cN z^yVzxR-M$Aa&{`JFZz{rgV86-qMRlhSn!WQrN*@Iys#D6+sTt|y|V6qgda}zi|v4S zXo$R9wpXF%+mE(F*AP9IzT6E|+`=(E$2C=AKAfugdo4xvnj7I1IC+$RjAsTu^BzMz z6=s>Wic3)(Y#6*z@T1+%NpFDrq_W`9A@Nc#Q~Bh=fG01w;fxcwn7fY;`*VEjl>A=% z(gTGwKFm${WiKDIddW)KL*X^v}qJKGB=~|b#+~YB-7yEJ_oi}IyVJ*@fkVOYt zs!#Wjmn4RQTL&sjP^5M>5f2}$ zs#HCeOg{ThaTxmJ=ymCkt-p7}6=^CtpHl9hPvd?n1p7S@nBUf>pgbePxuxVDa+`mq zd(1paLa3x_5DG;n&miTT#$WBd4)2KiC5-?+DQns2t-g0>u`41r{BA9g5-FP3UDlT_ zWeX@B*-3+_nf0%|<}C*SUTtB#shL(&ZXG*J64Z~wr~HT3U30#| zS~XKQvgu3t1L2}zQsdQ+A~B90E;SWZ;UOJ&2W}c(NY^3y&9@VLsX+AyD&bENg|a|6mG6lT#KEU*t0Pg7z{^FkN=pURf|md&gB^w)W{ zjIK$Dy4J9{SMX~pS^6^4K*K^Y#1=YTlg93XP(>GVtVlSd9Z`3N@|zkM*K2U8i1^yI zjes%f()K80+Jl87vZcLIGBokUBhsZqQM5?L*WEt9FIsAp-??^8qWW7Kfe|*a=f!!P zB~3OONF00*naeXSSV((;px3N)o|z8z<<-@ ezdJ1JHHuk1AA4rI%G5sH0=%h>$unbj+W!F6<@@~r literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_3.png b/app/src/main/res/drawable-nodpi/weather_sthul_3.png new file mode 100644 index 0000000000000000000000000000000000000000..54fb8d6fb09721e5eb4c61ecbeaa53fe1e2f490c GIT binary patch literal 4887 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_30.png b/app/src/main/res/drawable-nodpi/weather_sthul_30.png new file mode 100644 index 0000000000000000000000000000000000000000..730d99ce9aef1b6827d2862861d7713eb0c9cc01 GIT binary patch literal 4681 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

9&fZuy0=hd$f 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_34.png b/app/src/main/res/drawable-nodpi/weather_sthul_34.png new file mode 100644 index 0000000000000000000000000000000000000000..9515fe6cd43d66c39a861c391128a62b6b786856 GIT binary patch literal 4524 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 N0Nu{n_CAf7@IUm{=XU@A literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_35.png b/app/src/main/res/drawable-nodpi/weather_sthul_35.png new file mode 100644 index 0000000000000000000000000000000000000000..45230ff81dbb21f42b6842c6a30fdf52e6d72558 GIT binary patch literal 5100 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_38.png b/app/src/main/res/drawable-nodpi/weather_sthul_38.png new file mode 100644 index 0000000000000000000000000000000000000000..f617b46a6ea9aba68aa764e3de699052fd25ea8e GIT binary patch literal 5049 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_39.png b/app/src/main/res/drawable-nodpi/weather_sthul_39.png new file mode 100644 index 0000000000000000000000000000000000000000..e3ff84e4f7c49c9ac97d1f316f1e21efadf04f31 GIT binary patch literal 4094 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 KEQ=Z5QU3#jnr5y5 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_4.png b/app/src/main/res/drawable-nodpi/weather_sthul_4.png new file mode 100644 index 0000000000000000000000000000000000000000..45d41d3c4d5937ccc3a9f00db0f4ac7679541cea GIT binary patch literal 5032 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 Y5BQDFp3Bw>M;;kqsAsDCOq(3}Ul(=|SpWb4 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_40.png b/app/src/main/res/drawable-nodpi/weather_sthul_40.png new file mode 100644 index 0000000000000000000000000000000000000000..e5b8a9c92bc7ccc676dfa1ab2cc09a6dc44a91ba GIT binary patch literal 4508 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


pC?P3eCmZGWp$i2~7!bWCT`gnQogedv@42MNuLx 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 E52J`!q5uE@ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_42.png b/app/src/main/res/drawable-nodpi/weather_sthul_42.png new file mode 100644 index 0000000000000000000000000000000000000000..e9665a255b2df06b07f2064d7c52d520acafb97b GIT binary patch literal 6413 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_43.png b/app/src/main/res/drawable-nodpi/weather_sthul_43.png new file mode 100644 index 0000000000000000000000000000000000000000..8f7b400ab54ba113248f0dcbe23e29c173ed4bdb GIT binary patch literal 7261 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 Z-iVkMO8+2R@XyQx=xX25s@A|o|3CH8Ui<(6 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_44.png b/app/src/main/res/drawable-nodpi/weather_sthul_44.png new file mode 100644 index 0000000000000000000000000000000000000000..43f86dc0e66e82b00b1048ec9d954d0c67867dcc GIT binary patch literal 3677 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 WcBjFqN%+4A2$-8#8dn&3F#ZoGXn7R? literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_45.png b/app/src/main/res/drawable-nodpi/weather_sthul_45.png new file mode 100644 index 0000000000000000000000000000000000000000..35dac640ec49903bfb05cc99fbc0840456849dde GIT binary patch literal 5159 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 B9OeK3 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_46.png b/app/src/main/res/drawable-nodpi/weather_sthul_46.png new file mode 100644 index 0000000000000000000000000000000000000000..ec11ba511a816d13141b43818bd6e4168e29eb99 GIT binary patch literal 6174 zcmb7|c{J1y)c-%TU~FS#U(#60k{D}3j5WzJq>y4Pq3rvTn6ZZ}$rdt7cG;JTjEE_+ z@A5SwTb79|lVP5I|NZ`ap7*);-1EBUp7%ZH{&}BZ%&xJs2(kbGz<%9G-x2^oxc`?h z$iGgefWgy$30AN2|Bs`iBTZ?qfSC!a%XxJAsk1Y|tLuyFs}Hwg^Nnsq zMc~^P=hs`Rhn`x5;AA~sD+1aVBO$QcI;8^X?wWl=V

_YF5t)tv{-U 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 PCqYd~Q?X9oD*S%{q#fyM literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_14.png b/app/src/main/res/drawable-nodpi/weather_tapas_14.png new file mode 100644 index 0000000000000000000000000000000000000000..6690be984d389f116f943ee5457d742e4fb69258 GIT binary patch literal 8399 zcmZ{qCY~X{B2lX=JJ0=YG!n z>HYA`Idgt<=FH3=a9tClt*JtQM}r3d00`7n72f~=K*awh4*0)LDz#F=e}HPM>nW*t zs{dF1zwnx##=ybBCm|uAqH-G_cOD$H?dY(qt~Lq{)y>Y9@$k61x*8iBJ3c;MTU)EF zt3x7@9A(a9|1FdIywTJJfbqys41BWt<2A|hUKWS&Z$%c^3hciC0482FMLE5I+`r~A z);V3IVt)OF9|8{1a2K&SaY|a(hDMR{+a3<5oPIhd@t^U2(qS+rVjK+6{{8- znzb92#FrmXICup&I#Hlvl9SAe6FSV)o!NzPWkr}hzT7h03zW)xo;mR%?BUv5%Dlep zC?)w_1KFw^2P*Mg=bz?fA0fKS(-O==N09O%9$aJv!Ww4$KvazOXH5JUiBV*Q_2$B1 z)_)MHMH;$Ds471mrtSI6W?Q0sf^UnHEr9To8xthHh!@55q!L-+ior^*K2V6PKDKe` z`%2W6t;%)4JPwWB$j#4?eYdHfA}AO>dC6Jsz?-nSm5b z2CHT2a+_1b_CCkzc0Xl;(HG6Lt%9dXjoF0j7jut0j&8|7>X78|EMZ9O!e63IpZ!U* z|8LYGrLw@cRcqLz4HqQ}UfZ>-?R~`EpC^5!#=1XSO7H7@3?lhPg^tnCUX{~>)|;TZ zal6@(_E@pjvB;iBtz#E-Fqxj^&wfN<(5}=&dqn|a;#OFY<(|3W(XuL3W^zxOI*add z_zqrsj|(w-hvm0{=)E3uUKlJ|sQv{XK3fo)PC;!k2;QCt-Y`;2hERaP>;zANRi_I- zX?M@gl^~E9v^%b;evct)V+gj;`om=@zB9Wz;-PSS80~jg4he4J)r+URw&Gr)j$119 zA#hnx-@OREgJXhODcB9U4yeyPLp%N4XfL(+FQP~Vjb=T|i--Syobx5Soa&xQvb8EK z-IDrJ`nF=wfGR*9#hW2oGYPO`mrX%fZ)#u64WpATCZq^+gdB2HHDEWa}?qSm6`bG#V1FvQqsd6f0ejb>m@u4P3E;cPs!zOaOcT;Rz7C=VwS%lNF

_YF5t)tv{-U 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 PCqYd~Q?X9oD*S%{q#fyM literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_15.png b/app/src/main/res/drawable-nodpi/weather_tapas_15.png new file mode 100644 index 0000000000000000000000000000000000000000..f545f6ff6fa54bcefebf874b8af0e7355eb2e002 GIT binary patch literal 10157 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_17.png b/app/src/main/res/drawable-nodpi/weather_tapas_17.png new file mode 100644 index 0000000000000000000000000000000000000000..ec73390bbbebddbe280725fa9766577218516550 GIT binary patch literal 4050 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 BflB}Y literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_18.png b/app/src/main/res/drawable-nodpi/weather_tapas_18.png new file mode 100644 index 0000000000000000000000000000000000000000..975737fc888968c668270225eca522a495712e36 GIT binary patch literal 8439 zcmZ{KWl$6j(D&VOM|U0}CEY5e#2qPJ(%sz%(%jJ~AR&!}3Q}@(%h5=ev`9$^C?U;p z_x_)E-g&=0JG1lK+1c6sva_>0zfIE9c}_;mL<|4`$kf%84FCWj;(wG7?>|o_qe{wu z;Gm~vsPf!b>p%1V3lIb%AR+aio}uI9iGBADD*N1fWYnRh#j>Kpb9i`bYs;;-m)Gl! ze!)jj=^b9dKT!M(D06plaq;l*u&=LAJvMRw&!6*)3#*Fi>+5UKM;vMPUbXo$>c0Z4 zFAa2F0PqOOX_+{&k91W|%ad1H`Yhf5&c@Zgn+OR0bv7yMx~T#Huyd;`D;NeB{;^83 z-;yTfri~8BXd|F>b;02T7c<@u1hM#ofagK4TINP*gQv1R)w4|mK}a||B_a5KfoX~& zX2HHMn-@K=eVKE`QNn4&QiF86t8u1O&I-&|Y)s}xrc~vn>eyi;X=PKYp%3pdDJ0r- zYB5B0ORc%mhacded5In(fCN*mX?)_oFcqsxKnVuWP39%t!0@Qs(x zST5)!j zD#@67XO5RqLLqcJzrk?CMv!5%*#!e@x!Y>iahkf$!qOuoXi^hO^6|M81WC7TX4wia z=ax+VZTQ+}gFhi45!Z|7Y&hpW$Qn?6nwa4}VR`>~3HNLSkYBHt6|083@$oJcByy#O z^4*{kqI`4v&tGZ6iQi$yHf?5LxP269`Z;8X%k-;6&88@Q(dQ7as23n(9nfPX9-RO6 zv5!N9yXEB&SFjI6>)*q89NCw*@XnrFf3b@sZ*7sk z5~@&h?8^z!uf6O+WH$KFGSUnNMGnL0#NyY9s1%12 zbKf;m9DyQ*Tt&`*$@S*xlc6)ML=8pw!pY zBadDL#!{QYzX@}4BMg!S_y5x1pR>0wX*vbAEn%6kq*rpJHlh<@&n`c-uOl+HC0JrevdgQ`utXy6Y(8Lz~SC=F<7C%{&aO^(Gzu@SNpEiT-y=S=7}RKcXUA;gu_Dq0~%k6%F9IW1G;R*}$D#8R%)wa0|tDWec!< z`841nA9Z<;N+}Bl7DT!X3k>y{_yZC@wlJ8=k?xwK^>_NA@A3&*tjB=t^mPobvo@C2P3W?|k1g(7Rz*zYAT}(G0uc=E z*d!pFuBbOi(fpZk50icRkDb|Z7WKNOsD9Lilhr9EnH~N5Ul+%HK3T^xt*deH@rc!B~90pIb1oH{j%aW$SP59?;;Fd}AVqvw)n~yPlczFnO#^ zP2Y{GboJ!bKR!K1_8&Mb)vYbeq18$P7>ieOtrRuB=w%`W=iNd}?H;sLGqd~m#MBj+ z%~g0Kz5yxvS-x720JM8UIzWyHo=w^2MGrZkE94pR3%Y3@0Aq>1baDB4=)A0$7xMX* zY}sn9JP=E`Emk^GED8LE_jcH?2_z2O?Tz$AndAeWY>L+=zUS$&g#N}C0J?&-1}iRg z#DUHOxtZb@;1a$cj>%88%G+(Ll=70dHzeOUB6kNj{wg*@KJX2&Kz}%-3QdngSN<Sr_8V`rTBq9Uu^2L={7?*i2Gl_{$RdeZ7);WB&GwJf%`g zzd3tq_=zWUdcE?p_j`)1JgIMgKHyi3OFw}56BxjzwZr$X6irrTQtGot?&^Jh{Ky2Q zI6^Q*cz?-Fy+O7AAhiNgqB32$bSHOZAIO&q&ZRlvS@7nCgMQ%evG4DJ)ex&2;l$z8 z8^|^mo%=2^BHxEcy8jO;`oSem`{UBA-ybJ}gGmK|3lWf#_a`;%K-T2#ZX5B6)OZ8w zP~*Zd68H_G06u{T)CKZAl$5%?13Y^WKyyxKtI|Bv+S|P+k05UJj_sDQ^I}xi=5$s* zwk_O^tCW1HYN^u?X6F@q61s=?jpzsdFv5#~u;gHFglIfo?$C<;%QE}Qe`f#mnWek2 zq#*wL#qzj)%rwQp7vry=0V)r7`v45KELptF;xzFOaz1}t2~cX$JBk2GwQsf~=__z{ zAzwX2w2@DJp+7{TQ#B@&?0B0^zDvFGJ|bv2?xIY7Qbh+R#>YWi5=+r$Kn1=8+`0nG`0>b%CiWxQUbO)JU`)p)g8bBZpSM3*5F$I~CS z5!d71=ioGe{@@72J(UD@kFul`kXI_n_fPcx*b}1(aW^4#PUJz7+-*o=4v7sj5sFHZ zlLT&&2N!#u7!;|A5N~hNQ5sTH4&&2{{!93s%eIMky6*X*&j~u8u}F?67W|8t>yo#e z0#|TiBUqwN$&&huMC3J=IiKw_qkv0qLFe`pDBF81^O=t>h+Cm9%0lzyQ`YDV>}o!n z63_w!lm7Y&Jbp(?d)qs{X>r~ES#wMq4cj4RNZ7h2mYQ*GdJqKG3F30Z^?6;(RM#w#o zO!*N1=dFJD9%)5)+S2>0yNDZt%(^+TshB%8IXV>__D=Xr%n|hLj{g2?3(c?arPtVv zvJgy8yrs$dDAUXOJDenbwcN3eh)S>iSuTF$deKNLr9kF8H ziXX(ov>V2Y-kl z$B1YpuGcx*uQEv3w9A{5q!`{QM3_eHT*OQiyQv$U*)*URmZJdoWJIJ?v82q~50i9@ zu*5@l(BhE`Ry z$9Qo_!@&Bts@VQz)HRCs+LW0OmiZV^M^4=>g)sspmRXUn3+6r={KB@StWv}B1y>an zSySvN%V+wf2;<%L3G0fzL4_JilceAv^(b}UtV)0K*m_gLj{x@w;TqlaKS7mt_KOkv z_rFd^z9|Aw=1z$>?1F5uHu7(FV*-Bz?^F+VwqfH!K^EjUf^y;kWT4fLH zkn?J9xiSofI3bcFCX5URUZeR`s~wFncUc9nib#^J-s3Zc({)`}wEYcV_cAJq4tsaW z%hK9OfFlEX7HvH7vpkP`^jCDQ0^^i3avZQwxc#2GBA^f^VI~Hw={0X%f5hgQ?EaO> z#$Di)&Rs4ldoZdWh+@WrqJ@Xp2o6PabvVV9wxZ0)cU^LNUxl>1$h`GZ_xyw3SMIkLWTC$+4=8pBZ2uznwMawj z*;WVH;Y=hbKq|7)F2btopf)BR@_3}G0GQAMX)v7!UrP#4gLo0nwhKeuWA93+;gocJ z`?@5(q1iDU(YU0Mv>46Q>;0e6<#ukE!fb+zyxHqKa+0PxqUldjon%|mt~`A1%XQUSD?8&E#e-Ca@;iAcr zMSg7HlR*a60S$}9*D&H)E6xQ4+wf^35+yDdc%S`d3<2%@;qL9aM8E%FZKp70Xcl>8 zc3%{o4Ap>Y(gqz?GcT{Iy7dEAG7*lDr9YgZZ055k2fntFJva3#X!nL@)7$)ETDX5d z2m(*1pszh$wNBQphQB*))GS3GC))( zDHszzlx0Czt!^VocPF+@C7%Fu77%#nPnWuA z6^~E@ZE5MV-3**_qY-B5&CmFRSam;H`1KW^3sQUjyz6`{V<`CAD4CiQ`xB&hRT2A-TAi;KK2tFd^@tK zb!{oO-%eY?hn^hdoYP>R*W~eq)Yq9M)|bp8)HrI9xj?oS$cVf z*{_wRizR?Q>awTAlqAC&Qqg~AeNF~k>=k|yxMC7=vYSmy*b*S-GD6cX&!K%z-?JT& z--k5Prk*4_^-T&0_JHkbgwsKA#0v^BW_^-+pZEv;EmWQRQ&IgOiI92LU!pF^ffY8= z5FQh8sPU5eq5zn(Iy|w{shi5y8$WeuKD#+h;v48<6)Yr1s{i~IUZO*v4t=ytp1}5- z$4~JLXioZOp!1bcnHTrlqwR zWPtZD>glfVc`N)Dyk7?|e$xWKNKm|WNJU1_mMkfxR;QtLr7P0RsdRL6Y`N|`?A*LT z=0bV}R>w5)rrD4xZM|ea0>UqwMJD$tA4%+Gx=fvgg9_D^@Krf&1kr%zI8kEyA z2&#BzD3snSp0`NX8*vWIW5FHhQqO_siF2Vhj#2tgn`Qs2$u;s7mJ^d)JuR=9o-_t24;oRB=Drk zFD>b=H@0B!oXGjnd4QOHN-x2&{{}&icF$-LkW{m(uCGz(DtYHt+@+POWUwxryagW9 zN2y5*@E55ukGJ3dj0t2IYlJEI3Iaoa1rHl3?W=nEA@%;P@l-9)-1mr#{qr<24jc8y ziKWh#yg-zaa9%N~{R(b40^qMq?F?)*>kbcNMcWV75F_}KS zW#{k|Rn8$*es$8I9XX|vMWk;xupr8ai23C#|y}3ZM;CyF61{rzR&pd8OQ+|x^ehg{a=m5mqx#a;S zo~>5X^VtMR#A^5QB({G`LIU)>EX2MMh?&Ow)3RTNuoznXD8LkqjO@-tAELay%v!w} zx)_V!SXMzEiO%uJI-fo^JeS;s(5!Q!Q@)bF^xl z{e^y?(LcQfz*Z$D_+4Q8b;A`Qp>5M?;EB!b6sVY_J-Vk#@4R;OcyHaNxUAh<2l2=* zF*R`}8eGBLb{3nnrt(Xt%~QV5NxsbswBP*Ukx=R5BIlat$7U$&IIra^3fGgHwKlQO zPEJotxI)v1`&hu)+G62>7!ze)Ox2HtiLw!Nuq0AIUzYp#m23C$@01^{n^#kx>);DB zpb5|^J&7SsI;YXJ0pia>v1B|y*>>l&$m|xn;stIf(=9UEJp6me+hq<6{*y9Q4N^mS z&}>|-fy0HDKyJjYI<&JHj79LZGNhk$PXGx5Ly-6EBh}d4O82wPmtMrVXC~FW+oDY@ zqrq6QSe@t)Wzkf7-@d{@w<8-=>wL0wf|sR;u^!~;0kteT$5W;jK9^H>eZZ!TwUHpT z6DUFb8q`o_o&ARw<-um?b@rCIU3ybdQkv6@i?f7_-msnW5q;*ytsS=q#bTk`-;8|@ zde`;>L^&wy!OF>ZrwEn;+vc}4c5_xjG4%YGf8f9YT;}1&sQ{I9*$e#8{Zedx9$Pj z2-@soKLN#M${EB9?Mip^>1HrGUu{1k_Rd_yf0Mp~qc_3m_{eH`Q~>XR0}n@^r#Wy( znSYm_J$CO^ao!b^E8maq2648Can33Cb=G!v3!cuI2M`;wklA0PB7NlZbds&B?`RLa3)WnGZ; z5qTECVmH7wsDE&lhWfEx@;!z+-In!xSIud^McddyCuT=CqDh`IVHA2$Qm;Iqx!7)_Bv%H=~Td zQG6HT5JM}fxz_>D|G|FMS!qJ;Z{{hLzMWVOzm*jZmMfRNzxC+0d^75X=@fV_1Uc~F z`-3(6Xx$hE{SYo5-sheeX(|19kc@0$;OOw{|jNK8Nk8w_nG3;M;6fsu6!~x8Dku zSG3zfZyO@|DR1>*7FB!2fCYi#?ZL;=#AIY$l3KxQ-CsGHK1QNiiRxaN5xrx==bWxw zS6-{?X<{%IXVy$Gk*^o(dGgG2?rj?&-JecUWw>RqV0tQba>jOF=#5jj0> zdRe;f?%AX1BnFp(@YSHuz%vgDHQ$gTs`LqTlsvlc%bnrPzn(3dShKAr*;ZcBg$>_o z1oUIUO@cX2O!>yT`4us*b;$5$4=-XT@)UFmz9p*63?82<-6eR&GA@ExOy4k<$>*+F zOp$@wBt`{>cDmc@SwpiSoJ4HnfB*cq$0Wb%Y|*)$@L)J5@iKn16gdLx54ucynOy%~ znM*Lr+4?x-Ue|ds>f@h^^#k?N8wu%J0;3`oq}1+U1KOKUP~nwX+xyNu`y9wwt)x(c zB1iRJY9ApW$LseNmLXWBsXa$eXX zFC zs_Bb511{^eGGz@JWZD{H7dqCkKA3YigwMe;6jdByF_exu!kzA`H&-X-HT zqtDY?4w2{ookbgK2cGXi*VA46=?a9lU0oIrMSkTZ@gs}{9TzLlb-suF1ut5h+K{Ae z2$P4(ES|Y%ikT3c3IH|yn>Ixga~KqT3Z(vgc?J%ipbhf@j<#GLP;<9wi&hW8+8jJZ z$*72I(57&UuqrWwj3jYlhtz6$)K|$}lkRHFs3uq25Mf>Kq)BjZ5N)-BXoNq(^UZf6*;YnN9u4!xF$FNkzZSQOXR0BT{KXgHF0>Z2Wqc}cc} z_8WL>BYp%9-*3wJ1#zGX3I4tKR{bEjurkbBbI2F(y)C`AYffUF73Y;_ zu%P|;ZM?*T^sf2Up5z48;B)bKi_4}zbz0+3=sl&_@&UF{j(7IyDsSE>TlaD80o&3M z7kv3=T4dJjeX^zi)awL+Lp*+9JNfHJlC&Qql7fv2jml0>m%?kGJ>Sq!!z7bNS5Ph0 z?I{yN-JfImH2rnE8o-lYv=6EhVH9E=>sN!8T zLYvx|7H!*0^-g)as4re?Ja(Y<2G!wmYMEcfr*A^-zy_lvn=8m$;>iT8)x~760}T(N ziIF}MO8j(sREAW9DRoFcZg_jhP=!IB0z0s_SKzM#S@?cz#>NFtinF*gAu~8pnVz@W zoUyvhEq+2-9l`ov8h2JtC`I^Q#EVeYCt6#E@vOEN4?hN{Tjo0_XDi&>;t$AM2Fl-x z%ujCFc0;paj9^j!X0Eu9p5?HerRV)mVls9DdzoLQexhfGOC^JPtfk}2J2+ojZTw~; z-1nm{VH-CnZeB|rN}e?Y!Sw@^c?o0b1WG=b(2I}0gBN}>J8@RO}H6;-1Tm=ym_HI zao_kP3DM+xB@!*7qsNaZsIz&eC!u!-@=310WKg>Lf z9veIR^9J8Smet=uauw5>pqk6?8gpR}zdY(;$5Jkj5o zjV|e)L}HG$?VP9#MJ8N?h3SbJ`x|MV3LxQ_brNeO(BV7CX_QB>2-(5_PHuCOgA(^j z`AO0S749l-FEF8ws1-7U3#PpL-^l#`A^N9MaKN?|{ZYeOx3K^DT~JriQLa_Ajs8D# C0>)4P literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_19.png b/app/src/main/res/drawable-nodpi/weather_tapas_19.png new file mode 100644 index 0000000000000000000000000000000000000000..83b9392b202d378119b7548aeaba4b8b6f08140e GIT binary patch literal 2449 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_20.png b/app/src/main/res/drawable-nodpi/weather_tapas_20.png new file mode 100644 index 0000000000000000000000000000000000000000..3d1b2cd28ccc5fa2810430fb5a7b17d3fc2a13d7 GIT binary patch literal 3331 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_21.png b/app/src/main/res/drawable-nodpi/weather_tapas_21.png new file mode 100644 index 0000000000000000000000000000000000000000..fb9231e8b6709fd7a8d4256c876e8567ec074775 GIT binary patch literal 4378 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_24.png b/app/src/main/res/drawable-nodpi/weather_tapas_24.png new file mode 100644 index 0000000000000000000000000000000000000000..d5eed610255ab269e22d250046a79c7f75df626b GIT binary patch literal 3922 zcmb7{_czs#AIIOH8C&+sIMS& ze&m1gAsx6;(gFbe1X4rIEI4=5R^Nu>6Wsd@ynh;%GnlsVDb&+{5H_(f&f-~x1NjrF z`k82_T*YNqAEC}O+~4jQD@lp}#-@xJ?!_#B4Vj!PuVOIIDAzG&g#CXwF!22ry@zfD zL|_37>0Q)$4?%6uX>3jSHP2CZkp)6d_;|8ig!q~i7uhzIqO@HuTfJR~14RbDA-hsa zUP89VF{48&5iteUJGo$k_Vc3-&wv1?UBV04Gg_nyu013`LRndvZ96|pVP_J?au!YI zOFSP>Si%M=%)67;9@GsVT2rZBAVi+7E+)LOn?DFMs{uHUJfMtwrFj3%$I1x<{xFIq z#9z3^h{{ZJ-|E7;+Z*{E9K;29@Z6&9*U-Yj13%a?R2(H78v0TNdty6?##Ui2ktaXw zGXJrDGM`893lZFN1)V($PklsV%G<61P~n_~N{`hyBz=D8v5G@<>K0080L4Ub`yFE* zz#I6fzc#czbV+JQj}ou?_!BFa)`PfHIEYzQ@*zR4d+F>?@b*z3EtFd|j@KS>$LKro zq3aIWQEh+xh?L0shAR#g3AwNy**$|BxLJrP4+^Hp@d6-PUx0E!s%!cpQ+{d(Nr?cK z(XS1hCHo~&(h$ui;pkx3a}0_G@zw4p&%Pt&%|`yuñXNu%_=S2nj=%vq^S>K3i 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�#rxrb9NOXP1=)nAB#uDd1UfVt0q=@9*w~L+Om_kO)wd4h4c*xcB&6zU% z_0)cWYjc;&G=ai?wpnztgcKx%PwQ`sDRMy$(F;YpeK>3~;0h{8S_>)W` z#jWnk>5?XMdoVlJQQtq+-Ja3p?D*9LY#(+t;XDWBW~Fam2!8J3VyZ5h%q&d)wRJ{B zRlD~=0yfi6QuVJx-C780cuM3n-q3AsDP1I@{%NS(>tC23qWL#MoN84hU)=KQa74VR z*MR?;bVlu6+>8kJK0<%>eH;k7DAN6{?gu;qIJ@PmM5p$hUDC0V{AR707V-SJWcLYy zMG$JfaAt=W0)DtoNbyfZUO#C?co4Q6A+oZgw=%H|^4z@e)nE#wL-tO&E&4u*Sy2_G zyLZD@hpgi2VURfS1;o8RSX}Y1E76Uu4YWAIU90utnSx$j_x1Sa_ zNc9)j#%E&S%{vwqKn_t89hd)ARsCFP`$^;#`YINv+42VtxIL+luE{>cJW%kmoLAON zQro<0-y%=i2=3ZVN4LngANgvYtnEd*SpoEv{zqlzt%UqI(`L`N)P2bmrEs!uQsU9? z?&?z@HD&iMD(lI5OWF>^#kY!(o|XUmG5pI)yl(pTL)%!Cx)C*$jx#bj! zBuiI{SkkV)k*_}E*5N~R1mZCdu)os<{Hy2+k9{xjaqr%w4Jq;ZYdJ?)}m3{XP>0icTpF|aA8mSssk+k)TiR9 z%NbNss*ABtPFax;G_5fhg^S#Moa@}Y-z}YCoxsS1Ep4~sQnJhqBe}hJRwtr1yu06g z!uM0vYTF{$|2UsB7f1;}omzAF3;k%YHouCbC?OlMRxa8VoN}v8EI2Bgu|HIN#Za@; zxnxD{IobS7klEN__=03WDsK5vH}N;APb@fNsp|G8Dp+prhzI5<4pADdLsmLVA#@9D xHgoLGTJFoB6M7k$oQNP9<^TF1|JTD(Nr0%!;dibKGBN*_XgiE;%~{`s{{gplbbJ5+ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_27.png b/app/src/main/res/drawable-nodpi/weather_tapas_27.png new file mode 100644 index 0000000000000000000000000000000000000000..b41e0ade0f9ca2f810e6220c1f661a6d08dd8c9a GIT binary patch literal 4329 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 XEwS&|><`PI00000NkvXXu0mjf0B!%3 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_28.png b/app/src/main/res/drawable-nodpi/weather_tapas_28.png new file mode 100644 index 0000000000000000000000000000000000000000..2214b5e0d5b4ca64f4958a14ff21ee5fd75a73bc GIT binary patch literal 5006 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 JsV+J4e*iiW2FU;b literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_29.png b/app/src/main/res/drawable-nodpi/weather_tapas_29.png new file mode 100644 index 0000000000000000000000000000000000000000..7e4c26755356ab539a2d4ff714cfefe0f14fa99a GIT binary patch literal 4278 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_3.png b/app/src/main/res/drawable-nodpi/weather_tapas_3.png new file mode 100644 index 0000000000000000000000000000000000000000..8274abc3095015016dc45a95575514325d31bb60 GIT binary patch literal 4544 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_31.png b/app/src/main/res/drawable-nodpi/weather_tapas_31.png new file mode 100644 index 0000000000000000000000000000000000000000..ae95f2d387e19f7fb295f0b3827a6dc6b9df7e58 GIT binary patch literal 3871 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_32.png b/app/src/main/res/drawable-nodpi/weather_tapas_32.png new file mode 100644 index 0000000000000000000000000000000000000000..4382ec6e39c450daf50489d7b991baa5095c06a8 GIT binary patch literal 4944 zcmb7|RaDdu^zFaHFw~HOBa8zKp$-U2DkThE0z-&&gLF&BkOG5rH%KT*BN9qU=g_Hu zD2*r~{011V_pbZ?U;l@*_E~$M$Mdk)Cl;frOhW~y0sw$URYgGu06^IPJEY)$j{eTu z_&Eo0qWb1CCljAb*+2= zxUr_HAgkw>cVIdeuq;7)XB9hjTSfIr;Kz@PlA#x+v1hKi?X?HHr^H zPaOGTBCIvA_yGx&JY}!beQk;G5Yf_1gp$`(U-yJL{ZCd2FW2X3(Qt8Oluo^KP2rm~ zw{a~2a;Bgr6bz*TA1p0|6eBQ6yCp&lVA6MuA(sU=`$4v5@O2xS&Zu$YBfLx!cuf5Z zM^e^@NPqPZnfniv&}vsYelJjDS>7qSQ;Bp%ypiB6UP!EjpX7kLYNAI~TCSJ^t|??$ry*=R)WZQW$weAU(2kL{Gc zcbbB}CKrA^jD}m!O*lf;oYic;|EQQX3KAsy#AJ5wQ~>L`<~#86Hz!rWDIKo|Dp+Ws zG{5>gsDNy(l|u_}0!YUI0`z_c_{*b~kQEvPpkSpTWH!b=kjg477{+eTIwD86LI_kS{a zrI^;BOQ=3G0dhS%t1*Qj5%Oq5ccT>lMzmUW#|=jD6|e=n6rByMOv(T#W~K?tfu(x@ zSn*DddP>^^^&kT*SjFx}1hh_A$}M6a?2eLWT=kHs4l)Fma#~1eO7?@CRojckx2Q}s zH!2q(-4sw{IT^9S1ytf*!#NJ>qMi4YmCONA{Kz7@%tA+ElF{jQ=re0bbToIga*#n0 z{M0MX&f+HhX#ZB+_dIHfRYu&e6=}jkc|h$PD@;yY-?BU4ZK(iVJcT$ZdeKW(Ae;m& zKTNsbg%m0@uUbtu$z5Yp77H%{BME!U3^2?e$4&g#7_#ESMN=ShfLrDMPIM6+e=yNx zpnG_B{?)6GA6=fgIk5eb8P?S{+04r|0oF7hEQCA5p{OEpufFRN;D1@TJI%YCK)0_ zAD^_>vqbCDzP%nRBG~t&QZgBbdG!qd>q}dcoK+WB+8^AO9Zf>^;ZUQc?pkq^B%<`x z=V775=S=w8Yr9i}{B((>x&0Gkik2${Zm0?0pca{maER-8a7ap^iD?sGQq8l#UJ3V1 zE~CP^)+xl>%baqV{@tCEzPBi?u$gUYJcTcZSi17}X6R|{-4V+Q{-jOD1*QZjmZg@d^3I*B5q zQ27YL?aNJT?0@4h(!*X*nHH1VeK-HvD_ZXLi>RB}4z7Ut)ffa`;o4#3B6d)p`q2@> zf^Tr2bv4@OuL5@V4q>_hk!!bb%uEg-VWi4@shI)np1#RMv3t5y;2_q<6tR6~W@KA} zy_PYYv+HnIj>A-tEaS1(I!TwOf?q%u&rq zs~|h46Vd{Voy+sye|>M;4t%YJC5mRA^fZOsC~zR676F0#B?BMXR~@M20M{zyVqrh# zb9w}q#<-6{n$nTii*RVynoAZ)qF46z)U0nnlSQTZK!mcI0+CkJRwN^c95q^#UW!0jmc8gASi>-@hgUUMu;YR7Z$iC9wv<2Cw_p(7$1 zf*@?DIJHI_iD z1ky2`_t+DR=AVmHJN_6r9GY0hB|_Yy7fcJxuo&a0+fMo zg3PGwm4{z|bdUtQ2L2UO1A`YJ`ps;tKMb%eplspkdct@zCAl$Tu79J>D@&!z7vpwn zw8rr53Fu6OtijG(KCbW!gX8KrvTM|G%&OUh&WHB+Z>hCeTngepImRn)f7s$5)9jQU zN{==UZ@HW80?~KsmR|Z7(%rrfKTk$W#_wAF9{iAXzu2QT_XsdMIItMs;x~ zrTdOkO)Rochck87JP&Av?E{SA|U@Wf?&q+MdKdJI=LXo4z14 zD>d+2Q}SP3XH+MkVmAc???%k~;^xU;W7KSDCqwh?9|Kd7w=`1Rm7|TEVsy!xzh*^~ z*;K|dS6BtSako$OUmjl(nP>mVr}>ECaYgk9q9dm4!HB4yzd0N_wLgG<)C&?VN(p4P zbddjc$Se26H0{@AUA4|&c`2KaYkJWH^^dkQa*Q;d>CS}rqKyRjY4#c>H{(+#`&%Vq zTT#=dh@@50EvYI!E*HBvvofl3%j%A{9}!c2HkBU`%xJ~eZHR*LXMx@nBK^VgD~Na9deq1B2MdtdXf|rR!ZKnxE%ZHJ{Tk)*R%{rJi=( z@Mpxe2e5A+SB^l%L0=)a~%nm z>by|Ct5`Mdpe4|Ons(j&gQIcVJ$5y)<&FU{0C%SQqwswqG$I$;=~89`$vg0z9$4IltXHvj{UlAbmp62~um@~CI- znLYYkys9szZN=#+`oU3=TVRd;q>C=j+Y*BVHC#`0qnz{cE6;d(5$+a@!L!#zR&`PB zp2+DY(tj^VX2mXenwV;TNynN#R6|iL>B_C9zr%L)ZoGbDyAQNcEvm!TnD7&B;zxoT zDKljE#_5e{*R)xc>kv9VoqsJBGfd%+eiSc{((Yk29yXM|PHW7*cXdatoo}n)d^j^8 zuT1U9=54vylupB?6BUlsvQ^=XqLpVWJqGbvm84~Bm0yOZm_ULVmP6dO20DE4b}%^naBs_^gp@adQa%X49tx`M#ohk2{~3m8+=s zYi{iQfrPGiyNyehkqzZ94E7VEKjTBVA-CJ~8h56Fd$Wt??~A)ju^MJ|LZGPp%DaiIUpXY8$tmo;5+QY0|Gx;}6AK=Pp??~r(=ptX{YZM>qjB%MBs=xGU z^%pU2rfDshou_Nl&T0#D2GcAwxjGS5Ma`Y9DX2O}W;d1-D>n7Fn4gFyz=9HSEjh#WKGMKW54)5L*{Apn) zK7Rrux}soMaEY3eY;r^MecU+7K>o_%Saw@^SRo{Xn5BJDwkwC^jN6BlKCTA$jV_0? zOUeVsVMpWBZyL~G_xX^%wr=JZU=t|a337X+s%FMbNp&uVoY??*0T{eyP3yKOdHi{v z@EC4YcUtq^3e@M>{?Ps&1W1O~S)BTrU2XUtUm4eKN4IY@bV0DJxMv#V;s2^*&+ms4 zVJ#srEd`jE2|bC$N2;{)>Mvs`3jA5!q_M8RMpZYy16Y^etRdg5}L+;8r#wA*l^1>t}mPeFv;h6 zo7!ige(On49+&YchhJO|i86wfOZ;;P=Y- zD@s4qS%nTw|2FhtyMxyw9(kiD(>Q(QOko)>d3urP(lcIlNBR>(x%T`7DPiU`#_+nK zr=|dKl@x#%S*jA|H^rFnQJl)-6PCKMl*;t(KU7|Y3F)Rb7=BGa@nt?2e*~XaF5AJ2 zoSw|@#Pq1(52{32fiNx=J9t>^-4mqPuW)*Rw)O!jU{E#My`jL0NU%4J zXX26vk|i1}F=&rKLGWk^>P)3{r{02*5k$461p(ea^qS^%=d^zUa}M_rWu^54W8A2u zrPZ#@zb+u?GjY!3d86D?EZBe>p(5mosdTlH^zXk6O@-Nn;?sviRfldl>l6%)3ZS2)p+sspc>vBs0j8N!A8 zYJAEkY;dFEhWY~t5aZLmf}8Ly{cl4FOrJ9v6G&Kgc^PyH2Eg-LuHv77gZPS0swoIi8kAk5Y9g;J518Km!O?KTS{-J(b)FI6{@zECM?%8z zeNQ94SL>RV#H=ddPR_-SRi3*FLa{@!e2ymM8wJLGCkSEvoxGUbKR8~1mZBK^yIwP{ z>?B%f5So1m6E^KRHk3u2Gu`M1C078@#s^Vi}0;87EkmbwDFlV&frY2Hr3nn_5G~-r$OI;@6#78 zed6B^HJNZH-C22z!k4`-%&z8+92fb20BDNMbMoY)@M}A<$Q%i`+LfINZoN?($B!=_ zM@Ejf59fWTI;LNoNgaC@`ZYsyY$B>aVf}X@7YGwr^6PRF7>N;2EL4OU+9WGVcV6DI YOk}&il7vwFhra+-MNNeoIg9ZB16Ru<5&!@I literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_33.png b/app/src/main/res/drawable-nodpi/weather_tapas_33.png new file mode 100644 index 0000000000000000000000000000000000000000..ae95f2d387e19f7fb295f0b3827a6dc6b9df7e58 GIT binary patch literal 3871 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_34.png b/app/src/main/res/drawable-nodpi/weather_tapas_34.png new file mode 100644 index 0000000000000000000000000000000000000000..4382ec6e39c450daf50489d7b991baa5095c06a8 GIT binary patch literal 4944 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 YOk}&il7vwFhra+-MNNeoIg9ZB16Ru<5&!@I literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_35.png b/app/src/main/res/drawable-nodpi/weather_tapas_35.png new file mode 100644 index 0000000000000000000000000000000000000000..eef9340c9884e8d75cb8d683cdd4aa2ed415835f GIT binary patch literal 6659 zcmaJ`cR196|Nq?J?u?wh!r3xHh_a5ORCZQIW*HF~+1w#JD=Vv`6xmVIx-&8&E)v-z zTx4XPad+Ro&+mDD|NVaN=XpQx*YjR~zTeOL{Yo)6z0ArazytsQ>lGsdO8@|2|EqAw zKhGn6!-xNjuDP+5;pG71fAD_=41vOUMak=%_4N(V;%$4sNbsZOrKKgXTM;;tI5IMV zNEvl*`9+~nz!fxT{;G{!tn0sGj$ljE>i`6S%%f^ZOXmOpzv~qP zJ*%*ib*Ho+Pi5Ige>l|Dt+#B_YoCfCH}H1f6eE8ejoqNn2M7BM-k#Hy&herJ$ zCP6w-=v)_D*842cH~JfyEbRQ?kGv4`1i!h?k2e!pnglLxH!$MiP31YUAsB8^j6AMG z=hj;#3izGV7#YDpspp|EYkvpkJF21aZNDR-PQbR zMAa2ZKc|X@<`Q`Yj`$B>iyRX9j-GR<0vsN2R+e3}KXeE1bI{c}&|EZdJW8Yy)c92K zx6zVlhG5e0>{;r*p(g6D%XvsH8m2%sA(Tb?Fe=#NSkvi056nKjNHe5+Fm`d?Lzshr z-#bsh{s)TZ7|pDd5rym?@cA82XF5TF1d>CGBPqN(^oL|m4m>-VvNGeTc|?EMgttyd z9e0{fn~A9G`bc`2gR)~6V$L7voEB0Bvp`diz18U_^jdcEevje7PR-D)2lVHK?DxcJ zv%RN7vFGDHUHk|R-@xcD5vbEEW=f_>QtH8`3|wVuYS#m{XHT|wq{)Ld*pvtc+htnp zkZ#InX)845Q+Z65=gd*;dzUiS(yO49=*#S`O_|3lWV7d3G@&hPOEy>YPcNYYec!9< z5AUhm$Q|8;g;iCi-rdOW>>ES$a4u4=s`++Jbxy#gNgFK9CzNJZfz@bEV$fziBUbX_ z@t&1|#*cbyPL4Sd*?@6$$(r2N0S0aN&!)w2`gMu3Z^1wRHr7^nj7yuv({JF`T)D?T zJadgyg`I*FY47ReDNYK$#-r~`ByYSp39-LW1Xf__`gso@MeC#Np;_9#i6`QO)L*+j z)ve&nIsbYB6Cski9A;{?On>`?p1k+~ltN$b{f9POz-U^mg~e;_j9&>|6^Y-dbWI&8 z>D;K(`FF0?O9#-oq8Fs_HD@kx(u4I%o*}$sBkU|XZ%{n@n|>Li9e#BN`mfA82kYMu zBiS5cD-u@?PBQOlC~%TuDYkFdLlO_!F564FyxayEvX0J=Ig44I1L2}8za(wEe3BOH z13orO2n@<&lkurCP}#onaHzSPi!o+>#wM_6L!ic zwONYq)Pjqogm~4IaK5m@JGF7eQbJtEiLTmI$Z>4^3A>U=HkFTw8Z`1u7eh-Hiq6WQ z?GpvpnVZIZ?CQ7DCslu=s}BC^6>+pawdU*YIC~AWw?mKol;oCKs%(-nIeT(+IoKnJ zk|fReOM51M%&zW%UCl8B@qLJ{I70Vl0#|@1ucCHhQw1Jbqw2Jn#uoxHh+L*gUD_dC zyr=uuOknYqfR{{@Mpctn$H*a^h(T*tK}0-YeJF@{#$*<(3w0WijUH3Cn2X|mlWjis zk+c&j{x9MXtP5T(yRXS3nJf=%`{PKV+Mn3rCr=uPqD($@&|W&5MSRAHg@a}}{jcG) znnR0|G#EwK0Za%_+e8OrakQR?MN3IyZKCZU>fxVaws%su3GO)hvPcI+%{Zst8ejwl zbSYvtTb)D!ar#X14?kWF6bn(bYH>H>0V5Wq!4m!cCWr;NLwa2!SONkCFz{rIGT|Zi zDX*EZ@N^Ztq1_8WfEW>c=bff9gb4p|dc^h1118|VkZ;;e8p=8+;-<{gdZX)%*Xi%f znk7xhbjC)G*XCWHh=3BJg`+Mne#|B2;QxRW|8-9hU+WUgKXS!oce5B-0glm z_t<%OL%6-bWSp3IOEWA2-wR(?z6>Q^FxN_W4Agg2h}X8UCSoaMjKH-mBvx34CvHOC z4W68dr{fPw)a_i892Y>=NxHz5Ge#e_*{mfexm>Q*5pG)ci4C9FCMP8^m_95v&hFDKF z$3}nKiy1*V!h91h8Uc=o%a^Cif%jsLz(C?92Bt<8eFmaXQ!ktsI7oQf5z3Qb%`RBJ z7C%zX2X*TRl}xt?6NfTm^-!`tv%WII!!wLC$Dplr2__`ljHX+d{%ygqO~fJy=Z6fS z%9iC!flY|iR&xA;_*MdNgdc}rluD#7EQtSMygL_9f>xlmPDN-{3kc%W@$Nmf<8~8u zzzF+2BpKIu>$-1(P~K2uP^d4oG`GM6cuMqv3S!4K1x#EN^f5|GAV+2cw9s8(Tt{0f zpAQ>`11^@Uktagd)4n0<44QiZ65_LdD@6bntgqboEa>dT@?@_c)9yKoPGxJPx;YX5 zW+%3GkixrupK~Bbq@uycZcv{o{NQ%SH~EhkMkeBhYEQMf%+V9zpF@*W^N zM+_6wkfo=B`QW~&!=$Pc3`4SD2igUCkDh&K%k4#iw-ipB1=A!MNN^T%(NF5-l_zq< zbi5%#;(N4OEKP7rR}RGoIucEeD2Y0E!1*Nh8*4d~V>RR3kPdzPr2np$72fA!uz@(W z>(GBWhD*Im(yLfkgt`0D>8+jFjMzT-ZNwLXf}Z+e%wt*|#rB~~4xU<5R<$OGrY}Ds z7{;w`dYeP`4UbxvL}bxI-=4MeouZ|}A%`l*gcq|YP*c1Q$9$LUceVMlEZru>Z**pw zHKK~&N?iCWl`34e>&*J(m=tD4F20Tb^b$DaJm#bpI1dkTAthayrU;N;4B`D>UH`vEZYBz%*8){!JQj<=U7hgK@!wHO+Lyi+OuW;^4S71U4d?o=zY3YXzpx= z!BoH60^DMrbTn4TYh5ma%^2(65cs|lH2C<0N>1XyQqTQm7FUEvNyWAm-?C~SkDEm` zNh!&CNbsWjU+znDn|wY)pZUWq(739Ql5)r}I(GdMXk@w5DpW7&A%t1!Rbb{WfA320 zMU(J1&MvW+kJ=a=vBw80C-aK%y8O#bDU9EmE!{Z??Mb^1%h_fj9_4~zD)eW+`6XKk zy2r+Ghc2OqAEI^Q!Q#uj9yZJ~8_FLz`46ZpPoa~HA3lAW4JUcFaK4*2Am}M=dkckE z9vgK*qL+0;iS!3_spxLO@Q3X21-Z@CzQ!RFmx={LvWW9mkpH}Ur#ZC((`}LJ*X-A- zDZaN8Ze6L$Lc`yYIBj$&o$p5Jdlm5t_tZ*K{=R7n^#*ui!sS=`!m-s1n^OPQuLn`Q z`L~P4Bc>=-lbDySIPq&5+coJ>2n#ME%MIFBC^dLLGL9GC0 z*%K36#R%wd?C}>o**{{ZUmS#rIX>+Yc~sgswfEUKblB*tS%xXuus|lYNv7!NU}ok9 zAm~{(5O~KYWY(pg$%U_P{EH++k{w%1xMuPeC4z|Rjx=8!r9w#&s4oT^e0lxn5cdOH z`LPv|fR7@99eD)YolUKZV(D$7`=SkN*2rnH}`8N~N zx*^`*&8z@jw(s_ZYCrohj~@V`R7zMFs(W>SP8}T^VYHRY9a+^P$@#H)EY>2I#c~yy zo3U{Pt+01#;tz$ZqVCZMn?)O&Z=w{sZ9u67TEx><%e88J*u0+sY!YpELL~UYR=^+H zFZo|*`pLnz_lOH0e8@8mb=buD-tVB>EZgY_ypI=7KHO`_h`j<*+~ZuF%}vbW1->fThr#pv zO~~4zs_dc0Y#zoKIBw#NSKNj^i*)56pejtR-a|+2U!%mz?deEPu^ef7!^6M0ZOLs3 zdX#sl4zJ?U!KyApgJrT;YymU2;Dc>+opQB$W`79hr8U`fmJ)re{rfQ$PIE0%(+IMy z0QTyI=-s;W>~)AA!xQ2v3SfCK*NPFQkQej@n%Qr9R)ALHkPIv0HfQjj zE{~Nt1X=NAQAxP>T*&^^g{Ge=Rx0gG(OSG9Rfv&gd8_RU1c-t9wSbJvC`=418b+3- zn5(s+tW0qcVeJrYR$(K%O0zvXOS!pI0>pN$tb4XLYq*nrF*RYMm-pP4;tw+aHjL7K zd4M}j(Tcal@W2aG%oJ5COO;h#@2gBhi-KHJKyPVcp<3a-SY#f(4ZBP6hWo{}x4=n~ z`b*JjZEp(x>h_+hf&FV(MjaeQLdew}@BD9A`^;}uR&VtU|MEzV)6}EQN`+>AkLs5rifEPQ&&plN+0Ta-Ly>? zZ2x0?$pY?;A6~e|`AhfNV7q&6x2e~BglK5*@1n!n&%R*cG~o7i?(5b}oA;fI@W90H zk4*w@KgC=uUF6AmoN%fY(aecd7oq?zgn^~qp0(9YUwbZxeousizYtvxawxj{kh*>? zjVhFe%{+O8jhwe5@(&}s4al#2k`J>=_v4P$&jgUD_@{1fu|0p#K7E#B*%bgIo0Y*n zT736o`EAgr45a*5`O)t==UYQbstL|wyWXalUg2a7lmfjAdWp6^iWFID=E;m``bz1n z6g^w!4Y#etO+)gQHGQiX>_WkgD_ZDjExyAG17i5ys~Ee3L$p@G2$IwOIwb3$me{=O z03{EFQ+{+voWZKJD-lX6112uIK9ARwcU5OePS!;JRzvm{GHGjs^eZp>+>b} zz=u>5-U+HPyEwvjt*xyq15>B{Gvq&}aL9KZ`s9GC!g)HI8W|$9*(SO@t%ykIDo@F) zekV~o^=2y$+1W$n$KWu#ZQ6!L(I9>{2(xAM9>w90Cm7*!IE{*$%6s?D8z&Z%>)=ARZ z(8y#ec($j%6Ox@>N80uGDV|JKhdg_V6@44Ap9t5^1+@-Lww?9z74m;BbujUg^Kypv z2N~*S=w$UK}qm zwmi5w*664EW{F<@nrpZYLA7hD*LFnD(4hDW&&Q-RZpzr}wF3K=@QtKn(x%3rI%nv= zmGg#~RQXEpc69q=n_l`aTyM0_ZU-_v`;IY&46e1F=FFSTpI=Qv9z=<6|T%FzPfL3BDb9<*V~|%8{9)+0HbV+aK;?Y z1=)Kab9a`&ectRe<5zB(=^Oo|&Cb%qENxOYv~gqBlBUU4a8X28DD>%{4Kd1LtwYGL zk*9!|A!y*ZHD*@#HLmS9rnb4Q{z71VO=6*K>IUrYJ};`(3d7a7Sq-Bb<78+0-lEwI zYHSEeh>m^hQ;&Z*T=O;z9;v8(S&_GN{6dsSx?sJa#;UMinz-E7ocQp2Cgo=JwAHVp zNwVm87$oNxREJ~xn)yY#NLH%>sZo27V znWI3BGqlzSqgATg*FEE{oj>9j%1dngGH+PIJH%h*0d7!i#rkPwEldASz5T9kxChE% zba|yauK5-_wumUC>J)M5FIsqwsYq2(WQ1S36(N!Ja39{T$L?|-=PJ#<;0ua?8LLQ3ne4JH(4hvKOp9|B8`Ep5X^I)^CSrc!djWof? zZ=*X4)ST?kDuNd(MbmZr4lsR#-xl{G3P)Pc;8Lk_v^ z08rq&z>@t9*%2DUbcXR~;QKN!!|bFFgrRB^zd5s}o?>1PG`yGMXt5V0k6ZhPgBe}q z#mAmh1T1tHWq6yJL$%661>)$u`qO(7`VD6W{X%;1_c@7;ycbq*@{=x%AKDmByc8|X zQ7~)5GnMSOX-=I%sP{Xu$^=xYh3Xy$C>eZj7)h&3ss`{|5jl8~Ay1a6v7#W<&zk`e zcx&+1`=x^V5dC3f1-Nmm=&|0&E;X3tnLNjZirh6#=O)_qI|?pTF;pvmRb|FCwfMN; z-xbn&^;b@_FMPPbw0UryGkvq|H*9cOAQ*eQRMK7(gKpu#ICvAK2K{fEn(@x^@Jjrf`6nIUG8hSPz^!5JT99+Ze3KW@Y+ z8%(TFO51s%VCZ9j6*QYy`sG1SO|SH}G3o)oE${|s!PTib<187Bo`Nw9#QQAce(WO> znX=4&(TrBS{N)+Kw(m#vSoUUPeG6mxGL~?;zqWUyQuZ`bQ0P-OYqo{recS2(o>3Oq zuX=v_eXOLjOn77iw+flZub<(+eXt?@=NDC?CT(I5h zB3qSR8!8wSJ1_A4fmlg3PKo>iSc!EK=r{?JUUa@udrjpQIYH~yunPSVEH%j0{;ZC( z8|R@0a!e*Ci9u@41`C@@4wbYM*_3FM=PKt63@@j3HvnnjwsA{;2O*2c2qvriHuGs> zMD1uAu()$8mZdF=U1=j@GvWxjfGFlmpRt1GQT^KL-9MPgER5?T*b!;6my@8h?uF%N9`+3JaZq{v zUZ~+!85AWfQxy!FXBItked~7Xu3glXj0e%nn~iRX z^uENO_;xam1jN9UuWN^#36}^~>pv8|^-`L9&|16jqDxV5t?-BZcWH3;V!gp{?W^4^ ze<8%FgkY#L<^+5-f*ds(pMo*{M*VhFstrnIr2A685BAax4qX<|N9_ME7xF(miF8-2 Yxmj96#$lrNe|elMhNcGf`Yv(*0U=^Yr2qf` literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_36.png b/app/src/main/res/drawable-nodpi/weather_tapas_36.png new file mode 100644 index 0000000000000000000000000000000000000000..a9978850d1ac0595184f75e87e03a2ec6447802e GIT binary patch literal 6295 zcmbuE`8U+j|Ht3&nPJ9~ktI80$r=(_G8p?FEo8|avJ^@o%e*b2D7%m?dnik?hRH6; z6h$P1vX$&I!_0j9oXUp#*aU}WPJJ3R6*NO~Q&=YNO<0AA44K=*QJ z{(3=Dc9}G5e1FH|&d;+O^m<3xCr~kt34HoqLsMDPshlQanrdEE?cV>8Th6xDuHiqy z$PkM9ll<1bh!0#MH^AP`B>EPL$gv(JKfltA|0-v?Ys-CGr9xXx?&R>i#~o3UCsL>_ z^JP&Z#Z{>vN*(pW4ey|p$N~p#?d*Xn71!X&Okw+c7i)@2SeZeoSW3%NCr%7UQ?|V> z$xZKFP+rIAk`Go2*bA81nw#nRLQm%C&?CI7$__X=*ygDEYstn`8R+-6C0}s_0~Mta zzmqRp(7j5w15lFZaXWldM>9?lzI56;iW&6dq$s9aK6(I^bxY8_#3ih`JI*k=+Hnae z0B?Q+qr^cZ<=6OJH#67lu>2_{x}OrOH%y zV)F4JuGr8I>L2k^)>jDw*Abs!BqbAC*c#wX*|<>E3f*tuA^}jBN<@LYqiXfgG0GS zp+Ms-jI=jW8w%CT!bv*5I{omg>)C>V$BJ`?A0jdTD>q}qH7|hPpMD>*#(s}r)_`<; z^o%5GV0q)8`T$|}4buXH3-VK0Sm0YOd_n7ZhHTswSXJy5QjmjC8FKbkL0WU2ir_f|O+p&>`m#Z>&(r zwJ`7v{I&>Iq8*;`y?GIoSLwqKe}aFO#}7=Xf$DgoTa?Z!u>yztcA{o>+{$gFoBc__ zc1svQ>=xRWF2T+o=Yy*#|ixXaAx?h3qn z%QPX%WFZT!N)K2HV^+~M2FHfDB~gBErQZaX@6P?^Bz;Nz$UxaL0=%f@es|%2n$O(z zD0S$N!hoWK#9@c){EPC!u3uba(>O&yCF58k!tOhgNAS-4!DGR|3Y{vB`wOsItM7_R zOn_m0+s5~9N*E-R?ijASOex|rODgYf4z)Q2+wiNC%qpCieb$Y{#W{RmzUIE4Yl zIN0s5$pK0u=9Ur#VFFKxpQUuA}|3DvIPsHa2>9Z>>K`6va zDN${>>pi-eBr?Z5G+vS*h43WbsjGJehIH}cocz9?18Lo#x;gsAt(6giLtBGyZV@Pk zwv=Bi3Mxx~L!}?HF7s*f zf|@_~1bsz-v*7Zvt4;W;$SOkqHEEd9y1-BMvUo*qH}->$MiyY}V(mh2Ln@Z(;)+ z_=odq2Kh2R>Y%__%GLQG-U^?>xpAfUlrYB{|ik*cB|pF@I_w7E5Hq-^|=QG&q1;@U18p) zWAd=4eq@6L-iTkHOC#j6;K=tWz1QZpxgD)?{pVf{>##-26??-njlMWwb-WcgFxIq;{MS1V+V2}IJrYring=^;kQVmMct_ab zDb)*CicFCTa}qij5{wkNr!cr5VD3uv|G_NLU4uN*e1scr!E3?_U^rje-*??kA9~@G z@{w0m$Kxc?L=;tbr(0_8-aTLxyxqJ$7Z1HDcJ`t5zSvfLsX-Ef6Ms(A4NlK zG2rhVj)O~5bst*T1L4KBe+vhS9mje(Qf>X$DQagO`z7<}>mTPv;Is!a`Ody{OWSo3 z_9^zwsqeing01PI2D_E0d@a`^4v#FJY=ywp`7>Uy_7Ils)4Ut#8sI>JJu zrZ2fQzO=4ZHW`@0l;hq_=Gbndq7@G`hHj`Q|xevfS+X_Q-jq>vVlrawirzb!yZB zpNGW2#P;tvS>(@J5IAx2?fy1}11_xu5rac?Zd4=|x~pIQj3YhZ@X7JS<@wn$5=Bwl zL)WsGle>FW)=v|YSb-nRE}w$&o)u1Qqhw)sUTfm=4;JS^ETfj*y{s7Q(FsHRq%(2q zF+gbM>Ad$)CVXtM2|wse{M%K+AGzpsno*Ud<+K*5Lj=cq@0;!!3~2lbAM_ra(>j?t z@TD}6f{db532;i3f5QkGYl2@EBr3zu?_qj$rOksGZ(-tF2Ig7UqnvKz}x@6zjH1e+L+XFMxrPFVSJ}BghtA`O6(%|i*3|}x4SV`0aK*b1+>k`JSU;hwg1jqq5 zQ2*Shheb>qgKD^PIu6*4Mq;H=^Lx;VIl=n%)VFn}VJ$RXaA*X6U7t^Q>kMW98er)C zr|B}T4Uc0fJ_r4Mx=Hid?dkiwl9C-Q3Jwb5ZoHpkuvXrz6yAiervx#7Fw!_u5&T4; zQOE#rT8MNBJv7VEw>25cwt0bV=sQEb5aCb@cPHB7uQy2(3SbLOWGU7p3~FFPcnFb5 z2=Q$xPBc1sjv)?i;FQ?-Z4D$aG(P1a0h@xPSTaCkAh!c4INnlRN2mpUk_?#Ol2JBc zxjBhfiSNY`&u1~J(s?fY=Zn$p!NS5sIaADdp>!w{VJ$XB>)r=pSCd}*<0cq}9n=ru z7)&%48ArSnh`d$L0_p1vT@A#dft=%s@8<9wFgsVScV`&qjf>Bhk-G32fO=Q*&jVRV zFuLrZ6oF9&WEephxxZL~f)gbC8aY9jWNC-ItlQu9r;4+)>dYajRzO5&mz%H`YFhwZ z0$3m7G6@&x%0MRciTmA#Q?fB8Iof)frm26ZgT#y`$&83Mg7p=^kDy{@sv_{_@i@%s zrYUfiA=sNd2_qCf`1z83Bhf1z5vcj>P{7W6g3b)Av)uV4+y5pV@M2y$(R&Kgf)=+E zf2RWsP&$mYvZW1BPfpqo0|^!&0d%GTT@zUB5(@B9Sds_v>UcKZ z@*ZB47bLJj3ow45DDm2hs7TMe04Y{LkL{2DF5MHL9Y%g_CseT|-g{_JyI1FALAe$4 zg{kotG*?8AqaGE)*u(5r86!`9x_|WgRkWg1RY7r52&5=Yk0;&Xh&4c^cj&5BU3-T2 z@Yx(m1FvdA)pWd$5$sdd3ag)t9(ne1yBMacE$Ga_&p6jTy^dc`>SJlD;(8-uH@GlG zHNngfKFH5++f*M$;FwVdFO|}$R^Hu9ynV6Ob%3j^#)Cea#((b_WcZ@@jR!Nmd=EQ# z8ShamTP9^7c|?OoZr-o%g0Y_%4o&v0IDm-H5n3>w3`l4Sf}Lf9ez_&Oz@fPv2>>vm zq-2Z)hO42kAQD&JcEoQupObt&a1Y&K0_rdV^a9CfYKJH=ZQ|su*}mFz0&{%tr`Ea6 zPr7f!FHa^xg&(t=ju57ru3;y|U%{i^H z4&74qi=lXI(fPY-kEJ@aa&Bd~&?8*|-`cdq8=5$82bOsx6cW2qb6SUyIM%(q+Q+~P zeXXNwn`=Kj!_|i+c>yENW?aB#Fm#qv08HG=FWj)APC>8EHDECaKwWBJOn2vM0I}e` zTm%X#pXc{G^)hJ@q{$oz0&Oh7Kcnzbp&%eXMU!9P9cke64N+8pS=T=+th@&ts~3S) z^@iadErVEOYZsG1{9>2YEnJN7>6GE!7=k4s*p(Y>T9lilfzYkio)ZgqN4Ct__dQSSk``MxTyw( zZ)BF8k(pDsQkxvg*uHD7FF)F(ez`C+gk$w0{r!{jK#|s9P(WEeW$C=IyS>>G%d2() zC)`&IyN{dgA9KzZC!{FqxTf+4S#GmF9u)MUJNqEAOo&1jurS zKUWbEaz|c$A6t*Tl~*YKvZ49=(+<~gP!hCzAy$aWd?(|FmI831>^Dk<;gUAz>gA}< zXa!4}in~s5n-t5Ni5J@qEz)0|3_KFV#;_1IZM%~s+lM&uo>%TFZ&b1JPx%3^Gyq_wPF5->Bp zSWeSk4mfX8?S#u2?GLKCDyP`%mAnj(K1kDib46B?!^_AZcnJUXXOj>hk-BPM9fOng z$yxmdZdvK0Ute(M%oBkm?v*%jsc!e)0BxeOi&giNmY8%Usbs!Trppe=L$MKjf+?o2g9m$l9nix(-X-sE^@g#znCjP_p+&g3> z#td_bhqsUf*mQ**fP6XdAtiK3Q>*DdTdE&>Uf}|;X_u%}gxSpj445Wz8AN4(pDCDb z%x*DY0RH&Q2?JM-1GiZ8&}$$Qkc?yNEm?d8OVz_rRZeTk157Z>b4i!q@3$fdOx8Rm zM>kx@>26>mY)I_*E5wls^|mPS(HJX^IXbvQulM#I^7GdC$<1IYL$r!!X)TU2 z1V!(b5P{uFWdDy8Kqbs}nEwE0*7@=LM;F=d0(sCd5`4CV;0Tk7r%Vn${g4R|>4C&} zOlr^2RUNafZbr4)A4!nTyLt93{-tQdfRVQqKj`%JI7C5@I|#TI#v849OQb(EJXl^f_><5y>ZkO;UR(UdyMB_K zqRxp1kusB~24dDdI!QX~grml%<$o7t(cWgv2^P%=__Tm>eUg9poKhOKJlv%5KG~L-$9hqz4y5D8ogqOMm0L zx>Y6?TtDdDl2JK1m8cTjE{aNfe0Cddd`+0hyJNk8@SoPP1QR&?e~qmS~Q z3DJa!o~DHJcn{Iv;xHx5-GtHJ3sEKEF-C`CsoJ0>bvdI`haVBr7JdE5i!4`@QI&Dh zb%ypR9G{3ym_w-@Wa@SsMzN6JDy08LO*PY#%Ih2u>*0EXj#PUam;B%7nD?Nm#*WGmBl$QM0etZHZDQglc-*W18v-zwTowRn&gr>9O8WYx?CV zvT383>nu%v^1C@|iW28E8ls-37~xhBQ8C@}$S87~Tq}iQGKE(l4D_$I{q~Ekrop!^Um;H-nud?1N(2@>3x(`#U zSV_Lmo4=MXrNa(rvKVZ$n z(Hq^@UpN|mM~?Sc6bqzU34Aevm+wxFUQrqB3|wXRqMFv}Py(ef>`m09M+OP+=USdI zO>Fmtq`cI*9o^Zi*Zuu#GrzpuVI2W*onT{%*eR~DIrOn`g=@WO2+CRVu~rjdY+bmg z<@CH#lw>XwLA;w&ac7IC;Nif8%X72wCeb-FGQ(eAeh0v^Uibl)@(g?Z{&k95ZeYuO z29iHet#@{I=vvhhdI?hkPdqICpk~y=HriYBc^O!9jofZUuSIyg`|Vn6{uNBzDsvN= z*cmW6=+N7R{+-;qvQ}X8mi6mDthj<~Y5v8vDK-h{v2ZTx&IVLJbY}ugYG;j`C9ovL z|6osse{2&NvIQ{zuVgB|Q)MeffHqCk323b;rN43elPc4k%MHa~GXJ5|78vj~@a{XF zMWbZT_Ehu1Bfe6ls*m}a&SKWA$^*qZ#46n*Fo*lZ}z~CY&?d^=EAQ{XOEIVNyBD@2#*bzdPol)Mj@1-0KWl za&)7TZ(0=$^YFOkRvFibH+C}dA!c~{WQuA@L$#g3;^!I@ADW%5gHAQ~DCg-O{QvQL fIotPdX~;CbW}CgM)rSB1TQD^|Z}3vjHRgW+EXaL%SV`E;p0P4DIu}*&yYTj-vX^@k?|~N^+9Q4yZL>peg29UNeEs{m zYsh4)<5rIXNhVH#xGW5U_`fZFU7`CZ8cW#yL&rye$J|XW?%k&}9MmfiYZ%KZe89xpyG=FaBBhrAOc)NgCfY!VDHc z$Q9_O0-k6MFHb5|XatLZ3rt98c=`W-@VN`3-*s&$4Zi^s-BIQB{ao|qhJf=%leF-& zQ17)za8;H|Is!xn`Nu9Ye!#ltNb^vNy$$8r7deBC)Du3Yp5LV6VevNx$oO9`ek9;F z&!qDXfBMK~H}+hBJL9vz_op}o2QqFt?SykS=3K^k+~aPgW*U|mT5}6pvONFoTBMV?eY0x2aZ^*U^uN`9-E{VG6Ruj zv1-#n5pXW1zuKRR9)K#Y@Mzm3juX-?jMmMu;W*#y z_)HcpCMyDdCR65GFX;< z%N`VOiJ#uL++;VT-)Zys`Vb04m$RRWduh}6<5c^jw;2Zk`#J}FB`jp?{m};`N&d28 z8FJsXG0z*=kDKq_`SfsD?!Cxt;-BS^D!gPZ`=xkP=j_0{dUChPN;OUBjtjmCW|NgI zHnXggf^m>eal;3P(e#%kmwT5;PyRBSFb?mnTXRBxHzZaK-dn6ck})4-=F99MFWtjY z3GE$Y3TM|FH8+{{IdLs8HAMv7=Grf2t@Zk7UlJ3)ZJcSvP&;w{J?Rq|TXD*@jG_H~ zpq2Z}{#1pl+1|~&L#%nnMD|(zq8}jT{}l28=5d$??dK)zTXgwEW*JYy)0|BBl}bbL zo%U5EIGX7C9FI}EA)|5uO9)bIn>^bNI-t1t$M6H}`rCSrP3W7M2d$kxNpTv(QB`0j2+?(2rNcMl0{^ggG3`+%Tlj={(^sk zx$_~>An)C6-ML1uJNyMFSZS-CV8(}U5v}@%KPI-QqQM3a9={N>)m8>!8u5qN9{+u; zP8N7|2H&(^BlHBx+(<{LqTzL-KzP?fC8{O$h@~BJnY&&DxOs;o#(2foT}_4(n8Y{?9R>HXTLeN?+whDJ;pD<_44G159Jc$ z?N2{0GP^&`FU3}Re(`)wCOGn;o;bw1$6L?U;#e+08s8N(p2S!SRoM*WXN@Ta7x5Up zhUvlHS|o|Bo|d*=Ij&gjuzSq#!h|T`uAn+O7#=0z?%MHUFD@BQ2h`fj;9sNTEl+xF zx6jY(8QU4(KLAM;TVQGR_@N^c3Z|lxwBXQi`JvGJ)a$UMli0x6IAgd%iGunjhC`R` zYe1N=I&BTJq5EhgVLawCd{LnLl>6rf16=e+qksk5lzWJUz=g=q0(2c8i&3(*aY-`v zQG{6Vg(zQIREy7m(~Ie-BuOrxn!g=M#>of5ysX{+ZTr->&zmKC%4*Yb}&n*&QSQs&}JS<(B>+?jJBOQO@ogjho65zJ}5$GwSBE{r$&>B{=wL_-ncdM$L^ zobN}%yXBT7*CgR+OpOZpjqoykF_POYsRT*oddgXgh+-J3^CrHru_h}O-{)+q;q51U z#iNQBIk#>NcB~<+MQ*=7w`961cdejuzF3 z?qroy`YELfB{Oukt!MRh+F6`yr8{6JlSgRU9~u zCk<{0ja~df)jhw0rXw>D*cIbExds5N1JHK%`YlC2@!)vmc`NsZ_=epXeOdgz1P`-v&A&Fa8Y zF4V-fyqFMHWjhWelerGxSQ4))oh04Ob)q;eNNfrUl9Zw9r*Yi6ea=~Rd4sHNK_pt-C; zYloJ!epd#_t$gW9R60=Cp(8X?7N&KmK9u2$B_hAwg&K>4=Rdsr>31tF$p_cZl`FL3 z#I4S2RFtz^?$V;QZ!RQQx?TEG$7D?kcX;NWhNIozRvr3{xawmxLh~0Pi=3^gQi6Q( z+}7)3C@`&dq3`L+b4h_^oShG%DvEql$^<(*8&j{h!E-L60z>$crafWF zLu}mXBKGO-^79T7NXX z_vv*(`i1Z^9_6X7o3RNI)vrDhJ`qP1OAo)H>S?eDu(v$!`*mFTDIbD zt-1x}JKl>!(txPCkl@u0Mp(>wlP%cT%oU@h_TORsmMtD~Hn(cxR#uU`#XN<)g?xob z-0wA>-m-5IF$T3Bx2oc3t4pF-p_{^2GbZE1POQyv?(Rh9C(O6vV+NZXi%yfuZDP&h zvJ^fvLNS>UB*pME*T*<_*EvtR`RAq1ZXo0ETSK;1avFBMo;&AbD%!FQqs}3}2xS_7 z4|*48!B`S`UJHM|XT}O&P9gdcL7Fyv_T;8NZBfoB&Wo@@yJjVW;7L;pb%AYJ6ggyw zuhjd6Wv5@eH-}_o>?gm2UDQLct}KVtl8?6iB&eqLhQYktPx94=TQas)6ysJ2e5rAB z0#7-tymj7HUD620^P+au?9gi)qd4NlYN1<@mNeaCMl*ItpsknKXILr{UaYAHi#zEK zmmDWmt>6~9l`=~dze20^<8&c56IT^dx2-*Q=#%G|L%H=y^K1O7ulE#n#?0&7JJ%Dy z&MSQwTHIJWBjx7rrQM_O*WL?koWx{VtewgvEt2fU?r1x-eh;Z`zxl(Fye52w03XAf zBr$bKW~8xsjMzYeR6~!%H1k->vxZ@XN%DmX&YrE=r|o{Pz((39ju3t5fm|k^(24hZ zQMDaIwn$z;q4<3j{vNA=ZLSxr$}1uc8Xv=bs>*>M%%fxd7c2#9hJmMILeQ6N&S#px zPB~nm*Cm4CyvLFy8@%`6p9ti*r+d7)xvZstc#l!}hcyNlT%owcV`@`5)a!!aTzdM8 z_y+#N*CZSx+^fcJ_^EVWAO~I+>`>8r(8$TjCjYtfV)fNIN`n(LTz0=*l)Ok!? zT;CJv&6T!da!j|dndbbt%j;%XyYCy;H7H||Mau+HAeQ@N;>%olTZ>7fIz-nMfS^A+ zO?hW=PIlCp;~T1+NN%aO&ihNnpZ$A)W!K5-FBLIGG!+7vcNfZ)PQ|~U;>RstoP(SZ& zc3c$D02}$U4EA;5B^NcIVK8Et3yHr@!Eze(Dbu&<9hWU@4&i_ z*B7n_zw*kl7(@^bit+wM1EO_*$99(p!QHLfWUl?kJ6k*+e_)uWt0eX>W&O4Cp7dm_ zqtJ+>L^ZgCcRTKlEj`3PMT|SBKH}2z(LFQhhP7*crMNRjfHKTNbnKPwlQtU%;M>k~ZLjUJ?$uD{e zz3LokqZ0A8a|8~vta@lHyDt)cd1B1uc}|@6UcWZ`DVv?o>GId_sTEP6vxq6Z;1!*{|iX) z3Vf?$FINDhrYa8&U_vry8=(o*YU(lWP_03+2l^*=K}wjjWb(Hi?}EH`zf21o*xmrh z!o~@hEHOBi07%k=JNr>DP2L_yfo}|Y4kv+pbsZiONxO+0Z-hnwgoAgE?27bZxPA0X z{Z6fW|4hlK`phfKB|$z~ZW*RGc9;p77W#;6q*igMa#MjBG-I$1F0hj3rjiQ(MU>=H z+~|5!mVg}>G=uFJXW!}L|602!!xb{Pdyg)oXR)2>hfH8Q9Vq&;;AJYn=|)#^PHTAa zw!nfB*%Fd8x&6`s?9_5GfB6%Dyh9nNi#0`!3CMnI=H1C|vA$4Q#gT0g50LRnR-Eg_ z451kfZQOs;BAn$e(8Qkguxz_SXf7qK#vy~oKmT3&IN6t}UCjKyir6z<4)5@3hlJ8_ SOwxZPJS#Ih)2GH>#Qy=OqM%~{ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_38.png b/app/src/main/res/drawable-nodpi/weather_tapas_38.png new file mode 100644 index 0000000000000000000000000000000000000000..4d5ee0a3da5fe91c903ec6947e94f99668f547f2 GIT binary patch literal 5117 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 SOwxZPJS#Ih)2GH>#Qy=OqM%~{ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_39.png b/app/src/main/res/drawable-nodpi/weather_tapas_39.png new file mode 100644 index 0000000000000000000000000000000000000000..4d5ee0a3da5fe91c903ec6947e94f99668f547f2 GIT binary patch literal 5117 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 SOwxZPJS#Ih)2GH>#Qy=OqM%~{ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_4.png b/app/src/main/res/drawable-nodpi/weather_tapas_4.png new file mode 100644 index 0000000000000000000000000000000000000000..8274abc3095015016dc45a95575514325d31bb60 GIT binary patch literal 4544 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 LNkvXXu0mjf6$_up literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_1.png b/app/src/main/res/drawable-nodpi/weather_weezle_1.png new file mode 100644 index 0000000000000000000000000000000000000000..f52e18e5e7948814d18eaf56e8f497c5a8e7f740 GIT binary patch literal 530 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H3?#oinD`S&83*`;xVjhkFf%hRSg;^IK0Y@$ zH#s?Z_3G7=Cr>_j@Zg3G8+Pv8dE&&0j*gCb^XBE{m@Yi`lh5|!M^)eDZ9 z%r#PC3KIpI00%Wnfm~ZFb5l6oCI@{ud)@c3)67?kTB^dtv%;ml*qp4=WpB^O&9^aZ zy1=+KckTMOA?=3)s{Z;m0U2TViStX*-Mk)DxI=@5Ht|>1}0&&Z>%x z*~0aYr^R|oF>C&0(b_C~aP=X_9jsAh=igN>4_{FmIO~(dittPR8j<_mHQu&&2G~yd zBp;u*EOYWkjpbS%Jf^X$7UkAUZT#gDFYjvjPD{Nk>;Eme11*JTJLle>epa=v^6`;# zoD$OOcjOk?N=(0YbW#Af-KL9v9Xw+$2(#V_v!b0cm1#PIcB!xMg~tz zY~~-cenIJer>*Z3%J`jU3ZI_GcIfb#&ek>N<;&$CrlwXe9yL9zZemLIoqE5qkGe|Nk>#b NVxF#kF6*2UngF~T;PLC00030P)t-sM{rEs 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 M07*qoM6N<$f|#MizyJUM literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_12.png b/app/src/main/res/drawable-nodpi/weather_weezle_12.png new file mode 100644 index 0000000000000000000000000000000000000000..cc1a9d0f8b53617763c1999d000a2cb0d6da68e6 GIT binary patch literal 5150 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 M07*qoM6N<$f|#MizyJUM literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_13.png b/app/src/main/res/drawable-nodpi/weather_weezle_13.png new file mode 100644 index 0000000000000000000000000000000000000000..7bd818046726fa671964f2d1065faff0cbff435d GIT binary patch literal 4923 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_14.png b/app/src/main/res/drawable-nodpi/weather_weezle_14.png new file mode 100644 index 0000000000000000000000000000000000000000..49f259f3ad292306d201b04a3fa4d1a4e7b3714f GIT binary patch literal 4699 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_17.png b/app/src/main/res/drawable-nodpi/weather_weezle_17.png new file mode 100644 index 0000000000000000000000000000000000000000..940be3fc34542d11ef204d141a0fe4d49a0114f1 GIT binary patch literal 4231 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 NVxF#kF6*2UngF~T;PLC0002bP)t-sM{rE% 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 SHxvc{0000C0001ZP)t-sM{rEf z(9+G$&xC@4f`EXAgoJ~EfsKoctgEcBu(5)GfQ5sDh=+&G&CY^=fP#R4gMop|%guy> zf`Wj6v$M32kB`U5$&rwdgMopVmzV$l|IyOZ9f#=C)YbX;`P|*#6@uvI?)K&9>iqot zMw{xOx!o^{<7ubnZsD%Y0000QbW%=J0RHL(88itIbB9DJAj+VNvzvKc*-${kYo#>Z zL~#HB1T{%SK~#90?VD?psyGmaO~PeHf({6H!GNHn|NkFurxR{xXU@)6ZHL-AdCL#_ zsUO}>C&5lO8!s;}FE6kEvqThwBC%OVaaCnmmS$O1#T)mEt1RW5fjCby_XzSmWp%A; zkWw|{S>-knRmSVN6i;0eh)O>`h}8@}NWfeYBC_Rxun0Z*FQq+645?#j5E|Ii%snf#M1cU{n0d<=*QoII_TwfOZxiJZLcq zE=GY!QuMpO&jIcoT9Af*K!y(+9m1c$e@TAl1_**A zL42Kiy0MQ*iKE?+E?Lra)gi#nK z`sp2Bxk7|M$^<24;5IxW00Z7M!`o&MeT55W@HdF2h=f=px|i2~roRB`+dUmLk&$-* O00000(3x literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_26.png b/app/src/main/res/drawable-nodpi/weather_weezle_26.png new file mode 100644 index 0000000000000000000000000000000000000000..2dc291908005b0ca144459afaec69c0a9339a248 GIT binary patch literal 3929 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_28.png b/app/src/main/res/drawable-nodpi/weather_weezle_28.png new file mode 100644 index 0000000000000000000000000000000000000000..b28a7ccedc979864b9cb037b4a48c117b98737dd GIT binary patch literal 5481 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 W)NES+t^YoC0Cg1|S+rM1q+B literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_29.png b/app/src/main/res/drawable-nodpi/weather_weezle_29.png new file mode 100644 index 0000000000000000000000000000000000000000..ff9b86b43d2ebaad80e62c1d1ba513e97723520c GIT binary patch literal 3877 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_3.png b/app/src/main/res/drawable-nodpi/weather_weezle_3.png new file mode 100644 index 0000000000000000000000000000000000000000..6acb871e60594f3d1cc0b29285c4d9830e328394 GIT binary patch literal 5617 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 LNkvXXu0mjf6$_up literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_30.png b/app/src/main/res/drawable-nodpi/weather_weezle_30.png new file mode 100644 index 0000000000000000000000000000000000000000..a44793060db0e93e424f23a2c63b92036aa83fb2 GIT binary patch literal 5130 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 AlK=n! literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_33.png b/app/src/main/res/drawable-nodpi/weather_weezle_33.png new file mode 100644 index 0000000000000000000000000000000000000000..a98d8c8bc28cfa0f612a72c801a8dd380b72f882 GIT binary patch literal 4024 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_37.png b/app/src/main/res/drawable-nodpi/weather_weezle_37.png new file mode 100644 index 0000000000000000000000000000000000000000..d9f45d19bbfd613feb1013f3e048a9f083c20918 GIT binary patch literal 6668 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 WhQ=<3WC!a20000C0007uP)t-sM{rE= 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 WhQ=<3WC!a20000C0007uP)t-sM{rE= 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 WhQ=<3WC!a20000C0005AP)t-sM{rE( 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 LNkvXXu0mjf6$_up literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_40.png b/app/src/main/res/drawable-nodpi/weather_weezle_40.png new file mode 100644 index 0000000000000000000000000000000000000000..0f0dbc07d91716e59cedec691b18d4e35ca502d5 GIT binary patch literal 6257 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_42.png b/app/src/main/res/drawable-nodpi/weather_weezle_42.png new file mode 100644 index 0000000000000000000000000000000000000000..49f259f3ad292306d201b04a3fa4d1a4e7b3714f GIT binary patch literal 4699 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_44.png b/app/src/main/res/drawable-nodpi/weather_weezle_44.png new file mode 100644 index 0000000000000000000000000000000000000000..ff9b86b43d2ebaad80e62c1d1ba513e97723520c GIT binary patch literal 3877 zcmV+=58CjFP)C00024P)t-sM{rCC z2nh)a3<(Mg1_ucR2MPlO1_TBP0RaL50|fyA0uBxj8XFuYCnr&g$Tm4VQBhGWX{IPs ze<@#;G=s@8F)>k6Q!ahNW@l$Wk=8~>NGW!_A7`y3ZnZj!(GgXa6gqp$dx77Dw znAJvNep7RmXMmk}lCnfULhAqk02FjmPE!B|4i+COH9$;TZi}hc{KVnYVV86M+He2> z4iZU3K~#90#hV9X+B^`3X_K^RNz4oz0$~Iw5Ie3J|NoDDH#I!S?suk?(3JPl-AOtl zsZ@HeeRHhzPwiWwmA>AL*7ubC3y75Tg|Y7!DU2^x7um~;OJhp%WemPJN?u)Fxn?m8 z#3!qN6Lk_t`{CFXUQ8hjpXdg+@hnc7KU2ma1o5eEa2jvaLGGID*Yz(j_=}7wT!v3T zaOFvz#ZmXSXG9_p#9$FV-h7cqbruJ~a`^_Vf`%{329~ z!<+R@^U?XPyluX50P2%Pny=!E&SJ4ZhAO7xI|z(E_I&jIqt|>l0YskN&+66yft&!N!qr=%!1@?|a=+hv zSKg0)NA;Ouy(Wa}jf8e3b!1?dHe_7RFh%WeKb z^w)T;cVz2zXZALNB7JSYpMuiiaI+%-B-kx1!I>b~1iZf1{Cjlu zp}9Kx8AFEN%=128!tnI`{7eMsgX`-T644ESqd&z9UxSiPz4+9UC-BJrcs!j>$K#Rv z9(TYs_<#U_V1ooN1;Gt~+kRx==Bv7=zd8g-6#qqw<0w%G=?Ovrx!9?cUkHMi0FRGu z1{nR70;vA}7_zt;GOTwr3a+suJW~+R2eXQs24@3Mq%UnZ1kietkE1Yrcz6gy_C$1I z03vu2g3V@)X>cY8c>!PoPrv0r%mNgQP}~?Y#Nkm1o-Dv-Q7xZw0XYDAfExfw0n9%$ z`8f#t1m))sDMP13C$^(_fCwNBFbLEWvM#U=umNBfIQ?(sl%TCc2yM;ClNT^5k`bq8 z>w?`(gOGIrJHQRVopk`}+xm|uq1GPsqa5`uJirNY7;;X;r`#Z>#Wur~p`j9OF2IY+E|=N}(=5*E7?0 z8~;6Ra9m~={-s%7;0ry~s0}Ox>2`%Ry0OBlJAA=AR5Wz&7o$G=e0P6tb zej?Bm?6vlXV~}9y3X>#`=gaN#Vfm11KPoO+e+2Cgl^}|rwLF;_7gzv|01Se+Is)rA z0N4ky3+_QYij75}v)s<-%M8GLxm+?q2r-0&e>W04Kcw)uSk) z;ROsE3RhO2-`;k?16xQG^vHJG?M9If1tta;K7bnm>U~`LLDdJf?=d88)6K!F5CM>1 zW?itPCKEw~0CU6{g)wym09fb5Kma%bruiVv0N8w-@+7(FI|=lCOdgG#pJ(TRac z0zU$_4^jz?`kp*~HrSE~kikMM)d3_q0@Wy-Ge9?@)QQ66bj-vc3otcbzoGxbwEWiU zGeXLUa5Mtdh#UYfM+x@c1fHWXsOfO*15gT>`18$3uN8y|wneY5IKV^5B|uedaVSGa zchn>Ul%)3CO9D3q#P{a@=a8_zGIYC+el9}S$d5+ob{;mc3nyJ7Xg8BEs7n&q9Hfcp zPH)8Y+ZY&rwj(i7_ZW!6ySfqp^*gq`8+5_>m;r(iBtacqAX(_9fW+Q>6WHIPep4Cn zb6tc&qu*{e=}8TT(kK}<+hEP4_S3{54KURVzzp1KU z__UJStctphec@^3lfW&WqXXd>T- zD@dBd;jmwqfxrS-eflP>)ebYaK4B~bZPOsfgru#%z=1cfnE<>W1bqN#D8Tm=fPNFW zhsrB^*Ad5EU$sw{sHq>6whT#ApPFs! z0PF%mF+h*?SF`;o4prSCP_>)niF+LVJZBi};jkU_2ZN#ttIDT?A) zJ_a7v`go=Nk%!5-^#%@$-9*2h@VZ&c)w}-W# z84ujj{KusW&Rq|gnh)!{?lukuU@*YP%N&fM`b;ovTxCbXX$$IKs(#_V>w#`PmT7$` zaigf+M|IM74c;vDg&OG(;5juHkO!dtG4&r-p39|MbyD$#^==Xc^eIK=VfYl>eE5xi zEjt0cZqT{&mmQJoF1tybj zGGD42iVL1BL6GMHgW@sp5Aa?+1JIT+GgHL))ka1i3yeOB-8+xMXplU-1v7!>AZ4Kd z=sem?O(E^P`PJ4q?O<|$Kfb3w_?Izd@es%@jVt#H3Ifmp%b7T7>@27_6oB4u4(~HI zmWSsCO%FE$NN{n9061J_#%*UP%bR0qii3X|-xpgZCg=eFD;l^tt+^xjD`tDEPizyC z`h#-g@p%ILmAd~$A;zFF%p0-X5!D@3`>FY*e;815jVFV{VK7D%y;2nPx{>;>7RSPR zEjy#-Pj)_o6efqwfecs74wL&oY950cOhhRFiosx#9WL_6)zk!oZyeUNR<@=k%>7uU z^BDfr>gg}5*#&9Q{IT7PDF%XEby(}h4P3_FyDs1-Cn&#u|q(hw4Zl$t@c^@ z+rm{dhro^8Vx~tB#Q!VU{lpT;9#&(3WruwRCNvwLSH@$II&r793 z7tr$cYG$@X?Q}l|Js-Rr;mb)q0Z<^`Y{CT7oAdhz{2dgPRY!J(s66{%y*55D6mI5= z|E<2trvgy8hvUK_@ODJWwj|sb;^p@JexVLnIRLi(yyoiYU!2{j2*A+Unijyu6FX-$#T5J5L{$z19dpV?EhIc8h>%>=8u* zu=4d^-bdsI0SG$A0l4Cae<&(;+ahgVf@d5BWf+ptSi-LfU=#4-{AMz5FPRW*gn*VE z89--V-9OloVOaFR0lLkJ32tv*xtA=pn~n)+wQ=VVpdN3Sw7xLYpyZ=7{<^Eu86h#^c}0 z8twYP{`a9holJnT&lv*adja5=E13YTmh zm8zSI><9G1!gPR6%KsYu_vkxOu)FIa4r^yfa@?RXknSMz}Eq$~|EL2n(k^V0B3Zr}@3x3grF=Pgs-+&X`oNSkuj`Ytsu% z_G#lke#WF!c*>?yUCrDnz!YLFZhQHYPTAxj*mFjeYPG6|I;784LHy=Z&lw3p{z2VTy3-!E48A-t2<-{ATu nC$BRQ87uu;Bgy|m_;c+)7#h}^b;_Pv00000NkvXXu0mjf>WwS} literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_45.png b/app/src/main/res/drawable-nodpi/weather_weezle_45.png new file mode 100644 index 0000000000000000000000000000000000000000..f6c2efcecb562390c94bdfeee3b226b06dd01ce2 GIT binary patch literal 5017 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_46.png b/app/src/main/res/drawable-nodpi/weather_weezle_46.png new file mode 100644 index 0000000000000000000000000000000000000000..c1794c0c468eb7f041b5f78758decbc8550a0be6 GIT binary patch literal 4159 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 JPDHLkV1kTEix2<+ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_47.png b/app/src/main/res/drawable-nodpi/weather_weezle_47.png new file mode 100644 index 0000000000000000000000000000000000000000..f6c2efcecb562390c94bdfeee3b226b06dd01ce2 GIT binary patch literal 5017 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_5.png b/app/src/main/res/drawable-nodpi/weather_weezle_5.png new file mode 100644 index 0000000000000000000000000000000000000000..54651599ac8fc2f218a6c057f97397e6681533ea GIT binary patch literal 5607 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_na.png b/app/src/main/res/drawable-nodpi/weather_weezle_na.png new file mode 100644 index 0000000000000000000000000000000000000000..694791a5f47804b8244de0352827ca3ede6eca01 GIT binary patch literal 1588 zcmV-42Fv-0P)C00018P)t-sM{rC4 z00032000001_S{R3j-An0u>Db5(@(Vx;q&U0XifF@R|tLf&|=?7mHpM^06}us_s!sfV#!pZkH}yx^(H%e^>WaH~YFDb+f7a7u_t0%-p@V zYmI>1T=a81-}ghyF8v)pZ@RiD9#Tc!^}yho zMp*6pdNE%hx<)t>!JI!DczJ(vXLXJ57z_gXJB|}Jwe*`F6TfJqDD=7GI)-9E{;nga z`Di>zdnsni43f;qi{YCf1TSY+qwhjZG z03LS0@H0(QA9@-?K>i$npAtX_JbfYH0OTJ7K;!@XZPA2!0X#44*=XDu4FzbAKz}g7 ziJ*-@27r2C9BChEpNgz4%d*WNHuN1Iz@MQHeBA)WFfP{UF${GZv&wpqUor=LU?0FF z>8{0}dY~zW)t)@+GLBeCun7Ut^@2j62LJ*fdf7Imp=i-RfDKd@$HQ5ms}Hybg6`x1 z{y`vw2mm2YkB7Alg1ZFBhGPK8J`6)bIEDZKG+m2!0Q0hqMG5|x6hLYK2r-O;?cuSm zLf_L4u#G^4{vHYlf*6j^gh-kP0&sK!O#4nQD)e_yND$Z9@|kwjs2!lq4q^aI6A+-P zmA&i)-2ftp;+>*^{pqML+VL2HTrU6)v}hHb05U0sJEfo3%2@$qktP5+8zBNxMDNny zrMV*9C=UMfmV#;B_e z0DFPY`Q_bVLGz1we(@$hXb1p+u34E(%JGb+oxEN4heUnbaB_zodO&EL6RElcVz`UA z`RKPw{yZmD5c*mtWt&PAzsXFU?B`{Zzl>=lcnse3=};7NF;gqHtzTn+0gyxBW<;E+ zh5dZ?XNWcuLT3-00XS3q=AXrZ2n_H~4*=u|;Pw2l%}E*A2>|+kYQJfJ zm8vGM=UJ~8`kM{_QLVFx~zwzITFU@fn%mbaghc?Dl7>_sTniRLSUL%o5OBRBlJ$zfp8uv|!bMUp zmxeY0xMBk1pekD&er3+LL8|}|g1k)KhGCPfv!Nu-P0vG)0AZ8R zJVYt8MxYi^$)B?^o)QYESlq2$2l5R3F%#qp4UPmOi{{?|FaS@sXM{~B+{_Bo0$9aO zpA5jYc_K&}D^~)Q7fF9wC>#mk-G=sNWEBIzx&!Xh2(MGfZCY=0000 + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_1.xml b/app/src/main/res/drawable/outline_1.xml new file mode 100644 index 000000000..df37551b0 --- /dev/null +++ b/app/src/main/res/drawable/outline_1.xml @@ -0,0 +1,50 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_10.xml b/app/src/main/res/drawable/outline_10.xml new file mode 100644 index 000000000..3519f4725 --- /dev/null +++ b/app/src/main/res/drawable/outline_10.xml @@ -0,0 +1,76 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_11.xml b/app/src/main/res/drawable/outline_11.xml new file mode 100644 index 000000000..f55a2773c --- /dev/null +++ b/app/src/main/res/drawable/outline_11.xml @@ -0,0 +1,102 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_12.xml b/app/src/main/res/drawable/outline_12.xml new file mode 100644 index 000000000..89fb6f492 --- /dev/null +++ b/app/src/main/res/drawable/outline_12.xml @@ -0,0 +1,94 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_13.xml b/app/src/main/res/drawable/outline_13.xml new file mode 100644 index 000000000..28e7cedc8 --- /dev/null +++ b/app/src/main/res/drawable/outline_13.xml @@ -0,0 +1,82 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_14.xml b/app/src/main/res/drawable/outline_14.xml new file mode 100644 index 000000000..fb2d5df47 --- /dev/null +++ b/app/src/main/res/drawable/outline_14.xml @@ -0,0 +1,92 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_15.xml b/app/src/main/res/drawable/outline_15.xml new file mode 100644 index 000000000..a47dd6e5c --- /dev/null +++ b/app/src/main/res/drawable/outline_15.xml @@ -0,0 +1,133 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_16.xml b/app/src/main/res/drawable/outline_16.xml new file mode 100644 index 000000000..fb2d5df47 --- /dev/null +++ b/app/src/main/res/drawable/outline_16.xml @@ -0,0 +1,92 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_17.xml b/app/src/main/res/drawable/outline_17.xml new file mode 100644 index 000000000..5eb035803 --- /dev/null +++ b/app/src/main/res/drawable/outline_17.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_18.xml b/app/src/main/res/drawable/outline_18.xml new file mode 100644 index 000000000..3519f4725 --- /dev/null +++ b/app/src/main/res/drawable/outline_18.xml @@ -0,0 +1,76 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_19.xml b/app/src/main/res/drawable/outline_19.xml new file mode 100644 index 000000000..f75464b1b --- /dev/null +++ b/app/src/main/res/drawable/outline_19.xml @@ -0,0 +1,25 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_2.xml b/app/src/main/res/drawable/outline_2.xml new file mode 100644 index 000000000..13912e97b --- /dev/null +++ b/app/src/main/res/drawable/outline_2.xml @@ -0,0 +1,44 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_20.xml b/app/src/main/res/drawable/outline_20.xml new file mode 100644 index 000000000..f75464b1b --- /dev/null +++ b/app/src/main/res/drawable/outline_20.xml @@ -0,0 +1,25 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_21.xml b/app/src/main/res/drawable/outline_21.xml new file mode 100644 index 000000000..f75464b1b --- /dev/null +++ b/app/src/main/res/drawable/outline_21.xml @@ -0,0 +1,25 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_22.xml b/app/src/main/res/drawable/outline_22.xml new file mode 100644 index 000000000..f75464b1b --- /dev/null +++ b/app/src/main/res/drawable/outline_22.xml @@ -0,0 +1,25 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_23.xml b/app/src/main/res/drawable/outline_23.xml new file mode 100644 index 000000000..f75464b1b --- /dev/null +++ b/app/src/main/res/drawable/outline_23.xml @@ -0,0 +1,25 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_24.xml b/app/src/main/res/drawable/outline_24.xml new file mode 100644 index 000000000..13912e97b --- /dev/null +++ b/app/src/main/res/drawable/outline_24.xml @@ -0,0 +1,44 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_25.xml b/app/src/main/res/drawable/outline_25.xml new file mode 100644 index 000000000..296b513fa --- /dev/null +++ b/app/src/main/res/drawable/outline_25.xml @@ -0,0 +1,44 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_26.xml b/app/src/main/res/drawable/outline_26.xml new file mode 100644 index 000000000..97bf72758 --- /dev/null +++ b/app/src/main/res/drawable/outline_26.xml @@ -0,0 +1,54 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_27.xml b/app/src/main/res/drawable/outline_27.xml new file mode 100644 index 000000000..8ef23dd1d --- /dev/null +++ b/app/src/main/res/drawable/outline_27.xml @@ -0,0 +1,53 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_28.xml b/app/src/main/res/drawable/outline_28.xml new file mode 100644 index 000000000..8ef23dd1d --- /dev/null +++ b/app/src/main/res/drawable/outline_28.xml @@ -0,0 +1,53 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_29.xml b/app/src/main/res/drawable/outline_29.xml new file mode 100644 index 000000000..bfbb66d42 --- /dev/null +++ b/app/src/main/res/drawable/outline_29.xml @@ -0,0 +1,45 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_3.xml b/app/src/main/res/drawable/outline_3.xml new file mode 100644 index 000000000..df37551b0 --- /dev/null +++ b/app/src/main/res/drawable/outline_3.xml @@ -0,0 +1,50 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_30.xml b/app/src/main/res/drawable/outline_30.xml new file mode 100644 index 000000000..d77cf1f01 --- /dev/null +++ b/app/src/main/res/drawable/outline_30.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_31.xml b/app/src/main/res/drawable/outline_31.xml new file mode 100644 index 000000000..c17731fb3 --- /dev/null +++ b/app/src/main/res/drawable/outline_31.xml @@ -0,0 +1,19 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_32.xml b/app/src/main/res/drawable/outline_32.xml new file mode 100644 index 000000000..36ea58e56 --- /dev/null +++ b/app/src/main/res/drawable/outline_32.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_33.xml b/app/src/main/res/drawable/outline_33.xml new file mode 100644 index 000000000..c17731fb3 --- /dev/null +++ b/app/src/main/res/drawable/outline_33.xml @@ -0,0 +1,19 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_34.xml b/app/src/main/res/drawable/outline_34.xml new file mode 100644 index 000000000..36ea58e56 --- /dev/null +++ b/app/src/main/res/drawable/outline_34.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_35.xml b/app/src/main/res/drawable/outline_35.xml new file mode 100644 index 000000000..3519f4725 --- /dev/null +++ b/app/src/main/res/drawable/outline_35.xml @@ -0,0 +1,76 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_36.xml b/app/src/main/res/drawable/outline_36.xml new file mode 100644 index 000000000..296b513fa --- /dev/null +++ b/app/src/main/res/drawable/outline_36.xml @@ -0,0 +1,44 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_37.xml b/app/src/main/res/drawable/outline_37.xml new file mode 100644 index 000000000..302b87c7c --- /dev/null +++ b/app/src/main/res/drawable/outline_37.xml @@ -0,0 +1,140 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_38.xml b/app/src/main/res/drawable/outline_38.xml new file mode 100644 index 000000000..302b87c7c --- /dev/null +++ b/app/src/main/res/drawable/outline_38.xml @@ -0,0 +1,140 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_39.xml b/app/src/main/res/drawable/outline_39.xml new file mode 100644 index 000000000..302b87c7c --- /dev/null +++ b/app/src/main/res/drawable/outline_39.xml @@ -0,0 +1,140 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_4.xml b/app/src/main/res/drawable/outline_4.xml new file mode 100644 index 000000000..df37551b0 --- /dev/null +++ b/app/src/main/res/drawable/outline_4.xml @@ -0,0 +1,50 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_40.xml b/app/src/main/res/drawable/outline_40.xml new file mode 100644 index 000000000..bf890a130 --- /dev/null +++ b/app/src/main/res/drawable/outline_40.xml @@ -0,0 +1,70 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_41.xml b/app/src/main/res/drawable/outline_41.xml new file mode 100644 index 000000000..a47dd6e5c --- /dev/null +++ b/app/src/main/res/drawable/outline_41.xml @@ -0,0 +1,133 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_42.xml b/app/src/main/res/drawable/outline_42.xml new file mode 100644 index 000000000..fb2d5df47 --- /dev/null +++ b/app/src/main/res/drawable/outline_42.xml @@ -0,0 +1,92 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_43.xml b/app/src/main/res/drawable/outline_43.xml new file mode 100644 index 000000000..a47dd6e5c --- /dev/null +++ b/app/src/main/res/drawable/outline_43.xml @@ -0,0 +1,133 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_44.xml b/app/src/main/res/drawable/outline_44.xml new file mode 100644 index 000000000..8e44b2491 --- /dev/null +++ b/app/src/main/res/drawable/outline_44.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_45.xml b/app/src/main/res/drawable/outline_45.xml new file mode 100644 index 000000000..302b87c7c --- /dev/null +++ b/app/src/main/res/drawable/outline_45.xml @@ -0,0 +1,140 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_46.xml b/app/src/main/res/drawable/outline_46.xml new file mode 100644 index 000000000..fcb6804b7 --- /dev/null +++ b/app/src/main/res/drawable/outline_46.xml @@ -0,0 +1,106 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_47.xml b/app/src/main/res/drawable/outline_47.xml new file mode 100644 index 000000000..302b87c7c --- /dev/null +++ b/app/src/main/res/drawable/outline_47.xml @@ -0,0 +1,140 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_5.xml b/app/src/main/res/drawable/outline_5.xml new file mode 100644 index 000000000..fcb6804b7 --- /dev/null +++ b/app/src/main/res/drawable/outline_5.xml @@ -0,0 +1,106 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_6.xml b/app/src/main/res/drawable/outline_6.xml new file mode 100644 index 000000000..fcb6804b7 --- /dev/null +++ b/app/src/main/res/drawable/outline_6.xml @@ -0,0 +1,106 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_7.xml b/app/src/main/res/drawable/outline_7.xml new file mode 100644 index 000000000..fcb6804b7 --- /dev/null +++ b/app/src/main/res/drawable/outline_7.xml @@ -0,0 +1,106 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_8.xml b/app/src/main/res/drawable/outline_8.xml new file mode 100644 index 000000000..522c724f2 --- /dev/null +++ b/app/src/main/res/drawable/outline_8.xml @@ -0,0 +1,82 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_9.xml b/app/src/main/res/drawable/outline_9.xml new file mode 100644 index 000000000..5eb035803 --- /dev/null +++ b/app/src/main/res/drawable/outline_9.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/outline_na.xml b/app/src/main/res/drawable/outline_na.xml new file mode 100644 index 000000000..31f593206 --- /dev/null +++ b/app/src/main/res/drawable/outline_na.xml @@ -0,0 +1,30 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/weatherclient_0.xml b/app/src/main/res/drawable/weatherclient_0.xml new file mode 100644 index 000000000..344a6f4ba --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_0.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_1.xml b/app/src/main/res/drawable/weatherclient_1.xml new file mode 100644 index 000000000..344a6f4ba --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_1.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_10.xml b/app/src/main/res/drawable/weatherclient_10.xml new file mode 100644 index 000000000..35415f66f --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_10.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_11.xml b/app/src/main/res/drawable/weatherclient_11.xml new file mode 100644 index 000000000..13fe25cf7 --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_11.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_12.xml b/app/src/main/res/drawable/weatherclient_12.xml new file mode 100644 index 000000000..13fe25cf7 --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_12.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_13.xml b/app/src/main/res/drawable/weatherclient_13.xml new file mode 100644 index 000000000..35415f66f --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_13.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_14.xml b/app/src/main/res/drawable/weatherclient_14.xml new file mode 100644 index 000000000..35415f66f --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_14.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_15.xml b/app/src/main/res/drawable/weatherclient_15.xml new file mode 100644 index 000000000..35415f66f --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_15.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_16.xml b/app/src/main/res/drawable/weatherclient_16.xml new file mode 100644 index 000000000..35415f66f --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_16.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_17.xml b/app/src/main/res/drawable/weatherclient_17.xml new file mode 100644 index 000000000..35415f66f --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_17.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_18.xml b/app/src/main/res/drawable/weatherclient_18.xml new file mode 100644 index 000000000..35415f66f --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_18.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_19.xml b/app/src/main/res/drawable/weatherclient_19.xml new file mode 100644 index 000000000..c9d56b9f5 --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_19.xml @@ -0,0 +1,26 @@ + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_20.xml b/app/src/main/res/drawable/weatherclient_20.xml new file mode 100644 index 000000000..c9d56b9f5 --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_20.xml @@ -0,0 +1,26 @@ + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_21.xml b/app/src/main/res/drawable/weatherclient_21.xml new file mode 100644 index 000000000..c9d56b9f5 --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_21.xml @@ -0,0 +1,26 @@ + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_22.xml b/app/src/main/res/drawable/weatherclient_22.xml new file mode 100644 index 000000000..c9d56b9f5 --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_22.xml @@ -0,0 +1,26 @@ + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_23.xml b/app/src/main/res/drawable/weatherclient_23.xml new file mode 100644 index 000000000..f6c07c144 --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_23.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/weatherclient_24.xml b/app/src/main/res/drawable/weatherclient_24.xml new file mode 100644 index 000000000..f6c07c144 --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_24.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/weatherclient_25.xml b/app/src/main/res/drawable/weatherclient_25.xml new file mode 100644 index 000000000..c2346c238 --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_25.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/weatherclient_26.xml b/app/src/main/res/drawable/weatherclient_26.xml new file mode 100644 index 000000000..7442cf883 --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_26.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_27.xml b/app/src/main/res/drawable/weatherclient_27.xml new file mode 100644 index 000000000..f63eb2cfd --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_27.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_28.xml b/app/src/main/res/drawable/weatherclient_28.xml new file mode 100644 index 000000000..b495aeaaf --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_28.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_29.xml b/app/src/main/res/drawable/weatherclient_29.xml new file mode 100644 index 000000000..a47ef9cba --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_29.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_3.xml b/app/src/main/res/drawable/weatherclient_3.xml new file mode 100644 index 000000000..344a6f4ba --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_3.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_30.xml b/app/src/main/res/drawable/weatherclient_30.xml new file mode 100644 index 000000000..370f4115a --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_30.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_31.xml b/app/src/main/res/drawable/weatherclient_31.xml new file mode 100644 index 000000000..681e433b9 --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_31.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_32.xml b/app/src/main/res/drawable/weatherclient_32.xml new file mode 100644 index 000000000..4dc8be873 --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_32.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_33.xml b/app/src/main/res/drawable/weatherclient_33.xml new file mode 100644 index 000000000..c4f341559 --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_33.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/weatherclient_34.xml b/app/src/main/res/drawable/weatherclient_34.xml new file mode 100644 index 000000000..4dc8be873 --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_34.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_35.xml b/app/src/main/res/drawable/weatherclient_35.xml new file mode 100644 index 000000000..344a6f4ba --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_35.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_36.xml b/app/src/main/res/drawable/weatherclient_36.xml new file mode 100644 index 000000000..f5f13b181 --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_36.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_37.xml b/app/src/main/res/drawable/weatherclient_37.xml new file mode 100644 index 000000000..338579d51 --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_37.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_38.xml b/app/src/main/res/drawable/weatherclient_38.xml new file mode 100644 index 000000000..338579d51 --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_38.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_39.xml b/app/src/main/res/drawable/weatherclient_39.xml new file mode 100644 index 000000000..338579d51 --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_39.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_4.xml b/app/src/main/res/drawable/weatherclient_4.xml new file mode 100644 index 000000000..344a6f4ba --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_4.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_40.xml b/app/src/main/res/drawable/weatherclient_40.xml new file mode 100644 index 000000000..762eea97e --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_40.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_41.xml b/app/src/main/res/drawable/weatherclient_41.xml new file mode 100644 index 000000000..35415f66f --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_41.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_42.xml b/app/src/main/res/drawable/weatherclient_42.xml new file mode 100644 index 000000000..35415f66f --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_42.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_43.xml b/app/src/main/res/drawable/weatherclient_43.xml new file mode 100644 index 000000000..370f4115a --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_43.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_44.xml b/app/src/main/res/drawable/weatherclient_44.xml new file mode 100644 index 000000000..370f4115a --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_44.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_45.xml b/app/src/main/res/drawable/weatherclient_45.xml new file mode 100644 index 000000000..344a6f4ba --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_45.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_46.xml b/app/src/main/res/drawable/weatherclient_46.xml new file mode 100644 index 000000000..35415f66f --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_46.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_47.xml b/app/src/main/res/drawable/weatherclient_47.xml new file mode 100644 index 000000000..a020b6b16 --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_47.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_5.xml b/app/src/main/res/drawable/weatherclient_5.xml new file mode 100644 index 000000000..344a6f4ba --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_5.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_6.xml b/app/src/main/res/drawable/weatherclient_6.xml new file mode 100644 index 000000000..35415f66f --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_6.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_7.xml b/app/src/main/res/drawable/weatherclient_7.xml new file mode 100644 index 000000000..35415f66f --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_7.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_8.xml b/app/src/main/res/drawable/weatherclient_8.xml new file mode 100644 index 000000000..35415f66f --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_8.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_9.xml b/app/src/main/res/drawable/weatherclient_9.xml new file mode 100644 index 000000000..13fe25cf7 --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_9.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/weatherclient_na.xml b/app/src/main/res/drawable/weatherclient_na.xml new file mode 100644 index 000000000..9ba51aba5 --- /dev/null +++ b/app/src/main/res/drawable/weatherclient_na.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/raw/com_drdisagree_iconify_keep.xml b/app/src/main/res/raw/com_drdisagree_iconify_keep.xml index 2f9ee2c61..b1d1c8b46 100644 --- a/app/src/main/res/raw/com_drdisagree_iconify_keep.xml +++ b/app/src/main/res/raw/com_drdisagree_iconify_keep.xml @@ -1,3 +1,18 @@ + tools:keep=" + @drawable/google_*, + @drawable/icons8_color_hand_*, + @drawable/marshmallow_*, + @drawable/stickers_*, + @drawable/weather_color_*, + @drawable/weather_faded_*, + @drawable/weather_gs6_*, + @drawable/weather_magical_*, + @drawable/weather_miui_*, + @drawable/weather_sthul_*, + @drawable/weather_tapas_*, + @drawable/weather_vclouds_*, + @drawable/weather_weezle_*, + @drawable/outline_*, + @drawable/weatherclient_*" /> From c2b3d714b2570ed683f78a56c05d077527a33caa Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Wed, 14 Aug 2024 17:45:31 +0200 Subject: [PATCH 128/369] Weather Config: use SHARED_XPREFERENCES for getting weather prefs --- .../com/drdisagree/iconify/weather/Config.kt | 31 +++++++------------ 1 file changed, 11 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/weather/Config.kt b/app/src/main/java/com/drdisagree/iconify/weather/Config.kt index c8ca6f1f5..d7f889380 100644 --- a/app/src/main/java/com/drdisagree/iconify/weather/Config.kt +++ b/app/src/main/java/com/drdisagree/iconify/weather/Config.kt @@ -2,10 +2,10 @@ package com.drdisagree.iconify.weather import android.Manifest import android.content.Context +import android.content.Context.MODE_PRIVATE import android.content.SharedPreferences import android.content.pm.PackageManager import android.util.Log -import androidx.preference.PreferenceManager import com.drdisagree.iconify.BuildConfig import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_LOCATION import com.drdisagree.iconify.common.Preferences.WEATHER_ICON_PACK @@ -14,32 +14,28 @@ import com.drdisagree.iconify.common.Preferences.WEATHER_PROVIDER import com.drdisagree.iconify.common.Preferences.WEATHER_SWITCH import com.drdisagree.iconify.common.Preferences.WEATHER_UNITS import com.drdisagree.iconify.common.Preferences.WEATHER_UPDATE_INTERVAL +import com.drdisagree.iconify.common.Resources.SHARED_XPREFERENCES import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.weather.providers.OpenMeteoProvider object Config { - const val SharedXPref: String = BuildConfig.APPLICATION_ID + "_preferences" - const val PREF_KEY_PROVIDER: String = "provider" - const val PREF_KEY_UNITS: String = "units" const val PREF_KEY_LOCATION_ID: String = "location_id" const val PREF_KEY_LOCATION_NAME: String = "location_name" const val PREF_KEY_WEATHER_DATA: String = "weather_data" const val PREF_KEY_LAST_UPDATE: String = "last_update" - const val PREF_KEY_ENABLE: String = "enable" - const val PREF_KEY_UPDATE_INTERVAL: String = "update_interval" - const val PREF_KEY_ICON_PACK: String = "icon_pack" const val PREF_KEY_UPDATE_ERROR: String = "update_error" - const val PREF_KEY_OWM_KEY: String = "owm_key" - const val PREF_KEY_HISTORY: String = "history" - const val PREF_KEY_HISTORY_SIZE: String = "history_size" const val WEATHER_PREFS: String = BuildConfig.APPLICATION_ID + "_weatherprefs" private fun getPrefs(context: Context): SharedPreferences { try { if (Xprefs != null) return Xprefs as SharedPreferences - return PreferenceManager.getDefaultSharedPreferences(context.createDeviceProtectedStorageContext()) + return context.createDeviceProtectedStorageContext().getSharedPreferences( + SHARED_XPREFERENCES, MODE_PRIVATE + ) } catch (t: Throwable) { - return PreferenceManager.getDefaultSharedPreferences(context.createDeviceProtectedStorageContext()) + return context.createDeviceProtectedStorageContext().getSharedPreferences( + SHARED_XPREFERENCES, MODE_PRIVATE + ) } } @@ -53,13 +49,8 @@ object Config { } fun getProviderId(context: Context): String { - val provider = getPrefs(context).getString(WEATHER_PROVIDER, "0") - - return when (provider) { - "1" -> "MET Norway" - "2" -> "OpenMeteo" - else -> "OpenWeatherMap" - } + //val provider = getPrefs(context).getString(WEATHER_PROVIDER, "0") + return "OpenWeatherMap" } fun isMetric(context: Context): Boolean { @@ -131,7 +122,7 @@ object Config { } fun getIconPack(context: Context): String? { - return getPrefs(context).getString(WEATHER_ICON_PACK, null) + return getPrefs(context).getString(WEATHER_ICON_PACK, BuildConfig.APPLICATION_ID.replace(".debug", "") + ".google") } fun setUpdateError(context: Context, value: Boolean) { From 5a377b77087a9a8596726ff910ac2c75146de469 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Wed, 14 Aug 2024 18:29:52 +0200 Subject: [PATCH 129/369] Provider: use Lat & Lon prefs so when we will have more providers we can handle other APIs --- .../iconify/weather/AbstractWeatherProvider.kt | 2 +- .../com/drdisagree/iconify/weather/Config.kt | 16 +++++++++++----- .../drdisagree/iconify/weather/WeatherWork.kt | 7 ++++--- .../weather/providers/OpenMeteoProvider.kt | 7 +++++-- 4 files changed, 21 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/weather/AbstractWeatherProvider.kt b/app/src/main/java/com/drdisagree/iconify/weather/AbstractWeatherProvider.kt index 57907ee93..de2774d46 100644 --- a/app/src/main/java/com/drdisagree/iconify/weather/AbstractWeatherProvider.kt +++ b/app/src/main/java/com/drdisagree/iconify/weather/AbstractWeatherProvider.kt @@ -45,7 +45,7 @@ abstract class AbstractWeatherProvider(protected var mContext: Context) { return response } - abstract fun getCustomWeather(id: String?, metric: Boolean): WeatherInfo? + abstract fun getCustomWeather(lat: String?, lon: String?, metric: Boolean): WeatherInfo? abstract fun getLocationWeather(location: Location?, metric: Boolean): WeatherInfo? diff --git a/app/src/main/java/com/drdisagree/iconify/weather/Config.kt b/app/src/main/java/com/drdisagree/iconify/weather/Config.kt index d7f889380..dd7c7dbb5 100644 --- a/app/src/main/java/com/drdisagree/iconify/weather/Config.kt +++ b/app/src/main/java/com/drdisagree/iconify/weather/Config.kt @@ -19,7 +19,8 @@ import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.weather.providers.OpenMeteoProvider object Config { - const val PREF_KEY_LOCATION_ID: String = "location_id" + const val PREF_KEY_LOCATION_LAT: String = "location_lat" + const val PREF_KEY_LOCATION_LON: String = "location_lon" const val PREF_KEY_LOCATION_NAME: String = "location_name" const val PREF_KEY_WEATHER_DATA: String = "weather_data" const val PREF_KEY_LAST_UPDATE: String = "last_update" @@ -61,12 +62,17 @@ object Config { return getPrefs(context).getBoolean(WEATHER_CUSTOM_LOCATION, false) } - fun getLocationId(context: Context): String? { - return getWeatherPrefs(context).getString(PREF_KEY_LOCATION_ID, null) + fun getLocationLat(context: Context): String? { + return getWeatherPrefs(context).getString(PREF_KEY_LOCATION_LAT, null) } - fun setLocationId(context: Context, id: String?) { - getWeatherPrefs(context).edit().putString(PREF_KEY_LOCATION_ID, id).apply() + fun getLocationLon(context: Context): String? { + return getWeatherPrefs(context).getString(PREF_KEY_LOCATION_LON, null) + } + + fun setLocationId(context: Context, lat: String?, lon: String?) { + getWeatherPrefs(context).edit().putString(PREF_KEY_LOCATION_LAT, lat).apply() + getWeatherPrefs(context).edit().putString(PREF_KEY_LOCATION_LON, lon).apply() } fun getLocationName(context: Context): String? { diff --git a/app/src/main/java/com/drdisagree/iconify/weather/WeatherWork.kt b/app/src/main/java/com/drdisagree/iconify/weather/WeatherWork.kt index 6fef3377a..c1ba90f07 100644 --- a/app/src/main/java/com/drdisagree/iconify/weather/WeatherWork.kt +++ b/app/src/main/java/com/drdisagree/iconify/weather/WeatherWork.kt @@ -18,7 +18,8 @@ import com.drdisagree.iconify.utils.OmniJawsClient.EXTRA_ERROR_DISABLED import com.drdisagree.iconify.utils.OmniJawsClient.EXTRA_ERROR_LOCATION import com.drdisagree.iconify.utils.OmniJawsClient.EXTRA_ERROR_NETWORK import com.drdisagree.iconify.utils.OmniJawsClient.EXTRA_ERROR_NO_PERMISSIONS -import com.drdisagree.iconify.weather.Config.getLocationId +import com.drdisagree.iconify.weather.Config.getLocationLat +import com.drdisagree.iconify.weather.Config.getLocationLon import com.drdisagree.iconify.weather.Config.getProvider import com.drdisagree.iconify.weather.Config.isCustomLocation import com.drdisagree.iconify.weather.Config.isEnabled @@ -194,8 +195,8 @@ class WeatherWork(val mContext: Context, workerParams: WorkerParameters) : while (i < RETRY_MAX_NUM) { w = if (location != null && !isCustomLocation(mContext)) { provider.getLocationWeather(location, isMetric) - } else if (getLocationId(mContext) != null) { - provider.getCustomWeather(getLocationId(mContext), isMetric) + } else if (!TextUtils.isEmpty(getLocationLat(mContext)) && !TextUtils.isEmpty(getLocationLon(mContext))) { + provider.getCustomWeather(getLocationLat(mContext)!!, getLocationLon(mContext)!!, isMetric) } else { Log.w(TAG, "No valid custom location and location is null") break diff --git a/app/src/main/java/com/drdisagree/iconify/weather/providers/OpenMeteoProvider.kt b/app/src/main/java/com/drdisagree/iconify/weather/providers/OpenMeteoProvider.kt index 371d43ba3..19e2920ca 100644 --- a/app/src/main/java/com/drdisagree/iconify/weather/providers/OpenMeteoProvider.kt +++ b/app/src/main/java/com/drdisagree/iconify/weather/providers/OpenMeteoProvider.kt @@ -13,8 +13,11 @@ import java.util.Locale import java.util.TimeZone class OpenMeteoProvider(context: Context?) : AbstractWeatherProvider(context!!) { - override fun getCustomWeather(id: String?, metric: Boolean): WeatherInfo? { - return handleWeatherRequest(id, metric) + + override fun getCustomWeather(lat: String?, lon: String?, metric: Boolean): WeatherInfo? { + val coordinates = + String.format(Locale.US, PART_COORDINATES, lat!!.toFloat(), lon!!.toFloat()) + return handleWeatherRequest(coordinates, metric) } override fun getLocationWeather(location: Location?, metric: Boolean): WeatherInfo? { From 6cd3aac43a08329b2a9bd4f30f3a434faa356e56 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Wed, 14 Aug 2024 18:30:31 +0200 Subject: [PATCH 130/369] Weather: added Location Picker Activity --- app/src/main/AndroidManifest.xml | 3 + .../ui/activities/LocationBrowseActivity.kt | 242 ++++++++++++++++++ .../ui/drawables/TintedDrawableSpan.kt | 52 ++++ app/src/main/res/drawable/ic_search.xml | 20 ++ .../main/res/drawable/search_hint_color.xml | 20 ++ .../main/res/drawable/text_field_corners.xml | 9 + .../res/layout/location_browse_activity.xml | 91 +++++++ .../main/res/layout/location_browse_item.xml | 58 +++++ 8 files changed, 495 insertions(+) create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/activities/LocationBrowseActivity.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/drawables/TintedDrawableSpan.kt create mode 100644 app/src/main/res/drawable/ic_search.xml create mode 100644 app/src/main/res/drawable/search_hint_color.xml create mode 100644 app/src/main/res/drawable/text_field_corners.xml create mode 100644 app/src/main/res/layout/location_browse_activity.xml create mode 100644 app/src/main/res/layout/location_browse_item.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 6cf3dbb6f..d0c0468da 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -54,6 +54,9 @@ + = ArrayList() + private var mAdapter: LocagtionListAdapter? = null + private val mExecutorService: ExecutorService = Executors.newSingleThreadExecutor() + private val mHandler = Handler(Looper.getMainLooper()) + private var mQueryString: String? = null + private var mProgressBar: FrameLayout? = null + + private val mQueryRunnable = Runnable { + mExecutorService.submit { + getLocations( + mQueryString + ) + } + } + + private class LocationBrowseItem( + val cityExt: String, + private val mCountryId: String, + val city: String, + val lat: Double, + val lon: Double + ) { + protected val id: String + get() = city + "," + mCountryId + + override fun equals(other: Any?): Boolean { + return (other is LocationBrowseItem) && this.id == other.id + } + } + + inner class LocagtionListAdapter : RecyclerView.Adapter() { + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { + val inflater = LayoutInflater.from(parent.context) + return ViewHolder(inflater.inflate(R.layout.location_browse_item, parent, false)) + } + + override fun onBindViewHolder(holder: ViewHolder, position: Int) { + val city = mLocationBrowseList[position] + + (holder.itemView.findViewById(R.id.location_city) as TextView).text = + city.city + (holder.itemView.findViewById(R.id.location_city_ext) as TextView).text = + city.cityExt + + holder.itemView.setOnClickListener { view: View? -> + val intent = Intent() + intent.putExtra(DATA_LOCATION_NAME, city.city) + intent.putExtra(DATA_LOCATION_LAT, city.lat) + intent.putExtra(DATA_LOCATION_LON, city.lon) + setResult(Activity.RESULT_OK, intent) + finish() + } + } + + override fun getItemCount(): Int { + return mLocationBrowseList.size + } + + inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view) + } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + setContentView(R.layout.location_browse_activity) + + val toolbar: MaterialToolbar = findViewById(R.id.toolbar) + toolbar.setTitle(R.string.custom_location_title) + setSupportActionBar(toolbar) + getSupportActionBar()!!.setDisplayHomeAsUpEnabled(true) + + mProgressBar = findViewById(R.id.query_progressbar) + + val queryPattern: EditText = findViewById(R.id.query_pattern_text) + queryPattern.hint = prefixTextWithIcon(this, R.drawable.ic_search, queryPattern.hint) + queryPattern.addTextChangedListener(object : TextWatcher { + override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) { + } + + override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) { + mHandler.removeCallbacks(mQueryRunnable) + mQueryString = s.toString() + if (TextUtils.isEmpty(mQueryString)) { + hideProgress() + mLocationBrowseList.clear() + mAdapter!!.notifyDataSetChanged() + } else { + showProgress() + mHandler.postDelayed(mQueryRunnable, 750) + } + } + + override fun afterTextChanged(s: Editable) { + } + }) + + mAdapter = LocagtionListAdapter() + val queryList: RecyclerView = findViewById(R.id.query_result) + queryList.adapter = mAdapter + queryList.layoutManager = LinearLayoutManager(this) + } + + override fun onOptionsItemSelected(item: MenuItem): Boolean { + when (item.itemId) { + android.R.id.home -> { + finish() + return true + } + + else -> {} + } + return super.onOptionsItemSelected(item) + } + + protected fun getLocations(input: String?) { + mLocationBrowseList.clear() + + try { + val lang = Locale.getDefault().language.replaceFirst("_".toRegex(), "-") + val url = String.format( + URL_PLACES, Uri.encode( + input!!.trim { it <= ' ' }), lang + ) + val response: String = NetworkUtils.downloadUrlMemoryAsString(url) + if (response != null) { + val jsonResults = JSONObject(response).getJSONArray("geonames") + val count = jsonResults.length() + Log.d( + TAG, + "URL = $url returning a response of count = $count" + ) + + for (i in 0 until count) { + val result = jsonResults.getJSONObject(i) + + val population = + if (result.has("population")) result.getInt("population") else 0 + if (population == 0) { + continue + } + + val city = result.getString("name") + val country = result.getString("countryName") + val countryId = result.getString("countryId") + val adminName = + if (result.has("adminName1")) result.getString("adminName1") else "" + val cityExt = + (if (TextUtils.isEmpty(adminName)) "" else "$adminName, ") + country + val lat = result.getDouble("lat") + val lon = result.getDouble("lng") + + val locationItem = LocationBrowseItem(cityExt, countryId, city, lat, lon) + if (!mLocationBrowseList.contains(locationItem)) { + mLocationBrowseList.add(locationItem) + if (mLocationBrowseList.size == 5) { + break + } + } + } + } + } catch (e: Exception) { + Log.e( + TAG, + "Received malformed location data input=$input", e + ) + } finally { + mHandler.post { + hideProgress() + mAdapter!!.notifyDataSetChanged() + } + } + } + + private fun showProgress() { + mProgressBar!!.visibility = View.VISIBLE + } + + private fun hideProgress() { + mProgressBar!!.visibility = View.GONE + } + + companion object { + private const val TAG = "LocationBrowseActivity" + + const val DATA_LOCATION_NAME: String = "location_name" + const val DATA_LOCATION_LAT: String = "location_lat" + const val DATA_LOCATION_LON: String = "location_lon" + + private const val URL_PLACES = + "https://secure.geonames.org/searchJSON?name_startsWith=%s&lang=%s&username=omnijaws&maxRows=20" + + + fun prefixTextWithIcon(context: Context?, iconRes: Int, msg: CharSequence): CharSequence { + // Update the hint to contain the icon. + // Prefix the original hint with two spaces. The first space gets replaced by the icon + // using span. The second space is used for a singe space character between the hint + // and the icon. + val spanned = SpannableString(" $msg") + spanned.setSpan( + TintedDrawableSpan(context!!, iconRes), + 0, 1, Spannable.SPAN_EXCLUSIVE_INCLUSIVE + ) + return spanned + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/drawables/TintedDrawableSpan.kt b/app/src/main/java/com/drdisagree/iconify/ui/drawables/TintedDrawableSpan.kt new file mode 100644 index 000000000..b717db475 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/drawables/TintedDrawableSpan.kt @@ -0,0 +1,52 @@ +package com.drdisagree.iconify.ui.drawables + +import android.content.Context +import android.graphics.Canvas +import android.graphics.Paint +import android.graphics.Paint.FontMetricsInt +import android.graphics.drawable.Drawable +import android.text.style.DynamicDrawableSpan + + +/** + * [DynamicDrawableSpan] which draws a drawable tinted with the current paint color. + */ +class TintedDrawableSpan(context: Context, resourceId: Int) : + DynamicDrawableSpan(ALIGN_BOTTOM) { + private val mDrawable = context.getDrawable(resourceId)!!.mutate() + private var mOldTint = 0 + + init { + mDrawable.setTint(0) + } + + override fun getSize( + paint: Paint, + text: CharSequence, + start: Int, + end: Int, + fm: FontMetricsInt? + ): Int { + var fm = fm + fm = fm ?: paint.fontMetricsInt + val iconSize = fm!!.bottom - fm.top + mDrawable.setBounds(0, 0, iconSize, iconSize) + return super.getSize(paint, text, start, end, fm) + } + + override fun draw( + canvas: Canvas, text: CharSequence, + start: Int, end: Int, x: Float, top: Int, y: Int, bottom: Int, paint: Paint + ) { + val color = paint.color + if (mOldTint != color) { + mOldTint = color + mDrawable.setTint(mOldTint) + } + super.draw(canvas, text, start, end, x, top, y, bottom, paint) + } + + override fun getDrawable(): Drawable { + return mDrawable + } +} diff --git a/app/src/main/res/drawable/ic_search.xml b/app/src/main/res/drawable/ic_search.xml new file mode 100644 index 000000000..c9954a055 --- /dev/null +++ b/app/src/main/res/drawable/ic_search.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/search_hint_color.xml b/app/src/main/res/drawable/search_hint_color.xml new file mode 100644 index 000000000..ba37c27a8 --- /dev/null +++ b/app/src/main/res/drawable/search_hint_color.xml @@ -0,0 +1,20 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/text_field_corners.xml b/app/src/main/res/drawable/text_field_corners.xml new file mode 100644 index 000000000..3034c1bce --- /dev/null +++ b/app/src/main/res/drawable/text_field_corners.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/location_browse_activity.xml b/app/src/main/res/layout/location_browse_activity.xml new file mode 100644 index 000000000..4ff61ef9c --- /dev/null +++ b/app/src/main/res/layout/location_browse_activity.xml @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/location_browse_item.xml b/app/src/main/res/layout/location_browse_item.xml new file mode 100644 index 000000000..b35719d08 --- /dev/null +++ b/app/src/main/res/layout/location_browse_item.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + \ No newline at end of file From 28019a686d13ce4e3e0bff7361ffc4b91b1c5cfa Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Wed, 14 Aug 2024 18:31:06 +0200 Subject: [PATCH 131/369] Added Location Picker ActivityResultLauncher --- .../ui/fragments/XposedLockscreenWeather.kt | 161 +++++++++++++++++- .../fragment_xposed_lockscreen_weather.xml | 1 + 2 files changed, 158 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt index 18cdb2b3f..07ad5daff 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt @@ -1,11 +1,13 @@ package com.drdisagree.iconify.ui.fragments import android.Manifest +import android.app.Activity import android.app.Dialog import android.content.Context import android.content.DialogInterface import android.content.Intent import android.content.pm.PackageManager +import android.graphics.drawable.Drawable import android.location.LocationManager import android.net.Uri import android.os.Bundle @@ -17,6 +19,8 @@ import android.view.ViewGroup import android.widget.CompoundButton import androidx.activity.result.ActivityResultLauncher import androidx.activity.result.contract.ActivityResultContracts +import androidx.core.content.res.ResourcesCompat +import androidx.recyclerview.widget.LinearLayoutManager import com.drdisagree.iconify.BuildConfig import com.drdisagree.iconify.Iconify.Companion.appContextLocale import com.drdisagree.iconify.R @@ -24,6 +28,7 @@ import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_LOCATION import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_LEFT import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_TOP +import com.drdisagree.iconify.common.Preferences.WEATHER_ICON_PACK import com.drdisagree.iconify.common.Preferences.WEATHER_ICON_SIZE import com.drdisagree.iconify.common.Preferences.WEATHER_SHOW_CONDITION import com.drdisagree.iconify.common.Preferences.WEATHER_SHOW_HUMIDITY @@ -43,16 +48,25 @@ import com.drdisagree.iconify.config.RPrefs.putInt import com.drdisagree.iconify.config.RPrefs.putString import com.drdisagree.iconify.databinding.FragmentXposedLockscreenWeatherBinding import com.drdisagree.iconify.services.WeatherScheduler +import com.drdisagree.iconify.ui.activities.LocationBrowseActivity +import com.drdisagree.iconify.ui.activities.LocationBrowseActivity.Companion.DATA_LOCATION_LAT +import com.drdisagree.iconify.ui.activities.LocationBrowseActivity.Companion.DATA_LOCATION_LON +import com.drdisagree.iconify.ui.activities.LocationBrowseActivity.Companion.DATA_LOCATION_NAME +import com.drdisagree.iconify.ui.adapters.IconsAdapter +import com.drdisagree.iconify.ui.adapters.IconsAdapter.Companion.WEATHER_ICONS_ADAPTER import com.drdisagree.iconify.ui.base.BaseFragment import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader import com.drdisagree.iconify.utils.OmniJawsClient +import com.drdisagree.iconify.weather.AbstractWeatherProvider.Companion.PART_COORDINATES import com.drdisagree.iconify.weather.Config import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.slider.Slider +import java.util.Locale class XposedLockscreenWeather:BaseFragment(), OmniJawsClient.OmniJawsObserver { + private val DEFAULT_WEATHER_ICON_PACKAGE: String = BuildConfig.APPLICATION_ID + ".google" private lateinit var binding: FragmentXposedLockscreenWeatherBinding private lateinit var mWeatherClient: OmniJawsClient private var mTriggerPermissionCheck = false @@ -167,11 +181,46 @@ class XposedLockscreenWeather:BaseFragment(), binding.lockscreenWeatherCustomLocation.isSwitchChecked = getBoolean(WEATHER_CUSTOM_LOCATION, false) binding.lockscreenWeatherCustomLocation.setSwitchChangeListener{ _: CompoundButton?, isChecked: Boolean -> putBoolean(WEATHER_CUSTOM_LOCATION, isChecked) + binding.lockscreenWeatherCustomLocationMenu.isEnabled = isChecked } - binding.lockscreenWeatherCustomLocationMenu.setOnClickListener(View.OnClickListener { - //TODO: Implement custom location - }) + binding.lockscreenWeatherCustomLocationMenu.setSummary(Config.getLocationName(requireContext())) + binding.lockscreenWeatherCustomLocationMenu.setOnClickListener { + mCustomLocationLauncher.launch( + Intent( + requireContext(), + LocationBrowseActivity::class.java + ) + ) + } + + val entries: MutableList = ArrayList() + val values: MutableList = ArrayList() + val drawables: MutableList = ArrayList() + getAvailableWeatherIconPacks(entries, values, drawables) + val entriesChar: Array = entries.filterNotNull().toTypedArray() + val valuesChar: Array = values.filterNotNull().toTypedArray() + val currentIconPack = Config.getIconPack(requireContext()) + val mAdapter = + IconsAdapter( + entriesChar, + valuesChar, + currentIconPack!!, + WEATHER_ICONS_ADAPTER, + object : IconsAdapter.OnItemClickListener { + override fun onItemClick(view: View, position: Int) { + val value = values[position] + Log.d("Weather", "Selected weather icon pack: $value") + putString(WEATHER_ICON_PACK, value!!.replace(".debug", "")) + binding.lockscreenWeatherIconPack.setSummary(entries[position]!!) + forceRefreshWeatherSettings() + } + }) + mAdapter.setDrawables(drawables.filterNotNull().toTypedArray()) + val summary = entries[values.indexOf(currentIconPack)] + binding.lockscreenWeatherIconPack.setSummary(summary!!) + binding.lockscreenWeatherIconPack.setLayoutManager(LinearLayoutManager(requireContext())) + binding.lockscreenWeatherIconPack.setAdapter(mAdapter) binding.lockscreenWeatherCustomMargins.isSwitchChecked = getBoolean(WEATHER_CUSTOM_MARGINS, false) binding.lockscreenWeatherCustomMargins.setSwitchChangeListener{ _: CompoundButton?, isChecked: Boolean -> @@ -200,12 +249,25 @@ class XposedLockscreenWeather:BaseFragment(), putInt(WEATHER_STYLE, it) } -// updateUI(getBoolean(WEATHER_SWITCH, false)) + if (!getBoolean(WEATHER_CUSTOM_LOCATION, false)) { + checkLocationEnabledInitial() + } else { + forceRefreshWeatherSettings() + } + + updateUI() } override fun onResume() { super.onResume() + mWeatherClient.addObserver(this) + + if (getBoolean(WEATHER_SWITCH, false) + && !getBoolean(WEATHER_CUSTOM_LOCATION, false) + ) { + checkLocationEnabled() + } if (mTriggerPermissionCheck) { checkLocationPermissions(true) mTriggerPermissionCheck = false @@ -352,4 +414,95 @@ class XposedLockscreenWeather:BaseFragment(), } } + private fun getAvailableWeatherIconPacks( + entries: MutableList, + values: MutableList, + drawables: MutableList + ) { + val i = Intent() + val packageManager = requireContext().packageManager + i.setAction(BuildConfig.APPLICATION_ID + ".WeatherIconPack") + for (r in packageManager.queryIntentActivities(i, 0)) { + val packageName = r.activityInfo.packageName + if (packageName == DEFAULT_WEATHER_ICON_PACKAGE) { + Log.d("Weather", "Weather Icon Pack: " + r.activityInfo.name) + values.add(0, r.activityInfo.name) + drawables.add( + 0, + ResourcesCompat.getDrawable( + resources, + resources.getIdentifier( + "google_30", + "drawable", + BuildConfig.APPLICATION_ID + ), + requireContext().theme + ) + ) + } else { + values.add(r.activityInfo.name) + Log.d("Weather", "Weather Icon Pack: " + r.activityInfo.name) + val name = r.activityInfo.name.split("\\.".toRegex()).dropLastWhile { it.isEmpty() } + .toTypedArray() + Log.d("Weather", "Weather Icon Pack: " + r.activityInfo.name) + drawables.add( + ResourcesCompat.getDrawable( + resources, resources.getIdentifier( + name[name.size - 1].lowercase( + Locale.getDefault() + ) + "_30", "drawable", BuildConfig.APPLICATION_ID + ), requireContext().theme + ) + ) + } + var label: String? = r.activityInfo.loadLabel(packageManager).toString() + if (label == null) { + label = r.activityInfo.packageName + } + if (packageName == DEFAULT_WEATHER_ICON_PACKAGE) { + entries.add(0, label) + } else { + entries.add(label) + } + } + } + + private fun updateUI() { + + val enabled = getBoolean(WEATHER_SWITCH, false) + + for (i in 0 until binding.lockscreenWeatherContainer.childCount) { + val child = binding.lockscreenWeatherContainer.getChildAt(i) + if (child != binding.enableLockscreenWeather) child.isEnabled = enabled + } + + binding.lockscreenWeatherCustomColor.visibility = if (getBoolean(WEATHER_TEXT_COLOR_SWITCH, false)) View.VISIBLE else View.GONE + binding.lockscreenWeatherCustomLocationMenu.isEnabled = getBoolean(WEATHER_CUSTOM_LOCATION, false) + binding.lockscreenWeatherMarginTop.visibility = if (getBoolean(WEATHER_CUSTOM_MARGINS, false)) View.VISIBLE else View.GONE + binding.lockscreenWeatherMarginLeft.visibility = if (getBoolean(WEATHER_CUSTOM_MARGINS, false)) View.VISIBLE else View.GONE + + } + + var mCustomLocationLauncher: ActivityResultLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { result -> + if (result.resultCode == Activity.RESULT_OK) { + val intent: Intent? = result.data + if (intent!!.hasExtra(DATA_LOCATION_NAME)) { + val locationName = intent.getStringExtra(DATA_LOCATION_NAME) + val lat = intent.getDoubleExtra(DATA_LOCATION_LAT, 0.0) + val lon = intent.getDoubleExtra(DATA_LOCATION_LON, 0.0) + Config.setLocationId(requireContext(), lat.toString(), lon.toString()) + Config.setLocationName(requireContext(), locationName) + binding.lockscreenWeatherCustomLocationMenu.setSummary(locationName) + if (getBoolean(WEATHER_SWITCH, false) + && !getBoolean(WEATHER_CUSTOM_LOCATION, false) + ) { + checkLocationEnabled() + } + forceRefreshWeatherSettings() + } + } + } + } \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml b/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml index ecd5dd515..c0f189e5b 100644 --- a/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml +++ b/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml @@ -16,6 +16,7 @@ app:layout_behavior="@string/appbar_scrolling_view_behavior"> Date: Wed, 14 Aug 2024 19:02:30 +0200 Subject: [PATCH 132/369] Add Weather in a LinearLayout so we can handle margins --- .../xposed/modules/LockscreenWeather.kt | 46 +++++++++++++------ 1 file changed, 31 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt index b3183e1ac..b819df344 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt @@ -4,6 +4,7 @@ import android.content.Context import android.graphics.Color import android.view.View import android.view.ViewGroup +import android.widget.LinearLayout import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_LEFT import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_TOP @@ -37,12 +38,13 @@ class LockscreenWeather(context: Context?) : ModPack(context!!) { private var weatherCustomColor = false private var weatherColor = Color.WHITE private var weatherStartPadding = 0 - private var weatherTextSize:Int = 16 - private var weatherImageSize:Int = 18 + private var weatherTextSize: Int = 16 + private var weatherImageSize: Int = 18 private var mCustomMargins = false private var mLeftMargin = 0 - private var mTopMargin:Int = 0 + private var mTopMargin: Int = 0 private var mWeatherBackground = 0 + private lateinit var mWeatherContainer: LinearLayout private var mStatusViewContainer: ViewGroup? = null @@ -60,12 +62,12 @@ class LockscreenWeather(context: Context?) : ModPack(context!!) { weatherTextSize = Xprefs!!.getInt(WEATHER_TEXT_SIZE, 16) weatherImageSize = Xprefs!!.getInt(WEATHER_ICON_SIZE, 18) mCustomMargins = Xprefs!!.getBoolean(WEATHER_CUSTOM_MARGINS, false) - mLeftMargin = Xprefs!!.getInt(WEATHER_CUSTOM_MARGINS_TOP, 0) - mTopMargin = Xprefs!!.getInt(WEATHER_CUSTOM_MARGINS_LEFT, 0) + mLeftMargin = Xprefs!!.getInt(WEATHER_CUSTOM_MARGINS_LEFT, 0) + mTopMargin = Xprefs!!.getInt(WEATHER_CUSTOM_MARGINS_TOP, 0) mWeatherBackground = Xprefs!!.getInt(WEATHER_STYLE, 0) if (key.isNotEmpty() && - (key[0] == (WEATHER_SHOW_LOCATION) || + (key[0] == (WEATHER_SHOW_LOCATION) || key[0] == (WEATHER_SHOW_CONDITION) || key[0] == (WEATHER_SHOW_HUMIDITY) || key[0] == (WEATHER_SHOW_WIND) || @@ -73,7 +75,11 @@ class LockscreenWeather(context: Context?) : ModPack(context!!) { key[0] == (WEATHER_TEXT_COLOR) || key[0] == (WEATHER_TEXT_SIZE) || key[0] == (WEATHER_ICON_SIZE) || - key[0] == (WEATHER_STYLE))) { + key[0] == (WEATHER_STYLE) || + key[0] == (WEATHER_CUSTOM_MARGINS) || + key[0] == (WEATHER_CUSTOM_MARGINS_LEFT) || + key[0] == (WEATHER_CUSTOM_MARGINS_TOP)) + ) { updateWeatherView() } @@ -90,6 +96,12 @@ class LockscreenWeather(context: Context?) : ModPack(context!!) { override fun afterHookedMethod(param: MethodHookParam) { if (!weatherEnabled) return + mWeatherContainer = LinearLayout(mContext) + mWeatherContainer.layoutParams = LinearLayout.LayoutParams( + ViewGroup.LayoutParams.MATCH_PARENT, + ViewGroup.LayoutParams.WRAP_CONTENT + ) + mStatusViewContainer = getObjectField( param.thisObject, "mStatusViewContainer" @@ -109,27 +121,31 @@ class LockscreenWeather(context: Context?) : ModPack(context!!) { (currentWeatherView.parent as ViewGroup).removeView(currentWeatherView) } catch (ignored: Throwable) { } - mStatusViewContainer!!.addView(currentWeatherView) + try { + (mWeatherContainer.parent as ViewGroup).removeView(mWeatherContainer) + } catch (ignored: Throwable) { + } + mWeatherContainer.addView(currentWeatherView) + mStatusViewContainer!!.addView(mWeatherContainer) refreshWeatherView(currentWeatherView) - updateMargins(currentWeatherView) + updateMargins() } catch (ignored: Throwable) { } } - private fun updateMargins(weatherView: CurrentWeatherView?) { - if (weatherView == null) return + private fun updateMargins() { if (mCustomMargins) { setMargins( - weatherView, + mWeatherContainer, mContext, + mLeftMargin, mTopMargin, mLeftMargin, - 0, 0 ) } else { setMargins( - weatherView, + mWeatherContainer, mContext, 0, 0, @@ -162,7 +178,7 @@ class LockscreenWeather(context: Context?) : ModPack(context!!) { mWeatherBackground, LOCKSCREEN_WEATHER ) - updateMargins(currentWeatherView) + updateMargins() } private fun updateWeatherView() { From 8b0fbdce44f92fb6c5475ba7d59ea0dbf003d47a Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Wed, 14 Aug 2024 19:02:49 +0200 Subject: [PATCH 133/369] Removed unused prefs --- app/src/main/java/com/drdisagree/iconify/common/Preferences.kt | 2 -- app/src/main/java/com/drdisagree/iconify/weather/Config.kt | 1 - 2 files changed, 3 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt index e6bcf5108..72df48b16 100644 --- a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt +++ b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt @@ -260,11 +260,9 @@ object Preferences { const val WEATHER_ICON_SIZE: String = "weather_icon_size" const val WEATHER_TEXT_COLOR_SWITCH: String = "weather_text_color_switch" const val WEATHER_TEXT_COLOR: String = "weather_text_color" - const val WEATHER_PROVIDER: String = "weather_provider" const val WEATHER_OWM_KEY: String = "owm_key" const val WEATHER_UNITS: String = "weather_units" const val WEATHER_CUSTOM_LOCATION: String = "weather_custom_location_switch" - const val WEATHER_CUSTOM_LOCATION_NAME: String = "weather_custom_location_name" const val WEATHER_CUSTOM_MARGINS: String = "weather_custom_margins" const val WEATHER_CUSTOM_MARGINS_TOP: String = "weather_custom_margins_top" const val WEATHER_CUSTOM_MARGINS_LEFT: String = "weather_custom_margins_left" diff --git a/app/src/main/java/com/drdisagree/iconify/weather/Config.kt b/app/src/main/java/com/drdisagree/iconify/weather/Config.kt index dd7c7dbb5..bb1cfd62d 100644 --- a/app/src/main/java/com/drdisagree/iconify/weather/Config.kt +++ b/app/src/main/java/com/drdisagree/iconify/weather/Config.kt @@ -10,7 +10,6 @@ import com.drdisagree.iconify.BuildConfig import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_LOCATION import com.drdisagree.iconify.common.Preferences.WEATHER_ICON_PACK import com.drdisagree.iconify.common.Preferences.WEATHER_OWM_KEY -import com.drdisagree.iconify.common.Preferences.WEATHER_PROVIDER import com.drdisagree.iconify.common.Preferences.WEATHER_SWITCH import com.drdisagree.iconify.common.Preferences.WEATHER_UNITS import com.drdisagree.iconify.common.Preferences.WEATHER_UPDATE_INTERVAL From 7124e37c6ef940ef6ab7c9f6d4644377b1366db0 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Wed, 14 Aug 2024 19:03:10 +0200 Subject: [PATCH 134/369] Fix Color Picker --- .../ui/fragments/XposedLockscreenWeather.kt | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt index 07ad5daff..d0a8a277d 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt @@ -7,12 +7,12 @@ import android.content.Context import android.content.DialogInterface import android.content.Intent import android.content.pm.PackageManager +import android.graphics.Color import android.graphics.drawable.Drawable import android.location.LocationManager import android.net.Uri import android.os.Bundle import android.provider.Settings -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -24,6 +24,7 @@ import androidx.recyclerview.widget.LinearLayoutManager import com.drdisagree.iconify.BuildConfig import com.drdisagree.iconify.Iconify.Companion.appContextLocale import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_CHARGING_COLOR import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_LOCATION import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_LEFT @@ -173,7 +174,14 @@ class XposedLockscreenWeather:BaseFragment(), binding.lockscreenWeatherCustomColor.visibility = if (isChecked) View.VISIBLE else View.GONE } - binding.lockscreenWeatherCustomColor.previewColor = getInt(WEATHER_TEXT_COLOR, 0xFFFFFFFF.toInt()) + binding.lockscreenWeatherCustomColor.previewColor = getInt(WEATHER_TEXT_COLOR, Color.WHITE) + binding.lockscreenWeatherCustomColor.setColorPickerListener( + activity = requireActivity(), + defaultColor = getInt(WEATHER_TEXT_COLOR, Color.WHITE), + showPresets = true, + showAlphaSlider = false, + showColorShades = true + ) binding.lockscreenWeatherCustomColor.setOnColorSelectedListener { color: Int -> putInt(WEATHER_TEXT_COLOR, color) } @@ -210,7 +218,6 @@ class XposedLockscreenWeather:BaseFragment(), object : IconsAdapter.OnItemClickListener { override fun onItemClick(view: View, position: Int) { val value = values[position] - Log.d("Weather", "Selected weather icon pack: $value") putString(WEATHER_ICON_PACK, value!!.replace(".debug", "")) binding.lockscreenWeatherIconPack.setSummary(entries[position]!!) forceRefreshWeatherSettings() @@ -383,7 +390,6 @@ class XposedLockscreenWeather:BaseFragment(), private fun queryAndUpdateWeather() { mWeatherClient.queryWeather() - Log.d("Weather", "Querying weather " + mWeatherClient.getWeatherInfo().toString()) if (mWeatherClient.getWeatherInfo() != null) { requireActivity().runOnUiThread { binding.lockscreenWeatherLastUpdate.setSummary(mWeatherClient.getWeatherInfo()!!.lastUpdateTime) @@ -425,7 +431,6 @@ class XposedLockscreenWeather:BaseFragment(), for (r in packageManager.queryIntentActivities(i, 0)) { val packageName = r.activityInfo.packageName if (packageName == DEFAULT_WEATHER_ICON_PACKAGE) { - Log.d("Weather", "Weather Icon Pack: " + r.activityInfo.name) values.add(0, r.activityInfo.name) drawables.add( 0, @@ -441,10 +446,8 @@ class XposedLockscreenWeather:BaseFragment(), ) } else { values.add(r.activityInfo.name) - Log.d("Weather", "Weather Icon Pack: " + r.activityInfo.name) val name = r.activityInfo.name.split("\\.".toRegex()).dropLastWhile { it.isEmpty() } .toTypedArray() - Log.d("Weather", "Weather Icon Pack: " + r.activityInfo.name) drawables.add( ResourcesCompat.getDrawable( resources, resources.getIdentifier( From 44f1f4608a6a7e06fd5ef3a2b4a33ecf64124230 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Wed, 14 Aug 2024 21:05:07 +0200 Subject: [PATCH 135/369] Rename .java to .kt --- .../iconify/utils/{OmniJawsClient.java => OmniJawsClient.kt} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename app/src/main/java/com/drdisagree/iconify/utils/{OmniJawsClient.java => OmniJawsClient.kt} (100%) diff --git a/app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.java b/app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.kt similarity index 100% rename from app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.java rename to app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.kt From d8f112f6b975768eb3d4c099ec787a09cdd7005f Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Wed, 14 Aug 2024 21:05:08 +0200 Subject: [PATCH 136/369] OmniJawsClient: Kotlin --- .../iconify/utils/OmniJawsClient.kt | 586 +++++++++--------- 1 file changed, 288 insertions(+), 298 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.kt b/app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.kt index b2c6703a6..823f2ff4a 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.kt @@ -1,4 +1,21 @@ -package com.drdisagree.iconify.utils; +package com.drdisagree.iconify.utils + +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent +import android.content.IntentFilter +import android.content.res.Resources +import android.graphics.Color +import android.graphics.drawable.ColorDrawable +import android.graphics.drawable.Drawable +import android.net.Uri +import android.text.TextUtils +import android.util.Log +import com.drdisagree.iconify.BuildConfig +import com.drdisagree.iconify.weather.Config +import java.text.DecimalFormat +import java.text.SimpleDateFormat +import java.util.Date /* * Copyright (C) 2021 The OmniROM Project @@ -19,386 +36,359 @@ package com.drdisagree.iconify.utils; */ -import static com.drdisagree.iconify.xposed.HookRes.modRes; - -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.content.pm.PackageManager; -import android.content.res.Resources; -import android.database.Cursor; -import android.graphics.Color; -import android.graphics.drawable.ColorDrawable; -import android.graphics.drawable.Drawable; -import android.net.Uri; -import android.text.TextUtils; -import android.util.Log; - -import androidx.core.content.res.ResourcesCompat; - -import com.drdisagree.iconify.BuildConfig; -import com.drdisagree.iconify.xposed.HookRes; - -import java.text.DecimalFormat; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - - -public class OmniJawsClient { - private static final String TAG = "OmniJawsClient"; - private static final boolean DEBUG = BuildConfig.DEBUG; - public static final String SERVICE_PACKAGE = BuildConfig.APPLICATION_ID; - public static final Uri WEATHER_URI - = Uri.parse("content://com.drdisagree.iconify.weatherprovider/weather"); - public static final Uri SETTINGS_URI - = Uri.parse("content://com.drdisagree.iconify.weatherprovider/settings"); - public static final Uri CONTROL_URI - = Uri.parse("content://com.drdisagree.iconify.weatherprovider/control"); - - private static final String ICON_PACKAGE_DEFAULT = BuildConfig.APPLICATION_ID; - private static final String ICON_PREFIX_DEFAULT = "google"; - private static final String ICON_PREFIX_OUTLINE = "outline"; - private static final String EXTRA_ERROR = "error"; - public static final int EXTRA_ERROR_NETWORK = 0; // No Network - public static final int EXTRA_ERROR_LOCATION = 1; // No Location Found - public static final int EXTRA_ERROR_DISABLED = 2; // Disabled - public static final int EXTRA_ERROR_NO_PERMISSIONS = 3; // No Permissions - - public static final String[] WEATHER_PROJECTION = new String[]{ - "city", - "wind_speed", - "wind_direction", - "condition_code", - "temperature", - "humidity", - "condition", - "forecast_low", - "forecast_high", - "forecast_condition", - "forecast_condition_code", - "time_stamp", - "forecast_date", - "pin_wheel" - }; - - public static final String[] SETTINGS_PROJECTION = new String[] { - "enabled", - "units", - "provider", - "setup", - "icon_pack" - }; - - private static final String WEATHER_UPDATE = SERVICE_PACKAGE + ".WEATHER_UPDATE"; - private static final String WEATHER_ERROR = SERVICE_PACKAGE + ".WEATHER_ERROR"; - - private static final DecimalFormat sNoDigitsFormat = new DecimalFormat("0"); - - public static class WeatherInfo { - public String city; - public String windSpeed; - public String windDirection; - public int conditionCode; - public String temp; - public String humidity; - public String condition; - public Long timeStamp; - public List forecasts; - public String tempUnits; - public String windUnits; - public String provider; - public String pinWheel; - public String iconPack; - - public String toString() { - return city + ":" + new Date(timeStamp) + ": " + windSpeed + ":" + windDirection + ":" +conditionCode + ":" + temp + ":" + humidity + ":" + condition + ":" + tempUnits + ":" + windUnits + ": " + forecasts + ": " + iconPack; +class OmniJawsClient(private val mContext: Context) { + class WeatherInfo { + var city: String? = null + var windSpeed: String? = null + var windDirection: String? = null + var conditionCode: Int = 0 + var temp: String? = null + var humidity: String? = null + var condition: String? = null + var timeStamp: Long? = null + var forecasts: List? = null + var tempUnits: String? = null + var windUnits: String? = null + var provider: String? = null + var pinWheel: String? = null + var iconPack: String? = null + + override fun toString(): String { + return city + ":" + Date(timeStamp!!) + ": " + windSpeed + ":" + windDirection + ":" + conditionCode + ":" + temp + ":" + humidity + ":" + condition + ":" + tempUnits + ":" + windUnits + ": " + forecasts + ": " + iconPack } - public String getLastUpdateTime() { - SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); - return sdf.format(new Date(timeStamp)); - } + val lastUpdateTime: String + get() { + val sdf = SimpleDateFormat("HH:mm:ss") + return sdf.format(Date(timeStamp!!)) + } } - public static class DayForecast { - public String low; - public String high; - public int conditionCode; - public String condition; - public String date; + class DayForecast { + var low: String? = null + var high: String? = null + var conditionCode: Int = 0 + var condition: String? = null + var date: String? = null - public String toString() { - return "[" + low + ":" + high + ":" +conditionCode + ":" + condition + ":" + date + "]"; + override fun toString(): String { + return "[$low:$high:$conditionCode:$condition:$date]" } } - public interface OmniJawsObserver { - void weatherUpdated(); - void weatherError(int errorReason); - default void updateSettings() {}; + interface OmniJawsObserver { + fun weatherUpdated() + fun weatherError(errorReason: Int) + fun updateSettings() {} } - private class WeatherUpdateReceiver extends BroadcastReceiver { - @Override - public void onReceive(final Context context, Intent intent) { - String action = intent.getAction(); - for (OmniJawsObserver observer : mObserver) { - if (action.equals(WEATHER_UPDATE)) { - observer.weatherUpdated(); + private inner class WeatherUpdateReceiver : BroadcastReceiver() { + override fun onReceive(context: Context, intent: Intent) { + val action = intent.action + for (observer in mObserver) { + if (action == WEATHER_UPDATE) { + observer.weatherUpdated() } - if (action.equals(WEATHER_ERROR)) { - int errorReason = intent.getIntExtra(EXTRA_ERROR, 0); - observer.weatherError(errorReason); + if (action == WEATHER_ERROR) { + val errorReason = intent.getIntExtra(EXTRA_ERROR, 0) + observer.weatherError(errorReason) } } } } - private Context mContext; - private WeatherInfo mCachedInfo; - private Resources mRes; - private String mPackageName; - private String mIconPrefix; - private String mGoogleImages = "google_%d"; - private String mSettingIconPackage; - private boolean mMetric; - private List mObserver; - private WeatherUpdateReceiver mReceiver; - private boolean mXposed = false; - - public OmniJawsClient(Context context, boolean xposed) { - mContext = context; - mXposed = xposed; - mObserver = new ArrayList<>(); - } - - public WeatherInfo getWeatherInfo() { - return mCachedInfo; - } - - private static String getFormattedValue(float value) { - if (Float.isNaN(value)) { - return "-"; - } - String formatted = sNoDigitsFormat.format(value); - if (formatted.equals("-0")) { - formatted = "0"; - } - return formatted; - } - - public void queryWeather() { + var weatherInfo: WeatherInfo? = null + private set + private var mRes: Resources? = null + private var mPackageName: String? = null + private var mIconPrefix: String? = null + private var mSettingIconPackage: String? = null + private var mMetric = false + private val mObserver: MutableList = + ArrayList() + private var mReceiver: WeatherUpdateReceiver? = null + + fun queryWeather() { try { - mCachedInfo = null; - Cursor c = mContext.getContentResolver().query(WEATHER_URI, WEATHER_PROJECTION, - null, null, null); + weatherInfo = null + var c = mContext.contentResolver.query( + WEATHER_URI, WEATHER_PROJECTION, + null, null, null + ) if (c != null) { try { - int count = c.getCount(); + val count = c.count if (count > 0) { - mCachedInfo = new WeatherInfo(); - List forecastList = new ArrayList(); - int i = 0; - for (i = 0; i < count; i++) { - c.moveToPosition(i); + weatherInfo = WeatherInfo() + val forecastList: MutableList = ArrayList() + var i = 0 + i = 0 + while (i < count) { + c.moveToPosition(i) if (i == 0) { - mCachedInfo.city = c.getString(0); - mCachedInfo.windSpeed = getFormattedValue(c.getFloat(1)); - mCachedInfo.windDirection = String.valueOf(c.getInt(2)) + "\u00b0"; - mCachedInfo.conditionCode = c.getInt(3); - mCachedInfo.temp = getFormattedValue(c.getFloat(4)); - mCachedInfo.humidity = c.getString(5); - mCachedInfo.condition = c.getString(6); - mCachedInfo.timeStamp = Long.valueOf(c.getString(11)); - mCachedInfo.pinWheel = c.getString(13); + weatherInfo!!.city = c.getString(0) + weatherInfo!!.windSpeed = getFormattedValue(c.getFloat(1)) + weatherInfo!!.windDirection = c.getInt(2).toString() + "\u00b0" + weatherInfo!!.conditionCode = c.getInt(3) + weatherInfo!!.temp = getFormattedValue(c.getFloat(4)) + weatherInfo!!.humidity = c.getString(5) + weatherInfo!!.condition = c.getString(6) + weatherInfo!!.timeStamp = c.getString(11).toLong() + weatherInfo!!.pinWheel = c.getString(13) } else { - DayForecast day = new DayForecast(); - day.low = getFormattedValue(c.getFloat(7)); - day.high = getFormattedValue(c.getFloat(8)); - day.condition = c.getString(9); - day.conditionCode = c.getInt(10); - day.date = c.getString(12); - forecastList.add(day); + val day = DayForecast() + day.low = getFormattedValue(c.getFloat(7)) + day.high = getFormattedValue(c.getFloat(8)) + day.condition = c.getString(9) + day.conditionCode = c.getInt(10) + day.date = c.getString(12) + forecastList.add(day) } + i++ } - mCachedInfo.forecasts = forecastList; + weatherInfo!!.forecasts = forecastList } } finally { - c.close(); + c.close() } } - c = mContext.getContentResolver().query(SETTINGS_URI, SETTINGS_PROJECTION, - null, null, null); + c = mContext.contentResolver.query( + SETTINGS_URI, SETTINGS_PROJECTION, + null, null, null + ) if (c != null) { try { - int count = c.getCount(); + val count = c.count if (count == 1) { - c.moveToPosition(0); - mMetric = c.getInt(1) == 0; - if (mCachedInfo != null) { - mCachedInfo.tempUnits = getTemperatureUnit(); - mCachedInfo.windUnits = getWindUnit(); - mCachedInfo.provider = c.getString(2); - mCachedInfo.iconPack = c.getString(4); + c.moveToPosition(0) + mMetric = c.getInt(1) == 0 + if (weatherInfo != null) { + weatherInfo!!.tempUnits = temperatureUnit + weatherInfo!!.windUnits = windUnit + weatherInfo!!.provider = c.getString(2) + weatherInfo!!.iconPack = c.getString(4) } } } finally { - c.close(); + c.close() } } - if (DEBUG) Log.d(TAG, "queryWeather " + mCachedInfo); - updateSettings(); - } catch (Exception e) { - Log.e(TAG, "queryWeather", e); + if (DEBUG) Log.d(TAG, "queryWeather " + weatherInfo) + updateSettings() + } catch (e: Exception) { + Log.e(TAG, "queryWeather", e) } } - private void loadDefaultIconsPackage() { - mPackageName = ICON_PACKAGE_DEFAULT; - mIconPrefix = ICON_PREFIX_DEFAULT; - mSettingIconPackage = mPackageName + "." + mIconPrefix; - if (DEBUG) Log.d(TAG, "Load default icon pack " + mSettingIconPackage + " " + mPackageName + " " + mIconPrefix); + private fun loadDefaultIconsPackage() { + mPackageName = ICON_PACKAGE_DEFAULT + mIconPrefix = ICON_PREFIX_DEFAULT + mSettingIconPackage = "$mPackageName.$mIconPrefix" + if (DEBUG) Log.d( + TAG, + "Load default icon pack $mSettingIconPackage $mPackageName $mIconPrefix" + ) try { - if (!mXposed) { - PackageManager packageManager = mContext.getPackageManager(); - mRes = packageManager.getResourcesForApplication(mPackageName); - } else { - mRes = modRes; - } - } catch (Exception e) { - Log.e(TAG, "loadDefaultIconsPackage", e); - mRes = null; + val packageManager = mContext.packageManager + mRes = packageManager.getResourcesForApplication(mPackageName!!) + } catch (e: Exception) { + Log.d(TAG, "loadDefaultIconsPackage", e) + mRes = null } if (mRes == null) { - Log.e(TAG, "mRes null"); + Log.w(TAG, "No default package found") } } - private Drawable getDefaultConditionImage() { - String packageName = ICON_PACKAGE_DEFAULT; - String iconPrefix = ICON_PREFIX_DEFAULT; + private val defaultConditionImage: Drawable + get() { + val packageName = ICON_PACKAGE_DEFAULT + val iconPrefix = ICON_PREFIX_DEFAULT - try { - PackageManager packageManager = mContext.getPackageManager(); - Resources res = packageManager.getResourcesForApplication(packageName); - if (res != null) { - int resId = res.getIdentifier(iconPrefix + "_na", "drawable", packageName); - Drawable d = ResourcesCompat.getDrawable(mRes, resId, mContext.getTheme()); - if (d != null) { - return d; - } - } else { - int resId = modRes.getIdentifier(iconPrefix + "_na", "drawable", packageName); - Drawable d = ResourcesCompat.getDrawable(modRes, resId, mContext.getTheme()); - if (d != null) { - return d; + try { + val packageManager = mContext.packageManager + val res = packageManager.getResourcesForApplication(packageName) + if (res != null) { + val resId = res.getIdentifier(iconPrefix + "_na", "drawable", packageName) + val d = res.getDrawable(resId) + if (d != null) { + return d + } } + } catch (e: Exception) { + Log.e(TAG, "defaultConditionImage", e) } - } catch (Exception ignored) { + // absolute absolute fallback + Log.w(TAG, "No default package found") + return ColorDrawable(Color.RED) } - // absolute absolute fallback - Log.w(TAG, "No default package found"); - return new ColorDrawable(Color.RED); - } - private void loadCustomIconPackage() { - if (DEBUG) Log.d(TAG, "Load custom icon pack " + mSettingIconPackage); - int idx = mSettingIconPackage.lastIndexOf("."); - mPackageName = mSettingIconPackage.substring(0, idx); - mIconPrefix = mSettingIconPackage.substring(idx + 1); - if (DEBUG) Log.d(TAG, "Load custom icon pack " + mPackageName + " " + mIconPrefix); + private fun loadCustomIconPackage() { + if (DEBUG) Log.d( + TAG, + "Load custom icon pack $mSettingIconPackage" + ) + val idx = mSettingIconPackage!!.lastIndexOf(".") + mPackageName = mSettingIconPackage!!.substring(0, idx) + mIconPrefix = mSettingIconPackage!!.substring(idx + 1) + if (DEBUG) Log.d( + TAG, + "Load custom icon pack $mPackageName $mIconPrefix" + ) try { - if (!mXposed) { - PackageManager packageManager = mContext.getPackageManager(); - mRes = packageManager.getResourcesForApplication(mPackageName); - } else { - mRes = modRes; - } - - } catch (Exception e) { - mRes = null; + val packageManager = mContext.packageManager + mRes = packageManager.getResourcesForApplication(mPackageName!!) + } catch (e: Exception) { + Log.d(TAG, "loadCustomIconPackage", e) + mRes = null } if (mRes == null) { - Log.w(TAG, "Icon pack loading failed - loading default"); - loadDefaultIconsPackage(); + Log.w(TAG, "Icon pack loading failed - loading default") + loadDefaultIconsPackage() } } - public Drawable getWeatherConditionImage(int conditionCode) { + fun getWeatherConditionImage(conditionCode: Int): Drawable { try { - int resId = mRes.getIdentifier(mIconPrefix + "_" + conditionCode, "drawable", mPackageName); - Drawable d = ResourcesCompat.getDrawable(mRes, resId, mContext.getTheme()); + var resId = + mRes!!.getIdentifier(mIconPrefix + "_" + conditionCode, "drawable", mPackageName) + var d = mRes!!.getDrawable(resId) if (d != null) { - return d; + return d } - Log.w(TAG, "Failed to get condition image for " + conditionCode + " use default"); - - resId = mRes.getIdentifier(String.format(mGoogleImages, "na"), "drawable", mPackageName); - d = ResourcesCompat.getDrawable(mRes, resId, mContext.getTheme()); + Log.w( + TAG, + "Failed to get condition image for $conditionCode use default" + ) + resId = mRes!!.getIdentifier(mIconPrefix + "_na", "drawable", mPackageName) + d = mRes!!.getDrawable(resId) if (d != null) { - return d; + return d } - } catch(Exception e) { - Log.e(TAG, "getWeatherConditionImage", e); + } catch (e: Exception) { + Log.e(TAG, "getWeatherConditionImage", e) } - Log.w(TAG, "Failed to get condition image for " + conditionCode); - return getDefaultConditionImage(); + Log.w( + TAG, + "Failed to get condition image for $conditionCode" + ) + return defaultConditionImage } - public boolean isOmniJawsEnabled() { - return true; - } + val isOmniJawsEnabled: Boolean + get() = Config.isEnabled(mContext) - private String getTemperatureUnit() { - return "\u00b0" + (mMetric ? "C" : "F"); - } + private val temperatureUnit: String + get() = "\u00b0" + (if (mMetric) "C" else "F") - private String getWindUnit() { - return mMetric ? "km/h":"mph"; - } + private val windUnit: String + get() = if (mMetric) "km/h" else "mph" - private void updateSettings() { - final String iconPack = mCachedInfo != null ? mCachedInfo.iconPack : null; + private fun updateSettings() { + val iconPack = if (weatherInfo != null) weatherInfo!!.iconPack else null if (TextUtils.isEmpty(iconPack)) { - loadDefaultIconsPackage(); - } else if (mSettingIconPackage == null || !iconPack.equals(mSettingIconPackage)) { - mSettingIconPackage = iconPack; - loadCustomIconPackage(); + Log.d(TAG, "updateSettings No icon pack set, using default") + loadDefaultIconsPackage() + } else if (iconPack != mSettingIconPackage) { + Log.d( + TAG, + "updateSettings New icon pack set, loading $iconPack" + ) + mSettingIconPackage = iconPack + loadCustomIconPackage() } } - public void addObserver(OmniJawsObserver observer) { + fun addObserver(observer: OmniJawsObserver) { if (mObserver.isEmpty()) { if (mReceiver != null) { try { - mContext.unregisterReceiver(mReceiver); - } catch (Exception ignored) { + mContext.unregisterReceiver(mReceiver) + } catch (ignored: Exception) { } } - mReceiver = new WeatherUpdateReceiver(); - IntentFilter filter = new IntentFilter(); - filter.addAction(WEATHER_UPDATE); - filter.addAction(WEATHER_ERROR); - if (DEBUG) Log.d(TAG, "registerReceiver"); - mContext.registerReceiver(mReceiver, filter, Context.RECEIVER_EXPORTED); + mReceiver = WeatherUpdateReceiver() + val filter = IntentFilter() + filter.addAction(WEATHER_UPDATE) + filter.addAction(WEATHER_ERROR) + if (DEBUG) Log.d(TAG, "registerReceiver") + mContext.registerReceiver(mReceiver, filter, Context.RECEIVER_EXPORTED) } - mObserver.add(observer); + mObserver.add(observer) } - public void removeObserver(OmniJawsObserver observer) { - mObserver.remove(observer); + fun removeObserver(observer: OmniJawsObserver) { + mObserver.remove(observer) if (mObserver.isEmpty() && mReceiver != null) { try { - if (DEBUG) Log.d(TAG, "unregisterReceiver"); - mContext.unregisterReceiver(mReceiver); - } catch (Exception ignored) { + if (DEBUG) Log.d(TAG, "unregisterReceiver") + mContext.unregisterReceiver(mReceiver) + } catch (ignored: Exception) { } - mReceiver = null; + mReceiver = null } } -} + companion object { + private const val TAG = "OmniJawsClient" + private val DEBUG = BuildConfig.DEBUG + const val SERVICE_PACKAGE: String = BuildConfig.APPLICATION_ID + val WEATHER_URI + : Uri = Uri.parse("content://com.drdisagree.iconify.weatherprovider/weather") + val SETTINGS_URI + : Uri = Uri.parse("content://com.drdisagree.iconify.weatherprovider/settings") + val CONTROL_URI + : Uri = Uri.parse("content://com.drdisagree.iconify.weatherprovider/control") + + private const val ICON_PACKAGE_DEFAULT = BuildConfig.APPLICATION_ID + private const val ICON_PREFIX_DEFAULT = "google" + private const val ICON_PREFIX_OUTLINE = "outline" + private const val EXTRA_ERROR = "error" + const val EXTRA_ERROR_NETWORK: Int = 0 // No Network + const val EXTRA_ERROR_LOCATION: Int = 1 // No Location Found + const val EXTRA_ERROR_DISABLED: Int = 2 // Disabled + const val EXTRA_ERROR_NO_PERMISSIONS: Int = 3 // No Permissions + + val WEATHER_PROJECTION: Array = arrayOf( + "city", + "wind_speed", + "wind_direction", + "condition_code", + "temperature", + "humidity", + "condition", + "forecast_low", + "forecast_high", + "forecast_condition", + "forecast_condition_code", + "time_stamp", + "forecast_date", + "pin_wheel" + ) + + val SETTINGS_PROJECTION: Array = arrayOf( + "enabled", + "units", + "provider", + "setup", + "icon_pack" + ) + + private const val WEATHER_UPDATE = SERVICE_PACKAGE + ".WEATHER_UPDATE" + private const val WEATHER_ERROR = SERVICE_PACKAGE + ".WEATHER_ERROR" + + private val sNoDigitsFormat = DecimalFormat("0") + + private fun getFormattedValue(value: Float): String { + if (java.lang.Float.isNaN(value)) { + return "-" + } + var formatted = sNoDigitsFormat.format(value.toDouble()) + if (formatted == "-0") { + formatted = "0" + } + return formatted + } + } +} \ No newline at end of file From 7a833a2f28d763078c933d4373f00bcb999a51ee Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Wed, 14 Aug 2024 21:05:55 +0200 Subject: [PATCH 137/369] default icon pack as APPLICATION_ID --- app/src/main/java/com/drdisagree/iconify/weather/Config.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/drdisagree/iconify/weather/Config.kt b/app/src/main/java/com/drdisagree/iconify/weather/Config.kt index bb1cfd62d..ca19e2559 100644 --- a/app/src/main/java/com/drdisagree/iconify/weather/Config.kt +++ b/app/src/main/java/com/drdisagree/iconify/weather/Config.kt @@ -127,7 +127,7 @@ object Config { } fun getIconPack(context: Context): String? { - return getPrefs(context).getString(WEATHER_ICON_PACK, BuildConfig.APPLICATION_ID.replace(".debug", "") + ".google") + return getPrefs(context).getString(WEATHER_ICON_PACK, BuildConfig.APPLICATION_ID + ".google") } fun setUpdateError(context: Context, value: Boolean) { From c0b16cabd5da69f7d76578100ad23647542d4657 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Wed, 14 Aug 2024 21:06:23 +0200 Subject: [PATCH 138/369] Kotlin Companion Object from OmniJawsClient --- .../ui/fragments/XposedLockscreenWeather.kt | 16 +++++++--------- .../drdisagree/iconify/weather/WeatherWork.kt | 8 ++++---- .../iconify/xposed/modules/LockscreenWeather.kt | 8 +++++++- .../iconify/xposed/views/CurrentWeatherView.kt | 4 ++-- 4 files changed, 20 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt index d0a8a277d..85a07cf45 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt @@ -24,7 +24,6 @@ import androidx.recyclerview.widget.LinearLayoutManager import com.drdisagree.iconify.BuildConfig import com.drdisagree.iconify.Iconify.Companion.appContextLocale import com.drdisagree.iconify.R -import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_CHARGING_COLOR import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_LOCATION import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_LEFT @@ -88,7 +87,7 @@ class XposedLockscreenWeather:BaseFragment(), R.string.activity_title_lockscreen_weather ) - mWeatherClient = OmniJawsClient(requireContext(), false) + mWeatherClient = OmniJawsClient(requireContext()) return view } @@ -112,7 +111,6 @@ class XposedLockscreenWeather:BaseFragment(), putBoolean(WEATHER_SWITCH, isChecked) Config.setEnabled(requireContext(), isChecked, WEATHER_SWITCH) -// updateEnabled(isChecked) if (!hasPermissions()) { showPermissionDialog() @@ -218,13 +216,13 @@ class XposedLockscreenWeather:BaseFragment(), object : IconsAdapter.OnItemClickListener { override fun onItemClick(view: View, position: Int) { val value = values[position] - putString(WEATHER_ICON_PACK, value!!.replace(".debug", "")) + putString(WEATHER_ICON_PACK, value!!) binding.lockscreenWeatherIconPack.setSummary(entries[position]!!) forceRefreshWeatherSettings() } }) mAdapter.setDrawables(drawables.filterNotNull().toTypedArray()) - val summary = entries[values.indexOf(currentIconPack)] + val summary = if (values.contains(currentIconPack)) entries[values.indexOf(currentIconPack)] else entries[0] binding.lockscreenWeatherIconPack.setSummary(summary!!) binding.lockscreenWeatherIconPack.setLayoutManager(LinearLayoutManager(requireContext())) binding.lockscreenWeatherIconPack.setAdapter(mAdapter) @@ -390,9 +388,9 @@ class XposedLockscreenWeather:BaseFragment(), private fun queryAndUpdateWeather() { mWeatherClient.queryWeather() - if (mWeatherClient.getWeatherInfo() != null) { + if (mWeatherClient.weatherInfo != null) { requireActivity().runOnUiThread { - binding.lockscreenWeatherLastUpdate.setSummary(mWeatherClient.getWeatherInfo()!!.lastUpdateTime) + binding.lockscreenWeatherLastUpdate.setSummary(mWeatherClient.weatherInfo!!.lastUpdateTime) } } } @@ -429,7 +427,7 @@ class XposedLockscreenWeather:BaseFragment(), val packageManager = requireContext().packageManager i.setAction(BuildConfig.APPLICATION_ID + ".WeatherIconPack") for (r in packageManager.queryIntentActivities(i, 0)) { - val packageName = r.activityInfo.packageName + val packageName = r.activityInfo.applicationInfo.packageName if (packageName == DEFAULT_WEATHER_ICON_PACKAGE) { values.add(0, r.activityInfo.name) drawables.add( @@ -445,7 +443,7 @@ class XposedLockscreenWeather:BaseFragment(), ) ) } else { - values.add(r.activityInfo.name) + values.add(packageName + "." + r.activityInfo.name.split(".").last()) val name = r.activityInfo.name.split("\\.".toRegex()).dropLastWhile { it.isEmpty() } .toTypedArray() drawables.add( diff --git a/app/src/main/java/com/drdisagree/iconify/weather/WeatherWork.kt b/app/src/main/java/com/drdisagree/iconify/weather/WeatherWork.kt index c1ba90f07..aa973ef5d 100644 --- a/app/src/main/java/com/drdisagree/iconify/weather/WeatherWork.kt +++ b/app/src/main/java/com/drdisagree/iconify/weather/WeatherWork.kt @@ -14,10 +14,10 @@ import androidx.concurrent.futures.CallbackToFutureAdapter import androidx.work.ListenableWorker import androidx.work.WorkerParameters import com.drdisagree.iconify.BuildConfig -import com.drdisagree.iconify.utils.OmniJawsClient.EXTRA_ERROR_DISABLED -import com.drdisagree.iconify.utils.OmniJawsClient.EXTRA_ERROR_LOCATION -import com.drdisagree.iconify.utils.OmniJawsClient.EXTRA_ERROR_NETWORK -import com.drdisagree.iconify.utils.OmniJawsClient.EXTRA_ERROR_NO_PERMISSIONS +import com.drdisagree.iconify.utils.OmniJawsClient.Companion.EXTRA_ERROR_DISABLED +import com.drdisagree.iconify.utils.OmniJawsClient.Companion.EXTRA_ERROR_NETWORK +import com.drdisagree.iconify.utils.OmniJawsClient.Companion.EXTRA_ERROR_LOCATION +import com.drdisagree.iconify.utils.OmniJawsClient.Companion.EXTRA_ERROR_NO_PERMISSIONS import com.drdisagree.iconify.weather.Config.getLocationLat import com.drdisagree.iconify.weather.Config.getLocationLon import com.drdisagree.iconify.weather.Config.getProvider diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt index b819df344..d9fb23eb6 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt @@ -5,6 +5,7 @@ import android.graphics.Color import android.view.View import android.view.ViewGroup import android.widget.LinearLayout +import com.drdisagree.iconify.common.Preferences.ICONIFY_LOCKSCREEN_CLOCK_TAG import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_LEFT import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_TOP @@ -126,7 +127,12 @@ class LockscreenWeather(context: Context?) : ModPack(context!!) { } catch (ignored: Throwable) { } mWeatherContainer.addView(currentWeatherView) - mStatusViewContainer!!.addView(mWeatherContainer) + val clockView = mStatusViewContainer!!.findViewWithTag(ICONIFY_LOCKSCREEN_CLOCK_TAG) + if (clockView == null) { + mStatusViewContainer!!.addView(mWeatherContainer) + } else { + mStatusViewContainer!!.addView(mWeatherContainer, mStatusViewContainer!!.indexOfChild(clockView)) + } refreshWeatherView(currentWeatherView) updateMargins() } catch (ignored: Throwable) { diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/views/CurrentWeatherView.kt b/app/src/main/java/com/drdisagree/iconify/xposed/views/CurrentWeatherView.kt index 30a1aded1..23e20fa69 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/views/CurrentWeatherView.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/views/CurrentWeatherView.kt @@ -65,7 +65,7 @@ class CurrentWeatherView(context: Context, name: String) : LinearLayout(context) ) } catch (ignored: PackageManager.NameNotFoundException) { } - mWeatherClient = OmniJawsClient(appContext, true) + mWeatherClient = OmniJawsClient(mContext) inflateView() @@ -190,7 +190,7 @@ class CurrentWeatherView(context: Context, name: String) : LinearLayout(context) return } mWeatherClient.queryWeather() - mWeatherInfo = mWeatherClient.getWeatherInfo() + mWeatherInfo = mWeatherClient.weatherInfo if (mWeatherInfo != null) { var formattedCondition: String = mWeatherInfo!!.condition.toString() if (formattedCondition.lowercase(Locale.getDefault()).contains("clouds")) { From 616638325b8446e079ffb32e5e09fcba75e79c02 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Wed, 14 Aug 2024 21:28:16 +0200 Subject: [PATCH 139/369] LockscreenWeather: remove switch for custom margin, make default margins enabled & added bottom margin --- .../drdisagree/iconify/common/Preferences.kt | 2 +- .../ui/fragments/XposedLockscreenWeather.kt | 25 ++++------- .../xposed/modules/LockscreenWeather.kt | 42 +++++++------------ .../fragment_xposed_lockscreen_weather.xml | 25 ++++++----- app/src/main/res/values/strings.xml | 1 + 5 files changed, 40 insertions(+), 55 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt index 72df48b16..66afebb7e 100644 --- a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt +++ b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt @@ -263,9 +263,9 @@ object Preferences { const val WEATHER_OWM_KEY: String = "owm_key" const val WEATHER_UNITS: String = "weather_units" const val WEATHER_CUSTOM_LOCATION: String = "weather_custom_location_switch" - const val WEATHER_CUSTOM_MARGINS: String = "weather_custom_margins" const val WEATHER_CUSTOM_MARGINS_TOP: String = "weather_custom_margins_top" const val WEATHER_CUSTOM_MARGINS_LEFT: String = "weather_custom_margins_left" + const val WEATHER_CUSTOM_MARGINS_BOTTOM: String = "weather_custom_margins_bottom" const val WEATHER_STYLE: String = "weather_style" // Settings diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt index 85a07cf45..7c727a666 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt @@ -25,7 +25,7 @@ import com.drdisagree.iconify.BuildConfig import com.drdisagree.iconify.Iconify.Companion.appContextLocale import com.drdisagree.iconify.R import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_LOCATION -import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS +import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_BOTTOM import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_LEFT import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_TOP import com.drdisagree.iconify.common.Preferences.WEATHER_ICON_PACK @@ -227,28 +227,21 @@ class XposedLockscreenWeather:BaseFragment(), binding.lockscreenWeatherIconPack.setLayoutManager(LinearLayoutManager(requireContext())) binding.lockscreenWeatherIconPack.setAdapter(mAdapter) - binding.lockscreenWeatherCustomMargins.isSwitchChecked = getBoolean(WEATHER_CUSTOM_MARGINS, false) - binding.lockscreenWeatherCustomMargins.setSwitchChangeListener{ _: CompoundButton?, isChecked: Boolean -> - putBoolean(WEATHER_CUSTOM_MARGINS, isChecked) - if (isChecked) { - binding.lockscreenWeatherMarginTop.visibility = View.VISIBLE - binding.lockscreenWeatherMarginLeft.visibility = View.VISIBLE - } else { - binding.lockscreenWeatherMarginTop.visibility = View.GONE - binding.lockscreenWeatherMarginLeft.visibility = View.GONE - } - } - - binding.lockscreenWeatherMarginTop.sliderValue = getInt(WEATHER_CUSTOM_MARGINS_TOP, 0) + binding.lockscreenWeatherMarginTop.sliderValue = getInt(WEATHER_CUSTOM_MARGINS_TOP, 20) binding.lockscreenWeatherMarginTop.setOnSliderChangeListener{ _: Slider?, value: Float, _: Boolean -> putInt(WEATHER_CUSTOM_MARGINS_TOP, value.toInt()) } - binding.lockscreenWeatherMarginLeft.sliderValue = getInt(WEATHER_CUSTOM_MARGINS_LEFT, 0) + binding.lockscreenWeatherMarginLeft.sliderValue = getInt(WEATHER_CUSTOM_MARGINS_LEFT, 20) binding.lockscreenWeatherMarginLeft.setOnSliderChangeListener{ _: Slider?, value: Float, _: Boolean -> putInt(WEATHER_CUSTOM_MARGINS_LEFT, value.toInt()) } + binding.lockscreenWeatherMarginBottom.sliderValue = getInt(WEATHER_CUSTOM_MARGINS_BOTTOM, 20) + binding.lockscreenWeatherMarginBottom.setOnSliderChangeListener{ _: Slider?, value: Float, _: Boolean -> + putInt(WEATHER_CUSTOM_MARGINS_BOTTOM, value.toInt()) + } + binding.lockscreenWeatherBg.setSelectedIndex(getInt(WEATHER_STYLE, 0)) binding.lockscreenWeatherBg.setOnItemSelectedListener{ putInt(WEATHER_STYLE, it) @@ -479,8 +472,6 @@ class XposedLockscreenWeather:BaseFragment(), binding.lockscreenWeatherCustomColor.visibility = if (getBoolean(WEATHER_TEXT_COLOR_SWITCH, false)) View.VISIBLE else View.GONE binding.lockscreenWeatherCustomLocationMenu.isEnabled = getBoolean(WEATHER_CUSTOM_LOCATION, false) - binding.lockscreenWeatherMarginTop.visibility = if (getBoolean(WEATHER_CUSTOM_MARGINS, false)) View.VISIBLE else View.GONE - binding.lockscreenWeatherMarginLeft.visibility = if (getBoolean(WEATHER_CUSTOM_MARGINS, false)) View.VISIBLE else View.GONE } diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt index d9fb23eb6..24797c58e 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt @@ -6,7 +6,7 @@ import android.view.View import android.view.ViewGroup import android.widget.LinearLayout import com.drdisagree.iconify.common.Preferences.ICONIFY_LOCKSCREEN_CLOCK_TAG -import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS +import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_BOTTOM import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_LEFT import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_TOP import com.drdisagree.iconify.common.Preferences.WEATHER_ICON_SIZE @@ -38,12 +38,11 @@ class LockscreenWeather(context: Context?) : ModPack(context!!) { private var weatherShowWind = false private var weatherCustomColor = false private var weatherColor = Color.WHITE - private var weatherStartPadding = 0 private var weatherTextSize: Int = 16 private var weatherImageSize: Int = 18 - private var mCustomMargins = false - private var mLeftMargin = 0 + private var mLeftMargin: Int = 0 private var mTopMargin: Int = 0 + private var mBottomMargin: Int = 0 private var mWeatherBackground = 0 private lateinit var mWeatherContainer: LinearLayout @@ -62,9 +61,9 @@ class LockscreenWeather(context: Context?) : ModPack(context!!) { weatherColor = Xprefs!!.getInt(WEATHER_TEXT_COLOR, Color.WHITE) weatherTextSize = Xprefs!!.getInt(WEATHER_TEXT_SIZE, 16) weatherImageSize = Xprefs!!.getInt(WEATHER_ICON_SIZE, 18) - mCustomMargins = Xprefs!!.getBoolean(WEATHER_CUSTOM_MARGINS, false) - mLeftMargin = Xprefs!!.getInt(WEATHER_CUSTOM_MARGINS_LEFT, 0) - mTopMargin = Xprefs!!.getInt(WEATHER_CUSTOM_MARGINS_TOP, 0) + mLeftMargin = Xprefs!!.getInt(WEATHER_CUSTOM_MARGINS_LEFT, 20) + mTopMargin = Xprefs!!.getInt(WEATHER_CUSTOM_MARGINS_TOP, 20) + mBottomMargin = Xprefs!!.getInt(WEATHER_CUSTOM_MARGINS_BOTTOM, 20) mWeatherBackground = Xprefs!!.getInt(WEATHER_STYLE, 0) if (key.isNotEmpty() && @@ -77,7 +76,7 @@ class LockscreenWeather(context: Context?) : ModPack(context!!) { key[0] == (WEATHER_TEXT_SIZE) || key[0] == (WEATHER_ICON_SIZE) || key[0] == (WEATHER_STYLE) || - key[0] == (WEATHER_CUSTOM_MARGINS) || + key[0] == (WEATHER_CUSTOM_MARGINS_BOTTOM) || key[0] == (WEATHER_CUSTOM_MARGINS_LEFT) || key[0] == (WEATHER_CUSTOM_MARGINS_TOP)) ) { @@ -140,25 +139,14 @@ class LockscreenWeather(context: Context?) : ModPack(context!!) { } private fun updateMargins() { - if (mCustomMargins) { - setMargins( - mWeatherContainer, - mContext, - mLeftMargin, - mTopMargin, - mLeftMargin, - 0 - ) - } else { - setMargins( - mWeatherContainer, - mContext, - 0, - 0, - 0, - 0 - ) - } + setMargins( + mWeatherContainer, + mContext, + mLeftMargin, + mTopMargin, + mLeftMargin, + mBottomMargin + ) } private fun refreshWeatherView(currentWeatherView: CurrentWeatherView?) { diff --git a/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml b/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml index c0f189e5b..f65b979c4 100644 --- a/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml +++ b/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml @@ -132,13 +132,6 @@ android:layout_height="wrap_content" app:titleText="@string/weather_icon_pack_title" /> - - + + Top margin Center Layout Left Margin + Bottom Margin Weather Background Style From a80467f5e90c3a5196e681cc0a649591347ae946 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Wed, 14 Aug 2024 21:47:01 +0200 Subject: [PATCH 140/369] SystemUI restart when Enabling Weather --- .../ui/fragments/XposedLockscreenWeather.kt | 17 ++++++++++++++--- .../com/drdisagree/iconify/weather/Config.kt | 2 +- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt index 7c727a666..823eb7e57 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt @@ -12,7 +12,10 @@ import android.graphics.drawable.Drawable import android.location.LocationManager import android.net.Uri import android.os.Bundle +import android.os.Handler +import android.os.Looper import android.provider.Settings +import android.text.TextUtils import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -24,6 +27,7 @@ import androidx.recyclerview.widget.LinearLayoutManager import com.drdisagree.iconify.BuildConfig import com.drdisagree.iconify.Iconify.Companion.appContextLocale import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Const.SWITCH_ANIMATION_DELAY import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_LOCATION import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_BOTTOM import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_LEFT @@ -57,6 +61,7 @@ import com.drdisagree.iconify.ui.adapters.IconsAdapter.Companion.WEATHER_ICONS_A import com.drdisagree.iconify.ui.base.BaseFragment import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader import com.drdisagree.iconify.utils.OmniJawsClient +import com.drdisagree.iconify.utils.SystemUtil import com.drdisagree.iconify.weather.AbstractWeatherProvider.Companion.PART_COORDINATES import com.drdisagree.iconify.weather.Config import com.google.android.material.dialog.MaterialAlertDialogBuilder @@ -117,6 +122,12 @@ class XposedLockscreenWeather:BaseFragment(), } else { checkLocationPermissions(false) } + updateUI() + + Handler(Looper.getMainLooper()).postDelayed( + { SystemUtil.handleSystemUIRestart() }, + SWITCH_ANIMATION_DELAY + ) } binding.lockscreenWeatherUpdateInterval.setSelectedIndex(getInt(WEATHER_UPDATE_INTERVAL, 1)) @@ -206,7 +217,7 @@ class XposedLockscreenWeather:BaseFragment(), getAvailableWeatherIconPacks(entries, values, drawables) val entriesChar: Array = entries.filterNotNull().toTypedArray() val valuesChar: Array = values.filterNotNull().toTypedArray() - val currentIconPack = Config.getIconPack(requireContext()) + val currentIconPack = if (TextUtils.isEmpty(Config.getIconPack(requireContext()))) valuesChar[0].toString() else Config.getIconPack(requireContext()) val mAdapter = IconsAdapter( entriesChar, @@ -222,7 +233,7 @@ class XposedLockscreenWeather:BaseFragment(), } }) mAdapter.setDrawables(drawables.filterNotNull().toTypedArray()) - val summary = if (values.contains(currentIconPack)) entries[values.indexOf(currentIconPack)] else entries[0] + val summary = if (!TextUtils.isEmpty(currentIconPack) && values.contains(currentIconPack)) entries[values.indexOf(currentIconPack)] else entries[0] binding.lockscreenWeatherIconPack.setSummary(summary!!) binding.lockscreenWeatherIconPack.setLayoutManager(LinearLayoutManager(requireContext())) binding.lockscreenWeatherIconPack.setAdapter(mAdapter) @@ -475,7 +486,7 @@ class XposedLockscreenWeather:BaseFragment(), } - var mCustomLocationLauncher: ActivityResultLauncher = registerForActivityResult( + private var mCustomLocationLauncher: ActivityResultLauncher = registerForActivityResult( ActivityResultContracts.StartActivityForResult() ) { result -> if (result.resultCode == Activity.RESULT_OK) { diff --git a/app/src/main/java/com/drdisagree/iconify/weather/Config.kt b/app/src/main/java/com/drdisagree/iconify/weather/Config.kt index ca19e2559..2b5013855 100644 --- a/app/src/main/java/com/drdisagree/iconify/weather/Config.kt +++ b/app/src/main/java/com/drdisagree/iconify/weather/Config.kt @@ -127,7 +127,7 @@ object Config { } fun getIconPack(context: Context): String? { - return getPrefs(context).getString(WEATHER_ICON_PACK, BuildConfig.APPLICATION_ID + ".google") + return getPrefs(context).getString(WEATHER_ICON_PACK, null) } fun setUpdateError(context: Context, value: Boolean) { From e7371b783f567fcd617ee1afbcb62e231df134d8 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Wed, 14 Aug 2024 22:11:24 +0200 Subject: [PATCH 141/369] Slider Value --- .../res/layout/fragment_xposed_lockscreen_weather.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml b/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml index f65b979c4..899883a1e 100644 --- a/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml +++ b/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml @@ -138,8 +138,8 @@ android:layout_height="wrap_content" app:titleText="@string/weather_margin_top" app:sliderStepSize="1" - app:sliderValue="0" - app:sliderValueFrom="20" + app:sliderValue="20" + app:sliderValueFrom="0" app:sliderValueTo="100" app:sliderDefaultValue="20" app:valueFormat="dp" /> @@ -150,8 +150,8 @@ android:layout_height="wrap_content" app:titleText="@string/weather_margin_left" app:sliderStepSize="1" - app:sliderValue="0" - app:sliderValueFrom="20" + app:sliderValue="20" + app:sliderValueFrom="0" app:sliderValueTo="100" app:sliderDefaultValue="20" app:valueFormat="dp" /> From 450dbe8bcf9fd36e651f131e7c8b14419491af72 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Wed, 14 Aug 2024 22:12:23 +0200 Subject: [PATCH 142/369] Removed some useless logging --- .../java/com/drdisagree/iconify/utils/OmniJawsClient.kt | 4 ---- .../drdisagree/iconify/weather/AbstractWeatherProvider.kt | 4 ---- .../drdisagree/iconify/weather/WeatherContentProvider.kt | 5 ----- .../iconify/weather/providers/OpenMeteoProvider.kt | 5 +---- .../drdisagree/iconify/xposed/views/CurrentWeatherView.kt | 7 +++---- 5 files changed, 4 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.kt b/app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.kt index 823f2ff4a..1144603c7 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.kt @@ -240,10 +240,6 @@ class OmniJawsClient(private val mContext: Context) { val packageManager = mContext.packageManager mRes = packageManager.getResourcesForApplication(mPackageName!!) } catch (e: Exception) { - Log.d(TAG, "loadCustomIconPackage", e) - mRes = null - } - if (mRes == null) { Log.w(TAG, "Icon pack loading failed - loading default") loadDefaultIconsPackage() } diff --git a/app/src/main/java/com/drdisagree/iconify/weather/AbstractWeatherProvider.kt b/app/src/main/java/com/drdisagree/iconify/weather/AbstractWeatherProvider.kt index de2774d46..6917e59c1 100644 --- a/app/src/main/java/com/drdisagree/iconify/weather/AbstractWeatherProvider.kt +++ b/app/src/main/java/com/drdisagree/iconify/weather/AbstractWeatherProvider.kt @@ -23,10 +23,6 @@ abstract class AbstractWeatherProvider(protected var mContext: Context) { NetworkUtils.downloadUrlMemoryAsString(url) { result: String? -> if (result != null) { - Log.d( - TAG, - "Download success $result" - ) response = result } else { response = "" diff --git a/app/src/main/java/com/drdisagree/iconify/weather/WeatherContentProvider.kt b/app/src/main/java/com/drdisagree/iconify/weather/WeatherContentProvider.kt index a9fb8d51b..167a8b427 100644 --- a/app/src/main/java/com/drdisagree/iconify/weather/WeatherContentProvider.kt +++ b/app/src/main/java/com/drdisagree/iconify/weather/WeatherContentProvider.kt @@ -121,10 +121,6 @@ class WeatherContentProvider : ContentProvider() { COLUMN_FORCE_REFRESH ) ) { - if (DEBUG) Log.i( - TAG, - "update: $uri $values" - ) scheduleUpdateNow(mContext) } } @@ -208,7 +204,6 @@ class WeatherContentProvider : ContentProvider() { } fun updateCachedWeatherInfo(context: Context) { - if (DEBUG) Log.d(TAG, "updateCachedWeatherInfo()") sCachedWeatherInfo = Config.getWeatherData(context) context.contentResolver.notifyChange( Uri.parse("content://$AUTHORITY/weather"), null diff --git a/app/src/main/java/com/drdisagree/iconify/weather/providers/OpenMeteoProvider.kt b/app/src/main/java/com/drdisagree/iconify/weather/providers/OpenMeteoProvider.kt index 19e2920ca..0bad5a70e 100644 --- a/app/src/main/java/com/drdisagree/iconify/weather/providers/OpenMeteoProvider.kt +++ b/app/src/main/java/com/drdisagree/iconify/weather/providers/OpenMeteoProvider.kt @@ -38,7 +38,6 @@ class OpenMeteoProvider(context: Context?) : AbstractWeatherProvider(context!!) speedUnit, timeZone ) - Log.d(TAG, "Condition URL = $conditionUrl") val conditionResponse = retrieve(conditionUrl) ?: return null log( TAG, @@ -69,11 +68,9 @@ class OpenMeteoProvider(context: Context?) : AbstractWeatherProvider(context!!) parseForecasts(JSONObject(conditionResponse).getJSONObject("daily"), metric), System.currentTimeMillis() ) - - log(TAG, "Weather updated: $w") return w } catch (e: JSONException) { - Log.w( + Log.e( TAG, "Received malformed weather data (coordinates = $selection)", e ) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/views/CurrentWeatherView.kt b/app/src/main/java/com/drdisagree/iconify/xposed/views/CurrentWeatherView.kt index 23e20fa69..c3f59c208 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/views/CurrentWeatherView.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/views/CurrentWeatherView.kt @@ -23,6 +23,7 @@ import com.drdisagree.iconify.xposed.HookRes.Companion.modRes import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.findViewWithTagAndChangeColor import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.setMargins import de.robv.android.xposed.XposedBridge +import de.robv.android.xposed.XposedBridge.log import java.util.Locale import java.util.function.Consumer @@ -131,7 +132,6 @@ class CurrentWeatherView(context: Context, name: String) : LinearLayout(context) } private fun enableUpdates() { - XposedBridge.log(TAG + "enableUpdates") if (mWeatherClient != null) { mWeatherClient.addObserver(this) //WeatherScheduler.scheduleUpdateNow(mContext); @@ -167,7 +167,7 @@ class CurrentWeatherView(context: Context, name: String) : LinearLayout(context) override fun weatherError(errorReason: Int) { // Show only Disabled and Permission errors - XposedBridge.log(TAG + "weatherError " + errorReason) + log(TAG + "weatherError " + errorReason) if (errorReason == OmniJawsClient.EXTRA_ERROR_DISABLED) { mWeatherInfo = null } @@ -226,7 +226,7 @@ class CurrentWeatherView(context: Context, name: String) : LinearLayout(context) mWindLayout!!.visibility = if (mShowWeatherWind) VISIBLE else GONE } } catch (e: Exception) { - XposedBridge.log(TAG + "Weather query failed" + e.message) + log(TAG + "Weather query failed" + e.message) Log.e(TAG, "Weather query failed", e) } } @@ -439,7 +439,6 @@ class CurrentWeatherView(context: Context, name: String) : LinearLayout(context) showLocation: Boolean, showText: Boolean, showHumidity: Boolean, showWind: Boolean, name: String ) { - if (BuildConfig.DEBUG) XposedBridge.log(TAG + "updateWeatherSettings " + (instances.isEmpty())) instances.stream() .filter { obj: Array -> obj[1] == name From 2f04fe0150add233856994e36834076eb817fa05 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Thu, 15 Aug 2024 11:21:56 +0200 Subject: [PATCH 143/369] Move Lockscreen Weather in Xposed Menu from Lockscreen Clock --- .../ui/fragments/XposedLockscreenClock.kt | 7 ------- .../iconify/ui/fragments/XposedMenu.kt | 8 ++++++++ .../layout/fragment_xposed_lockscreen_clock.xml | 7 ------- app/src/main/res/navigation/nav_xposed_menu.xml | 16 ++++++++-------- 4 files changed, 16 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenClock.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenClock.kt index 2fde46bd6..839d6b742 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenClock.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenClock.kt @@ -375,12 +375,6 @@ class XposedLockscreenClock : BaseFragment() { } }) - binding.lsWeather.setOnClickListener { - findNavController(binding.lsWeather).navigate( - (R.id.action_xposedLockscreenClock_to_xposedLockscreenWeather) - ) - } - return view } @@ -450,7 +444,6 @@ class XposedLockscreenClock : BaseFragment() { binding.lsclockBottomMargin.isEnabled = enabled binding.lsclockCustomUsername.isEnabled = enabled binding.lsclockCustomDevicename.isEnabled = enabled - binding.lsWeather.isEnabled = enabled } private fun showMoreLsSettings() { diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedMenu.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedMenu.kt index 0f5d4eaa2..ecadec703 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedMenu.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedMenu.kt @@ -304,6 +304,14 @@ class XposedMenu : BaseFragment() { R.drawable.ic_xposed_lockscreen ) ) + add( + arrayOf( + R.id.action_xposedMenu2_to_xposedLockscreenWeather, + appContextLocale.resources.getString(R.string.activity_title_lockscreen_weather), + appContextLocale.resources.getString(R.string.activity_desc_lockscreen_weather), + R.drawable.ic_xposed_lockscreen_weather + ) + ) add( arrayOf( R.id.action_xposedMenu2_to_xposedDepthWallpaper, diff --git a/app/src/main/res/layout/fragment_xposed_lockscreen_clock.xml b/app/src/main/res/layout/fragment_xposed_lockscreen_clock.xml index d13a4156d..65b59c9fd 100644 --- a/app/src/main/res/layout/fragment_xposed_lockscreen_clock.xml +++ b/app/src/main/res/layout/fragment_xposed_lockscreen_clock.xml @@ -199,13 +199,6 @@ app:titleText="@string/lockscreen_clock_custom_username" app:summaryText="@string/lockscreen_clock_custom_username_desc" /> - - diff --git a/app/src/main/res/navigation/nav_xposed_menu.xml b/app/src/main/res/navigation/nav_xposed_menu.xml index 9a1b22326..022810f18 100644 --- a/app/src/main/res/navigation/nav_xposed_menu.xml +++ b/app/src/main/res/navigation/nav_xposed_menu.xml @@ -72,6 +72,13 @@ app:exitAnim="@anim/fragment_fade_out" app:popEnterAnim="@anim/fragment_fade_in" app:popExitAnim="@anim/fragment_fade_out" /> + - Date: Fri, 16 Aug 2024 09:00:47 +0200 Subject: [PATCH 144/369] LockscreenWeather: make it working with stock clocks --- .../xposed/modules/LockscreenWeather.kt | 49 ++++++++++++++----- 1 file changed, 37 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt index 24797c58e..73b5b15af 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt @@ -6,6 +6,7 @@ import android.view.View import android.view.ViewGroup import android.widget.LinearLayout import com.drdisagree.iconify.common.Preferences.ICONIFY_LOCKSCREEN_CLOCK_TAG +import com.drdisagree.iconify.common.Preferences.LSCLOCK_SWITCH import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_BOTTOM import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_LEFT import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_TOP @@ -31,6 +32,7 @@ import de.robv.android.xposed.callbacks.XC_LoadPackage class LockscreenWeather(context: Context?) : ModPack(context!!) { + private var customLockscreenClock = false private var weatherEnabled = false private var weatherShowLocation = true private var weatherShowCondition = true @@ -47,11 +49,13 @@ class LockscreenWeather(context: Context?) : ModPack(context!!) { private lateinit var mWeatherContainer: LinearLayout private var mStatusViewContainer: ViewGroup? = null + private var mStatusArea: ViewGroup? = null override fun updatePrefs(vararg key: String) { if (Xprefs == null) return + customLockscreenClock = Xprefs!!.getBoolean(LSCLOCK_SWITCH, false) weatherEnabled = Xprefs!!.getBoolean(WEATHER_SWITCH, false) weatherShowLocation = Xprefs!!.getBoolean(WEATHER_SHOW_LOCATION, true) weatherShowCondition = Xprefs!!.getBoolean(WEATHER_SHOW_CONDITION, true) @@ -87,6 +91,12 @@ class LockscreenWeather(context: Context?) : ModPack(context!!) { override fun handleLoadPackage(loadPackageParam: XC_LoadPackage.LoadPackageParam) { + mWeatherContainer = LinearLayout(mContext) + mWeatherContainer.layoutParams = LinearLayout.LayoutParams( + ViewGroup.LayoutParams.MATCH_PARENT, + ViewGroup.LayoutParams.WRAP_CONTENT + ) + val keyguardStatusViewClass = findClass( "com.android.keyguard.KeyguardStatusView", loadPackageParam.classLoader @@ -96,12 +106,6 @@ class LockscreenWeather(context: Context?) : ModPack(context!!) { override fun afterHookedMethod(param: MethodHookParam) { if (!weatherEnabled) return - mWeatherContainer = LinearLayout(mContext) - mWeatherContainer.layoutParams = LinearLayout.LayoutParams( - ViewGroup.LayoutParams.MATCH_PARENT, - ViewGroup.LayoutParams.WRAP_CONTENT - ) - mStatusViewContainer = getObjectField( param.thisObject, "mStatusViewContainer" @@ -111,6 +115,26 @@ class LockscreenWeather(context: Context?) : ModPack(context!!) { } }) + + val keyguardClockSwitch = findClass( + "com.android.keyguard.KeyguardClockSwitch", + loadPackageParam.classLoader + ) + + hookAllMethods(keyguardClockSwitch, "onFinishInflate", object : XC_MethodHook() { + override fun afterHookedMethod(param: MethodHookParam) { + if (!weatherEnabled) return + + + mStatusArea = getObjectField( + param.thisObject, + "mStatusArea" + ) as ViewGroup + + placeWeatherView() + + } + }) } private fun placeWeatherView() { @@ -126,12 +150,13 @@ class LockscreenWeather(context: Context?) : ModPack(context!!) { } catch (ignored: Throwable) { } mWeatherContainer.addView(currentWeatherView) - val clockView = mStatusViewContainer!!.findViewWithTag(ICONIFY_LOCKSCREEN_CLOCK_TAG) - if (clockView == null) { - mStatusViewContainer!!.addView(mWeatherContainer) - } else { - mStatusViewContainer!!.addView(mWeatherContainer, mStatusViewContainer!!.indexOfChild(clockView)) - } + if (customLockscreenClock) { + mStatusViewContainer!!.addView(mWeatherContainer) + } else { + // Put weather view inside the status area + // But before notifications + mStatusArea!!.addView(mWeatherContainer, mStatusArea!!.childCount - 1) + } refreshWeatherView(currentWeatherView) updateMargins() } catch (ignored: Throwable) { From 297a4d65907349da2345457b47d0790f7acad35d Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Fri, 16 Aug 2024 17:51:27 +0600 Subject: [PATCH 145/369] Fix permission handling and weather update on UI --- .../drdisagree/iconify/common/Preferences.kt | 2 +- .../iconify/services/WeatherScheduler.kt | 34 +- .../ui/fragments/XposedLockscreenWeather.kt | 406 ++++++++++-------- .../iconify/utils/OmniJawsClient.kt | 162 ++++--- .../weather/AbstractWeatherProvider.kt | 4 +- .../weather/{Config.kt => WeatherConfig.kt} | 17 +- .../iconify/weather/WeatherContentProvider.kt | 29 +- .../drdisagree/iconify/weather/WeatherWork.kt | 35 +- .../xposed/modules/LockscreenWeather.kt | 27 +- .../fragment_xposed_lockscreen_weather.xml | 70 +-- .../res/layout/location_browse_activity.xml | 73 ++-- app/src/main/res/values/strings.xml | 15 +- 12 files changed, 468 insertions(+), 406 deletions(-) rename app/src/main/java/com/drdisagree/iconify/weather/{Config.kt => WeatherConfig.kt} (90%) diff --git a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt index 66afebb7e..66774c671 100644 --- a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt +++ b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt @@ -264,7 +264,7 @@ object Preferences { const val WEATHER_UNITS: String = "weather_units" const val WEATHER_CUSTOM_LOCATION: String = "weather_custom_location_switch" const val WEATHER_CUSTOM_MARGINS_TOP: String = "weather_custom_margins_top" - const val WEATHER_CUSTOM_MARGINS_LEFT: String = "weather_custom_margins_left" + const val WEATHER_CUSTOM_MARGINS_SIDE: String = "weather_custom_margins_side" const val WEATHER_CUSTOM_MARGINS_BOTTOM: String = "weather_custom_margins_bottom" const val WEATHER_STYLE: String = "weather_style" diff --git a/app/src/main/java/com/drdisagree/iconify/services/WeatherScheduler.kt b/app/src/main/java/com/drdisagree/iconify/services/WeatherScheduler.kt index 76176e52e..b2fc92b3d 100644 --- a/app/src/main/java/com/drdisagree/iconify/services/WeatherScheduler.kt +++ b/app/src/main/java/com/drdisagree/iconify/services/WeatherScheduler.kt @@ -9,32 +9,33 @@ import androidx.work.OneTimeWorkRequest import androidx.work.PeriodicWorkRequest import androidx.work.WorkManager import com.drdisagree.iconify.BuildConfig -import com.drdisagree.iconify.weather.Config +import com.drdisagree.iconify.weather.WeatherConfig import com.drdisagree.iconify.weather.WeatherWork import java.util.concurrent.TimeUnit object WeatherScheduler { private const val UPDATE_WORK_NAME: String = BuildConfig.APPLICATION_ID + ".WeatherSchedule" - fun scheduleUpdates(context: Context?) { + fun scheduleUpdates(context: Context) { Log.d("Weather Scheduler", "Updating update schedule...") if (!WorkManager.isInitialized()) { - WorkManager.initialize(context!!, Configuration.Builder().build()) + WorkManager.initialize(context, Configuration.Builder().build()) } - val workManager = WorkManager.getInstance(context!!) + val workManager = WorkManager.getInstance(context) - val weatherEnabled: Boolean = Config.isEnabled(context) + val weatherEnabled: Boolean = WeatherConfig.isEnabled(context) Log.d("Weather Scheduler", "Weather enabled: $weatherEnabled") if (weatherEnabled) { Log.d("Weather Scheduler", "Scheduling updates") - val builder: PeriodicWorkRequest.Builder = - PeriodicWorkRequest.Builder(WeatherWork::class.java, - Config.getUpdateInterval(context).toLong(), TimeUnit.HOURS) - .setBackoffCriteria(BackoffPolicy.LINEAR, 1, TimeUnit.HOURS) + val builder: PeriodicWorkRequest.Builder = PeriodicWorkRequest.Builder( + WeatherWork::class.java, + WeatherConfig.getUpdateInterval(context).toLong(), TimeUnit.HOURS + ) + .setBackoffCriteria(BackoffPolicy.LINEAR, 1, TimeUnit.HOURS) workManager.enqueueUniquePeriodicWork( UPDATE_WORK_NAME, @@ -46,26 +47,27 @@ object WeatherScheduler { } } - fun unscheduleUpdates(context: Context?) { + fun cancelUpdates(context: Context) { if (!WorkManager.isInitialized()) { - WorkManager.initialize(context!!, Configuration.Builder().build()) + WorkManager.initialize(context, Configuration.Builder().build()) } - val workManager = WorkManager.getInstance(context!!) + val workManager = WorkManager.getInstance(context) workManager.cancelUniqueWork(UPDATE_WORK_NAME) } - fun scheduleUpdateNow(context: Context?) { + fun scheduleUpdateNow(context: Context) { Log.d("Weather Scheduler", "Check update now") if (!WorkManager.isInitialized()) { - WorkManager.initialize(context!!, Configuration.Builder().build()) + WorkManager.initialize(context, Configuration.Builder().build()) } - val workManager = WorkManager.getInstance(context!!) + val workManager = WorkManager.getInstance(context) - val builder: OneTimeWorkRequest.Builder = OneTimeWorkRequest.Builder(WeatherWork::class.java) + val builder: OneTimeWorkRequest.Builder = + OneTimeWorkRequest.Builder(WeatherWork::class.java) workManager.enqueue(builder.build()) } diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt index 823eb7e57..6b1ee8a63 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt @@ -1,8 +1,8 @@ package com.drdisagree.iconify.ui.fragments import android.Manifest +import android.annotation.SuppressLint import android.app.Activity -import android.app.Dialog import android.content.Context import android.content.DialogInterface import android.content.Intent @@ -30,7 +30,7 @@ import com.drdisagree.iconify.R import com.drdisagree.iconify.common.Const.SWITCH_ANIMATION_DELAY import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_LOCATION import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_BOTTOM -import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_LEFT +import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_SIDE import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_TOP import com.drdisagree.iconify.common.Preferences.WEATHER_ICON_PACK import com.drdisagree.iconify.common.Preferences.WEATHER_ICON_SIZE @@ -62,19 +62,16 @@ import com.drdisagree.iconify.ui.base.BaseFragment import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader import com.drdisagree.iconify.utils.OmniJawsClient import com.drdisagree.iconify.utils.SystemUtil -import com.drdisagree.iconify.weather.AbstractWeatherProvider.Companion.PART_COORDINATES -import com.drdisagree.iconify.weather.Config +import com.drdisagree.iconify.weather.WeatherConfig import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.slider.Slider import java.util.Locale -class XposedLockscreenWeather:BaseFragment(), - OmniJawsClient.OmniJawsObserver { - private val DEFAULT_WEATHER_ICON_PACKAGE: String = BuildConfig.APPLICATION_ID + ".google" +class XposedLockscreenWeather : BaseFragment(), OmniJawsClient.OmniJawsObserver { + private lateinit var binding: FragmentXposedLockscreenWeatherBinding private lateinit var mWeatherClient: OmniJawsClient - private var mTriggerPermissionCheck = false override fun onCreateView( inflater: LayoutInflater, @@ -100,28 +97,10 @@ class XposedLockscreenWeather:BaseFragment(), override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - if (!hasPermissions()) { - requestPermissionLauncher.launch( - arrayOf( - Manifest.permission.ACCESS_FINE_LOCATION, - Manifest.permission.ACCESS_COARSE_LOCATION, - Manifest.permission.ACCESS_BACKGROUND_LOCATION - ) - ) - } - binding.enableLockscreenWeather.isSwitchChecked = getBoolean(WEATHER_SWITCH, false) - binding.enableLockscreenWeather.setSwitchChangeListener{ _: CompoundButton?, isChecked: Boolean -> - + binding.enableLockscreenWeather.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> putBoolean(WEATHER_SWITCH, isChecked) - Config.setEnabled(requireContext(), isChecked, WEATHER_SWITCH) - - - if (!hasPermissions()) { - showPermissionDialog() - } else { - checkLocationPermissions(false) - } + WeatherConfig.setEnabled(requireContext(), isChecked, WEATHER_SWITCH) updateUI() Handler(Looper.getMainLooper()).postDelayed( @@ -131,56 +110,61 @@ class XposedLockscreenWeather:BaseFragment(), } binding.lockscreenWeatherUpdateInterval.setSelectedIndex(getInt(WEATHER_UPDATE_INTERVAL, 1)) - binding.lockscreenWeatherUpdateInterval.setOnItemSelectedListener{ + binding.lockscreenWeatherUpdateInterval.setOnItemSelectedListener { putInt(WEATHER_UPDATE_INTERVAL, it) forceRefreshWeatherSettings() } binding.lockscreenWeatherLastUpdate.setOnClickListener { - checkLocationPermissions(false) + handlePermissions() forceRefreshWeatherSettings() } - binding.lockscreenWeatherUnits.setSelectedIndex(if (Config.isMetric(requireContext())) 0 else 1) - binding.lockscreenWeatherUnits.setOnItemSelectedListener{ - putString(WEATHER_UNITS, it.toString()) + binding.lockscreenWeatherUnits.setSelectedIndex(if (WeatherConfig.isMetric(requireContext())) 0 else 1) + binding.lockscreenWeatherUnits.setOnItemSelectedListener { index: Int -> + putString(WEATHER_UNITS, index.toString()) forceRefreshWeatherSettings() } - binding.lockscreenWeatherShowLocation.isSwitchChecked = getBoolean(WEATHER_SHOW_LOCATION, true) - binding.lockscreenWeatherShowLocation.setSwitchChangeListener{ _: CompoundButton?, isChecked: Boolean -> + binding.lockscreenWeatherShowLocation.isSwitchChecked = + getBoolean(WEATHER_SHOW_LOCATION, true) + binding.lockscreenWeatherShowLocation.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> putBoolean(WEATHER_SHOW_LOCATION, isChecked) } - binding.lockscreenWeatherShowCondition.isSwitchChecked = getBoolean(WEATHER_SHOW_CONDITION, true) - binding.lockscreenWeatherShowCondition.setSwitchChangeListener{ _: CompoundButton?, isChecked: Boolean -> + binding.lockscreenWeatherShowCondition.isSwitchChecked = + getBoolean(WEATHER_SHOW_CONDITION, true) + binding.lockscreenWeatherShowCondition.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> putBoolean(WEATHER_SHOW_CONDITION, isChecked) } - binding.lockscreenWeatherShowHumidity.isSwitchChecked = getBoolean(WEATHER_SHOW_HUMIDITY, false) - binding.lockscreenWeatherShowHumidity.setSwitchChangeListener{ _: CompoundButton?, isChecked: Boolean -> + binding.lockscreenWeatherShowHumidity.isSwitchChecked = + getBoolean(WEATHER_SHOW_HUMIDITY, false) + binding.lockscreenWeatherShowHumidity.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> putBoolean(WEATHER_SHOW_HUMIDITY, isChecked) } binding.lockscreenWeatherShowWind.isSwitchChecked = getBoolean(WEATHER_SHOW_WIND, false) - binding.lockscreenWeatherShowWind.setSwitchChangeListener{ _: CompoundButton?, isChecked: Boolean -> + binding.lockscreenWeatherShowWind.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> putBoolean(WEATHER_SHOW_WIND, isChecked) } binding.lockscreenWeatherTextSize.sliderValue = getInt(WEATHER_TEXT_SIZE, 16) - binding.lockscreenWeatherTextSize.setOnSliderChangeListener{ _: Slider?, value: Float, _: Boolean -> + binding.lockscreenWeatherTextSize.setOnSliderChangeListener { _: Slider?, value: Float, _: Boolean -> putInt(WEATHER_TEXT_SIZE, value.toInt()) } binding.lockscreenWeatherImageSize.sliderValue = getInt(WEATHER_ICON_SIZE, 18) - binding.lockscreenWeatherImageSize.setOnSliderChangeListener{ _: Slider?, value: Float, _: Boolean -> + binding.lockscreenWeatherImageSize.setOnSliderChangeListener { _: Slider?, value: Float, _: Boolean -> putInt(WEATHER_ICON_SIZE, value.toInt()) } - binding.lockscreenWeatherCustomColorSwitch.isSwitchChecked = getBoolean(WEATHER_TEXT_COLOR_SWITCH, false) - binding.lockscreenWeatherCustomColorSwitch.setSwitchChangeListener{ _: CompoundButton?, isChecked: Boolean -> + binding.lockscreenWeatherCustomColorSwitch.isSwitchChecked = + getBoolean(WEATHER_TEXT_COLOR_SWITCH, false) + binding.lockscreenWeatherCustomColorSwitch.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> putBoolean(WEATHER_TEXT_COLOR_SWITCH, isChecked) - binding.lockscreenWeatherCustomColor.visibility = if (isChecked) View.VISIBLE else View.GONE + binding.lockscreenWeatherCustomColor.visibility = + if (isChecked) View.VISIBLE else View.GONE } binding.lockscreenWeatherCustomColor.previewColor = getInt(WEATHER_TEXT_COLOR, Color.WHITE) @@ -195,13 +179,19 @@ class XposedLockscreenWeather:BaseFragment(), putInt(WEATHER_TEXT_COLOR, color) } - binding.lockscreenWeatherCustomLocation.isSwitchChecked = getBoolean(WEATHER_CUSTOM_LOCATION, false) - binding.lockscreenWeatherCustomLocation.setSwitchChangeListener{ _: CompoundButton?, isChecked: Boolean -> + binding.lockscreenWeatherCustomLocation.isSwitchChecked = + getBoolean(WEATHER_CUSTOM_LOCATION, false) + binding.lockscreenWeatherCustomLocation.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> putBoolean(WEATHER_CUSTOM_LOCATION, isChecked) binding.lockscreenWeatherCustomLocationMenu.isEnabled = isChecked } - binding.lockscreenWeatherCustomLocationMenu.setSummary(Config.getLocationName(requireContext())) + val locationName = WeatherConfig.getLocationName(requireContext()) + if (locationName.isNullOrEmpty()) { + binding.lockscreenWeatherCustomLocationMenu.setSummary(R.string.not_available) + } else { + binding.lockscreenWeatherCustomLocationMenu.setSummary(locationName) + } binding.lockscreenWeatherCustomLocationMenu.setOnClickListener { mCustomLocationLauncher.launch( Intent( @@ -217,53 +207,56 @@ class XposedLockscreenWeather:BaseFragment(), getAvailableWeatherIconPacks(entries, values, drawables) val entriesChar: Array = entries.filterNotNull().toTypedArray() val valuesChar: Array = values.filterNotNull().toTypedArray() - val currentIconPack = if (TextUtils.isEmpty(Config.getIconPack(requireContext()))) valuesChar[0].toString() else Config.getIconPack(requireContext()) - val mAdapter = - IconsAdapter( - entriesChar, - valuesChar, - currentIconPack!!, - WEATHER_ICONS_ADAPTER, - object : IconsAdapter.OnItemClickListener { - override fun onItemClick(view: View, position: Int) { - val value = values[position] - putString(WEATHER_ICON_PACK, value!!) - binding.lockscreenWeatherIconPack.setSummary(entries[position]!!) - forceRefreshWeatherSettings() - } - }) + val currentIconPack = if (TextUtils.isEmpty(WeatherConfig.getIconPack(requireContext()))) { + valuesChar[0].toString() + } else { + WeatherConfig.getIconPack(requireContext()) + } + val mAdapter = IconsAdapter( + entriesChar, + valuesChar, + currentIconPack!!, + WEATHER_ICONS_ADAPTER, + object : IconsAdapter.OnItemClickListener { + override fun onItemClick(view: View, position: Int) { + val value = values[position] + putString(WEATHER_ICON_PACK, value!!) + binding.lockscreenWeatherIconPack.setSummary(entries[position]!!) + forceRefreshWeatherSettings() + } + } + ) mAdapter.setDrawables(drawables.filterNotNull().toTypedArray()) - val summary = if (!TextUtils.isEmpty(currentIconPack) && values.contains(currentIconPack)) entries[values.indexOf(currentIconPack)] else entries[0] + val summary = if (!TextUtils.isEmpty(currentIconPack) && values.contains(currentIconPack)) { + entries[values.indexOf(currentIconPack)] + } else { + entries[0] + } binding.lockscreenWeatherIconPack.setSummary(summary!!) binding.lockscreenWeatherIconPack.setLayoutManager(LinearLayoutManager(requireContext())) binding.lockscreenWeatherIconPack.setAdapter(mAdapter) binding.lockscreenWeatherMarginTop.sliderValue = getInt(WEATHER_CUSTOM_MARGINS_TOP, 20) - binding.lockscreenWeatherMarginTop.setOnSliderChangeListener{ _: Slider?, value: Float, _: Boolean -> + binding.lockscreenWeatherMarginTop.setOnSliderChangeListener { _: Slider?, value: Float, _: Boolean -> putInt(WEATHER_CUSTOM_MARGINS_TOP, value.toInt()) } - binding.lockscreenWeatherMarginLeft.sliderValue = getInt(WEATHER_CUSTOM_MARGINS_LEFT, 20) - binding.lockscreenWeatherMarginLeft.setOnSliderChangeListener{ _: Slider?, value: Float, _: Boolean -> - putInt(WEATHER_CUSTOM_MARGINS_LEFT, value.toInt()) + binding.lockscreenWeatherMarginSide.sliderValue = getInt(WEATHER_CUSTOM_MARGINS_SIDE, 20) + binding.lockscreenWeatherMarginSide.setOnSliderChangeListener { _: Slider?, value: Float, _: Boolean -> + putInt(WEATHER_CUSTOM_MARGINS_SIDE, value.toInt()) } - binding.lockscreenWeatherMarginBottom.sliderValue = getInt(WEATHER_CUSTOM_MARGINS_BOTTOM, 20) - binding.lockscreenWeatherMarginBottom.setOnSliderChangeListener{ _: Slider?, value: Float, _: Boolean -> + binding.lockscreenWeatherMarginBottom.sliderValue = + getInt(WEATHER_CUSTOM_MARGINS_BOTTOM, 20) + binding.lockscreenWeatherMarginBottom.setOnSliderChangeListener { _: Slider?, value: Float, _: Boolean -> putInt(WEATHER_CUSTOM_MARGINS_BOTTOM, value.toInt()) } binding.lockscreenWeatherBg.setSelectedIndex(getInt(WEATHER_STYLE, 0)) - binding.lockscreenWeatherBg.setOnItemSelectedListener{ + binding.lockscreenWeatherBg.setOnItemSelectedListener { putInt(WEATHER_STYLE, it) } - if (!getBoolean(WEATHER_CUSTOM_LOCATION, false)) { - checkLocationEnabledInitial() - } else { - forceRefreshWeatherSettings() - } - updateUI() } @@ -272,74 +265,35 @@ class XposedLockscreenWeather:BaseFragment(), mWeatherClient.addObserver(this) - if (getBoolean(WEATHER_SWITCH, false) - && !getBoolean(WEATHER_CUSTOM_LOCATION, false) - ) { - checkLocationEnabled() - } - if (mTriggerPermissionCheck) { - checkLocationPermissions(true) - mTriggerPermissionCheck = false - } - queryAndUpdateWeather() - } - - private fun hasPermissions(): Boolean { - return ( - requireContext().checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) - == PackageManager.PERMISSION_GRANTED) && - (requireContext().checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) - == PackageManager.PERMISSION_GRANTED) && - (requireContext().checkSelfPermission(Manifest.permission.ACCESS_BACKGROUND_LOCATION) - == PackageManager.PERMISSION_GRANTED) + handlePermissions() } - private fun showPermissionDialog() { - val builder = MaterialAlertDialogBuilder(requireContext()) - builder.setTitle(R.string.weather_permission_dialog_title) - builder.setMessage(R.string.weather_permission_dialog_message) - builder.setCancelable(false) - builder.setPositiveButton(android.R.string.ok) { dialog: DialogInterface?, which: Int -> - val intent = - Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS) - val uri = - Uri.fromParts("package", BuildConfig.APPLICATION_ID, null) - intent.setData(uri) - startActivity(intent) - } - builder.show() + private fun handlePermissions() { + if (getBoolean(WEATHER_SWITCH, false)) { + if (!getBoolean(WEATHER_CUSTOM_LOCATION, false)) { + checkLocationEnabled(mInitialCheck) + mInitialCheck = false + } else { + forceRefreshWeatherSettings() + } + } } - private fun showDialog() { - val builder = MaterialAlertDialogBuilder(requireContext()) - - // Build and show the dialog - builder.setTitle(R.string.weather_retrieve_location_dialog_title) - builder.setMessage(R.string.weather_retrieve_location_dialog_message) - builder.setCancelable(false) - builder.setPositiveButton( - R.string.weather_retrieve_location_dialog_enable_button - ) { dialog1, whichButton -> - mTriggerPermissionCheck = true - val intent = - Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS) - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP) - startActivity(intent) - } - builder.setNegativeButton(android.R.string.cancel, null) - val dialog: Dialog = builder.create() - dialog.show() + private fun checkLocationEnabled(force: Boolean) { + if (!isLocationEnabled()) { + showLocationPermissionDialog() + } else { + checkLocationPermission(force) + } } - private fun checkLocationPermissions(force: Boolean) { + private fun checkLocationPermission(force: Boolean) { if (!hasPermissions()) { - requestPermissionLauncher.launch( - arrayOf( - Manifest.permission.ACCESS_FINE_LOCATION, - Manifest.permission.ACCESS_COARSE_LOCATION, - Manifest.permission.ACCESS_BACKGROUND_LOCATION - ) - ) + if (getBoolean(WEATHER_SWITCH, false) && + !getBoolean(WEATHER_CUSTOM_LOCATION, false) + ) { + requestLocationPermission() + } } else { if (force) { forceRefreshWeatherSettings() @@ -348,46 +302,87 @@ class XposedLockscreenWeather:BaseFragment(), } } - private fun checkLocationEnabled() { - if (!doCheckLocationEnabled()) { - showDialog() - } else { - checkLocationPermissions(false) - } + private fun showLocationPermissionDialog() { + MaterialAlertDialogBuilder(requireContext()) + .setTitle(R.string.weather_retrieve_location_dialog_title) + .setMessage(R.string.weather_retrieve_location_dialog_message) + .setCancelable(false) + .setPositiveButton(R.string.weather_retrieve_location_dialog_enable_button) { _, _ -> + startActivity( + Intent( + Settings.ACTION_LOCATION_SOURCE_SETTINGS + ).apply { + setFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP) + } + ) + } + .setNegativeButton(android.R.string.cancel, null) + .create() + .show() + } + + private fun showApplicationPermissionDialog() { + MaterialAlertDialogBuilder(requireContext()) + .setTitle(R.string.weather_permission_dialog_title) + .setMessage(R.string.weather_permission_dialog_message) + .setCancelable(false) + .setPositiveButton(android.R.string.ok) { _: DialogInterface?, _: Int -> + startActivity( + Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS).apply { + setData( + Uri.fromParts( + "package", + requireContext().packageName, + null + ) + ) + } + ) + } + .setNegativeButton(android.R.string.cancel, null) + .create() + .show() } - private fun checkLocationEnabledInitial() { - if (!doCheckLocationEnabled()) { - showDialog() + private fun requestLocationPermission() { + if (shouldShowRequestPermissionRationale(Manifest.permission.ACCESS_FINE_LOCATION) || + shouldShowRequestPermissionRationale(Manifest.permission.ACCESS_COARSE_LOCATION) || + shouldShowRequestPermissionRationale(Manifest.permission.ACCESS_BACKGROUND_LOCATION) + ) { + showApplicationPermissionDialog() } else { - checkLocationPermissions(true) + locationPermissionRequest.launch( + arrayOf( + Manifest.permission.ACCESS_FINE_LOCATION, + Manifest.permission.ACCESS_COARSE_LOCATION, + Manifest.permission.ACCESS_BACKGROUND_LOCATION + ) + ) } } - private fun doCheckLocationEnabled(): Boolean { + private fun isLocationEnabled(): Boolean { val lm = requireContext().getSystemService(Context.LOCATION_SERVICE) as LocationManager return lm.isLocationEnabled } - private var requestPermissionLauncher: ActivityResultLauncher> = - registerForActivityResult( - ActivityResultContracts.RequestMultiplePermissions() - ) { result -> - val fineLocationGranted: Boolean = result.getOrDefault( - Manifest.permission.ACCESS_FINE_LOCATION, false - ) - val coarseLocationGranted: Boolean = result.getOrDefault( - Manifest.permission.ACCESS_COARSE_LOCATION, false - ) - if ((fineLocationGranted) || - (coarseLocationGranted) - ) { - forceRefreshWeatherSettings() - } + private var locationPermissionRequest = registerForActivityResult( + ActivityResultContracts.RequestMultiplePermissions() + ) { permissions -> + val fineLocationGranted: Boolean = permissions.getOrDefault( + Manifest.permission.ACCESS_FINE_LOCATION, false + ) + val coarseLocationGranted: Boolean = permissions.getOrDefault( + Manifest.permission.ACCESS_COARSE_LOCATION, false + ) + + if (fineLocationGranted || coarseLocationGranted) { + forceRefreshWeatherSettings() } + } private fun forceRefreshWeatherSettings() { - WeatherScheduler.scheduleUpdateNow(context) + WeatherScheduler.scheduleUpdateNow(requireContext()) } private fun queryAndUpdateWeather() { @@ -404,24 +399,34 @@ class XposedLockscreenWeather:BaseFragment(), } override fun weatherError(errorReason: Int) { - var errorString: String? = null - errorString = if (errorReason == OmniJawsClient.EXTRA_ERROR_DISABLED) { - appContextLocale.getString(R.string.omnijaws_service_disabled) - } else if (errorReason == OmniJawsClient.EXTRA_ERROR_LOCATION) { - appContextLocale.getString(R.string.omnijaws_service_error_location) - } else if (errorReason == OmniJawsClient.EXTRA_ERROR_NETWORK) { - appContextLocale.getString(R.string.omnijaws_service_error_network) - } else if (errorReason == OmniJawsClient.EXTRA_ERROR_NO_PERMISSIONS) { - appContextLocale.getString(R.string.omnijaws_service_error_permissions) - } else { - appContextLocale.getString(R.string.omnijaws_service_error_long) + val errorString: String = when (errorReason) { + OmniJawsClient.EXTRA_ERROR_DISABLED -> { + appContextLocale.getString(R.string.omnijaws_service_disabled) + } + + OmniJawsClient.EXTRA_ERROR_LOCATION -> { + appContextLocale.getString(R.string.omnijaws_service_error_location) + } + + OmniJawsClient.EXTRA_ERROR_NETWORK -> { + appContextLocale.getString(R.string.omnijaws_service_error_network) + } + + OmniJawsClient.EXTRA_ERROR_NO_PERMISSIONS -> { + appContextLocale.getString(R.string.omnijaws_service_error_permissions) + } + + else -> { + appContextLocale.getString(R.string.omnijaws_service_error_long) + } } - val s: String = errorString + requireActivity().runOnUiThread { - binding.lockscreenWeatherLastUpdate.setSummary(s) + binding.lockscreenWeatherLastUpdate.setSummary(errorString) } } + @SuppressLint("DiscouragedApi") private fun getAvailableWeatherIconPacks( entries: MutableList, values: MutableList, @@ -460,10 +465,7 @@ class XposedLockscreenWeather:BaseFragment(), ) ) } - var label: String? = r.activityInfo.loadLabel(packageManager).toString() - if (label == null) { - label = r.activityInfo.packageName - } + val label: String? = r.activityInfo.packageName if (packageName == DEFAULT_WEATHER_ICON_PACKAGE) { entries.add(0, label) } else { @@ -473,7 +475,6 @@ class XposedLockscreenWeather:BaseFragment(), } private fun updateUI() { - val enabled = getBoolean(WEATHER_SWITCH, false) for (i in 0 until binding.lockscreenWeatherContainer.childCount) { @@ -481,9 +482,10 @@ class XposedLockscreenWeather:BaseFragment(), if (child != binding.enableLockscreenWeather) child.isEnabled = enabled } - binding.lockscreenWeatherCustomColor.visibility = if (getBoolean(WEATHER_TEXT_COLOR_SWITCH, false)) View.VISIBLE else View.GONE - binding.lockscreenWeatherCustomLocationMenu.isEnabled = getBoolean(WEATHER_CUSTOM_LOCATION, false) - + binding.lockscreenWeatherCustomColor.visibility = + if (getBoolean(WEATHER_TEXT_COLOR_SWITCH, false)) View.VISIBLE else View.GONE + binding.lockscreenWeatherCustomLocationMenu.isEnabled = + getBoolean(WEATHER_CUSTOM_LOCATION, false) } private var mCustomLocationLauncher: ActivityResultLauncher = registerForActivityResult( @@ -491,21 +493,45 @@ class XposedLockscreenWeather:BaseFragment(), ) { result -> if (result.resultCode == Activity.RESULT_OK) { val intent: Intent? = result.data + if (intent!!.hasExtra(DATA_LOCATION_NAME)) { val locationName = intent.getStringExtra(DATA_LOCATION_NAME) val lat = intent.getDoubleExtra(DATA_LOCATION_LAT, 0.0) val lon = intent.getDoubleExtra(DATA_LOCATION_LON, 0.0) - Config.setLocationId(requireContext(), lat.toString(), lon.toString()) - Config.setLocationName(requireContext(), locationName) - binding.lockscreenWeatherCustomLocationMenu.setSummary(locationName) + + WeatherConfig.apply { + setLocationId(requireContext(), lat.toString(), lon.toString()) + setLocationName(requireContext(), locationName) + } + + if (locationName.isNullOrEmpty()) { + binding.lockscreenWeatherCustomLocationMenu.setSummary(R.string.not_available) + } else { + binding.lockscreenWeatherCustomLocationMenu.setSummary(locationName) + } + if (getBoolean(WEATHER_SWITCH, false) && !getBoolean(WEATHER_CUSTOM_LOCATION, false) ) { - checkLocationEnabled() + checkLocationEnabled(mInitialCheck) } forceRefreshWeatherSettings() } } } + private fun hasPermissions(): Boolean { + return (requireContext().checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) + == PackageManager.PERMISSION_GRANTED) && + (requireContext().checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) + == PackageManager.PERMISSION_GRANTED) && + (requireContext().checkSelfPermission(Manifest.permission.ACCESS_BACKGROUND_LOCATION) + == PackageManager.PERMISSION_GRANTED) + } + + companion object { + private var mInitialCheck = true + private const val DEFAULT_WEATHER_ICON_PACKAGE: String = + "${BuildConfig.APPLICATION_ID}.google" + } } \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.kt b/app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.kt index 1144603c7..b86f82073 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.kt @@ -1,5 +1,6 @@ package com.drdisagree.iconify.utils +import android.annotation.SuppressLint import android.content.BroadcastReceiver import android.content.Context import android.content.Intent @@ -9,13 +10,16 @@ import android.graphics.Color import android.graphics.drawable.ColorDrawable import android.graphics.drawable.Drawable import android.net.Uri +import android.os.Build import android.text.TextUtils +import android.text.format.DateFormat import android.util.Log import com.drdisagree.iconify.BuildConfig -import com.drdisagree.iconify.weather.Config +import com.drdisagree.iconify.weather.WeatherConfig import java.text.DecimalFormat import java.text.SimpleDateFormat import java.util.Date +import java.util.Locale /* * Copyright (C) 2021 The OmniROM Project @@ -35,9 +39,9 @@ import java.util.Date * */ - class OmniJawsClient(private val mContext: Context) { - class WeatherInfo { + + class WeatherInfo(private val mContext: Context) { var city: String? = null var windSpeed: String? = null var windDirection: String? = null @@ -59,7 +63,8 @@ class OmniJawsClient(private val mContext: Context) { val lastUpdateTime: String get() { - val sdf = SimpleDateFormat("HH:mm:ss") + val hourFormat = if (DateFormat.is24HourFormat(mContext)) "HH" else "hh" + val sdf = SimpleDateFormat("$hourFormat:mm:ss", Locale.getDefault()) return sdf.format(Date(timeStamp!!)) } } @@ -111,70 +116,73 @@ class OmniJawsClient(private val mContext: Context) { fun queryWeather() { try { weatherInfo = null - var c = mContext.contentResolver.query( + + var cursor = mContext.contentResolver.query( WEATHER_URI, WEATHER_PROJECTION, null, null, null ) - if (c != null) { - try { - val count = c.count - if (count > 0) { - weatherInfo = WeatherInfo() - val forecastList: MutableList = ArrayList() - var i = 0 - i = 0 - while (i < count) { - c.moveToPosition(i) - if (i == 0) { - weatherInfo!!.city = c.getString(0) - weatherInfo!!.windSpeed = getFormattedValue(c.getFloat(1)) - weatherInfo!!.windDirection = c.getInt(2).toString() + "\u00b0" - weatherInfo!!.conditionCode = c.getInt(3) - weatherInfo!!.temp = getFormattedValue(c.getFloat(4)) - weatherInfo!!.humidity = c.getString(5) - weatherInfo!!.condition = c.getString(6) - weatherInfo!!.timeStamp = c.getString(11).toLong() - weatherInfo!!.pinWheel = c.getString(13) - } else { - val day = DayForecast() - day.low = getFormattedValue(c.getFloat(7)) - day.high = getFormattedValue(c.getFloat(8)) - day.condition = c.getString(9) - day.conditionCode = c.getInt(10) - day.date = c.getString(12) - forecastList.add(day) + + cursor?.use { + val count = it.count + + if (count > 0) { + weatherInfo = WeatherInfo(mContext) + val forecastList: MutableList = ArrayList() + var i = 0 + + while (i < count) { + it.moveToPosition(i) + + if (i == 0) { + weatherInfo?.apply { + city = it.getString(0) + windSpeed = getFormattedValue(it.getFloat(1)) + weatherInfo!!.windDirection = it.getInt(2).toString() + "\u00b0" + weatherInfo!!.conditionCode = it.getInt(3) + weatherInfo!!.temp = getFormattedValue(it.getFloat(4)) + weatherInfo!!.humidity = it.getString(5) + weatherInfo!!.condition = it.getString(6) + weatherInfo!!.timeStamp = it.getString(11).toLong() + weatherInfo!!.pinWheel = it.getString(13) } - i++ + } else { + val day = DayForecast() + day.low = getFormattedValue(it.getFloat(7)) + day.high = getFormattedValue(it.getFloat(8)) + day.condition = it.getString(9) + day.conditionCode = it.getInt(10) + day.date = it.getString(12) + forecastList.add(day) } - weatherInfo!!.forecasts = forecastList + i++ } - } finally { - c.close() + weatherInfo!!.forecasts = forecastList } } - c = mContext.contentResolver.query( + + cursor = mContext.contentResolver.query( SETTINGS_URI, SETTINGS_PROJECTION, null, null, null ) - if (c != null) { - try { - val count = c.count - if (count == 1) { - c.moveToPosition(0) - mMetric = c.getInt(1) == 0 - if (weatherInfo != null) { - weatherInfo!!.tempUnits = temperatureUnit - weatherInfo!!.windUnits = windUnit - weatherInfo!!.provider = c.getString(2) - weatherInfo!!.iconPack = c.getString(4) - } + + cursor?.use { + val count = it.count + + if (count == 1) { + it.moveToPosition(0) + mMetric = it.getInt(1) == 0 + + weatherInfo?.apply { + tempUnits = temperatureUnit + windUnits = windUnit + provider = it.getString(2) + iconPack = it.getString(4) } - } finally { - c.close() } } - if (DEBUG) Log.d(TAG, "queryWeather " + weatherInfo) + if (DEBUG) Log.d(TAG, "queryWeather $weatherInfo") + updateSettings() } catch (e: Exception) { Log.e(TAG, "queryWeather", e) @@ -185,10 +193,12 @@ class OmniJawsClient(private val mContext: Context) { mPackageName = ICON_PACKAGE_DEFAULT mIconPrefix = ICON_PREFIX_DEFAULT mSettingIconPackage = "$mPackageName.$mIconPrefix" + if (DEBUG) Log.d( TAG, "Load default icon pack $mSettingIconPackage $mPackageName $mIconPrefix" ) + try { val packageManager = mContext.packageManager mRes = packageManager.getResourcesForApplication(mPackageName!!) @@ -196,12 +206,15 @@ class OmniJawsClient(private val mContext: Context) { Log.d(TAG, "loadDefaultIconsPackage", e) mRes = null } + if (mRes == null) { Log.w(TAG, "No default package found") } } + @Suppress("deprecation") private val defaultConditionImage: Drawable + @SuppressLint("DiscouragedApi", "UseCompatLoadingForDrawables") get() { val packageName = ICON_PACKAGE_DEFAULT val iconPrefix = ICON_PREFIX_DEFAULT @@ -209,18 +222,19 @@ class OmniJawsClient(private val mContext: Context) { try { val packageManager = mContext.packageManager val res = packageManager.getResourcesForApplication(packageName) - if (res != null) { - val resId = res.getIdentifier(iconPrefix + "_na", "drawable", packageName) - val d = res.getDrawable(resId) - if (d != null) { - return d - } + val resId = res.getIdentifier(iconPrefix + "_na", "drawable", packageName) + val d = mRes!!.getDrawable(resId) + + if (d != null) { + return d } } catch (e: Exception) { Log.e(TAG, "defaultConditionImage", e) } + // absolute absolute fallback Log.w(TAG, "No default package found") + return ColorDrawable(Color.RED) } @@ -229,13 +243,16 @@ class OmniJawsClient(private val mContext: Context) { TAG, "Load custom icon pack $mSettingIconPackage" ) + val idx = mSettingIconPackage!!.lastIndexOf(".") mPackageName = mSettingIconPackage!!.substring(0, idx) mIconPrefix = mSettingIconPackage!!.substring(idx + 1) + if (DEBUG) Log.d( TAG, "Load custom icon pack $mPackageName $mIconPrefix" ) + try { val packageManager = mContext.packageManager mRes = packageManager.getResourcesForApplication(mPackageName!!) @@ -245,20 +262,28 @@ class OmniJawsClient(private val mContext: Context) { } } + @Suppress("deprecation") + @SuppressLint("DiscouragedApi", "UseCompatLoadingForDrawables") fun getWeatherConditionImage(conditionCode: Int): Drawable { try { - var resId = - mRes!!.getIdentifier(mIconPrefix + "_" + conditionCode, "drawable", mPackageName) + var resId = mRes!!.getIdentifier( + mIconPrefix + "_" + conditionCode, + "drawable", + mPackageName + ) var d = mRes!!.getDrawable(resId) if (d != null) { return d } + Log.w( TAG, "Failed to get condition image for $conditionCode use default" ) + resId = mRes!!.getIdentifier(mIconPrefix + "_na", "drawable", mPackageName) d = mRes!!.getDrawable(resId) + if (d != null) { return d } @@ -273,7 +298,7 @@ class OmniJawsClient(private val mContext: Context) { } val isOmniJawsEnabled: Boolean - get() = Config.isEnabled(mContext) + get() = WeatherConfig.isEnabled(mContext) private val temperatureUnit: String get() = "\u00b0" + (if (mMetric) "C" else "F") @@ -296,6 +321,7 @@ class OmniJawsClient(private val mContext: Context) { } } + @SuppressLint("UnspecifiedRegisterReceiverFlag") fun addObserver(observer: OmniJawsObserver) { if (mObserver.isEmpty()) { if (mReceiver != null) { @@ -309,7 +335,11 @@ class OmniJawsClient(private val mContext: Context) { filter.addAction(WEATHER_UPDATE) filter.addAction(WEATHER_ERROR) if (DEBUG) Log.d(TAG, "registerReceiver") - mContext.registerReceiver(mReceiver, filter, Context.RECEIVER_EXPORTED) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + mContext.registerReceiver(mReceiver, filter, Context.RECEIVER_EXPORTED) + } else { + mContext.registerReceiver(mReceiver, filter) + } } mObserver.add(observer) } @@ -329,7 +359,7 @@ class OmniJawsClient(private val mContext: Context) { companion object { private const val TAG = "OmniJawsClient" private val DEBUG = BuildConfig.DEBUG - const val SERVICE_PACKAGE: String = BuildConfig.APPLICATION_ID + private const val SERVICE_PACKAGE: String = BuildConfig.APPLICATION_ID val WEATHER_URI : Uri = Uri.parse("content://com.drdisagree.iconify.weatherprovider/weather") val SETTINGS_URI @@ -371,8 +401,8 @@ class OmniJawsClient(private val mContext: Context) { "icon_pack" ) - private const val WEATHER_UPDATE = SERVICE_PACKAGE + ".WEATHER_UPDATE" - private const val WEATHER_ERROR = SERVICE_PACKAGE + ".WEATHER_ERROR" + private const val WEATHER_UPDATE = "$SERVICE_PACKAGE.WEATHER_UPDATE" + private const val WEATHER_ERROR = "$SERVICE_PACKAGE.WEATHER_ERROR" private val sNoDigitsFormat = DecimalFormat("0") diff --git a/app/src/main/java/com/drdisagree/iconify/weather/AbstractWeatherProvider.kt b/app/src/main/java/com/drdisagree/iconify/weather/AbstractWeatherProvider.kt index 6917e59c1..f21f4315b 100644 --- a/app/src/main/java/com/drdisagree/iconify/weather/AbstractWeatherProvider.kt +++ b/app/src/main/java/com/drdisagree/iconify/weather/AbstractWeatherProvider.kt @@ -7,8 +7,8 @@ import android.text.TextUtils import android.util.Log import com.drdisagree.iconify.R import com.drdisagree.iconify.utils.NetworkUtils -import com.drdisagree.iconify.weather.Config.getLocationName -import com.drdisagree.iconify.weather.Config.isCustomLocation +import com.drdisagree.iconify.weather.WeatherConfig.getLocationName +import com.drdisagree.iconify.weather.WeatherConfig.isCustomLocation import org.json.JSONObject import java.io.IOException import java.text.SimpleDateFormat diff --git a/app/src/main/java/com/drdisagree/iconify/weather/Config.kt b/app/src/main/java/com/drdisagree/iconify/weather/WeatherConfig.kt similarity index 90% rename from app/src/main/java/com/drdisagree/iconify/weather/Config.kt rename to app/src/main/java/com/drdisagree/iconify/weather/WeatherConfig.kt index 2b5013855..05d08d72b 100644 --- a/app/src/main/java/com/drdisagree/iconify/weather/Config.kt +++ b/app/src/main/java/com/drdisagree/iconify/weather/WeatherConfig.kt @@ -17,14 +17,15 @@ import com.drdisagree.iconify.common.Resources.SHARED_XPREFERENCES import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.weather.providers.OpenMeteoProvider -object Config { - const val PREF_KEY_LOCATION_LAT: String = "location_lat" - const val PREF_KEY_LOCATION_LON: String = "location_lon" - const val PREF_KEY_LOCATION_NAME: String = "location_name" - const val PREF_KEY_WEATHER_DATA: String = "weather_data" - const val PREF_KEY_LAST_UPDATE: String = "last_update" - const val PREF_KEY_UPDATE_ERROR: String = "update_error" - const val WEATHER_PREFS: String = BuildConfig.APPLICATION_ID + "_weatherprefs" +object WeatherConfig { + + private const val PREF_KEY_LOCATION_LAT: String = "location_lat" + private const val PREF_KEY_LOCATION_LON: String = "location_lon" + private const val PREF_KEY_LOCATION_NAME: String = "location_name" + private const val PREF_KEY_WEATHER_DATA: String = "weather_data" + private const val PREF_KEY_LAST_UPDATE: String = "last_update" + private const val PREF_KEY_UPDATE_ERROR: String = "update_error" + private const val WEATHER_PREFS: String = BuildConfig.APPLICATION_ID + "_weatherprefs" private fun getPrefs(context: Context): SharedPreferences { try { diff --git a/app/src/main/java/com/drdisagree/iconify/weather/WeatherContentProvider.kt b/app/src/main/java/com/drdisagree/iconify/weather/WeatherContentProvider.kt index 167a8b427..072e0a21e 100644 --- a/app/src/main/java/com/drdisagree/iconify/weather/WeatherContentProvider.kt +++ b/app/src/main/java/com/drdisagree/iconify/weather/WeatherContentProvider.kt @@ -8,8 +8,6 @@ import android.content.UriMatcher import android.database.Cursor import android.database.MatrixCursor import android.net.Uri -import android.util.Log -import com.drdisagree.iconify.BuildConfig import com.drdisagree.iconify.services.WeatherScheduler.scheduleUpdateNow class WeatherContentProvider : ContentProvider() { @@ -17,7 +15,7 @@ class WeatherContentProvider : ContentProvider() { override fun onCreate(): Boolean { mContext = context - sCachedWeatherInfo = mContext?.let { Config.getWeatherData(it) } + sCachedWeatherInfo = mContext?.let { WeatherConfig.getWeatherData(it) } return true } @@ -31,27 +29,29 @@ class WeatherContentProvider : ContentProvider() { val projectionType = sUriMatcher.match(uri) val result = MatrixCursor(resolveProjection(projection, projectionType)) - if (projectionType == URI_TYPE_SETTINGS) { result.newRow() - .add(COLUMN_ENABLED, if (Config.isEnabled(mContext!!)) 1 else 0) - .add(COLUMN_PROVIDER, Config.getProviderId(mContext!!)) - .add(COLUMN_INTERVAL, Config.getUpdateInterval(mContext!!)) - .add(COLUMN_UNITS, if (Config.isMetric(mContext!!)) 0 else 1) + .add(COLUMN_ENABLED, if (WeatherConfig.isEnabled(mContext!!)) 1 else 0) + .add(COLUMN_PROVIDER, WeatherConfig.getProviderId(mContext!!)) + .add(COLUMN_INTERVAL, WeatherConfig.getUpdateInterval(mContext!!)) + .add(COLUMN_UNITS, if (WeatherConfig.isMetric(mContext!!)) 0 else 1) .add( COLUMN_LOCATION, - if (Config.isCustomLocation(mContext!!)) Config.getLocationName(mContext!!) else "" + if (WeatherConfig.isCustomLocation(mContext!!)) WeatherConfig.getLocationName( + mContext!! + ) else "" ) .add( COLUMN_SETUP, - if (!Config.isSetupDone(mContext!!) && sCachedWeatherInfo == null) 0 else 1 + if (!WeatherConfig.isSetupDone(mContext!!) && sCachedWeatherInfo == null) 0 else 1 ) .add( COLUMN_ICON_PACK, - if (Config.getIconPack(mContext!!) != null) Config.getIconPack(mContext!!) else "" + if (WeatherConfig.getIconPack(mContext!!) != null) WeatherConfig.getIconPack( + mContext!! + ) else "" ) - return result } else if (projectionType == URI_TYPE_WEATHER) { val weather = sCachedWeatherInfo @@ -79,7 +79,6 @@ class WeatherContentProvider : ContentProvider() { .add(COLUMN_FORECAST_DATE, day.date) } - return result } } @@ -121,7 +120,7 @@ class WeatherContentProvider : ContentProvider() { COLUMN_FORCE_REFRESH ) ) { - scheduleUpdateNow(mContext) + scheduleUpdateNow(mContext!!) } } return 0 @@ -204,7 +203,7 @@ class WeatherContentProvider : ContentProvider() { } fun updateCachedWeatherInfo(context: Context) { - sCachedWeatherInfo = Config.getWeatherData(context) + sCachedWeatherInfo = WeatherConfig.getWeatherData(context) context.contentResolver.notifyChange( Uri.parse("content://$AUTHORITY/weather"), null ) diff --git a/app/src/main/java/com/drdisagree/iconify/weather/WeatherWork.kt b/app/src/main/java/com/drdisagree/iconify/weather/WeatherWork.kt index aa973ef5d..763e88e43 100644 --- a/app/src/main/java/com/drdisagree/iconify/weather/WeatherWork.kt +++ b/app/src/main/java/com/drdisagree/iconify/weather/WeatherWork.kt @@ -15,17 +15,17 @@ import androidx.work.ListenableWorker import androidx.work.WorkerParameters import com.drdisagree.iconify.BuildConfig import com.drdisagree.iconify.utils.OmniJawsClient.Companion.EXTRA_ERROR_DISABLED -import com.drdisagree.iconify.utils.OmniJawsClient.Companion.EXTRA_ERROR_NETWORK import com.drdisagree.iconify.utils.OmniJawsClient.Companion.EXTRA_ERROR_LOCATION +import com.drdisagree.iconify.utils.OmniJawsClient.Companion.EXTRA_ERROR_NETWORK import com.drdisagree.iconify.utils.OmniJawsClient.Companion.EXTRA_ERROR_NO_PERMISSIONS -import com.drdisagree.iconify.weather.Config.getLocationLat -import com.drdisagree.iconify.weather.Config.getLocationLon -import com.drdisagree.iconify.weather.Config.getProvider -import com.drdisagree.iconify.weather.Config.isCustomLocation -import com.drdisagree.iconify.weather.Config.isEnabled -import com.drdisagree.iconify.weather.Config.isMetric -import com.drdisagree.iconify.weather.Config.setUpdateError -import com.drdisagree.iconify.weather.Config.setWeatherData +import com.drdisagree.iconify.weather.WeatherConfig.getLocationLat +import com.drdisagree.iconify.weather.WeatherConfig.getLocationLon +import com.drdisagree.iconify.weather.WeatherConfig.getProvider +import com.drdisagree.iconify.weather.WeatherConfig.isCustomLocation +import com.drdisagree.iconify.weather.WeatherConfig.isEnabled +import com.drdisagree.iconify.weather.WeatherConfig.isMetric +import com.drdisagree.iconify.weather.WeatherConfig.setUpdateError +import com.drdisagree.iconify.weather.WeatherConfig.setWeatherData import com.google.common.util.concurrent.ListenableFuture import java.text.SimpleDateFormat import java.util.Locale @@ -117,6 +117,7 @@ class WeatherWork(val mContext: Context, workerParams: WorkerParameters) : return gpsEnabled || networkEnabled } + @get:Suppress("deprecation") @get:SuppressLint("MissingPermission") private val currentLocation: Location? get() { @@ -195,8 +196,15 @@ class WeatherWork(val mContext: Context, workerParams: WorkerParameters) : while (i < RETRY_MAX_NUM) { w = if (location != null && !isCustomLocation(mContext)) { provider.getLocationWeather(location, isMetric) - } else if (!TextUtils.isEmpty(getLocationLat(mContext)) && !TextUtils.isEmpty(getLocationLon(mContext))) { - provider.getCustomWeather(getLocationLat(mContext)!!, getLocationLon(mContext)!!, isMetric) + } else if (!TextUtils.isEmpty(getLocationLat(mContext)) && !TextUtils.isEmpty( + getLocationLon(mContext) + ) + ) { + provider.getCustomWeather( + getLocationLat(mContext)!!, + getLocationLon(mContext)!!, + isMetric + ) } else { Log.w(TAG, "No valid custom location and location is null") break @@ -237,11 +245,12 @@ class WeatherWork(val mContext: Context, workerParams: WorkerParameters) : mContext.checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED } + @Suppress("deprecation") companion object { private const val TAG = "WeatherWork" private const val DEBUG = false - private val ACTION_BROADCAST = BuildConfig.APPLICATION_ID.replace(".debug", "") + ".WEATHER_UPDATE" - private val ACTION_ERROR = BuildConfig.APPLICATION_ID.replace(".debug", "") + ".WEATHER_ERROR" + private const val ACTION_BROADCAST = "${BuildConfig.APPLICATION_ID}.WEATHER_UPDATE" + private const val ACTION_ERROR = "${BuildConfig.APPLICATION_ID}.WEATHER_ERROR" private const val EXTRA_ERROR = "error" diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt index 73b5b15af..e0fdc6940 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt @@ -5,10 +5,9 @@ import android.graphics.Color import android.view.View import android.view.ViewGroup import android.widget.LinearLayout -import com.drdisagree.iconify.common.Preferences.ICONIFY_LOCKSCREEN_CLOCK_TAG import com.drdisagree.iconify.common.Preferences.LSCLOCK_SWITCH import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_BOTTOM -import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_LEFT +import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_SIDE import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_TOP import com.drdisagree.iconify.common.Preferences.WEATHER_ICON_SIZE import com.drdisagree.iconify.common.Preferences.WEATHER_SHOW_CONDITION @@ -42,7 +41,7 @@ class LockscreenWeather(context: Context?) : ModPack(context!!) { private var weatherColor = Color.WHITE private var weatherTextSize: Int = 16 private var weatherImageSize: Int = 18 - private var mLeftMargin: Int = 0 + private var mSideMargin: Int = 0 private var mTopMargin: Int = 0 private var mBottomMargin: Int = 0 private var mWeatherBackground = 0 @@ -65,7 +64,7 @@ class LockscreenWeather(context: Context?) : ModPack(context!!) { weatherColor = Xprefs!!.getInt(WEATHER_TEXT_COLOR, Color.WHITE) weatherTextSize = Xprefs!!.getInt(WEATHER_TEXT_SIZE, 16) weatherImageSize = Xprefs!!.getInt(WEATHER_ICON_SIZE, 18) - mLeftMargin = Xprefs!!.getInt(WEATHER_CUSTOM_MARGINS_LEFT, 20) + mSideMargin = Xprefs!!.getInt(WEATHER_CUSTOM_MARGINS_SIDE, 20) mTopMargin = Xprefs!!.getInt(WEATHER_CUSTOM_MARGINS_TOP, 20) mBottomMargin = Xprefs!!.getInt(WEATHER_CUSTOM_MARGINS_BOTTOM, 20) mWeatherBackground = Xprefs!!.getInt(WEATHER_STYLE, 0) @@ -81,7 +80,7 @@ class LockscreenWeather(context: Context?) : ModPack(context!!) { key[0] == (WEATHER_ICON_SIZE) || key[0] == (WEATHER_STYLE) || key[0] == (WEATHER_CUSTOM_MARGINS_BOTTOM) || - key[0] == (WEATHER_CUSTOM_MARGINS_LEFT) || + key[0] == (WEATHER_CUSTOM_MARGINS_SIDE) || key[0] == (WEATHER_CUSTOM_MARGINS_TOP)) ) { updateWeatherView() @@ -150,13 +149,13 @@ class LockscreenWeather(context: Context?) : ModPack(context!!) { } catch (ignored: Throwable) { } mWeatherContainer.addView(currentWeatherView) - if (customLockscreenClock) { - mStatusViewContainer!!.addView(mWeatherContainer) - } else { - // Put weather view inside the status area - // But before notifications - mStatusArea!!.addView(mWeatherContainer, mStatusArea!!.childCount - 1) - } + if (customLockscreenClock) { + mStatusViewContainer!!.addView(mWeatherContainer) + } else { + // Put weather view inside the status area + // But before notifications + mStatusArea!!.addView(mWeatherContainer, mStatusArea!!.childCount - 1) + } refreshWeatherView(currentWeatherView) updateMargins() } catch (ignored: Throwable) { @@ -167,9 +166,9 @@ class LockscreenWeather(context: Context?) : ModPack(context!!) { setMargins( mWeatherContainer, mContext, - mLeftMargin, + mSideMargin, mTopMargin, - mLeftMargin, + mSideMargin, mBottomMargin ) } diff --git a/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml b/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml index 899883a1e..8723b02f6 100644 --- a/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml +++ b/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml @@ -26,104 +26,108 @@ android:id="@+id/enable_lockscreen_weather" android:layout_width="match_parent" android:layout_height="wrap_content" - app:titleText="@string/lockscreen_weather" /> + app:summaryText="@string/lockscreen_weather_desc" + app:titleText="@string/lockscreen_weather_title" /> + app:entries="@array/update_interval_entries" + app:titleText="@string/update_interval_title" /> + app:entries="@array/units_entries" + app:titleText="@string/units_title" /> + app:summaryText="@string/weather_show_location_summary" + app:titleText="@string/weather_show_location" /> + app:summaryText="@string/weather_show_condition_summary" + app:titleText="@string/weather_show_condition" /> + app:summaryText="@string/weather_show_humidity_summary" + app:titleText="@string/weather_show_humidity" /> + app:summaryText="@string/weather_show_wind_summary" + app:titleText="@string/weather_show_wind" /> + app:summaryText="@string/weather_custom_color_switch_summary" + app:titleText="@string/weather_custom_color_switch_title" /> + app:summaryText="@string/weather_custom_color_summary" + app:titleText="@string/weather_custom_color_title" /> + app:summaryText="@string/custom_location_summary" + app:titleText="@string/custom_location_title" /> + app:entries="@array/lockscreen_weather_bg_entries" + app:titleText="@string/lockscreen_weather_selection_title" /> diff --git a/app/src/main/res/layout/location_browse_activity.xml b/app/src/main/res/layout/location_browse_activity.xml index 4ff61ef9c..465b5da7f 100644 --- a/app/src/main/res/layout/location_browse_activity.xml +++ b/app/src/main/res/layout/location_browse_activity.xml @@ -1,54 +1,43 @@ - + - - - - - - - - + android:hint="@string/location_query_hint" + android:importantForAutofill="no" + android:inputType="text" + android:paddingHorizontal="16dp" + android:singleLine="true" + android:textColorHint="@drawable/search_hint_color" + android:textSize="16sp" /> + + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent"> Location Set custom location Cannot retrieve location! - Network geolocation is disabled.\n\nSet a custom location or enable network location + Network geolocation is disabled.\n\nSet a custom location or enable network location. Enable Settings Automatic updates @@ -1054,8 +1054,9 @@ Misty - Show Weather on Lockscreen - Last update time + Weather on Lockscreen + Show weather on lockscreen + Last Update Time Show Location Show Location before icon Show Condition @@ -1066,15 +1067,17 @@ Show Wind in a new row Text Size Image Size - Weather Text Custom Color - Custom color for all text in weather view + Text Color + Set custom color for text + Custom Color + Custom color for all text in weather view Custom location Set custom location for weather Custom Margins Set custom margins for weather Top margin Center Layout - Left Margin + Side Margin Bottom Margin From f899244d6020d1fb90dbb45a98f6e0e3d26ede47 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Fri, 16 Aug 2024 18:06:19 +0600 Subject: [PATCH 146/369] Refactor codes --- app/src/main/AndroidManifest.xml | 61 +++++----- .../ui/activities/LocationBrowseActivity.kt | 104 ++++++++++-------- app/src/main/res/values/strings.xml | 4 +- 3 files changed, 90 insertions(+), 79 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d0c0468da..9521a067a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -203,7 +203,8 @@ + android:exported="true" + tools:ignore="ExportedContentProvider" /> @@ -240,7 +241,7 @@ + android:label="Weather Client"> @@ -248,38 +249,38 @@ + android:exported="false" + android:label="Stickers"> - - + + + android:exported="false" + android:label="Marshmallow"> - - + + + android:exported="false" + android:label="Color Hand"> - - + + + android:exported="false" + android:label="Faded"> @@ -288,8 +289,8 @@ + android:exported="false" + android:label="Weezle"> @@ -298,8 +299,8 @@ + android:exported="false" + android:label="Galaxy S6"> @@ -308,8 +309,8 @@ + android:exported="false" + android:label="MIUI"> @@ -318,8 +319,8 @@ + android:exported="false" + android:label="Sthul"> @@ -328,8 +329,8 @@ + android:exported="false" + android:label="Tapas"> @@ -338,8 +339,8 @@ + android:exported="false" + android:label="Magical"> @@ -348,8 +349,8 @@ + android:exported="false" + android:label="VClouds"> diff --git a/app/src/main/java/com/drdisagree/iconify/ui/activities/LocationBrowseActivity.kt b/app/src/main/java/com/drdisagree/iconify/ui/activities/LocationBrowseActivity.kt index e641601b4..62c72856a 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/activities/LocationBrowseActivity.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/activities/LocationBrowseActivity.kt @@ -1,5 +1,6 @@ package com.drdisagree.iconify.ui.activities +import android.annotation.SuppressLint import android.app.Activity import android.content.Context import android.content.Intent @@ -19,7 +20,6 @@ import android.view.View import android.view.ViewGroup import android.widget.EditText import android.widget.FrameLayout -import android.widget.ProgressBar import android.widget.TextView import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView @@ -33,9 +33,10 @@ import java.util.Locale import java.util.concurrent.ExecutorService import java.util.concurrent.Executors -class LocationBrowseActivity : BaseActivity() { +open class LocationBrowseActivity : BaseActivity() { + private val mLocationBrowseList: MutableList = ArrayList() - private var mAdapter: LocagtionListAdapter? = null + private var mAdapter: LocationListAdapter? = null private val mExecutorService: ExecutorService = Executors.newSingleThreadExecutor() private val mHandler = Handler(Looper.getMainLooper()) private var mQueryString: String? = null @@ -49,7 +50,7 @@ class LocationBrowseActivity : BaseActivity() { } } - private class LocationBrowseItem( + private open class LocationBrowseItem( val cityExt: String, private val mCountryId: String, val city: String, @@ -57,14 +58,23 @@ class LocationBrowseActivity : BaseActivity() { val lon: Double ) { protected val id: String - get() = city + "," + mCountryId + get() = "$city,$mCountryId" override fun equals(other: Any?): Boolean { return (other is LocationBrowseItem) && this.id == other.id } + + override fun hashCode(): Int { + var result = cityExt.hashCode() + result = 31 * result + mCountryId.hashCode() + result = 31 * result + city.hashCode() + result = 31 * result + lat.hashCode() + result = 31 * result + lon.hashCode() + return result + } } - inner class LocagtionListAdapter : RecyclerView.Adapter() { + inner class LocationListAdapter : RecyclerView.Adapter() { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { val inflater = LayoutInflater.from(parent.context) return ViewHolder(inflater.inflate(R.layout.location_browse_item, parent, false)) @@ -78,11 +88,12 @@ class LocationBrowseActivity : BaseActivity() { (holder.itemView.findViewById(R.id.location_city_ext) as TextView).text = city.cityExt - holder.itemView.setOnClickListener { view: View? -> - val intent = Intent() - intent.putExtra(DATA_LOCATION_NAME, city.city) - intent.putExtra(DATA_LOCATION_LAT, city.lat) - intent.putExtra(DATA_LOCATION_LON, city.lon) + holder.itemView.setOnClickListener { + val intent = Intent().apply { + putExtra(DATA_LOCATION_NAME, city.city) + putExtra(DATA_LOCATION_LAT, city.lat) + putExtra(DATA_LOCATION_LON, city.lon) + } setResult(Activity.RESULT_OK, intent) finish() } @@ -103,7 +114,7 @@ class LocationBrowseActivity : BaseActivity() { val toolbar: MaterialToolbar = findViewById(R.id.toolbar) toolbar.setTitle(R.string.custom_location_title) setSupportActionBar(toolbar) - getSupportActionBar()!!.setDisplayHomeAsUpEnabled(true) + supportActionBar!!.setDisplayHomeAsUpEnabled(true) mProgressBar = findViewById(R.id.query_progressbar) @@ -113,6 +124,7 @@ class LocationBrowseActivity : BaseActivity() { override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) { } + @SuppressLint("NotifyDataSetChanged") override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) { mHandler.removeCallbacks(mQueryRunnable) mQueryString = s.toString() @@ -130,7 +142,7 @@ class LocationBrowseActivity : BaseActivity() { } }) - mAdapter = LocagtionListAdapter() + mAdapter = LocationListAdapter() val queryList: RecyclerView = findViewById(R.id.query_result) queryList.adapter = mAdapter queryList.layoutManager = LinearLayoutManager(this) @@ -148,6 +160,7 @@ class LocationBrowseActivity : BaseActivity() { return super.onOptionsItemSelected(item) } + @SuppressLint("NotifyDataSetChanged") protected fun getLocations(input: String?) { mLocationBrowseList.clear() @@ -158,39 +171,37 @@ class LocationBrowseActivity : BaseActivity() { input!!.trim { it <= ' ' }), lang ) val response: String = NetworkUtils.downloadUrlMemoryAsString(url) - if (response != null) { - val jsonResults = JSONObject(response).getJSONArray("geonames") - val count = jsonResults.length() - Log.d( - TAG, - "URL = $url returning a response of count = $count" - ) - - for (i in 0 until count) { - val result = jsonResults.getJSONObject(i) - - val population = - if (result.has("population")) result.getInt("population") else 0 - if (population == 0) { - continue - } + val jsonResults = JSONObject(response).getJSONArray("geonames") + val count = jsonResults.length() + Log.d( + TAG, + "URL = $url returning a response of count = $count" + ) + + for (i in 0 until count) { + val result = jsonResults.getJSONObject(i) - val city = result.getString("name") - val country = result.getString("countryName") - val countryId = result.getString("countryId") - val adminName = - if (result.has("adminName1")) result.getString("adminName1") else "" - val cityExt = - (if (TextUtils.isEmpty(adminName)) "" else "$adminName, ") + country - val lat = result.getDouble("lat") - val lon = result.getDouble("lng") - - val locationItem = LocationBrowseItem(cityExt, countryId, city, lat, lon) - if (!mLocationBrowseList.contains(locationItem)) { - mLocationBrowseList.add(locationItem) - if (mLocationBrowseList.size == 5) { - break - } + val population = + if (result.has("population")) result.getInt("population") else 0 + if (population == 0) { + continue + } + + val city = result.getString("name") + val country = result.getString("countryName") + val countryId = result.getString("countryId") + val adminName = + if (result.has("adminName1")) result.getString("adminName1") else "" + val cityExt = + (if (TextUtils.isEmpty(adminName)) "" else "$adminName, ") + country + val lat = result.getDouble("lat") + val lon = result.getDouble("lng") + + val locationItem = LocationBrowseItem(cityExt, countryId, city, lat, lon) + if (!mLocationBrowseList.contains(locationItem)) { + mLocationBrowseList.add(locationItem) + if (mLocationBrowseList.size == 5) { + break } } } @@ -216,7 +227,7 @@ class LocationBrowseActivity : BaseActivity() { } companion object { - private const val TAG = "LocationBrowseActivity" + private val TAG = LocationBrowseActivity::class.java.simpleName const val DATA_LOCATION_NAME: String = "location_name" const val DATA_LOCATION_LAT: String = "location_lat" @@ -225,7 +236,6 @@ class LocationBrowseActivity : BaseActivity() { private const val URL_PLACES = "https://secure.geonames.org/searchJSON?name_startsWith=%s&lang=%s&username=omnijaws&maxRows=20" - fun prefixTextWithIcon(context: Context?, iconRes: Int, msg: CharSequence): CharSequence { // Update the hint to contain the icon. // Prefix the original hint with two spaces. The first space gets replaced by the icon diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 545dcf64b..2a5f9388f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1018,8 +1018,8 @@ 6 hours 12 hours Weather - Condition icon pack - Find icon packs + Condition Icon Pack + Find more icon packs Disabled Error Waiting \u2026 From f83831d8e132cbe044ebdf877ae70ab8e018035e Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Fri, 16 Aug 2024 14:11:07 +0200 Subject: [PATCH 147/369] Fix weather icons name & update interval --- .../ui/fragments/XposedLockscreenWeather.kt | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt index 6b1ee8a63..17d1b21ef 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt @@ -72,6 +72,7 @@ class XposedLockscreenWeather : BaseFragment(), OmniJawsClient.OmniJawsObserver private lateinit var binding: FragmentXposedLockscreenWeatherBinding private lateinit var mWeatherClient: OmniJawsClient + private val mapping: IntArray = intArrayOf(1, 2, 4, 6, 12) override fun onCreateView( inflater: LayoutInflater, @@ -109,9 +110,18 @@ class XposedLockscreenWeather : BaseFragment(), OmniJawsClient.OmniJawsObserver ) } - binding.lockscreenWeatherUpdateInterval.setSelectedIndex(getInt(WEATHER_UPDATE_INTERVAL, 1)) + val updateInterval = WeatherConfig.getUpdateInterval(requireContext()) + var selectedIndex = 1 + when (updateInterval) { + 1 -> selectedIndex = 0 + 2 -> selectedIndex = 1 + 4 -> selectedIndex = 2 + 6 -> selectedIndex = 3 + 12 -> selectedIndex = 4 + } + binding.lockscreenWeatherUpdateInterval.setSelectedIndex(selectedIndex) binding.lockscreenWeatherUpdateInterval.setOnItemSelectedListener { - putInt(WEATHER_UPDATE_INTERVAL, it) + putString(WEATHER_UPDATE_INTERVAL, mapping[it].toString()) forceRefreshWeatherSettings() } @@ -465,7 +475,7 @@ class XposedLockscreenWeather : BaseFragment(), OmniJawsClient.OmniJawsObserver ) ) } - val label: String? = r.activityInfo.packageName + val label: String = r.activityInfo.loadLabel(packageManager).toString() if (packageName == DEFAULT_WEATHER_ICON_PACKAGE) { entries.add(0, label) } else { From f1e6be72b1706d4857ded48462f7cf687ba1f492 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Fri, 16 Aug 2024 18:26:18 +0600 Subject: [PATCH 148/369] Update UI and fix some crashes --- .../iconify/ui/adapters/IconsAdapter.kt | 43 ++++++++++--------- .../ui/fragments/XposedLockscreenWeather.kt | 4 +- .../layout/view_list_option_weather_icons.xml | 21 +++++---- 3 files changed, 38 insertions(+), 30 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/adapters/IconsAdapter.kt b/app/src/main/java/com/drdisagree/iconify/ui/adapters/IconsAdapter.kt index 9e72749cd..405db66a0 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/adapters/IconsAdapter.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/adapters/IconsAdapter.kt @@ -1,6 +1,5 @@ package com.drdisagree.iconify.ui.adapters -import android.content.Context import android.graphics.Color import android.graphics.drawable.Drawable import android.view.LayoutInflater @@ -12,8 +11,6 @@ import com.drdisagree.iconify.Iconify.Companion.appContext import com.drdisagree.iconify.R import com.drdisagree.iconify.databinding.ViewListIconItemBinding import com.drdisagree.iconify.databinding.ViewListOptionWeatherIconsBinding -import com.drdisagree.iconify.ui.dialogs.LoadingDialog -import com.drdisagree.iconify.ui.models.IconPackModel class IconsAdapter( private val mEntries: Array, @@ -23,7 +20,6 @@ class IconsAdapter( private val onItemClickListener: OnItemClickListener ) : RecyclerView.Adapter() { - companion object { const val ICONS_ADAPTER = 0 const val WEATHER_ICONS_ADAPTER = 1 @@ -50,24 +46,30 @@ class IconsAdapter( } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { - if (mAdapterType == ICONS_ADAPTER) { - return IconsViewHolder( - ViewListIconItemBinding.inflate( - LayoutInflater.from(parent.context), - parent, - false + when (mAdapterType) { + ICONS_ADAPTER -> { + return IconsViewHolder( + ViewListIconItemBinding.inflate( + LayoutInflater.from(parent.context), + parent, + false + ) ) - ) - } else if (mAdapterType == WEATHER_ICONS_ADAPTER) { - return WeatherIconsViewHolder( - ViewListOptionWeatherIconsBinding.inflate( - LayoutInflater.from(parent.context), - parent, - false + } + + WEATHER_ICONS_ADAPTER -> { + return WeatherIconsViewHolder( + ViewListOptionWeatherIconsBinding.inflate( + LayoutInflater.from(parent.context), + parent, + false + ) ) - ) - } else { - throw IllegalStateException(javaClass.getSimpleName() + " - No adapter type provided") + } + + else -> { + throw IllegalStateException(javaClass.getSimpleName() + " - No adapter type provided") + } } } @@ -76,6 +78,7 @@ class IconsAdapter( ICONS_ADAPTER -> { bindIconsViewHolder(holder as IconsViewHolder, position) } + WEATHER_ICONS_ADAPTER -> { bindWeatherIconsViewHolder(holder as WeatherIconsViewHolder, position) } diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt index 17d1b21ef..7230e3173 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt @@ -397,7 +397,8 @@ class XposedLockscreenWeather : BaseFragment(), OmniJawsClient.OmniJawsObserver private fun queryAndUpdateWeather() { mWeatherClient.queryWeather() - if (mWeatherClient.weatherInfo != null) { + + if (mWeatherClient.weatherInfo != null && activity != null) { requireActivity().runOnUiThread { binding.lockscreenWeatherLastUpdate.setSummary(mWeatherClient.weatherInfo!!.lastUpdateTime) } @@ -475,6 +476,7 @@ class XposedLockscreenWeather : BaseFragment(), OmniJawsClient.OmniJawsObserver ) ) } + val label: String = r.activityInfo.loadLabel(packageManager).toString() if (packageName == DEFAULT_WEATHER_ICON_PACKAGE) { entries.add(0, label) diff --git a/app/src/main/res/layout/view_list_option_weather_icons.xml b/app/src/main/res/layout/view_list_option_weather_icons.xml index 8a03f43b3..5522e9c85 100644 --- a/app/src/main/res/layout/view_list_option_weather_icons.xml +++ b/app/src/main/res/layout/view_list_option_weather_icons.xml @@ -1,9 +1,10 @@ + android:orientation="horizontal" + tools:ignore="UseCompoundDrawables"> + android:layout_width="38dp" + android:layout_height="38dp" + android:importantForAccessibility="no" /> + android:layout_marginStart="16dp" + android:textColor="@color/text_color_primary" /> - \ No newline at end of file From c064953fb12912b549286c12e735b2bd27c97429 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Fri, 16 Aug 2024 18:43:52 +0600 Subject: [PATCH 149/369] Change weather background radius --- .../ambient_indication_pill_background.xml | 6 +-- .../main/res/drawable/date_box_str_border.xml | 10 ++--- app/src/main/res/drawable/date_str_accent.xml | 10 ++--- app/src/main/res/drawable/date_str_border.xml | 10 ++--- .../main/res/drawable/date_str_borderacc.xml | 43 ++++++------------- .../main/res/drawable/date_str_bordergrad.xml | 42 ++++++------------ .../main/res/drawable/date_str_gradient.xml | 14 +++--- 7 files changed, 42 insertions(+), 93 deletions(-) diff --git a/app/src/main/res/drawable/ambient_indication_pill_background.xml b/app/src/main/res/drawable/ambient_indication_pill_background.xml index d64e2748f..0ba67ea56 100644 --- a/app/src/main/res/drawable/ambient_indication_pill_background.xml +++ b/app/src/main/res/drawable/ambient_indication_pill_background.xml @@ -2,19 +2,19 @@ - + - + - + diff --git a/app/src/main/res/drawable/date_box_str_border.xml b/app/src/main/res/drawable/date_box_str_border.xml index c29214c49..ad2096e0e 100644 --- a/app/src/main/res/drawable/date_box_str_border.xml +++ b/app/src/main/res/drawable/date_box_str_border.xml @@ -1,13 +1,9 @@ - - + android:shape="rectangle"> + - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/date_str_accent.xml b/app/src/main/res/drawable/date_str_accent.xml index 5ba7bf7d7..91fe01cd2 100644 --- a/app/src/main/res/drawable/date_str_accent.xml +++ b/app/src/main/res/drawable/date_str_accent.xml @@ -1,10 +1,6 @@ - - - - + android:shape="rectangle"> + + \ No newline at end of file diff --git a/app/src/main/res/drawable/date_str_border.xml b/app/src/main/res/drawable/date_str_border.xml index a31c282df..7143de116 100644 --- a/app/src/main/res/drawable/date_str_border.xml +++ b/app/src/main/res/drawable/date_str_border.xml @@ -1,13 +1,9 @@ - - + android:shape="rectangle"> + - - + \ No newline at end of file diff --git a/app/src/main/res/drawable/date_str_borderacc.xml b/app/src/main/res/drawable/date_str_borderacc.xml index f9ab608be..97f5afa68 100644 --- a/app/src/main/res/drawable/date_str_borderacc.xml +++ b/app/src/main/res/drawable/date_str_borderacc.xml @@ -1,38 +1,19 @@ - - - - - - + + + + + - - - - - - - - - - - - - + android:top="4dp"> + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/date_str_bordergrad.xml b/app/src/main/res/drawable/date_str_bordergrad.xml index 767bfbe10..9e5ae1a33 100644 --- a/app/src/main/res/drawable/date_str_bordergrad.xml +++ b/app/src/main/res/drawable/date_str_bordergrad.xml @@ -3,37 +3,21 @@ - - + android:startColor="@android:color/system_accent1_600" + android:type="linear" /> + + + - - - - - - - - - - - - - + android:top="4dp"> + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/date_str_gradient.xml b/app/src/main/res/drawable/date_str_gradient.xml index 619ad0c09..20d5245d1 100644 --- a/app/src/main/res/drawable/date_str_gradient.xml +++ b/app/src/main/res/drawable/date_str_gradient.xml @@ -1,14 +1,10 @@ - + android:shape="rectangle"> - - - + android:startColor="@android:color/system_accent1_600" + android:type="linear" /> + \ No newline at end of file From 33f4331737e1b4ec4bcd3fed138fb4f1359b9e71 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Fri, 16 Aug 2024 18:45:04 +0600 Subject: [PATCH 150/369] Add overcast condition --- .../xposed/views/CurrentWeatherView.kt | 34 +++++++++++++------ 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/views/CurrentWeatherView.kt b/app/src/main/java/com/drdisagree/iconify/xposed/views/CurrentWeatherView.kt index c3f59c208..465e54962 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/views/CurrentWeatherView.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/views/CurrentWeatherView.kt @@ -22,7 +22,6 @@ import com.drdisagree.iconify.utils.OmniJawsClient import com.drdisagree.iconify.xposed.HookRes.Companion.modRes import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.findViewWithTagAndChangeColor import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.setMargins -import de.robv.android.xposed.XposedBridge import de.robv.android.xposed.XposedBridge.log import java.util.Locale import java.util.function.Consumer @@ -193,7 +192,10 @@ class CurrentWeatherView(context: Context, name: String) : LinearLayout(context) mWeatherInfo = mWeatherClient.weatherInfo if (mWeatherInfo != null) { var formattedCondition: String = mWeatherInfo!!.condition.toString() - if (formattedCondition.lowercase(Locale.getDefault()).contains("clouds")) { + + if (formattedCondition.lowercase(Locale.getDefault()).contains("clouds") || + formattedCondition.lowercase(Locale.getDefault()).contains("overcast") + ) { formattedCondition = modRes.getString(R.string.weather_condition_clouds) } else if (formattedCondition.lowercase(Locale.getDefault()).contains("rain")) { formattedCondition = modRes.getString(R.string.weather_condition_rain) @@ -208,6 +210,7 @@ class CurrentWeatherView(context: Context, name: String) : LinearLayout(context) } else if (formattedCondition.lowercase(Locale.getDefault()).contains("mist")) { formattedCondition = modRes.getString(R.string.weather_condition_mist) } + val d: Drawable = mWeatherClient.getWeatherConditionImage(mWeatherInfo!!.conditionCode) mCurrentImage!!.setImageDrawable(d) @@ -222,7 +225,8 @@ class CurrentWeatherView(context: Context, name: String) : LinearLayout(context) mHumLayout!!.visibility = if (mShowWeatherHumidity) VISIBLE else GONE mWindImage!!.setImageDrawable(mWindDrawable) - mWindText!!.text = ((mWeatherInfo!!.windDirection + " " + mWeatherInfo!!.pinWheel) + " · " + mWeatherInfo!!.windSpeed) + " " + mWeatherInfo!!.windUnits + mWindText!!.text = + ((mWeatherInfo!!.windDirection + " " + mWeatherInfo!!.pinWheel) + " · " + mWeatherInfo!!.windSpeed) + " " + mWeatherInfo!!.windUnits mWindLayout!!.visibility = if (mShowWeatherWind) VISIBLE else GONE } } catch (e: Exception) { @@ -344,14 +348,16 @@ class CurrentWeatherView(context: Context, name: String) : LinearLayout(context) mWeatherHorPadding = Math.round( TypedValue.applyDimension( TypedValue.COMPLEX_UNIT_PX, - modRes.getDimensionPixelSize(R.dimen.widget_date_accent_box_padding_hor).toFloat(), + modRes.getDimensionPixelSize(R.dimen.widget_date_accent_box_padding_hor) + .toFloat(), mContext.resources.displayMetrics ) ) mWeatherVerPadding = Math.round( TypedValue.applyDimension( TypedValue.COMPLEX_UNIT_PX, - modRes.getDimensionPixelSize(R.dimen.widget_date_accent_box_padding_ver).toFloat(), + modRes.getDimensionPixelSize(R.dimen.widget_date_accent_box_padding_ver) + .toFloat(), mContext.resources.displayMetrics ) ) @@ -366,14 +372,16 @@ class CurrentWeatherView(context: Context, name: String) : LinearLayout(context) mWeatherHorPadding = Math.round( TypedValue.applyDimension( TypedValue.COMPLEX_UNIT_PX, - modRes.getDimensionPixelSize(R.dimen.widget_date_accent_box_padding_hor).toFloat(), + modRes.getDimensionPixelSize(R.dimen.widget_date_accent_box_padding_hor) + .toFloat(), mContext.resources.displayMetrics ) ) mWeatherVerPadding = Math.round( TypedValue.applyDimension( TypedValue.COMPLEX_UNIT_PX, - modRes.getDimensionPixelSize(R.dimen.widget_date_accent_box_padding_ver).toFloat(), + modRes.getDimensionPixelSize(R.dimen.widget_date_accent_box_padding_ver) + .toFloat(), mContext.resources.displayMetrics ) ) @@ -388,14 +396,16 @@ class CurrentWeatherView(context: Context, name: String) : LinearLayout(context) mWeatherHorPadding = Math.round( TypedValue.applyDimension( TypedValue.COMPLEX_UNIT_PX, - modRes.getDimensionPixelSize(R.dimen.widget_date_accent_box_padding_hor).toFloat(), + modRes.getDimensionPixelSize(R.dimen.widget_date_accent_box_padding_hor) + .toFloat(), mContext.resources.displayMetrics ) ) mWeatherVerPadding = Math.round( TypedValue.applyDimension( TypedValue.COMPLEX_UNIT_PX, - modRes.getDimensionPixelSize(R.dimen.widget_date_accent_box_padding_ver).toFloat(), + modRes.getDimensionPixelSize(R.dimen.widget_date_accent_box_padding_ver) + .toFloat(), mContext.resources.displayMetrics ) ) @@ -410,14 +420,16 @@ class CurrentWeatherView(context: Context, name: String) : LinearLayout(context) mWeatherHorPadding = Math.round( TypedValue.applyDimension( TypedValue.COMPLEX_UNIT_PX, - modRes.getDimensionPixelSize(R.dimen.widget_date_accent_box_padding_hor).toFloat(), + modRes.getDimensionPixelSize(R.dimen.widget_date_accent_box_padding_hor) + .toFloat(), mContext.resources.displayMetrics ) ) mWeatherVerPadding = Math.round( TypedValue.applyDimension( TypedValue.COMPLEX_UNIT_PX, - modRes.getDimensionPixelSize(R.dimen.widget_date_accent_box_padding_ver).toFloat(), + modRes.getDimensionPixelSize(R.dimen.widget_date_accent_box_padding_ver) + .toFloat(), mContext.resources.displayMetrics ) ) From 6f36e24059d0c4e7ff2721925c46a2d53f3a4692 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Fri, 16 Aug 2024 19:00:34 +0600 Subject: [PATCH 151/369] Add option to center lockscreen weather --- .../drdisagree/iconify/common/Preferences.kt | 1 + .../ui/fragments/XposedLockscreenWeather.kt | 6 + .../xposed/modules/LockscreenWeather.kt | 107 ++++++++++-------- .../fragment_xposed_lockscreen_weather.xml | 7 ++ app/src/main/res/values/strings.xml | 2 + 5 files changed, 74 insertions(+), 49 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt index 66774c671..f7d00a824 100644 --- a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt +++ b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt @@ -267,6 +267,7 @@ object Preferences { const val WEATHER_CUSTOM_MARGINS_SIDE: String = "weather_custom_margins_side" const val WEATHER_CUSTOM_MARGINS_BOTTOM: String = "weather_custom_margins_bottom" const val WEATHER_STYLE: String = "weather_style" + const val WEATHER_CENTER_VIEW: String = "weather_center_view" // Settings const val APP_LANGUAGE = "IconifyAppLanguage" diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt index 7230e3173..2a7a92793 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt @@ -28,6 +28,7 @@ import com.drdisagree.iconify.BuildConfig import com.drdisagree.iconify.Iconify.Companion.appContextLocale import com.drdisagree.iconify.R import com.drdisagree.iconify.common.Const.SWITCH_ANIMATION_DELAY +import com.drdisagree.iconify.common.Preferences.WEATHER_CENTER_VIEW import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_LOCATION import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_BOTTOM import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_SIDE @@ -267,6 +268,11 @@ class XposedLockscreenWeather : BaseFragment(), OmniJawsClient.OmniJawsObserver putInt(WEATHER_STYLE, it) } + binding.lockscreenWeatherCenterView.isSwitchChecked = getBoolean(WEATHER_CENTER_VIEW, false) + binding.lockscreenWeatherCenterView.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> + putBoolean(WEATHER_CENTER_VIEW, isChecked) + } + updateUI() } diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt index e0fdc6940..2f036491a 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt @@ -2,10 +2,12 @@ package com.drdisagree.iconify.xposed.modules import android.content.Context import android.graphics.Color +import android.view.Gravity import android.view.View import android.view.ViewGroup import android.widget.LinearLayout import com.drdisagree.iconify.common.Preferences.LSCLOCK_SWITCH +import com.drdisagree.iconify.common.Preferences.WEATHER_CENTER_VIEW import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_BOTTOM import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_SIDE import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_TOP @@ -45,12 +47,11 @@ class LockscreenWeather(context: Context?) : ModPack(context!!) { private var mTopMargin: Int = 0 private var mBottomMargin: Int = 0 private var mWeatherBackground = 0 + private var mCenterWeather = false private lateinit var mWeatherContainer: LinearLayout - private var mStatusViewContainer: ViewGroup? = null private var mStatusArea: ViewGroup? = null - override fun updatePrefs(vararg key: String) { if (Xprefs == null) return @@ -68,28 +69,28 @@ class LockscreenWeather(context: Context?) : ModPack(context!!) { mTopMargin = Xprefs!!.getInt(WEATHER_CUSTOM_MARGINS_TOP, 20) mBottomMargin = Xprefs!!.getInt(WEATHER_CUSTOM_MARGINS_BOTTOM, 20) mWeatherBackground = Xprefs!!.getInt(WEATHER_STYLE, 0) + mCenterWeather = Xprefs!!.getBoolean(WEATHER_CENTER_VIEW, false) if (key.isNotEmpty() && - (key[0] == (WEATHER_SHOW_LOCATION) || - key[0] == (WEATHER_SHOW_CONDITION) || - key[0] == (WEATHER_SHOW_HUMIDITY) || - key[0] == (WEATHER_SHOW_WIND) || - key[0] == (WEATHER_TEXT_COLOR_SWITCH) || - key[0] == (WEATHER_TEXT_COLOR) || - key[0] == (WEATHER_TEXT_SIZE) || - key[0] == (WEATHER_ICON_SIZE) || - key[0] == (WEATHER_STYLE) || - key[0] == (WEATHER_CUSTOM_MARGINS_BOTTOM) || - key[0] == (WEATHER_CUSTOM_MARGINS_SIDE) || - key[0] == (WEATHER_CUSTOM_MARGINS_TOP)) + (key[0] == WEATHER_SHOW_LOCATION || + key[0] == WEATHER_SHOW_CONDITION || + key[0] == WEATHER_SHOW_HUMIDITY || + key[0] == WEATHER_SHOW_WIND || + key[0] == WEATHER_TEXT_COLOR_SWITCH || + key[0] == WEATHER_TEXT_COLOR || + key[0] == WEATHER_TEXT_SIZE || + key[0] == WEATHER_ICON_SIZE || + key[0] == WEATHER_STYLE || + key[0] == WEATHER_CUSTOM_MARGINS_BOTTOM || + key[0] == WEATHER_CUSTOM_MARGINS_SIDE || + key[0] == WEATHER_CUSTOM_MARGINS_TOP || + key[0] == WEATHER_CENTER_VIEW) ) { updateWeatherView() } - } override fun handleLoadPackage(loadPackageParam: XC_LoadPackage.LoadPackageParam) { - mWeatherContainer = LinearLayout(mContext) mWeatherContainer.layoutParams = LinearLayout.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, @@ -124,7 +125,6 @@ class LockscreenWeather(context: Context?) : ModPack(context!!) { override fun afterHookedMethod(param: MethodHookParam) { if (!weatherEnabled) return - mStatusArea = getObjectField( param.thisObject, "mStatusArea" @@ -138,17 +138,16 @@ class LockscreenWeather(context: Context?) : ModPack(context!!) { private fun placeWeatherView() { try { - val currentWeatherView: CurrentWeatherView = - CurrentWeatherView.getInstance(mContext, LOCKSCREEN_WEATHER) - try { - (currentWeatherView.parent as ViewGroup).removeView(currentWeatherView) - } catch (ignored: Throwable) { - } - try { - (mWeatherContainer.parent as ViewGroup).removeView(mWeatherContainer) - } catch (ignored: Throwable) { - } + val currentWeatherView: CurrentWeatherView = CurrentWeatherView.getInstance( + mContext, + LOCKSCREEN_WEATHER + ) + + (currentWeatherView.parent as ViewGroup?)?.removeView(currentWeatherView) + (mWeatherContainer.parent as ViewGroup?)?.removeView(mWeatherContainer) + mWeatherContainer.addView(currentWeatherView) + if (customLockscreenClock) { mStatusViewContainer!!.addView(mWeatherContainer) } else { @@ -156,6 +155,7 @@ class LockscreenWeather(context: Context?) : ModPack(context!!) { // But before notifications mStatusArea!!.addView(mWeatherContainer, mStatusArea!!.childCount - 1) } + refreshWeatherView(currentWeatherView) updateMargins() } catch (ignored: Throwable) { @@ -171,31 +171,41 @@ class LockscreenWeather(context: Context?) : ModPack(context!!) { mSideMargin, mBottomMargin ) + + mWeatherContainer.gravity = if (mCenterWeather) { + Gravity.CENTER_HORIZONTAL + } else { + Gravity.START + } } private fun refreshWeatherView(currentWeatherView: CurrentWeatherView?) { if (currentWeatherView == null) return - currentWeatherView.updateSizes( - weatherTextSize, - weatherImageSize, - LOCKSCREEN_WEATHER - ) - currentWeatherView.updateColors( - if (weatherCustomColor) weatherColor else Color.WHITE, - LOCKSCREEN_WEATHER - ) - currentWeatherView.updateWeatherSettings( - weatherShowLocation, - weatherShowCondition, - weatherShowHumidity, - weatherShowWind, - LOCKSCREEN_WEATHER - ) - currentWeatherView.visibility = if (weatherEnabled) View.VISIBLE else View.GONE - currentWeatherView.updateWeatherBg( - mWeatherBackground, - LOCKSCREEN_WEATHER - ) + + currentWeatherView.apply { + updateSizes( + weatherTextSize, + weatherImageSize, + LOCKSCREEN_WEATHER + ) + updateColors( + if (weatherCustomColor) weatherColor else Color.WHITE, + LOCKSCREEN_WEATHER + ) + updateWeatherSettings( + weatherShowLocation, + weatherShowCondition, + weatherShowHumidity, + weatherShowWind, + LOCKSCREEN_WEATHER + ) + visibility = if (weatherEnabled) View.VISIBLE else View.GONE + updateWeatherBg( + mWeatherBackground, + LOCKSCREEN_WEATHER + ) + } + updateMargins() } @@ -206,5 +216,4 @@ class LockscreenWeather(context: Context?) : ModPack(context!!) { companion object { const val LOCKSCREEN_WEATHER = "iconify_ls_weather" } - } \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml b/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml index 8723b02f6..87a10ad06 100644 --- a/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml +++ b/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml @@ -179,6 +179,13 @@ app:entries="@array/lockscreen_weather_bg_entries" app:titleText="@string/lockscreen_weather_selection_title" /> + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2a5f9388f..2daccb5d4 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1079,6 +1079,8 @@ Center Layout Side Margin Bottom Margin + Center Weather View + Move weather view to center horizontally Weather Background Style From 4c5e5918cce6a75669d40b380f1f3ce164d3c3fa Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Fri, 16 Aug 2024 19:05:42 +0600 Subject: [PATCH 152/369] Add new contributor --- .../java/com/drdisagree/iconify/ui/fragments/Credits.kt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/Credits.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/Credits.kt index fc05d2f2f..f601e9717 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/Credits.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/Credits.kt @@ -155,6 +155,15 @@ class Credits : BaseFragment() { val contributorsList = ArrayList().apply { add(InfoModel(resources.getString(R.string.section_title_contributors))) + add( + InfoModel( + requireContext(), + "Luigi", + appContextLocale.resources.getString(R.string.info_contributor_desc), + "https://github.com/DHD2280", + R.drawable.ic_user + ) + ) add( InfoModel( requireContext(), From 9183356f72530270f977058f170e31060e270127 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Sat, 17 Aug 2024 00:21:55 +0600 Subject: [PATCH 153/369] Update UI when weather is enabled --- .../ui/fragments/XposedLockscreenWeather.kt | 35 +++++++++++++------ .../iconify/utils/OmniJawsClient.kt | 4 +-- 2 files changed, 25 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt index 2a7a92793..f537a6551 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt @@ -68,7 +68,6 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.slider.Slider import java.util.Locale - class XposedLockscreenWeather : BaseFragment(), OmniJawsClient.OmniJawsObserver { private lateinit var binding: FragmentXposedLockscreenWeatherBinding @@ -102,7 +101,22 @@ class XposedLockscreenWeather : BaseFragment(), OmniJawsClient.OmniJawsObserver binding.enableLockscreenWeather.isSwitchChecked = getBoolean(WEATHER_SWITCH, false) binding.enableLockscreenWeather.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> putBoolean(WEATHER_SWITCH, isChecked) + WeatherConfig.setEnabled(requireContext(), isChecked, WEATHER_SWITCH) + queryAndUpdateWeather() + + if (isChecked) { + if (mWeatherClient.weatherInfo != null) { + // Weather enabled but updated more than 1h ago + if (System.currentTimeMillis() - mWeatherClient.weatherInfo!!.timeStamp!! > 3600000) { + WeatherScheduler.scheduleUpdateNow(requireContext()); + } + } else { + // Weather not enabled so we will update now + WeatherScheduler.scheduleUpdateNow(requireContext()); + } + } + updateUI() Handler(Looper.getMainLooper()).postDelayed( @@ -273,6 +287,10 @@ class XposedLockscreenWeather : BaseFragment(), OmniJawsClient.OmniJawsObserver putBoolean(WEATHER_CENTER_VIEW, isChecked) } + if (getBoolean(WEATHER_SWITCH, false)) { + queryAndUpdateWeather() + } + updateUI() } @@ -285,13 +303,10 @@ class XposedLockscreenWeather : BaseFragment(), OmniJawsClient.OmniJawsObserver } private fun handlePermissions() { - if (getBoolean(WEATHER_SWITCH, false)) { - if (!getBoolean(WEATHER_CUSTOM_LOCATION, false)) { - checkLocationEnabled(mInitialCheck) - mInitialCheck = false - } else { - forceRefreshWeatherSettings() - } + if (getBoolean(WEATHER_SWITCH, false) && + !getBoolean(WEATHER_CUSTOM_LOCATION, false) + ) { + checkLocationEnabled(false) } } @@ -531,9 +546,8 @@ class XposedLockscreenWeather : BaseFragment(), OmniJawsClient.OmniJawsObserver if (getBoolean(WEATHER_SWITCH, false) && !getBoolean(WEATHER_CUSTOM_LOCATION, false) ) { - checkLocationEnabled(mInitialCheck) + checkLocationEnabled(true) } - forceRefreshWeatherSettings() } } } @@ -548,7 +562,6 @@ class XposedLockscreenWeather : BaseFragment(), OmniJawsClient.OmniJawsObserver } companion object { - private var mInitialCheck = true private const val DEFAULT_WEATHER_ICON_PACKAGE: String = "${BuildConfig.APPLICATION_ID}.google" } diff --git a/app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.kt b/app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.kt index b86f82073..a4d983d4c 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.kt @@ -103,14 +103,12 @@ class OmniJawsClient(private val mContext: Context) { } var weatherInfo: WeatherInfo? = null - private set private var mRes: Resources? = null private var mPackageName: String? = null private var mIconPrefix: String? = null private var mSettingIconPackage: String? = null private var mMetric = false - private val mObserver: MutableList = - ArrayList() + private val mObserver: MutableList = ArrayList() private var mReceiver: WeatherUpdateReceiver? = null fun queryWeather() { From 8aec0c94526e538213cb38afb24579ea57c05a82 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Sat, 17 Aug 2024 00:47:01 +0600 Subject: [PATCH 154/369] Improve gap for weather icons --- .../xposed/views/CurrentWeatherView.kt | 20 ++------ .../main/res/layout/view_current_weather.xml | 47 ++++++++++--------- 2 files changed, 30 insertions(+), 37 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/views/CurrentWeatherView.kt b/app/src/main/java/com/drdisagree/iconify/xposed/views/CurrentWeatherView.kt index 465e54962..3996ddb0a 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/views/CurrentWeatherView.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/views/CurrentWeatherView.kt @@ -21,7 +21,6 @@ import com.drdisagree.iconify.ui.utils.ViewHelper.setTextRecursively import com.drdisagree.iconify.utils.OmniJawsClient import com.drdisagree.iconify.xposed.HookRes.Companion.modRes import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.findViewWithTagAndChangeColor -import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.setMargins import de.robv.android.xposed.XposedBridge.log import java.util.Locale import java.util.function.Consumer @@ -29,6 +28,7 @@ import java.util.function.Consumer @SuppressLint("ViewConstructor") class CurrentWeatherView(context: Context, name: String) : LinearLayout(context), OmniJawsClient.OmniJawsObserver { + private var mCurrentImage: ImageView? = null private var mHumImage: ImageView? = null private var mWindImage: ImageView? = null @@ -45,7 +45,6 @@ class CurrentWeatherView(context: Context, name: String) : LinearLayout(context) private var mHumDrawable: Drawable? = null private var mWindDrawable: Drawable? = null private var mWeatherBgSelection = 0 - private var mShowWeatherLocation = false private var mShowWeatherText = false private var mShowWeatherHumidity = false @@ -70,7 +69,6 @@ class CurrentWeatherView(context: Context, name: String) : LinearLayout(context) inflateView() enableUpdates() - } private fun inflateView() { @@ -470,7 +468,7 @@ class CurrentWeatherView(context: Context, name: String) : LinearLayout(context) } companion object { - const val TAG: String = "CurrentWeatherView: " + private val TAG: String = CurrentWeatherView::class.java.name val Int.dp: Int get() = (this * Resources.getSystem().displayMetrics.density + 0.5f).toInt() @@ -485,21 +483,13 @@ class CurrentWeatherView(context: Context, name: String) : LinearLayout(context) } .forEach { obj: Array -> val instance = obj[0] as CurrentWeatherView - val params = LayoutParams( - size.dp, - size.dp - ) + val params = instance.mCurrentImage!!.layoutParams as LayoutParams + params.width = size.dp + params.height = size.dp params.gravity = Gravity.CENTER_VERTICAL instance.mCurrentImage!!.layoutParams = params instance.mHumImage!!.layoutParams = params instance.mWindImage!!.layoutParams = params - setMargins( - instance.mCurrentImage!!, instance.mContext, - if (instance.mShowWeatherLocation) 1.dp else 2.dp, - 0, - if (instance.mShowWeatherLocation) 1.dp else 2.dp, - 0 - ) } } diff --git a/app/src/main/res/layout/view_current_weather.xml b/app/src/main/res/layout/view_current_weather.xml index c33e72086..b4169dff0 100644 --- a/app/src/main/res/layout/view_current_weather.xml +++ b/app/src/main/res/layout/view_current_weather.xml @@ -2,49 +2,51 @@ + android:gravity="center_vertical" + android:orientation="vertical"> + android:layout_gravity="center_vertical" + android:orientation="horizontal"> + android:textSize="16sp" /> + android:layout_height="18dp" + android:importantForAccessibility="no" /> + android:textSize="16sp" /> + android:textSize="16sp" /> @@ -52,46 +54,47 @@ android:id="@+id/humLayout" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:orientation="horizontal" - android:layout_marginTop="2dp"> + android:layout_marginTop="2dp" + android:orientation="horizontal"> + android:textSize="16sp" /> + android:textSize="16sp" /> - \ No newline at end of file From 5495bb72e3a9f48b1a5bbc68113b669b39671f45 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Sat, 17 Aug 2024 00:56:53 +0600 Subject: [PATCH 155/369] Lockscreen Weather: Center each line if enabled --- .../iconify/xposed/modules/LockscreenWeather.kt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt index 2f036491a..234d74f37 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt @@ -6,6 +6,7 @@ import android.view.Gravity import android.view.View import android.view.ViewGroup import android.widget.LinearLayout +import androidx.core.view.children import com.drdisagree.iconify.common.Preferences.LSCLOCK_SWITCH import com.drdisagree.iconify.common.Preferences.WEATHER_CENTER_VIEW import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_BOTTOM @@ -177,6 +178,13 @@ class LockscreenWeather(context: Context?) : ModPack(context!!) { } else { Gravity.START } + (mWeatherContainer.getChildAt(0) as LinearLayout?)?.children?.forEach { + (it as LinearLayout).gravity = if (mCenterWeather) { + Gravity.CENTER_HORIZONTAL + } else { + Gravity.START or Gravity.CENTER_VERTICAL + } + } } private fun refreshWeatherView(currentWeatherView: CurrentWeatherView?) { From 30f202f29d24e14866427b21694be27bcef5d387 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Sat, 17 Aug 2024 15:06:09 +0600 Subject: [PATCH 156/369] Depth Wallpaper: Reapply foreground if drawable is null --- .../drdisagree/iconify/xposed/modules/DepthWallpaperA14.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/DepthWallpaperA14.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/DepthWallpaperA14.kt index 6442beaf2..5961b17b6 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/DepthWallpaperA14.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/DepthWallpaperA14.kt @@ -431,7 +431,9 @@ class DepthWallpaperA14(context: Context?) : ModPack(context!!) { (state == "KEYGUARD" || (showOnAOD && (state == "AOD" || state == "PULSING")))) if (showForeground) { - if (!mWallpaperForegroundCacheValid && File(foregroundPath).exists()) { + if ((!mWallpaperForegroundCacheValid || mWallpaperForeground!!.background == null) && + File(foregroundPath).exists() + ) { try { FileInputStream(foregroundPath).use { inputStream -> val bitmapDrawable = BitmapDrawable.createFromStream( From 4ffe50152f346721817db788a3bf4239df40b614 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Sat, 17 Aug 2024 13:52:31 +0200 Subject: [PATCH 157/369] WeatherScheduler: use own TAG --- .../drdisagree/iconify/services/WeatherScheduler.kt | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/services/WeatherScheduler.kt b/app/src/main/java/com/drdisagree/iconify/services/WeatherScheduler.kt index b2fc92b3d..852207e76 100644 --- a/app/src/main/java/com/drdisagree/iconify/services/WeatherScheduler.kt +++ b/app/src/main/java/com/drdisagree/iconify/services/WeatherScheduler.kt @@ -15,9 +15,10 @@ import java.util.concurrent.TimeUnit object WeatherScheduler { private const val UPDATE_WORK_NAME: String = BuildConfig.APPLICATION_ID + ".WeatherSchedule" + private val TAG = "Iconify - ${WeatherScheduler::class.java.simpleName}: " fun scheduleUpdates(context: Context) { - Log.d("Weather Scheduler", "Updating update schedule...") + Log.d(TAG, "Updating update schedule...") if (!WorkManager.isInitialized()) { WorkManager.initialize(context, Configuration.Builder().build()) @@ -27,10 +28,10 @@ object WeatherScheduler { val weatherEnabled: Boolean = WeatherConfig.isEnabled(context) - Log.d("Weather Scheduler", "Weather enabled: $weatherEnabled") + Log.d(TAG, "Weather enabled: $weatherEnabled") if (weatherEnabled) { - Log.d("Weather Scheduler", "Scheduling updates") + Log.d(TAG, "Scheduling updates") val builder: PeriodicWorkRequest.Builder = PeriodicWorkRequest.Builder( WeatherWork::class.java, WeatherConfig.getUpdateInterval(context).toLong(), TimeUnit.HOURS @@ -58,7 +59,7 @@ object WeatherScheduler { } fun scheduleUpdateNow(context: Context) { - Log.d("Weather Scheduler", "Check update now") + Log.d(TAG, "Check update now") if (!WorkManager.isInitialized()) { WorkManager.initialize(context, Configuration.Builder().build()) @@ -71,4 +72,5 @@ object WeatherScheduler { workManager.enqueue(builder.build()) } + } From f45d38ab334cc8afcdf9d2c5b67c41a80242cf33 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Sat, 17 Aug 2024 13:53:05 +0200 Subject: [PATCH 158/369] XposedLockscreenWeather: schedule new updates on enabled & on update interval change --- .../drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt index f537a6551..39d7bca47 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt @@ -106,6 +106,7 @@ class XposedLockscreenWeather : BaseFragment(), OmniJawsClient.OmniJawsObserver queryAndUpdateWeather() if (isChecked) { + WeatherScheduler.scheduleUpdates(requireContext()) if (mWeatherClient.weatherInfo != null) { // Weather enabled but updated more than 1h ago if (System.currentTimeMillis() - mWeatherClient.weatherInfo!!.timeStamp!! > 3600000) { @@ -137,7 +138,7 @@ class XposedLockscreenWeather : BaseFragment(), OmniJawsClient.OmniJawsObserver binding.lockscreenWeatherUpdateInterval.setSelectedIndex(selectedIndex) binding.lockscreenWeatherUpdateInterval.setOnItemSelectedListener { putString(WEATHER_UPDATE_INTERVAL, mapping[it].toString()) - forceRefreshWeatherSettings() + WeatherScheduler.scheduleUpdates(requireContext()) } binding.lockscreenWeatherLastUpdate.setOnClickListener { From 5fbdc7a07c5d9a6e407926e0b351bdbfcf4c5cab Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Sat, 17 Aug 2024 13:55:41 +0200 Subject: [PATCH 159/369] OpenMeteoProvider: improve getting condition codes to match our strings --- .../weather/providers/OpenMeteoProvider.kt | 29 ++++++++++++++----- .../xposed/views/CurrentWeatherView.kt | 4 +-- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/weather/providers/OpenMeteoProvider.kt b/app/src/main/java/com/drdisagree/iconify/weather/providers/OpenMeteoProvider.kt index 0bad5a70e..a3b2fda62 100644 --- a/app/src/main/java/com/drdisagree/iconify/weather/providers/OpenMeteoProvider.kt +++ b/app/src/main/java/com/drdisagree/iconify/weather/providers/OpenMeteoProvider.kt @@ -266,19 +266,34 @@ class OpenMeteoProvider(context: Context?) : AbstractWeatherProvider(context!!) "%s&hourly=relativehumidity_2m&daily=weathercode,temperature_2m_max,temperature_2m_min¤t_weather=true&temperature_unit=%s&windspeed_unit=%s&timezone=%s&past_days=1&models=best_match,gfs_seamless" + /* OpenMeteo WMO Weather interpretation codes (WW) + * 0 Clear sky + * 1, 2, 3 Mainly clear, partly cloudy, and overcast + * 45, 48 Fog and depositing rime fog + * 51, 53, 55 Drizzle: Light, moderate, and dense intensity + * 56, 57 Freezing Drizzle: Light and dense intensity + * 61, 63, 65 Rain: Slight, moderate and heavy intensity + * 66, 67 Freezing Rain: Light and heavy intensity + * 71, 73, 75 Snow fall: Slight, moderate, and heavy intensity + * 77 Snow grains + * 80, 81, 82 Rain showers: Slight, moderate, and violent + * 85, 86 Snow showers slight and heavy + * 95 * Thunderstorm: Slight or moderate + * 96, 99 * Thunderstorm with slight and heavy hail + */ private fun getWeatherDescription(code: Int): String { return when (code) { 0 -> "Clear sky" 1 -> "Mainly clear" - 2 -> "Partly cloudy" - 3 -> "Overcast" + 2 -> "Partly clouds" + 3 -> "Clouds" 45 -> "Fog" 48 -> "Depositing rime fog" - 51 -> "Light intensity drizzle" - 53 -> "Moderate intensity drizzle" - 55 -> "Dense intensity drizzle" - 56 -> "Light intensity freezing drizzle" - 57 -> "Dense intensity freezing drizzle" + 51 -> "Light intensity drizzle rain" + 53 -> "Moderate intensity drizzle rain" + 55 -> "Dense intensity drizzle rain" + 56 -> "Light intensity freezing drizzle rain" + 57 -> "Dense intensity freezing drizzle rain" 61 -> "Slight intensity rain" 63 -> "Moderate intensity rain" 65 -> "Heavy intensity rain" diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/views/CurrentWeatherView.kt b/app/src/main/java/com/drdisagree/iconify/xposed/views/CurrentWeatherView.kt index 3996ddb0a..c0c38595c 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/views/CurrentWeatherView.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/views/CurrentWeatherView.kt @@ -191,9 +191,7 @@ class CurrentWeatherView(context: Context, name: String) : LinearLayout(context) if (mWeatherInfo != null) { var formattedCondition: String = mWeatherInfo!!.condition.toString() - if (formattedCondition.lowercase(Locale.getDefault()).contains("clouds") || - formattedCondition.lowercase(Locale.getDefault()).contains("overcast") - ) { + if (formattedCondition.lowercase(Locale.getDefault()).contains("clouds")) { formattedCondition = modRes.getString(R.string.weather_condition_clouds) } else if (formattedCondition.lowercase(Locale.getDefault()).contains("rain")) { formattedCondition = modRes.getString(R.string.weather_condition_rain) From 3463d8a71b97f55cd34c11215a8bc843ad254b83 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Sat, 17 Aug 2024 14:29:43 +0200 Subject: [PATCH 160/369] EditTextWidget: handle empty summary --- .../java/com/drdisagree/iconify/ui/dialogs/EditTextDialog.kt | 4 +++- .../java/com/drdisagree/iconify/ui/widgets/EditTextWidget.kt | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/dialogs/EditTextDialog.kt b/app/src/main/java/com/drdisagree/iconify/ui/dialogs/EditTextDialog.kt index 68d50b9ce..903d07f53 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/dialogs/EditTextDialog.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/dialogs/EditTextDialog.kt @@ -5,6 +5,7 @@ import android.content.Context import android.graphics.Color import android.graphics.drawable.ColorDrawable import android.view.LayoutInflater +import android.view.View.GONE import android.view.ViewGroup import android.view.WindowManager import com.drdisagree.iconify.databinding.ViewEditTextDialogBinding @@ -37,7 +38,8 @@ class EditTextDialog( binding!!.title.text = title if (subTitle.isNotEmpty()) binding!!.subtitle.text = subTitle - if (hint.isNotEmpty()) binding!!.editText.hint = hint + else binding!!.subtitle.visibility = GONE + if (hint.isNotEmpty() && hint != "null") binding!!.editText.hint = hint if (text.isNotEmpty()) binding!!.editText.setText(text) binding!!.confirm.setOnClickListener { diff --git a/app/src/main/java/com/drdisagree/iconify/ui/widgets/EditTextWidget.kt b/app/src/main/java/com/drdisagree/iconify/ui/widgets/EditTextWidget.kt index e6d85beb6..b521d1cb4 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/widgets/EditTextWidget.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/widgets/EditTextWidget.kt @@ -53,6 +53,7 @@ class EditTextWidget : RelativeLayout { if (TextUtils.isEmpty(dialogTitle) || dialogTitle == "null") dialogTitle = typedArray.getString(R.styleable.EditTextWidget_titleText).toString(); dialogSubtitle = typedArray.getString(R.styleable.EditTextWidget_dialogSubtitleText).toString() if (dialogSubtitle.isEmpty() || dialogSubtitle == "null") dialogSubtitle = typedArray.getString(R.styleable.EditTextWidget_summaryText).toString(); + if (dialogSubtitle == "null") dialogSubtitle = "" // catch null summary dialogHint = typedArray.getString(R.styleable.EditTextWidget_dialogHintText).toString() dialogText = typedArray.getString(R.styleable.EditTextWidget_dialogText).toString() From dea2de770463d6f08a06e49e0a1e95b6feafbe02 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Sat, 17 Aug 2024 14:30:59 +0200 Subject: [PATCH 161/369] Weather: Added OpenWeatherMap Provider --- .../drdisagree/iconify/common/Preferences.kt | 1 + .../ui/fragments/XposedLockscreenWeather.kt | 39 +++ .../iconify/weather/WeatherConfig.kt | 17 +- .../providers/OpenWeatherMapProvider.kt | 303 ++++++++++++++++++ .../fragment_xposed_lockscreen_weather.xml | 13 + app/src/main/res/values/arrays.xml | 6 + app/src/main/res/values/strings.xml | 6 + 7 files changed, 381 insertions(+), 4 deletions(-) create mode 100644 app/src/main/java/com/drdisagree/iconify/weather/providers/OpenWeatherMapProvider.kt diff --git a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt index f7d00a824..d2cf6fe4b 100644 --- a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt +++ b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt @@ -262,6 +262,7 @@ object Preferences { const val WEATHER_TEXT_COLOR: String = "weather_text_color" const val WEATHER_OWM_KEY: String = "owm_key" const val WEATHER_UNITS: String = "weather_units" + const val WEATHER_PROVIDER: String = "weather_provider" const val WEATHER_CUSTOM_LOCATION: String = "weather_custom_location_switch" const val WEATHER_CUSTOM_MARGINS_TOP: String = "weather_custom_margins_top" const val WEATHER_CUSTOM_MARGINS_SIDE: String = "weather_custom_margins_side" diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt index 39d7bca47..bc8610ac5 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt @@ -28,6 +28,7 @@ import com.drdisagree.iconify.BuildConfig import com.drdisagree.iconify.Iconify.Companion.appContextLocale import com.drdisagree.iconify.R import com.drdisagree.iconify.common.Const.SWITCH_ANIMATION_DELAY +import com.drdisagree.iconify.common.Preferences.LSCLOCK_DEVICENAME import com.drdisagree.iconify.common.Preferences.WEATHER_CENTER_VIEW import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_LOCATION import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_BOTTOM @@ -35,6 +36,8 @@ import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_SIDE import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_TOP import com.drdisagree.iconify.common.Preferences.WEATHER_ICON_PACK import com.drdisagree.iconify.common.Preferences.WEATHER_ICON_SIZE +import com.drdisagree.iconify.common.Preferences.WEATHER_OWM_KEY +import com.drdisagree.iconify.common.Preferences.WEATHER_PROVIDER import com.drdisagree.iconify.common.Preferences.WEATHER_SHOW_CONDITION import com.drdisagree.iconify.common.Preferences.WEATHER_SHOW_HUMIDITY import com.drdisagree.iconify.common.Preferences.WEATHER_SHOW_LOCATION @@ -46,6 +49,7 @@ import com.drdisagree.iconify.common.Preferences.WEATHER_TEXT_COLOR_SWITCH import com.drdisagree.iconify.common.Preferences.WEATHER_TEXT_SIZE import com.drdisagree.iconify.common.Preferences.WEATHER_UNITS import com.drdisagree.iconify.common.Preferences.WEATHER_UPDATE_INTERVAL +import com.drdisagree.iconify.config.RPrefs import com.drdisagree.iconify.config.RPrefs.getBoolean import com.drdisagree.iconify.config.RPrefs.getInt import com.drdisagree.iconify.config.RPrefs.putBoolean @@ -60,6 +64,7 @@ import com.drdisagree.iconify.ui.activities.LocationBrowseActivity.Companion.DAT import com.drdisagree.iconify.ui.adapters.IconsAdapter import com.drdisagree.iconify.ui.adapters.IconsAdapter.Companion.WEATHER_ICONS_ADAPTER import com.drdisagree.iconify.ui.base.BaseFragment +import com.drdisagree.iconify.ui.dialogs.EditTextDialog import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader import com.drdisagree.iconify.utils.OmniJawsClient import com.drdisagree.iconify.utils.SystemUtil @@ -146,6 +151,30 @@ class XposedLockscreenWeather : BaseFragment(), OmniJawsClient.OmniJawsObserver forceRefreshWeatherSettings() } + binding.lockscreenWeatherProvider.setSelectedIndex(RPrefs.getString(WEATHER_PROVIDER, "0")!!.toInt()) + binding.lockscreenWeatherProvider.setOnItemSelectedListener { + putString(WEATHER_PROVIDER, it.toString()) + + if (WeatherConfig.getOwmKey(requireContext()).isNullOrEmpty() && it != 0) { + showOwnKeyDialog() + } else { + forceRefreshWeatherSettings() + } + } + + binding.lockscreenWeatherOwmKey.setSummary(WeatherConfig.getOwmKey(requireContext())) + binding.lockscreenWeatherOwmKey.setEditTextText(WeatherConfig.getOwmKey(requireContext())!!) + binding.lockscreenWeatherOwmKey.setOnEditTextListener(object : + EditTextDialog.EditTextDialogListener { + override fun onOkPressed(dialogId: Int, newText: String) { + putString(WEATHER_OWM_KEY, newText) + handlePermissions() + forceRefreshWeatherSettings() + binding.lockscreenWeatherOwmKey.setSummary(newText) + binding.lockscreenWeatherOwmKey.setEditTextText(newText) + } + }) + binding.lockscreenWeatherUnits.setSelectedIndex(if (WeatherConfig.isMetric(requireContext())) 0 else 1) binding.lockscreenWeatherUnits.setOnItemSelectedListener { index: Int -> putString(WEATHER_UNITS, index.toString()) @@ -303,6 +332,16 @@ class XposedLockscreenWeather : BaseFragment(), OmniJawsClient.OmniJawsObserver handlePermissions() } + private fun showOwnKeyDialog() { + MaterialAlertDialogBuilder(requireContext()) + .setTitle(appContextLocale.getString(R.string.weather_provider_owm_key_title)) + .setMessage(appContextLocale.getString(R.string.weather_provider_owm_key_message)) + .setCancelable(false) + .setPositiveButton(appContextLocale.getString(R.string.understood), null) + .create() + .show() + } + private fun handlePermissions() { if (getBoolean(WEATHER_SWITCH, false) && !getBoolean(WEATHER_CUSTOM_LOCATION, false) diff --git a/app/src/main/java/com/drdisagree/iconify/weather/WeatherConfig.kt b/app/src/main/java/com/drdisagree/iconify/weather/WeatherConfig.kt index 05d08d72b..ce1f75cf5 100644 --- a/app/src/main/java/com/drdisagree/iconify/weather/WeatherConfig.kt +++ b/app/src/main/java/com/drdisagree/iconify/weather/WeatherConfig.kt @@ -10,12 +10,14 @@ import com.drdisagree.iconify.BuildConfig import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_LOCATION import com.drdisagree.iconify.common.Preferences.WEATHER_ICON_PACK import com.drdisagree.iconify.common.Preferences.WEATHER_OWM_KEY +import com.drdisagree.iconify.common.Preferences.WEATHER_PROVIDER import com.drdisagree.iconify.common.Preferences.WEATHER_SWITCH import com.drdisagree.iconify.common.Preferences.WEATHER_UNITS import com.drdisagree.iconify.common.Preferences.WEATHER_UPDATE_INTERVAL import com.drdisagree.iconify.common.Resources.SHARED_XPREFERENCES import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.weather.providers.OpenMeteoProvider +import com.drdisagree.iconify.weather.providers.OpenWeatherMapProvider object WeatherConfig { @@ -46,12 +48,19 @@ object WeatherConfig { } fun getProvider(context: Context): AbstractWeatherProvider { - return OpenMeteoProvider(context) + val provider = getPrefs(context).getString(WEATHER_PROVIDER, "0") + return when (provider) { + "1" -> return OpenWeatherMapProvider(context) + else -> return OpenMeteoProvider(context) + } } fun getProviderId(context: Context): String { - //val provider = getPrefs(context).getString(WEATHER_PROVIDER, "0") - return "OpenWeatherMap" + val provider = getPrefs(context).getString(WEATHER_PROVIDER, "0") + return when (provider) { + "1" -> "OpenWeatherMap" + else -> "OpenMeteo" + } } fun isMetric(context: Context): Boolean { @@ -141,6 +150,6 @@ object WeatherConfig { } fun getOwmKey(context: Context): String? { - return getPrefs(context).getString(WEATHER_OWM_KEY, null) + return getPrefs(context).getString(WEATHER_OWM_KEY, "") } } \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/weather/providers/OpenWeatherMapProvider.kt b/app/src/main/java/com/drdisagree/iconify/weather/providers/OpenWeatherMapProvider.kt new file mode 100644 index 000000000..8dc308493 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/weather/providers/OpenWeatherMapProvider.kt @@ -0,0 +1,303 @@ +package com.drdisagree.iconify.weather.providers + +import android.content.Context +import android.location.Location +import android.text.TextUtils +import android.util.Log +import com.drdisagree.iconify.weather.AbstractWeatherProvider +import com.drdisagree.iconify.weather.WeatherConfig +import com.drdisagree.iconify.weather.WeatherInfo +import org.json.JSONArray +import org.json.JSONException +import org.json.JSONObject +import java.util.Locale + +class OpenWeatherMapProvider(context: Context?) : AbstractWeatherProvider(context!!) { + + private val mHasAPIKey: Boolean + + override fun getCustomWeather(lat: String?, lon: String?, metric: Boolean): WeatherInfo? { + val coordinates = String.format(Locale.US, PART_COORDINATES, lat!!.toFloat(), lon!!.toFloat()) + return handleWeatherRequest(coordinates, metric) + } + + override fun getLocationWeather(location: Location?, metric: Boolean): WeatherInfo? { + val coordinates = String.format(Locale.US, PART_COORDINATES, location!!.latitude,location.longitude) + return handleWeatherRequest(coordinates, metric) + } + + private fun handleWeatherRequest(selection: String, metric: Boolean): WeatherInfo? { + if (!mHasAPIKey) { + return null + } + val units = if (metric) "metric" else "imperial" + val locale = languageCode + val conditionUrl = String.format( + Locale.US, URL_WEATHER, selection, units, locale, + aPIKey + ) + val conditionResponse: String = retrieve(conditionUrl) ?: return null + log( + TAG, + "Condition URL = $conditionUrl returning a response of $conditionResponse" + ) + + try { + val conditions = JSONObject(conditionResponse) + val conditionData = conditions.getJSONObject("main") + val weather = conditions.getJSONArray("weather").getJSONObject(0) + var forecasts: ArrayList = ArrayList() + if (conditions.has("daily")) { + forecasts = + parseForecasts(conditions.getJSONArray("daily"), metric) + } + val wind = conditions.getJSONObject("wind") + var windSpeed = wind.getDouble("speed").toFloat() + if (metric) { + // speeds are in m/s so convert to our common metric unit km/h + windSpeed *= 3.6f + } + + val city: String = getWeatherDataLocality(selection).toString() + + val w: WeatherInfo = WeatherInfo( + mContext, selection, city, /* condition */ + weather.getString("main"), /* conditionCode */ + mapConditionIconToCode( + weather.getString("icon"), weather.getInt("id") + ), /* temperature */ + sanitizeTemperature(conditionData.getDouble("temp"), metric), /* humidity */ + conditionData.getDouble("humidity").toFloat(), /* wind */ + windSpeed, /* windDir */ + if (wind.has("deg")) wind.getInt("deg") else 0, + metric, + forecasts, + System.currentTimeMillis() + ) + + log(TAG, "Weather updated: $w") + return w + } catch (e: JSONException) { + Log.w( + TAG, "Received malformed weather data (selection = " + selection + + ", lang = " + locale + ")", e + ) + } + + return null + } + + @Throws(JSONException::class) + private fun parseForecasts(forecasts: JSONArray, metric: Boolean): ArrayList { + val result: ArrayList = ArrayList() + val count = forecasts.length() + + if (count == 0) { + throw JSONException("Empty forecasts array") + } + for (i in 0 until count) { + val day: String = getDay(i) + var item: WeatherInfo.DayForecast + try { + val forecast = forecasts.getJSONObject(i) + val conditionData = forecast.getJSONObject("temp") + val data = forecast.getJSONArray("weather").getJSONObject(0) + item = WeatherInfo.DayForecast( /* low */ + sanitizeTemperature(conditionData.getDouble("min"), metric), /* high */ + sanitizeTemperature(conditionData.getDouble("max"), metric), /* condition */ + data.getString("main"), /* conditionCode */ + mapConditionIconToCode( + data.getString("icon"), data.getInt("id") + ), + day, + metric + ) + } catch (e: JSONException) { + Log.w( + TAG, + "Invalid forecast for day $i creating dummy", e + ) + item = WeatherInfo.DayForecast( /* low */ + 0F, /* high */ + 0F, /* condition */ + "", /* conditionCode */ + -1, + "NaN", + metric + ) + } + result.add(item) + } + // clients assume there are 5 entries - so fill with dummy if needed + if (result.size < 5) { + for (i in result.size..4) { + Log.w( + TAG, + "Missing forecast for day $i creating dummy" + ) + val item: WeatherInfo.DayForecast = WeatherInfo.DayForecast( /* low */ + 0F, /* high */ + 0F, /* condition */ + "", /* conditionCode */ + -1, + "NaN", + metric + ) + result.add(item) + } + } + return result + } + + init { + mHasAPIKey = aPIKey != null + } + + private val languageCode: String + get() { + val locale: Locale = mContext.getResources().getConfiguration().locale + val selector = locale.language + "-" + locale.country + + for ((key, value) in LANGUAGE_CODE_MAPPING) { + if (selector.startsWith(key)) { + return value + } + } + + return "en" + } + + private fun mapConditionIconToCode(icon: String, conditionId: Int): Int { + // First, use condition ID for specific cases + + return when (conditionId) { + 202, 232, 211 -> // thunderstorm + 4 + + 212 -> // heavy thunderstorm + 3 + + 221, 231, 201 -> // thunderstorm with rain + 38 + + 230, 200, 210 -> // light thunderstorm + 37 + + 300, 301, 302, 310, 311, 312, 313, 314, 321 -> // shower drizzle + 9 + + 500, 501, 520, 521, 531 -> // ragged shower rain + 11 + + 502, 503, 504, 522 -> // heavy intensity shower rain + 12 + + 511 -> // freezing rain + 10 + + 600, 620 -> 14 + 601, 621 -> 16 + 602, 622 -> 41 + 611, 612 -> 18 + 615, 616 -> 5 + 741 -> // fog + 20 + + 711, 762 -> // volcanic ash + 22 + + 701, 721 -> // haze + 21 + + 731, 751, 761 -> // dust + 19 + + 771 -> // squalls + 23 + + 781 -> // tornado + 0 + + 800 -> // clear sky + if (icon.endsWith("n")) 31 else 32 + + 801 -> // few clouds + if (icon.endsWith("n")) 33 else 34 + + 802 -> // scattered clouds + if (icon.endsWith("n")) 27 else 28 + + 803, 804 -> // overcast clouds + if (icon.endsWith("n")) 29 else 30 + + 900 -> 0 + 901 -> 1 + 902 -> 2 + 903 -> 25 + 904 -> 36 + 905 -> 24 + 906 -> 17 + else -> // hail + -1 + } + } + + private val aPIKey: String? + get() { + val customKey: String = WeatherConfig.getOwmKey(mContext).toString() + if (!TextUtils.isEmpty(customKey)) { + return customKey + } + return null + } + + override fun shouldRetry(): Boolean { + return false + } + + companion object { + private const val TAG = "OpenWeatherMapProvider" + + private const val FORECAST_DAYS = 5 + private const val URL_WEATHER = + "https://api.openweathermap.org/data/2.5/weather?%s&mode=json&units=%s&lang=%s&cnt=" + FORECAST_DAYS + "&appid=%s" + + // OpenWeatherMap sometimes returns temperatures in Kelvin even if we ask it + // for deg C or deg F. Detect this and convert accordingly. + private fun sanitizeTemperature(value: Double, metric: Boolean): Float { + // threshold chosen to work for both C and F. 170 deg F is hotter + // than the hottest place on earth. + var value = value + if (value > 170) { + // K -> deg C + value -= 273.15 + if (!metric) { + // deg C -> deg F + value = (value * 1.8) + 32 + } + } + return value.toFloat() + } + + private val LANGUAGE_CODE_MAPPING = HashMap() + + init { + LANGUAGE_CODE_MAPPING["bg-"] = "bg" + LANGUAGE_CODE_MAPPING["de-"] = "de" + LANGUAGE_CODE_MAPPING["es-"] = "sp" + LANGUAGE_CODE_MAPPING["fi-"] = "fi" + LANGUAGE_CODE_MAPPING["fr-"] = "fr" + LANGUAGE_CODE_MAPPING["it-"] = "it" + LANGUAGE_CODE_MAPPING["nl-"] = "nl" + LANGUAGE_CODE_MAPPING["pl-"] = "pl" + LANGUAGE_CODE_MAPPING["pt-"] = "pt" + LANGUAGE_CODE_MAPPING["ro-"] = "ro" + LANGUAGE_CODE_MAPPING["ru-"] = "ru" + LANGUAGE_CODE_MAPPING["se-"] = "se" + LANGUAGE_CODE_MAPPING["tr-"] = "tr" + LANGUAGE_CODE_MAPPING["uk-"] = "ua" + LANGUAGE_CODE_MAPPING["zh-CN"] = "zh_cn" + LANGUAGE_CODE_MAPPING["zh-TW"] = "zh_tw" + } + } +} diff --git a/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml b/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml index 87a10ad06..79357c665 100644 --- a/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml +++ b/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml @@ -43,6 +43,19 @@ app:summaryText="@string/not_available" app:titleText="@string/last_update_time" /> + + + + @string/interval_12_hour + + + @string/openmeteo + @string/openweathermap + + @string/lockscreen_weather_selection_default diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2daccb5d4..a12a52c5d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1057,6 +1057,12 @@ Weather on Lockscreen Show weather on lockscreen Last Update Time + Weather Provider + OpenMeteo + OpenWeatherMap + OpenWeatherMap API Key + OpenWeatherMap API Key required + Please enter your OpenWeatherMap API key to fetch weather data. Show Location Show Location before icon Show Condition From 59881538f2166e6a138b3b367e852907b3a4e415 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Sat, 17 Aug 2024 20:16:50 +0600 Subject: [PATCH 162/369] Refactor and add OpenWeatherMap weather provider --- .../ui/fragments/XposedLockscreenClock.kt | 9 +++-- .../ui/fragments/XposedLockscreenWeather.kt | 33 +++++++++++++++---- .../iconify/ui/widgets/EditTextWidget.kt | 2 +- .../iconify/weather/WeatherConfig.kt | 4 +-- .../drdisagree/iconify/weather/WeatherWork.kt | 30 ++++++++++------- .../fragment_xposed_lockscreen_weather.xml | 5 +-- 6 files changed, 54 insertions(+), 29 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenClock.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenClock.kt index 839d6b742..e6976f4ee 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenClock.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenClock.kt @@ -14,7 +14,6 @@ import android.widget.Toast import androidx.activity.result.ActivityResult import androidx.activity.result.contract.ActivityResultContracts import androidx.core.content.ContextCompat -import androidx.navigation.Navigation.findNavController import androidx.recyclerview.widget.LinearSnapHelper import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.SnapHelper @@ -354,24 +353,24 @@ class XposedLockscreenClock : BaseFragment() { showMoreLsSettings() userText = getString(LSCLOCK_USERNAME, "").toString() - binding.lsclockCustomUsername.setEditTextText(userText) + binding.lsclockCustomUsername.setEditTextValue(userText) binding.lsclockCustomUsername.setOnEditTextListener(object : EditTextDialog.EditTextDialogListener { override fun onOkPressed(dialogId: Int, newText: String) { putString(LSCLOCK_USERNAME, newText) userText = newText - binding.lsclockCustomUsername.setEditTextText(userText) + binding.lsclockCustomUsername.setEditTextValue(userText) } }) deviceText = getString(LSCLOCK_DEVICENAME, "").toString() - binding.lsclockCustomDevicename.setEditTextText(deviceText) + binding.lsclockCustomDevicename.setEditTextValue(deviceText) binding.lsclockCustomDevicename.setOnEditTextListener(object : EditTextDialog.EditTextDialogListener { override fun onOkPressed(dialogId: Int, newText: String) { putString(LSCLOCK_DEVICENAME, newText) deviceText = newText - binding.lsclockCustomDevicename.setEditTextText(deviceText) + binding.lsclockCustomDevicename.setEditTextValue(deviceText) } }) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt index bc8610ac5..64e000457 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt @@ -28,7 +28,6 @@ import com.drdisagree.iconify.BuildConfig import com.drdisagree.iconify.Iconify.Companion.appContextLocale import com.drdisagree.iconify.R import com.drdisagree.iconify.common.Const.SWITCH_ANIMATION_DELAY -import com.drdisagree.iconify.common.Preferences.LSCLOCK_DEVICENAME import com.drdisagree.iconify.common.Preferences.WEATHER_CENTER_VIEW import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_LOCATION import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_BOTTOM @@ -151,27 +150,47 @@ class XposedLockscreenWeather : BaseFragment(), OmniJawsClient.OmniJawsObserver forceRefreshWeatherSettings() } - binding.lockscreenWeatherProvider.setSelectedIndex(RPrefs.getString(WEATHER_PROVIDER, "0")!!.toInt()) + binding.lockscreenWeatherProvider.setSelectedIndex( + RPrefs.getString(WEATHER_PROVIDER, "0")!!.toInt() + ) binding.lockscreenWeatherProvider.setOnItemSelectedListener { putString(WEATHER_PROVIDER, it.toString()) - if (WeatherConfig.getOwmKey(requireContext()).isNullOrEmpty() && it != 0) { + if (WeatherConfig.getOwmKey(requireContext()).isEmpty() && it != 0) { showOwnKeyDialog() } else { forceRefreshWeatherSettings() } } - binding.lockscreenWeatherOwmKey.setSummary(WeatherConfig.getOwmKey(requireContext())) - binding.lockscreenWeatherOwmKey.setEditTextText(WeatherConfig.getOwmKey(requireContext())!!) + val owmKey = WeatherConfig.getOwmKey(requireContext()) + if (owmKey.isEmpty()) { + binding.lockscreenWeatherOwmKey.setSummary(getString(R.string.not_available)) + } else { + binding.lockscreenWeatherOwmKey.setSummary( + "*".repeat(owmKey.length - 4) + owmKey.takeLast( + 4 + ) + ) + } + binding.lockscreenWeatherOwmKey.setEditTextValue(owmKey) binding.lockscreenWeatherOwmKey.setOnEditTextListener(object : EditTextDialog.EditTextDialogListener { override fun onOkPressed(dialogId: Int, newText: String) { putString(WEATHER_OWM_KEY, newText) handlePermissions() forceRefreshWeatherSettings() - binding.lockscreenWeatherOwmKey.setSummary(newText) - binding.lockscreenWeatherOwmKey.setEditTextText(newText) + + val maskedKey = if (newText.length > 4) { + "*".repeat(newText.length - 4) + newText.takeLast(4) + } else { + newText.ifEmpty { + getString(R.string.not_available) + } + } + + binding.lockscreenWeatherOwmKey.setSummary(maskedKey) + binding.lockscreenWeatherOwmKey.setEditTextValue(newText) } }) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/widgets/EditTextWidget.kt b/app/src/main/java/com/drdisagree/iconify/ui/widgets/EditTextWidget.kt index b521d1cb4..311b016b0 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/widgets/EditTextWidget.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/widgets/EditTextWidget.kt @@ -94,7 +94,7 @@ class EditTextWidget : RelativeLayout { * Set the text for the EditText in the dialog * @param text The text to be displayed in the EditText */ - fun setEditTextText(text: String) { + fun setEditTextValue(text: String) { dialogText = text } diff --git a/app/src/main/java/com/drdisagree/iconify/weather/WeatherConfig.kt b/app/src/main/java/com/drdisagree/iconify/weather/WeatherConfig.kt index ce1f75cf5..2499c959f 100644 --- a/app/src/main/java/com/drdisagree/iconify/weather/WeatherConfig.kt +++ b/app/src/main/java/com/drdisagree/iconify/weather/WeatherConfig.kt @@ -149,7 +149,7 @@ object WeatherConfig { == PackageManager.PERMISSION_GRANTED) } - fun getOwmKey(context: Context): String? { - return getPrefs(context).getString(WEATHER_OWM_KEY, "") + fun getOwmKey(context: Context): String { + return getPrefs(context).getString(WEATHER_OWM_KEY, "") ?: "" } } \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/weather/WeatherWork.kt b/app/src/main/java/com/drdisagree/iconify/weather/WeatherWork.kt index 763e88e43..696b59319 100644 --- a/app/src/main/java/com/drdisagree/iconify/weather/WeatherWork.kt +++ b/app/src/main/java/com/drdisagree/iconify/weather/WeatherWork.kt @@ -35,10 +35,11 @@ import java.util.concurrent.atomic.AtomicReference class WeatherWork(val mContext: Context, workerParams: WorkerParameters) : ListenableWorker(mContext, workerParams) { + override fun startWork(): ListenableFuture { if (DEBUG) Log.d(TAG, "startWork") - return CallbackToFutureAdapter.getFuture { completer: CallbackToFutureAdapter.Completer -> + return CallbackToFutureAdapter.getFuture { completer: CallbackToFutureAdapter.Completer -> if (!isEnabled(mContext)) { handleError( completer, @@ -47,18 +48,23 @@ class WeatherWork(val mContext: Context, workerParams: WorkerParameters) : ) return@getFuture completer } - if (!checkPermissions()) { - handleError( - completer, - EXTRA_ERROR_NO_PERMISSIONS, - "Location permissions are not granted" - ) - return@getFuture completer - } - if (!doCheckLocationEnabled()) { - handleError(completer, EXTRA_ERROR_NETWORK, "Location services are disabled") - return@getFuture completer + if (!isCustomLocation(mContext)) { + // Check permissions and location enabled + // only if not using custom location + if (!checkPermissions()) { + handleError( + completer, + EXTRA_ERROR_NO_PERMISSIONS, + "Location permissions are not granted" + ) + return@getFuture completer + } + + if (!doCheckLocationEnabled()) { + handleError(completer, EXTRA_ERROR_NETWORK, "Location services are disabled") + return@getFuture completer + } } executor.execute { diff --git a/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml b/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml index 79357c665..44f006d69 100644 --- a/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml +++ b/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml @@ -47,13 +47,14 @@ android:id="@+id/lockscreen_weather_provider" android:layout_width="match_parent" android:layout_height="wrap_content" - app:titleText="@string/weather_provider" - app:entries="@array/weather_provider_entries" /> + app:entries="@array/weather_provider_entries" + app:titleText="@string/weather_provider" /> Date: Sat, 17 Aug 2024 22:55:38 +0600 Subject: [PATCH 163/369] Lockscreen Clock: Small improvement for clock style 19 --- .../iconify/xposed/modules/LockscreenClock.kt | 18 +++++++++++------- .../res/layout/preview_lockscreen_clock_19.xml | 2 +- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenClock.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenClock.kt index f45f04e01..7adb57fc2 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenClock.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenClock.kt @@ -532,19 +532,21 @@ class LockscreenClock(context: Context?) : ModPack(context!!) { if (textScaleFactor != 1f) { applyTextScalingRecursively(clockView, textScaleFactor) + val reduceFactor = if (textScaleFactor > 1f) 0.91f else 1f + mVolumeLevelArcProgress?.layoutParams?.apply { - width = (width * textScaleFactor).toInt() - height = (height * textScaleFactor).toInt() + width = (width * textScaleFactor * reduceFactor).toInt() + height = (height * textScaleFactor * reduceFactor).toInt() } mRamUsageArcProgress?.layoutParams?.apply { - width = (width * textScaleFactor).toInt() - height = (height * textScaleFactor).toInt() + width = (width * textScaleFactor * reduceFactor).toInt() + height = (height * textScaleFactor * reduceFactor).toInt() } (mBatteryProgress?.parent as ViewGroup?)?.apply { layoutParams?.apply { - width = (width * textScaleFactor).toInt() + width = (width * textScaleFactor * reduceFactor).toInt() } requestLayout() } @@ -590,6 +592,7 @@ class LockscreenClock(context: Context?) : ModPack(context!!) { val volPercent = (volLevel.toFloat() / maxVolLevel * 100).toInt() val textScaleFactor: Float = (Xprefs!!.getInt(LSCLOCK_FONT_TEXT_SCALING, 10) / 10.0).toFloat() + val reduceFactor = if (textScaleFactor > 1f) 0.91f else 1f mVolumeProgress?.progress = volPercent @@ -604,7 +607,7 @@ class LockscreenClock(context: Context?) : ModPack(context!!) { R.string.percentage_text, volPercent ), - textInsideSizePx = (40 * textScaleFactor).toInt(), + textInsideSizePx = (40 * textScaleFactor * reduceFactor).toInt(), iconDrawable = ContextCompat.getDrawable( appContext!!, R.drawable.ic_volume_up @@ -623,6 +626,7 @@ class LockscreenClock(context: Context?) : ModPack(context!!) { val usedMemoryPercentage = (usedMemory * 100 / memoryInfo.totalMem).toInt() val textScaleFactor: Float = (Xprefs!!.getInt(LSCLOCK_FONT_TEXT_SCALING, 10) / 10.0).toFloat() + val reduceFactor = if (textScaleFactor > 1f) 0.91f else 1f mRamUsageArcProgress?.setImageBitmap( generateBitmap( @@ -632,7 +636,7 @@ class LockscreenClock(context: Context?) : ModPack(context!!) { R.string.percentage_text, usedMemoryPercentage ), - textInsideSizePx = (40 * textScaleFactor).toInt(), + textInsideSizePx = (40 * textScaleFactor * reduceFactor).toInt(), textBottom = "RAM", textBottomSizePx = 28 ) diff --git a/app/src/main/res/layout/preview_lockscreen_clock_19.xml b/app/src/main/res/layout/preview_lockscreen_clock_19.xml index ef8423aae..96e647254 100644 --- a/app/src/main/res/layout/preview_lockscreen_clock_19.xml +++ b/app/src/main/res/layout/preview_lockscreen_clock_19.xml @@ -67,7 +67,7 @@ android:drawablePadding="3dp" android:drawableTint="@android:color/white" android:ellipsize="end" - android:gravity="start" + android:gravity="start|center" android:includeFontPadding="false" android:singleLine="true" android:tag="text1|battery_percentage" From 37e331d8c7d8e02875d3bf83cfe117e37c9188af Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Sat, 17 Aug 2024 23:30:52 +0600 Subject: [PATCH 164/369] Lockscreen Clock: Fix battery progressbar tint for clock style 19 --- app/src/main/res/drawable/ios_widget_line_progress_track.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/drawable/ios_widget_line_progress_track.xml b/app/src/main/res/drawable/ios_widget_line_progress_track.xml index fbdcc88d5..af6605a92 100644 --- a/app/src/main/res/drawable/ios_widget_line_progress_track.xml +++ b/app/src/main/res/drawable/ios_widget_line_progress_track.xml @@ -4,8 +4,8 @@ - - + + From ad76050300beddf50bc81f284e7f21858a4d0fea Mon Sep 17 00:00:00 2001 From: Crowdin Bot Date: Sun, 18 Aug 2024 00:15:11 +0000 Subject: [PATCH 165/369] New Crowdin translations by GitHub Action --- app/src/main/res/values-af-rZA/strings.xml | 125 ++- app/src/main/res/values-ar-rSA/strings.xml | 137 ++- app/src/main/res/values-ca-rES/strings.xml | 125 ++- app/src/main/res/values-cs-rCZ/strings.xml | 125 ++- app/src/main/res/values-da-rDK/strings.xml | 125 ++- app/src/main/res/values-de-rDE/strings.xml | 153 ++- app/src/main/res/values-el-rGR/strings.xml | 125 ++- app/src/main/res/values-es-rES/strings.xml | 127 ++- app/src/main/res/values-fa-rIR/strings.xml | 125 ++- app/src/main/res/values-fi-rFI/strings.xml | 125 ++- app/src/main/res/values-fr-rFR/strings.xml | 127 ++- app/src/main/res/values-hu-rHU/strings.xml | 127 ++- app/src/main/res/values-in-rID/strings.xml | 125 ++- app/src/main/res/values-it-rIT/strings.xml | 127 ++- app/src/main/res/values-ja-rJP/strings.xml | 127 ++- app/src/main/res/values-ko-rKR/strings.xml | 125 ++- app/src/main/res/values-nl-rNL/strings.xml | 125 ++- app/src/main/res/values-no-rNO/strings.xml | 125 ++- app/src/main/res/values-pl-rPL/strings.xml | 127 ++- app/src/main/res/values-pt-rBR/strings.xml | 127 ++- app/src/main/res/values-pt-rPT/strings.xml | 125 ++- app/src/main/res/values-ro-rRO/strings.xml | 125 ++- app/src/main/res/values-ru-rRU/strings.xml | 127 ++- app/src/main/res/values-sr-rSP/strings.xml | 125 ++- app/src/main/res/values-sv-rSE/strings.xml | 125 ++- app/src/main/res/values-tr-rTR/strings.xml | 129 ++- app/src/main/res/values-uk-rUA/strings.xml | 1003 +++++++++++--------- app/src/main/res/values-vi-rVN/strings.xml | 125 ++- app/src/main/res/values-zh-rCN/strings.xml | 127 ++- app/src/main/res/values-zh-rTW/strings.xml | 127 ++- 30 files changed, 4191 insertions(+), 501 deletions(-) diff --git a/app/src/main/res/values-af-rZA/strings.xml b/app/src/main/res/values-af-rZA/strings.xml index 7fffb0e05..54ef027ca 100644 --- a/app/src/main/res/values-af-rZA/strings.xml +++ b/app/src/main/res/values-af-rZA/strings.xml @@ -415,6 +415,8 @@ Add custom clock on QS panel Lockscreen Clock Add custom clock on lockscreen + Lockscreen Weather + Add weather on lockscreen Depth Wallpaper Show iOS like depth wallpaper Background Chip @@ -455,6 +457,8 @@ Others Fix Notification Color Fix custom notification style on android 14 + Fix Notification Footer Button Color + Fix custom footer button style on android 14 QS Tile Vertical QS Tile @@ -464,8 +468,10 @@ Text Size Scaling QS Margin QS Elements + Hide QS on Lockscreen + Disable quick settings panel on secured lockscreen Hide Silent Text - Hide silent text shown as header of silent notifications (Requires SystemUI restart) + Hide silent text shown as header of silent notifications Hide Footer Buttons Hide footer buttons shown under notification stack @@ -556,6 +562,8 @@ Show percentage above volume slider Safety Warning Show warning on high volume + Colored Ringer Icon + Enable if selected ringer icon is invisible Pick Header Image Add header image on QS panel\nDo not select file from Recent @@ -623,6 +631,10 @@ Enable Depth Wallpaper Show iOS like depth wallpaper\n%s + Custom Images + Set custom images as depth wallpaper + Show on AOD + Show subject on always on display Fade in AOD Animate wallpaper and fade away in AOD Foreground Image @@ -635,6 +647,13 @@ Move background and foreground layers at different speeds Foreground Sensitivity Background Sensitivity + AI model is downloaded on the device + AI model isn\'t available on the device (yet) + Extracting wallpaper subject… + Extracted wallpaper subject! + Failed to extract wallpaper subject! + AI model is not available! + Must use custom lockscreen clock Status Bar Statusbar Clock Chip @@ -658,6 +677,8 @@ Hide carrier group from QS panel Hide Status Icons Remove time, date and battery icons + Custom Statusbar Clock Size + Set a custom size for Statusbar Clock Statusbar Clock Size Lock Screen Hide LS Carrier @@ -912,4 +933,106 @@ Tap on preview to select Don\'t show again To ensure proper functionality, enabling the Iconify module in LSPosed is mandatory for android 14 and above.\n\nAfter that, enable the fixes from: Tweaks > Xposed Menu > Themes > Others. + + + Unit + Verifying location + Select location + Enter location + Location + Set custom location + Cannot retrieve location! + Network geolocation is disabled.\n\nSet a custom location or enable network location. + Enable + Settings + Automatic updates + Check for new versions once in a while + Check updates over WiFi only + Check for updates in background only when connected to wifi + Metric (\u00b0C) + Imperial (\u00b0F) + Update + Enable + Update interval + 1 hour + 2 hours + 4 hours + 6 hours + 12 hours + Weather + Condition Icon Pack + Find more icon packs + Disabled + Error + Waiting \u2026 + No weather data + Error loading weather data + Waiting\u2026 + Updating\u2026 + Service disabled + Now + Background shadow + Service settings + Unknown + Error loading weather data + Weather + Last update: + No location available + No network found + Location permissions not granted + Select location + Search for a location + Enable Location Permissions + Location permissions are required to fetch weather data. Click OK to open Settings. + + Cloudy + Rainy + Sunny + Stormy + Snowy + Windy + Misty + + Weather on Lockscreen + Show weather on lockscreen + Last Update Time + Weather Provider + OpenWeatherMap API Key + OpenWeatherMap API Key required + Please enter your OpenWeatherMap API key to fetch weather data. + Show Location + Show Location before icon + Show Condition + Show Condition after temperature + Show Humidity + Show Humidity in a new row + Show Wind + Show Wind in a new row + Text Size + Image Size + Text Color + Set custom color for text + Custom Color + Custom color for all text in weather view + Custom location + Set custom location for weather + Custom Margins + Set custom margins for weather + Top margin + Center Layout + Side Margin + Bottom Margin + Center Weather View + Move weather view to center horizontally + + Weather Background Style + Default + Semi-transparent box + Semi-transparent box (round) + Q-Beta pill + Rounded, simple and with accent + Rounded, transparent and with accent + Gradient + Dark with accented borders + Dark with gradient borders diff --git a/app/src/main/res/values-ar-rSA/strings.xml b/app/src/main/res/values-ar-rSA/strings.xml index 5ca177299..9ff6fbaf1 100644 --- a/app/src/main/res/values-ar-rSA/strings.xml +++ b/app/src/main/res/values-ar-rSA/strings.xml @@ -415,6 +415,8 @@ أضف ساعة مخصصة على لوحة QS ساعة قفل الشاشة أضف ساعة مخصصة على شاشة القفل + Lockscreen Weather + Add weather on lockscreen خلفية العمق إظهار خلفية عمق شبيه بالتي في iOS رقاقة الخلفية @@ -455,6 +457,8 @@ آخر إصلاح لون الإشعارات إصلاح نمط الإشعارات المخصص في Android 14 + Fix Notification Footer Button Color + Fix custom footer button style on android 14 بلاطة QS بلاط QS عمودي @@ -464,8 +468,10 @@ تحجيم النص هامش QS عناصر QS + Hide QS on Lockscreen + Disable quick settings panel on secured lockscreen إخفاء النص الصامت - إخفاء النص الصامت المعروض كرأس للإشعارات الصامتة (يتطلب إعادة تشغيل SystemUI) + Hide silent text shown as header of silent notifications إخفاء أزرار التذييل إخفاء أزرار تذييل الصفحة المعروضة تحت تكدس الإشعارات @@ -556,6 +562,8 @@ إظهار النسبة المئوية فوق شريط تمرير الصوت تحذير الأمان إظهار التحذير على مستوى الصوت العالي + Colored Ringer Icon + Enable if selected ringer icon is invisible اختر صورة الرأس أضف صورة العنوان على لوحة QS\nلا تحدد ملفًا من الحالي @@ -609,10 +617,10 @@ استخدام صورة مخصصة استخدم صورة مخصصة لساعة قفل الشاشة. منتقي صورة مخصص - Custom Device Name - Set custom device name for lockscreen clock.\nKeep blank to use System\'s Device Name. - Custom User Name - Set custom user name for lockscreen clock.\nKeep blank to use System\'s User Name. + اسم جهاز مخصص + قم بتعيين اسم جهاز مخصص لساعة شاشة القفل.\nاتركه فارغًا لاستخدام اسم جهاز النظام. + اسم مستخدم مخصص + قم بتعيين اسم مستخدم مخصص لساعة شاشة القفل.\nاتركه فارغًا لاستخدام اسم مستخدم النظام. اختر شحن البطارية تفريغ البطارية @@ -622,7 +630,11 @@ المستخدم تمكين خلفية العمق - إظهار نظام التشغيل iOS كخلفية للعمق\n%s + Show iOS like depth wallpaper\n%s + Custom Images + Set custom images as depth wallpaper + Show on AOD + Show subject on always on display التلاشي في AOD تحريك الخلفية والتلاشي في AOD الصورة الأمامية @@ -635,6 +647,13 @@ حرك الخلفية والطبقات الأمامية بسرعات مختلفة حساسية الطبقة حساسية الخلفية + AI model is downloaded on the device + AI model isn\'t available on the device (yet) + Extracting wallpaper subject… + Extracted wallpaper subject! + Failed to extract wallpaper subject! + AI model is not available! + Must use custom lockscreen clock شريط الحالة رقاقة ساعة شريط الحالة @@ -658,6 +677,8 @@ إخفاء عنوان شركة الإتصال من لوحة QS إخفاء أيقونات الحالة قم بإزالة أيقونات الوقت والتاريخ والبطارية + Custom Statusbar Clock Size + Set a custom size for Statusbar Clock حجم ساعة شريط الحالة شاشة القفل إخفاء LS Carrier @@ -765,7 +786,7 @@ تم حفظ الإعدادات بنجاح لا شيء - Style %d + النمط %d استمر إعداة تشغيل @@ -912,4 +933,106 @@ اضغط على معاينة للتحديد لا تظهر مرة أخرى لضمان الأداء الوظيفي المناسب، يعد تمكين إضافة Iconify في LSPosed أمرًا إلزاميًا لنظام التشغيل Android 14 والإصدارات الأحدث.\n\nبعد ذلك، قم بتمكين الإصلاحات من: Tweaks > قائمة Xposed > السمات > آخرون. + + + Unit + Verifying location + Select location + Enter location + Location + Set custom location + Cannot retrieve location! + Network geolocation is disabled.\n\nSet a custom location or enable network location. + Enable + Settings + Automatic updates + Check for new versions once in a while + Check updates over WiFi only + Check for updates in background only when connected to wifi + Metric (\u00b0C) + Imperial (\u00b0F) + Update + Enable + Update interval + 1 hour + 2 hours + 4 hours + 6 hours + 12 hours + Weather + Condition Icon Pack + Find more icon packs + Disabled + Error + Waiting \u2026 + No weather data + Error loading weather data + Waiting\u2026 + Updating\u2026 + Service disabled + Now + Background shadow + Service settings + Unknown + Error loading weather data + Weather + Last update: + No location available + No network found + Location permissions not granted + Select location + Search for a location + Enable Location Permissions + Location permissions are required to fetch weather data. Click OK to open Settings. + + Cloudy + Rainy + Sunny + Stormy + Snowy + Windy + Misty + + Weather on Lockscreen + Show weather on lockscreen + Last Update Time + Weather Provider + OpenWeatherMap API Key + OpenWeatherMap API Key required + Please enter your OpenWeatherMap API key to fetch weather data. + Show Location + Show Location before icon + Show Condition + Show Condition after temperature + Show Humidity + Show Humidity in a new row + Show Wind + Show Wind in a new row + Text Size + Image Size + Text Color + Set custom color for text + Custom Color + Custom color for all text in weather view + Custom location + Set custom location for weather + Custom Margins + Set custom margins for weather + Top margin + Center Layout + Side Margin + Bottom Margin + Center Weather View + Move weather view to center horizontally + + Weather Background Style + Default + Semi-transparent box + Semi-transparent box (round) + Q-Beta pill + Rounded, simple and with accent + Rounded, transparent and with accent + Gradient + Dark with accented borders + Dark with gradient borders diff --git a/app/src/main/res/values-ca-rES/strings.xml b/app/src/main/res/values-ca-rES/strings.xml index 7fffb0e05..54ef027ca 100644 --- a/app/src/main/res/values-ca-rES/strings.xml +++ b/app/src/main/res/values-ca-rES/strings.xml @@ -415,6 +415,8 @@ Add custom clock on QS panel Lockscreen Clock Add custom clock on lockscreen + Lockscreen Weather + Add weather on lockscreen Depth Wallpaper Show iOS like depth wallpaper Background Chip @@ -455,6 +457,8 @@ Others Fix Notification Color Fix custom notification style on android 14 + Fix Notification Footer Button Color + Fix custom footer button style on android 14 QS Tile Vertical QS Tile @@ -464,8 +468,10 @@ Text Size Scaling QS Margin QS Elements + Hide QS on Lockscreen + Disable quick settings panel on secured lockscreen Hide Silent Text - Hide silent text shown as header of silent notifications (Requires SystemUI restart) + Hide silent text shown as header of silent notifications Hide Footer Buttons Hide footer buttons shown under notification stack @@ -556,6 +562,8 @@ Show percentage above volume slider Safety Warning Show warning on high volume + Colored Ringer Icon + Enable if selected ringer icon is invisible Pick Header Image Add header image on QS panel\nDo not select file from Recent @@ -623,6 +631,10 @@ Enable Depth Wallpaper Show iOS like depth wallpaper\n%s + Custom Images + Set custom images as depth wallpaper + Show on AOD + Show subject on always on display Fade in AOD Animate wallpaper and fade away in AOD Foreground Image @@ -635,6 +647,13 @@ Move background and foreground layers at different speeds Foreground Sensitivity Background Sensitivity + AI model is downloaded on the device + AI model isn\'t available on the device (yet) + Extracting wallpaper subject… + Extracted wallpaper subject! + Failed to extract wallpaper subject! + AI model is not available! + Must use custom lockscreen clock Status Bar Statusbar Clock Chip @@ -658,6 +677,8 @@ Hide carrier group from QS panel Hide Status Icons Remove time, date and battery icons + Custom Statusbar Clock Size + Set a custom size for Statusbar Clock Statusbar Clock Size Lock Screen Hide LS Carrier @@ -912,4 +933,106 @@ Tap on preview to select Don\'t show again To ensure proper functionality, enabling the Iconify module in LSPosed is mandatory for android 14 and above.\n\nAfter that, enable the fixes from: Tweaks > Xposed Menu > Themes > Others. + + + Unit + Verifying location + Select location + Enter location + Location + Set custom location + Cannot retrieve location! + Network geolocation is disabled.\n\nSet a custom location or enable network location. + Enable + Settings + Automatic updates + Check for new versions once in a while + Check updates over WiFi only + Check for updates in background only when connected to wifi + Metric (\u00b0C) + Imperial (\u00b0F) + Update + Enable + Update interval + 1 hour + 2 hours + 4 hours + 6 hours + 12 hours + Weather + Condition Icon Pack + Find more icon packs + Disabled + Error + Waiting \u2026 + No weather data + Error loading weather data + Waiting\u2026 + Updating\u2026 + Service disabled + Now + Background shadow + Service settings + Unknown + Error loading weather data + Weather + Last update: + No location available + No network found + Location permissions not granted + Select location + Search for a location + Enable Location Permissions + Location permissions are required to fetch weather data. Click OK to open Settings. + + Cloudy + Rainy + Sunny + Stormy + Snowy + Windy + Misty + + Weather on Lockscreen + Show weather on lockscreen + Last Update Time + Weather Provider + OpenWeatherMap API Key + OpenWeatherMap API Key required + Please enter your OpenWeatherMap API key to fetch weather data. + Show Location + Show Location before icon + Show Condition + Show Condition after temperature + Show Humidity + Show Humidity in a new row + Show Wind + Show Wind in a new row + Text Size + Image Size + Text Color + Set custom color for text + Custom Color + Custom color for all text in weather view + Custom location + Set custom location for weather + Custom Margins + Set custom margins for weather + Top margin + Center Layout + Side Margin + Bottom Margin + Center Weather View + Move weather view to center horizontally + + Weather Background Style + Default + Semi-transparent box + Semi-transparent box (round) + Q-Beta pill + Rounded, simple and with accent + Rounded, transparent and with accent + Gradient + Dark with accented borders + Dark with gradient borders diff --git a/app/src/main/res/values-cs-rCZ/strings.xml b/app/src/main/res/values-cs-rCZ/strings.xml index 15750bbe6..f0f559eb4 100644 --- a/app/src/main/res/values-cs-rCZ/strings.xml +++ b/app/src/main/res/values-cs-rCZ/strings.xml @@ -415,6 +415,8 @@ Add custom clock on QS panel Lockscreen Clock Add custom clock on lockscreen + Lockscreen Weather + Add weather on lockscreen Depth Wallpaper Show iOS like depth wallpaper Background Chip @@ -455,6 +457,8 @@ Others Fix Notification Color Fix custom notification style on android 14 + Fix Notification Footer Button Color + Fix custom footer button style on android 14 QS Tile Vertical QS Tile @@ -464,8 +468,10 @@ Text Size Scaling QS Margin QS Elements + Hide QS on Lockscreen + Disable quick settings panel on secured lockscreen Hide Silent Text - Hide silent text shown as header of silent notifications (Requires SystemUI restart) + Hide silent text shown as header of silent notifications Hide Footer Buttons Hide footer buttons shown under notification stack @@ -556,6 +562,8 @@ Show percentage above volume slider Safety Warning Show warning on high volume + Colored Ringer Icon + Enable if selected ringer icon is invisible Pick Header Image Add header image on QS panel\nDo not select file from Recent @@ -623,6 +631,10 @@ Enable Depth Wallpaper Show iOS like depth wallpaper\n%s + Custom Images + Set custom images as depth wallpaper + Show on AOD + Show subject on always on display Fade in AOD Animate wallpaper and fade away in AOD Foreground Image @@ -635,6 +647,13 @@ Move background and foreground layers at different speeds Foreground Sensitivity Background Sensitivity + AI model is downloaded on the device + AI model isn\'t available on the device (yet) + Extracting wallpaper subject… + Extracted wallpaper subject! + Failed to extract wallpaper subject! + AI model is not available! + Must use custom lockscreen clock Status Bar Statusbar Clock Chip @@ -658,6 +677,8 @@ Hide carrier group from QS panel Hide Status Icons Remove time, date and battery icons + Custom Statusbar Clock Size + Set a custom size for Statusbar Clock Statusbar Clock Size Lock Screen Hide LS Carrier @@ -912,4 +933,106 @@ Tap on preview to select Don\'t show again To ensure proper functionality, enabling the Iconify module in LSPosed is mandatory for android 14 and above.\n\nAfter that, enable the fixes from: Tweaks > Xposed Menu > Themes > Others. + + + Unit + Verifying location + Select location + Enter location + Location + Set custom location + Cannot retrieve location! + Network geolocation is disabled.\n\nSet a custom location or enable network location. + Enable + Settings + Automatic updates + Check for new versions once in a while + Check updates over WiFi only + Check for updates in background only when connected to wifi + Metric (\u00b0C) + Imperial (\u00b0F) + Update + Enable + Update interval + 1 hour + 2 hours + 4 hours + 6 hours + 12 hours + Weather + Condition Icon Pack + Find more icon packs + Disabled + Error + Waiting \u2026 + No weather data + Error loading weather data + Waiting\u2026 + Updating\u2026 + Service disabled + Now + Background shadow + Service settings + Unknown + Error loading weather data + Weather + Last update: + No location available + No network found + Location permissions not granted + Select location + Search for a location + Enable Location Permissions + Location permissions are required to fetch weather data. Click OK to open Settings. + + Cloudy + Rainy + Sunny + Stormy + Snowy + Windy + Misty + + Weather on Lockscreen + Show weather on lockscreen + Last Update Time + Weather Provider + OpenWeatherMap API Key + OpenWeatherMap API Key required + Please enter your OpenWeatherMap API key to fetch weather data. + Show Location + Show Location before icon + Show Condition + Show Condition after temperature + Show Humidity + Show Humidity in a new row + Show Wind + Show Wind in a new row + Text Size + Image Size + Text Color + Set custom color for text + Custom Color + Custom color for all text in weather view + Custom location + Set custom location for weather + Custom Margins + Set custom margins for weather + Top margin + Center Layout + Side Margin + Bottom Margin + Center Weather View + Move weather view to center horizontally + + Weather Background Style + Default + Semi-transparent box + Semi-transparent box (round) + Q-Beta pill + Rounded, simple and with accent + Rounded, transparent and with accent + Gradient + Dark with accented borders + Dark with gradient borders diff --git a/app/src/main/res/values-da-rDK/strings.xml b/app/src/main/res/values-da-rDK/strings.xml index 7fffb0e05..54ef027ca 100644 --- a/app/src/main/res/values-da-rDK/strings.xml +++ b/app/src/main/res/values-da-rDK/strings.xml @@ -415,6 +415,8 @@ Add custom clock on QS panel Lockscreen Clock Add custom clock on lockscreen + Lockscreen Weather + Add weather on lockscreen Depth Wallpaper Show iOS like depth wallpaper Background Chip @@ -455,6 +457,8 @@ Others Fix Notification Color Fix custom notification style on android 14 + Fix Notification Footer Button Color + Fix custom footer button style on android 14 QS Tile Vertical QS Tile @@ -464,8 +468,10 @@ Text Size Scaling QS Margin QS Elements + Hide QS on Lockscreen + Disable quick settings panel on secured lockscreen Hide Silent Text - Hide silent text shown as header of silent notifications (Requires SystemUI restart) + Hide silent text shown as header of silent notifications Hide Footer Buttons Hide footer buttons shown under notification stack @@ -556,6 +562,8 @@ Show percentage above volume slider Safety Warning Show warning on high volume + Colored Ringer Icon + Enable if selected ringer icon is invisible Pick Header Image Add header image on QS panel\nDo not select file from Recent @@ -623,6 +631,10 @@ Enable Depth Wallpaper Show iOS like depth wallpaper\n%s + Custom Images + Set custom images as depth wallpaper + Show on AOD + Show subject on always on display Fade in AOD Animate wallpaper and fade away in AOD Foreground Image @@ -635,6 +647,13 @@ Move background and foreground layers at different speeds Foreground Sensitivity Background Sensitivity + AI model is downloaded on the device + AI model isn\'t available on the device (yet) + Extracting wallpaper subject… + Extracted wallpaper subject! + Failed to extract wallpaper subject! + AI model is not available! + Must use custom lockscreen clock Status Bar Statusbar Clock Chip @@ -658,6 +677,8 @@ Hide carrier group from QS panel Hide Status Icons Remove time, date and battery icons + Custom Statusbar Clock Size + Set a custom size for Statusbar Clock Statusbar Clock Size Lock Screen Hide LS Carrier @@ -912,4 +933,106 @@ Tap on preview to select Don\'t show again To ensure proper functionality, enabling the Iconify module in LSPosed is mandatory for android 14 and above.\n\nAfter that, enable the fixes from: Tweaks > Xposed Menu > Themes > Others. + + + Unit + Verifying location + Select location + Enter location + Location + Set custom location + Cannot retrieve location! + Network geolocation is disabled.\n\nSet a custom location or enable network location. + Enable + Settings + Automatic updates + Check for new versions once in a while + Check updates over WiFi only + Check for updates in background only when connected to wifi + Metric (\u00b0C) + Imperial (\u00b0F) + Update + Enable + Update interval + 1 hour + 2 hours + 4 hours + 6 hours + 12 hours + Weather + Condition Icon Pack + Find more icon packs + Disabled + Error + Waiting \u2026 + No weather data + Error loading weather data + Waiting\u2026 + Updating\u2026 + Service disabled + Now + Background shadow + Service settings + Unknown + Error loading weather data + Weather + Last update: + No location available + No network found + Location permissions not granted + Select location + Search for a location + Enable Location Permissions + Location permissions are required to fetch weather data. Click OK to open Settings. + + Cloudy + Rainy + Sunny + Stormy + Snowy + Windy + Misty + + Weather on Lockscreen + Show weather on lockscreen + Last Update Time + Weather Provider + OpenWeatherMap API Key + OpenWeatherMap API Key required + Please enter your OpenWeatherMap API key to fetch weather data. + Show Location + Show Location before icon + Show Condition + Show Condition after temperature + Show Humidity + Show Humidity in a new row + Show Wind + Show Wind in a new row + Text Size + Image Size + Text Color + Set custom color for text + Custom Color + Custom color for all text in weather view + Custom location + Set custom location for weather + Custom Margins + Set custom margins for weather + Top margin + Center Layout + Side Margin + Bottom Margin + Center Weather View + Move weather view to center horizontally + + Weather Background Style + Default + Semi-transparent box + Semi-transparent box (round) + Q-Beta pill + Rounded, simple and with accent + Rounded, transparent and with accent + Gradient + Dark with accented borders + Dark with gradient borders diff --git a/app/src/main/res/values-de-rDE/strings.xml b/app/src/main/res/values-de-rDE/strings.xml index 449c9b3c1..48f0fc21f 100644 --- a/app/src/main/res/values-de-rDE/strings.xml +++ b/app/src/main/res/values-de-rDE/strings.xml @@ -37,8 +37,8 @@ System Icons verändern Signal Icons Change system signal icons - WiFi Icons - Change system WiFi icons + WiFi Symbole + Ändere System WiFi Symbole Helligkeitsregler Verändere Fortschrittsbalken QS Kacheln @@ -415,6 +415,8 @@ Füge eigene Headeruhr zum QS-Panel hinzu Sperrbildschirmuhr Füge eigne Uhr auf den Sperrbildschirm hinzu + Lockscreen Weather + Add weather on lockscreen Tiefes Hintergrundbild Verwende iOS-mäßiges Tiefenhintergrundbild Hintergrund-Chip @@ -456,17 +458,21 @@ transparent machen Anderes Repariere Benachrichtungsfarbe Repariere benutzerdefinierten Benachrichtungsstil auf Android 14 + Fix Notification Footer Button Color + Fix custom footer button style on android 14 QS Kachel Vertikale QS Kacheln Zeige Text unter QS Symbol Verstecke QS Beschreibung Nur mit vertikalen Kachen benutzen - Text Size Scaling + Text Größe Skalierung QS Abstand QS Elemente + Hide QS on Lockscreen + Disable quick settings panel on secured lockscreen Lautloser Text ausblenden - Hide silent text shown as header of silent notifications (Requires SystemUI restart) + Hide silent text shown as header of silent notifications Fußzeilentasten verbergen Hide footer buttons shown under notification stack @@ -553,10 +559,12 @@ transparent machen Gepunktetes Kreissymbol Filled Circle Battery - Volume Percentage - Show percentage above volume slider + Lautstärke Prozentsatz + Zeige Prozentsatz über dem Lautstärkeregler Sicherheitswarnung Warnung bei hoher Lautstärke anzeigen + Colored Ringer Icon + Enable if selected ringer icon is invisible Header-Bild auswählen Headerbild aufs QS-Panel hinzufügen\nNicht \"Zuletzt benutzt\" verwenden @@ -607,13 +615,13 @@ transparent machen Unterer Abstand Weißer Text Zwinge alle Farben weiß zu sein - Use Custom Image - Use custom image for lockscreen clock. - Custom Image Picker - Custom Device Name - Set custom device name for lockscreen clock.\nKeep blank to use System\'s Device Name. - Custom User Name - Set custom user name for lockscreen clock.\nKeep blank to use System\'s User Name. + Nutze benutzerdefiniertes Bild + Nutze benutzerdefiniertes Bild für Sperrbildschirm Uhr. + Benutzerdefinierte Bildauswahlmenü + Benutzerdefinierter Gerätename + Legen Sie einen benutzerdefinierten Gerätenamen für die Sperrbildschirm Uhr fest.\nLeer lassen, um den Gerätenamen des Systems zu verwenden. + Benutzerdefinierter Benutzername + Legen Sie einen benutzerdefinierten Gerätenamen für die Sperrbildschirm Uhr fest.\nLeer lassen, um den Gerätenamen des Systems zu verwenden. Auswählen Akku ladend Akku entladend @@ -623,7 +631,11 @@ transparent machen Benutzer Aktiviere Tiefenwallpaper - Zeige ein Wallpaper mit iOS ähnlichem Tiefeneffekt\n%s + Show iOS like depth wallpaper\n%s + Custom Images + Set custom images as depth wallpaper + Show on AOD + Show subject on always on display Einblenden AOD Animiere Hintergrundbild und verblassen im AOD Vordergrund Bild @@ -636,6 +648,13 @@ transparent machen Move background and foreground layers at different speeds Foreground Sensitivity Background Sensitivity + AI model is downloaded on the device + AI model isn\'t available on the device (yet) + Extracting wallpaper subject… + Extracted wallpaper subject! + Failed to extract wallpaper subject! + AI model is not available! + Must use custom lockscreen clock Statusleiste Statusleiste Uhr-Chip @@ -659,6 +678,8 @@ transparent machen Mobilfunkanbieter vom QS-Panel verbergen Statussymbole verbergen Zeit, Datum und Batteriesymbole verbergen + Custom Statusbar Clock Size + Set a custom size for Statusbar Clock Statusbar Clock Size Sperrbildschirm Verstecke Netzanbieter @@ -766,7 +787,7 @@ transparent machen Einstellungen Speichern erfolgreich Nichts - Style %d + Stil %d Weiter Neustart @@ -913,4 +934,106 @@ transparent machen Tippe auf Vorschau um auszuwählen Nicht erneut zeigen Um eine korrekte Funktionalität zu gewährleisten, ist die Aktivierung des Iconify Moduls in LSPosed für Android 14 und höher zwingend.\n\nDanach aktivieren Sie die Anpassungen von: Tweaks > Xposed-Menü > Themen > Andere. + + + Unit + Verifying location + Select location + Enter location + Location + Set custom location + Cannot retrieve location! + Network geolocation is disabled.\n\nSet a custom location or enable network location. + Enable + Settings + Automatic updates + Check for new versions once in a while + Check updates over WiFi only + Check for updates in background only when connected to wifi + Metric (\u00b0C) + Imperial (\u00b0F) + Update + Enable + Update interval + 1 hour + 2 hours + 4 hours + 6 hours + 12 hours + Weather + Condition Icon Pack + Find more icon packs + Disabled + Error + Waiting \u2026 + No weather data + Error loading weather data + Waiting\u2026 + Updating\u2026 + Service disabled + Now + Background shadow + Service settings + Unknown + Error loading weather data + Weather + Last update: + No location available + No network found + Location permissions not granted + Select location + Search for a location + Enable Location Permissions + Location permissions are required to fetch weather data. Click OK to open Settings. + + Cloudy + Rainy + Sunny + Stormy + Snowy + Windy + Misty + + Weather on Lockscreen + Show weather on lockscreen + Last Update Time + Weather Provider + OpenWeatherMap API Key + OpenWeatherMap API Key required + Please enter your OpenWeatherMap API key to fetch weather data. + Show Location + Show Location before icon + Show Condition + Show Condition after temperature + Show Humidity + Show Humidity in a new row + Show Wind + Show Wind in a new row + Text Size + Image Size + Text Color + Set custom color for text + Custom Color + Custom color for all text in weather view + Custom location + Set custom location for weather + Custom Margins + Set custom margins for weather + Top margin + Center Layout + Side Margin + Bottom Margin + Center Weather View + Move weather view to center horizontally + + Weather Background Style + Default + Semi-transparent box + Semi-transparent box (round) + Q-Beta pill + Rounded, simple and with accent + Rounded, transparent and with accent + Gradient + Dark with accented borders + Dark with gradient borders diff --git a/app/src/main/res/values-el-rGR/strings.xml b/app/src/main/res/values-el-rGR/strings.xml index f4a661c1f..3f55be749 100644 --- a/app/src/main/res/values-el-rGR/strings.xml +++ b/app/src/main/res/values-el-rGR/strings.xml @@ -415,6 +415,8 @@ Add custom clock on QS panel Lockscreen Clock Add custom clock on lockscreen + Lockscreen Weather + Add weather on lockscreen Depth Wallpaper Show iOS like depth wallpaper Background Chip @@ -455,6 +457,8 @@ Others Fix Notification Color Fix custom notification style on android 14 + Fix Notification Footer Button Color + Fix custom footer button style on android 14 QS Tile Vertical QS Tile @@ -464,8 +468,10 @@ Text Size Scaling QS Margin QS Elements + Hide QS on Lockscreen + Disable quick settings panel on secured lockscreen Hide Silent Text - Hide silent text shown as header of silent notifications (Requires SystemUI restart) + Hide silent text shown as header of silent notifications Hide Footer Buttons Hide footer buttons shown under notification stack @@ -556,6 +562,8 @@ Show percentage above volume slider Safety Warning Show warning on high volume + Colored Ringer Icon + Enable if selected ringer icon is invisible Pick Header Image Add header image on QS panel\nDo not select file from Recent @@ -623,6 +631,10 @@ Enable Depth Wallpaper Show iOS like depth wallpaper\n%s + Custom Images + Set custom images as depth wallpaper + Show on AOD + Show subject on always on display Fade in AOD Animate wallpaper and fade away in AOD Foreground Image @@ -635,6 +647,13 @@ Move background and foreground layers at different speeds Foreground Sensitivity Background Sensitivity + AI model is downloaded on the device + AI model isn\'t available on the device (yet) + Extracting wallpaper subject… + Extracted wallpaper subject! + Failed to extract wallpaper subject! + AI model is not available! + Must use custom lockscreen clock Status Bar Statusbar Clock Chip @@ -658,6 +677,8 @@ Hide carrier group from QS panel Hide Status Icons Remove time, date and battery icons + Custom Statusbar Clock Size + Set a custom size for Statusbar Clock Statusbar Clock Size Lock Screen Hide LS Carrier @@ -912,4 +933,106 @@ Tap on preview to select Don\'t show again To ensure proper functionality, enabling the Iconify module in LSPosed is mandatory for android 14 and above.\n\nAfter that, enable the fixes from: Tweaks > Xposed Menu > Themes > Others. + + + Unit + Verifying location + Select location + Enter location + Location + Set custom location + Cannot retrieve location! + Network geolocation is disabled.\n\nSet a custom location or enable network location. + Enable + Settings + Automatic updates + Check for new versions once in a while + Check updates over WiFi only + Check for updates in background only when connected to wifi + Metric (\u00b0C) + Imperial (\u00b0F) + Update + Enable + Update interval + 1 hour + 2 hours + 4 hours + 6 hours + 12 hours + Weather + Condition Icon Pack + Find more icon packs + Disabled + Error + Waiting \u2026 + No weather data + Error loading weather data + Waiting\u2026 + Updating\u2026 + Service disabled + Now + Background shadow + Service settings + Unknown + Error loading weather data + Weather + Last update: + No location available + No network found + Location permissions not granted + Select location + Search for a location + Enable Location Permissions + Location permissions are required to fetch weather data. Click OK to open Settings. + + Cloudy + Rainy + Sunny + Stormy + Snowy + Windy + Misty + + Weather on Lockscreen + Show weather on lockscreen + Last Update Time + Weather Provider + OpenWeatherMap API Key + OpenWeatherMap API Key required + Please enter your OpenWeatherMap API key to fetch weather data. + Show Location + Show Location before icon + Show Condition + Show Condition after temperature + Show Humidity + Show Humidity in a new row + Show Wind + Show Wind in a new row + Text Size + Image Size + Text Color + Set custom color for text + Custom Color + Custom color for all text in weather view + Custom location + Set custom location for weather + Custom Margins + Set custom margins for weather + Top margin + Center Layout + Side Margin + Bottom Margin + Center Weather View + Move weather view to center horizontally + + Weather Background Style + Default + Semi-transparent box + Semi-transparent box (round) + Q-Beta pill + Rounded, simple and with accent + Rounded, transparent and with accent + Gradient + Dark with accented borders + Dark with gradient borders diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index 3ef74e742..80c4b2869 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -415,6 +415,8 @@ Añade un reloj personalizado en el panel Reloj de la pantalla de bloqueo Añade un reloj personalizado en la pantalla de bloqueo + Lockscreen Weather + Add weather on lockscreen Fondo de pantalla con profundidad Mostrar fondo de pantalla con profundidad parecido a iOS Reloj con fondo @@ -455,6 +457,8 @@ Otros Corregir color de las notificaciones Corregir estilo de notificaciones personalizado en Android 14 + Fix Notification Footer Button Color + Fix custom footer button style on android 14 Mosaico de AR Botones de Ajustes Rápidos verticales @@ -464,8 +468,10 @@ Escala del tamaño del texto Margen de AR Elementos de AR + Hide QS on Lockscreen + Disable quick settings panel on secured lockscreen Ocultar texto silencioso - Ocultar el texto silencioso mostrado como el encabezado de las notificaciones silenciosas (requiere un reinicio de la IU del sistema) + Hide silent text shown as header of silent notifications Ocultar botones del pie de página Ocultar los botones de pie de página mostrados en la lista de notificaciones @@ -556,6 +562,8 @@ Mostrar porcentaje sobre el deslizador del volumen Advertencia de seguridad Mostrar advertencia en volumen alto + Colored Ringer Icon + Enable if selected ringer icon is invisible Seleccionar imagen de encabezado Añadir imagen de encabezado en el panel de Ajustes Rápidos\nNo selecciones archivos de \"Recientes\" @@ -622,7 +630,11 @@ Usuario Habilitar fondo de pantalla con profundidad - Mostrar fondo de pantalla parecido a iOS\n%s + Show iOS like depth wallpaper\n%s + Custom Images + Set custom images as depth wallpaper + Show on AOD + Show subject on always on display Desvanecer en AOD Anima el fondo de pantalla y desvanecer en AOD Imagen del primer plano @@ -635,6 +647,13 @@ Mover capas de fondo y primer plano a diferentes velocidades Sensibilidad del primer plano Sensibilidad del fondo + AI model is downloaded on the device + AI model isn\'t available on the device (yet) + Extracting wallpaper subject… + Extracted wallpaper subject! + Failed to extract wallpaper subject! + AI model is not available! + Must use custom lockscreen clock Barra de estado Ficha de reloj de la barra de estado @@ -658,6 +677,8 @@ Ocultar el grupo del operador del panel de Ajustes Rápidos Ocultar iconos de estado Quitar la hora, la fecha y los iconos de la batería + Custom Statusbar Clock Size + Set a custom size for Statusbar Clock Statusbar Clock Size Pantalla de bloqueo Ocultar Transportista en Pantalla de Bloqueo @@ -912,4 +933,106 @@ Pulsa en vista previa para seleccionar No mostrar de nuevo Para asegurar una funcionalidad adecuada, habilitar el módulo de Iconify en LSPosed es obligatorio para Android 14 o superior.\n\nDespués de eso, habilita las correcciones de: Ajustes > Menu de Xposed > Temas > Otros. + + + Unit + Verifying location + Select location + Enter location + Location + Set custom location + Cannot retrieve location! + Network geolocation is disabled.\n\nSet a custom location or enable network location. + Enable + Settings + Automatic updates + Check for new versions once in a while + Check updates over WiFi only + Check for updates in background only when connected to wifi + Metric (\u00b0C) + Imperial (\u00b0F) + Update + Enable + Update interval + 1 hour + 2 hours + 4 hours + 6 hours + 12 hours + Weather + Condition Icon Pack + Find more icon packs + Disabled + Error + Waiting \u2026 + No weather data + Error loading weather data + Waiting\u2026 + Updating\u2026 + Service disabled + Now + Background shadow + Service settings + Unknown + Error loading weather data + Weather + Last update: + No location available + No network found + Location permissions not granted + Select location + Search for a location + Enable Location Permissions + Location permissions are required to fetch weather data. Click OK to open Settings. + + Cloudy + Rainy + Sunny + Stormy + Snowy + Windy + Misty + + Weather on Lockscreen + Show weather on lockscreen + Last Update Time + Weather Provider + OpenWeatherMap API Key + OpenWeatherMap API Key required + Please enter your OpenWeatherMap API key to fetch weather data. + Show Location + Show Location before icon + Show Condition + Show Condition after temperature + Show Humidity + Show Humidity in a new row + Show Wind + Show Wind in a new row + Text Size + Image Size + Text Color + Set custom color for text + Custom Color + Custom color for all text in weather view + Custom location + Set custom location for weather + Custom Margins + Set custom margins for weather + Top margin + Center Layout + Side Margin + Bottom Margin + Center Weather View + Move weather view to center horizontally + + Weather Background Style + Default + Semi-transparent box + Semi-transparent box (round) + Q-Beta pill + Rounded, simple and with accent + Rounded, transparent and with accent + Gradient + Dark with accented borders + Dark with gradient borders diff --git a/app/src/main/res/values-fa-rIR/strings.xml b/app/src/main/res/values-fa-rIR/strings.xml index f80041e1d..5af5985d7 100644 --- a/app/src/main/res/values-fa-rIR/strings.xml +++ b/app/src/main/res/values-fa-rIR/strings.xml @@ -415,6 +415,8 @@ اصافه کردن ساعت سفارشی به نوارابزار قفل صفحه تغییر ظاهر قفل صفحه + Lockscreen Weather + Add weather on lockscreen Depth Wallpaper Show iOS like depth wallpaper پس‌زمینه رنگی @@ -455,6 +457,8 @@ Others Fix Notification Color Fix custom notification style on android 14 + Fix Notification Footer Button Color + Fix custom footer button style on android 14 QS Tile عمودی کردن کلید‌های نوارابزار @@ -464,8 +468,10 @@ Text Size Scaling QS Margin QS Elements + Hide QS on Lockscreen + Disable quick settings panel on secured lockscreen Hide Silent Text - Hide silent text shown as header of silent notifications (Requires SystemUI restart) + Hide silent text shown as header of silent notifications Hide Footer Buttons Hide footer buttons shown under notification stack @@ -556,6 +562,8 @@ نمایش درصد باتری بالای نوار تنظیم صدا هشدار ایمنی هشدار ایمنی در حجم صدای بالا + Colored Ringer Icon + Enable if selected ringer icon is invisible انتخاب فایل تصویر هدر اصافه کردن تصویر به هدر نوارابزار\nفایل تصویر را از بخش فایل‌های اخیر انتخاب نکنید @@ -623,6 +631,10 @@ Enable Depth Wallpaper Show iOS like depth wallpaper\n%s + Custom Images + Set custom images as depth wallpaper + Show on AOD + Show subject on always on display Fade in AOD Animate wallpaper and fade away in AOD Foreground Image @@ -635,6 +647,13 @@ Move background and foreground layers at different speeds Foreground Sensitivity Background Sensitivity + AI model is downloaded on the device + AI model isn\'t available on the device (yet) + Extracting wallpaper subject… + Extracted wallpaper subject! + Failed to extract wallpaper subject! + AI model is not available! + Must use custom lockscreen clock Status Bar پیش‌زمینه رنگی برای ساعت نوار اعلان @@ -658,6 +677,8 @@ مخفی کردن اپراتور از نوارابزار مخفی کردن آیکون‌های نوار اعلان مخفی کردن آیکون ساعت و تارخ و باتری + Custom Statusbar Clock Size + Set a custom size for Statusbar Clock Statusbar Clock Size Lock Screen Hide LS Carrier @@ -912,4 +933,106 @@ Tap on preview to select Don\'t show again To ensure proper functionality, enabling the Iconify module in LSPosed is mandatory for android 14 and above.\n\nAfter that, enable the fixes from: Tweaks > Xposed Menu > Themes > Others. + + + Unit + Verifying location + Select location + Enter location + Location + Set custom location + Cannot retrieve location! + Network geolocation is disabled.\n\nSet a custom location or enable network location. + Enable + Settings + Automatic updates + Check for new versions once in a while + Check updates over WiFi only + Check for updates in background only when connected to wifi + Metric (\u00b0C) + Imperial (\u00b0F) + Update + Enable + Update interval + 1 hour + 2 hours + 4 hours + 6 hours + 12 hours + Weather + Condition Icon Pack + Find more icon packs + Disabled + Error + Waiting \u2026 + No weather data + Error loading weather data + Waiting\u2026 + Updating\u2026 + Service disabled + Now + Background shadow + Service settings + Unknown + Error loading weather data + Weather + Last update: + No location available + No network found + Location permissions not granted + Select location + Search for a location + Enable Location Permissions + Location permissions are required to fetch weather data. Click OK to open Settings. + + Cloudy + Rainy + Sunny + Stormy + Snowy + Windy + Misty + + Weather on Lockscreen + Show weather on lockscreen + Last Update Time + Weather Provider + OpenWeatherMap API Key + OpenWeatherMap API Key required + Please enter your OpenWeatherMap API key to fetch weather data. + Show Location + Show Location before icon + Show Condition + Show Condition after temperature + Show Humidity + Show Humidity in a new row + Show Wind + Show Wind in a new row + Text Size + Image Size + Text Color + Set custom color for text + Custom Color + Custom color for all text in weather view + Custom location + Set custom location for weather + Custom Margins + Set custom margins for weather + Top margin + Center Layout + Side Margin + Bottom Margin + Center Weather View + Move weather view to center horizontally + + Weather Background Style + Default + Semi-transparent box + Semi-transparent box (round) + Q-Beta pill + Rounded, simple and with accent + Rounded, transparent and with accent + Gradient + Dark with accented borders + Dark with gradient borders diff --git a/app/src/main/res/values-fi-rFI/strings.xml b/app/src/main/res/values-fi-rFI/strings.xml index 7fffb0e05..54ef027ca 100644 --- a/app/src/main/res/values-fi-rFI/strings.xml +++ b/app/src/main/res/values-fi-rFI/strings.xml @@ -415,6 +415,8 @@ Add custom clock on QS panel Lockscreen Clock Add custom clock on lockscreen + Lockscreen Weather + Add weather on lockscreen Depth Wallpaper Show iOS like depth wallpaper Background Chip @@ -455,6 +457,8 @@ Others Fix Notification Color Fix custom notification style on android 14 + Fix Notification Footer Button Color + Fix custom footer button style on android 14 QS Tile Vertical QS Tile @@ -464,8 +468,10 @@ Text Size Scaling QS Margin QS Elements + Hide QS on Lockscreen + Disable quick settings panel on secured lockscreen Hide Silent Text - Hide silent text shown as header of silent notifications (Requires SystemUI restart) + Hide silent text shown as header of silent notifications Hide Footer Buttons Hide footer buttons shown under notification stack @@ -556,6 +562,8 @@ Show percentage above volume slider Safety Warning Show warning on high volume + Colored Ringer Icon + Enable if selected ringer icon is invisible Pick Header Image Add header image on QS panel\nDo not select file from Recent @@ -623,6 +631,10 @@ Enable Depth Wallpaper Show iOS like depth wallpaper\n%s + Custom Images + Set custom images as depth wallpaper + Show on AOD + Show subject on always on display Fade in AOD Animate wallpaper and fade away in AOD Foreground Image @@ -635,6 +647,13 @@ Move background and foreground layers at different speeds Foreground Sensitivity Background Sensitivity + AI model is downloaded on the device + AI model isn\'t available on the device (yet) + Extracting wallpaper subject… + Extracted wallpaper subject! + Failed to extract wallpaper subject! + AI model is not available! + Must use custom lockscreen clock Status Bar Statusbar Clock Chip @@ -658,6 +677,8 @@ Hide carrier group from QS panel Hide Status Icons Remove time, date and battery icons + Custom Statusbar Clock Size + Set a custom size for Statusbar Clock Statusbar Clock Size Lock Screen Hide LS Carrier @@ -912,4 +933,106 @@ Tap on preview to select Don\'t show again To ensure proper functionality, enabling the Iconify module in LSPosed is mandatory for android 14 and above.\n\nAfter that, enable the fixes from: Tweaks > Xposed Menu > Themes > Others. + + + Unit + Verifying location + Select location + Enter location + Location + Set custom location + Cannot retrieve location! + Network geolocation is disabled.\n\nSet a custom location or enable network location. + Enable + Settings + Automatic updates + Check for new versions once in a while + Check updates over WiFi only + Check for updates in background only when connected to wifi + Metric (\u00b0C) + Imperial (\u00b0F) + Update + Enable + Update interval + 1 hour + 2 hours + 4 hours + 6 hours + 12 hours + Weather + Condition Icon Pack + Find more icon packs + Disabled + Error + Waiting \u2026 + No weather data + Error loading weather data + Waiting\u2026 + Updating\u2026 + Service disabled + Now + Background shadow + Service settings + Unknown + Error loading weather data + Weather + Last update: + No location available + No network found + Location permissions not granted + Select location + Search for a location + Enable Location Permissions + Location permissions are required to fetch weather data. Click OK to open Settings. + + Cloudy + Rainy + Sunny + Stormy + Snowy + Windy + Misty + + Weather on Lockscreen + Show weather on lockscreen + Last Update Time + Weather Provider + OpenWeatherMap API Key + OpenWeatherMap API Key required + Please enter your OpenWeatherMap API key to fetch weather data. + Show Location + Show Location before icon + Show Condition + Show Condition after temperature + Show Humidity + Show Humidity in a new row + Show Wind + Show Wind in a new row + Text Size + Image Size + Text Color + Set custom color for text + Custom Color + Custom color for all text in weather view + Custom location + Set custom location for weather + Custom Margins + Set custom margins for weather + Top margin + Center Layout + Side Margin + Bottom Margin + Center Weather View + Move weather view to center horizontally + + Weather Background Style + Default + Semi-transparent box + Semi-transparent box (round) + Q-Beta pill + Rounded, simple and with accent + Rounded, transparent and with accent + Gradient + Dark with accented borders + Dark with gradient borders diff --git a/app/src/main/res/values-fr-rFR/strings.xml b/app/src/main/res/values-fr-rFR/strings.xml index 48adccd81..fc9aec56f 100644 --- a/app/src/main/res/values-fr-rFR/strings.xml +++ b/app/src/main/res/values-fr-rFR/strings.xml @@ -415,6 +415,8 @@ Ajout d\'une horloge personnalisée sur le panneau QS Horloge de l\'écran de verrouillage Ajouter une horloge personnalisée sur l\'écran de verrouillage + Lockscreen Weather + Add weather on lockscreen Depth Wallpaper Show iOS like depth wallpaper Puce de fond @@ -455,6 +457,8 @@ Autres Correction de la couleur des notifications Correction du style de notification personnalisé sur Android 14 + Fix Notification Footer Button Color + Fix custom footer button style on android 14 Tuiles QS Tuiles QS verticales @@ -464,8 +468,10 @@ Text Size Scaling Marges QS QS Elements + Hide QS on Lockscreen + Disable quick settings panel on secured lockscreen Hide Silent Text - Hide silent text shown as header of silent notifications (Requires SystemUI restart) + Hide silent text shown as header of silent notifications Hide Footer Buttons Hide footer buttons shown under notification stack @@ -556,6 +562,8 @@ Show percentage above volume slider Safety Warning Show warning on high volume + Colored Ringer Icon + Enable if selected ringer icon is invisible Pick Header Image Add header image on QS panel\nDo not select file from Recent @@ -622,7 +630,11 @@ User Activer le fond d\'écran en profondeur - Afficher un fond d\'écran comme dans iOS en profondeur.\n%s + Show iOS like depth wallpaper\n%s + Custom Images + Set custom images as depth wallpaper + Show on AOD + Show subject on always on display Fondu en AOD Animer le fond d\'écran et le faire disparaître dans AOD Image de devant @@ -635,6 +647,13 @@ Move background and foreground layers at different speeds Foreground Sensitivity Background Sensitivity + AI model is downloaded on the device + AI model isn\'t available on the device (yet) + Extracting wallpaper subject… + Extracted wallpaper subject! + Failed to extract wallpaper subject! + AI model is not available! + Must use custom lockscreen clock Status Bar Statusbar Clock Chip @@ -658,6 +677,8 @@ Hide carrier group from QS panel Hide Status Icons Remove time, date and battery icons + Custom Statusbar Clock Size + Set a custom size for Statusbar Clock Statusbar Clock Size Lock Screen Hide LS Carrier @@ -912,4 +933,106 @@ Tap on preview to select Don\'t show again To ensure proper functionality, enabling the Iconify module in LSPosed is mandatory for android 14 and above.\n\nAfter that, enable the fixes from: Tweaks > Xposed Menu > Themes > Others. + + + Unit + Verifying location + Select location + Enter location + Location + Set custom location + Cannot retrieve location! + Network geolocation is disabled.\n\nSet a custom location or enable network location. + Enable + Settings + Automatic updates + Check for new versions once in a while + Check updates over WiFi only + Check for updates in background only when connected to wifi + Metric (\u00b0C) + Imperial (\u00b0F) + Update + Enable + Update interval + 1 hour + 2 hours + 4 hours + 6 hours + 12 hours + Weather + Condition Icon Pack + Find more icon packs + Disabled + Error + Waiting \u2026 + No weather data + Error loading weather data + Waiting\u2026 + Updating\u2026 + Service disabled + Now + Background shadow + Service settings + Unknown + Error loading weather data + Weather + Last update: + No location available + No network found + Location permissions not granted + Select location + Search for a location + Enable Location Permissions + Location permissions are required to fetch weather data. Click OK to open Settings. + + Cloudy + Rainy + Sunny + Stormy + Snowy + Windy + Misty + + Weather on Lockscreen + Show weather on lockscreen + Last Update Time + Weather Provider + OpenWeatherMap API Key + OpenWeatherMap API Key required + Please enter your OpenWeatherMap API key to fetch weather data. + Show Location + Show Location before icon + Show Condition + Show Condition after temperature + Show Humidity + Show Humidity in a new row + Show Wind + Show Wind in a new row + Text Size + Image Size + Text Color + Set custom color for text + Custom Color + Custom color for all text in weather view + Custom location + Set custom location for weather + Custom Margins + Set custom margins for weather + Top margin + Center Layout + Side Margin + Bottom Margin + Center Weather View + Move weather view to center horizontally + + Weather Background Style + Default + Semi-transparent box + Semi-transparent box (round) + Q-Beta pill + Rounded, simple and with accent + Rounded, transparent and with accent + Gradient + Dark with accented borders + Dark with gradient borders diff --git a/app/src/main/res/values-hu-rHU/strings.xml b/app/src/main/res/values-hu-rHU/strings.xml index 9b8a87849..36704a152 100644 --- a/app/src/main/res/values-hu-rHU/strings.xml +++ b/app/src/main/res/values-hu-rHU/strings.xml @@ -415,6 +415,8 @@ Hozzáadhat egyéni órát is a panelhez A Képernyőzár órája Hozzáadhat egyéni órát is a záróképernyőhöz + Lockscreen Weather + Add weather on lockscreen Mélységi háttérkép Az iOS-ban megimert funkciót is használhatja Háttérlap @@ -455,6 +457,8 @@ Egyebek Értesítési színek rögzítése Egyéni értesítési stílus javítása Android 14 rendszeren + Fix Notification Footer Button Color + Fix custom footer button style on android 14 Gyorsbeállítások-csempe Függőleges csempe @@ -464,8 +468,10 @@ Szövegméretezés Csempemargók Gyorsbeállítások elemei + Hide QS on Lockscreen + Disable quick settings panel on secured lockscreen Szövegelrejtés - A néma értesítések fejléceként megjelenő szöveg elrejtése (A Rendszerfelület újraindítása szükséges) + Hide silent text shown as header of silent notifications Láblécgombok rejtése Az értesítések alatt látható láblécgombok elrejtése @@ -556,6 +562,8 @@ Megjeleníti a százalékértéket a hangerőcsúszka felett Biztonsági figyelmeztetés Figyelmeztetés, ha túl hangos + Colored Ringer Icon + Enable if selected ringer icon is invisible Fejléckép-választó Adjon hozzá fejlécképet a panelen\nNe válasszon fájlt az Előzményekből @@ -622,7 +630,11 @@ Felhasználó A mélységi háttérkép engedélyezése - Az iOS-hez hasonló mélységi háttérképet jelenít meg\n%s + Show iOS like depth wallpaper\n%s + Custom Images + Set custom images as depth wallpaper + Show on AOD + Show subject on always on display Átúszás \'Mindig bekapcsolvá\'-ra Animálja a háttérképet, és áttűnik az AOD-ba Előtérkép @@ -635,6 +647,13 @@ A háttér és az előtér rétegeit különböző sebességgel mozgatja Az előtér érzékenysége A háttér érzékenysége + AI model is downloaded on the device + AI model isn\'t available on the device (yet) + Extracting wallpaper subject… + Extracted wallpaper subject! + Failed to extract wallpaper subject! + AI model is not available! + Must use custom lockscreen clock Állapotsor Állapotsori óralap @@ -658,6 +677,8 @@ A Gyorsbeállításokban nem látszik a szolgáltató Az Állapotikonok elrejtése Az Idő, a Dátum és az Akkujelzés sem látható + Custom Statusbar Clock Size + Set a custom size for Statusbar Clock Az állapotsori Óra mérete Záróképernyő Nincs Szolgáltató a képernyőzáron @@ -912,4 +933,106 @@ A kiválasztáshoz érintse meg az előképet Ez ne jelenjen meg újra A megfelelő működés érdekében az Iconify modul engedélyezése kötelező az LSPosedben Android 14 és újabb verziók esetén.\n\nEzt követően engedélyezze a javításokat innen: Trükkök > Xposed-menü > Témák > Egyebek + + + Unit + Verifying location + Select location + Enter location + Location + Set custom location + Cannot retrieve location! + Network geolocation is disabled.\n\nSet a custom location or enable network location. + Enable + Settings + Automatic updates + Check for new versions once in a while + Check updates over WiFi only + Check for updates in background only when connected to wifi + Metric (\u00b0C) + Imperial (\u00b0F) + Update + Enable + Update interval + 1 hour + 2 hours + 4 hours + 6 hours + 12 hours + Weather + Condition Icon Pack + Find more icon packs + Disabled + Error + Waiting \u2026 + No weather data + Error loading weather data + Waiting\u2026 + Updating\u2026 + Service disabled + Now + Background shadow + Service settings + Unknown + Error loading weather data + Weather + Last update: + No location available + No network found + Location permissions not granted + Select location + Search for a location + Enable Location Permissions + Location permissions are required to fetch weather data. Click OK to open Settings. + + Cloudy + Rainy + Sunny + Stormy + Snowy + Windy + Misty + + Weather on Lockscreen + Show weather on lockscreen + Last Update Time + Weather Provider + OpenWeatherMap API Key + OpenWeatherMap API Key required + Please enter your OpenWeatherMap API key to fetch weather data. + Show Location + Show Location before icon + Show Condition + Show Condition after temperature + Show Humidity + Show Humidity in a new row + Show Wind + Show Wind in a new row + Text Size + Image Size + Text Color + Set custom color for text + Custom Color + Custom color for all text in weather view + Custom location + Set custom location for weather + Custom Margins + Set custom margins for weather + Top margin + Center Layout + Side Margin + Bottom Margin + Center Weather View + Move weather view to center horizontally + + Weather Background Style + Default + Semi-transparent box + Semi-transparent box (round) + Q-Beta pill + Rounded, simple and with accent + Rounded, transparent and with accent + Gradient + Dark with accented borders + Dark with gradient borders diff --git a/app/src/main/res/values-in-rID/strings.xml b/app/src/main/res/values-in-rID/strings.xml index 349afc102..1efeb75fb 100644 --- a/app/src/main/res/values-in-rID/strings.xml +++ b/app/src/main/res/values-in-rID/strings.xml @@ -415,6 +415,8 @@ Menambahkan kustom jam dalam QS panel Lockscreen Clock Menambahkan kustom jam layar kunci + Lockscreen Weather + Add weather on lockscreen Depth Wallpaper Show iOS like depth wallpaper Background Chip @@ -455,6 +457,8 @@ Others Fix Notification Color Fix custom notification style on android 14 + Fix Notification Footer Button Color + Fix custom footer button style on android 14 QS Tile QS Tile Vertikal @@ -464,8 +468,10 @@ Text Size Scaling QS Margin QS Elements + Hide QS on Lockscreen + Disable quick settings panel on secured lockscreen Hide Silent Text - Hide silent text shown as header of silent notifications (Requires SystemUI restart) + Hide silent text shown as header of silent notifications Hide Footer Buttons Hide footer buttons shown under notification stack @@ -556,6 +562,8 @@ Show percentage above volume slider Safety Warning Show warning on high volume + Colored Ringer Icon + Enable if selected ringer icon is invisible Pilih Gambar Header Tambahkan gambar header pada panel QS\nJangan pilih file dari Terbaru @@ -623,6 +631,10 @@ Enable Depth Wallpaper Show iOS like depth wallpaper\n%s + Custom Images + Set custom images as depth wallpaper + Show on AOD + Show subject on always on display Fade in AOD Animate wallpaper and fade away in AOD Foreground Image @@ -635,6 +647,13 @@ Move background and foreground layers at different speeds Foreground Sensitivity Background Sensitivity + AI model is downloaded on the device + AI model isn\'t available on the device (yet) + Extracting wallpaper subject… + Extracted wallpaper subject! + Failed to extract wallpaper subject! + AI model is not available! + Must use custom lockscreen clock Status Bar Chip Jam Statusbar @@ -658,6 +677,8 @@ Sembunyikan carrier group dari QS panel Sembunyikan Ikon Status Hapus ikon waktu, tanggal, dan baterai + Custom Statusbar Clock Size + Set a custom size for Statusbar Clock Statusbar Clock Size Lock Screen Sembunyikan Carrier LS @@ -912,4 +933,106 @@ Tap on preview to select Don\'t show again To ensure proper functionality, enabling the Iconify module in LSPosed is mandatory for android 14 and above.\n\nAfter that, enable the fixes from: Tweaks > Xposed Menu > Themes > Others. + + + Unit + Verifying location + Select location + Enter location + Location + Set custom location + Cannot retrieve location! + Network geolocation is disabled.\n\nSet a custom location or enable network location. + Enable + Settings + Automatic updates + Check for new versions once in a while + Check updates over WiFi only + Check for updates in background only when connected to wifi + Metric (\u00b0C) + Imperial (\u00b0F) + Update + Enable + Update interval + 1 hour + 2 hours + 4 hours + 6 hours + 12 hours + Weather + Condition Icon Pack + Find more icon packs + Disabled + Error + Waiting \u2026 + No weather data + Error loading weather data + Waiting\u2026 + Updating\u2026 + Service disabled + Now + Background shadow + Service settings + Unknown + Error loading weather data + Weather + Last update: + No location available + No network found + Location permissions not granted + Select location + Search for a location + Enable Location Permissions + Location permissions are required to fetch weather data. Click OK to open Settings. + + Cloudy + Rainy + Sunny + Stormy + Snowy + Windy + Misty + + Weather on Lockscreen + Show weather on lockscreen + Last Update Time + Weather Provider + OpenWeatherMap API Key + OpenWeatherMap API Key required + Please enter your OpenWeatherMap API key to fetch weather data. + Show Location + Show Location before icon + Show Condition + Show Condition after temperature + Show Humidity + Show Humidity in a new row + Show Wind + Show Wind in a new row + Text Size + Image Size + Text Color + Set custom color for text + Custom Color + Custom color for all text in weather view + Custom location + Set custom location for weather + Custom Margins + Set custom margins for weather + Top margin + Center Layout + Side Margin + Bottom Margin + Center Weather View + Move weather view to center horizontally + + Weather Background Style + Default + Semi-transparent box + Semi-transparent box (round) + Q-Beta pill + Rounded, simple and with accent + Rounded, transparent and with accent + Gradient + Dark with accented borders + Dark with gradient borders diff --git a/app/src/main/res/values-it-rIT/strings.xml b/app/src/main/res/values-it-rIT/strings.xml index 51bf78b5c..13dbcfb9d 100644 --- a/app/src/main/res/values-it-rIT/strings.xml +++ b/app/src/main/res/values-it-rIT/strings.xml @@ -415,6 +415,8 @@ Aggiungi orologio personalizzato sul pannello QS Orologio Schermata di Blocco Aggiungi orologio personalizzato sulla schermata di blocco + Lockscreen Weather + Add weather on lockscreen Sfondo di Profondità Mostra sfondo di profondità come iOS Sfondo Chip @@ -455,6 +457,8 @@ Altro Correggi Colore Notifiche Correggi lo stile di notifica personalizzato su Android 14 + Fix Notification Footer Button Color + Fix custom footer button style on android 14 Riquadro QS Riquadro QS Verticale @@ -464,8 +468,10 @@ Text Size Scaling Margine QS Elementi QS + Hide QS on Lockscreen + Disable quick settings panel on secured lockscreen Nascondi Testo Silenzioso - Nascondi il testo silenzioso mostrato come intestazione delle notifiche silenziose (richiede il riavvio del SystemUI) + Hide silent text shown as header of silent notifications Nascondi Pulsanti Piè Pagina Nascondi i pulsanti a piè pagina mostrati sotto la finestra delle notifiche @@ -556,6 +562,8 @@ Mostra percentuale sopra il cursore del volume Avvertimento di Sicurezza Mostra avvertimento su volume elevato + Colored Ringer Icon + Enable if selected ringer icon is invisible Scegli Immagine Intestazione Aggiungi immagine intestazione nel pannello QS\nNon selezionare il file dai Recenti @@ -622,7 +630,11 @@ Utente Abilita Sfondo Di Profondità - Mostra sfondo di profondità come iOS\n%s + Show iOS like depth wallpaper\n%s + Custom Images + Set custom images as depth wallpaper + Show on AOD + Show subject on always on display Dissolvenza AOD Anima lo sfondo e sfuma in AOD Immagine in Primo Piano @@ -635,6 +647,13 @@ Sposta i livelli di sfondo e di primo piano a velocità diverse Sensibilità Primo Piano Sensibilità Sfondo + AI model is downloaded on the device + AI model isn\'t available on the device (yet) + Extracting wallpaper subject… + Extracted wallpaper subject! + Failed to extract wallpaper subject! + AI model is not available! + Must use custom lockscreen clock Barra di Stato Chip Orologio Barra di Stato @@ -658,6 +677,8 @@ Nascondi gruppo operatore dal pannello QS Nascondi Icone Di Stato Rimuovi le icone di ora, data e batteria + Custom Statusbar Clock Size + Set a custom size for Statusbar Clock Statusbar Clock Size Schermata di Blocco Nascondi Operatore LS @@ -912,4 +933,106 @@ Tocca l\'anteprima per selezionare Non mostrare di nuovo Per garantire una funzionalità adeguata, è obbligatorio abilitare il modulo Iconify in LSPosed per android 14 e superiori.\n\nDopo di che, abilita le correzioni da: Ritocchi > Menu Xposed > Temi > Altro. + + + Unit + Verifying location + Select location + Enter location + Location + Set custom location + Cannot retrieve location! + Network geolocation is disabled.\n\nSet a custom location or enable network location. + Enable + Settings + Automatic updates + Check for new versions once in a while + Check updates over WiFi only + Check for updates in background only when connected to wifi + Metric (\u00b0C) + Imperial (\u00b0F) + Update + Enable + Update interval + 1 hour + 2 hours + 4 hours + 6 hours + 12 hours + Weather + Condition Icon Pack + Find more icon packs + Disabled + Error + Waiting \u2026 + No weather data + Error loading weather data + Waiting\u2026 + Updating\u2026 + Service disabled + Now + Background shadow + Service settings + Unknown + Error loading weather data + Weather + Last update: + No location available + No network found + Location permissions not granted + Select location + Search for a location + Enable Location Permissions + Location permissions are required to fetch weather data. Click OK to open Settings. + + Cloudy + Rainy + Sunny + Stormy + Snowy + Windy + Misty + + Weather on Lockscreen + Show weather on lockscreen + Last Update Time + Weather Provider + OpenWeatherMap API Key + OpenWeatherMap API Key required + Please enter your OpenWeatherMap API key to fetch weather data. + Show Location + Show Location before icon + Show Condition + Show Condition after temperature + Show Humidity + Show Humidity in a new row + Show Wind + Show Wind in a new row + Text Size + Image Size + Text Color + Set custom color for text + Custom Color + Custom color for all text in weather view + Custom location + Set custom location for weather + Custom Margins + Set custom margins for weather + Top margin + Center Layout + Side Margin + Bottom Margin + Center Weather View + Move weather view to center horizontally + + Weather Background Style + Default + Semi-transparent box + Semi-transparent box (round) + Q-Beta pill + Rounded, simple and with accent + Rounded, transparent and with accent + Gradient + Dark with accented borders + Dark with gradient borders diff --git a/app/src/main/res/values-ja-rJP/strings.xml b/app/src/main/res/values-ja-rJP/strings.xml index 3afc313e8..c2b2e114e 100644 --- a/app/src/main/res/values-ja-rJP/strings.xml +++ b/app/src/main/res/values-ja-rJP/strings.xml @@ -415,6 +415,8 @@ クイック設定パネルにカスタム時計を追加します ロック画面時計 ロック画面にカスタム時計を追加します + Lockscreen Weather + Add weather on lockscreen 深度のある背景 iOS のような深度のある背景を表示します 背景チップ @@ -455,6 +457,8 @@ その他 通知の色を修正 Android 14 でのカスタム通知スタイルを修正します + Fix Notification Footer Button Color + Fix custom footer button style on android 14 クイック設定タイル 垂直クイック設定タイル @@ -464,8 +468,10 @@ テキストサイズの大きさ クイック設定マージン クイック設定の要素 + Hide QS on Lockscreen + Disable quick settings panel on secured lockscreen サイレント テキストを非表示 - サイレント通知のヘッダーとして表示される サイレント を非表示にします (システム UI の再起動が必要) + Hide silent text shown as header of silent notifications フッターのボタンを非表示 通知一覧の下に表示されるボタンを非表示にします @@ -556,6 +562,8 @@ 音量スライダーの上にパーセンテージを表示します 安全上の警告 大音量の場合に警告を表示します + Colored Ringer Icon + Enable if selected ringer icon is invisible ヘッダー画像を選択 クイック設定パネルのヘッダー画像を追加します\n「最近」からファイルを選択しないでください @@ -622,7 +630,11 @@ ユーザー 奥行きのある壁紙を有効化 - iOS のような深みのある壁紙を表示します\n%s + Show iOS like depth wallpaper\n%s + Custom Images + Set custom images as depth wallpaper + Show on AOD + Show subject on always on display AOD をフェードイン AOD で壁紙をアニメーション化してフェードアウトさせます 前景の画像 @@ -635,6 +647,13 @@ 背景レイヤーと前景レイヤーを異なる速度で移動します Foreground Sensitivity Background Sensitivity + AI model is downloaded on the device + AI model isn\'t available on the device (yet) + Extracting wallpaper subject… + Extracted wallpaper subject! + Failed to extract wallpaper subject! + AI model is not available! + Must use custom lockscreen clock ステータスバー ステータスバー時計チップ @@ -658,6 +677,8 @@ クイック設定パネルからキャリア名を非表示にします ステータス アイコンを非表示 時間、日付、バッテリーアイコンを削除します + Custom Statusbar Clock Size + Set a custom size for Statusbar Clock Statusbar Clock Size ロック画面 ロック画面のキャリアを非表示 @@ -912,4 +933,106 @@ プレビューをタップして選択 次回から表示しない To ensure proper functionality, enabling the Iconify module in LSPosed is mandatory for android 14 and above.\n\nAfter that, enable the fixes from: Tweaks > Xposed Menu > Themes > Others. + + + Unit + Verifying location + Select location + Enter location + Location + Set custom location + Cannot retrieve location! + Network geolocation is disabled.\n\nSet a custom location or enable network location. + Enable + Settings + Automatic updates + Check for new versions once in a while + Check updates over WiFi only + Check for updates in background only when connected to wifi + Metric (\u00b0C) + Imperial (\u00b0F) + Update + Enable + Update interval + 1 hour + 2 hours + 4 hours + 6 hours + 12 hours + Weather + Condition Icon Pack + Find more icon packs + Disabled + Error + Waiting \u2026 + No weather data + Error loading weather data + Waiting\u2026 + Updating\u2026 + Service disabled + Now + Background shadow + Service settings + Unknown + Error loading weather data + Weather + Last update: + No location available + No network found + Location permissions not granted + Select location + Search for a location + Enable Location Permissions + Location permissions are required to fetch weather data. Click OK to open Settings. + + Cloudy + Rainy + Sunny + Stormy + Snowy + Windy + Misty + + Weather on Lockscreen + Show weather on lockscreen + Last Update Time + Weather Provider + OpenWeatherMap API Key + OpenWeatherMap API Key required + Please enter your OpenWeatherMap API key to fetch weather data. + Show Location + Show Location before icon + Show Condition + Show Condition after temperature + Show Humidity + Show Humidity in a new row + Show Wind + Show Wind in a new row + Text Size + Image Size + Text Color + Set custom color for text + Custom Color + Custom color for all text in weather view + Custom location + Set custom location for weather + Custom Margins + Set custom margins for weather + Top margin + Center Layout + Side Margin + Bottom Margin + Center Weather View + Move weather view to center horizontally + + Weather Background Style + Default + Semi-transparent box + Semi-transparent box (round) + Q-Beta pill + Rounded, simple and with accent + Rounded, transparent and with accent + Gradient + Dark with accented borders + Dark with gradient borders diff --git a/app/src/main/res/values-ko-rKR/strings.xml b/app/src/main/res/values-ko-rKR/strings.xml index 1b0c07204..ce1454b7a 100644 --- a/app/src/main/res/values-ko-rKR/strings.xml +++ b/app/src/main/res/values-ko-rKR/strings.xml @@ -415,6 +415,8 @@ Add custom clock on QS panel Lockscreen Clock Add custom clock on lockscreen + Lockscreen Weather + Add weather on lockscreen Depth Wallpaper Show iOS like depth wallpaper Background Chip @@ -455,6 +457,8 @@ Others Fix Notification Color Fix custom notification style on android 14 + Fix Notification Footer Button Color + Fix custom footer button style on android 14 QS Tile Vertical QS Tile @@ -464,8 +468,10 @@ Text Size Scaling QS Margin QS Elements + Hide QS on Lockscreen + Disable quick settings panel on secured lockscreen Hide Silent Text - Hide silent text shown as header of silent notifications (Requires SystemUI restart) + Hide silent text shown as header of silent notifications Hide Footer Buttons Hide footer buttons shown under notification stack @@ -556,6 +562,8 @@ Show percentage above volume slider Safety Warning Show warning on high volume + Colored Ringer Icon + Enable if selected ringer icon is invisible Pick Header Image Add header image on QS panel\nDo not select file from Recent @@ -623,6 +631,10 @@ Enable Depth Wallpaper Show iOS like depth wallpaper\n%s + Custom Images + Set custom images as depth wallpaper + Show on AOD + Show subject on always on display Fade in AOD Animate wallpaper and fade away in AOD Foreground Image @@ -635,6 +647,13 @@ Move background and foreground layers at different speeds Foreground Sensitivity Background Sensitivity + AI model is downloaded on the device + AI model isn\'t available on the device (yet) + Extracting wallpaper subject… + Extracted wallpaper subject! + Failed to extract wallpaper subject! + AI model is not available! + Must use custom lockscreen clock Status Bar Statusbar Clock Chip @@ -658,6 +677,8 @@ Hide carrier group from QS panel Hide Status Icons Remove time, date and battery icons + Custom Statusbar Clock Size + Set a custom size for Statusbar Clock Statusbar Clock Size Lock Screen Hide LS Carrier @@ -912,4 +933,106 @@ Tap on preview to select Don\'t show again To ensure proper functionality, enabling the Iconify module in LSPosed is mandatory for android 14 and above.\n\nAfter that, enable the fixes from: Tweaks > Xposed Menu > Themes > Others. + + + Unit + Verifying location + Select location + Enter location + Location + Set custom location + Cannot retrieve location! + Network geolocation is disabled.\n\nSet a custom location or enable network location. + Enable + Settings + Automatic updates + Check for new versions once in a while + Check updates over WiFi only + Check for updates in background only when connected to wifi + Metric (\u00b0C) + Imperial (\u00b0F) + Update + Enable + Update interval + 1 hour + 2 hours + 4 hours + 6 hours + 12 hours + Weather + Condition Icon Pack + Find more icon packs + Disabled + Error + Waiting \u2026 + No weather data + Error loading weather data + Waiting\u2026 + Updating\u2026 + Service disabled + Now + Background shadow + Service settings + Unknown + Error loading weather data + Weather + Last update: + No location available + No network found + Location permissions not granted + Select location + Search for a location + Enable Location Permissions + Location permissions are required to fetch weather data. Click OK to open Settings. + + Cloudy + Rainy + Sunny + Stormy + Snowy + Windy + Misty + + Weather on Lockscreen + Show weather on lockscreen + Last Update Time + Weather Provider + OpenWeatherMap API Key + OpenWeatherMap API Key required + Please enter your OpenWeatherMap API key to fetch weather data. + Show Location + Show Location before icon + Show Condition + Show Condition after temperature + Show Humidity + Show Humidity in a new row + Show Wind + Show Wind in a new row + Text Size + Image Size + Text Color + Set custom color for text + Custom Color + Custom color for all text in weather view + Custom location + Set custom location for weather + Custom Margins + Set custom margins for weather + Top margin + Center Layout + Side Margin + Bottom Margin + Center Weather View + Move weather view to center horizontally + + Weather Background Style + Default + Semi-transparent box + Semi-transparent box (round) + Q-Beta pill + Rounded, simple and with accent + Rounded, transparent and with accent + Gradient + Dark with accented borders + Dark with gradient borders diff --git a/app/src/main/res/values-nl-rNL/strings.xml b/app/src/main/res/values-nl-rNL/strings.xml index 7fffb0e05..54ef027ca 100644 --- a/app/src/main/res/values-nl-rNL/strings.xml +++ b/app/src/main/res/values-nl-rNL/strings.xml @@ -415,6 +415,8 @@ Add custom clock on QS panel Lockscreen Clock Add custom clock on lockscreen + Lockscreen Weather + Add weather on lockscreen Depth Wallpaper Show iOS like depth wallpaper Background Chip @@ -455,6 +457,8 @@ Others Fix Notification Color Fix custom notification style on android 14 + Fix Notification Footer Button Color + Fix custom footer button style on android 14 QS Tile Vertical QS Tile @@ -464,8 +468,10 @@ Text Size Scaling QS Margin QS Elements + Hide QS on Lockscreen + Disable quick settings panel on secured lockscreen Hide Silent Text - Hide silent text shown as header of silent notifications (Requires SystemUI restart) + Hide silent text shown as header of silent notifications Hide Footer Buttons Hide footer buttons shown under notification stack @@ -556,6 +562,8 @@ Show percentage above volume slider Safety Warning Show warning on high volume + Colored Ringer Icon + Enable if selected ringer icon is invisible Pick Header Image Add header image on QS panel\nDo not select file from Recent @@ -623,6 +631,10 @@ Enable Depth Wallpaper Show iOS like depth wallpaper\n%s + Custom Images + Set custom images as depth wallpaper + Show on AOD + Show subject on always on display Fade in AOD Animate wallpaper and fade away in AOD Foreground Image @@ -635,6 +647,13 @@ Move background and foreground layers at different speeds Foreground Sensitivity Background Sensitivity + AI model is downloaded on the device + AI model isn\'t available on the device (yet) + Extracting wallpaper subject… + Extracted wallpaper subject! + Failed to extract wallpaper subject! + AI model is not available! + Must use custom lockscreen clock Status Bar Statusbar Clock Chip @@ -658,6 +677,8 @@ Hide carrier group from QS panel Hide Status Icons Remove time, date and battery icons + Custom Statusbar Clock Size + Set a custom size for Statusbar Clock Statusbar Clock Size Lock Screen Hide LS Carrier @@ -912,4 +933,106 @@ Tap on preview to select Don\'t show again To ensure proper functionality, enabling the Iconify module in LSPosed is mandatory for android 14 and above.\n\nAfter that, enable the fixes from: Tweaks > Xposed Menu > Themes > Others. + + + Unit + Verifying location + Select location + Enter location + Location + Set custom location + Cannot retrieve location! + Network geolocation is disabled.\n\nSet a custom location or enable network location. + Enable + Settings + Automatic updates + Check for new versions once in a while + Check updates over WiFi only + Check for updates in background only when connected to wifi + Metric (\u00b0C) + Imperial (\u00b0F) + Update + Enable + Update interval + 1 hour + 2 hours + 4 hours + 6 hours + 12 hours + Weather + Condition Icon Pack + Find more icon packs + Disabled + Error + Waiting \u2026 + No weather data + Error loading weather data + Waiting\u2026 + Updating\u2026 + Service disabled + Now + Background shadow + Service settings + Unknown + Error loading weather data + Weather + Last update: + No location available + No network found + Location permissions not granted + Select location + Search for a location + Enable Location Permissions + Location permissions are required to fetch weather data. Click OK to open Settings. + + Cloudy + Rainy + Sunny + Stormy + Snowy + Windy + Misty + + Weather on Lockscreen + Show weather on lockscreen + Last Update Time + Weather Provider + OpenWeatherMap API Key + OpenWeatherMap API Key required + Please enter your OpenWeatherMap API key to fetch weather data. + Show Location + Show Location before icon + Show Condition + Show Condition after temperature + Show Humidity + Show Humidity in a new row + Show Wind + Show Wind in a new row + Text Size + Image Size + Text Color + Set custom color for text + Custom Color + Custom color for all text in weather view + Custom location + Set custom location for weather + Custom Margins + Set custom margins for weather + Top margin + Center Layout + Side Margin + Bottom Margin + Center Weather View + Move weather view to center horizontally + + Weather Background Style + Default + Semi-transparent box + Semi-transparent box (round) + Q-Beta pill + Rounded, simple and with accent + Rounded, transparent and with accent + Gradient + Dark with accented borders + Dark with gradient borders diff --git a/app/src/main/res/values-no-rNO/strings.xml b/app/src/main/res/values-no-rNO/strings.xml index 7fffb0e05..54ef027ca 100644 --- a/app/src/main/res/values-no-rNO/strings.xml +++ b/app/src/main/res/values-no-rNO/strings.xml @@ -415,6 +415,8 @@ Add custom clock on QS panel Lockscreen Clock Add custom clock on lockscreen + Lockscreen Weather + Add weather on lockscreen Depth Wallpaper Show iOS like depth wallpaper Background Chip @@ -455,6 +457,8 @@ Others Fix Notification Color Fix custom notification style on android 14 + Fix Notification Footer Button Color + Fix custom footer button style on android 14 QS Tile Vertical QS Tile @@ -464,8 +468,10 @@ Text Size Scaling QS Margin QS Elements + Hide QS on Lockscreen + Disable quick settings panel on secured lockscreen Hide Silent Text - Hide silent text shown as header of silent notifications (Requires SystemUI restart) + Hide silent text shown as header of silent notifications Hide Footer Buttons Hide footer buttons shown under notification stack @@ -556,6 +562,8 @@ Show percentage above volume slider Safety Warning Show warning on high volume + Colored Ringer Icon + Enable if selected ringer icon is invisible Pick Header Image Add header image on QS panel\nDo not select file from Recent @@ -623,6 +631,10 @@ Enable Depth Wallpaper Show iOS like depth wallpaper\n%s + Custom Images + Set custom images as depth wallpaper + Show on AOD + Show subject on always on display Fade in AOD Animate wallpaper and fade away in AOD Foreground Image @@ -635,6 +647,13 @@ Move background and foreground layers at different speeds Foreground Sensitivity Background Sensitivity + AI model is downloaded on the device + AI model isn\'t available on the device (yet) + Extracting wallpaper subject… + Extracted wallpaper subject! + Failed to extract wallpaper subject! + AI model is not available! + Must use custom lockscreen clock Status Bar Statusbar Clock Chip @@ -658,6 +677,8 @@ Hide carrier group from QS panel Hide Status Icons Remove time, date and battery icons + Custom Statusbar Clock Size + Set a custom size for Statusbar Clock Statusbar Clock Size Lock Screen Hide LS Carrier @@ -912,4 +933,106 @@ Tap on preview to select Don\'t show again To ensure proper functionality, enabling the Iconify module in LSPosed is mandatory for android 14 and above.\n\nAfter that, enable the fixes from: Tweaks > Xposed Menu > Themes > Others. + + + Unit + Verifying location + Select location + Enter location + Location + Set custom location + Cannot retrieve location! + Network geolocation is disabled.\n\nSet a custom location or enable network location. + Enable + Settings + Automatic updates + Check for new versions once in a while + Check updates over WiFi only + Check for updates in background only when connected to wifi + Metric (\u00b0C) + Imperial (\u00b0F) + Update + Enable + Update interval + 1 hour + 2 hours + 4 hours + 6 hours + 12 hours + Weather + Condition Icon Pack + Find more icon packs + Disabled + Error + Waiting \u2026 + No weather data + Error loading weather data + Waiting\u2026 + Updating\u2026 + Service disabled + Now + Background shadow + Service settings + Unknown + Error loading weather data + Weather + Last update: + No location available + No network found + Location permissions not granted + Select location + Search for a location + Enable Location Permissions + Location permissions are required to fetch weather data. Click OK to open Settings. + + Cloudy + Rainy + Sunny + Stormy + Snowy + Windy + Misty + + Weather on Lockscreen + Show weather on lockscreen + Last Update Time + Weather Provider + OpenWeatherMap API Key + OpenWeatherMap API Key required + Please enter your OpenWeatherMap API key to fetch weather data. + Show Location + Show Location before icon + Show Condition + Show Condition after temperature + Show Humidity + Show Humidity in a new row + Show Wind + Show Wind in a new row + Text Size + Image Size + Text Color + Set custom color for text + Custom Color + Custom color for all text in weather view + Custom location + Set custom location for weather + Custom Margins + Set custom margins for weather + Top margin + Center Layout + Side Margin + Bottom Margin + Center Weather View + Move weather view to center horizontally + + Weather Background Style + Default + Semi-transparent box + Semi-transparent box (round) + Q-Beta pill + Rounded, simple and with accent + Rounded, transparent and with accent + Gradient + Dark with accented borders + Dark with gradient borders diff --git a/app/src/main/res/values-pl-rPL/strings.xml b/app/src/main/res/values-pl-rPL/strings.xml index 2af2ae7c0..5f4a57069 100644 --- a/app/src/main/res/values-pl-rPL/strings.xml +++ b/app/src/main/res/values-pl-rPL/strings.xml @@ -415,6 +415,8 @@ Dodaj niestandardowy zegar do nagłówka szybkich ustawień Zegar na ekranie blokady Dodaj niestandardowy zegar na ekranie blokady + Lockscreen Weather + Add weather on lockscreen Efekt głębi tapety Włącz efekt głębi tapety w stylu iOS Tło zegara i ikon @@ -455,6 +457,8 @@ Pozostałe Napraw kolor powiadomień Napraw niestandardowy styl powiadomień w Android 14 + Fix Notification Footer Button Color + Fix custom footer button style on android 14 Kafelki szybkich ustawień Pionowe kafelki @@ -464,8 +468,10 @@ Text Size Scaling Marginesy szybkich ustawień QS Elements + Hide QS on Lockscreen + Disable quick settings panel on secured lockscreen Hide Silent Text - Hide silent text shown as header of silent notifications (Requires SystemUI restart) + Hide silent text shown as header of silent notifications Hide Footer Buttons Hide footer buttons shown under notification stack @@ -556,6 +562,8 @@ Show percentage above volume slider Safety Warning Show warning on high volume + Colored Ringer Icon + Enable if selected ringer icon is invisible Wybierz obraz nagłówka Dodaj obraz w nagłówku szybkich ustawień\nNie wybieraj pliku z Ostatnich @@ -622,7 +630,11 @@ User Włącz głębię tapety - Włącz efekt głębi tapety w stylu iOS\n%s + Show iOS like depth wallpaper\n%s + Custom Images + Set custom images as depth wallpaper + Show on AOD + Show subject on always on display Zanikanie na AOD Animacja zanikania tapety na AOD Obraz pierwszoplanowy @@ -635,6 +647,13 @@ Move background and foreground layers at different speeds Foreground Sensitivity Background Sensitivity + AI model is downloaded on the device + AI model isn\'t available on the device (yet) + Extracting wallpaper subject… + Extracted wallpaper subject! + Failed to extract wallpaper subject! + AI model is not available! + Must use custom lockscreen clock Pasek stanu Tło zegara @@ -658,6 +677,8 @@ Ukryj nazwę operatora w szybkich ustawieniach Ukryj ikony stanu Ukryj ikony stanu takie jak Wi-Fi, bateria oraz pozostałe + Custom Statusbar Clock Size + Set a custom size for Statusbar Clock Statusbar Clock Size Ekran blokady Ukryj nazwę operatora @@ -912,4 +933,106 @@ Dotknij podglądu, aby wybrać Nie pokazuj ponownie To ensure proper functionality, enabling the Iconify module in LSPosed is mandatory for android 14 and above.\n\nAfter that, enable the fixes from: Tweaks > Xposed Menu > Themes > Others. + + + Unit + Verifying location + Select location + Enter location + Location + Set custom location + Cannot retrieve location! + Network geolocation is disabled.\n\nSet a custom location or enable network location. + Enable + Settings + Automatic updates + Check for new versions once in a while + Check updates over WiFi only + Check for updates in background only when connected to wifi + Metric (\u00b0C) + Imperial (\u00b0F) + Update + Enable + Update interval + 1 hour + 2 hours + 4 hours + 6 hours + 12 hours + Weather + Condition Icon Pack + Find more icon packs + Disabled + Error + Waiting \u2026 + No weather data + Error loading weather data + Waiting\u2026 + Updating\u2026 + Service disabled + Now + Background shadow + Service settings + Unknown + Error loading weather data + Weather + Last update: + No location available + No network found + Location permissions not granted + Select location + Search for a location + Enable Location Permissions + Location permissions are required to fetch weather data. Click OK to open Settings. + + Cloudy + Rainy + Sunny + Stormy + Snowy + Windy + Misty + + Weather on Lockscreen + Show weather on lockscreen + Last Update Time + Weather Provider + OpenWeatherMap API Key + OpenWeatherMap API Key required + Please enter your OpenWeatherMap API key to fetch weather data. + Show Location + Show Location before icon + Show Condition + Show Condition after temperature + Show Humidity + Show Humidity in a new row + Show Wind + Show Wind in a new row + Text Size + Image Size + Text Color + Set custom color for text + Custom Color + Custom color for all text in weather view + Custom location + Set custom location for weather + Custom Margins + Set custom margins for weather + Top margin + Center Layout + Side Margin + Bottom Margin + Center Weather View + Move weather view to center horizontally + + Weather Background Style + Default + Semi-transparent box + Semi-transparent box (round) + Q-Beta pill + Rounded, simple and with accent + Rounded, transparent and with accent + Gradient + Dark with accented borders + Dark with gradient borders diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 600e903ee..c26994041 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -415,6 +415,8 @@ Adicione algum relógio personalizado no painel QS Relógio da tela de bloqueio Adicione um relógio personalizado na tela de bloqueio + Clima na tela de bloqueio + Adicione o clima na tela de bloqueio Plano de fundo com profundidade Mostrar plano de fundo com profundidade semelhante ao iOS Chip de fundo @@ -455,6 +457,8 @@ Outros Corrigir cor de notificação Corrige o estilo de notificação personalizado no Android 14 + Corrigir cor do botão do rodapé de notificação + Corrija o estilo do botão de rodapé personalizado no Android 14 Bloco QS Bloco QS vertical @@ -464,8 +468,10 @@ Tamanho do texto Margem QS Elementos QS + Ocultar QS na tela de bloqueio + Desative o painel de configurações rápidas na tela de bloqueio segura Ocultar texto silencioso - Oculte o texto silencioso mostrado como cabeçalho de notificações silenciosas (requer reinicialização da Interface do sistema) + Oculte o texto silencioso mostrado como cabeçalho de notificações silenciosas Ocultar botões do rodapé Oculte os botões do rodapé mostrados na pilha de notificações @@ -556,6 +562,8 @@ Mostrar porcentagem acima do controle deslizante de volume Aviso de segurança Mostrar aviso de volume alto + Ícone de toque colorido + Ative se o ícone de toque selecionado estiver invisível Escolha a imagem do cabeçalho Adicione uma imagem de cabeçalho no painel QS.\nNão selecione o arquivo de Recente. @@ -622,7 +630,11 @@ Usuário Ativar plano de fundo com profundidade - Mostre o plano de fundo com profundidade semelhante ao iOS.\n%s + Mostrar iOS como plano de fundo de profundidade\n%s + Imagens personalizadas + Defina imagens personalizadas como plano de fundo de profundidade + Mostrar no AOD + Mostre o assunto na tela sempre ativa Desaparecer na Tela ambiente Anime o plano de fundo e desapareça na Tela ambiente Imagem de primeiro plano @@ -635,6 +647,13 @@ Mova as camadas de fundo e primeiro plano em velocidades diferentes Sensibilidade do primeiro plano Sensibilidade do segundo plano + O modelo IA está sendo baixado no dispositivo + O modelo IA não está disponível no dispositivo (ainda) + Extraindo assunto do plano de fundo… + Assunto do plano de fundo extraído! + Falha ao extrair o assunto do plano de fundo! + O modelo IA não está disponível! + Deve usar um relógio de tela de bloqueio personalizado Barra de status Chip de relógio da barra de status @@ -658,6 +677,8 @@ Oculte grupos de operadoras do painel QS Ocultar ícones de status Remova ícones de hora, data e bateria + Tamanho personalizado do relógio da barra de status + Defina um tamanho personalizado para o relógio da barra de status Tamanho do relógio da barra de status Tela de bloqueio Ocultar operadora na tela de bloqueio @@ -912,4 +933,106 @@ Toque na visualização para selecionar Não mostrar novamente Para garantir a funcionalidade adequada, ativar o módulo Iconify no LSPosed é obrigatório para o Android 14 e superior.\n\nDepois disso, ative as correções em: Ajustes > Menu Xposed > Temas > Outros. + + + Unidade + Verificando localização + Selecionar localização + Inserir localização + Localização + Definir localização personalizada + Não é possível recuperar a localização! + A geolocalização da rede está desativada.\n\nDefina um local personalizado ou ative a localização de rede. + Ativar + Configurações + Atualizações automáticas + Verifique se há novas versões de vez em quando + Verificar atualizações apenas por Wi-Fi + Verifique se há atualizações em segundo plano somente quando conectado ao Wi-Fi + Métrica (\u00b0C) + Imperial (\u00b0F) + Atualizar + Ativar + Intervalo de atualização + 1 hora + 2 horas + 4 horas + 6 horas + 12 horas + Clima + Pacote de ícones de condição + Encontre mais pacotes de ícones + Desativado + Erro + Esperando \u2026 + Sem informações do clima + Erro ao carregar as informações do clima + Esperando\u2026 + Atualizando\u2026 + Serviço desativado + Agora + Sombra de fundo + Configurações de serviço + Desconhecido + Erro ao carregar as informações do clima + Clima + Última atualização: + Nenhum local disponível + Nenhuma rede encontrada + Permissões de localização não concedidas + Selecionar localização + Pesquisar por localização + Ativar permissões de localização + Permissões de localização são necessárias para obter dados meteorológicos. Clique em OK para abrir as Configurações. + + Nublado + Chuva + Ensolarado + Tempestade + Neve + Ventoso + Nevoado + + Clima na tela de bloqueio + Mostre a previsão do tempo na tela de bloqueio + Hora da última atualização + Weather Provider + OpenWeatherMap API Key + OpenWeatherMap API Key required + Please enter your OpenWeatherMap API key to fetch weather data. + Mostrar localização + Mostre a localização antes do ícone + Mostrar condição + Mostre a condição após a temperatura + Mostrar umidade + Mostre a umidade em uma nova linha + Mostrar vento + Mostre o vento em uma nova linha + Tamanho do texto + Tamanho da imagem + Cor do texto + Defina uma cor personalizada para o texto + Cor personalizada + Cor personalizada para todo o texto na visualização do clima + Localização personalizada + Defina um local personalizado para o clima + Margens personalizadas + Defina margens personalizadas para o clima + Margem superior + Layout central + Margem lateral + Margem inferior + Visualização do clima central + Mova a visualização do clima para centralizar horizontalmente + + Estilo de fundo do clima + Padrão + Caixa semitransparente + Caixa semitransparente (redonda) + Pílula Q-Beta + Arredondado, simples e com destaque + Arredondado, transparente e com destaque + Gradiente + Escuro com bordas destacadas + Escuro com bordas gradientes diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index 13942c8ab..231e9a5f3 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -415,6 +415,8 @@ Personalizar o relógio no cabeçalho das DR Relógio no ecrã de bloqueio Personalizar o relógio no ecrã de bloqueio + Lockscreen Weather + Add weather on lockscreen Depth Wallpaper Show iOS like depth wallpaper Chip de fundo @@ -455,6 +457,8 @@ Others Fix Notification Color Fix custom notification style on android 14 + Fix Notification Footer Button Color + Fix custom footer button style on android 14 QS Tile Atalho vertical @@ -464,8 +468,10 @@ Text Size Scaling QS Margin QS Elements + Hide QS on Lockscreen + Disable quick settings panel on secured lockscreen Hide Silent Text - Hide silent text shown as header of silent notifications (Requires SystemUI restart) + Hide silent text shown as header of silent notifications Hide Footer Buttons Hide footer buttons shown under notification stack @@ -556,6 +562,8 @@ Show percentage above volume slider Safety Warning Show warning on high volume + Colored Ringer Icon + Enable if selected ringer icon is invisible Escolha uma imagem de cabeçalho Adicionar imagem de cabeçalho ao painel das DR\nNão escolha um ficheiro da localização \"Recentes\". @@ -623,6 +631,10 @@ Enable Depth Wallpaper Show iOS like depth wallpaper\n%s + Custom Images + Set custom images as depth wallpaper + Show on AOD + Show subject on always on display Fade in AOD Animate wallpaper and fade away in AOD Foreground Image @@ -635,6 +647,13 @@ Move background and foreground layers at different speeds Foreground Sensitivity Background Sensitivity + AI model is downloaded on the device + AI model isn\'t available on the device (yet) + Extracting wallpaper subject… + Extracted wallpaper subject! + Failed to extract wallpaper subject! + AI model is not available! + Must use custom lockscreen clock Status Bar Chip do relógio na barra de estado @@ -658,6 +677,8 @@ Ocultar nome do operador no painel das DR Escoder os ícones de estado Remove o relógio, a data e a bateria + Custom Statusbar Clock Size + Set a custom size for Statusbar Clock Statusbar Clock Size Lock Screen Esconder operadora no modo claro @@ -912,4 +933,106 @@ Tap on preview to select Don\'t show again To ensure proper functionality, enabling the Iconify module in LSPosed is mandatory for android 14 and above.\n\nAfter that, enable the fixes from: Tweaks > Xposed Menu > Themes > Others. + + + Unit + Verifying location + Select location + Enter location + Location + Set custom location + Cannot retrieve location! + Network geolocation is disabled.\n\nSet a custom location or enable network location. + Enable + Settings + Automatic updates + Check for new versions once in a while + Check updates over WiFi only + Check for updates in background only when connected to wifi + Metric (\u00b0C) + Imperial (\u00b0F) + Update + Enable + Update interval + 1 hour + 2 hours + 4 hours + 6 hours + 12 hours + Weather + Condition Icon Pack + Find more icon packs + Disabled + Error + Waiting \u2026 + No weather data + Error loading weather data + Waiting\u2026 + Updating\u2026 + Service disabled + Now + Background shadow + Service settings + Unknown + Error loading weather data + Weather + Last update: + No location available + No network found + Location permissions not granted + Select location + Search for a location + Enable Location Permissions + Location permissions are required to fetch weather data. Click OK to open Settings. + + Cloudy + Rainy + Sunny + Stormy + Snowy + Windy + Misty + + Weather on Lockscreen + Show weather on lockscreen + Last Update Time + Weather Provider + OpenWeatherMap API Key + OpenWeatherMap API Key required + Please enter your OpenWeatherMap API key to fetch weather data. + Show Location + Show Location before icon + Show Condition + Show Condition after temperature + Show Humidity + Show Humidity in a new row + Show Wind + Show Wind in a new row + Text Size + Image Size + Text Color + Set custom color for text + Custom Color + Custom color for all text in weather view + Custom location + Set custom location for weather + Custom Margins + Set custom margins for weather + Top margin + Center Layout + Side Margin + Bottom Margin + Center Weather View + Move weather view to center horizontally + + Weather Background Style + Default + Semi-transparent box + Semi-transparent box (round) + Q-Beta pill + Rounded, simple and with accent + Rounded, transparent and with accent + Gradient + Dark with accented borders + Dark with gradient borders diff --git a/app/src/main/res/values-ro-rRO/strings.xml b/app/src/main/res/values-ro-rRO/strings.xml index 7fffb0e05..54ef027ca 100644 --- a/app/src/main/res/values-ro-rRO/strings.xml +++ b/app/src/main/res/values-ro-rRO/strings.xml @@ -415,6 +415,8 @@ Add custom clock on QS panel Lockscreen Clock Add custom clock on lockscreen + Lockscreen Weather + Add weather on lockscreen Depth Wallpaper Show iOS like depth wallpaper Background Chip @@ -455,6 +457,8 @@ Others Fix Notification Color Fix custom notification style on android 14 + Fix Notification Footer Button Color + Fix custom footer button style on android 14 QS Tile Vertical QS Tile @@ -464,8 +468,10 @@ Text Size Scaling QS Margin QS Elements + Hide QS on Lockscreen + Disable quick settings panel on secured lockscreen Hide Silent Text - Hide silent text shown as header of silent notifications (Requires SystemUI restart) + Hide silent text shown as header of silent notifications Hide Footer Buttons Hide footer buttons shown under notification stack @@ -556,6 +562,8 @@ Show percentage above volume slider Safety Warning Show warning on high volume + Colored Ringer Icon + Enable if selected ringer icon is invisible Pick Header Image Add header image on QS panel\nDo not select file from Recent @@ -623,6 +631,10 @@ Enable Depth Wallpaper Show iOS like depth wallpaper\n%s + Custom Images + Set custom images as depth wallpaper + Show on AOD + Show subject on always on display Fade in AOD Animate wallpaper and fade away in AOD Foreground Image @@ -635,6 +647,13 @@ Move background and foreground layers at different speeds Foreground Sensitivity Background Sensitivity + AI model is downloaded on the device + AI model isn\'t available on the device (yet) + Extracting wallpaper subject… + Extracted wallpaper subject! + Failed to extract wallpaper subject! + AI model is not available! + Must use custom lockscreen clock Status Bar Statusbar Clock Chip @@ -658,6 +677,8 @@ Hide carrier group from QS panel Hide Status Icons Remove time, date and battery icons + Custom Statusbar Clock Size + Set a custom size for Statusbar Clock Statusbar Clock Size Lock Screen Hide LS Carrier @@ -912,4 +933,106 @@ Tap on preview to select Don\'t show again To ensure proper functionality, enabling the Iconify module in LSPosed is mandatory for android 14 and above.\n\nAfter that, enable the fixes from: Tweaks > Xposed Menu > Themes > Others. + + + Unit + Verifying location + Select location + Enter location + Location + Set custom location + Cannot retrieve location! + Network geolocation is disabled.\n\nSet a custom location or enable network location. + Enable + Settings + Automatic updates + Check for new versions once in a while + Check updates over WiFi only + Check for updates in background only when connected to wifi + Metric (\u00b0C) + Imperial (\u00b0F) + Update + Enable + Update interval + 1 hour + 2 hours + 4 hours + 6 hours + 12 hours + Weather + Condition Icon Pack + Find more icon packs + Disabled + Error + Waiting \u2026 + No weather data + Error loading weather data + Waiting\u2026 + Updating\u2026 + Service disabled + Now + Background shadow + Service settings + Unknown + Error loading weather data + Weather + Last update: + No location available + No network found + Location permissions not granted + Select location + Search for a location + Enable Location Permissions + Location permissions are required to fetch weather data. Click OK to open Settings. + + Cloudy + Rainy + Sunny + Stormy + Snowy + Windy + Misty + + Weather on Lockscreen + Show weather on lockscreen + Last Update Time + Weather Provider + OpenWeatherMap API Key + OpenWeatherMap API Key required + Please enter your OpenWeatherMap API key to fetch weather data. + Show Location + Show Location before icon + Show Condition + Show Condition after temperature + Show Humidity + Show Humidity in a new row + Show Wind + Show Wind in a new row + Text Size + Image Size + Text Color + Set custom color for text + Custom Color + Custom color for all text in weather view + Custom location + Set custom location for weather + Custom Margins + Set custom margins for weather + Top margin + Center Layout + Side Margin + Bottom Margin + Center Weather View + Move weather view to center horizontally + + Weather Background Style + Default + Semi-transparent box + Semi-transparent box (round) + Q-Beta pill + Rounded, simple and with accent + Rounded, transparent and with accent + Gradient + Dark with accented borders + Dark with gradient borders diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml index a257cb7eb..2bd29b13b 100644 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ b/app/src/main/res/values-ru-rRU/strings.xml @@ -415,6 +415,8 @@ Добавить кастомные часы на панель быстрых настроек Экран блокировки Изменить элементы экрана блокировки + Lockscreen Weather + Add weather on lockscreen Глубинные обои Показывать обои с эффектом глубины, как в iOS Цвет фона фишки @@ -455,6 +457,8 @@ Другое Исправить цвет уведомлений Исправить пользовательский стиль уведомления на Android 14 + Fix Notification Footer Button Color + Fix custom footer button style on android 14 Плитка быстрых настроек Вертикальные плитки быстрых настроек @@ -464,8 +468,10 @@ Масштабирование размера текста Отступ быстрых настроек Элементы быстрых настроек + Hide QS on Lockscreen + Disable quick settings panel on secured lockscreen Скрыть надпись Без звука у уведомлений - Скрывать беззвучный текст, отображаемый в заголовке беззвучных уведомлений (требуется перезапуск SystemUI) + Hide silent text shown as header of silent notifications Скрыть кнопки нижнего колонтитула Скрыть кнопки нижнего колонтитула, отображаемые под стеком уведомлений @@ -556,6 +562,8 @@ Показывать проценты выше слайдера громкости Предупреждение о безопасности Показывать предупреждение на большой громкости + Colored Ringer Icon + Enable if selected ringer icon is invisible Выберите изображение заголовка Добавить изображения на панель быстрых настроек\nНе выбирайте его из вкладки \"Последние\" @@ -622,7 +630,11 @@ Пользователь Включить глубинные обои - Показывать iOS-подобные глубинные обои\n%s + Show iOS like depth wallpaper\n%s + Custom Images + Set custom images as depth wallpaper + Show on AOD + Show subject on always on display Угасание в AOD Анимировать обои и угасать в AOD Изображение на переднем плане @@ -635,6 +647,13 @@ Перемещайте слои фона и переднего плана с разной скоростью Чувствительность переднего плана Фоновая чувствительность + AI model is downloaded on the device + AI model isn\'t available on the device (yet) + Extracting wallpaper subject… + Extracted wallpaper subject! + Failed to extract wallpaper subject! + AI model is not available! + Must use custom lockscreen clock Строка состояния Подложка часов строки состояния @@ -658,6 +677,8 @@ Скрыть группу Сим-карт в панели быстрых настроек Скрыть иконки строки состояния Скрыть значки времени, даты и батареи + Custom Statusbar Clock Size + Set a custom size for Statusbar Clock Statusbar Clock Size Экран блокировки Скрыть оператора @@ -912,4 +933,106 @@ Нажмите на превью, чтобы выбрать Больше не показывать Для обеспечения правильной функциональности, включение модуля Iconify в LSPosed является обязательным для Android 14 и выше.\n\nПосле этого включите исправления из: Tweaks > Xposed Меню > Темы > Другие. + + + Unit + Verifying location + Select location + Enter location + Location + Set custom location + Cannot retrieve location! + Network geolocation is disabled.\n\nSet a custom location or enable network location. + Enable + Settings + Automatic updates + Check for new versions once in a while + Check updates over WiFi only + Check for updates in background only when connected to wifi + Metric (\u00b0C) + Imperial (\u00b0F) + Update + Enable + Update interval + 1 hour + 2 hours + 4 hours + 6 hours + 12 hours + Weather + Condition Icon Pack + Find more icon packs + Disabled + Error + Waiting \u2026 + No weather data + Error loading weather data + Waiting\u2026 + Updating\u2026 + Service disabled + Now + Background shadow + Service settings + Unknown + Error loading weather data + Weather + Last update: + No location available + No network found + Location permissions not granted + Select location + Search for a location + Enable Location Permissions + Location permissions are required to fetch weather data. Click OK to open Settings. + + Cloudy + Rainy + Sunny + Stormy + Snowy + Windy + Misty + + Weather on Lockscreen + Show weather on lockscreen + Last Update Time + Weather Provider + OpenWeatherMap API Key + OpenWeatherMap API Key required + Please enter your OpenWeatherMap API key to fetch weather data. + Show Location + Show Location before icon + Show Condition + Show Condition after temperature + Show Humidity + Show Humidity in a new row + Show Wind + Show Wind in a new row + Text Size + Image Size + Text Color + Set custom color for text + Custom Color + Custom color for all text in weather view + Custom location + Set custom location for weather + Custom Margins + Set custom margins for weather + Top margin + Center Layout + Side Margin + Bottom Margin + Center Weather View + Move weather view to center horizontally + + Weather Background Style + Default + Semi-transparent box + Semi-transparent box (round) + Q-Beta pill + Rounded, simple and with accent + Rounded, transparent and with accent + Gradient + Dark with accented borders + Dark with gradient borders diff --git a/app/src/main/res/values-sr-rSP/strings.xml b/app/src/main/res/values-sr-rSP/strings.xml index 7fffb0e05..54ef027ca 100644 --- a/app/src/main/res/values-sr-rSP/strings.xml +++ b/app/src/main/res/values-sr-rSP/strings.xml @@ -415,6 +415,8 @@ Add custom clock on QS panel Lockscreen Clock Add custom clock on lockscreen + Lockscreen Weather + Add weather on lockscreen Depth Wallpaper Show iOS like depth wallpaper Background Chip @@ -455,6 +457,8 @@ Others Fix Notification Color Fix custom notification style on android 14 + Fix Notification Footer Button Color + Fix custom footer button style on android 14 QS Tile Vertical QS Tile @@ -464,8 +468,10 @@ Text Size Scaling QS Margin QS Elements + Hide QS on Lockscreen + Disable quick settings panel on secured lockscreen Hide Silent Text - Hide silent text shown as header of silent notifications (Requires SystemUI restart) + Hide silent text shown as header of silent notifications Hide Footer Buttons Hide footer buttons shown under notification stack @@ -556,6 +562,8 @@ Show percentage above volume slider Safety Warning Show warning on high volume + Colored Ringer Icon + Enable if selected ringer icon is invisible Pick Header Image Add header image on QS panel\nDo not select file from Recent @@ -623,6 +631,10 @@ Enable Depth Wallpaper Show iOS like depth wallpaper\n%s + Custom Images + Set custom images as depth wallpaper + Show on AOD + Show subject on always on display Fade in AOD Animate wallpaper and fade away in AOD Foreground Image @@ -635,6 +647,13 @@ Move background and foreground layers at different speeds Foreground Sensitivity Background Sensitivity + AI model is downloaded on the device + AI model isn\'t available on the device (yet) + Extracting wallpaper subject… + Extracted wallpaper subject! + Failed to extract wallpaper subject! + AI model is not available! + Must use custom lockscreen clock Status Bar Statusbar Clock Chip @@ -658,6 +677,8 @@ Hide carrier group from QS panel Hide Status Icons Remove time, date and battery icons + Custom Statusbar Clock Size + Set a custom size for Statusbar Clock Statusbar Clock Size Lock Screen Hide LS Carrier @@ -912,4 +933,106 @@ Tap on preview to select Don\'t show again To ensure proper functionality, enabling the Iconify module in LSPosed is mandatory for android 14 and above.\n\nAfter that, enable the fixes from: Tweaks > Xposed Menu > Themes > Others. + + + Unit + Verifying location + Select location + Enter location + Location + Set custom location + Cannot retrieve location! + Network geolocation is disabled.\n\nSet a custom location or enable network location. + Enable + Settings + Automatic updates + Check for new versions once in a while + Check updates over WiFi only + Check for updates in background only when connected to wifi + Metric (\u00b0C) + Imperial (\u00b0F) + Update + Enable + Update interval + 1 hour + 2 hours + 4 hours + 6 hours + 12 hours + Weather + Condition Icon Pack + Find more icon packs + Disabled + Error + Waiting \u2026 + No weather data + Error loading weather data + Waiting\u2026 + Updating\u2026 + Service disabled + Now + Background shadow + Service settings + Unknown + Error loading weather data + Weather + Last update: + No location available + No network found + Location permissions not granted + Select location + Search for a location + Enable Location Permissions + Location permissions are required to fetch weather data. Click OK to open Settings. + + Cloudy + Rainy + Sunny + Stormy + Snowy + Windy + Misty + + Weather on Lockscreen + Show weather on lockscreen + Last Update Time + Weather Provider + OpenWeatherMap API Key + OpenWeatherMap API Key required + Please enter your OpenWeatherMap API key to fetch weather data. + Show Location + Show Location before icon + Show Condition + Show Condition after temperature + Show Humidity + Show Humidity in a new row + Show Wind + Show Wind in a new row + Text Size + Image Size + Text Color + Set custom color for text + Custom Color + Custom color for all text in weather view + Custom location + Set custom location for weather + Custom Margins + Set custom margins for weather + Top margin + Center Layout + Side Margin + Bottom Margin + Center Weather View + Move weather view to center horizontally + + Weather Background Style + Default + Semi-transparent box + Semi-transparent box (round) + Q-Beta pill + Rounded, simple and with accent + Rounded, transparent and with accent + Gradient + Dark with accented borders + Dark with gradient borders diff --git a/app/src/main/res/values-sv-rSE/strings.xml b/app/src/main/res/values-sv-rSE/strings.xml index 8b7c1573d..666886c05 100644 --- a/app/src/main/res/values-sv-rSE/strings.xml +++ b/app/src/main/res/values-sv-rSE/strings.xml @@ -415,6 +415,8 @@ Add custom clock on QS panel Lockscreen Clock Add custom clock on lockscreen + Lockscreen Weather + Add weather on lockscreen Depth Wallpaper Show iOS like depth wallpaper Background Chip @@ -455,6 +457,8 @@ Others Fix Notification Color Fix custom notification style on android 14 + Fix Notification Footer Button Color + Fix custom footer button style on android 14 QS Tile Vertical QS Tile @@ -464,8 +468,10 @@ Text Size Scaling QS Margin QS Elements + Hide QS on Lockscreen + Disable quick settings panel on secured lockscreen Hide Silent Text - Hide silent text shown as header of silent notifications (Requires SystemUI restart) + Hide silent text shown as header of silent notifications Hide Footer Buttons Hide footer buttons shown under notification stack @@ -556,6 +562,8 @@ Show percentage above volume slider Safety Warning Show warning on high volume + Colored Ringer Icon + Enable if selected ringer icon is invisible Pick Header Image Add header image on QS panel\nDo not select file from Recent @@ -623,6 +631,10 @@ Enable Depth Wallpaper Show iOS like depth wallpaper\n%s + Custom Images + Set custom images as depth wallpaper + Show on AOD + Show subject on always on display Fade in AOD Animate wallpaper and fade away in AOD Foreground Image @@ -635,6 +647,13 @@ Move background and foreground layers at different speeds Foreground Sensitivity Background Sensitivity + AI model is downloaded on the device + AI model isn\'t available on the device (yet) + Extracting wallpaper subject… + Extracted wallpaper subject! + Failed to extract wallpaper subject! + AI model is not available! + Must use custom lockscreen clock Status Bar Statusbar Clock Chip @@ -658,6 +677,8 @@ Hide carrier group from QS panel Hide Status Icons Remove time, date and battery icons + Custom Statusbar Clock Size + Set a custom size for Statusbar Clock Statusbar Clock Size Lock Screen Hide LS Carrier @@ -912,4 +933,106 @@ Tap on preview to select Don\'t show again To ensure proper functionality, enabling the Iconify module in LSPosed is mandatory for android 14 and above.\n\nAfter that, enable the fixes from: Tweaks > Xposed Menu > Themes > Others. + + + Unit + Verifying location + Select location + Enter location + Location + Set custom location + Cannot retrieve location! + Network geolocation is disabled.\n\nSet a custom location or enable network location. + Enable + Settings + Automatic updates + Check for new versions once in a while + Check updates over WiFi only + Check for updates in background only when connected to wifi + Metric (\u00b0C) + Imperial (\u00b0F) + Update + Enable + Update interval + 1 hour + 2 hours + 4 hours + 6 hours + 12 hours + Weather + Condition Icon Pack + Find more icon packs + Disabled + Error + Waiting \u2026 + No weather data + Error loading weather data + Waiting\u2026 + Updating\u2026 + Service disabled + Now + Background shadow + Service settings + Unknown + Error loading weather data + Weather + Last update: + No location available + No network found + Location permissions not granted + Select location + Search for a location + Enable Location Permissions + Location permissions are required to fetch weather data. Click OK to open Settings. + + Cloudy + Rainy + Sunny + Stormy + Snowy + Windy + Misty + + Weather on Lockscreen + Show weather on lockscreen + Last Update Time + Weather Provider + OpenWeatherMap API Key + OpenWeatherMap API Key required + Please enter your OpenWeatherMap API key to fetch weather data. + Show Location + Show Location before icon + Show Condition + Show Condition after temperature + Show Humidity + Show Humidity in a new row + Show Wind + Show Wind in a new row + Text Size + Image Size + Text Color + Set custom color for text + Custom Color + Custom color for all text in weather view + Custom location + Set custom location for weather + Custom Margins + Set custom margins for weather + Top margin + Center Layout + Side Margin + Bottom Margin + Center Weather View + Move weather view to center horizontally + + Weather Background Style + Default + Semi-transparent box + Semi-transparent box (round) + Q-Beta pill + Rounded, simple and with accent + Rounded, transparent and with accent + Gradient + Dark with accented borders + Dark with gradient borders diff --git a/app/src/main/res/values-tr-rTR/strings.xml b/app/src/main/res/values-tr-rTR/strings.xml index e95f48092..46b212056 100644 --- a/app/src/main/res/values-tr-rTR/strings.xml +++ b/app/src/main/res/values-tr-rTR/strings.xml @@ -415,6 +415,8 @@ QS paneline özel saat ekle Kilit Ekranı Saati Kilit ekranına özel saat ekle + Kilit Ekranı Hava Durumu + Kilit ekranına hava durumu ekleyin Derinlikli Duvar Kağıdı İOS\'a benzer derinlikli duvar kağıdını göster Arka Plan Butonu @@ -455,6 +457,8 @@ Diğer Bildirim Rengini Düzelt Android 14\'te özel bildirim stilini düzelt + Bildirim Altbilgi Düğmesi Rengini Düzelt + Android 14\'te özel altbilgi düğmesi stilini düzeltin QS Kutucuğu Dikey QS Kutucuğu @@ -464,8 +468,10 @@ Metin Ölçeklendirme QS Kenar Boşluğu QS Öğeleri + Kilit Ekranında QS\'yi Gizle + Güvenli kilit ekranında hızlı ayarlar panelini devre dışı bırak Sessiz Metni Gizle - Sessiz bildirimlerin başlığı olarak gösterilen sessiz metni gizle (SystemUI\'nin yeniden başlatılmasını gerektirir) + Sessiz bildirimlerin üstbilgisi olarak gösterilen sessiz metni gizle Altbilgi Butonlarını Gizle Bildirim yığınının altında gösterilen altbilgi butonlarını gizle @@ -556,6 +562,8 @@ Ses kaydırıcısının üzerinde yüzdeyi göster Güvenlik uyarısı Yüksek ses seviyesinde uyarı göster + Renkli Zil Simgesi + Seçili zil sesi simgesi görünmezse etkinleştir Başlık Resmi Seç QS paneline başlık resmi ekleyin\nSon kullanılanlar\'dan dosya seçmeyin @@ -622,7 +630,11 @@ Kullanıcı Derinlikli Duvar Kağıdını Etkinleştir - iOS\'a benzer derinlik duvar kağıdını göster\n%s + iOS\'a benzer derinlikli duvar kağıdını göster\n%s + Özel Resimler + Özel görüntüleri derinlikli duvar kağıdı olarak ayarla + AOD\'de göster + Konuyu her zaman ekranda göster AOD\'da Solma Duvar kağıdını canlandır ve AOD\'da kaybol Ön Plan Resmi @@ -635,6 +647,13 @@ Arka plan ve ön plan katmanlarını farklı hızlarda hareket ettir Ön Plan Hassasiyeti Arka Plan Hassasiyeti + Yapay zeka modeli cihaza indirildi + AI modeli cihazda mevcut değil (henüz) + Duvar kağıdı konusu çıkarılıyor… + Duvar kağıdı konusu çıkarıldı! + Duvar kağıdı konusu çıkarılamadı! + Yapay zeka modeli mevcut değil! + Özel kilit ekranı saati kullanılmalıdır Durum Çubuğu Durum Çubuğu Saat Butonu @@ -658,6 +677,8 @@ Operatör grubunu QS panelinden gizle Durum Simgelerini Gizle Saat, tarih ve pil simgelerini kaldır + Özel Durum Çubuğu Saat Boyutu + Durum Çubuğu Saati için özel bir boyut ayarla Durum Çubuğu Saat Boyutu Kilit Ekranı LS Operatörünü Gizle @@ -765,7 +786,7 @@ Ayarlar başarıyla kaydedildi Yok - Style %d + Stil %d Devam et Yeniden Başlat @@ -912,4 +933,106 @@ Seçmek için önizlemeye dokunun Tekrar Gösterme Düzgün işlevsellik sağlamak amacıyla Android 14 ve sonraki sürümler için LSPosed\'de Iconify modülünün etkinleştirilmesi zorunludur.\n\nBundan sonra düzeltmeleri şuradan etkinleştirin: İnce ayarlar > Xposed Menüsü > Temalar > Diğer. + + + Birim + Konum doğrulanıyor + Konum seç + Konum gir + Konum + Özel konum ayarla + Konum alınamıyor! + Ağ coğrafi konumu devre dışı.\n\nÖzel bir konum ayarlayın veya ağ konumunu etkinleştirin. + Etkinleştir + Ayarlar + Otomatik güncellemeler + Arada bir yeni sürümleri kontrol et + Güncellemeleri yalnızca WiFi üzerinden kontrol et + Güncellemeleri yalnızca wifi\'ye bağlıyken arka planda kontrol et + Metrik (\u00b0C) + İngiliz standartı (\u00b0F) + Güncelle + Etkinleştir + Güncelleme aralığı + 1 saat + 2 saat + 4 saat + 6 saat + 12 saat + Hava Durumu + Durum Simge Paketi + Daha fazla simge paketi edinin + Devre dışı + Hata + Bekleniyor\u2026 + Hava durumu verileri yok + Hava durumu bilgisi yüklenemedi + Bekleniyor\u2026 + Güncelleniyor\u2026 + Hizmet kapatıldı + Şimdi + Arka plan gölgesi + Hizmet ayarları + Bilinmeyen + Hava durumu bilgisi yüklenemedi + Hava Durumu + Son güncelleme: + Konum mevcut değil + Ağ bulunmadı + Konum izni verilmedi + Konum seç + Konum arayın + Konum İzinlerini Etkinleştir + Hava durumu verilerini almak için konum izinleri gereklidir. Ayarları açmak için Tamam\'a tıklayın. + + Bulutlu + Yağmurlu + Güneşli + Fırtınalı + Karlı + Rüzgarlı + Sisli + + Kilit Ekranında Hava Durumu + Kilit ekranında hava durumunu göster + Son Güncelleme Zamanı + Weather Provider + OpenWeatherMap API Key + OpenWeatherMap API Key required + Please enter your OpenWeatherMap API key to fetch weather data. + Konumu Göster + Simgeden önce konumu göster + Durumu Göster + Sıcaklıktan sonraki durumu göster + Nemi Göster + Nemi yeni bir satırda göster + Rüzgarı Göster + Rüzgarı yeni bir satırda göster + Metin Boyutu + Resim Boyutu + Metin Rengi + Metin için özel renk ayarlayın + Özel Renk + Hava durumu görünümündeki tüm metinler için özel renk + Özel konum + Hava durumu için özel konum ayarlayın + Özel Kenar Boşlukları + Hava durumu için özel kenar boşlukları ayarlayın + Üst kenar boşluğu + Orta Düzen + Yan Kenar Boşluğu + Alt Kenar Boşluğu + Merkez Hava Durumu Görünümü + Hava durumu görünümünü yatay olarak ortaya taşı + + Hava Durumu Arka Plan Stili + Varsayılan + Yarı şeffaf kutu + Yarı şeffaf kutu (yuvarlak) + Q-Beta stili + Yuvarlak, basit ve vurgu renkli + Yuvarlak, şeffaf ve vurgu rengi içerir + Gradyan + Vurgu renkli karanlık kenar + Karanlık gradyan renkli kenarlar diff --git a/app/src/main/res/values-uk-rUA/strings.xml b/app/src/main/res/values-uk-rUA/strings.xml index 90eb52a99..45e75efe2 100644 --- a/app/src/main/res/values-uk-rUA/strings.xml +++ b/app/src/main/res/values-uk-rUA/strings.xml @@ -158,63 +158,63 @@ Колір заливки Колір індикатора рівня заряду батареї - Supported Music Player Not Found - Android 13 Default Player - Application not found! + Підтримуваний музичний плеєр не знайдено + Типовий плеєр Android 13 + Застосунок не знайдено! Aurora Gradicon Plumpy - Background - Minimal - Filled - Outline - Neumorph - Shape - Circle - Squircle - Square - Icon Size + Тло + Мінімальні + Заповнені + Контурні + Нейморфні + Форма + Коло + Округлий квадрат + Квадрат + Розмір значків 0.5x 0.65x 0.8x 1.0x - Icon Color - Follow System - System Inverse - Monet / Accent - Inline multicolored icon pack - Outline multicolored icon pack + Колір значка + Як у системі + Як у системі (Інвертований) + Monet / Акцент + Вбудований пакет різноколірних значків + Контурний різноколірний пакет значків - Pixel Variant - For roms with black QS panel + Варіант Pixel + Для прошивок з чорною панеллю швидких налаштувань - Brightness Bar Styles + Стилі панелі яскравості - QS Panel Tile Styles + Стилі плиток панелі швидких налаштувань - Notification Styles - Notification Preview.\nClick to apply this style. + Стилі сповіщень + Передперегляд сповіщень.\nНатисніть, щоб застосувати цей стиль. - Click to enable or disable + Натисніть, щоб увімкнути або вимкнути - None - Pebble - Hexagon + Без ефекту + Галька + Шестикутник Samsung - Scroll - Square - Teardrop - Rounded\nRectangle + Сувій + Квадрат + Крапля + Закруглений\nПрямокутник iOS - Cloudy - Cylinder - Flower - Heart - Leaf - Streteched - Tapered\nRectangle - Vessel + Хмара + Циліндр + Квітка + Серце + Листок + Розтягнутий + Конічний\nПрямокутник + Посудина Rohie Meow Тільки коло @@ -316,57 +316,57 @@ Monet / Акцент відтінки Свій колір (Вибір кольору) - Display Mode - Fullscreen - Hide pill and keyboard spacing - Immersive - Default keyboard spacing - Immersive v2 - Smaller keyboard spacing - Immersive v3 - Smallest keyboard spacing - Gcam Lag Fix - Fix lag in gcam with gesture navigation - Buttons - Hide Keyboard Buttons - Hide keyboard back/switcher buttons - Gesture - Lower Sensitivity - Lower gesture sensitivity - Disable Left Gesture - Disable back gesture of left side - Disable Right Gesture - Disable back gesture of right side - Pill Navigation - Hide Pill - Hide navigation pill - Monet Pill - Link accent color to pill - Pill Appearance - Pill Width - Pill Thickness - Bottom Space + Режим показу + На весь екран + Приховати панель навігації та відступ клавіатури + Імерсивний + Типовий відступ клавіатури + Імерсивний v2 + Менший відступ клавіатури + Імерсивний v3 + Найменший відступ клавіатури + Виправити затримки Gcam + Виправлення затримок у Gcam з навігацією жестами + Кнопки + Приховати кнопки клавіатури + Приховати кнопки «Назад» та перемикач клавіатури + Жести + Низька чутливість + Низька чутливість жестів + Вимкнути лівий жест + Вимкнути жест «Назад» з лівої сторони + Вимкнути правий жест + Вимкнути жест «Назад» з правої сторони + Панель навігації + Приховати панель навігації + Приховує панель навігації + Панель навігації в стилі Monet + Акцентний колір для панелі навігації + Вигляд панелі навігації + Висота панелі + Товщина панелі + Нижній відступ - Volume Slider Track - Thin - Thick - None - Thin Background - Make track of volume slider thin - Thick Background - Make track of volume slider thick - No Background - Remove track of volume slider - Custom Magisk Module - Volume Style - Creates a magisk flashable module for this style - Gradient - Double Layer - Shaded Layer - Neumorph - Outline - Neumorph Outline - Create Module + Доріжка повзунка гучності + Тонка + Товста + Ніяка + Тонкий фон + Зробити доріжку гучності тонкою + Товстий фон + Зробити доріжку гучності товстою + Без фону + Прибрати доріжку повзунка гучності + Свій модуль Magisk + Стиль гучності + Створює флеш-модуль Magisk для цього стилю + Градієнт + Подвійний шар + Затінений шар + Нейморфний + Контурний + Нейморфний контур + Створити модуль Модуль успішно створено Уважно прочитайте! Цей параметр створить модуль Magisk у теці «Завантаження».Прошийте модуль з назвою IconifyCompanion.zip у Magisk. Завжди видаляйте попередній модуль Iconify Companion (якщо він встановлений) і перезавантажуйтеся перед прошивкою нового.\n\nПримітка:\n• Видаліть модуль перед оновленням прошивки.\n• Перезавантажте модуль, якщо ви змінили або оновили прошивку.\n• Не прошивайте модуль, який не був створений для вашої прошивки. @@ -415,6 +415,8 @@ Додати свій годинник на панель швидких налаштувань Годинник на екрані блокування Додати свій годинник на екран блокування + Lockscreen Weather + Add weather on lockscreen Шпалери з ефектом глибини Показувати шпалери з ефектом глибини як в iOS Тло годинника та значка @@ -455,6 +457,8 @@ Інше Виправити колір сповіщень Виправити користувацький стиль сповіщень на Android 14 + Fix Notification Footer Button Color + Fix custom footer button style on android 14 Плитки швидких налаштувань Вертикальні плитки швидких налаштувань @@ -464,64 +468,66 @@ Масштабування розміру тексту Відступи швидких налаштувань Елементи швидких налаштувань + Hide QS on Lockscreen + Disable quick settings panel on secured lockscreen Приховати напис «Без звуку» в сповіщеннях - Приховати напис «Без звуку», що показується у заголовку беззвучних сповіщень (Потребує перезапуску SystemUI) + Hide silent text shown as header of silent notifications Приховати кнопки нижнього колонтитула Приховати кнопки нижнього колонтитула, показані під купою сповіщень Стиль батареї Ширина батареї Висота батареї - Battery Margin - Hide Battery - Keep only charging icon and percentage - Custom Charging Icon - Change charging icon to custom icon - Charging Icon Style - Charging Icon Margin Left - Charging Icon Margin Right - Charging Icon Size - Perimeter Alpha - Make battery perimeter semi transparent - Fill Alpha - Make battery fill semi transparent - Rainbow Color - Show different color based on battery level - Blend Color - Blend battery color with custom color - Fill Color - Fill battery with custom color - Fill Gradient Color - Fill battery with gradient color - Charging Fill Color - Change color of charging battery - Powersave Fill Color - Change color of powersave battery - Powersave Indicator Color - Change color of powersave indicator - Custom Dimensions - Set custom dimensions for battery icon - Battery Margin Left - Battery Margin Right - Battery Margin Top - Battery Margin Bottom - Reverse Layout - Show percentage on the opposite side - Rotate Layout - Rotate battery layout 180 degrees - Hide Percentage - Hide battery percentage text - Inside Percentage - Move percentage to inside battery icon - Default - Landscape R Default - Landscape L Default - Landscape R Custom - Landscape L Custom - Portrait Capsule - Portrait Lorn - Portrait Mx - Portrait Airoo + Відступ батареї + Приховати батарею + Залишати тільки значок зарядки та відсотки + Свій значок зарядки + Змінити значок зарядки на свій значок + Стиль значка зарядки + Значок зарядки зліва + Значок зарядки справа + Розмір значка зарядки + Напівпрозорий периметр + Зробити периметр батареї напівпрозорий + Напівпрозора заливка + Зробити заливку батареї напівпрозорою + Різноколірний + Показати інший колір на основі рівня заряду батареї + Змішаний колір + Змішати колір батареї зі своїм кольором + Колір заливки + Залити батарею обраним кольором + Заповнити градієнтним кольором + Заповнити батарею обраним кольором + Колір заливки зарядки + Змінює кольору батареї при зарядці + Колір заливки при енергозбереженні + Змінює колір енергозбереження + Колір індикатора енергозбереження + Змінює колір індикатора енергозбереження + Власні розміри + Задати свої розміри значка батареї + Батарея ліворуч + Батарея праворуч + Батарея зверху + Батарея знизу + Відзеркалити положення + Показує відсотки на протилежній стороні + Повернути положення + Повертає положення батареї на 180 градусів + Приховати відсотки + Приховує текст відсотків батареї + Відсотки всередині + Переміщує відсоток всередину батареї + Типово + Горизонтальний П по стандарту + Горизонтальний Л по стандарту + Горизонтальний П користувацький + Горизонтальний Л користувацький + Вертикальна капсула + Вертикальний Lorn + Портретний Mx + Вертикальний Airoo Горизонтальний П, стиль A Горизонтальний Л, стиль A Горизонтальний П, стиль B @@ -556,6 +562,8 @@ Показати відсотки над повзунком гучності Попередження про безпеку Показувати попередження при високій гучності + Colored Ringer Icon + Enable if selected ringer icon is invisible Вибрати зображення заголовка Додати зображення заголовка на панель швидких налаштувань\nНе вибирайте файл з «Нещодавні» @@ -575,58 +583,62 @@ Стиль годинника Шрифт будильника Використовувати власний шрифт для годинника в заголовку\nНе вибирайте файл з «Нещодавні» - Custom Clock Color - Custom color instead of primary color - Clock Color Picker - Set color of header clock text - Text Scaling - Clock Side Margin - Clock Top Margin - White Text - Force text colors to be white - Center Clock - Move clock to center of view - Hide in Landscape - Hide clock in landscape mode + Свій колір годинника + Власний колір замість основного кольору + Вибір кольорів для годинника + Встановити колір тексту годинника + Масштабування тексту + Бічне поле годинника + Верхнє поле годинника + Білий текст + Примусово використовувати білий колір тексту + Годинник по центру + Перемістити годинник у центр + Сховати в альбомному режимі + Сховати годинник в альбомному режимі - Custom Lockscreen Clock - Enable custom lockscreen clock - Auto Hide Clock - Hide clock on incoming notification - Clock Style - Clock Font - Use custom font for lockscreen clock\nDo not select file from Recent - Custom Clock Color - Custom color instead of primary color - Clock Color Picker - Set color of lockscreen clock text - Text Scaling - Line Height - Top Margin - Bottom Margin - White Text - Force all colors to be white - Use Custom Image - Use custom image for lockscreen clock. - Custom Image Picker - Custom Device Name - Set custom device name for lockscreen clock.\nKeep blank to use System\'s Device Name. - Custom User Name - Set custom user name for lockscreen clock.\nKeep blank to use System\'s User Name. - Select - Battery Charging - Battery Discharging - Battery Full - Battery Level - Welcome back! - User + Свій годинник на екрані блокування + Увімкнути свій годинник на екрані блокування + Автоприховування годинника + Приховує годинник при вхідному сповіщенні + Стиль годинника + Шрифт будильника + Використовувати свій шрифт для годинника на екрані блокування\nНе вибирайте файл з «Нещодавніх» + Свій колір годинника + Власний колір замість основного кольору + Вибір кольорів для годинника + Встановити колір тексту годинника на екрані блокування + Масштабування тексту + Висота лінії + Верхнє поле + Нижнє поле + Білий текст + Примусово використовувати білі кольори + Використовувати своє зображення + Використовувати власне зображення на екрані блокування. + Власний вибір зображення + Власне ім\'я пристрою + Встановити власну назву пристрою для годинника на екрані блокування.\nЗалишіть порожнім, щоби використовувати системну назву пристрою. + Власне ім\'я користувача + Встановити власне ім\'я користувача для годинника на екрані блокування.\nЗалишіть порожнім, щоби використовувати системне ім\'я користувача. + Вибрати + Заряджання батареї + Розряджання батареї + Батарею заряджено + Рівень заряду батареї + З поверненням! + Користувач - Enable Depth Wallpaper + Увімкнути шпалери з ефектом глибини Show iOS like depth wallpaper\n%s - Fade in AOD - Animate wallpaper and fade away in AOD - Foreground Image - Foreground image for depth wallpaper + Custom Images + Set custom images as depth wallpaper + Show on AOD + Show subject on always on display + Зникнення в AOD + Анімує шпалери та зникнення в AOD + Зображення спереду + Зображення спереду для шпалер з ефектом глибини Альфа-прозорість для переднього плану Зображення на тлі Зображення на тлі для шпалер з ефектом глибини @@ -635,6 +647,13 @@ Переміщувати тло і передній план з різними швидкостями Чутливість переднього плану Чутливість тла + AI model is downloaded on the device + AI model isn\'t available on the device (yet) + Extracting wallpaper subject… + Extracted wallpaper subject! + Failed to extract wallpaper subject! + AI model is not available! + Must use custom lockscreen clock Рядок стану Тло годинника в рядку стану @@ -647,269 +666,373 @@ Змінити колір тексту годинника в рядку стану Значки рядка стану Стиль тла - Status Icons Chip - Display chip behind status icons - Chip Style - Top Margin - Side Margin + Індикатор значків рядка стану + Показує індикатор позаду значків рядка стану + Стиль індикатора + Верхнє поле + Бічне поле - QS Header - Hide Carrier Group - Hide carrier group from QS panel - Hide Status Icons - Remove time, date and battery icons - Statusbar Clock Size - Lock Screen - Hide LS Carrier - Hide carrier name on lockscreen - Hide LS Statusbar - Hide statusbar on lockscreen - Hide LS Lock Icon - Hide lock icon view on lockscreen - Fixed Status Icons - Set status icons in fixed position\nMight be buggy on some rom + Заголовок швидких налаштувань + Приховати групу Sim-карт + Приховує групу Sim-карт з панелі швидких налаштувань + Приховати значки рядка стану + Прибирає значки часу, дати та батареї + Custom Statusbar Clock Size + Set a custom size for Statusbar Clock + Розмір годинника в рядку стану + Екран блокування + Приховати оператора + Приховує назву оператора на екрані блокування + Приховати рядок стану + Приховує рядок стану на екрані блокування + Приховати значок блокування екрана + Приховує значок блокування на екрані блокування + Фіксовані значки рядка стану + Встановлює значки рядка стану у фіксоване положення\nМоже бути баг на деяких прошивках - Changelog - Couldn\'t connect to server!\nThere might be an issue with your internet connection or the server might be down at this moment. Please try again later. - Changelog not found!\nThis might be an issue with your internet connection or the server might be down at this moment. Please try again later. - Something went wrong.\nThis changelog might not be available on the server. + Журнал змін + Не вдалося з\'єднатися із сервером!\nМожливо проблема з вашим інтернет-з\'єднанням або сервер зараз не працює. Будь ласка, спробуйте пізніше. + Журнал змін не знайдено!\nМожливо проблема з вашим інтернет-з\'єднанням або сервер зараз не працює. Будь ласка, спробуйте пізніше. + Щось пішло не так.\nЦей журнал змін може бути недоступний на сервері. - Checking For Update - Update available! - Update %s is available to download. - View Changelog - Hide Changelog - You are already up to date. - Current Version: - Latest Version: - Failed to check for update! - N/A - Schedule - Update Schedule - When to check for update - Every 6 Hours - Every 12 Hours - Every Day - Every Week - Never - Current Version: %s - Latest Version: %s + Перевірка наявності оновлень + Доступне обновлення! + Оновлення %s доступне для завантаження. + Переглянути журнал змін + Приховати журнал змін + У вас остання версія. + Поточна версія: + Остання версія: + Не вдалося перевірити оновлення! + Н/Д + Розклад + Графік оновлень + Коли перевіряти наявність оновлень + Кожні 6 годин + Кожні 12 годин + Щодня + Щотижня + Ніколи + Поточна версія: %s + Остання версія: %s - Credits - Special Thanks - For Plumpy & Fluency icons. - For in-app icon set. - For helping me with Shell Script. - For helping me with RRO. - For helping me with Xposed. - For testing the app. - For permission to use better QS. - For android executable binaries. - Contributors - For contributing on github. - For assisting me on telegram. - Translators - Afrikaans translation. - Arabic translation. - Catalan translation. - Chinese translation. - Chinese translation. - Czech translation. - Danish translation. - Dutch translation. - Finnish translation. - French translation. - German translation. - Greek translation. - Hungarian translation. - Indonesian translation. - Italian translation. - Japanese translation. - Korean translation. - Norwegian translation. - Persian translation. - Polish translation. - Portuguese translation. - Portuguese (Brazilian) translation. - Romanian translation. - Russian translation. - Serbian (Cyrillic) translation. - Spanish translation. - Swedish translation. - Turkish translation. - Ukrainian translation. - Vietnamese translation. + Подяка + Особлива подяка + За значки Plumpy та Fluency. + Для набору значків всередині застосунку. + За допомогу з Shell-скриптами. + За допомогу з RRO. + За допомогу з Xposed. + За тестування застосунку. + Для дозволу на використання Better QS. + Для виконуваних двійкових файлів для Android. + Учасники + За свій внесок на GitHub. + За допомогу в Telegram. + Перекладачі + Африканський переклад. + Арабський переклад. + Каталонський переклад. + Китайський переклад. + Китайський (традиційний) переклад. + Чеський переклад. + Данський переклад. + Нідерландський переклад. + Фінський переклад. + Французький переклад. + Німецький переклад. + Грецький переклад. + Угорський переклад. + Індонезійський переклад. + Італійський переклад. + Японський переклад. + Корейський переклад. + Норвезький переклад. + Перський переклад. + Польський переклад. + Португальський переклад. + Португальський (Бразилія) переклад. + Румунський переклад. + Російський переклад. + Сербський (Кирилиця) переклад. + Іспанський переклад. + Шведський переклад. + Турецький переклад. + Український переклад. + В\'єтнамський переклад. - Experimental - Overlap Header Image - Overlap header image on expanded QS - Unzoom Depth Wallpaper - Remove the zoom effect on depth wallpaper - Hide Data Disabled Icon - Hide data disabled indicator + Експериментальні + Перекриття заголовку зображення + Перекрити зображення заголовка на розкритій панелі швидких налаштувань + Не збільшувати шпалери з ефектом глибини + Прибрати ефект збільшення на шпалерах з ефектом глибини + Сховати вимкнений значок даних + Сховати вимкнений індикатор даних - Home - Tweaks - Settings + Головна + Твіки + Налаштування - Changelog - Import/Export - Export Settings - Import Settings - Restart SystemUI - Are you sure? - You will lose your current setup and settings. + Журнал змін + Імпорт / Експорт + Експорт налаштувань + Імпорт налаштувань + Перезапустити SystemUI + Ви впевнені? + Ви втратите поточні налаштування та параметри. - Reset Settings - Imported settings successfully - Saved settings successfully + Скинути налаштування + Налаштування успішно імпортовані + Налаштування успішно збережено - None - Style %d + Немає + Стиль %d - Continue - Restart - Disable - Enable - Apply - Disable Custom Colors - Apply Colors - Reset - Reboot Now - Download - Restart SystemUI - Pick Font - Reset Tint - Reboot - Skip - Next - Back - Let\'s Go - Close - Yes - No + Продовжити + Перезавантажити + Вимкнути + Ввімкнути + Застосувати + Вимкнути свої кольори + Застосувати кольори + Скинути + Перезавантажити зараз + Завантажити + Перезапустити SystemUI + Вибрати шрифт + Скинути відтінок + Перевантажити + Пропустити + Далі + Назад + Розпочнемо + Закрити + Так + Ні - Applied - Disabled - Reset - Reboot required - Copied to Clipboard - Something went wrong - Long press to disable everything - Everything is disabled - Long press to restart SystemUI - Rename file to something simpler - Lorn uses colored battery by default - Plumpy uses colored battery by default - Select a style first - KernelSU is currently not supported - Only magisk is supported currently - Reboot required - LSPosed not found! - How did you know that? - Why are you still doing that? - You have restarted SystemUI too frequently. Please try again later. - Launching \"All Files Access\" page - Iconify cache cleared - Installation skipped. Some features may not function properly. - Imported settings successfully - Exported settings successfully - Selected successfully - Unavailable - Use this feature from Xposed Menu + Застосовано + Вимкнено + Скинути + Потрібне перезавантаження + Скопійовано до буфера обміну + Щось пішло не так + Довго утримуйте, щоби все вимкнути + Все вимкнуто + Довго утримуйте, щоби перезапустити SystemUI + Перейменуйте файл на щось простіше + Lorn типово використовує кольорову батарею + Типово Plumpy використовує кольорову батарею + Спочатку виберіть стиль + В даний час KernelSU не підтримується + Підтримується лише Magisk + Потрібне перезавантаження + LSPosed не знайдено! + Звідки ти це знав? + Чому ти досі це робиш? + Ви перезапускали SystemUI надто часто. Спробуйте пізніше. + Запуск сторінки «Доступ до всіх файлів» + Кеш Iconify очищено + Встановлення пропущено. Деякі функції можуть працювати не належним чином. + Налаштування успішно імпортовані + Налаштування експортовано успішно + Вибрано успішно + Недоступно + Використовуйте цю функцію в меню Xposed - Update Available - A new version of Iconify is available. - Updates - This channel shows notification about the latest updates. + Доступне оновлення + Доступна нова версія Iconify. + Оновлення + Цей канал показує сповіщення про останні оновлення. - About - Information about this app - Settings - Miscellaneous settings - QS Panel - Modify quick settings panel + Про застосунок + Інформація про цей застосунок + Налаштування + Інші налаштування + Панель швидких налаштувань + Змінити панель швидких налаштувань - Color Picker Preview - Color Picker - Pitch Black - Dark - Amoled - Warning - Iconify Logo - Hey There! - Icon - Media Player Icons - Selected: - Selected: %s - Selected: %1$s%2$s - Selected: %1$s%2$s %3$s - (Default) - No Clock - Clock Style %d - Please Wait - Rebooting in 5 seconds - Iconify Version - Version Name: - Version Code: - Version + Попередній перегляд кольору + Вибір кольору + Непроглядна темрява + Темна + Чорна + Попередження + Логотип Iconify + Привіт! + Значок + Значки програвача + Вибрано: + Вибрано: %s + Вибрано: %1$s%2$s + Вибрано: %1$s%2$s %3$s + (Типово) + Немає годинника + Стиль годинника %d + Будь ласка, зачекайте + Перезавантаження через 5 секунд + Версія Iconify + Назва версії: + Код версії: + Версія GitHub - Check out github repository. + Подивіться репозиторій на Githube. Telegram - Follow to get latest news & updates. - - Applied - Grant storage access first! - Installing - Reboot your device first! - Restart SystemUI if applied options are not immediately visible. - Checked - App Updates - Yes - No - Understood - Custom Toast - Enable custom styled toast - Custom Progressbar - Enable gradient progress bar - Custom Seekbar - Enable custom styled seek bar - Needs SystemUI restart - QS Clock Chip - Display chip behind QS clock - Needs SystemUI Restart\nLock & Unlock to fix width - QS Date Chip - Display chip behind QS date - Custom QS Margin - Enable custom margin for QS panel - Force Enable Blur - Force enable blur for unsupported roms - Choose Header Image - Choose Clock Font - Pick a style of your choice - Attention! - Double Toggle Dark Mode - Restart SystemUI - Do Nothing (I will do it myself) - Xposed Settings - Force Apply Method - Method to force apply the changes in xposed menu - Miscellaneous Settings - General Settings - Use Light Accent - Use light accent color in light mode - Disable Animation - Disable scrolling animation of Iconify - Custom Battery - Enable custom battery style - Toast Message - Made with \u2764\uFE0E by DrDisagree - Hello blank fragment - Lockscreen Customization - Enable lockscreen customizations - On - Off - Reboot your device! - Tap on preview to select - Don\'t show again - To ensure proper functionality, enabling the Iconify module in LSPosed is mandatory for android 14 and above.\n\nAfter that, enable the fixes from: Tweaks > Xposed Menu > Themes > Others. + Слідкуйте за оновленнями, щоб отримувати свіжі новини та оновлення. + - Застосовано + Спочатку надай доступ до сховища! + Встановлення + Спочатку перезавантажте пристрій! + Перезапустити SystemUI, якщо застосувані параметри не видно відразу. + Перевірено + Оновлення застосунку + Так + Ні + Ясно + Свій Toast + Ввімкнути свій стиль toast + Власна смуга прогресу + Увімкнути градієнт смуги прогресу + Своя панель пошуку + Увімкнути власний стиль панелі пошуку + Потрібно перезавантажити SystemUI + Тло годинника швидких налаштувань + Показ тла годинника швидких налаштувань + Необхідне перезавантаження системного інтерфейсу\nЗаблокуйте та розблокуйте, щоб виправити ширину + Тло дати швидких налаштувань + Показувати тло за датою у швидких налаштуваннях + Свої відступи швидких налаштувань + Ввімкнути власні відступи для панелі швидких налаштувань + Примусово увімкнути розмиття + Примусово увімкнути розмиття для непідтримуваних прошивок + Вибрати зображення заголовка + Вибрати шрифт годинника + Виберіть стиль на свій смак + Увага! + Подвійне перемикання темної теми + Перезапустити SystemUI + Нічого не робити (Я зроблю все сам) + Налаштування Xposed + Примусовий метод застосування + Метод для примусового застосування змін в меню Xposed + Різні налаштування + Загальні налаштування + Використовувати світлий акцент + Використовувати світлий колір акценту у світлому режимі + Вимкнути анімації + Вимкнути анімацію прокрутки Iconify + Своя батарея + Ввімкнути свій стиль батареї + Toast-сповіщення + Зроблено з \u2764\uFE0E DrDisagree + Порожній фрагмент привітання + Налаштування екрану блокування + Ввімкнути налаштування екрану блокування + Ввімк + Вимк + Перезавантажте свій пристрій! + Натисніть на передперегляд, щоб вибрати + Більше не показувати + Для забезпечення належної функціональності увімкнення модуля Iconify в LSPosed є обов\'язковим для Android 14 і вище.\n\nПісля цього увімкніть виправлення з: Твіки > Меню Xposed > Теми > Інші. + + + Unit + Verifying location + Select location + Enter location + Location + Set custom location + Cannot retrieve location! + Network geolocation is disabled.\n\nSet a custom location or enable network location. + Enable + Settings + Automatic updates + Check for new versions once in a while + Check updates over WiFi only + Check for updates in background only when connected to wifi + Metric (\u00b0C) + Imperial (\u00b0F) + Update + Enable + Update interval + 1 hour + 2 hours + 4 hours + 6 hours + 12 hours + Weather + Condition Icon Pack + Find more icon packs + Disabled + Error + Waiting \u2026 + No weather data + Error loading weather data + Waiting\u2026 + Updating\u2026 + Service disabled + Now + Background shadow + Service settings + Unknown + Error loading weather data + Weather + Last update: + No location available + No network found + Location permissions not granted + Select location + Search for a location + Enable Location Permissions + Location permissions are required to fetch weather data. Click OK to open Settings. + + Cloudy + Rainy + Sunny + Stormy + Snowy + Windy + Misty + + Weather on Lockscreen + Show weather on lockscreen + Last Update Time + Weather Provider + OpenWeatherMap API Key + OpenWeatherMap API Key required + Please enter your OpenWeatherMap API key to fetch weather data. + Show Location + Show Location before icon + Show Condition + Show Condition after temperature + Show Humidity + Show Humidity in a new row + Show Wind + Show Wind in a new row + Text Size + Image Size + Text Color + Set custom color for text + Custom Color + Custom color for all text in weather view + Custom location + Set custom location for weather + Custom Margins + Set custom margins for weather + Top margin + Center Layout + Side Margin + Bottom Margin + Center Weather View + Move weather view to center horizontally + + Weather Background Style + Default + Semi-transparent box + Semi-transparent box (round) + Q-Beta pill + Rounded, simple and with accent + Rounded, transparent and with accent + Gradient + Dark with accented borders + Dark with gradient borders diff --git a/app/src/main/res/values-vi-rVN/strings.xml b/app/src/main/res/values-vi-rVN/strings.xml index 40744e0e3..06ce5dba0 100644 --- a/app/src/main/res/values-vi-rVN/strings.xml +++ b/app/src/main/res/values-vi-rVN/strings.xml @@ -415,6 +415,8 @@ Thêm đồng hồ tùy chỉnh trên bảng QS Đồng hồ màn hình khóa Thêm đồng hồ tùy chỉnh trên màn hình khóa + Lockscreen Weather + Add weather on lockscreen Depth Wallpaper Show iOS like depth wallpaper Nền chip @@ -455,6 +457,8 @@ Others Fix Notification Color Fix custom notification style on android 14 + Fix Notification Footer Button Color + Fix custom footer button style on android 14 QS Tile Bảng QS dọc @@ -464,8 +468,10 @@ Text Size Scaling QS Margin QS Elements + Hide QS on Lockscreen + Disable quick settings panel on secured lockscreen Hide Silent Text - Hide silent text shown as header of silent notifications (Requires SystemUI restart) + Hide silent text shown as header of silent notifications Hide Footer Buttons Hide footer buttons shown under notification stack @@ -556,6 +562,8 @@ Show percentage above volume slider Safety Warning Show warning on high volume + Colored Ringer Icon + Enable if selected ringer icon is invisible Chọn hình ảnh tiêu đề Thêm hình ảnh tiêu đề trên bảng QS\nKhông chọn tệp từ Gần đây @@ -623,6 +631,10 @@ Enable Depth Wallpaper Show iOS like depth wallpaper\n%s + Custom Images + Set custom images as depth wallpaper + Show on AOD + Show subject on always on display Fade in AOD Animate wallpaper and fade away in AOD Foreground Image @@ -635,6 +647,13 @@ Move background and foreground layers at different speeds Foreground Sensitivity Background Sensitivity + AI model is downloaded on the device + AI model isn\'t available on the device (yet) + Extracting wallpaper subject… + Extracted wallpaper subject! + Failed to extract wallpaper subject! + AI model is not available! + Must use custom lockscreen clock Status Bar Chip đồng hồ thanh trạng thái @@ -658,6 +677,8 @@ Ẩn nhóm nhà mạng khỏi bảng QS Ẩn biểu tượng trạng thái Xóa các biểu tượng thời gian, ngày tháng và pin + Custom Statusbar Clock Size + Set a custom size for Statusbar Clock Statusbar Clock Size Lock Screen Hide LS Carrier @@ -912,4 +933,106 @@ Tap on preview to select Don\'t show again To ensure proper functionality, enabling the Iconify module in LSPosed is mandatory for android 14 and above.\n\nAfter that, enable the fixes from: Tweaks > Xposed Menu > Themes > Others. + + + Unit + Verifying location + Select location + Enter location + Location + Set custom location + Cannot retrieve location! + Network geolocation is disabled.\n\nSet a custom location or enable network location. + Enable + Settings + Automatic updates + Check for new versions once in a while + Check updates over WiFi only + Check for updates in background only when connected to wifi + Metric (\u00b0C) + Imperial (\u00b0F) + Update + Enable + Update interval + 1 hour + 2 hours + 4 hours + 6 hours + 12 hours + Weather + Condition Icon Pack + Find more icon packs + Disabled + Error + Waiting \u2026 + No weather data + Error loading weather data + Waiting\u2026 + Updating\u2026 + Service disabled + Now + Background shadow + Service settings + Unknown + Error loading weather data + Weather + Last update: + No location available + No network found + Location permissions not granted + Select location + Search for a location + Enable Location Permissions + Location permissions are required to fetch weather data. Click OK to open Settings. + + Cloudy + Rainy + Sunny + Stormy + Snowy + Windy + Misty + + Weather on Lockscreen + Show weather on lockscreen + Last Update Time + Weather Provider + OpenWeatherMap API Key + OpenWeatherMap API Key required + Please enter your OpenWeatherMap API key to fetch weather data. + Show Location + Show Location before icon + Show Condition + Show Condition after temperature + Show Humidity + Show Humidity in a new row + Show Wind + Show Wind in a new row + Text Size + Image Size + Text Color + Set custom color for text + Custom Color + Custom color for all text in weather view + Custom location + Set custom location for weather + Custom Margins + Set custom margins for weather + Top margin + Center Layout + Side Margin + Bottom Margin + Center Weather View + Move weather view to center horizontally + + Weather Background Style + Default + Semi-transparent box + Semi-transparent box (round) + Q-Beta pill + Rounded, simple and with accent + Rounded, transparent and with accent + Gradient + Dark with accented borders + Dark with gradient borders diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 55463599e..9f8861389 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -415,6 +415,8 @@ 在快速设置面板上添加自定义时钟 锁屏时钟 在锁屏上添加自定义时钟 + Lockscreen Weather + Add weather on lockscreen 深度壁纸 显示类 iOS 系统的深度壁纸 背景 Chip @@ -455,6 +457,8 @@ 其他 修复通知颜色 修复 Android 14 上的自定义通知样式 + Fix Notification Footer Button Color + Fix custom footer button style on android 14 快速设置图块 纵向快速设置图块 @@ -464,8 +468,10 @@ Text Size Scaling 快速设置边距 快速设置元素 + Hide QS on Lockscreen + Disable quick settings panel on secured lockscreen 隐藏静音文本 - 隐藏静音通知页眉的静音文字(需要重启系统界面) + Hide silent text shown as header of silent notifications 隐藏页脚按钮 隐藏通知堆栈下显示的页脚按钮 @@ -556,6 +562,8 @@ 在音量滑块之上显示百分比 安全警告 在高音量时显示警告 + Colored Ringer Icon + Enable if selected ringer icon is invisible 选择标头图片 在快速设置面板上添加标头图片\n不要从最近文件中选择文件 @@ -622,7 +630,11 @@ 用户 启用深度壁纸 - 显示类 iOS 系统的深度壁纸\n%s + Show iOS like depth wallpaper\n%s + Custom Images + Set custom images as depth wallpaper + Show on AOD + Show subject on always on display 息屏显示淡入 在息屏显示中使壁纸动画化并具有淡出的动画 前景图 @@ -635,6 +647,13 @@ 以不同的速度移动背景层和前景层 前景灵敏度 前景灵敏度 + AI model is downloaded on the device + AI model isn\'t available on the device (yet) + Extracting wallpaper subject… + Extracted wallpaper subject! + Failed to extract wallpaper subject! + AI model is not available! + Must use custom lockscreen clock 状态栏 状态条时钟 Chip @@ -658,6 +677,8 @@ 从快速设置面板上隐藏运营商组 隐藏状态图标 移除时间、日期和电池图标 + Custom Statusbar Clock Size + Set a custom size for Statusbar Clock Statusbar Clock Size 锁屏 隐藏锁屏运营商 @@ -912,4 +933,106 @@ 点击预览进行选择 不要再次显示 为确保功能正常,安卓 14 及以上版本必须启用 LSPosed 中的 Iconify 模块。\n\n在此后启用修正:调整 > Xposed 菜单 > 主题 > 其他。 + + + Unit + Verifying location + Select location + Enter location + Location + Set custom location + Cannot retrieve location! + Network geolocation is disabled.\n\nSet a custom location or enable network location. + Enable + Settings + Automatic updates + Check for new versions once in a while + Check updates over WiFi only + Check for updates in background only when connected to wifi + Metric (\u00b0C) + Imperial (\u00b0F) + Update + Enable + Update interval + 1 hour + 2 hours + 4 hours + 6 hours + 12 hours + Weather + Condition Icon Pack + Find more icon packs + Disabled + Error + Waiting \u2026 + No weather data + Error loading weather data + Waiting\u2026 + Updating\u2026 + Service disabled + Now + Background shadow + Service settings + Unknown + Error loading weather data + Weather + Last update: + No location available + No network found + Location permissions not granted + Select location + Search for a location + Enable Location Permissions + Location permissions are required to fetch weather data. Click OK to open Settings. + + Cloudy + Rainy + Sunny + Stormy + Snowy + Windy + Misty + + Weather on Lockscreen + Show weather on lockscreen + Last Update Time + Weather Provider + OpenWeatherMap API Key + OpenWeatherMap API Key required + Please enter your OpenWeatherMap API key to fetch weather data. + Show Location + Show Location before icon + Show Condition + Show Condition after temperature + Show Humidity + Show Humidity in a new row + Show Wind + Show Wind in a new row + Text Size + Image Size + Text Color + Set custom color for text + Custom Color + Custom color for all text in weather view + Custom location + Set custom location for weather + Custom Margins + Set custom margins for weather + Top margin + Center Layout + Side Margin + Bottom Margin + Center Weather View + Move weather view to center horizontally + + Weather Background Style + Default + Semi-transparent box + Semi-transparent box (round) + Q-Beta pill + Rounded, simple and with accent + Rounded, transparent and with accent + Gradient + Dark with accented borders + Dark with gradient borders diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index d18f25974..a5c1bc519 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -415,6 +415,8 @@ 在快速設定面板上添加自訂時鐘 鎖屏時鐘 在鎖屏上添加自訂時鐘 + Lockscreen Weather + Add weather on lockscreen 深度桌布 顯示類似iOS系統的深度桌布 背景Chip @@ -455,6 +457,8 @@ 其他 修復通知顔色 修復 android 14 上的自訂通知樣式 + Fix Notification Footer Button Color + Fix custom footer button style on android 14 快速設定圖示 竪向快速設定方塊 @@ -464,8 +468,10 @@ Text Size Scaling 快速設定邊距 「快速設定」元素 + Hide QS on Lockscreen + Disable quick settings panel on secured lockscreen Hide Silent Text - Hide silent text shown as header of silent notifications (Requires SystemUI restart) + Hide silent text shown as header of silent notifications 隱藏尾端按鈕 Hide footer buttons shown under notification stack @@ -556,6 +562,8 @@ Show percentage above volume slider Safety Warning Show warning on high volume + Colored Ringer Icon + Enable if selected ringer icon is invisible 選取標頭圖像 在快速設定面板上添加標頭圖像\n不要從“最近”資料夾中選擇檔案 @@ -622,7 +630,11 @@ User 啓用深度桌布 - 顯示類似iOS系統的深度桌布\n%s + Show iOS like depth wallpaper\n%s + Custom Images + Set custom images as depth wallpaper + Show on AOD + Show subject on always on display 淡入AOD 在AOD中為壁紙製作動畫並淡入淡出 前景圖 @@ -635,6 +647,13 @@ Move background and foreground layers at different speeds Foreground Sensitivity Background Sensitivity + AI model is downloaded on the device + AI model isn\'t available on the device (yet) + Extracting wallpaper subject… + Extracted wallpaper subject! + Failed to extract wallpaper subject! + AI model is not available! + Must use custom lockscreen clock 狀態列 狀態列時鐘 Chip @@ -658,6 +677,8 @@ 從快速設定面板上隱藏運營商組 隱藏狀態圖示 移除時間、日期和電池圖示 + Custom Statusbar Clock Size + Set a custom size for Statusbar Clock Statusbar Clock Size 鎖定熒幕 隱藏鎖屏運營商 @@ -912,4 +933,106 @@ 點按預覽進行選取 不要再次顯示 To ensure proper functionality, enabling the Iconify module in LSPosed is mandatory for android 14 and above.\n\nAfter that, enable the fixes from: Tweaks > Xposed Menu > Themes > Others. + + + Unit + Verifying location + Select location + Enter location + Location + Set custom location + Cannot retrieve location! + Network geolocation is disabled.\n\nSet a custom location or enable network location. + Enable + Settings + Automatic updates + Check for new versions once in a while + Check updates over WiFi only + Check for updates in background only when connected to wifi + Metric (\u00b0C) + Imperial (\u00b0F) + Update + Enable + Update interval + 1 hour + 2 hours + 4 hours + 6 hours + 12 hours + Weather + Condition Icon Pack + Find more icon packs + Disabled + Error + Waiting \u2026 + No weather data + Error loading weather data + Waiting\u2026 + Updating\u2026 + Service disabled + Now + Background shadow + Service settings + Unknown + Error loading weather data + Weather + Last update: + No location available + No network found + Location permissions not granted + Select location + Search for a location + Enable Location Permissions + Location permissions are required to fetch weather data. Click OK to open Settings. + + Cloudy + Rainy + Sunny + Stormy + Snowy + Windy + Misty + + Weather on Lockscreen + Show weather on lockscreen + Last Update Time + Weather Provider + OpenWeatherMap API Key + OpenWeatherMap API Key required + Please enter your OpenWeatherMap API key to fetch weather data. + Show Location + Show Location before icon + Show Condition + Show Condition after temperature + Show Humidity + Show Humidity in a new row + Show Wind + Show Wind in a new row + Text Size + Image Size + Text Color + Set custom color for text + Custom Color + Custom color for all text in weather view + Custom location + Set custom location for weather + Custom Margins + Set custom margins for weather + Top margin + Center Layout + Side Margin + Bottom Margin + Center Weather View + Move weather view to center horizontally + + Weather Background Style + Default + Semi-transparent box + Semi-transparent box (round) + Q-Beta pill + Rounded, simple and with accent + Rounded, transparent and with accent + Gradient + Dark with accented borders + Dark with gradient borders From f64d0f033c5c11b606bee27e8282da84d6043c95 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Sun, 18 Aug 2024 09:24:49 +0200 Subject: [PATCH 166/369] WeatherWork: return null location when using custom location --- app/src/main/java/com/drdisagree/iconify/weather/WeatherWork.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/java/com/drdisagree/iconify/weather/WeatherWork.kt b/app/src/main/java/com/drdisagree/iconify/weather/WeatherWork.kt index 696b59319..9fb0ba218 100644 --- a/app/src/main/java/com/drdisagree/iconify/weather/WeatherWork.kt +++ b/app/src/main/java/com/drdisagree/iconify/weather/WeatherWork.kt @@ -127,6 +127,8 @@ class WeatherWork(val mContext: Context, workerParams: WorkerParameters) : @get:SuppressLint("MissingPermission") private val currentLocation: Location? get() { + if (isCustomLocation(mContext)) return null + val lm = mContext.getSystemService(Context.LOCATION_SERVICE) as LocationManager if (!doCheckLocationEnabled()) { From 606ac2e55ee88ef43002c6604500e3a0bcfd1af2 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Tue, 20 Aug 2024 02:08:36 +0600 Subject: [PATCH 167/369] Status Bar: Add colored notification icon (Closes #570) --- .../drdisagree/iconify/common/Preferences.kt | 1 + .../iconify/ui/fragments/XposedMenu.kt | 8 + .../iconify/ui/fragments/XposedOthers.kt | 56 -- .../iconify/ui/fragments/XposedStatusbar.kt | 112 ++++ .../drdisagree/iconify/xposed/EntryList.kt | 2 + .../iconify/xposed/modules/Miscellaneous.kt | 196 ------- .../iconify/xposed/modules/Statusbar.kt | 528 ++++++++++++++++++ .../res/layout/fragment_xposed_others.xml | 37 -- .../res/layout/fragment_xposed_statusbar.xml | 76 +++ .../main/res/navigation/nav_xposed_menu.xml | 16 + app/src/main/res/values/strings.xml | 38 +- 11 files changed, 764 insertions(+), 306 deletions(-) create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedStatusbar.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/xposed/modules/Statusbar.kt create mode 100644 app/src/main/res/layout/fragment_xposed_statusbar.xml diff --git a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt index d2cf6fe4b..8249a56e4 100644 --- a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt +++ b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt @@ -66,6 +66,7 @@ object Preferences { const val HIDE_LOCKSCREEN_STATUSBAR = "xposed_hidelockscreenstatusbar" const val SB_CLOCK_SIZE_SWITCH = "xposed_sbclocksizeswitch" const val SB_CLOCK_SIZE = "xposed_sbclocksize" + const val COLORED_STATUSBAR_ICON = "xposed_coloredstatusbaricon" const val HIDE_LOCKSCREEN_CARRIER = "xposed_hidelockscreencarrier" const val HIDE_LOCKSCREEN_LOCK_ICON = "xposed_hidelockscreenlockicon" const val LIGHT_QSPANEL = "xposed_lightqspanel" diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedMenu.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedMenu.kt index ecadec703..508c0cee1 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedMenu.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedMenu.kt @@ -272,6 +272,14 @@ class XposedMenu : BaseFragment() { R.drawable.ic_colored_battery ) ) + add( + arrayOf( + R.id.action_xposedMenu_to_xposedStatusbar, + resources.getString(R.string.activity_title_statusbar), + resources.getString(R.string.activity_desc_statusbar), + R.drawable.ic_tweaks_statusbar + ) + ) add( arrayOf( R.id.action_xposedMenu_to_xposedVolumePanel, diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedOthers.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedOthers.kt index e6c76bc62..215ed474c 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedOthers.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedOthers.kt @@ -13,14 +13,10 @@ import com.drdisagree.iconify.common.Const.SWITCH_ANIMATION_DELAY import com.drdisagree.iconify.common.Preferences.FIXED_STATUS_ICONS_SIDEMARGIN import com.drdisagree.iconify.common.Preferences.FIXED_STATUS_ICONS_SWITCH import com.drdisagree.iconify.common.Preferences.FIXED_STATUS_ICONS_TOPMARGIN -import com.drdisagree.iconify.common.Preferences.HIDE_LOCKSCREEN_CARRIER import com.drdisagree.iconify.common.Preferences.HIDE_LOCKSCREEN_LOCK_ICON -import com.drdisagree.iconify.common.Preferences.HIDE_LOCKSCREEN_STATUSBAR import com.drdisagree.iconify.common.Preferences.HIDE_STATUS_ICONS_SWITCH import com.drdisagree.iconify.common.Preferences.QSPANEL_HIDE_CARRIER import com.drdisagree.iconify.common.Preferences.QSPANEL_STATUSICONSBG_SWITCH -import com.drdisagree.iconify.common.Preferences.SB_CLOCK_SIZE -import com.drdisagree.iconify.common.Preferences.SB_CLOCK_SIZE_SWITCH import com.drdisagree.iconify.config.RPrefs.getBoolean import com.drdisagree.iconify.config.RPrefs.getInt import com.drdisagree.iconify.config.RPrefs.putBoolean @@ -73,58 +69,6 @@ class XposedOthers : BaseFragment() { ) } - // SB Clock Size Switch - binding.sbClockSizeSwitch.isSwitchChecked = getBoolean(SB_CLOCK_SIZE_SWITCH, false) - binding.sbClockSizeSwitch.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - binding.sbClockSize.visibility = if (isChecked) { - putBoolean(SB_CLOCK_SIZE_SWITCH, true) - putInt(SB_CLOCK_SIZE, binding.sbClockSize.sliderValue) - View.VISIBLE - } else { - putInt(SB_CLOCK_SIZE, 14) - putBoolean(SB_CLOCK_SIZE_SWITCH, false) - View.GONE - } - } - - // SB Clock Size Slider - binding.sbClockSize.sliderValue = getInt(SB_CLOCK_SIZE, 14) - binding.sbClockSize.setOnSliderTouchListener(object : Slider.OnSliderTouchListener { - override fun onStartTrackingTouch(slider: Slider) {} - - override fun onStopTrackingTouch(slider: Slider) { - putInt(SB_CLOCK_SIZE, slider.value.toInt()) - } - }) - binding.sbClockSize.visibility = if (binding.sbClockSizeSwitch.isSwitchChecked) { - View.VISIBLE - } else { - View.GONE - } - - // Hide lockscreen carrier - binding.hideLockscreenCarrier.isSwitchChecked = getBoolean(HIDE_LOCKSCREEN_CARRIER, false) - binding.hideLockscreenCarrier.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(HIDE_LOCKSCREEN_CARRIER, isChecked) - - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - } - - // Hide lockscreen statusbar - binding.hideLockscreenStatusbar.isSwitchChecked = - getBoolean(HIDE_LOCKSCREEN_STATUSBAR, false) - binding.hideLockscreenStatusbar.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(HIDE_LOCKSCREEN_STATUSBAR, isChecked) - - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - } - // Hide lockscreen lock icon binding.hideLockscreenLockIcon.isSwitchChecked = getBoolean(HIDE_LOCKSCREEN_LOCK_ICON, false) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedStatusbar.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedStatusbar.kt new file mode 100644 index 000000000..e8d6f947c --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedStatusbar.kt @@ -0,0 +1,112 @@ +package com.drdisagree.iconify.ui.fragments + +import android.os.Bundle +import android.os.Handler +import android.os.Looper +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.CompoundButton +import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Const.SWITCH_ANIMATION_DELAY +import com.drdisagree.iconify.common.Preferences.COLORED_STATUSBAR_ICON +import com.drdisagree.iconify.common.Preferences.HIDE_LOCKSCREEN_CARRIER +import com.drdisagree.iconify.common.Preferences.HIDE_LOCKSCREEN_STATUSBAR +import com.drdisagree.iconify.common.Preferences.SB_CLOCK_SIZE +import com.drdisagree.iconify.common.Preferences.SB_CLOCK_SIZE_SWITCH +import com.drdisagree.iconify.config.RPrefs.getBoolean +import com.drdisagree.iconify.config.RPrefs.getInt +import com.drdisagree.iconify.config.RPrefs.putBoolean +import com.drdisagree.iconify.config.RPrefs.putInt +import com.drdisagree.iconify.databinding.FragmentXposedStatusbarBinding +import com.drdisagree.iconify.ui.base.BaseFragment +import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader +import com.drdisagree.iconify.utils.SystemUtil +import com.google.android.material.slider.Slider + +class XposedStatusbar : BaseFragment() { + + private lateinit var binding: FragmentXposedStatusbarBinding + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View { + binding = FragmentXposedStatusbarBinding.inflate(inflater, container, false) + val view: View = binding.getRoot() + + // Header + setHeader( + requireContext(), + getParentFragmentManager(), + binding.header.toolbar, + R.string.activity_title_statusbar + ) + + // SB Clock Size Switch + binding.sbClockSizeSwitch.isSwitchChecked = getBoolean(SB_CLOCK_SIZE_SWITCH, false) + binding.sbClockSizeSwitch.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> + binding.sbClockSize.visibility = if (isChecked) { + putBoolean(SB_CLOCK_SIZE_SWITCH, true) + putInt(SB_CLOCK_SIZE, binding.sbClockSize.sliderValue) + View.VISIBLE + } else { + putInt(SB_CLOCK_SIZE, 14) + putBoolean(SB_CLOCK_SIZE_SWITCH, false) + View.GONE + } + } + + // SB Clock Size Slider + binding.sbClockSize.sliderValue = getInt(SB_CLOCK_SIZE, 14) + binding.sbClockSize.setOnSliderTouchListener(object : Slider.OnSliderTouchListener { + override fun onStartTrackingTouch(slider: Slider) {} + + override fun onStopTrackingTouch(slider: Slider) { + putInt(SB_CLOCK_SIZE, slider.value.toInt()) + } + }) + binding.sbClockSize.visibility = if (binding.sbClockSizeSwitch.isSwitchChecked) { + View.VISIBLE + } else { + View.GONE + } + + // Colored statusbar icons + binding.coloredSbIcon.isSwitchChecked = getBoolean(COLORED_STATUSBAR_ICON, false) + binding.coloredSbIcon.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> + putBoolean(COLORED_STATUSBAR_ICON, isChecked) + + Handler(Looper.getMainLooper()).postDelayed( + { SystemUtil.handleSystemUIRestart() }, + SWITCH_ANIMATION_DELAY + ) + } + + // Hide lockscreen carrier + binding.hideLockscreenCarrier.isSwitchChecked = getBoolean(HIDE_LOCKSCREEN_CARRIER, false) + binding.hideLockscreenCarrier.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> + putBoolean(HIDE_LOCKSCREEN_CARRIER, isChecked) + + Handler(Looper.getMainLooper()).postDelayed( + { SystemUtil.handleSystemUIRestart() }, + SWITCH_ANIMATION_DELAY + ) + } + + // Hide lockscreen statusbar + binding.hideLockscreenStatusbar.isSwitchChecked = + getBoolean(HIDE_LOCKSCREEN_STATUSBAR, false) + binding.hideLockscreenStatusbar.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> + putBoolean(HIDE_LOCKSCREEN_STATUSBAR, isChecked) + + Handler(Looper.getMainLooper()).postDelayed( + { SystemUtil.handleSystemUIRestart() }, + SWITCH_ANIMATION_DELAY + ) + } + + return view + } +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/EntryList.kt b/app/src/main/java/com/drdisagree/iconify/xposed/EntryList.kt index 85c42ceaa..cb2d354dd 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/EntryList.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/EntryList.kt @@ -15,6 +15,7 @@ import com.drdisagree.iconify.xposed.modules.LockscreenWeather import com.drdisagree.iconify.xposed.modules.Miscellaneous import com.drdisagree.iconify.xposed.modules.QSTransparency import com.drdisagree.iconify.xposed.modules.QuickSettings +import com.drdisagree.iconify.xposed.modules.Statusbar import com.drdisagree.iconify.xposed.modules.VolumePanel import com.drdisagree.iconify.xposed.modules.themes.QSBlackThemeA13 import com.drdisagree.iconify.xposed.modules.themes.QSBlackThemeA14 @@ -42,6 +43,7 @@ object EntryList { Miscellaneous::class.java, QSTransparency::class.java, QuickSettings::class.java, + Statusbar::class.java, BatteryStyleManager::class.java, VolumePanel::class.java ) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt index a3c65bf15..859e84b4a 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt @@ -3,9 +3,6 @@ package com.drdisagree.iconify.xposed.modules import android.annotation.SuppressLint import android.content.Context import android.os.Build -import android.os.Bundle -import android.text.Editable -import android.text.TextWatcher import android.util.TypedValue import android.view.Gravity import android.view.View @@ -18,26 +15,15 @@ import com.drdisagree.iconify.common.Preferences.FIXED_STATUS_ICONS_SIDEMARGIN import com.drdisagree.iconify.common.Preferences.FIXED_STATUS_ICONS_SWITCH import com.drdisagree.iconify.common.Preferences.FIXED_STATUS_ICONS_TOPMARGIN import com.drdisagree.iconify.common.Preferences.HIDE_DATA_DISABLED_ICON -import com.drdisagree.iconify.common.Preferences.HIDE_LOCKSCREEN_CARRIER import com.drdisagree.iconify.common.Preferences.HIDE_LOCKSCREEN_LOCK_ICON -import com.drdisagree.iconify.common.Preferences.HIDE_LOCKSCREEN_STATUSBAR import com.drdisagree.iconify.common.Preferences.HIDE_STATUS_ICONS_SWITCH import com.drdisagree.iconify.common.Preferences.QSPANEL_HIDE_CARRIER -import com.drdisagree.iconify.common.Preferences.SB_CLOCK_SIZE -import com.drdisagree.iconify.common.Preferences.SB_CLOCK_SIZE_SWITCH import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.HookRes.Companion.resParams import com.drdisagree.iconify.xposed.ModPack -import com.drdisagree.iconify.xposed.modules.utils.Helpers.findClassInArray -import com.drdisagree.iconify.xposed.modules.utils.StatusBarClock.getCenterClockView -import com.drdisagree.iconify.xposed.modules.utils.StatusBarClock.getLeftClockView -import com.drdisagree.iconify.xposed.modules.utils.StatusBarClock.getRightClockView -import com.drdisagree.iconify.xposed.modules.utils.StatusBarClock.setClockGravity import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge.hookAllMethods -import de.robv.android.xposed.XposedBridge.log import de.robv.android.xposed.XposedHelpers.callMethod -import de.robv.android.xposed.XposedHelpers.findAndHookMethod import de.robv.android.xposed.XposedHelpers.findClass import de.robv.android.xposed.XposedHelpers.findClassIfExists import de.robv.android.xposed.XposedHelpers.getObjectField @@ -52,8 +38,6 @@ class Miscellaneous(context: Context?) : ModPack(context!!) { private var qsCarrierGroupHidden = false private var hideStatusIcons = false private var fixedStatusIcons = false - private var hideLockscreenCarrier = false - private var hideLockscreenStatusbar = false private var hideLockscreenLockIcon = false private var hideDataDisabledIcon = false private var sideMarginStatusIcons = 0 @@ -61,14 +45,6 @@ class Miscellaneous(context: Context?) : ModPack(context!!) { private var statusIcons: LinearLayout? = null private var statusIconContainer: LinearLayout? = null private var mobileSignalControllerParam: Any? = null - private var sbClockSizeSwitch = false - private var sbClockSize = 14 - private var mClockView: TextView? = null - private var mCenterClockView: TextView? = null - private var mRightClockView: TextView? = null - private var mLeftClockSize = 14 - private var mCenterClockSize = 14 - private var mRightClockSize = 14 override fun updatePrefs(vararg key: String) { if (Xprefs == null) return @@ -79,12 +55,8 @@ class Miscellaneous(context: Context?) : ModPack(context!!) { fixedStatusIcons = getBoolean(FIXED_STATUS_ICONS_SWITCH, false) topMarginStatusIcons = getInt(FIXED_STATUS_ICONS_TOPMARGIN, 8) sideMarginStatusIcons = getInt(FIXED_STATUS_ICONS_SIDEMARGIN, 0) - hideLockscreenCarrier = getBoolean(HIDE_LOCKSCREEN_CARRIER, false) - hideLockscreenStatusbar = getBoolean(HIDE_LOCKSCREEN_STATUSBAR, false) hideLockscreenLockIcon = getBoolean(HIDE_LOCKSCREEN_LOCK_ICON, false) hideDataDisabledIcon = getBoolean(HIDE_DATA_DISABLED_ICON, false) - sbClockSizeSwitch = getBoolean(SB_CLOCK_SIZE_SWITCH, false) - sbClockSize = getInt(SB_CLOCK_SIZE, 14) } if (key.isNotEmpty()) { @@ -105,18 +77,6 @@ class Miscellaneous(context: Context?) : ModPack(context!!) { fixedStatusIconsA12() } - if (it == SB_CLOCK_SIZE_SWITCH || - it == SB_CLOCK_SIZE - ) { - setClockSize() - } - - if (it == HIDE_LOCKSCREEN_CARRIER || - it == HIDE_LOCKSCREEN_STATUSBAR - ) { - hideLockscreenCarrierOrStatusbar() - } - if (it == HIDE_LOCKSCREEN_LOCK_ICON) { hideLockscreenLockIcon() } @@ -135,10 +95,8 @@ class Miscellaneous(context: Context?) : ModPack(context!!) { hideQSCarrierGroup() hideStatusIcons() fixedStatusIconsA12() - hideLockscreenCarrierOrStatusbar() hideLockscreenLockIcon() hideDataDisabledIcon(loadPackageParam) - applyClockSize(loadPackageParam) } private fun hideElements(loadPackageParam: LoadPackageParam) { @@ -709,70 +667,6 @@ class Miscellaneous(context: Context?) : ModPack(context!!) { } } - private fun hideLockscreenCarrierOrStatusbar() { - val resParam: InitPackageResourcesParam = resParams[SYSTEMUI_PACKAGE] ?: return - - try { - resParam.res.hookLayout( - SYSTEMUI_PACKAGE, - "layout", - "keyguard_status_bar", - object : XC_LayoutInflated() { - override fun handleLayoutInflated(liparam: LayoutInflatedParam) { - if (hideLockscreenCarrier) { - try { - liparam.view.findViewById( - liparam.res.getIdentifier( - "keyguard_carrier_text", - "id", - mContext.packageName - ) - ).apply { - layoutParams.height = 0 - visibility = View.INVISIBLE - requestLayout() - } - } catch (ignored: Throwable) { - } - } - - if (hideLockscreenStatusbar) { - try { - liparam.view.findViewById( - liparam.res.getIdentifier( - "status_icon_area", - "id", - mContext.packageName - ) - ).apply { - layoutParams.height = 0 - visibility = View.INVISIBLE - requestLayout() - } - } catch (ignored: Throwable) { - } - - try { - liparam.view.findViewById( - liparam.res.getIdentifier( - "keyguard_carrier_text", - "id", - mContext.packageName - ) - ).apply { - layoutParams.height = 0 - visibility = View.INVISIBLE - requestLayout() - } - } catch (ignored: Throwable) { - } - } - } - }) - } catch (ignored: Throwable) { - } - } - private fun hideLockscreenLockIcon() { val resParam: InitPackageResourcesParam = resParams[SYSTEMUI_PACKAGE] ?: return @@ -806,96 +700,6 @@ class Miscellaneous(context: Context?) : ModPack(context!!) { } } - private fun applyClockSize(loadPackageParam: LoadPackageParam) { - val collapsedStatusBarFragment = findClassInArray( - loadPackageParam.classLoader, - "$SYSTEMUI_PACKAGE.statusbar.phone.CollapsedStatusBarFragment", - "$SYSTEMUI_PACKAGE.statusbar.phone.fragment.CollapsedStatusBarFragment" - ) - - if (collapsedStatusBarFragment == null) { - log("$TAG - applyClockSize: CollapsedStatusBarFragment not found") - return - } - - findAndHookMethod(collapsedStatusBarFragment, - "onViewCreated", - View::class.java, - Bundle::class.java, - object : XC_MethodHook() { - override fun afterHookedMethod(param: MethodHookParam) { - mClockView = getLeftClockView(mContext, param) as? TextView - mCenterClockView = getCenterClockView(mContext, param) as? TextView - mRightClockView = getRightClockView(mContext, param) as? TextView - - mLeftClockSize = mClockView?.textSize?.toInt() ?: 14 - mCenterClockSize = mCenterClockView?.textSize?.toInt() ?: 14 - mRightClockSize = mRightClockView?.textSize?.toInt() ?: 14 - - setClockSize() - - val textChangeListener = object : TextWatcher { - override fun beforeTextChanged( - s: CharSequence, - start: Int, - count: Int, - after: Int - ) { - } - - override fun onTextChanged( - s: CharSequence, - start: Int, - before: Int, - count: Int - ) { - } - - override fun afterTextChanged(s: Editable) { - setClockSize() - } - } - - mClockView?.addTextChangedListener(textChangeListener) - mCenterClockView?.addTextChangedListener(textChangeListener) - mRightClockView?.addTextChangedListener(textChangeListener) - } - }) - - } - - @SuppressLint("RtlHardcoded") - private fun setClockSize() { - val leftClockSize = if (sbClockSizeSwitch) sbClockSize else mLeftClockSize - val centerClockSize = if (sbClockSizeSwitch) sbClockSize else mCenterClockSize - val rightClockSize = if (sbClockSizeSwitch) sbClockSize else mRightClockSize - val unit = if (sbClockSizeSwitch) TypedValue.COMPLEX_UNIT_SP else TypedValue.COMPLEX_UNIT_PX - - mClockView?.let { - it.setTextSize(unit, leftClockSize.toFloat()) - - if (sbClockSizeSwitch) { - setClockGravity(it, Gravity.LEFT or Gravity.CENTER) - } - } - - mCenterClockView?.let { - it.setTextSize(unit, centerClockSize.toFloat()) - - if (sbClockSizeSwitch) { - setClockGravity(it, Gravity.CENTER) - } - } - - mRightClockView?.let { - it.setTextSize(unit, rightClockSize.toFloat()) - - if (sbClockSizeSwitch) { - setClockGravity(it, Gravity.RIGHT or Gravity.CENTER) - } - } - } - companion object { private val TAG = "Iconify - ${Miscellaneous::class.java.simpleName}: " } diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/Statusbar.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/Statusbar.kt new file mode 100644 index 000000000..c67ff25bb --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/Statusbar.kt @@ -0,0 +1,528 @@ +package com.drdisagree.iconify.xposed.modules + +import android.annotation.SuppressLint +import android.app.ActivityManager +import android.content.Context +import android.graphics.Color +import android.graphics.drawable.Drawable +import android.os.Build +import android.os.Bundle +import android.text.Editable +import android.text.TextWatcher +import android.util.TypedValue +import android.view.Gravity +import android.view.View +import android.widget.LinearLayout +import android.widget.TextView +import com.drdisagree.iconify.common.Const.FRAMEWORK_PACKAGE +import com.drdisagree.iconify.common.Const.SYSTEMUI_PACKAGE +import com.drdisagree.iconify.common.Preferences.COLORED_STATUSBAR_ICON +import com.drdisagree.iconify.common.Preferences.HIDE_LOCKSCREEN_CARRIER +import com.drdisagree.iconify.common.Preferences.HIDE_LOCKSCREEN_STATUSBAR +import com.drdisagree.iconify.common.Preferences.SB_CLOCK_SIZE +import com.drdisagree.iconify.common.Preferences.SB_CLOCK_SIZE_SWITCH +import com.drdisagree.iconify.config.XPrefs.Xprefs +import com.drdisagree.iconify.xposed.HookRes.Companion.resParams +import com.drdisagree.iconify.xposed.ModPack +import com.drdisagree.iconify.xposed.modules.utils.Helpers.findClassInArray +import com.drdisagree.iconify.xposed.modules.utils.StatusBarClock.getCenterClockView +import com.drdisagree.iconify.xposed.modules.utils.StatusBarClock.getLeftClockView +import com.drdisagree.iconify.xposed.modules.utils.StatusBarClock.getRightClockView +import com.drdisagree.iconify.xposed.modules.utils.StatusBarClock.setClockGravity +import de.robv.android.xposed.XC_MethodHook +import de.robv.android.xposed.XC_MethodReplacement +import de.robv.android.xposed.XposedBridge.hookAllMethods +import de.robv.android.xposed.XposedBridge.log +import de.robv.android.xposed.XposedHelpers.callMethod +import de.robv.android.xposed.XposedHelpers.callStaticMethod +import de.robv.android.xposed.XposedHelpers.findAndHookMethod +import de.robv.android.xposed.XposedHelpers.findClass +import de.robv.android.xposed.XposedHelpers.findClassIfExists +import de.robv.android.xposed.XposedHelpers.getObjectField +import de.robv.android.xposed.XposedHelpers.setObjectField +import de.robv.android.xposed.callbacks.XC_InitPackageResources.InitPackageResourcesParam +import de.robv.android.xposed.callbacks.XC_LayoutInflated +import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam + +@SuppressLint("DiscouragedApi") +class Statusbar(context: Context?) : ModPack(context!!) { + + private var mColoredStatusbarIcon = false + private var sbClockSizeSwitch = false + private var sbClockSize = 14 + private var mClockView: TextView? = null + private var mCenterClockView: TextView? = null + private var mRightClockView: TextView? = null + private var mLeftClockSize = 14 + private var mCenterClockSize = 14 + private var mRightClockSize = 14 + private var hideLockscreenCarrier = false + private var hideLockscreenStatusbar = false + + override fun updatePrefs(vararg key: String) { + if (Xprefs == null) return + + Xprefs!!.apply { + mColoredStatusbarIcon = getBoolean(COLORED_STATUSBAR_ICON, false) + sbClockSizeSwitch = getBoolean(SB_CLOCK_SIZE_SWITCH, false) + sbClockSize = getInt(SB_CLOCK_SIZE, 14) + hideLockscreenCarrier = getBoolean(HIDE_LOCKSCREEN_CARRIER, false) + hideLockscreenStatusbar = getBoolean(HIDE_LOCKSCREEN_STATUSBAR, false) + } + + if (key.isNotEmpty()) { + key[0].let { + if (it == SB_CLOCK_SIZE_SWITCH || + it == SB_CLOCK_SIZE + ) { + setClockSize() + } + + if (it == HIDE_LOCKSCREEN_CARRIER || + it == HIDE_LOCKSCREEN_STATUSBAR + ) { + hideLockscreenCarrierOrStatusbar() + } + } + } + } + + override fun handleLoadPackage(loadPackageParam: LoadPackageParam) { + setColoredNotificationIcons(loadPackageParam) + hideLockscreenCarrierOrStatusbar() + applyClockSize(loadPackageParam) + } + + private fun setColoredNotificationIcons(loadPackageParam: LoadPackageParam) { + if (!mColoredStatusbarIcon) return + + val notificationIconContainerClass = findClass( + "$SYSTEMUI_PACKAGE.statusbar.phone.NotificationIconContainer", + loadPackageParam.classLoader + ) + val iconStateClass = findClass( + "$SYSTEMUI_PACKAGE.statusbar.phone.NotificationIconContainer\$IconState", + loadPackageParam.classLoader + ) + val legacyNotificationIconAreaControllerImplClass = findClassIfExists( + "$SYSTEMUI_PACKAGE.statusbar.phone.LegacyNotificationIconAreaControllerImpl", + loadPackageParam.classLoader + ) + val drawableSizeClass = findClassIfExists( + "$SYSTEMUI_PACKAGE.util.drawable.DrawableSize", + loadPackageParam.classLoader + ) + val scalingDrawableWrapperClass = findClass( + "$SYSTEMUI_PACKAGE.statusbar.ScalingDrawableWrapper", + loadPackageParam.classLoader + ) + val statusBarIconViewClass = findClass( + "$SYSTEMUI_PACKAGE.statusbar.StatusBarIconView", + loadPackageParam.classLoader + ) + + findAndHookMethod( + notificationIconContainerClass, + "applyIconStates", + @Suppress("UNCHECKED_CAST") + object : XC_MethodHook() { + override fun afterHookedMethod(param: MethodHookParam) { + val mIconStates: HashMap = getObjectField( + param.thisObject, + "mIconStates" + ) as HashMap + + for (icon in mIconStates.keys) { + removeTintForStatusbarIcon(icon) + } + } + } + ) + + findAndHookMethod( + iconStateClass, + "initFrom", + View::class.java, + object : XC_MethodHook() { + override fun afterHookedMethod(param: MethodHookParam) { + removeTintForStatusbarIcon(param) + } + } + ) + + findAndHookMethod( + iconStateClass, + "applyToView", + View::class.java, + object : XC_MethodHook() { + override fun afterHookedMethod(param: MethodHookParam) { + removeTintForStatusbarIcon(param) + } + } + ) + + hookAllMethods( + statusBarIconViewClass, + "updateIconColor", + object : XC_MethodReplacement() { + override fun replaceHookedMethod(param: MethodHookParam): Any? { + return null + } + } + ) + + legacyNotificationIconAreaControllerImplClass?.let { thisClass -> + hookAllMethods( + thisClass, + "updateTintForIcon", + object : XC_MethodHook() { + override fun afterHookedMethod(param: MethodHookParam) { + removeTintForStatusbarIcon(param) + + try { + val view = param.args[0] as View + callMethod( + view, + "setStaticDrawableColor", + 0 // StatusBarIconView.NO_COLOR + ) + callMethod( + view, + "setDecorColor", + Color.WHITE + ) + } catch (ignored: Throwable) { + } + } + } + ) + } + + try { + findAndHookMethod( + statusBarIconViewClass, + "getIcon", + Context::class.java, + Context::class.java, + "com.android.internal.statusbar.StatusBarIcon", + object : XC_MethodHook() { + override fun beforeHookedMethod(param: MethodHookParam) { + val sysuiContext = param.args[0] as Context + val context = param.args[1] as Context + val statusBarIcon = param.args[2] + + setNotificationIcon( + statusBarIcon, + context, + sysuiContext, + drawableSizeClass, + param, + scalingDrawableWrapperClass + ) + } + } + ) + } catch (ignored: Throwable) { + findAndHookMethod( + statusBarIconViewClass, + "getIcon", + "com.android.internal.statusbar.StatusBarIcon", + object : XC_MethodHook() { + override fun beforeHookedMethod(param: MethodHookParam) { + val sysuiContext = mContext + var context: Context? = null + val statusBarIcon = param.args[0] + val statusBarNotification = getObjectField( + param.thisObject, + "mNotification" + ) + + if (statusBarNotification != null) { + context = callMethod( + statusBarNotification, + "getPackageContext", + mContext + ) as Context? + } + + if (context == null) { + context = mContext + } + + setNotificationIcon( + statusBarIcon, + context, + sysuiContext, + drawableSizeClass, + param, + scalingDrawableWrapperClass + ) + } + } + ) + } + } + + private fun removeTintForStatusbarIcon(param: XC_MethodHook.MethodHookParam) { + val icon = param.args[0] as View + removeTintForStatusbarIcon(icon) + } + + private fun removeTintForStatusbarIcon(icon: View) { + try { + val pkgName = getObjectField( + getObjectField( + icon, + "mIcon" + ), + "pkg" + ) as String + + if (!pkgName.contains("systemui")) { + setObjectField( + icon, + "mCurrentSetColor", + 0 // StatusBarIconView.NO_COLOR + ) + callMethod( + icon, + "updateIconColor" + ) + } + } catch (ignored: Throwable) { + log(TAG + ignored) + } + } + + private fun setNotificationIcon( + statusBarIcon: Any?, + context: Context, + sysuiContext: Context, + drawableSize: Class<*>?, + param: XC_MethodHook.MethodHookParam, + scalingDrawableWrapper: Class<*> + ) { + var icon: Drawable + val res = sysuiContext.resources + val pkgName = getObjectField(statusBarIcon, "pkg") as String + + if (listOf("com.android", "systemui").any { pkgName.contains(it) }) { + return + } + + try { + icon = context.packageManager.getApplicationIcon(pkgName) + } catch (e: Throwable) { + return + } + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + val isLowRamDevice = callStaticMethod( + ActivityManager::class.java, + "isLowRamDeviceStatic" + ) as Boolean + + val maxIconSize = res.getDimensionPixelSize( + res.getIdentifier( + if (isLowRamDevice) { + "notification_small_icon_size_low_ram" + } else { + "notification_small_icon_size" + }, + "dimen", + FRAMEWORK_PACKAGE + ) + ) + + if (drawableSize != null) { + icon = callStaticMethod( + drawableSize, + "downscaleToSize", + res, + icon, + maxIconSize, + maxIconSize + ) as Drawable + } + } + + val typedValue = TypedValue() + res.getValue( + res.getIdentifier( + "status_bar_icon_scale_factor", + "dimen", + SYSTEMUI_PACKAGE + ), + typedValue, + true + ) + val scaleFactor = typedValue.float + + if (scaleFactor == 1f) { + param.result = icon + } else { + param.result = scalingDrawableWrapper.getConstructor( + Drawable::class.java, + Float::class.javaPrimitiveType + ).newInstance(icon, scaleFactor) + } + } + + private fun hideLockscreenCarrierOrStatusbar() { + val resParam: InitPackageResourcesParam = resParams[SYSTEMUI_PACKAGE] ?: return + + try { + resParam.res.hookLayout( + SYSTEMUI_PACKAGE, + "layout", + "keyguard_status_bar", + object : XC_LayoutInflated() { + override fun handleLayoutInflated(liparam: LayoutInflatedParam) { + if (hideLockscreenCarrier) { + try { + liparam.view.findViewById( + liparam.res.getIdentifier( + "keyguard_carrier_text", + "id", + mContext.packageName + ) + ).apply { + layoutParams.height = 0 + visibility = View.INVISIBLE + requestLayout() + } + } catch (ignored: Throwable) { + } + } + + if (hideLockscreenStatusbar) { + try { + liparam.view.findViewById( + liparam.res.getIdentifier( + "status_icon_area", + "id", + mContext.packageName + ) + ).apply { + layoutParams.height = 0 + visibility = View.INVISIBLE + requestLayout() + } + } catch (ignored: Throwable) { + } + + try { + liparam.view.findViewById( + liparam.res.getIdentifier( + "keyguard_carrier_text", + "id", + mContext.packageName + ) + ).apply { + layoutParams.height = 0 + visibility = View.INVISIBLE + requestLayout() + } + } catch (ignored: Throwable) { + } + } + } + }) + } catch (ignored: Throwable) { + } + } + + private fun applyClockSize(loadPackageParam: LoadPackageParam) { + val collapsedStatusBarFragment = findClassInArray( + loadPackageParam.classLoader, + "$SYSTEMUI_PACKAGE.statusbar.phone.CollapsedStatusBarFragment", + "$SYSTEMUI_PACKAGE.statusbar.phone.fragment.CollapsedStatusBarFragment" + ) + + if (collapsedStatusBarFragment == null) { + log(TAG + "CollapsedStatusBarFragment not found") + return + } + + findAndHookMethod(collapsedStatusBarFragment, + "onViewCreated", + View::class.java, + Bundle::class.java, + object : XC_MethodHook() { + override fun afterHookedMethod(param: MethodHookParam) { + mClockView = getLeftClockView(mContext, param) as? TextView + mCenterClockView = getCenterClockView(mContext, param) as? TextView + mRightClockView = getRightClockView(mContext, param) as? TextView + + mLeftClockSize = mClockView?.textSize?.toInt() ?: 14 + mCenterClockSize = mCenterClockView?.textSize?.toInt() ?: 14 + mRightClockSize = mRightClockView?.textSize?.toInt() ?: 14 + + setClockSize() + + val textChangeListener = object : TextWatcher { + override fun beforeTextChanged( + s: CharSequence, + start: Int, + count: Int, + after: Int + ) { + } + + override fun onTextChanged( + s: CharSequence, + start: Int, + before: Int, + count: Int + ) { + } + + override fun afterTextChanged(s: Editable) { + setClockSize() + } + } + + mClockView?.addTextChangedListener(textChangeListener) + mCenterClockView?.addTextChangedListener(textChangeListener) + mRightClockView?.addTextChangedListener(textChangeListener) + } + }) + + } + + @SuppressLint("RtlHardcoded") + private fun setClockSize() { + val leftClockSize = if (sbClockSizeSwitch) sbClockSize else mLeftClockSize + val centerClockSize = if (sbClockSizeSwitch) sbClockSize else mCenterClockSize + val rightClockSize = if (sbClockSizeSwitch) sbClockSize else mRightClockSize + val unit = if (sbClockSizeSwitch) TypedValue.COMPLEX_UNIT_SP else TypedValue.COMPLEX_UNIT_PX + + mClockView?.let { + it.setTextSize(unit, leftClockSize.toFloat()) + + if (sbClockSizeSwitch) { + setClockGravity(it, Gravity.LEFT or Gravity.CENTER) + } + } + + mCenterClockView?.let { + it.setTextSize(unit, centerClockSize.toFloat()) + + if (sbClockSizeSwitch) { + setClockGravity(it, Gravity.CENTER) + } + } + + mRightClockView?.let { + it.setTextSize(unit, rightClockSize.toFloat()) + + if (sbClockSizeSwitch) { + setClockGravity(it, Gravity.RIGHT or Gravity.CENTER) + } + } + } + + companion object { + private val TAG = "Iconify - ${Statusbar::class.java.simpleName}: " + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_xposed_others.xml b/app/src/main/res/layout/fragment_xposed_others.xml index 101e1a97b..612f54aa0 100644 --- a/app/src/main/res/layout/fragment_xposed_others.xml +++ b/app/src/main/res/layout/fragment_xposed_others.xml @@ -40,48 +40,11 @@ app:summaryText="@string/hide_status_icons_desc" app:titleText="@string/hide_status_icons_title" /> - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/navigation/nav_xposed_menu.xml b/app/src/main/res/navigation/nav_xposed_menu.xml index 022810f18..9d0a80ddf 100644 --- a/app/src/main/res/navigation/nav_xposed_menu.xml +++ b/app/src/main/res/navigation/nav_xposed_menu.xml @@ -107,6 +107,13 @@ app:exitAnim="@anim/fragment_fade_out" app:popEnterAnim="@anim/fragment_fade_in" app:popExitAnim="@anim/fragment_fade_out" /> + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a12a52c5d..0078539cf 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -455,7 +455,7 @@ Others Miscellaneous xposed tweaks - + Transparency Transparent QS Panel Make QS panel background transparent @@ -471,7 +471,7 @@ Might bootloop in some roms Blur Intensity - + For Pixel Roms Light Theme Light QS theme in light mode\nMust use custom QS Shape @@ -493,7 +493,7 @@ Fix Notification Footer Button Color Fix custom footer button style on android 14 - + QS Tile Vertical QS Tile Show label below QS icon @@ -509,7 +509,7 @@ Hide Footer Buttons Hide footer buttons shown under notification stack - + Battery Style Battery Width Battery Height @@ -594,7 +594,7 @@ Dotted Circle Battery Filled Circle Battery - + Volume Percentage Show percentage above volume slider Safety Warning @@ -602,7 +602,7 @@ Colored Ringer Icon Enable if selected ringer icon is invisible - + Pick Header Image Add header image on QS panel\nDo not select file from Recent Pick Image @@ -616,7 +616,7 @@ Alpha Gradient Add faded effect to the header image - + Custom Header Clock Add a custom clock on QS panel Clock Style @@ -636,7 +636,7 @@ Hide in Landscape Hide clock in landscape mode - + Custom Lockscreen Clock Enable custom lockscreen clock Auto Hide Clock @@ -670,7 +670,7 @@ Welcome back! User - + Enable Depth Wallpaper Show iOS like depth wallpaper\n%s Custom Images @@ -697,7 +697,7 @@ AI model is not available! Must use custom lockscreen clock - + Status Bar Statusbar Clock Chip Display chip behind statusbar clock @@ -715,20 +715,24 @@ Top Margin Side Margin - - QS Header - Hide Carrier Group - Hide carrier group from QS panel - Hide Status Icons - Remove time, date and battery icons + Custom Statusbar Clock Size Set a custom size for Statusbar Clock Statusbar Clock Size - Lock Screen + Colored Statusbar Icon + Show app icon as notification icon Hide LS Carrier Hide carrier name on lockscreen Hide LS Statusbar Hide statusbar on lockscreen + + + QS Header + Hide Carrier Group + Hide carrier group from QS panel + Hide Status Icons + Remove time, date and battery icons + Lock Screen Hide LS Lock Icon Hide lock icon view on lockscreen Fixed Status Icons From 9d466cbdfa6ec022a3cc8d5732731f63f9f26491 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Tue, 20 Aug 2024 14:40:50 +0200 Subject: [PATCH 168/369] BottomSheetWidget: setSelectedIndex - return if we haven't any arrayResId --- .../java/com/drdisagree/iconify/ui/widgets/BottomSheetWidget.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/widgets/BottomSheetWidget.kt b/app/src/main/java/com/drdisagree/iconify/ui/widgets/BottomSheetWidget.kt index 6439ea461..0a3bf311c 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/widgets/BottomSheetWidget.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/widgets/BottomSheetWidget.kt @@ -176,6 +176,7 @@ class BottomSheetWidget : RelativeLayout, IconsAdapter.OnItemClickListener { } fun setSelectedIndex(selectedIndex: Int) { + if (arrayResId == 0) return var idx = selectedIndex val list = listOf(*resources.getStringArray(arrayResId)) From 9054a2762cc774eafac6cae73e2f130d5720349f Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Tue, 20 Aug 2024 23:09:08 +0200 Subject: [PATCH 169/369] More proguard rules --- app/proguard-rules.pro | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 6bd43b94c..2a5463227 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -30,6 +30,10 @@ (android.content.Context); } +# Weather +-keepnames class com.drdisagree.iconify.weather.** +-keep class com.drdisagree.iconify.weather.** { *; } + # EventBus -keepattributes *Annotation* -keepclassmembers,allowoptimization,allowobfuscation class * { From 08edab366dafaabb8db50daacbf69f66928ab36c Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Tue, 20 Aug 2024 23:11:11 +0200 Subject: [PATCH 170/369] Removed useless logs & added clear prefs so we can clear weather prefs when clearing prefs from Iconify Settings --- .../iconify/weather/WeatherConfig.kt | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/weather/WeatherConfig.kt b/app/src/main/java/com/drdisagree/iconify/weather/WeatherConfig.kt index 2499c959f..577c942cf 100644 --- a/app/src/main/java/com/drdisagree/iconify/weather/WeatherConfig.kt +++ b/app/src/main/java/com/drdisagree/iconify/weather/WeatherConfig.kt @@ -5,7 +5,6 @@ import android.content.Context import android.content.Context.MODE_PRIVATE import android.content.SharedPreferences import android.content.pm.PackageManager -import android.util.Log import com.drdisagree.iconify.BuildConfig import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_LOCATION import com.drdisagree.iconify.common.Preferences.WEATHER_ICON_PACK @@ -44,7 +43,21 @@ object WeatherConfig { private fun getWeatherPrefs(context: Context): SharedPreferences { val deviceProtectedContext = context.createDeviceProtectedStorageContext() - return deviceProtectedContext.getSharedPreferences(WEATHER_PREFS, Context.MODE_PRIVATE) + return deviceProtectedContext.getSharedPreferences(WEATHER_PREFS, MODE_PRIVATE) + } + + fun clear(context: Context) { + getWeatherPrefs(context).edit().clear().apply() + val prefs = listOf( + WEATHER_PROVIDER, + WEATHER_UNITS, + WEATHER_UPDATE_INTERVAL, + WEATHER_OWM_KEY, + PREF_KEY_UPDATE_ERROR + ) + prefs.forEach { + getPrefs(context).edit().remove(it).apply() + } } fun getProvider(context: Context): AbstractWeatherProvider { @@ -106,7 +119,6 @@ object WeatherConfig { } fun setWeatherData(data: WeatherInfo, context: Context) { - Log.d("Weather", "Setting weather data " + data.toSerializedString()) getWeatherPrefs(context).edit().putString(PREF_KEY_WEATHER_DATA, data.toSerializedString()) .apply() getWeatherPrefs(context).edit().putLong(PREF_KEY_LAST_UPDATE, System.currentTimeMillis()) From 85553341afc7300d91216d2813d7722f5f679eb2 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Tue, 20 Aug 2024 23:13:07 +0200 Subject: [PATCH 171/369] CurrentWeatherView: remove useless stuff, no need to disable updates since the main switch will prevent that the weather will be inflated --- .../drdisagree/iconify/xposed/views/CurrentWeatherView.kt | 5 ----- 1 file changed, 5 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/views/CurrentWeatherView.kt b/app/src/main/java/com/drdisagree/iconify/xposed/views/CurrentWeatherView.kt index c0c38595c..1df5cec82 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/views/CurrentWeatherView.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/views/CurrentWeatherView.kt @@ -131,15 +131,10 @@ class CurrentWeatherView(context: Context, name: String) : LinearLayout(context) private fun enableUpdates() { if (mWeatherClient != null) { mWeatherClient.addObserver(this) - //WeatherScheduler.scheduleUpdateNow(mContext); queryAndUpdateWeather() } } - fun disableUpdates() { - mWeatherClient?.removeObserver(this) - } - private fun setErrorView(errorReason: Int) { var reQuery = false val errorText = when (errorReason) { From bf8796f898c272a2020cd4b0a23e1e616b251ddc Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Tue, 20 Aug 2024 23:21:59 +0200 Subject: [PATCH 172/369] XposedLockscreenWeather: misc fixes --- .../iconify/ui/fragments/XposedLockscreenWeather.kt | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt index 64e000457..470d80ecd 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt @@ -142,7 +142,8 @@ class XposedLockscreenWeather : BaseFragment(), OmniJawsClient.OmniJawsObserver binding.lockscreenWeatherUpdateInterval.setSelectedIndex(selectedIndex) binding.lockscreenWeatherUpdateInterval.setOnItemSelectedListener { putString(WEATHER_UPDATE_INTERVAL, mapping[it].toString()) - WeatherScheduler.scheduleUpdates(requireContext()) + handlePermissions() + forceRefreshWeatherSettings() } binding.lockscreenWeatherLastUpdate.setOnClickListener { @@ -258,6 +259,8 @@ class XposedLockscreenWeather : BaseFragment(), OmniJawsClient.OmniJawsObserver binding.lockscreenWeatherCustomLocation.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> putBoolean(WEATHER_CUSTOM_LOCATION, isChecked) binding.lockscreenWeatherCustomLocationMenu.isEnabled = isChecked + handlePermissions() + forceRefreshWeatherSettings() } val locationName = WeatherConfig.getLocationName(requireContext()) @@ -347,10 +350,15 @@ class XposedLockscreenWeather : BaseFragment(), OmniJawsClient.OmniJawsObserver super.onResume() mWeatherClient.addObserver(this) - handlePermissions() } + override fun onPause() { + super.onPause() + + mWeatherClient.removeObserver(this) + } + private fun showOwnKeyDialog() { MaterialAlertDialogBuilder(requireContext()) .setTitle(appContextLocale.getString(R.string.weather_provider_owm_key_title)) From dacf33c5e7889d09a57718c5faaa424257d4afa6 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Tue, 20 Aug 2024 23:26:23 +0200 Subject: [PATCH 173/369] Clear Weather Prefs when clearing other preferences --- .../main/java/com/drdisagree/iconify/ui/fragments/Settings.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/Settings.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/Settings.kt index 1008153ef..3a3369360 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/Settings.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/Settings.kt @@ -62,6 +62,7 @@ import com.drdisagree.iconify.utils.SystemUtil.saveBootId import com.drdisagree.iconify.utils.SystemUtil.saveVersionCode import com.drdisagree.iconify.utils.helper.ImportExport.exportSettings import com.drdisagree.iconify.utils.helper.ImportExport.importSettings +import com.drdisagree.iconify.weather.WeatherConfig import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.topjohnwu.superuser.Shell import java.util.Date @@ -497,6 +498,7 @@ class Settings : BaseFragment() { private const val NUM_CLICKS_REQUIRED = 7 fun disableEverything() { + WeatherConfig.clear(appContext) Prefs.clearAllPrefs() RPrefs.clearAllPrefs() From 89f430ba4c88a6aada9e9301bd341501604bd977 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Wed, 21 Aug 2024 07:17:09 +0600 Subject: [PATCH 174/369] Depth Wallpaper: Move unzoom option from experimental features (Closes #576) --- .../iconify/ui/fragments/Experimental.kt | 12 ------------ .../ui/fragments/XposedDepthWallpaper.kt | 18 ++++++++++++++++++ .../main/res/layout/fragment_experimental.xml | 7 ------- .../layout/fragment_xposed_depth_wallpaper.xml | 7 +++++++ 4 files changed, 25 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/Experimental.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/Experimental.kt index fd0a78b1e..11189e6ae 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/Experimental.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/Experimental.kt @@ -11,7 +11,6 @@ import com.drdisagree.iconify.R import com.drdisagree.iconify.common.Const.SWITCH_ANIMATION_DELAY import com.drdisagree.iconify.common.Preferences.HEADER_IMAGE_OVERLAP import com.drdisagree.iconify.common.Preferences.HIDE_DATA_DISABLED_ICON -import com.drdisagree.iconify.common.Preferences.UNZOOM_DEPTH_WALLPAPER import com.drdisagree.iconify.config.RPrefs.getBoolean import com.drdisagree.iconify.config.RPrefs.putBoolean import com.drdisagree.iconify.databinding.FragmentExperimentalBinding @@ -50,17 +49,6 @@ class Experimental : BaseFragment() { ) } - // Unzoom depth wallpaper - binding.unzoomDepthWallpaper.isSwitchChecked = getBoolean(UNZOOM_DEPTH_WALLPAPER, false) - binding.unzoomDepthWallpaper.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(UNZOOM_DEPTH_WALLPAPER, isChecked) - - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.restartSystemUI() }, - SWITCH_ANIMATION_DELAY - ) - } - // Hide data disabled icon binding.hideDataDisabledIcon.isSwitchChecked = getBoolean(HIDE_DATA_DISABLED_ICON, false) binding.hideDataDisabledIcon.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedDepthWallpaper.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedDepthWallpaper.kt index cdabbf61c..bf1282720 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedDepthWallpaper.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedDepthWallpaper.kt @@ -25,6 +25,7 @@ import com.drdisagree.iconify.common.Preferences.DEPTH_WALLPAPER_FOREGROUND_MOVE import com.drdisagree.iconify.common.Preferences.DEPTH_WALLPAPER_ON_AOD import com.drdisagree.iconify.common.Preferences.DEPTH_WALLPAPER_PARALLAX_EFFECT import com.drdisagree.iconify.common.Preferences.DEPTH_WALLPAPER_SWITCH +import com.drdisagree.iconify.common.Preferences.UNZOOM_DEPTH_WALLPAPER import com.drdisagree.iconify.common.Resources.DEPTH_WALL_BG_DIR import com.drdisagree.iconify.common.Resources.DEPTH_WALL_FG_DIR import com.drdisagree.iconify.config.RPrefs @@ -277,6 +278,17 @@ class XposedDepthWallpaper : BaseFragment() { true } + // Unzoom depth wallpaper + binding.unzoomDepthWallpaper.isSwitchChecked = getBoolean(UNZOOM_DEPTH_WALLPAPER, false) + binding.unzoomDepthWallpaper.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> + putBoolean(UNZOOM_DEPTH_WALLPAPER, isChecked) + + Handler(Looper.getMainLooper()).postDelayed( + { SystemUtil.restartSystemUI() }, + SWITCH_ANIMATION_DELAY + ) + } + updateEnabledState() return view @@ -294,6 +306,7 @@ class XposedDepthWallpaper : BaseFragment() { binding.parallaxEffect.setEnabled(isDepthWallpaperEnabled) binding.foregroundSensitivity.setEnabled(isDepthWallpaperEnabled) binding.backgroundSensitivity.setEnabled(isDepthWallpaperEnabled) + binding.unzoomDepthWallpaper.setEnabled(isDepthWallpaperEnabled) val isBelowA14Feature = Build.VERSION.SDK_INT <= Build.VERSION_CODES.TIRAMISU @@ -307,6 +320,11 @@ class XposedDepthWallpaper : BaseFragment() { } else { View.GONE } + binding.unzoomDepthWallpaper.visibility = if (isBelowA14Feature) { + View.VISIBLE + } else { + View.GONE + } binding.depthWallpaperOnAod.visibility = if (isBelowA14Feature) { View.GONE } else { diff --git a/app/src/main/res/layout/fragment_experimental.xml b/app/src/main/res/layout/fragment_experimental.xml index de079c3ce..02c2cd65d 100644 --- a/app/src/main/res/layout/fragment_experimental.xml +++ b/app/src/main/res/layout/fragment_experimental.xml @@ -28,13 +28,6 @@ app:summaryText="@string/overlap_header_image_desc" app:titleText="@string/overlap_header_image_title" /> - - + + From 7334bcdda43e745d33aabfe2da726c7f037b5d2d Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Wed, 21 Aug 2024 13:07:15 +0600 Subject: [PATCH 175/369] Update proguard-rules.pro --- app/proguard-rules.pro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 2a5463227..f1d4d6271 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -31,7 +31,7 @@ } # Weather --keepnames class com.drdisagree.iconify.weather.** +-keepnames class com.drdisagree.iconify.weather.** -keep class com.drdisagree.iconify.weather.** { *; } # EventBus From cb361f0222a26b95c78da3d310d45e3b19d9baa6 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Wed, 21 Aug 2024 14:35:13 +0600 Subject: [PATCH 176/369] Refactor weather view directory --- .../com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt | 2 +- .../iconify/xposed/{ => modules}/views/CurrentWeatherView.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename app/src/main/java/com/drdisagree/iconify/xposed/{ => modules}/views/CurrentWeatherView.kt (99%) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt index 234d74f37..e620e34fc 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt @@ -25,7 +25,7 @@ import com.drdisagree.iconify.common.Preferences.WEATHER_TEXT_SIZE import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.ModPack import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.setMargins -import com.drdisagree.iconify.xposed.views.CurrentWeatherView +import com.drdisagree.iconify.xposed.modules.views.CurrentWeatherView import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge.hookAllMethods import de.robv.android.xposed.XposedHelpers.findClass diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/views/CurrentWeatherView.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/views/CurrentWeatherView.kt similarity index 99% rename from app/src/main/java/com/drdisagree/iconify/xposed/views/CurrentWeatherView.kt rename to app/src/main/java/com/drdisagree/iconify/xposed/modules/views/CurrentWeatherView.kt index 1df5cec82..0d214bbd7 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/views/CurrentWeatherView.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/views/CurrentWeatherView.kt @@ -1,4 +1,4 @@ -package com.drdisagree.iconify.xposed.views +package com.drdisagree.iconify.xposed.modules.views import android.annotation.SuppressLint import android.content.Context From 1ddcecd05029135f4a6e89df4d8b924fd78d4bd2 Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Wed, 21 Aug 2024 14:39:26 +0600 Subject: [PATCH 177/369] Refactor weather package --- app/proguard-rules.pro | 4 ++-- app/src/main/AndroidManifest.xml | 2 +- .../iconify/services/WeatherScheduler.kt | 4 ++-- .../iconify/ui/fragments/Settings.kt | 2 +- .../ui/fragments/XposedLockscreenWeather.kt | 2 +- .../drdisagree/iconify/utils/OmniJawsClient.kt | 2 +- .../weather/AbstractWeatherProvider.kt | 6 +++--- .../{ => utils}/weather/WeatherConfig.kt | 6 +++--- .../weather/WeatherContentProvider.kt | 2 +- .../iconify/{ => utils}/weather/WeatherInfo.kt | 2 +- .../iconify/{ => utils}/weather/WeatherWork.kt | 18 +++++++++--------- .../weather/providers/OpenMeteoProvider.kt | 6 +++--- .../providers/OpenWeatherMapProvider.kt | 8 ++++---- 13 files changed, 32 insertions(+), 32 deletions(-) rename app/src/main/java/com/drdisagree/iconify/{ => utils}/weather/AbstractWeatherProvider.kt (96%) rename app/src/main/java/com/drdisagree/iconify/{ => utils}/weather/WeatherConfig.kt (96%) rename app/src/main/java/com/drdisagree/iconify/{ => utils}/weather/WeatherContentProvider.kt (99%) rename app/src/main/java/com/drdisagree/iconify/{ => utils}/weather/WeatherInfo.kt (99%) rename app/src/main/java/com/drdisagree/iconify/{ => utils}/weather/WeatherWork.kt (94%) rename app/src/main/java/com/drdisagree/iconify/{ => utils}/weather/providers/OpenMeteoProvider.kt (98%) rename app/src/main/java/com/drdisagree/iconify/{ => utils}/weather/providers/OpenWeatherMapProvider.kt (97%) diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index f1d4d6271..dae69ac1a 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -31,8 +31,8 @@ } # Weather --keepnames class com.drdisagree.iconify.weather.** --keep class com.drdisagree.iconify.weather.** { *; } +-keepnames class com.drdisagree.iconify.utils.weather.** +-keep class com.drdisagree.iconify.utils.weather.** { *; } # EventBus -keepattributes *Annotation* diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9521a067a..022aa2a98 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -201,7 +201,7 @@ android:exported="true" tools:ignore="ExportedContentProvider" /> diff --git a/app/src/main/java/com/drdisagree/iconify/services/WeatherScheduler.kt b/app/src/main/java/com/drdisagree/iconify/services/WeatherScheduler.kt index 852207e76..87f84d2a9 100644 --- a/app/src/main/java/com/drdisagree/iconify/services/WeatherScheduler.kt +++ b/app/src/main/java/com/drdisagree/iconify/services/WeatherScheduler.kt @@ -9,8 +9,8 @@ import androidx.work.OneTimeWorkRequest import androidx.work.PeriodicWorkRequest import androidx.work.WorkManager import com.drdisagree.iconify.BuildConfig -import com.drdisagree.iconify.weather.WeatherConfig -import com.drdisagree.iconify.weather.WeatherWork +import com.drdisagree.iconify.utils.weather.WeatherConfig +import com.drdisagree.iconify.utils.weather.WeatherWork import java.util.concurrent.TimeUnit object WeatherScheduler { diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/Settings.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/Settings.kt index 3a3369360..599e5b947 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/Settings.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/Settings.kt @@ -62,7 +62,7 @@ import com.drdisagree.iconify.utils.SystemUtil.saveBootId import com.drdisagree.iconify.utils.SystemUtil.saveVersionCode import com.drdisagree.iconify.utils.helper.ImportExport.exportSettings import com.drdisagree.iconify.utils.helper.ImportExport.importSettings -import com.drdisagree.iconify.weather.WeatherConfig +import com.drdisagree.iconify.utils.weather.WeatherConfig import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.topjohnwu.superuser.Shell import java.util.Date diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt index 470d80ecd..4f68bf564 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt @@ -67,7 +67,7 @@ import com.drdisagree.iconify.ui.dialogs.EditTextDialog import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader import com.drdisagree.iconify.utils.OmniJawsClient import com.drdisagree.iconify.utils.SystemUtil -import com.drdisagree.iconify.weather.WeatherConfig +import com.drdisagree.iconify.utils.weather.WeatherConfig import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.slider.Slider import java.util.Locale diff --git a/app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.kt b/app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.kt index a4d983d4c..51b91043c 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.kt @@ -15,7 +15,7 @@ import android.text.TextUtils import android.text.format.DateFormat import android.util.Log import com.drdisagree.iconify.BuildConfig -import com.drdisagree.iconify.weather.WeatherConfig +import com.drdisagree.iconify.utils.weather.WeatherConfig import java.text.DecimalFormat import java.text.SimpleDateFormat import java.util.Date diff --git a/app/src/main/java/com/drdisagree/iconify/weather/AbstractWeatherProvider.kt b/app/src/main/java/com/drdisagree/iconify/utils/weather/AbstractWeatherProvider.kt similarity index 96% rename from app/src/main/java/com/drdisagree/iconify/weather/AbstractWeatherProvider.kt rename to app/src/main/java/com/drdisagree/iconify/utils/weather/AbstractWeatherProvider.kt index f21f4315b..feab04ad1 100644 --- a/app/src/main/java/com/drdisagree/iconify/weather/AbstractWeatherProvider.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/weather/AbstractWeatherProvider.kt @@ -1,4 +1,4 @@ -package com.drdisagree.iconify.weather +package com.drdisagree.iconify.utils.weather import android.content.Context import android.location.Geocoder @@ -7,8 +7,8 @@ import android.text.TextUtils import android.util.Log import com.drdisagree.iconify.R import com.drdisagree.iconify.utils.NetworkUtils -import com.drdisagree.iconify.weather.WeatherConfig.getLocationName -import com.drdisagree.iconify.weather.WeatherConfig.isCustomLocation +import com.drdisagree.iconify.utils.weather.WeatherConfig.getLocationName +import com.drdisagree.iconify.utils.weather.WeatherConfig.isCustomLocation import org.json.JSONObject import java.io.IOException import java.text.SimpleDateFormat diff --git a/app/src/main/java/com/drdisagree/iconify/weather/WeatherConfig.kt b/app/src/main/java/com/drdisagree/iconify/utils/weather/WeatherConfig.kt similarity index 96% rename from app/src/main/java/com/drdisagree/iconify/weather/WeatherConfig.kt rename to app/src/main/java/com/drdisagree/iconify/utils/weather/WeatherConfig.kt index 577c942cf..c21c2e635 100644 --- a/app/src/main/java/com/drdisagree/iconify/weather/WeatherConfig.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/weather/WeatherConfig.kt @@ -1,4 +1,4 @@ -package com.drdisagree.iconify.weather +package com.drdisagree.iconify.utils.weather import android.Manifest import android.content.Context @@ -15,8 +15,8 @@ import com.drdisagree.iconify.common.Preferences.WEATHER_UNITS import com.drdisagree.iconify.common.Preferences.WEATHER_UPDATE_INTERVAL import com.drdisagree.iconify.common.Resources.SHARED_XPREFERENCES import com.drdisagree.iconify.config.XPrefs.Xprefs -import com.drdisagree.iconify.weather.providers.OpenMeteoProvider -import com.drdisagree.iconify.weather.providers.OpenWeatherMapProvider +import com.drdisagree.iconify.utils.weather.providers.OpenMeteoProvider +import com.drdisagree.iconify.utils.weather.providers.OpenWeatherMapProvider object WeatherConfig { diff --git a/app/src/main/java/com/drdisagree/iconify/weather/WeatherContentProvider.kt b/app/src/main/java/com/drdisagree/iconify/utils/weather/WeatherContentProvider.kt similarity index 99% rename from app/src/main/java/com/drdisagree/iconify/weather/WeatherContentProvider.kt rename to app/src/main/java/com/drdisagree/iconify/utils/weather/WeatherContentProvider.kt index 072e0a21e..465f636c5 100644 --- a/app/src/main/java/com/drdisagree/iconify/weather/WeatherContentProvider.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/weather/WeatherContentProvider.kt @@ -1,4 +1,4 @@ -package com.drdisagree.iconify.weather +package com.drdisagree.iconify.utils.weather import android.annotation.SuppressLint import android.content.ContentProvider diff --git a/app/src/main/java/com/drdisagree/iconify/weather/WeatherInfo.kt b/app/src/main/java/com/drdisagree/iconify/utils/weather/WeatherInfo.kt similarity index 99% rename from app/src/main/java/com/drdisagree/iconify/weather/WeatherInfo.kt rename to app/src/main/java/com/drdisagree/iconify/utils/weather/WeatherInfo.kt index 4f1976062..be9237b5a 100644 --- a/app/src/main/java/com/drdisagree/iconify/weather/WeatherInfo.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/weather/WeatherInfo.kt @@ -1,4 +1,4 @@ -package com.drdisagree.iconify.weather +package com.drdisagree.iconify.utils.weather import android.content.Context import java.text.DecimalFormat diff --git a/app/src/main/java/com/drdisagree/iconify/weather/WeatherWork.kt b/app/src/main/java/com/drdisagree/iconify/utils/weather/WeatherWork.kt similarity index 94% rename from app/src/main/java/com/drdisagree/iconify/weather/WeatherWork.kt rename to app/src/main/java/com/drdisagree/iconify/utils/weather/WeatherWork.kt index 9fb0ba218..b954a6fb3 100644 --- a/app/src/main/java/com/drdisagree/iconify/weather/WeatherWork.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/weather/WeatherWork.kt @@ -1,4 +1,4 @@ -package com.drdisagree.iconify.weather +package com.drdisagree.iconify.utils.weather import android.Manifest import android.annotation.SuppressLint @@ -18,14 +18,14 @@ import com.drdisagree.iconify.utils.OmniJawsClient.Companion.EXTRA_ERROR_DISABLE import com.drdisagree.iconify.utils.OmniJawsClient.Companion.EXTRA_ERROR_LOCATION import com.drdisagree.iconify.utils.OmniJawsClient.Companion.EXTRA_ERROR_NETWORK import com.drdisagree.iconify.utils.OmniJawsClient.Companion.EXTRA_ERROR_NO_PERMISSIONS -import com.drdisagree.iconify.weather.WeatherConfig.getLocationLat -import com.drdisagree.iconify.weather.WeatherConfig.getLocationLon -import com.drdisagree.iconify.weather.WeatherConfig.getProvider -import com.drdisagree.iconify.weather.WeatherConfig.isCustomLocation -import com.drdisagree.iconify.weather.WeatherConfig.isEnabled -import com.drdisagree.iconify.weather.WeatherConfig.isMetric -import com.drdisagree.iconify.weather.WeatherConfig.setUpdateError -import com.drdisagree.iconify.weather.WeatherConfig.setWeatherData +import com.drdisagree.iconify.utils.weather.WeatherConfig.getLocationLat +import com.drdisagree.iconify.utils.weather.WeatherConfig.getLocationLon +import com.drdisagree.iconify.utils.weather.WeatherConfig.getProvider +import com.drdisagree.iconify.utils.weather.WeatherConfig.isCustomLocation +import com.drdisagree.iconify.utils.weather.WeatherConfig.isEnabled +import com.drdisagree.iconify.utils.weather.WeatherConfig.isMetric +import com.drdisagree.iconify.utils.weather.WeatherConfig.setUpdateError +import com.drdisagree.iconify.utils.weather.WeatherConfig.setWeatherData import com.google.common.util.concurrent.ListenableFuture import java.text.SimpleDateFormat import java.util.Locale diff --git a/app/src/main/java/com/drdisagree/iconify/weather/providers/OpenMeteoProvider.kt b/app/src/main/java/com/drdisagree/iconify/utils/weather/providers/OpenMeteoProvider.kt similarity index 98% rename from app/src/main/java/com/drdisagree/iconify/weather/providers/OpenMeteoProvider.kt rename to app/src/main/java/com/drdisagree/iconify/utils/weather/providers/OpenMeteoProvider.kt index a3b2fda62..57552051e 100644 --- a/app/src/main/java/com/drdisagree/iconify/weather/providers/OpenMeteoProvider.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/weather/providers/OpenMeteoProvider.kt @@ -1,10 +1,10 @@ -package com.drdisagree.iconify.weather.providers +package com.drdisagree.iconify.utils.weather.providers import android.content.Context import android.location.Location import android.util.Log -import com.drdisagree.iconify.weather.AbstractWeatherProvider -import com.drdisagree.iconify.weather.WeatherInfo +import com.drdisagree.iconify.utils.weather.AbstractWeatherProvider +import com.drdisagree.iconify.utils.weather.WeatherInfo import org.json.JSONException import org.json.JSONObject import java.text.SimpleDateFormat diff --git a/app/src/main/java/com/drdisagree/iconify/weather/providers/OpenWeatherMapProvider.kt b/app/src/main/java/com/drdisagree/iconify/utils/weather/providers/OpenWeatherMapProvider.kt similarity index 97% rename from app/src/main/java/com/drdisagree/iconify/weather/providers/OpenWeatherMapProvider.kt rename to app/src/main/java/com/drdisagree/iconify/utils/weather/providers/OpenWeatherMapProvider.kt index 8dc308493..60943b6b0 100644 --- a/app/src/main/java/com/drdisagree/iconify/weather/providers/OpenWeatherMapProvider.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/weather/providers/OpenWeatherMapProvider.kt @@ -1,12 +1,12 @@ -package com.drdisagree.iconify.weather.providers +package com.drdisagree.iconify.utils.weather.providers import android.content.Context import android.location.Location import android.text.TextUtils import android.util.Log -import com.drdisagree.iconify.weather.AbstractWeatherProvider -import com.drdisagree.iconify.weather.WeatherConfig -import com.drdisagree.iconify.weather.WeatherInfo +import com.drdisagree.iconify.utils.weather.AbstractWeatherProvider +import com.drdisagree.iconify.utils.weather.WeatherConfig +import com.drdisagree.iconify.utils.weather.WeatherInfo import org.json.JSONArray import org.json.JSONException import org.json.JSONObject From 43a921026eb30beb6b16a62dc7fea8829da6f2e1 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Fri, 23 Aug 2024 00:09:25 +0200 Subject: [PATCH 178/369] Initial commit for Lockscreen Widgets --- .../drdisagree/iconify/common/Preferences.kt | 25 + .../ui/fragments/XposedLockscreenWidgets.kt | 374 ++++ .../iconify/ui/fragments/XposedMenu.kt | 8 + .../providers/OpenWeatherMapProvider.kt | 2 +- .../drdisagree/iconify/xposed/EntryList.kt | 4 + .../xposed/modules/ControllersProvider.kt | 458 +++++ .../xposed/modules/LockscreenWidgets.kt | 295 +++ .../modules/utils/ActivityLauncherUtils.kt | 117 ++ .../xposed/modules/utils/ExtendedFAB.kt | 21 + .../xposed/modules/views/DeviceWidgetView.kt | 224 +++ .../modules/views/LockscreenWidgetsView.kt | 1791 +++++++++++++++++ app/src/main/res/drawable/ic_calculator.xml | 62 + .../lockscreen_widget_background_circle.xml | 24 + app/src/main/res/layout/device_widget.xml | 86 + .../fragment_xposed_lockscreen_widgets.xml | 199 ++ .../main/res/navigation/nav_xposed_menu.xml | 20 + app/src/main/res/values/arrays.xml | 32 + app/src/main/res/values/colors.xml | 7 + app/src/main/res/values/dimens.xml | 12 + app/src/main/res/values/strings.xml | 48 + gradle.properties | 2 +- 21 files changed, 3809 insertions(+), 2 deletions(-) create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWidgets.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/xposed/modules/ControllersProvider.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWidgets.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/ActivityLauncherUtils.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/ExtendedFAB.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/xposed/modules/views/DeviceWidgetView.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/xposed/modules/views/LockscreenWidgetsView.kt create mode 100644 app/src/main/res/drawable/ic_calculator.xml create mode 100644 app/src/main/res/drawable/lockscreen_widget_background_circle.xml create mode 100644 app/src/main/res/layout/device_widget.xml create mode 100644 app/src/main/res/layout/fragment_xposed_lockscreen_widgets.xml diff --git a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt index 8249a56e4..32a9b341a 100644 --- a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt +++ b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt @@ -60,6 +60,31 @@ object Preferences { const val LSCLOCK_FONT_TEXT_SCALING = "xposed_lockscreenclocktextscaling" const val LSCLOCK_USERNAME = "xposed_lockscreenclockcustomusername" const val LSCLOCK_DEVICENAME = "xposed_lockscreenclockcustomdevicename" + // LS Widgets + const val LOCKSCREEN_WIDGETS_ENABLED: String = "lockscreen_widgets_enabled" + const val LOCKSCREEN_WIDGETS_DEVICE_WIDGET: String = "lockscreen_device_widget" + const val LOCKSCREEN_WIDGETS: String = "lockscreen_widgets" + const val LOCKSCREEN_WIDGETS_EXTRAS: String = "lockscreen_widgets_extras" + const val LOCKSCREEN_WIDGETS_DEVICE_WIDGET_CUSTOM_COLOR_SWITCH: String = + "lockscreen_device_widget_custom_color" + const val LOCKSCREEN_WIDGETS_DEVICE_WIDGET_LINEAR_COLOR: String = + "lockscreen_device_widget_linear_progress_color" + const val LOCKSCREEN_WIDGETS_DEVICE_WIDGET_CIRCULAR_COLOR: String = + "lockscreen_device_widget_circular_progress_color" + const val LOCKSCREEN_WIDGETS_DEVICE_WIDGET_TEXT_COLOR: String = + "lockscreen_device_widget_text_color" + const val LOCKSCREEN_WIDGETS_DEVICE_WIDGET_DEVICE: String = + "lockscreen_device_widget_device_name" + const val LOCKSCREEN_WIDGETS_CUSTOM_COLOR: String = "lockscreen_widgets_custom_color" + const val LOCKSCREEN_WIDGETS_BIG_ACTIVE: String = "lockscreen_widgets_big_active" + const val LOCKSCREEN_WIDGETS_BIG_INACTIVE: String = "lockscreen_widgets_big_inactive" + const val LOCKSCREEN_WIDGETS_SMALL_ACTIVE: String = "lockscreen_widgets_small_active" + const val LOCKSCREEN_WIDGETS_SMALL_INACTIVE: String = "lockscreen_widgets_small_inactive" + const val LOCKSCREEN_WIDGETS_BIG_ICON_ACTIVE: String = "lockscreen_widgets_big_icon_active" + const val LOCKSCREEN_WIDGETS_BIG_ICON_INACTIVE: String = "lockscreen_widgets_big_icon_inactive" + const val LOCKSCREEN_WIDGETS_SMALL_ICON_ACTIVE: String = "lockscreen_widgets_small_icon_active" + const val LOCKSCREEN_WIDGETS_SMALL_ICON_INACTIVE: String = + "lockscreen_widgets_small_icon_inactive" const val FIXED_STATUS_ICONS_SWITCH = "xposed_fixedstatusicons" const val FIXED_STATUS_ICONS_SIDEMARGIN = "xposed_fixedstatusiconssidemargin" const val FIXED_STATUS_ICONS_TOPMARGIN = "xposed_fixedstatusiconstopmargin" diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWidgets.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWidgets.kt new file mode 100644 index 000000000..3b4612dea --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWidgets.kt @@ -0,0 +1,374 @@ +package com.drdisagree.iconify.ui.fragments + +import android.graphics.Color +import android.os.Build +import android.os.Bundle +import android.os.Handler +import android.os.Looper +import android.util.Log +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.CompoundButton +import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Const.SWITCH_ANIMATION_DELAY +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_BIG_ACTIVE +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_BIG_ICON_ACTIVE +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_BIG_ICON_INACTIVE +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_BIG_INACTIVE +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_CUSTOM_COLOR +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_DEVICE_WIDGET +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_DEVICE_WIDGET_CIRCULAR_COLOR +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_DEVICE_WIDGET_CUSTOM_COLOR_SWITCH +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_DEVICE_WIDGET_DEVICE +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_DEVICE_WIDGET_LINEAR_COLOR +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_DEVICE_WIDGET_TEXT_COLOR +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_ENABLED +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_EXTRAS +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_SMALL_ACTIVE +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_SMALL_ICON_ACTIVE +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_SMALL_ICON_INACTIVE +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_SMALL_INACTIVE +import com.drdisagree.iconify.config.RPrefs +import com.drdisagree.iconify.config.RPrefs.getBoolean +import com.drdisagree.iconify.config.RPrefs.getInt +import com.drdisagree.iconify.config.RPrefs.putBoolean +import com.drdisagree.iconify.config.RPrefs.putInt +import com.drdisagree.iconify.config.RPrefs.putString +import com.drdisagree.iconify.databinding.FragmentXposedLockscreenWidgetsBinding +import com.drdisagree.iconify.services.WeatherScheduler +import com.drdisagree.iconify.ui.base.BaseFragment +import com.drdisagree.iconify.ui.dialogs.EditTextDialog +import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader +import com.drdisagree.iconify.utils.OmniJawsClient +import com.drdisagree.iconify.utils.SystemUtil +import com.drdisagree.iconify.utils.weather.WeatherConfig + +class XposedLockscreenWidgets : BaseFragment() { + + private lateinit var binding: FragmentXposedLockscreenWidgetsBinding + private lateinit var mWeatherClient: OmniJawsClient + + private var bigWidget1 = 0 + private var bigWidget2 = 0 + private var miniWidget1 = 0 + private var miniWidget2 = 0 + private var miniWidget3 = 0 + private var miniWidget4 = 0 + + private var mWidgetsValues: Array? = null + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View { + + binding = FragmentXposedLockscreenWidgetsBinding.inflate(inflater, container, false) + val view: View = binding.getRoot() + + mWeatherClient = OmniJawsClient(requireContext()) + mWeatherClient.queryWeather() + + // Header + setHeader( + requireContext(), + getParentFragmentManager(), + binding.header.toolbar, + R.string.activity_title_lockscreen_widgets + ) + + return view + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + readPrefs() + updateUI() + + // Main Switch + binding.lockscreenWidgetsSwitch.isSwitchChecked = getBoolean(LOCKSCREEN_WIDGETS_ENABLED, false) + binding.lockscreenWidgetsSwitch.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> + + putBoolean(LOCKSCREEN_WIDGETS_ENABLED, isChecked) + + updateUI() + + Handler(Looper.getMainLooper()).postDelayed( + { SystemUtil.handleSystemUIRestart() }, + SWITCH_ANIMATION_DELAY + ) + } + + // Device Widget + binding.deviceWidget.isSwitchChecked = getBoolean(LOCKSCREEN_WIDGETS_DEVICE_WIDGET, false) + binding.deviceWidget.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> + putBoolean(LOCKSCREEN_WIDGETS_DEVICE_WIDGET, isChecked) + updateUI() + } + + binding.deviceWidgetCustomColor.isSwitchChecked = getBoolean(LOCKSCREEN_WIDGETS_DEVICE_WIDGET_CUSTOM_COLOR_SWITCH, false) + binding.deviceWidgetCustomColor.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> + putBoolean(LOCKSCREEN_WIDGETS_DEVICE_WIDGET_CUSTOM_COLOR_SWITCH, isChecked) + updateUI() + } + + binding.widgetDeviceName.setEditTextValue(RPrefs.getString( + LOCKSCREEN_WIDGETS_DEVICE_WIDGET_DEVICE, Build.MODEL)!!) + binding.widgetDeviceName.setOnEditTextListener(object : + EditTextDialog.EditTextDialogListener { + override fun onOkPressed(dialogId: Int, newText: String) { + putString(LOCKSCREEN_WIDGETS_DEVICE_WIDGET_DEVICE, newText) + binding.widgetDeviceName.setEditTextValue(newText) + } + }) + + binding.deviceWidgetLinearProgressColor.previewColor = getInt(LOCKSCREEN_WIDGETS_DEVICE_WIDGET_LINEAR_COLOR, Color.WHITE) + binding.deviceWidgetLinearProgressColor.setColorPickerListener( + activity = requireActivity(), + defaultColor = getInt(LOCKSCREEN_WIDGETS_DEVICE_WIDGET_LINEAR_COLOR, Color.WHITE), + showPresets = true, + showAlphaSlider = false, + showColorShades = true + ) + binding.deviceWidgetLinearProgressColor.setOnColorSelectedListener { color: Int -> + putInt(LOCKSCREEN_WIDGETS_DEVICE_WIDGET_LINEAR_COLOR, color) + } + + binding.deviceWidgetCircularProgressColor.previewColor = getInt(LOCKSCREEN_WIDGETS_DEVICE_WIDGET_CIRCULAR_COLOR, Color.WHITE) + binding.deviceWidgetCircularProgressColor.setColorPickerListener( + activity = requireActivity(), + defaultColor = getInt(LOCKSCREEN_WIDGETS_DEVICE_WIDGET_CIRCULAR_COLOR, Color.WHITE), + showPresets = true, + showAlphaSlider = false, + showColorShades = true + ) + binding.deviceWidgetCircularProgressColor.setOnColorSelectedListener { color: Int -> + putInt(LOCKSCREEN_WIDGETS_DEVICE_WIDGET_CIRCULAR_COLOR, color) + } + + binding.deviceWidgetTextColor.previewColor = getInt( + LOCKSCREEN_WIDGETS_DEVICE_WIDGET_TEXT_COLOR, Color.WHITE) + binding.deviceWidgetTextColor.setColorPickerListener( + activity = requireActivity(), + defaultColor = getInt(LOCKSCREEN_WIDGETS_DEVICE_WIDGET_TEXT_COLOR, Color.WHITE), + showPresets = true, + showAlphaSlider = false, + showColorShades = true + ) + binding.deviceWidgetTextColor.setOnColorSelectedListener { color: Int -> + putInt(LOCKSCREEN_WIDGETS_DEVICE_WIDGET_TEXT_COLOR, color) + } + + // Big Widget 1 + binding.bigWidget1.setSelectedIndex(bigWidget1) + binding.bigWidget1.setOnItemSelectedListener { index: Int -> + bigWidget1 = index + updatePrefs() + } + + // Big Widget 2 + binding.bigWidget2.setSelectedIndex(bigWidget2) + binding.bigWidget2.setOnItemSelectedListener { index: Int -> + bigWidget2 = index + updatePrefs() + } + + // Mini Widget 1 + binding.miniWidget1.setSelectedIndex(miniWidget1) + binding.miniWidget1.setOnItemSelectedListener { index: Int -> + miniWidget1 = index + updatePrefs() + } + + // Mini Widget 2 + binding.miniWidget2.setSelectedIndex(miniWidget2) + binding.miniWidget2.setOnItemSelectedListener { index: Int -> + miniWidget2 = index + updatePrefs() + } + + // Mini Widget 3 + binding.miniWidget3.setSelectedIndex(miniWidget3) + binding.miniWidget3.setOnItemSelectedListener { index: Int -> + miniWidget3 = index + updatePrefs() + } + + // Mini Widget 4 + binding.miniWidget4.setSelectedIndex(miniWidget4) + binding.miniWidget4.setOnItemSelectedListener { index: Int -> + miniWidget4 = index + updatePrefs() + } + + // Widgets Colors + binding.widgetsCustomColor.isSwitchChecked = getBoolean(LOCKSCREEN_WIDGETS_CUSTOM_COLOR, false) + binding.widgetsCustomColor.setSwitchChangeListener{ + _, isChecked -> + putBoolean(LOCKSCREEN_WIDGETS_CUSTOM_COLOR, isChecked) + updateUI() + } + + val widgetsColors = arrayOf( + binding.widgetsBigActive, + binding.widgetsBigInactive, + binding.widgetsBigIconActive, + binding.widgetsBigIconInactive, + binding.widgetsSmallActive, + binding.widgetsSmallInactive, + binding.widgetsSmallIconActive, + binding.widgetsSmallIconInactive + ) + val widgetsColorPrefs = arrayOf( + LOCKSCREEN_WIDGETS_BIG_ACTIVE, + LOCKSCREEN_WIDGETS_BIG_INACTIVE, + LOCKSCREEN_WIDGETS_BIG_ICON_ACTIVE, + LOCKSCREEN_WIDGETS_BIG_ICON_INACTIVE, + LOCKSCREEN_WIDGETS_SMALL_ACTIVE, + LOCKSCREEN_WIDGETS_SMALL_INACTIVE, + LOCKSCREEN_WIDGETS_SMALL_ICON_ACTIVE, + LOCKSCREEN_WIDGETS_SMALL_ICON_INACTIVE + ) + val widgetsColorDefaultPrefs = arrayOf( + Color.BLACK, + Color.WHITE, + Color.BLACK, + Color.WHITE, + Color.WHITE, + Color.BLACK, + Color.WHITE, + Color.BLACK + ) + + if (widgetsColors.size == widgetsColorPrefs.size) { + for (i in widgetsColors.indices) { + widgetsColors[i].previewColor = getInt(widgetsColorPrefs[i], widgetsColorDefaultPrefs[i]) + widgetsColors[i].setColorPickerListener( + activity = requireActivity(), + defaultColor = getInt(widgetsColorPrefs[i], widgetsColorDefaultPrefs[i]), + showPresets = true, + showAlphaSlider = true, + showColorShades = true + ) + widgetsColors[i].setOnColorSelectedListener { color: Int -> + putInt(widgetsColorPrefs[i], color) + } + } + } + + } + + private fun updateUI() { + val widgetsEnabled = getBoolean(LOCKSCREEN_WIDGETS_ENABLED, false) + val deviceWidgetEnabled = getBoolean(LOCKSCREEN_WIDGETS_DEVICE_WIDGET, false) + val deviceWidgetCustomColor = getBoolean( + LOCKSCREEN_WIDGETS_DEVICE_WIDGET_CUSTOM_COLOR_SWITCH, false) + val widgetsCustomColor = getBoolean(LOCKSCREEN_WIDGETS_CUSTOM_COLOR, false) + + // Device Widget Prefs + binding.deviceWidgetCustomColor.isEnabled = widgetsEnabled && deviceWidgetEnabled + binding.deviceWidgetTextColor.isEnabled = widgetsEnabled && deviceWidgetEnabled + binding.widgetDeviceName.isEnabled = widgetsEnabled && deviceWidgetEnabled + binding.deviceWidgetLinearProgressColor.visibility = if (widgetsEnabled && deviceWidgetEnabled && deviceWidgetCustomColor) View.VISIBLE else View.GONE + binding.deviceWidgetCircularProgressColor.visibility = if (widgetsEnabled && deviceWidgetEnabled && deviceWidgetCustomColor) View.VISIBLE else View.GONE + + binding.deviceWidget.isEnabled = widgetsEnabled + binding.bigWidget1.isEnabled = widgetsEnabled + binding.bigWidget2.isEnabled = widgetsEnabled + binding.miniWidget1.isEnabled = widgetsEnabled + binding.miniWidget2.isEnabled = widgetsEnabled + binding.miniWidget3.isEnabled = widgetsEnabled + binding.miniWidget4.isEnabled = widgetsEnabled + + // Visibility of color picker based on switch + binding.widgetsBigActive.visibility = if (widgetsCustomColor) View.VISIBLE else View.GONE + binding.widgetsBigInactive.visibility = if (widgetsCustomColor) View.VISIBLE else View.GONE + binding.widgetsBigIconActive.visibility = if (widgetsCustomColor) View.VISIBLE else View.GONE + binding.widgetsBigIconInactive.visibility = if (widgetsCustomColor) View.VISIBLE else View.GONE + binding.widgetsSmallActive.visibility = if (widgetsCustomColor) View.VISIBLE else View.GONE + binding.widgetsSmallInactive.visibility = if (widgetsCustomColor) View.VISIBLE else View.GONE + binding.widgetsSmallIconActive.visibility = if (widgetsCustomColor) View.VISIBLE else View.GONE + binding.widgetsSmallIconInactive.visibility = if (widgetsCustomColor) View.VISIBLE else View.GONE + + // Switch enabled based on main switch + binding.widgetsCustomColor.isEnabled = widgetsEnabled + binding.widgetsBigActive.isEnabled = widgetsEnabled && widgetsCustomColor + binding.widgetsBigInactive.isEnabled = widgetsEnabled && widgetsCustomColor + binding.widgetsBigIconActive.isEnabled = widgetsEnabled && widgetsCustomColor + binding.widgetsBigIconInactive.isEnabled = widgetsEnabled && widgetsCustomColor + binding.widgetsSmallActive.isEnabled = widgetsEnabled && widgetsCustomColor + binding.widgetsSmallInactive.isEnabled = widgetsEnabled && widgetsCustomColor + binding.widgetsSmallIconActive.isEnabled = widgetsEnabled && widgetsCustomColor + binding.widgetsSmallIconInactive.isEnabled = widgetsEnabled && widgetsCustomColor + + } + + private fun readPrefs() { + val mainWidgets: String? = RPrefs.getString(LOCKSCREEN_WIDGETS, "") + val extraWidgets: String? = RPrefs.getString(LOCKSCREEN_WIDGETS_EXTRAS, "") + + mWidgetsValues = resources.getStringArray(R.array.lockscreen_widgets_values) + + fun assignWidgets(widgets: Array, indices: MutableList) { + for (i in widgets.indices) { + indices[i] = getWidgetIndex(mWidgetsValues!!, widgets[i]) + } + } + + val mainWi = mainWidgets?.split(",")?.toTypedArray() ?: emptyArray() + val bigWidgets = mutableListOf(0, 0) + assignWidgets(mainWi, bigWidgets) + bigWidget1 = bigWidgets[0] + bigWidget2 = bigWidgets[1] + + val extraWi = extraWidgets?.split(",")?.toTypedArray() ?: emptyArray() + val miniWidgets = mutableListOf(0, 0, 0, 0) + assignWidgets(extraWi, miniWidgets) + miniWidget1 = miniWidgets[0] + miniWidget2 = miniWidgets[1] + miniWidget3 = miniWidgets[2] + miniWidget4 = miniWidgets[3] + + } + + private fun getWidgetIndex(values: Array, widget: String): Int { + val mainIndex = values.indexOf(widget) + return if (mainIndex != -1) { + mainIndex + } else { + val extraIndex = values.indexOf(widget) + if (extraIndex != -1) values.size + extraIndex else 0 + } + } + + private fun updatePrefs() { + val mainWidgets = "${mWidgetsValues!![bigWidget1]},${mWidgetsValues!![bigWidget2]}" + val extraWidgets = "${mWidgetsValues!![miniWidget1]},${mWidgetsValues!![miniWidget2]},${mWidgetsValues!![miniWidget3]},${mWidgetsValues!![miniWidget4]}" + + Log.d("LockscreenWidgets", "Main: $mainWidgets") + Log.d("LockscreenWidgets", "Extra: $extraWidgets") + + val wasWeatherEnabled: Boolean = WeatherConfig.isEnabled(requireContext()) + + putString(LOCKSCREEN_WIDGETS, mainWidgets) + putString(LOCKSCREEN_WIDGETS_EXTRAS, extraWidgets) + + val weatherEnabled = + mainWidgets.contains("weather") || extraWidgets.contains("weather") + + if (weatherEnabled && wasWeatherEnabled) { + // Weather enabled but updater more than 1h ago + if (System.currentTimeMillis() - mWeatherClient.weatherInfo?.timeStamp!! > 3600000) { + WeatherScheduler.scheduleUpdateNow(requireContext()) + } + } else if (weatherEnabled) { + // Weather not enabled (LS Weather) so we will update now + WeatherScheduler.scheduleUpdates(requireContext()) + WeatherScheduler.scheduleUpdateNow(requireContext()) + } + + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedMenu.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedMenu.kt index 508c0cee1..a4a6d7f84 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedMenu.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedMenu.kt @@ -320,6 +320,14 @@ class XposedMenu : BaseFragment() { R.drawable.ic_xposed_lockscreen_weather ) ) + add( + arrayOf( + R.id.action_xposedMenu2_to_xposedLockscreenWidgets, + appContextLocale.resources.getString(R.string.activity_title_lockscreen_widgets), + appContextLocale.resources.getString(R.string.activity_desc_lockscreen_widgets), + R.drawable.ic_xposed_lockscreen_weather + ) + ) add( arrayOf( R.id.action_xposedMenu2_to_xposedDepthWallpaper, diff --git a/app/src/main/java/com/drdisagree/iconify/utils/weather/providers/OpenWeatherMapProvider.kt b/app/src/main/java/com/drdisagree/iconify/utils/weather/providers/OpenWeatherMapProvider.kt index 60943b6b0..b185faf99 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/weather/providers/OpenWeatherMapProvider.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/weather/providers/OpenWeatherMapProvider.kt @@ -155,7 +155,7 @@ class OpenWeatherMapProvider(context: Context?) : AbstractWeatherProvider(contex private val languageCode: String get() { - val locale: Locale = mContext.getResources().getConfiguration().locale + val locale: Locale = mContext.resources.configuration.locale val selector = locale.language + "-" + locale.country for ((key, value) in LANGUAGE_CODE_MAPPING) { diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/EntryList.kt b/app/src/main/java/com/drdisagree/iconify/xposed/EntryList.kt index cb2d354dd..e635a472f 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/EntryList.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/EntryList.kt @@ -5,6 +5,7 @@ import com.drdisagree.iconify.common.Const.PIXEL_LAUNCHER_PACKAGE import com.drdisagree.iconify.common.Const.SYSTEMUI_PACKAGE import com.drdisagree.iconify.xposed.modules.BackgroundChip import com.drdisagree.iconify.xposed.modules.BatteryStyleManager +import com.drdisagree.iconify.xposed.modules.ControllersProvider import com.drdisagree.iconify.xposed.modules.DepthWallpaper import com.drdisagree.iconify.xposed.modules.DepthWallpaperA14 import com.drdisagree.iconify.xposed.modules.HeaderClock @@ -12,6 +13,7 @@ import com.drdisagree.iconify.xposed.modules.HeaderImage import com.drdisagree.iconify.xposed.modules.IconUpdater import com.drdisagree.iconify.xposed.modules.LockscreenClock import com.drdisagree.iconify.xposed.modules.LockscreenWeather +import com.drdisagree.iconify.xposed.modules.LockscreenWidgets import com.drdisagree.iconify.xposed.modules.Miscellaneous import com.drdisagree.iconify.xposed.modules.QSTransparency import com.drdisagree.iconify.xposed.modules.QuickSettings @@ -35,11 +37,13 @@ object EntryList { ) private val systemUICommonModPacks = listOf( + ControllersProvider::class.java, BackgroundChip::class.java, HeaderClock::class.java, HeaderImage::class.java, LockscreenClock::class.java, LockscreenWeather::class.java, + LockscreenWidgets::class.java, Miscellaneous::class.java, QSTransparency::class.java, QuickSettings::class.java, diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/ControllersProvider.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/ControllersProvider.kt new file mode 100644 index 000000000..a4057f9ba --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/ControllersProvider.kt @@ -0,0 +1,458 @@ +package com.drdisagree.iconify.xposed.modules + +import android.annotation.SuppressLint +import android.content.Context +import android.os.Build +import com.drdisagree.iconify.xposed.ModPack +import de.robv.android.xposed.XC_MethodHook +import de.robv.android.xposed.XposedBridge.hookAllConstructors +import de.robv.android.xposed.XposedBridge.hookAllMethods +import de.robv.android.xposed.XposedBridge.log +import de.robv.android.xposed.XposedHelpers +import de.robv.android.xposed.XposedHelpers.findClass +import de.robv.android.xposed.XposedHelpers.getIntField +import de.robv.android.xposed.XposedHelpers.getObjectField +import de.robv.android.xposed.callbacks.XC_LoadPackage + +class ControllersProvider(context: Context?) : ModPack(context!!) { + + private var mBluetoothEnabled = false + + private val mMobileDataChangedListeners = ArrayList() + private val mWifiChangedListeners = ArrayList() + private val mBluetoothChangedListeners = ArrayList() + private val mTorchModeChangedListeners = ArrayList() + private val mHotspotChangedListeners = ArrayList() + private val mDozeChangedListeners = ArrayList() + + override fun updatePrefs(vararg key: String) {} + + override fun handleLoadPackage(loadPackageParam: XC_LoadPackage.LoadPackageParam) { + if (Build.VERSION.SDK_INT != 34) return + + instance = this + + // Network Callbacks + val CallbackHandler = findClass( + "com.android.systemui.statusbar.connectivity.CallbackHandler", + loadPackageParam.classLoader + ) + + + // Mobile Data + hookAllMethods( + CallbackHandler, + "setMobileDataIndicators", + object : XC_MethodHook() { + @Throws(Throwable::class) + override fun afterHookedMethod(param: MethodHookParam) { + onSetMobileDataIndicators(param.args[0]) + } + }) + + hookAllMethods(CallbackHandler, "setIsAirplaneMode", object : XC_MethodHook() { + @Throws(Throwable::class) + override fun afterHookedMethod(param: MethodHookParam) { + //mAirplane = (boolean) param.args[0]; + onSetIsAirplaneMode(param.args[0]) + } + }) + + hookAllMethods(CallbackHandler, "setNoSims", object : XC_MethodHook() { + @Throws(Throwable::class) + override fun afterHookedMethod(param: MethodHookParam) { + onSetNoSims(param.args[0] as Boolean, param.args[1] as Boolean) + } + }) + + + // WiFi + hookAllMethods(CallbackHandler, "setWifiIndicators", object : XC_MethodHook() { + @Throws(Throwable::class) + override fun afterHookedMethod(param: MethodHookParam) { + onWifiChanged(param.args[0]) + } + }) + + // Network Controller from Internet Tile + try { + val InternetTile = findClass( + "com.android.systemui.qs.tiles.InternetTile", + loadPackageParam.classLoader + ) + hookAllConstructors(InternetTile, object : XC_MethodHook() { + @Throws(Throwable::class) + override fun afterHookedMethod(param: MethodHookParam) { + log(TAG + "InternetTile found") + mNetworkController = getObjectField(param.thisObject, "mController") + mCellularTile = param.thisObject + } + }) + } catch (t: Throwable) { + log(TAG + "NetworkController not found " + t.message) + } + try { + SignalIconClass = findClass( + "com.android.systemui.qs.tiles.InternetTile\$SignalIcon", + loadPackageParam.classLoader) + } catch (t: Throwable) { + log(TAG + "SignalIcon not found " + t.message) + } + + // Bluetooth Controller + try { + val BluetoothControllerImpl = findClass( + "com.android.systemui.statusbar.policy.BluetoothControllerImpl", + loadPackageParam.classLoader + ) + hookAllConstructors(BluetoothControllerImpl, object : XC_MethodHook() { + @Throws(Throwable::class) + override fun afterHookedMethod(param: MethodHookParam) { + mBluetoothController = param.thisObject + } + }) + hookAllMethods( + BluetoothControllerImpl, + "onBluetoothStateChanged", + object : XC_MethodHook() { + @Throws(Throwable::class) + override fun afterHookedMethod(param: MethodHookParam) { + mBluetoothEnabled = (param.args[0] == 12 || param.args[0] == 11) + onBluetoothChanged(mBluetoothEnabled) + } + }) + hookAllMethods( + BluetoothControllerImpl, + "onConnectionStateChanged", + object : XC_MethodHook() { + @Throws(Throwable::class) + override fun afterHookedMethod(param: MethodHookParam) { + onBluetoothChanged(mBluetoothEnabled) + } + }) + } catch (t: Throwable) { + log(TAG + "BluetoothControllerImpl not found " + t.message) + } + + + // Stole FlashLight Callback + try { + val FlashlightControllerImpl = findClass( + "com.android.systemui.statusbar.policy.FlashlightControllerImpl", + loadPackageParam.classLoader + ) + hookAllConstructors(FlashlightControllerImpl, object : XC_MethodHook() { + @Throws(Throwable::class) + override fun afterHookedMethod(param: MethodHookParam) { + val mTorchCallback = getObjectField(param.thisObject, "mTorchCallback") + XposedHelpers.findAndHookMethod( + mTorchCallback.javaClass, + "onTorchModeChanged", + String::class.java, + Boolean::class.javaPrimitiveType, + object : XC_MethodHook() { + @Throws(Throwable::class) + override fun afterHookedMethod(param: MethodHookParam) { + onTorchModeChanged(param.args[1] as Boolean) + } + }) + } + }) + } catch (t: Throwable) { + log(TAG + "FlashlightControllerImpl not found " + t.message) + } + + + // Get an Hotspot Callback + try { + val HotspotControllerImpl = findClass( + "com.android.systemui.statusbar.policy.HotspotControllerImpl", + loadPackageParam.classLoader + ) + hookAllMethods( + HotspotControllerImpl, + "fireHotspotChangedCallback", + object : XC_MethodHook() { + @Throws(Throwable::class) + override fun afterHookedMethod(param: MethodHookParam) { + val enabled = XposedHelpers.callMethod( + param.thisObject, + "isHotspotEnabled" + ) as Boolean + val devices = + getIntField(param.thisObject, "mNumConnectedDevices") + onHotspotChanged(enabled, devices) + } + }) + } catch (t: Throwable) { + log(TAG + "HotspotCallback error: " + t.message) + } + + + // Hostpost Tile - for settings Hotspot + try { + val HotspotTile = + findClass("com.android.systemui.qs.tiles.HotspotTile", loadPackageParam.classLoader) + hookAllConstructors(HotspotTile, object : XC_MethodHook() { + @Throws(Throwable::class) + override fun afterHookedMethod(param: MethodHookParam) { + mHotspotController = getObjectField(param.thisObject, "mHotspotController") + } + }) + } catch (t: Throwable) { + log(TAG + "OplusHotspotTile error: " + t.message) + } + + // Home Controls Tile - for ControlsActivity + try { + val DeviceControlsTile = + findClass( + "com.android.systemui.qs.tiles.DeviceControlsTile", + loadPackageParam.classLoader + ) + hookAllConstructors(DeviceControlsTile, object : XC_MethodHook() { + @Throws(Throwable::class) + override fun afterHookedMethod(param: MethodHookParam) { + mDeviceControlsTile = param.thisObject + } + }) + } catch (t: Throwable) { + log(TAG + "DeviceControlsTile not found " + t.message) + } + + + // Wallet Tile - for opening wallet + try { + val QuickAccessWalletTile = findClass( + "com.android.systemui.qs.tiles.QuickAccessWalletTile", + loadPackageParam.classLoader + ) + hookAllConstructors(QuickAccessWalletTile, object : XC_MethodHook() { + @Throws(Throwable::class) + override fun afterHookedMethod(param: MethodHookParam) { + mWalletTile = param.thisObject + } + }) + } catch (t: Throwable) { + log(TAG + "QuickAccessWalletTile not found") + } + + // Doze Callback + try { + val DozeScrimController = findClass("com.android.systemui.statusbar.phone.DozeScrimController", loadPackageParam.classLoader) + hookAllMethods(DozeScrimController, "onDozingChanged", object : XC_MethodHook() { + @Throws(Throwable::class) + override fun afterHookedMethod(param: MethodHookParam) { + onDozingChanged(param.args[0] as Boolean) + } + }) + + } catch (t: Throwable) { + log(TAG + "DozeServiceHost not found " + t.message) + } + + } + + /** + * Callbacks for Mobile Data + */ + interface OnMobileDataChanged { + fun setMobileDataIndicators(mMobileDataIndicators: Any?) + fun setNoSims(show: Boolean, simDetected: Boolean) + fun setIsAirplaneMode(mIconState: Any?) + } + + /** + * Callback for WiFi + */ + interface OnWifiChanged { + fun onWifiChanged(mWifiIndicators: Any?) + } + + /** + * Callback for Bluetooth + */ + interface OnBluetoothChanged { + fun onBluetoothChanged(enabled: Boolean) + } + + /** + * Callback for FlashLight + */ + interface OnTorchModeChanged { + fun onTorchModeChanged(enabled: Boolean) + } + + /** + * Callback for Hotspot + */ + interface OnHotspotChanged { + fun onHotspotChanged(enabled: Boolean, connectedDevices: Int) + } + + /** + * Callback for Doze + */ + interface OnDozingChanged { + fun onDozingChanged(dozing: Boolean) + } + + fun registerMobileDataCallback(callback: OnMobileDataChanged) { + instance!!.mMobileDataChangedListeners.add(callback) + } + + /** @noinspection unused + */ + fun unRegisterMobileDataCallback(callback: OnMobileDataChanged?) { + instance!!.mMobileDataChangedListeners.remove(callback) + } + + fun registerWifiCallback(callback: OnWifiChanged) { + instance!!.mWifiChangedListeners.add(callback) + } + + /** @noinspection unused + */ + fun unRegisterWifiCallback(callback: OnWifiChanged?) { + instance!!.mWifiChangedListeners.remove(callback) + } + + fun registerBluetoothCallback(callback: OnBluetoothChanged) { + instance!!.mBluetoothChangedListeners.add(callback) + } + + /** @noinspection unused + */ + fun unRegisterBluetoothCallback(callback: OnBluetoothChanged?) { + instance!!.mBluetoothChangedListeners.remove(callback) + } + + fun registerTorchModeCallback(callback: OnTorchModeChanged) { + instance!!.mTorchModeChangedListeners.add(callback) + } + + /** @noinspection unused + */ + fun unRegisterTorchModeCallback(callback: OnTorchModeChanged?) { + instance!!.mTorchModeChangedListeners.remove(callback) + } + + fun registerDozingCallback(callback: OnDozingChanged) { + instance!!.mDozeChangedListeners.add(callback) + } + + /** @noinspection unused */ + fun unRegisterDozingCallback(callback: OnDozingChanged?) { + instance!!.mDozeChangedListeners.remove(callback) + } + + fun registerHotspotCallback(callback: OnHotspotChanged) { + instance!!.mHotspotChangedListeners.add(callback) + } + + /** @noinspection unused */ + fun unRegisterHotspotCallback(callback: OnHotspotChanged?) { + instance!!.mHotspotChangedListeners.remove(callback) + } + + private fun onSetMobileDataIndicators(mMobileDataIndicators: Any) { + for (callback in mMobileDataChangedListeners) { + try { + callback.setMobileDataIndicators(mMobileDataIndicators) + } catch (ignored: Throwable) { + } + } + } + + private fun onSetIsAirplaneMode(mMobileDataIndicators: Any) { + for (callback in mMobileDataChangedListeners) { + try { + callback.setIsAirplaneMode(mMobileDataIndicators) + } catch (ignored: Throwable) { + } + } + } + + private fun onSetNoSims(show: Boolean, simDetected: Boolean) { + for (callback in mMobileDataChangedListeners) { + try { + callback.setNoSims(show, simDetected) + } catch (ignored: Throwable) { + } + } + } + + private fun onWifiChanged(WifiIndicators: Any) { + for (callback in mWifiChangedListeners) { + try { + callback.onWifiChanged(WifiIndicators) + } catch (ignored: Throwable) { + } + } + } + + private fun onBluetoothChanged(enabled: Boolean) { + for (callback in mBluetoothChangedListeners) { + try { + callback.onBluetoothChanged(enabled) + } catch (ignored: Throwable) { + } + } + } + + private fun onTorchModeChanged(enabled: Boolean) { + for (callback in mTorchModeChangedListeners) { + try { + callback.onTorchModeChanged(enabled) + } catch (ignored: Throwable) { + } + } + } + + private fun onHotspotChanged(enabled: Boolean, connectedDevices: Int) { + for (callback in mHotspotChangedListeners) { + try { + callback.onHotspotChanged(enabled, connectedDevices) + } catch (ignored: Throwable) { + } + } + } + + private fun onDozingChanged(isDozing: Boolean) { + for (callback in mDozeChangedListeners) { + try { + callback.onDozingChanged(isDozing) + } catch (ignored: Throwable) { + } + } + } + + companion object { + @SuppressLint("StaticFieldLeak") + @Volatile + private var instance: ControllersProvider? = null + + const val TAG: String = "ControllersProvider" + + var SignalIconClass: Class<*>? = null + + var mBluetoothController: Any? = null + val mDataController: Any? = null + var mNetworkController: Any? = null + var mHotspotController: Any? = null + + val mBluetoothTile: Any? = null + var mCellularTile: Any? = null + var mDeviceControlsTile: Any? = null + val mCalculatorTile: Any? = null + var mWalletTile: Any? = null + + val mQsDialogLaunchAnimator: Any? = null + val mQsMediaDialogController: Any? = null + + fun getInstance(): ControllersProvider { + return instance!! + } + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWidgets.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWidgets.kt new file mode 100644 index 000000000..540466788 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWidgets.kt @@ -0,0 +1,295 @@ +package com.drdisagree.iconify.xposed.modules + +import android.content.Context +import android.graphics.Color +import android.view.ViewGroup +import android.widget.LinearLayout +import com.drdisagree.iconify.common.Const.SYSTEMUI_PACKAGE +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_BIG_ACTIVE +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_BIG_ICON_ACTIVE +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_BIG_ICON_INACTIVE +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_BIG_INACTIVE +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_CUSTOM_COLOR +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_DEVICE_WIDGET +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_DEVICE_WIDGET_CIRCULAR_COLOR +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_DEVICE_WIDGET_CUSTOM_COLOR_SWITCH +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_DEVICE_WIDGET_DEVICE +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_DEVICE_WIDGET_LINEAR_COLOR +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_DEVICE_WIDGET_TEXT_COLOR +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_ENABLED +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_EXTRAS +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_SMALL_ACTIVE +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_SMALL_ICON_ACTIVE +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_SMALL_ICON_INACTIVE +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_SMALL_INACTIVE +import com.drdisagree.iconify.common.Preferences.LSCLOCK_SWITCH +import com.drdisagree.iconify.config.XPrefs.Xprefs +import com.drdisagree.iconify.xposed.ModPack +import com.drdisagree.iconify.xposed.modules.views.LockscreenWidgetsView +import de.robv.android.xposed.XC_MethodHook +import de.robv.android.xposed.XposedBridge +import de.robv.android.xposed.XposedBridge.hookAllMethods +import de.robv.android.xposed.XposedBridge.log +import de.robv.android.xposed.XposedHelpers.findClass +import de.robv.android.xposed.XposedHelpers.getObjectField +import de.robv.android.xposed.callbacks.XC_LoadPackage + +class LockscreenWidgets(context: Context?) : ModPack(context!!) { + + // Parent + private var mStatusViewContainer: ViewGroup? = null + private var mStatusArea: ViewGroup? = null + + // Widgets Container + private lateinit var mWidgetsContainer: LinearLayout + + // Activity Starter + private var mActivityStarter: Any? = null + + // Ls custom clock + private var customLockscreenClock = false + + // Widgets Prefs + // Lockscreen Widgets + private var mWidgetsEnabled: Boolean = false + private var mDeviceWidgetEnabled = false + private var mDeviceCustomColor = false + private var mDeviceLinearColor = Color.WHITE + private var mDeviceCircularColor = Color.WHITE + private var mDeviceTextColor = Color.WHITE + private var mWidgetsCustomColor = false + private var mBigInactiveColor = Color.BLACK + private var mBigActiveColor = Color.WHITE + private var mSmallInactiveColor = Color.BLACK + private var mSmallActiveColor = Color.WHITE + private var mBigIconActiveColor = Color.WHITE + private var mBigIconInactiveColor = Color.BLACK + private var mSmallIconActiveColor = Color.WHITE + private var mSmallIconInactiveColor = Color.BLACK + private var mDeviceName = "" + private var mMainWidgets: String = "" + private var mExtraWidgets: String = "" + + override fun updatePrefs(vararg key: String) { + if (Xprefs == null) return + + // Ls custom clock + customLockscreenClock = Xprefs!!.getBoolean(LSCLOCK_SWITCH, false) + + // Widgets + mWidgetsEnabled = Xprefs!!.getBoolean(LOCKSCREEN_WIDGETS_ENABLED, false) + mDeviceWidgetEnabled = Xprefs!!.getBoolean(LOCKSCREEN_WIDGETS_DEVICE_WIDGET, false) + mMainWidgets = Xprefs!!.getString(LOCKSCREEN_WIDGETS, "")!! + mExtraWidgets = Xprefs!!.getString(LOCKSCREEN_WIDGETS_EXTRAS, "")!! + mDeviceCustomColor = + Xprefs!!.getBoolean(LOCKSCREEN_WIDGETS_DEVICE_WIDGET_CUSTOM_COLOR_SWITCH, false) + mDeviceLinearColor = + Xprefs!!.getInt(LOCKSCREEN_WIDGETS_DEVICE_WIDGET_LINEAR_COLOR, Color.WHITE) + mDeviceCircularColor = + Xprefs!!.getInt(LOCKSCREEN_WIDGETS_DEVICE_WIDGET_CIRCULAR_COLOR, Color.WHITE) + mDeviceTextColor = Xprefs!!.getInt(LOCKSCREEN_WIDGETS_DEVICE_WIDGET_TEXT_COLOR, Color.WHITE) + mDeviceName = Xprefs!!.getString(LOCKSCREEN_WIDGETS_DEVICE_WIDGET_DEVICE, "")!! + mWidgetsCustomColor = Xprefs!!.getBoolean(LOCKSCREEN_WIDGETS_CUSTOM_COLOR, false) + mBigInactiveColor = Xprefs!!.getInt(LOCKSCREEN_WIDGETS_BIG_INACTIVE, Color.BLACK) + mBigActiveColor = Xprefs!!.getInt(LOCKSCREEN_WIDGETS_BIG_ACTIVE, Color.WHITE) + mSmallInactiveColor = Xprefs!!.getInt(LOCKSCREEN_WIDGETS_SMALL_INACTIVE, Color.BLACK) + mSmallActiveColor = Xprefs!!.getInt(LOCKSCREEN_WIDGETS_SMALL_ACTIVE, Color.WHITE) + mBigIconActiveColor = Xprefs!!.getInt(LOCKSCREEN_WIDGETS_BIG_ICON_ACTIVE, Color.BLACK) + mBigIconInactiveColor = Xprefs!!.getInt(LOCKSCREEN_WIDGETS_BIG_ICON_INACTIVE, Color.WHITE) + mSmallIconActiveColor = Xprefs!!.getInt(LOCKSCREEN_WIDGETS_SMALL_ICON_ACTIVE, Color.BLACK) + mSmallIconInactiveColor = + Xprefs!!.getInt(LOCKSCREEN_WIDGETS_SMALL_ICON_INACTIVE, Color.WHITE) + + + if (key.isNotEmpty()) { + if (key[0] == LOCKSCREEN_WIDGETS_ENABLED || + key[0] == LOCKSCREEN_WIDGETS_DEVICE_WIDGET || + key[0] == LOCKSCREEN_WIDGETS || + key[0] == LOCKSCREEN_WIDGETS_EXTRAS + ) { + updateLockscreenWidgets() + } + if (key[0] == LOCKSCREEN_WIDGETS_DEVICE_WIDGET_CUSTOM_COLOR_SWITCH || + key[0] == LOCKSCREEN_WIDGETS_DEVICE_WIDGET_LINEAR_COLOR || + key[0] == LOCKSCREEN_WIDGETS_DEVICE_WIDGET_CIRCULAR_COLOR || + key[0] == LOCKSCREEN_WIDGETS_DEVICE_WIDGET_TEXT_COLOR || + key[0] == LOCKSCREEN_WIDGETS_DEVICE_WIDGET_DEVICE + ) { + updateLsDeviceWidget() + } + if (key[0] == LOCKSCREEN_WIDGETS_CUSTOM_COLOR || + key[0] == LOCKSCREEN_WIDGETS_BIG_ACTIVE || + key[0] == LOCKSCREEN_WIDGETS_BIG_INACTIVE || + key[0] == LOCKSCREEN_WIDGETS_SMALL_ACTIVE || + key[0] == LOCKSCREEN_WIDGETS_SMALL_INACTIVE || + key[0] == LOCKSCREEN_WIDGETS_BIG_ICON_ACTIVE || + key[0] == LOCKSCREEN_WIDGETS_BIG_ICON_INACTIVE || + key[0] == LOCKSCREEN_WIDGETS_SMALL_ICON_ACTIVE || + key[0] == LOCKSCREEN_WIDGETS_SMALL_ICON_INACTIVE + ) { + updateLockscreenWidgetsColors() + } + } + + } + + override fun handleLoadPackage(loadPackageParam: XC_LoadPackage.LoadPackageParam) { + mWidgetsContainer = LinearLayout(mContext) + mWidgetsContainer.layoutParams = LinearLayout.LayoutParams( + ViewGroup.LayoutParams.MATCH_PARENT, + ViewGroup.LayoutParams.WRAP_CONTENT + ) + + try { + LaunchableImageView = findClass("com.android.systemui.animation.view.LaunchableImageView", loadPackageParam.classLoader) + } catch (t: Throwable) { + log(ControllersProvider.TAG + " Error finding LaunchableImageView: " + t.message) + } + + try { + LaunchableLinearLayout = findClass("com.android.systemui.animation.view.LaunchableLinearLayout", loadPackageParam.classLoader) + } catch (t: Throwable) { + log(ControllersProvider.TAG + " Error finding LaunchableLinearLayout: " + t.message) + } + + try { + val KeyguardQuickAffordanceInteractor = findClass( + "com.android.systemui.keyguard.domain.interactor.KeyguardQuickAffordanceInteractor", + loadPackageParam.classLoader + ) + XposedBridge.hookAllConstructors( + KeyguardQuickAffordanceInteractor, + object : XC_MethodHook() { + @Throws(Throwable::class) + override fun afterHookedMethod(param: MethodHookParam) { + mActivityStarter = getObjectField(param.thisObject, "activityStarter") + setActivityStarter() + } + }) + } catch (ignored: Throwable) { + } + + val keyguardStatusViewClass = findClass( + "com.android.keyguard.KeyguardStatusView", + loadPackageParam.classLoader + ) + + hookAllMethods(keyguardStatusViewClass, "onFinishInflate", object : XC_MethodHook() { + override fun afterHookedMethod(param: MethodHookParam) { + if (!mWidgetsEnabled) return + + mStatusViewContainer = getObjectField( + param.thisObject, + "mStatusViewContainer" + ) as ViewGroup + + placeWidgets() + + } + }) + + val keyguardClockSwitch = findClass( + "com.android.keyguard.KeyguardClockSwitch", + loadPackageParam.classLoader + ) + + hookAllMethods(keyguardClockSwitch, "onFinishInflate", object : XC_MethodHook() { + override fun afterHookedMethod(param: MethodHookParam) { + if (!mWidgetsEnabled) return + + mStatusArea = getObjectField( + param.thisObject, + "mStatusArea" + ) as ViewGroup + + placeWidgets() + + } + }) + + val dozeScrimControllerClass = findClass( + "$SYSTEMUI_PACKAGE.statusbar.phone.DozeScrimController", + loadPackageParam.classLoader + ) + + hookAllMethods(dozeScrimControllerClass, "onDozingChanged", object : XC_MethodHook() { + override fun afterHookedMethod(param: MethodHookParam) { + updateDozingState(param.args[0] as Boolean) + } + }) + } + + private fun placeWidgets() { + if (mStatusViewContainer == null) return + try { + val lsWidgets = LockscreenWidgetsView.getInstance(mContext, mActivityStarter) + (lsWidgets.parent as ViewGroup?)?.removeView(lsWidgets) + (mWidgetsContainer.parent as ViewGroup?)?.removeView(mWidgetsContainer) + + mWidgetsContainer.addView(lsWidgets) + + if (customLockscreenClock) { + mStatusViewContainer!!.addView(mWidgetsContainer) + } else { + // Put weather view inside the status area + // But before notifications + mStatusArea!!.addView(mWidgetsContainer, mStatusArea!!.childCount - 1) + } + updateLockscreenWidgets() + updateLsDeviceWidget() + updateLockscreenWidgetsColors() + } catch (ignored: Throwable) { + } + + } + + private fun updateLockscreenWidgets() { + log(TAG + "Updating Lockscreen Widgets") + val lsWidgets = LockscreenWidgetsView.getInstance() ?: return + lsWidgets.setOptions(mWidgetsEnabled, mDeviceWidgetEnabled, mMainWidgets, mExtraWidgets) + } + + private fun updateLsDeviceWidget() { + log(TAG + "Updating Lockscreen Device Widget") + val lsWidgets = LockscreenWidgetsView.getInstance() ?: return + lsWidgets.setDeviceWidgetOptions( + mDeviceCustomColor, + mDeviceLinearColor, + mDeviceCircularColor, + mDeviceTextColor, + mDeviceName + ) + } + + private fun updateLockscreenWidgetsColors() { + log(TAG + "Updating Lockscreen Widgets Colors") + val lsWidgets = LockscreenWidgetsView.getInstance() ?: return + lsWidgets.setCustomColors( + mWidgetsCustomColor, + mBigInactiveColor, mBigActiveColor, + mSmallInactiveColor, mSmallActiveColor, + mBigIconInactiveColor, mBigIconActiveColor, + mSmallIconInactiveColor, mSmallIconActiveColor + ) + } + + private fun updateDozingState(isDozing: Boolean) { + val lsWidgets = LockscreenWidgetsView.getInstance() ?: return + lsWidgets.setDozingState(isDozing) + } + + private fun setActivityStarter() { + val lsWidgets = LockscreenWidgetsView.getInstance() ?: return + lsWidgets.setActivityStarter(mActivityStarter) + } + + companion object { + private val TAG = "Iconify - ${LockscreenWidgets::class.java.simpleName}: " + + var LaunchableImageView: Class<*>? = null + var LaunchableLinearLayout: Class<*>? = null + + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/ActivityLauncherUtils.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/ActivityLauncherUtils.kt new file mode 100644 index 000000000..872a554d2 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/ActivityLauncherUtils.kt @@ -0,0 +1,117 @@ +package com.drdisagree.iconify.xposed.modules.utils + +import android.content.ComponentName +import android.content.Context +import android.content.Intent +import android.content.pm.PackageManager +import android.provider.MediaStore +import android.provider.Settings +import android.widget.Toast +import androidx.annotation.StringRes +import com.drdisagree.iconify.R +import com.drdisagree.iconify.xposed.HookRes.Companion.modRes +import com.drdisagree.iconify.xposed.modules.ControllersProvider +import de.robv.android.xposed.XposedBridge.log +import de.robv.android.xposed.XposedHelpers +import de.robv.android.xposed.XposedHelpers.callMethod + +class ActivityLauncherUtils(private val mContext: Context, private val mActivityStarter: Any?) { + private val mPackageManager: PackageManager = mContext.packageManager + + val installedMusicApp: String + get() { + val intent = Intent(Intent.ACTION_MAIN) + intent.addCategory(Intent.CATEGORY_APP_MUSIC) + val musicApps = mPackageManager.queryIntentActivities(intent, 0) + val musicApp = if (musicApps.isEmpty()) null else musicApps[0] + return if (musicApp != null) musicApp.activityInfo.packageName else "" + } + + private fun launchAppIfAvailable(launchIntent: Intent?, @StringRes appTypeResId: Int) { + val apps = + mPackageManager.queryIntentActivities(launchIntent!!, PackageManager.MATCH_DEFAULT_ONLY) + if (apps.isNotEmpty()) { + if (mActivityStarter == null) { + log("ActivityStarter is null") + return + } + callMethod(mActivityStarter, "startActivity", launchIntent, true) + } else { + if (appTypeResId != 0) showNoDefaultAppFoundToast(appTypeResId) + } + } + + fun launchCamera() { + val launchIntent = Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE) + launchAppIfAvailable(launchIntent, R.string.camera) + } + + fun launchTimer() { + val intent = Intent() + intent.setAction("android.intent.action.SHOW_ALARMS") + intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP + Intent.FLAG_ACTIVITY_SINGLE_TOP) + launchAppIfAvailable(intent, R.string.clock_timer) + } + + fun launchCalculator() { + // If the calculator tile is available + // we can use it to open the calculator + val calculatorTile: Any? = ControllersProvider.mCalculatorTile + if (calculatorTile != null) { + callMethod(calculatorTile, "openCalculator") + return + } + + // Otherwise we try to launch the calculator app + val launchIntent = Intent(Intent.ACTION_MAIN) + launchIntent.addCategory(Intent.CATEGORY_APP_CALCULATOR) + launchIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP + Intent.FLAG_ACTIVITY_SINGLE_TOP) + launchAppIfAvailable(launchIntent, R.string.calculator) + } + + fun launchWallet() { + val launchIntent = + mContext.packageManager.getLaunchIntentForPackage("com.google.android.apps.walletnfcrel") + launchIntent?.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP + Intent.FLAG_ACTIVITY_SINGLE_TOP) + launchAppIfAvailable(launchIntent, R.string.wallet) + } + + fun launchSettingsComponent(className: String) { + if (mActivityStarter == null) return + val intent = + if (className == PERSONALIZATIONS_ACTIVITY) Intent(Intent.ACTION_MAIN) else Intent() + intent.setComponent(ComponentName("com.android.settings", className)) + callMethod(mActivityStarter, "startActivity", intent, true) + } + + fun launchAudioSettings() { + val launchIntent = Intent(Settings.ACTION_SOUND_SETTINGS) + launchAppIfAvailable(launchIntent, 0) + } + + fun startSettingsActivity() { + if (mActivityStarter == null) return + callMethod( + mActivityStarter, + "startActivity", + Intent(Settings.ACTION_SETTINGS), + true + ) + } + + fun launchInternetSettings() { + val launchIntent = Intent(Settings.ACTION_NETWORK_OPERATOR_SETTINGS) + launchIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP + Intent.FLAG_ACTIVITY_SINGLE_TOP) + launchAppIfAvailable(launchIntent, 0) + } + + private fun showNoDefaultAppFoundToast(@StringRes appTypeResId: Int) { + Toast.makeText(mContext, modRes.getString(appTypeResId) + " not found", Toast.LENGTH_SHORT) + .show() + } + + companion object { + private const val PERSONALIZATIONS_ACTIVITY = + "com.android.settings.Settings\$personalizationSettingsLayoutActivity" + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/ExtendedFAB.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/ExtendedFAB.kt new file mode 100644 index 000000000..a2605e826 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/ExtendedFAB.kt @@ -0,0 +1,21 @@ +package com.drdisagree.iconify.xposed.modules.utils + +import android.content.Context +import android.content.ContextWrapper +import android.content.res.Resources +import android.util.AttributeSet +import android.view.ContextThemeWrapper +import com.drdisagree.iconify.R +import com.drdisagree.iconify.xposed.HookRes.Companion.modRes +import com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton + +class ExtendedFAB @JvmOverloads constructor( + context: Context?, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 +) : + ExtendedFloatingActionButton(ContextThemeWrapper(object : ContextWrapper(context) { + override fun getResources(): Resources { + return modRes!! + } + }, R.style.Theme_MaterialComponents_DayNight), attrs, defStyleAttr) \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/views/DeviceWidgetView.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/views/DeviceWidgetView.kt new file mode 100644 index 000000000..5fc2493c5 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/views/DeviceWidgetView.kt @@ -0,0 +1,224 @@ +package com.drdisagree.iconify.xposed.modules.views + +import android.app.ActivityManager +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent +import android.content.IntentFilter +import android.content.pm.PackageManager +import android.content.res.ColorStateList +import android.graphics.Color +import android.media.AudioManager +import android.os.BatteryManager +import android.os.Build +import android.text.TextUtils +import android.view.View +import android.widget.FrameLayout +import android.widget.ImageView +import android.widget.ProgressBar +import android.widget.TextView +import androidx.core.content.ContextCompat +import com.drdisagree.iconify.BuildConfig +import com.drdisagree.iconify.R +import com.drdisagree.iconify.xposed.modules.utils.ArcProgressWidget.generateBitmap +import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.findViewWithTagAndChangeColor + +class DeviceWidgetView(private val mContext: Context) : FrameLayout(mContext) { + private var appContext: Context? = null + + private var mBatteryLevelView: TextView? = null + private var mBatteryProgress: ProgressBar? = null + private var mBatteryPercentage = 1 + private var mVolumeLevelArcProgress: ImageView? = null + private var mRamUsageArcProgress: ImageView? = null + + private val mAudioManager: AudioManager + private val mActivityManager: ActivityManager? + + private var mCustomColor = false + private var mProgressColor = 0 + private var mLinearProgressColor = 0 + private var mTextColor = 0 + + init { + try { + appContext = mContext.createPackageContext( + BuildConfig.APPLICATION_ID, + Context.CONTEXT_IGNORE_SECURITY + ) + } catch (ignored: PackageManager.NameNotFoundException) { + } + + mAudioManager = mContext.getSystemService(Context.AUDIO_SERVICE) as AudioManager + mActivityManager = mContext.getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager + + try { + val mBatteryReceiver: BroadcastReceiver = object : BroadcastReceiver() { + override fun onReceive(context: Context, intent: Intent) { + if (intent.action != null && intent.action == Intent.ACTION_BATTERY_CHANGED) { + val level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0) + val scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, 100) + mBatteryPercentage = (level * 100) / scale + initBatteryStatus() + } + } + } + mContext.registerReceiver(mBatteryReceiver, IntentFilter(Intent.ACTION_BATTERY_CHANGED)) + } catch (ignored: Exception) { + } + try { + val mVolumeReceiver: BroadcastReceiver = object : BroadcastReceiver() { + override fun onReceive(context: Context, intent: Intent) { + initSoundManager() + } + } + mContext.registerReceiver( + mVolumeReceiver, + IntentFilter("android.media.VOLUME_CHANGED_ACTION") + ) + } catch (ignored: Exception) { + } + + inflateView() + } + + private fun inflateView() { + inflate(appContext, R.layout.device_widget, this) + setupViews() + initSoundManager() + } + + private fun setupViews() { + mBatteryLevelView = findViewById(R.id.battery_percentage) + mBatteryProgress = findViewById(R.id.battery_progressbar) + mVolumeLevelArcProgress = findViewById(R.id.volume_progress) + mRamUsageArcProgress = findViewById(R.id.ram_usage_info) + + mBatteryProgress!!.setProgressTintList( + ColorStateList.valueOf( + if (mCustomColor) + if (mLinearProgressColor == 0) mContext.resources.getColor( + mContext.resources.getIdentifier( + "android:color/system_accent1_300", + "color", + mContext.packageName + ), mContext.theme) + else mLinearProgressColor + else + mLinearProgressColor + ) + ) + + (findViewById(R.id.device_name) as TextView).text = + Build.MODEL + } + + private fun initBatteryStatus() { + if (mBatteryProgress != null) { + post { + mBatteryProgress!!.progress = mBatteryPercentage + mBatteryProgress!!.progressTintList = ColorStateList.valueOf( + if (mCustomColor) + if (mLinearProgressColor == 0) mContext.resources.getColor( + mContext.resources.getIdentifier( + "android:color/system_accent1_300", + "color", + mContext.packageName + ), mContext.theme) + else mLinearProgressColor + else + mLinearProgressColor + ) + } + } + if (mBatteryLevelView != null) { + post { + mBatteryLevelView!!.text = appContext!!.resources + .getString(R.string.percentage_text, mBatteryPercentage) + } + } + + initRamUsage() + } + + private fun initSoundManager() { + val volLevel = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC) + val maxVolLevel = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC) + val volPercent = ((volLevel.toFloat() / maxVolLevel) * 100).toInt() + + if (mVolumeLevelArcProgress != null) { + val widgetBitmap = generateBitmap( + mContext, + volPercent, + appContext!!.resources.getString(R.string.percentage_text, volPercent), + 40, + ContextCompat.getDrawable(appContext!!, R.drawable.ic_volume_up), + 36 + ) + post { mVolumeLevelArcProgress!!.setImageBitmap(widgetBitmap) } + } + } + + private fun initRamUsage() { + if (mActivityManager == null) return + + val memoryInfo = ActivityManager.MemoryInfo() + mActivityManager.getMemoryInfo(memoryInfo) + val usedMemory = memoryInfo.totalMem - memoryInfo.availMem + if (memoryInfo.totalMem == 0L) return + val usedMemoryPercentage = ((usedMemory * 100) / memoryInfo.totalMem).toInt() + + if (mRamUsageArcProgress != null) { + val widgetBitmap = generateBitmap( + context = mContext, + percentage = usedMemoryPercentage, + textInside = appContext!!.resources.getString( + R.string.percentage_text, + usedMemoryPercentage + ), + textInsideSizePx = 40, + textBottom = "RAM", + textBottomSizePx = 28 + ) + post { mRamUsageArcProgress!!.setImageBitmap(widgetBitmap) } + } + } + + fun setCustomColor(customColor: Boolean, linearColor: Int, circularColor: Int) { + mCustomColor = customColor + mProgressColor = linearColor + mLinearProgressColor = circularColor + post { this.initSoundManager() } + post { + findViewWithTagAndChangeColor( + this, + "circularprogress", + if (mCustomColor) mProgressColor else Color.WHITE + ) + } + } + + fun setTextCustomColor(color: Int) { + mTextColor = color + post { + findViewWithTagAndChangeColor( + this, + "text1", + mTextColor + ) + } + } + + fun setDeviceName(devName: String?) { + val deviceName = if (!TextUtils.isEmpty(devName)) { + devName + } else { + Build.MODEL + } + + post { + (findViewById(R.id.device_name) as TextView).text = + deviceName + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/views/LockscreenWidgetsView.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/views/LockscreenWidgetsView.kt new file mode 100644 index 000000000..7b951dbad --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/views/LockscreenWidgetsView.kt @@ -0,0 +1,1791 @@ +package com.drdisagree.iconify.xposed.modules.views + +import android.annotation.SuppressLint +import android.bluetooth.BluetoothAdapter +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent +import android.content.IntentFilter +import android.content.res.ColorStateList +import android.content.res.Configuration +import android.graphics.drawable.Drawable +import android.hardware.camera2.CameraManager +import android.media.AudioManager +import android.media.MediaMetadata +import android.media.session.MediaController +import android.media.session.MediaController.PlaybackInfo +import android.media.session.MediaSessionManager +import android.media.session.PlaybackState +import android.net.ConnectivityManager +import android.net.NetworkCapabilities +import android.net.wifi.WifiConfiguration +import android.net.wifi.WifiManager +import android.os.Build +import android.os.Handler +import android.os.Looper +import android.os.SystemClock +import android.telephony.TelephonyManager +import android.text.TextUtils +import android.util.Log +import android.view.GestureDetector +import android.view.GestureDetector.SimpleOnGestureListener +import android.view.Gravity +import android.view.HapticFeedbackConstants +import android.view.KeyEvent +import android.view.MotionEvent +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.LinearLayout +import androidx.core.content.ContextCompat +import androidx.core.content.res.ResourcesCompat +import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Const.FRAMEWORK_PACKAGE +import com.drdisagree.iconify.common.Const.SYSTEMUI_PACKAGE +import com.drdisagree.iconify.utils.OmniJawsClient +import com.drdisagree.iconify.xposed.HookRes.Companion.modRes +import com.drdisagree.iconify.xposed.modules.ControllersProvider +import com.drdisagree.iconify.xposed.modules.LockscreenWidgets.Companion.LaunchableImageView +import com.drdisagree.iconify.xposed.modules.LockscreenWidgets.Companion.LaunchableLinearLayout +import com.drdisagree.iconify.xposed.modules.utils.ActivityLauncherUtils +import com.drdisagree.iconify.xposed.modules.utils.ExtendedFAB +import de.robv.android.xposed.XposedBridge.log +import de.robv.android.xposed.XposedHelpers.callMethod +import de.robv.android.xposed.XposedHelpers.getBooleanField +import de.robv.android.xposed.XposedHelpers.getObjectField +import java.lang.reflect.Method +import java.util.Locale +import kotlin.math.abs +import kotlin.math.min + +@SuppressLint("ViewConstructor") +class LockscreenWidgetsView(context: Context, activityStarter: Any?) : + LinearLayout(context), OmniJawsClient.OmniJawsObserver { + + private val mContext: Context + + private var mWeatherClient: OmniJawsClient? = null + private var mWeatherInfo: OmniJawsClient.WeatherInfo? = null + + // Two Linear Layouts, one for main widgets and one for secondary widgets + private val mDeviceWidgetContainer: LinearLayout? + private val mMainWidgetsContainer: LinearLayout? + private val mSecondaryWidgetsContainer: LinearLayout? + private var mDeviceWidgetView: DeviceWidgetView? = null + + private var mediaButtonFab: ExtendedFAB? = null + private var torchButtonFab: ExtendedFAB? = null + private var weatherButtonFab: ExtendedFAB? = null + private var wifiButtonFab: ExtendedFAB? = null + private var dataButtonFab: ExtendedFAB? = null + private var ringerButtonFab: ExtendedFAB? = null + private var btButtonFab: ExtendedFAB? = null + private var hotspotButtonFab: ExtendedFAB? = null + private var mediaButton: ImageView? = null + private var torchButton: ImageView? = null + private var weatherButton: ImageView? = null + private var hotspotButton: ImageView? = null + private var wifiButton: ImageView? = null + private var dataButton: ImageView? = null + private var ringerButton: ImageView? = null + private var btButton: ImageView? = null + private val mDarkColor: Int + private val mDarkColorActive: Int + private val mLightColor: Int + private val mLightColorActive: Int + + // Custom Widgets Colors + private var mCustomColors = false + private var mBigInactiveColor = 0 + private var mBigActiveColor = 0 + private var mSmallInactiveColor = 0 + private var mSmallActiveColor = 0 + private var mBigIconInactiveColor = 0 + private var mBigIconActiveColor = 0 + private var mSmallIconInactiveColor = 0 + private var mSmallIconActiveColor = 0 + + private var mMainLockscreenWidgetsList: String? = null + private var mSecondaryLockscreenWidgetsList: String? = null + private var mMainWidgetViews: Array? = null + private var mSecondaryWidgetViews: Array? = null + private var mMainWidgetsList: List? = ArrayList() + private var mSecondaryWidgetsList: List? = ArrayList() + + private val mAudioManager: AudioManager? + private val mWifiManager: WifiManager? + private val mTelephonyManager: TelephonyManager? + private val mConnectivityManager: ConnectivityManager? + private var mController: MediaController? = null + private var mMediaMetadata: MediaMetadata? = null + private var mLastTrackTitle: String? = null + + private var lockscreenWidgetsEnabled = false + private var deviceWidgetsEnabled = false + + private var isBluetoothOn = false + + private var mIsInflated = false + private var mIsLongPress = false + + private val mCameraManager: CameraManager + private var mCameraId: String? = null + private var isFlashOn = false + + private var mWifiIndicators: Any? = null + private var mMobileIndicators: Any? = null + + private val mAudioMode = 0 + private val mMediaUpdater: Runnable + private val mHandler: Handler + + // Dozing State + private var mDozing: Boolean = false + + private var mActivityLauncherUtils: ActivityLauncherUtils + + private val mScreenOnReceiver: BroadcastReceiver = object : BroadcastReceiver() { + override fun onReceive(context: Context, intent: Intent) { + if (Intent.ACTION_SCREEN_ON == intent.action) { + onVisible() + } + } + } + + private val mMediaCallback: MediaController.Callback = object : MediaController.Callback() { + override fun onPlaybackStateChanged(state: PlaybackState?) { + updateMediaController() + } + + override fun onMetadataChanged(metadata: MediaMetadata?) { + super.onMetadataChanged(metadata) + mMediaMetadata = metadata + updateMediaController() + } + } + + private val mMobileDataCallback: ControllersProvider.OnMobileDataChanged = + object : ControllersProvider.OnMobileDataChanged { + override fun setMobileDataIndicators(mMobileDataIndicators: Any?) { + log("LockscreenWidgets setMobileDataIndicators") + val qsIcon = getObjectField(mMobileDataIndicators, "qsIcon") + this@LockscreenWidgetsView.mMobileIndicators = mMobileDataIndicators + if (qsIcon == null) { + log("LockscreenWidgets setMobileDataIndicators qsIcon null") + updateMobileDataState(false) + return + } + updateMobileDataState(isMobileDataEnabled) + } + + override fun setNoSims(show: Boolean, simDetected: Boolean) { + log("LockscreenWidgets setNoSims") + updateMobileDataState(simDetected && isMobileDataEnabled) + } + + override fun setIsAirplaneMode(mIconState: Any?) { + log("LockscreenWidgets setIsAirplaneMode") + updateMobileDataState( + !getBooleanField( + mIconState, + "visible" + ) && isMobileDataEnabled + ) + } + } + + private val mWifiCallback: ControllersProvider.OnWifiChanged = object : ControllersProvider.OnWifiChanged { + override fun onWifiChanged(mWifiIndicators: Any?) { + log("LockscreenWidgets onWifiChanged") + this@LockscreenWidgetsView.mWifiIndicators = mWifiIndicators + val qsIcon = getObjectField(mWifiIndicators, "qsIcon") + log("LockscreenWidgets onWifiChanged qsIcon " + (qsIcon != null)) + if (qsIcon == null) { + updateWiFiButtonState(false) + return + } + updateWiFiButtonState(isWifiEnabled) + } + } + + private val mBluetoothCallback: ControllersProvider.OnBluetoothChanged = object : ControllersProvider.OnBluetoothChanged { + override fun onBluetoothChanged(enabled: Boolean) { + log("LockscreenWidgets onBluetoothChanged $enabled") + isBluetoothOn = enabled + updateBtState() + } + } + + private val mTorchCallback: ControllersProvider.OnTorchModeChanged = object : ControllersProvider.OnTorchModeChanged { + override fun onTorchModeChanged(enabled: Boolean) { + log("LockscreenWidgets onTorchChanged $enabled") + isFlashOn = enabled + updateTorchButtonState() + } + } + + private val mHotspotCallback: ControllersProvider.OnHotspotChanged = object : ControllersProvider.OnHotspotChanged { + override fun onHotspotChanged(enabled: Boolean, connectedDevices: Int) { + log("LockscreenWidgets onHotspotChanged $enabled") + updateHotspotButtonState(connectedDevices) + } + } + + private val mDozeCallback: ControllersProvider.OnDozingChanged = object : ControllersProvider.OnDozingChanged { + override fun onDozingChanged(dozing: Boolean) { + if (mDozing == dozing) { + return + } + mDozing = dozing + updateContainerVisibility() + } + } + + private fun createDeviceWidgetContainer(context: Context): LinearLayout { + val deviceWidget = LinearLayout(context) + deviceWidget.orientation = HORIZONTAL + deviceWidget.gravity = Gravity.CENTER + deviceWidget.layoutParams = LayoutParams( + ViewGroup.LayoutParams.MATCH_PARENT, + ViewGroup.LayoutParams.WRAP_CONTENT + ) + + mDeviceWidgetView = DeviceWidgetView(context) + + deviceWidget.addView(mDeviceWidgetView) + + log("LockscreenWidgets createDeviceWidgetContainer done") + + return deviceWidget + } + + private fun createMainWidgetsContainer(context: Context): LinearLayout { + var mainWidgetsContainer: LinearLayout? + log("LockscreenWidgets createMainWidgetsContainer LaunchableLinearLayout " + (LaunchableLinearLayout != null)) + try { + mainWidgetsContainer = + LaunchableLinearLayout!!.getConstructor(Context::class.java).newInstance(context) as LinearLayout? + } catch (e: Exception) { + log("LockscreenWidgets createMainWidgetsContainer LaunchableLinearLayout not found: " + e.message) + mainWidgetsContainer = LinearLayout(context) + } + + if (mainWidgetsContainer == null) { + mainWidgetsContainer = LinearLayout(context) // Ensure the creation on our linear layout + } + + mainWidgetsContainer.orientation = HORIZONTAL + mainWidgetsContainer.gravity = Gravity.CENTER + mainWidgetsContainer.setLayoutParams( + LayoutParams( + ViewGroup.LayoutParams.MATCH_PARENT, + ViewGroup.LayoutParams.WRAP_CONTENT + ) + ) + + // Add FABs to the main widgets container + mMainWidgetViews = arrayOf( + createFAB(context), + createFAB(context) + ) + + for (mMainWidgetView: ExtendedFAB in mMainWidgetViews!!) { + mainWidgetsContainer.addView(mMainWidgetView) + } + + return mainWidgetsContainer + } + + private fun createFAB(context: Context): ExtendedFAB { + val fab = ExtendedFAB(context) + fab.setId(generateViewId()) + val params = LayoutParams( + modRes.getDimensionPixelSize(R.dimen.kg_widget_main_width), + modRes.getDimensionPixelSize(R.dimen.kg_widget_main_height) + ) + params.setMargins( + modRes.getDimensionPixelSize(R.dimen.kg_widgets_main_margin_start), + 0, + modRes.getDimensionPixelSize(R.dimen.kg_widgets_main_margin_end), + 0 + ) + fab.setLayoutParams(params) + fab.setPadding( + modRes.getDimensionPixelSize(R.dimen.kg_main_widgets_icon_padding), + modRes.getDimensionPixelSize(R.dimen.kg_main_widgets_icon_padding), + modRes.getDimensionPixelSize(R.dimen.kg_main_widgets_icon_padding), + modRes.getDimensionPixelSize(R.dimen.kg_main_widgets_icon_padding) + ) + fab.setGravity(Gravity.CENTER) + return fab + } + + private fun createSecondaryWidgetsContainer(context: Context): LinearLayout { + var secondaryWidgetsContainer: LinearLayout? + log("LockscreenWidgets createSecondaryWidgetsContainer LaunchableLinearLayout " + (LaunchableLinearLayout != null)) + try { + secondaryWidgetsContainer = + LaunchableLinearLayout?.getConstructor(Context::class.java)?.newInstance(context) as LinearLayout? + } catch (e: Exception) { + log("LockscreenWidgets createMainWidgetsContainer LaunchableLinearLayout not found: " + e.message) + secondaryWidgetsContainer = LinearLayout(context) + } + + if (secondaryWidgetsContainer == null) { + secondaryWidgetsContainer = + LinearLayout(context) // Ensure the creation on our linear layout + } + + secondaryWidgetsContainer.orientation = HORIZONTAL + secondaryWidgetsContainer.gravity = Gravity.CENTER_HORIZONTAL + secondaryWidgetsContainer.setLayoutParams( + LayoutParams( + ViewGroup.LayoutParams.MATCH_PARENT, + ViewGroup.LayoutParams.WRAP_CONTENT + ) + ) + (secondaryWidgetsContainer.layoutParams as MarginLayoutParams).topMargin = + modRes.getDimensionPixelSize(R.dimen.kg_widget_margin_vertical) + (secondaryWidgetsContainer.layoutParams as MarginLayoutParams).bottomMargin = + modRes.getDimensionPixelSize(R.dimen.kg_widget_margin_bottom) + + // Add ImageViews to the secondary widgets container + mSecondaryWidgetViews = arrayOf( + createImageView(context), + createImageView(context), + createImageView(context), + createImageView(context) + ) + + for (mSecondaryWidgetView: ImageView? in mSecondaryWidgetViews!!) { + secondaryWidgetsContainer.addView(mSecondaryWidgetView) + } + + return secondaryWidgetsContainer + } + + private fun createImageView(context: Context): ImageView { + val imageView: ImageView = try { + LaunchableImageView?.getConstructor(Context::class.java)?.newInstance(context) as ImageView + } catch (e: Exception) { + // LaunchableImageView not found or other error, ensure the creation of our ImageView + ImageView(context) + } + + imageView.id = generateViewId() + val params = LayoutParams( + modRes.getDimensionPixelSize(R.dimen.kg_widget_circle_size), + modRes.getDimensionPixelSize(R.dimen.kg_widget_circle_size) + ) + params.setMargins( + modRes.getDimensionPixelSize(R.dimen.kg_widgets_margin_horizontal), + 0, + modRes.getDimensionPixelSize(R.dimen.kg_widgets_margin_horizontal), + 0 + ) + imageView.layoutParams = params + imageView.setPadding( + modRes.getDimensionPixelSize(R.dimen.kg_widgets_icon_padding), + modRes.getDimensionPixelSize(R.dimen.kg_widgets_icon_padding), + modRes.getDimensionPixelSize(R.dimen.kg_widgets_icon_padding), + modRes.getDimensionPixelSize(R.dimen.kg_widgets_icon_padding) + ) + imageView.isFocusable = true + imageView.isClickable = true + + return imageView + } + + private val isMediaControllerAvailable: Boolean + get() { + val mediaController = + activeLocalMediaController + return mediaController != null && !TextUtils.isEmpty(mediaController.packageName) + } + + private val activeLocalMediaController: MediaController? + get() { + val mediaSessionManager = + mContext.getSystemService(MediaSessionManager::class.java) + var localController: MediaController? = null + val remoteMediaSessionLists: MutableList = ArrayList() + for (controller: MediaController in mediaSessionManager.getActiveSessions(null)) { + val pi = controller.playbackInfo ?: continue + val playbackState = controller.playbackState ?: continue + if (playbackState.state != PlaybackState.STATE_PLAYING) { + continue + } + if (pi.playbackType == PlaybackInfo.PLAYBACK_TYPE_REMOTE) { + if (localController != null + && TextUtils.equals( + localController.packageName, controller.packageName + ) + ) { + localController = null + } + if (!remoteMediaSessionLists.contains(controller.packageName)) { + remoteMediaSessionLists.add(controller.packageName) + } + continue + } + if (pi.playbackType == PlaybackInfo.PLAYBACK_TYPE_LOCAL) { + if (localController == null + && !remoteMediaSessionLists.contains(controller.packageName) + ) { + localController = controller + } + } + } + return localController + } + + private fun isWidgetEnabled(widget: String): Boolean { + if (mMainWidgetViews == null || mSecondaryWidgetViews == null) { + return false + } + return mMainWidgetsList!!.contains(widget) || mSecondaryWidgetsList!!.contains(widget) + } + + private fun updateMediaController() { + if (!isWidgetEnabled("media")) return + val localController = + activeLocalMediaController + if (localController != null && !sameSessions(mController, localController)) { + if (mController != null) { + mController!!.unregisterCallback(mMediaCallback) + mController = null + } + mController = localController + mController!!.registerCallback(mMediaCallback) + } + mMediaMetadata = if (isMediaControllerAvailable) mController!!.metadata else null + updateMediaState() + } + + override fun onVisibilityChanged(changedView: View, visibility: Int) { + super.onVisibilityChanged(changedView, visibility) + if (visibility == VISIBLE && isAttachedToWindow) { + onVisible() + updateMediaController() + } + } + + override fun onWindowVisibilityChanged(visibility: Int) { + super.onWindowVisibilityChanged(visibility) + if (!lockscreenWidgetsEnabled) return + if (visibility == VISIBLE) { + onVisible() + } + } + + private fun enableWeatherUpdates() { + if (mWeatherClient != null) { + mWeatherClient!!.addObserver(this) + queryAndUpdateWeather() + } + } + + fun disableWeatherUpdates() { + if (mWeatherClient != null) { + weatherButton = null + weatherButtonFab = null + mWeatherClient!!.removeObserver(this) + } + } + + override fun weatherError(errorReason: Int) { + if (errorReason == OmniJawsClient.EXTRA_ERROR_DISABLED) { + mWeatherInfo = null + } + } + + override fun weatherUpdated() { + queryAndUpdateWeather() + } + + override fun updateSettings() { + queryAndUpdateWeather() + } + + @SuppressLint("SetTextI18n") + private fun queryAndUpdateWeather() { + try { + if (mWeatherClient == null || !mWeatherClient!!.isOmniJawsEnabled) { + return + } + mWeatherClient!!.queryWeather() + mWeatherInfo = mWeatherClient!!.weatherInfo + if (mWeatherInfo != null) { + // OpenWeatherMap + var formattedCondition: String = mWeatherInfo!!.condition!! + if (formattedCondition.lowercase(Locale.getDefault()) + .contains("clouds") || formattedCondition.lowercase( + Locale.getDefault() + ).contains("overcast") + ) { + formattedCondition = modRes.getString(R.string.weather_condition_clouds) + } else if (formattedCondition.lowercase(Locale.getDefault()).contains("rain")) { + formattedCondition = modRes.getString(R.string.weather_condition_rain) + } else if (formattedCondition.lowercase(Locale.getDefault()).contains("clear")) { + formattedCondition = modRes.getString(R.string.weather_condition_clear) + } else if (formattedCondition.lowercase(Locale.getDefault()).contains("storm")) { + formattedCondition = modRes.getString(R.string.weather_condition_storm) + } else if (formattedCondition.lowercase(Locale.getDefault()).contains("snow")) { + formattedCondition = modRes.getString(R.string.weather_condition_snow) + } else if (formattedCondition.lowercase(Locale.getDefault()).contains("wind")) { + formattedCondition = modRes.getString(R.string.weather_condition_wind) + } else if (formattedCondition.lowercase(Locale.getDefault()).contains("mist")) { + formattedCondition = modRes.getString(R.string.weather_condition_mist) + } + + // MET Norway + if (formattedCondition.lowercase(Locale.getDefault()).contains("_")) { + val words = + formattedCondition.split("_".toRegex()).dropLastWhile { it.isEmpty() } + .toTypedArray() + val formattedConditionBuilder = StringBuilder() + for (word in words) { + val capitalizedWord = + word.substring(0, 1).uppercase(Locale.getDefault()) + word.substring(1) + formattedConditionBuilder.append(capitalizedWord).append(" ") + } + formattedCondition = formattedConditionBuilder.toString().trim { it <= ' ' } + } + + val d: Drawable = + mWeatherClient!!.getWeatherConditionImage(mWeatherInfo!!.conditionCode) + if (weatherButtonFab != null) { + weatherButtonFab!!.icon = d + weatherButtonFab!!.text = (mWeatherInfo!!.temp + mWeatherInfo!!.tempUnits) + " • " + formattedCondition + weatherButtonFab!!.iconTint = null + } + if (weatherButton != null) { + weatherButton!!.setImageDrawable(d) + weatherButton!!.imageTintList = null + } + } + } catch (e: java.lang.Exception) { + Log.e("LockscreenWidgets", "Error updating weather: " + e.message) + } + } + + private fun onVisible() { + log("LockscreenWidgets onVisible") + + // Update the widgets when the view is visible + if (isWidgetEnabled("weather")) { + enableWeatherUpdates() + } + updateTorchButtonState() + updateRingerButtonState() + updateBtState() + updateWiFiButtonState(isWifiEnabled) + updateMobileDataState(isMobileDataEnabled) + } + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + log("LockscreenWidgets onAttachedToWindow") + onVisible() + } + + override fun onDetachedFromWindow() { + super.onDetachedFromWindow() + if (isWidgetEnabled("weather")) { + disableWeatherUpdates() + } + } + + public override fun onConfigurationChanged(newConfig: Configuration) { + super.onConfigurationChanged(newConfig) + log("LockscreenWidgets onConfigurationChanged") + updateWidgetViews() + } + + override fun onFinishInflate() { + super.onFinishInflate() + log("LockscreenWidgets onFinishInflate") + mIsInflated = true + updateWidgetViews() + } + + private fun updateContainerVisibility() { + val isMainWidgetsEmpty = (mMainLockscreenWidgetsList == null + || TextUtils.isEmpty(mMainLockscreenWidgetsList)) + val isSecondaryWidgetsEmpty = (mSecondaryLockscreenWidgetsList == null + || TextUtils.isEmpty(mSecondaryLockscreenWidgetsList)) + val isEmpty = isMainWidgetsEmpty && isSecondaryWidgetsEmpty + + if (mDeviceWidgetContainer != null) { + mDeviceWidgetContainer.visibility = if (deviceWidgetsEnabled) VISIBLE else GONE + } + if (mMainWidgetsContainer != null) { + mMainWidgetsContainer.visibility = if (isMainWidgetsEmpty) GONE else VISIBLE + } + if (mSecondaryWidgetsContainer != null) { + mSecondaryWidgetsContainer.visibility = if (isSecondaryWidgetsEmpty) GONE else VISIBLE + } + val shouldHideContainer = isEmpty || mDozing || !lockscreenWidgetsEnabled + visibility = if (shouldHideContainer) GONE else VISIBLE + } + + private fun updateWidgetViews() { + log("LockscreenWidgets updateWidgetViews lockscreenWidgetsEnabled $lockscreenWidgetsEnabled") + + if (mMainWidgetViews != null && mMainWidgetsList != null) { + for (i in mMainWidgetViews!!.indices) { + mMainWidgetViews!![i].visibility = if (i < mMainWidgetsList!!.size) VISIBLE else GONE + } + for (i in 0 until min( + mMainWidgetsList!!.size.toDouble(), + mMainWidgetViews!!.size.toDouble() + ) + .toInt()) { + val widgetType: String = mMainWidgetsList!![i] + if (i < mMainWidgetViews!!.size) { + log("LockscreenWidgets updateWidgetViews mMainWidgetsList $widgetType") + setUpWidgetWiews(null, mMainWidgetViews!![i], widgetType) + updateMainWidgetResources(mMainWidgetViews!![i], false) + } + } + } + if (mSecondaryWidgetViews != null && mSecondaryWidgetsList != null) { + for (i in mSecondaryWidgetViews!!.indices) { + mSecondaryWidgetViews!![i].visibility = + if (i < mSecondaryWidgetsList!!.size) VISIBLE else GONE + } + for (i in 0 until min( + mSecondaryWidgetsList!!.size.toDouble(), + mSecondaryWidgetViews!!.size.toDouble() + ) + .toInt()) { + val widgetType: String = mSecondaryWidgetsList!![i] + if (i < mSecondaryWidgetViews!!.size) { + log("LockscreenWidgets updateWidgetViews mSecondaryWidgetsList $widgetType") + setUpWidgetWiews(mSecondaryWidgetViews!![i], null, widgetType) + updateWidgetsResources(mSecondaryWidgetViews!![i]) + } + } + } + updateContainerVisibility() + updateMediaController() + } + + private fun updateMainWidgetResources(efab: ExtendedFAB?, active: Boolean) { + if (efab == null) return + efab.setElevation(0F) + setButtonActiveState(null, efab, false) + val params: ViewGroup.LayoutParams = efab.layoutParams + if (params is LayoutParams) { + if (efab.visibility == VISIBLE && mMainWidgetsList!!.size == 1) { + params.width = modRes.getDimensionPixelSize(R.dimen.kg_widget_main_width) + params.height = modRes.getDimensionPixelSize(R.dimen.kg_widget_main_height) + } else { + params.width = 0 + params.weight = 1f + } + efab.setLayoutParams(params) + } + } + + private fun updateWidgetsResources(iv: ImageView?) { + if (iv == null) return + val d = ResourcesCompat.getDrawable( + modRes, + R.drawable.lockscreen_widget_background_circle, + mContext.theme + ) + iv.background = d + setButtonActiveState(iv, null, false) + } + + private val isNightMode: Boolean + get() { + val config = mContext.resources.configuration + return ((config.uiMode and Configuration.UI_MODE_NIGHT_MASK) + == Configuration.UI_MODE_NIGHT_YES) + } + + private fun setUpWidgetWiews(iv: ImageView?, efab: ExtendedFAB?, type: String) { + when (type) { + "none" -> { + if (iv != null) { + iv.visibility = GONE + } + efab?.visibility = GONE + } + + "wifi" -> { + if (iv != null) { + wifiButton = iv + wifiButton!!.setOnLongClickListener { v: View -> + showInternetDialog(v) + true + } + } + if (efab != null) { + wifiButtonFab = efab + wifiButtonFab!!.setOnLongClickListener { v -> + showInternetDialog(v) + true + } + } + setUpWidgetResources(iv, efab, + { toggleWiFi() }, getDrawable(WIFI_INACTIVE, SYSTEMUI_PACKAGE), getString("wifi_Connected", SYSTEMUI_PACKAGE) + ) + } + + "data" -> { + if (iv != null) { + dataButton = iv + dataButton!!.setOnLongClickListener { v: View -> + showInternetDialog(v) + true + } + } + if (efab != null) { + dataButtonFab = efab + dataButtonFab!!.setOnLongClickListener { v -> + showInternetDialog(v) + true + } + } + setUpWidgetResources( + iv, efab, + { toggleMobileData() }, getDrawable(DATA_ICON, FRAMEWORK_PACKAGE), getString( + DATA_LABEL, SYSTEMUI_PACKAGE) + ) + } + + "ringer" -> { + if (iv != null) { + ringerButton = iv + ringerButton!!.setOnLongClickListener { + mActivityLauncherUtils.launchAudioSettings() + true + } + } + if (efab != null) { + ringerButtonFab = efab + ringerButtonFab!!.setOnLongClickListener { + mActivityLauncherUtils.launchAudioSettings() + true + } + } + setUpWidgetResources( + iv, efab, + { toggleRingerMode() }, getDrawable(RINGER_NORMAL, SYSTEMUI_PACKAGE), getString( + RINGER_LABEL_INACTIVE, SYSTEMUI_PACKAGE) + ) + } + + "bt" -> { + if (iv != null) { + btButton = iv + btButton!!.setOnLongClickListener { v: View -> + showBluetoothDialog(v) + true + } + } + if (efab != null) { + btButtonFab = efab + btButtonFab!!.setOnLongClickListener { v -> + showBluetoothDialog(v) + true + } + } + setUpWidgetResources( + iv, efab, + { toggleBluetoothState() }, getDrawable( + BT_ICON, + SYSTEMUI_PACKAGE), getString(BT_LABEL, SYSTEMUI_PACKAGE) + ) + } + + "torch" -> { + if (iv != null) { + torchButton = iv + } + if (efab != null) { + torchButtonFab = efab + } + setUpWidgetResources( + iv, efab, + { toggleFlashlight() }, getDrawable(TORCH_RES_INACTIVE, SYSTEMUI_PACKAGE), getString( + TORCH_LABEL, SYSTEMUI_PACKAGE) + ) + } + + "timer" -> setUpWidgetResources(iv, efab, { + mActivityLauncherUtils.launchTimer() + vibrate(1) + }, getDrawable("ic_alarm", SYSTEMUI_PACKAGE), modRes.getString(R.string.clock_timer)) + + "camera" -> setUpWidgetResources(iv, efab, { + mActivityLauncherUtils.launchCamera() + vibrate(1) + }, getDrawable(CAMERA_ICON, SYSTEMUI_PACKAGE), getString(CAMERA_LABEL, SYSTEMUI_PACKAGE)) + + "calculator" -> setUpWidgetResources( + iv, + efab, + { openCalculator() }, + getDrawable(CALCULATOR_ICON, SYSTEMUI_PACKAGE), + getString( + CALCULATOR_LABEL, SYSTEMUI_PACKAGE + ) + ) + + "homecontrols" -> setUpWidgetResources( + iv, efab, + { view: View -> + this.launchHomeControls( + view + ) + }, getDrawable(HOME_CONTROLS, SYSTEMUI_PACKAGE), getString(HOME_CONTROLS_LABEL, SYSTEMUI_PACKAGE) + ) + + "wallet" -> setUpWidgetResources(iv, efab, + { view: View -> + this.launchWallet( + view + ) + }, getDrawable(WALLET_ICON, SYSTEMUI_PACKAGE), getString(WALLET_LABEL, SYSTEMUI_PACKAGE) + ) + + "media" -> { + if (iv != null) { + mediaButton = iv + mediaButton!!.setOnLongClickListener {true} + } + if (efab != null) { + mediaButtonFab = efab + mediaButtonFab!!.setOnLongClickListener {true} + } + setUpWidgetResources( + iv, efab, + { toggleMediaPlaybackState() }, + ResourcesCompat.getDrawable(modRes, R.drawable.ic_play, mContext.theme), + getString(MEDIA_PLAY_LABEL, SYSTEMUI_PACKAGE) + ) + } + + "weather" -> { + if (iv != null) { + weatherButton = iv + } + if (efab != null) { + weatherButtonFab = efab + } + //setUpWidgetResources(iv, efab, v -> mActivityLauncherUtils.launchWeatherApp(), "ic_alarm", R.string.weather_data_unavailable); +// enableWeatherUpdates() + } + + "hotspot" -> { + if (iv != null) { + hotspotButton = iv + hotspotButton!!.setOnLongClickListener { + mActivityLauncherUtils.launchSettingsComponent("com.android.settings.TetherSettings") + true + } + } + if (efab != null) { + hotspotButtonFab = efab + hotspotButtonFab!!.setOnLongClickListener { + mActivityLauncherUtils.launchSettingsComponent("com.android.settings.TetherSettings") + true + } + } + setUpWidgetResources( + iv, efab, { toggleHotspot() }, + getDrawable(HOTSPOT_INACTIVE, SYSTEMUI_PACKAGE), + getString(HOTSPOT_LABEL, SYSTEMUI_PACKAGE) + ) + } + + else -> {} + } + } + + private fun setUpWidgetResources( + iv: ImageView?, efab: ExtendedFAB?, + cl: OnClickListener, icon: Drawable?, text: String + ) { + if (efab != null) { + efab.setOnClickListener(cl) + efab.icon = icon + efab.text = text + if (mediaButtonFab === efab) { + attachSwipeGesture(efab) + } + } + if (iv != null) { + iv.setOnClickListener(cl) + iv.setImageDrawable(icon) + } + } + + @SuppressLint("ClickableViewAccessibility") + private fun attachSwipeGesture(view: View) { + val gestureDetector = GestureDetector(mContext, object : SimpleOnGestureListener() { + private val SWIPE_THRESHOLD = 100 + private val SWIPE_VELOCITY_THRESHOLD = 100 + override fun onFling( + e1: MotionEvent?, + e2: MotionEvent, + velocityX: Float, + velocityY: Float + ): Boolean { + val diffX = e2.x - e1!!.x + if (abs(diffX.toDouble()) > SWIPE_THRESHOLD && abs(velocityX.toDouble()) > SWIPE_VELOCITY_THRESHOLD) { + if (diffX > 0) { + dispatchMediaKeyWithWakeLockToMediaSession(KeyEvent.KEYCODE_MEDIA_PREVIOUS) + } else { + dispatchMediaKeyWithWakeLockToMediaSession(KeyEvent.KEYCODE_MEDIA_NEXT) + } + vibrate(1) + updateMediaController() + return true + } + return false + } + + override fun onLongPress(e: MotionEvent) { + super.onLongPress(e) + mIsLongPress = true + mHandler.postDelayed({ mIsLongPress = false }, 2500) + } + }) + view.setOnTouchListener { v, event -> + val isClick: Boolean = gestureDetector.onTouchEvent(event) + if ((event.action == MotionEvent.ACTION_UP) && !isClick && !mIsLongPress) { + v.performClick() + } + true + } + } + + private fun setButtonActiveState(iv: ImageView?, efab: ExtendedFAB?, active: Boolean) { + val bgTint: Int + val tintColor: Int + + if (!mCustomColors) { + if (active) { + bgTint = if (isNightMode) mDarkColorActive else mLightColorActive + tintColor = if (isNightMode) mDarkColor else mLightColor + } else { + bgTint = if (isNightMode) mDarkColor else mLightColor + tintColor = if (isNightMode) mLightColor else mDarkColor + } + if (iv != null) { + iv.backgroundTintList = ColorStateList.valueOf(bgTint) + if (iv !== weatherButton) { + iv.imageTintList = ColorStateList.valueOf(tintColor) + } else { + iv.imageTintList = null + } + } + if (efab != null) { + efab.backgroundTintList = ColorStateList.valueOf(bgTint) + if (efab !== weatherButtonFab) { + efab.iconTint = ColorStateList.valueOf(tintColor) + } else { + efab.iconTint = null + } + efab.setTextColor(tintColor) + } + } else { + if (iv != null) { + iv.backgroundTintList = + ColorStateList.valueOf(if (active) mSmallActiveColor else mSmallInactiveColor) + if (iv !== weatherButton) { + iv.imageTintList = + ColorStateList.valueOf(if (active) mSmallIconActiveColor else mSmallIconInactiveColor) + } else { + iv.imageTintList = null + } + } + if (efab != null) { + efab.backgroundTintList = ColorStateList.valueOf(if (active) mBigActiveColor else mBigInactiveColor) + if (efab !== weatherButtonFab) { + efab.iconTint = ColorStateList.valueOf(if (active) mBigIconActiveColor else mBigIconInactiveColor) + } else { + efab.iconTint = null + } + efab.setTextColor(if (active) mBigIconActiveColor else mBigIconInactiveColor) + } + } + } + + private fun updateMediaState() { + updateMediaPlaybackState() + mHandler.postDelayed({ this.updateMediaPlaybackState() }, 250) + } + + private fun toggleMediaPlaybackState() { + if (isMediaPlaying) { + mHandler.removeCallbacks(mMediaUpdater) + dispatchMediaKeyWithWakeLockToMediaSession(KeyEvent.KEYCODE_MEDIA_PAUSE) + updateMediaController() + } else { + mMediaUpdater.run() + dispatchMediaKeyWithWakeLockToMediaSession(KeyEvent.KEYCODE_MEDIA_PLAY) + } + } + + private fun dispatchMediaKeyWithWakeLockToMediaSession(keycode: Int) { + val keyIntent = Intent(Intent.ACTION_MEDIA_BUTTON, null) + val keyEvent = KeyEvent( + SystemClock.uptimeMillis(), + SystemClock.uptimeMillis(), + KeyEvent.ACTION_DOWN, + keycode, + 0 + ) + keyIntent.putExtra(Intent.EXTRA_KEY_EVENT, keyEvent) + var mediaEvent: KeyEvent? = KeyEvent(KeyEvent.ACTION_DOWN, keycode) + mAudioManager!!.dispatchMediaKeyEvent(mediaEvent) + + mediaEvent = KeyEvent.changeAction(mediaEvent, KeyEvent.ACTION_UP) + keyIntent.putExtra(Intent.EXTRA_KEY_EVENT, keyEvent) + mAudioManager.dispatchMediaKeyEvent(mediaEvent) + } + + private fun updateMediaPlaybackState() { + val isPlaying = isMediaPlaying + val icon = ResourcesCompat.getDrawable( + modRes, + if (isPlaying) R.drawable.ic_pause else R.drawable.ic_play, + mContext.theme + ) + if (mediaButton != null) { + mediaButton!!.setImageDrawable(icon) + setButtonActiveState(mediaButton, null, isPlaying) + } + if (mediaButtonFab != null) { + val trackTitle = + if (mMediaMetadata != null) mMediaMetadata!!.getString(MediaMetadata.METADATA_KEY_TITLE) else "" + if (!TextUtils.isEmpty(trackTitle) && mLastTrackTitle !== trackTitle) { + mLastTrackTitle = trackTitle + } + val canShowTrackTitle = isPlaying || !TextUtils.isEmpty(mLastTrackTitle) + mediaButtonFab!!.icon = icon + mediaButtonFab!!.text = if (canShowTrackTitle) mLastTrackTitle else "Play" + setButtonActiveState(null, mediaButtonFab, isPlaying) + } + } + + private val isMediaPlaying: Boolean + get() = (isMediaControllerAvailable + && PlaybackState.STATE_PLAYING == getMediaControllerPlaybackState(mController)) + + private fun toggleFlashlight() { + if (torchButton == null && torchButtonFab == null) return + try { + mCameraManager.setTorchMode(mCameraId!!, !isFlashOn) + isFlashOn = !isFlashOn + updateTorchButtonState() + vibrate(1) + } catch (e: Exception) { + log("LockscreenWidgets toggleFlashlight error: " + e.message) + } + } + + private fun launchHomeControls(view: View) { + log("LockscreenWidgets launchHomeControls") + val controlsTile: Any = ControllersProvider.mDeviceControlsTile ?: return + val finalView: View = if (view is ExtendedFAB) { + view.parent as View + } else { + view + } + post { + callMethod( + controlsTile, + "handleClick", + finalView + ) + } + vibrate(1) + } + + private fun launchWallet(view: View) { + val WalletTile: Any? = ControllersProvider.mWalletTile + if (WalletTile != null) { + val finalView: View = if (view is ExtendedFAB) { + view.parent as View + } else { + view + } + post { + callMethod( + WalletTile, + "handleClick", + finalView + ) + } + } else { + mActivityLauncherUtils.launchWallet() + } + vibrate(1) + } + + private fun openCalculator() { + mActivityLauncherUtils.launchCalculator() + vibrate(1) + } + + /** noinspection deprecation */ + private fun toggleWiFi() { + log("LockscreenWidgets toggleWiFi") + val enabled: Boolean = mWifiManager!!.isWifiEnabled + mWifiManager.isWifiEnabled = !enabled + updateWiFiButtonState(!enabled) + mHandler.postDelayed({ updateWiFiButtonState(isWifiEnabled) }, 350L) + vibrate(1) + } + + private fun toggleHotspot() { + val mHostpotController: Any? = ControllersProvider.mHotspotController + if (mHostpotController != null) { + callMethod(mHostpotController, "setHotspotEnabled", !isHotspotEnabled()) + } + updateHotspotButtonState(0) + postDelayed({ updateHotspotButtonState(0) }, 350L) + vibrate(1) + } + + private val isMobileDataEnabled: Boolean + get() { + val dataController: Any? = ControllersProvider.mDataController + log("LockscreenWidgets isMobileDataEnabled (dataController == null) " + (dataController == null)) + if (dataController != null) { + return callMethod(dataController, "isMobileDataEnabled") as Boolean + } else { + try { + val connectivityManager = mContext.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager + val cmClass = Class.forName(ConnectivityManager::class.java.name) + val method= cmClass.getDeclaredMethod("getMobileDataEnabled") + method.isAccessible = true + // Call the method on the ConnectivityManager instance + val result = method.invoke(connectivityManager) + // Safely handle the return value + return if (result is Boolean) result else false + } catch (e: Exception) { + log("LockscreenWidgets isMobileDataEnabled error: " + e.message) + return false + } + } + } + + private val isWifiEnabled: Boolean + get() { + val enabled: Boolean = mWifiManager!!.isWifiEnabled + log("LockscreenWidgets isWifiEnabled $enabled") + return enabled + } + + private fun toggleMobileData() { + if (ControllersProvider.mDataController == null) return + callMethod(ControllersProvider.mDataController, "setMobileDataEnabled", !isMobileDataEnabled) + updateMobileDataState(!isMobileDataEnabled) + mHandler.postDelayed({ updateMobileDataState(isMobileDataEnabled) }, 250L) + vibrate(1) + } + + private fun showInternetDialog(view: View) { + if (Build.VERSION.SDK_INT < 34) { + mActivityLauncherUtils.launchInternetSettings() + return + } + + log("LockscreenWidgets showInternetDialog") + if (ControllersProvider.mCellularTile == null) return + val finalView: View = if (view is ExtendedFAB) { + view.parent as View + } else { + view + } + post { + callMethod( + ControllersProvider.mCellularTile, + "handleClick", + finalView + ) + } + vibrate(0) + } + + /** + * Toggles the ringer modes + * Normal -> Vibrate -> Silent -> Normal + */ + private fun toggleRingerMode() { + if (mAudioManager != null) { + val mode = mAudioManager.ringerMode + when (mode) { + AudioManager.RINGER_MODE_NORMAL -> callMethod( + mAudioManager, + "setRingerModeInternal", + AudioManager.RINGER_MODE_VIBRATE + ) + + AudioManager.RINGER_MODE_VIBRATE -> callMethod( + mAudioManager, + "setRingerModeInternal", + AudioManager.RINGER_MODE_SILENT + ) + + AudioManager.RINGER_MODE_SILENT -> callMethod( + mAudioManager, + "setRingerModeInternal", + AudioManager.RINGER_MODE_NORMAL + ) + } + updateRingerButtonState() + vibrate(1) + } + } + + private fun updateTileButtonState( + iv: ImageView?, + efab: ExtendedFAB?, + active: Boolean, + icon: Drawable?, + text: String + ) { + post { + if (iv != null) { + iv.setImageDrawable(icon) + setButtonActiveState(iv, null, active) + } + if (efab != null) { + efab.icon = icon + efab.text = text + setButtonActiveState(null, efab, active) + } + } + } + + fun updateTorchButtonState() { + if (!isWidgetEnabled("torch")) return + log("LockscreenWidgets updateTorchButtonState $isFlashOn") + updateTileButtonState( + torchButton, torchButtonFab, isFlashOn, + getDrawable(TORCH_RES_ACTIVE, SYSTEMUI_PACKAGE), getString(TORCH_LABEL, SYSTEMUI_PACKAGE)) + } + + private val mRingerModeReceiver: BroadcastReceiver = object : BroadcastReceiver() { + override fun onReceive(context: Context, intent: Intent) { + updateRingerButtonState() + } + } + + init { + instance = this + + mContext = context + mAudioManager = mContext.getSystemService(AudioManager::class.java) + mWifiManager = mContext.getSystemService(WifiManager::class.java) + mTelephonyManager = mContext.getSystemService(TelephonyManager::class.java) + mConnectivityManager = mContext.getSystemService(ConnectivityManager::class.java) + mCameraManager = mContext.getSystemService(CameraManager::class.java) + mDarkColor = ResourcesCompat.getColor( + modRes, + R.color.lockscreen_widget_background_color_dark, + mContext.theme + ) + mLightColor = ResourcesCompat.getColor( + modRes, + R.color.lockscreen_widget_background_color_light, + mContext.theme + ) + mDarkColorActive = ResourcesCompat.getColor( + modRes, + R.color.lockscreen_widget_active_color_dark, + mContext.theme + ) + mLightColorActive = ResourcesCompat.getColor( + modRes, + R.color.lockscreen_widget_active_color_light, + mContext.theme + ) + + mActivityLauncherUtils = ActivityLauncherUtils(mContext, activityStarter) + + mHandler = Handler(Looper.getMainLooper()) + if (mWeatherClient == null) { + mWeatherClient = OmniJawsClient(context) + } + + try { + mCameraId = mCameraManager.cameraIdList[0] + } catch (e: Throwable) { + log("LockscreenWidgets mCameraId error: " + e.message) + } + + val container = LinearLayout(context) + container.orientation = VERTICAL + container.layoutParams = LayoutParams( + ViewGroup.LayoutParams.MATCH_PARENT, + ViewGroup.LayoutParams.WRAP_CONTENT + ) + + // Device Widget Container + mDeviceWidgetContainer = createDeviceWidgetContainer(context) + container.addView(mDeviceWidgetContainer) + + // Add main widgets container + mMainWidgetsContainer = createMainWidgetsContainer(context) + container.addView(mMainWidgetsContainer) + + // Add secondary widgets container + mSecondaryWidgetsContainer = createSecondaryWidgetsContainer(context) + container.addView(mSecondaryWidgetsContainer) + + addView(container) + + val ringerFilter = IntentFilter("android.media.INTERNAL_RINGER_MODE_CHANGED_ACTION") + mContext.registerReceiver(mRingerModeReceiver, ringerFilter) + mMediaUpdater = object : Runnable { + override fun run() { + updateMediaController() + mHandler.postDelayed(this, 1000) + } + } + updateMediaController() + + ControllersProvider.getInstance().registerMobileDataCallback(mMobileDataCallback) + ControllersProvider.getInstance().registerWifiCallback(mWifiCallback) + ControllersProvider.getInstance().registerBluetoothCallback(mBluetoothCallback) + ControllersProvider.getInstance().registerTorchModeCallback(mTorchCallback) + ControllersProvider.getInstance().registerHotspotCallback(mHotspotCallback) + ControllersProvider.getInstance().registerDozingCallback(mDozeCallback) + + // Add a Screen On Receiver so we can update the widgets state when the screen is turned on + mContext.registerReceiver( + mScreenOnReceiver, + IntentFilter(Intent.ACTION_SCREEN_ON), + Context.RECEIVER_EXPORTED + ) + } + + private fun updateWiFiButtonState(enabled: Boolean) { + log( + "LockscreenWidgets updateWiFiButtonState $enabled | " + isWidgetEnabled( + "wifi" + ) + ) + if (!isWidgetEnabled("wifi")) return + if (wifiButton == null && wifiButtonFab == null) return + val connected: Boolean + var theSsid: String = mWifiManager!!.connectionInfo.ssid + if (theSsid == WifiManager.UNKNOWN_SSID) { + theSsid = getString(WIFI_LABEL, SYSTEMUI_PACKAGE) + connected = false + } else { + if (theSsid.startsWith("\"") && theSsid.endsWith("\"")) { + theSsid = theSsid.substring(1, theSsid.length - 1) + } + connected = true + } + val icon: Drawable? = getDrawable( + if (enabled && connected) WIFI_ACTIVE + else if (enabled) WIFI_ACTIVE + else WIFI_INACTIVE, FRAMEWORK_PACKAGE) + updateTileButtonState( + wifiButton, wifiButtonFab, + isWifiEnabled, + icon, theSsid + ) + } + + private fun updateRingerButtonState() { + log("LockscreenWidgets updateRingerButtonState " + (isWidgetEnabled("ringer")) + " | " + (ringerButton == null) + " | " + (ringerButtonFab == null)) + if (!isWidgetEnabled("ringer")) return + if (ringerButton == null && ringerButtonFab == null) return + if (mAudioManager != null) { + val soundActive = mAudioManager.ringerMode == AudioManager.RINGER_MODE_NORMAL + updateTileButtonState( + ringerButton, ringerButtonFab, + soundActive, + ringerDrawable, + ringerText + ) + } + } + + private fun updateMobileDataState(enabled: Boolean) { + if (!isWidgetEnabled("data")) return + if (dataButton == null && dataButtonFab == null) return + val networkController: Any? = ControllersProvider.mNetworkController + val inactive = getString(DATA_LABEL, SYSTEMUI_PACKAGE) + val networkName = if (!TextUtils.isEmpty(activeMobileDataCarrier)) activeMobileDataCarrier + else inactive + val hasNetwork = networkController != null && !TextUtils.isEmpty(networkName) + updateTileButtonState( + dataButton, + dataButtonFab, + enabled, + getDrawable(DATA_ICON, FRAMEWORK_PACKAGE), + if (hasNetwork && enabled) networkName else inactive + ) + } + + private val activeMobileDataCarrier: String + get() { + val connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager + val telephonyManager = context.getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager + + val activeNetwork = connectivityManager.activeNetwork + val networkCapabilities = connectivityManager.getNetworkCapabilities(activeNetwork) + + if (networkCapabilities?.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) == true) { + return telephonyManager.networkOperatorName + } + + return "" // No active mobile data connection + } + + private fun toggleBluetoothState() { + val bluetoothController: Any = ControllersProvider.mBluetoothController ?: return + callMethod(bluetoothController, "setBluetoothEnabled", !isBluetoothEnabled) + updateBtState() + mHandler.postDelayed({ this.updateBtState() }, 350L) + vibrate(1) + } + + private fun showBluetoothDialog(view: View) { + val finalView: View = if (view is ExtendedFAB) { + view.parent as View + } else { + view + } + post { + callMethod( + ControllersProvider.mBluetoothTile, + "handleSecondaryClick", + finalView + ) + } + vibrate(0) + } + + private fun updateBtState() { + if (!isWidgetEnabled("bt")) return + log("LockscreenWidgets updateBtState $isBluetoothOn") + if (btButton == null && btButtonFab == null) return + val bluetoothController: Any? = ControllersProvider.mBluetoothController + var deviceName: String? = "" + if (isBluetoothEnabled && bluetoothController != null) + deviceName = callMethod(bluetoothController, "getConnectedDeviceName") as String? + val isConnected = !TextUtils.isEmpty(deviceName) + val icon = getDrawable( + BT_ICON, + SYSTEMUI_PACKAGE + ) + updateTileButtonState( + btButton, btButtonFab, isBluetoothOn, + icon, + if (isConnected) deviceName!! + else getString(BT_LABEL, SYSTEMUI_PACKAGE)) + } + + private fun updateHotspotButtonState(numDevices: Int) { + if (!isWidgetEnabled("hotspot")) return + val inactiveString = getString(HOTSPOT_LABEL, SYSTEMUI_PACKAGE) + var activeString = inactiveString + val hotspotEnabled = isHotspotEnabled() + if (hotspotEnabled) { + val hotspotSSID: String = getHotspotSSID() + val devices = "($numDevices)" + if (!TextUtils.isEmpty(hotspotSSID)) { + activeString = if (numDevices > 0) "$hotspotSSID $devices" + else hotspotSSID + } + } + updateTileButtonState( + hotspotButton, + hotspotButtonFab, + isHotspotEnabled(), + getDrawable(if (hotspotEnabled) HOTSPOT_ACTIVE else HOTSPOT_INACTIVE, SYSTEMUI_PACKAGE), + if (hotspotEnabled) activeString + else inactiveString + ) + } + + private val isBluetoothEnabled: Boolean + get() { + val mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter() + return mBluetoothAdapter != null && mBluetoothAdapter.isEnabled + } + + private fun isHotspotEnabled(): Boolean { + val hotspotController: Any? = ControllersProvider.mHotspotController + if (hotspotController != null) { + return callMethod(hotspotController, "isHotspotEnabled") as Boolean + } else { + try { + val method: Method = WifiManager::class.java.getDeclaredMethod("getWifiApState") + method.isAccessible = true + val actualState = + method.invoke(mWifiManager, null as Array?) as Int + return actualState == HOTSPOT_ENABLED + } catch (t: Throwable) { + log("LockscreenWidgetsView isHotspotEnabled error: " + t.message) + } + } + return false + } + + private fun getHotspotSSID(): String { + try { + val methods: Array = WifiManager::class.java.getDeclaredMethods() + for (m in methods) { + if (m.name == "getWifiApConfiguration") { + val config = m.invoke(mWifiManager) as WifiConfiguration + return config.SSID + } + } + } catch (t: Throwable) { + log("LockscreenWidgetsView getHotspotSSID error: " + t.message) + } + return "" + } + + private fun sameSessions(a: MediaController?, b: MediaController): Boolean { + if (a == b) { + return true + } + if (a == null) { + return false + } + return a == b + } + + private fun getMediaControllerPlaybackState(controller: MediaController?): Int { + if (controller != null) { + val playbackState = controller.playbackState + if (playbackState != null) { + return playbackState.state + } + } + return PlaybackState.STATE_NONE + } + + /** + * Set the options for the lockscreen widgets + * @param lsWidgets true if lockscreen widgets are enabled + * @param deviceWidget true if device widget is enabled + * @param mainWidgets comma separated list of main widgets + * @param secondaryWidgets comma separated list of secondary widgets + */ + fun setOptions( + lsWidgets: Boolean, deviceWidget: Boolean, + mainWidgets: String, secondaryWidgets: String + ) { + log( + "LockscreenWidgets setOptions " + lsWidgets + + " | " + deviceWidget + " | " + mainWidgets + " | " + secondaryWidgets + ) + instance!!.lockscreenWidgetsEnabled = lsWidgets + instance!!.deviceWidgetsEnabled = deviceWidget + instance!!.mMainLockscreenWidgetsList = mainWidgets + instance!!.mMainWidgetsList = listOf( + *instance!!.mMainLockscreenWidgetsList!!.split(",".toRegex()) + .dropLastWhile { it.isEmpty() } + .toTypedArray()) + instance!!.mSecondaryLockscreenWidgetsList = secondaryWidgets + instance!!.mSecondaryWidgetsList = listOf( + *instance!!.mSecondaryLockscreenWidgetsList!!.split(",".toRegex()) + .dropLastWhile { it.isEmpty() } + .toTypedArray()) + instance!!.updateWidgetViews() + } + + /** + * Set the options for the Device Widget + * @param customColor true if custom color is enabled + * @param linearColor color for linear battery progressbar + * @param circularColor color for circular progressbar + * @param textColor color for text + * @param devName device name, keep blank for default Build.MODEL + */ + fun setDeviceWidgetOptions( + customColor: Boolean, + linearColor: Int, + circularColor: Int, + textColor: Int, + devName: String? + ) { + if (instance!!.mDeviceWidgetView == null) return + instance!!.mDeviceWidgetView!!.setCustomColor(customColor, linearColor, circularColor) + instance!!.mDeviceWidgetView!!.setTextCustomColor(textColor) + instance!!.mDeviceWidgetView!!.setDeviceName(devName) + } + + fun setCustomColors( + customColorsEnabled: Boolean, + bigInactive: Int, bigActive: Int, smallInactive: Int, smallActive: Int, + bigIconInactive: Int, bigIconActive: Int, smallIconInactive: Int, smallIconActive: Int + ) { + log("LockscreenWidgets setCustomColors $customColorsEnabled") + instance!!.mCustomColors = customColorsEnabled + instance!!.mBigInactiveColor = bigInactive + instance!!.mBigActiveColor = bigActive + instance!!.mSmallInactiveColor = smallInactive + instance!!.mSmallActiveColor = smallActive + instance!!.mBigIconInactiveColor = bigIconInactive + instance!!.mBigIconActiveColor = bigIconActive + instance!!.mSmallIconInactiveColor = smallIconInactive + instance!!.mSmallIconActiveColor = smallIconActive + instance!!.updateWidgetViews() + } + + fun setActivityStarter(activityStarter: Any?) { + mActivityLauncherUtils = ActivityLauncherUtils(mContext, activityStarter) + } + + fun setDozingState(isDozing: Boolean) { + log("LockscreenWidgets setDozingState $isDozing") + instance!!.mDozing = isDozing + instance!!.updateContainerVisibility() + } + + private fun getDrawable(drawableRes: String, pkg: String): Drawable? { + try { + return ContextCompat.getDrawable( + mContext, + mContext.resources.getIdentifier(drawableRes, "drawable", pkg) + ) + } catch (t: Throwable) { + // We have a calculator icon, so if SystemUI doesn't just return ours + if ((drawableRes == CALCULATOR_ICON)) return ResourcesCompat.getDrawable( + modRes, + R.drawable.ic_calculator, + mContext.theme + ) + + log("LockscreenWidgets getDrawable $drawableRes from $pkg error $t") + return null + } + } + + private fun getString(stringRes: String, pkg: String): String { + try { + return mContext.resources.getString( + mContext.resources.getIdentifier(stringRes, "string", pkg) + ) + } catch (t: Throwable) { + // We have our own strings too, so return them if SystemUI doesn't + when (stringRes) { + HOME_CONTROLS_LABEL -> { + return modRes.getString(R.string.home_controls) + } + CALCULATOR_LABEL -> { + return modRes.getString(R.string.calculator) + } + CAMERA_LABEL -> { + return modRes.getString(R.string.camera) + } + WALLET_LABEL -> { + return modRes.getString(R.string.wallet) + } + } + log("LockscreenWidgets getString $stringRes from $pkg error $t") + return "" + } + } + + private val ringerDrawable: Drawable? + get() { + val resName = when (mAudioManager!!.ringerMode) { + AudioManager.RINGER_MODE_NORMAL -> RINGER_NORMAL + AudioManager.RINGER_MODE_VIBRATE -> RINGER_VIBRATE + AudioManager.RINGER_MODE_SILENT -> RINGER_SILENT + else -> throw IllegalStateException("Unexpected value: " + mAudioManager.ringerMode) + } + + return getDrawable(resName, SYSTEMUI_PACKAGE) + } + + private val ringerText: String + get() { + val RINGER_NORMAL_TEXT = "volume_footer_ring" + val RINGER_VIBRATE_TEXT = "state_button_vibration" + val RINGER_SILENT_TEXT = "state_button_silence" + + val resName = when (mAudioManager!!.ringerMode) { + AudioManager.RINGER_MODE_NORMAL -> RINGER_NORMAL_TEXT + AudioManager.RINGER_MODE_VIBRATE -> RINGER_VIBRATE_TEXT + AudioManager.RINGER_MODE_SILENT -> RINGER_SILENT_TEXT + else -> throw IllegalStateException("Unexpected value: " + mAudioManager.ringerMode) + } + + return getString(resName, SYSTEMUI_PACKAGE) + } + + /** + * Vibrate the device + * @param type 0 = click, 1 = tick + */ + private fun vibrate(type: Int) { + if (type == 0) { + this.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS) + } else if (type == 1) { + this.performHapticFeedback(HapticFeedbackConstants.CONTEXT_CLICK) + } + } + + companion object { + + const val HOTSPOT_ENABLED = 13 + + const val BT_ICON: String = "qs_bluetooth_icon_on" + const val DATA_ICON: String = "perm_group_network" + const val RINGER_NORMAL: String = " ic_volume_ringer" + const val RINGER_VIBRATE: String = "ic_volume_ringer_vibrate" + const val RINGER_SILENT: String = "ic_volume_ringer_mute" + const val TORCH_RES_ACTIVE: String = "qs_flashlight_icon_on" + const val TORCH_RES_INACTIVE: String = "qs_flashlight_icon_off" + const val WIFI_ACTIVE: String = "ic_wifi_signal_4" + const val WIFI_INACTIVE: String = "ic_wifi_signal_0" + const val HOME_CONTROLS: String = "controls_icon" + const val CALCULATOR_ICON: String = "status_bar_qs_calculator_inactive" + const val CAMERA_ICON: String = + "ic_device_camera" // Use qs camera access icon for camera + const val WALLET_ICON: String = "ic_wallet_lockscreen" + const val HOTSPOT_ACTIVE: String = "qs_hotspot_icon_on" + const val HOTSPOT_INACTIVE: String = "qs_hotspot_icon_off" + + const val GENERAL_INACTIVE: String = "switch_bar_off" + const val GENERAL_ACTIVE: String = "switch_bar_on" + + const val BT_LABEL: String = "quick_settings_bluetooth_label" + const val DATA_LABEL: String = "quick_settings_internet_label" + const val WIFI_LABEL: String = "quick_settings_wifi_label" + const val RINGER_LABEL_INACTIVE: String = "state_button_silence" + const val TORCH_LABEL: String = "quick_settings_flashlight_label" + const val HOME_CONTROLS_LABEL: String = "quick_controls_title" + const val MEDIA_PLAY_LABEL: String = "controls_media_button_play" + const val CALCULATOR_LABEL: String = "keyboard_shortcut_group_applications_calculator" + const val CAMERA_LABEL: String = "accessibility_camera_button" + const val WALLET_LABEL: String = "wallet_title" + const val HOTSPOT_LABEL: String = "quick_settings_hotspot_label" + + @Volatile + private var instance: LockscreenWidgetsView? = null + + @JvmStatic + fun getInstance(context: Context, activityStarter: Any?): LockscreenWidgetsView { + return instance ?: synchronized(this) { + instance ?: LockscreenWidgetsView(context, activityStarter).also { instance = it } + } + } + + @JvmStatic + fun getInstance(): LockscreenWidgetsView? { + return instance + } + } +} diff --git a/app/src/main/res/drawable/ic_calculator.xml b/app/src/main/res/drawable/ic_calculator.xml new file mode 100644 index 000000000..7b957f0c1 --- /dev/null +++ b/app/src/main/res/drawable/ic_calculator.xml @@ -0,0 +1,62 @@ + + + + + + + + + + diff --git a/app/src/main/res/drawable/lockscreen_widget_background_circle.xml b/app/src/main/res/drawable/lockscreen_widget_background_circle.xml new file mode 100644 index 000000000..1504ef9d7 --- /dev/null +++ b/app/src/main/res/drawable/lockscreen_widget_background_circle.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/device_widget.xml b/app/src/main/res/layout/device_widget.xml new file mode 100644 index 000000000..49a8c6437 --- /dev/null +++ b/app/src/main/res/layout/device_widget.xml @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_xposed_lockscreen_widgets.xml b/app/src/main/res/layout/fragment_xposed_lockscreen_widgets.xml new file mode 100644 index 000000000..cbb4b3a1f --- /dev/null +++ b/app/src/main/res/layout/fragment_xposed_lockscreen_widgets.xml @@ -0,0 +1,199 @@ + + + + + + + + + + + + + app:iconSpaceReserved="false" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/navigation/nav_xposed_menu.xml b/app/src/main/res/navigation/nav_xposed_menu.xml index 9d0a80ddf..79bbbe9f8 100644 --- a/app/src/main/res/navigation/nav_xposed_menu.xml +++ b/app/src/main/res/navigation/nav_xposed_menu.xml @@ -79,6 +79,13 @@ app:exitAnim="@anim/fragment_fade_out" app:popEnterAnim="@anim/fragment_fade_in" app:popExitAnim="@anim/fragment_fade_out" /> + + + + @string/lockscreen_weather_selection_str_border_gradient + + + none + @string/calculator + @string/media + @string/clock_timer + @string/torch + @string/weather + @string/wifi + @string/data + @string/ringer + @string/bt + @string/home_controls + @string/camera + @string/wallet + + + none + calculator + media + timer + torch + weather + wifi + data + ringer + bt + homecontrols + camera + wallet + + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index e7d3e02d2..658dcd90b 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -134,4 +134,11 @@ #FF8C1D18 #FF410E0B #FFF9DEDC + + + @android:color/system_neutral1_900 + @android:color/system_neutral1_0 + @android:color/system_accent1_100 + @android:color/system_accent1_600 + @android:color/system_neutral1_100 \ No newline at end of file diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index d8543b2f2..b8378142c 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -44,4 +44,16 @@ 10dp 6dp + + 10dp + 6dp + 12dp + 12dp + 12dp + 68dp + 18dp + 20dp + 88dp + 175dp + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 0078539cf..4f90f090f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -448,6 +448,8 @@ Add custom clock on lockscreen Lockscreen Weather Add weather on lockscreen + Lockscreen Widgets + Add widgets on lockscreen Depth Wallpaper Show iOS like depth wallpaper Background Chip @@ -455,6 +457,52 @@ Others Miscellaneous xposed tweaks + + Lockscreen Widgets + Enable Lockscreen Widgets + Add widgets to lockscreen + Device info Widget + Show device info widget on lockscreen + Linear Progress Color + Circular Progress Color + Text Color + Custom Device Name + Set custom device name.\nKeep blank to disable. + Big widgets + Big widget 1 + Big widget 2 + Mini widgets + Mini widget 1 + Mini widget 2 + Mini widget 3 + Mini widget 4 + Custom Colors + Customize widget colors + Big Widget Active Color + Big Widget Inactive Color + Big Widget Icon Active Color + Big Widget Icon Inactive Color + Mini Widget Active Color + Mini Widget Inactive Color + Mini Widget Icon Active Color + Mini Widget Icon Inactive Color + + + Camera + Clock/Timer + Calculator + Gallery + Media Player + Torch + Play + Weather + Wifi + Data + Ringer + Bluetooth + Home Controls + Wallet + Transparency Transparent QS Panel diff --git a/gradle.properties b/gradle.properties index 391b310bb..ae9a16284 100644 --- a/gradle.properties +++ b/gradle.properties @@ -13,7 +13,7 @@ #Thu Aug 03 16:35:29 BDT 2023 android.enableJetifier=true android.nonFinalResIds=false -android.nonTransitiveRClass=true +android.nonTransitiveRClass=false android.useAndroidX=true org.gradle.configureondemand=true org.gradle.daemon=true From 0399a5c2cc527d8bda06d2657455bee323c041d8 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Fri, 23 Aug 2024 05:52:04 +0200 Subject: [PATCH 179/369] Lockscreen Widgets: show only big widgets on stock bug clock --- .../iconify/xposed/modules/LockscreenWidgets.kt | 15 +++++++++++++++ .../xposed/modules/views/LockscreenWidgetsView.kt | 9 ++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWidgets.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWidgets.kt index 540466788..f5aee6e06 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWidgets.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWidgets.kt @@ -208,6 +208,15 @@ class LockscreenWidgets(context: Context?) : ModPack(context!!) { } }) + hookAllMethods(keyguardClockSwitch, "updateClockViews", object : XC_MethodHook() { + override fun afterHookedMethod(param: MethodHookParam) { + if (!mWidgetsEnabled) return + + updateLockscreenWidgetsOnClock(param.args[0] as Boolean) + + } + }) + val dozeScrimControllerClass = findClass( "$SYSTEMUI_PACKAGE.statusbar.phone.DozeScrimController", loadPackageParam.classLoader @@ -250,6 +259,12 @@ class LockscreenWidgets(context: Context?) : ModPack(context!!) { lsWidgets.setOptions(mWidgetsEnabled, mDeviceWidgetEnabled, mMainWidgets, mExtraWidgets) } + private fun updateLockscreenWidgetsOnClock(isLargeClock: Boolean) { + log(TAG + "Updating Lockscreen Widgets on Clock") + val lsWidgets = LockscreenWidgetsView.getInstance() ?: return + lsWidgets.setIsLargeClock(isLargeClock) + } + private fun updateLsDeviceWidget() { log(TAG + "Updating Lockscreen Device Widget") val lsWidgets = LockscreenWidgetsView.getInstance() ?: return diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/views/LockscreenWidgetsView.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/views/LockscreenWidgetsView.kt index 7b951dbad..43698f971 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/views/LockscreenWidgetsView.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/views/LockscreenWidgetsView.kt @@ -111,6 +111,7 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : private var mSecondaryWidgetViews: Array? = null private var mMainWidgetsList: List? = ArrayList() private var mSecondaryWidgetsList: List? = ArrayList() + private var mIsLargeClock: Boolean = false private val mAudioManager: AudioManager? private val mWifiManager: WifiManager? @@ -623,7 +624,7 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : mMainWidgetsContainer.visibility = if (isMainWidgetsEmpty) GONE else VISIBLE } if (mSecondaryWidgetsContainer != null) { - mSecondaryWidgetsContainer.visibility = if (isSecondaryWidgetsEmpty) GONE else VISIBLE + mSecondaryWidgetsContainer.visibility = if (isSecondaryWidgetsEmpty || mIsLargeClock) GONE else VISIBLE } val shouldHideContainer = isEmpty || mDozing || !lockscreenWidgetsEnabled visibility = if (shouldHideContainer) GONE else VISIBLE @@ -1603,6 +1604,12 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : instance!!.updateWidgetViews() } + fun setIsLargeClock(isLargeClock: Boolean) { + log("LockscreenWidgets setIsLargeClock $isLargeClock") + instance!!.mIsLargeClock = isLargeClock + instance!!.updateWidgetViews() + } + /** * Set the options for the Device Widget * @param customColor true if custom color is enabled From ca1a8fc1c33068f427a175bcce8bd1cc67060194 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Fri, 23 Aug 2024 23:38:57 +0200 Subject: [PATCH 180/369] Add Widgets icon in Xposed Menu Fragment --- .../drdisagree/iconify/ui/fragments/XposedMenu.kt | 2 +- .../drawable-v24/ic_xposed_lockscreen_widgets.xml | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 app/src/main/res/drawable-v24/ic_xposed_lockscreen_widgets.xml diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedMenu.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedMenu.kt index a4a6d7f84..d8a3296e1 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedMenu.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedMenu.kt @@ -325,7 +325,7 @@ class XposedMenu : BaseFragment() { R.id.action_xposedMenu2_to_xposedLockscreenWidgets, appContextLocale.resources.getString(R.string.activity_title_lockscreen_widgets), appContextLocale.resources.getString(R.string.activity_desc_lockscreen_widgets), - R.drawable.ic_xposed_lockscreen_weather + R.drawable.ic_xposed_lockscreen_widgets ) ) add( diff --git a/app/src/main/res/drawable-v24/ic_xposed_lockscreen_widgets.xml b/app/src/main/res/drawable-v24/ic_xposed_lockscreen_widgets.xml new file mode 100644 index 000000000..9e338ee47 --- /dev/null +++ b/app/src/main/res/drawable-v24/ic_xposed_lockscreen_widgets.xml @@ -0,0 +1,15 @@ + + + + + From 823ba8495c04e3d2028c0af0436cc57e2eb96c92 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Fri, 23 Aug 2024 23:39:17 +0200 Subject: [PATCH 181/369] Load Widgets before Weather for positioning --- app/src/main/java/com/drdisagree/iconify/xposed/EntryList.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/EntryList.kt b/app/src/main/java/com/drdisagree/iconify/xposed/EntryList.kt index e635a472f..91be2993e 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/EntryList.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/EntryList.kt @@ -42,8 +42,8 @@ object EntryList { HeaderClock::class.java, HeaderImage::class.java, LockscreenClock::class.java, - LockscreenWeather::class.java, LockscreenWidgets::class.java, + LockscreenWeather::class.java, Miscellaneous::class.java, QSTransparency::class.java, QuickSettings::class.java, From e1ac79d0cc592b1459f2dae7436d6d05fafabe3a Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Fri, 23 Aug 2024 23:40:19 +0200 Subject: [PATCH 182/369] WeatherConfig: weather enabled also when there is a weather widget --- .../com/drdisagree/iconify/utils/weather/WeatherConfig.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/drdisagree/iconify/utils/weather/WeatherConfig.kt b/app/src/main/java/com/drdisagree/iconify/utils/weather/WeatherConfig.kt index c21c2e635..924820cc8 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/weather/WeatherConfig.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/weather/WeatherConfig.kt @@ -6,6 +6,8 @@ import android.content.Context.MODE_PRIVATE import android.content.SharedPreferences import android.content.pm.PackageManager import com.drdisagree.iconify.BuildConfig +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_EXTRAS import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_LOCATION import com.drdisagree.iconify.common.Preferences.WEATHER_ICON_PACK import com.drdisagree.iconify.common.Preferences.WEATHER_OWM_KEY @@ -131,7 +133,9 @@ object WeatherConfig { fun isEnabled(context: Context): Boolean { val lsWeather = getPrefs(context).getBoolean(WEATHER_SWITCH, false) - return lsWeather + val bigWidgets = getPrefs(context).getString(LOCKSCREEN_WIDGETS, "") + val miniWidgets = getPrefs(context).getString(LOCKSCREEN_WIDGETS_EXTRAS, "") + return lsWeather || bigWidgets!!.contains("weather") || miniWidgets!!.contains("weather") } fun setEnabled(context: Context, value: Boolean, key: String?) { From 1e6d4a6dc919a935c6a0f41dddc0294a2dfcc67c Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Fri, 23 Aug 2024 23:40:41 +0200 Subject: [PATCH 183/369] Add Hotspot Widget --- app/src/main/res/values/arrays.xml | 2 ++ app/src/main/res/values/strings.xml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index e4d0c10b1..c7978353d 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -193,6 +193,7 @@ @string/home_controls @string/camera @string/wallet + @string/hotspot none @@ -208,6 +209,7 @@ homecontrols camera wallet + hotspot diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 4f90f090f..91d7d4fcc 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -486,6 +486,7 @@ Mini Widget Inactive Color Mini Widget Icon Active Color Mini Widget Icon Inactive Color + Weather Settings Camera @@ -502,6 +503,7 @@ Bluetooth Home Controls Wallet + Hotspot Transparency From 1c9380b7e72d71b831a179e745cb5dc9d79b7318 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Fri, 23 Aug 2024 23:41:31 +0200 Subject: [PATCH 184/369] Add Weather Settings into Lockscreen Widgets page --- .../iconify/ui/fragments/WeatherSettings.kt | 383 ++++++++++++++++++ .../ui/fragments/XposedLockscreenWidgets.kt | 12 + .../res/layout/fragment_weather_settings.xml | 87 ++++ .../fragment_xposed_lockscreen_widgets.xml | 11 +- .../main/res/navigation/nav_xposed_menu.xml | 20 + 5 files changed, 510 insertions(+), 3 deletions(-) create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/WeatherSettings.kt create mode 100644 app/src/main/res/layout/fragment_weather_settings.xml diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/WeatherSettings.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/WeatherSettings.kt new file mode 100644 index 000000000..968945ffd --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/WeatherSettings.kt @@ -0,0 +1,383 @@ +package com.drdisagree.iconify.ui.fragments + +import android.Manifest +import android.annotation.SuppressLint +import android.content.Context +import android.content.DialogInterface +import android.content.Intent +import android.content.pm.PackageManager +import android.graphics.drawable.Drawable +import android.location.LocationManager +import android.net.Uri +import android.os.Bundle +import android.provider.Settings +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.activity.result.contract.ActivityResultContracts +import androidx.core.content.res.ResourcesCompat +import com.drdisagree.iconify.BuildConfig +import com.drdisagree.iconify.Iconify.Companion.appContextLocale +import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_LOCATION +import com.drdisagree.iconify.common.Preferences.WEATHER_OWM_KEY +import com.drdisagree.iconify.common.Preferences.WEATHER_PROVIDER +import com.drdisagree.iconify.common.Preferences.WEATHER_UNITS +import com.drdisagree.iconify.common.Preferences.WEATHER_UPDATE_INTERVAL +import com.drdisagree.iconify.config.RPrefs +import com.drdisagree.iconify.config.RPrefs.getBoolean +import com.drdisagree.iconify.config.RPrefs.putString +import com.drdisagree.iconify.databinding.FragmentWeatherSettingsBinding +import com.drdisagree.iconify.services.WeatherScheduler +import com.drdisagree.iconify.ui.base.BaseFragment +import com.drdisagree.iconify.ui.dialogs.EditTextDialog +import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader +import com.drdisagree.iconify.utils.OmniJawsClient +import com.drdisagree.iconify.utils.weather.WeatherConfig +import com.google.android.material.dialog.MaterialAlertDialogBuilder +import java.util.Locale + +class WeatherSettings: BaseFragment(), OmniJawsClient.OmniJawsObserver { + + private lateinit var binding: FragmentWeatherSettingsBinding + private lateinit var mWeatherClient: OmniJawsClient + private val mapping: IntArray = intArrayOf(1, 2, 4, 6, 12) + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View { + binding = FragmentWeatherSettingsBinding.inflate(inflater, container, false) + + mWeatherClient = OmniJawsClient(requireContext()) + mWeatherClient.queryWeather() + + // Header + setHeader( + requireContext(), + getParentFragmentManager(), + binding.header.toolbar, + R.string.activity_title_lockscreen_widgets + ) + + return binding.root + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + + val updateInterval = WeatherConfig.getUpdateInterval(requireContext()) + var selectedIndex = 1 + when (updateInterval) { + 1 -> selectedIndex = 0 + 2 -> selectedIndex = 1 + 4 -> selectedIndex = 2 + 6 -> selectedIndex = 3 + 12 -> selectedIndex = 4 + } + binding.weatherUpdateInterval.setSelectedIndex(selectedIndex) + binding.weatherUpdateInterval.setOnItemSelectedListener { + putString(WEATHER_UPDATE_INTERVAL, mapping[it].toString()) + handlePermissions() + forceRefreshWeatherSettings() + } + + binding.weatherLastUpdate.setOnClickListener { + handlePermissions() + forceRefreshWeatherSettings() + } + + binding.weatherProvider.setSelectedIndex( + RPrefs.getString(WEATHER_PROVIDER, "0")!!.toInt() + ) + binding.weatherProvider.setOnItemSelectedListener { + putString(WEATHER_PROVIDER, it.toString()) + + if (WeatherConfig.getOwmKey(requireContext()).isEmpty() && it != 0) { + showOwnKeyDialog() + } else { + forceRefreshWeatherSettings() + } + } + + val owmKey = WeatherConfig.getOwmKey(requireContext()) + if (owmKey.isEmpty()) { + binding.weatherOwmKey.setSummary(getString(R.string.not_available)) + } else { + binding.weatherOwmKey.setSummary( + "*".repeat(owmKey.length - 4) + owmKey.takeLast( + 4 + ) + ) + } + binding.weatherOwmKey.setEditTextValue(owmKey) + binding.weatherOwmKey.setOnEditTextListener(object : + EditTextDialog.EditTextDialogListener { + override fun onOkPressed(dialogId: Int, newText: String) { + putString(WEATHER_OWM_KEY, newText) + handlePermissions() + forceRefreshWeatherSettings() + + val maskedKey = if (newText.length > 4) { + "*".repeat(newText.length - 4) + newText.takeLast(4) + } else { + newText.ifEmpty { + getString(R.string.not_available) + } + } + + binding.weatherOwmKey.setSummary(maskedKey) + binding.weatherOwmKey.setEditTextValue(newText) + } + }) + + binding.weatherUnits.setSelectedIndex(if (WeatherConfig.isMetric(requireContext())) 0 else 1) + binding.weatherUnits.setOnItemSelectedListener { index: Int -> + putString(WEATHER_UNITS, index.toString()) + forceRefreshWeatherSettings() + } + + } + + override fun weatherError(errorReason: Int) { + val errorString: String = when (errorReason) { + OmniJawsClient.EXTRA_ERROR_DISABLED -> { + appContextLocale.getString(R.string.omnijaws_service_disabled) + } + + OmniJawsClient.EXTRA_ERROR_LOCATION -> { + appContextLocale.getString(R.string.omnijaws_service_error_location) + } + + OmniJawsClient.EXTRA_ERROR_NETWORK -> { + appContextLocale.getString(R.string.omnijaws_service_error_network) + } + + OmniJawsClient.EXTRA_ERROR_NO_PERMISSIONS -> { + appContextLocale.getString(R.string.omnijaws_service_error_permissions) + } + + else -> { + appContextLocale.getString(R.string.omnijaws_service_error_long) + } + } + + requireActivity().runOnUiThread { + binding.weatherLastUpdate.setSummary(errorString) + } + } + + @SuppressLint("DiscouragedApi") + private fun getAvailableWeatherIconPacks( + entries: MutableList, + values: MutableList, + drawables: MutableList + ) { + val i = Intent() + val packageManager = requireContext().packageManager + i.setAction(BuildConfig.APPLICATION_ID + ".WeatherIconPack") + for (r in packageManager.queryIntentActivities(i, 0)) { + val packageName = r.activityInfo.applicationInfo.packageName + if (packageName == DEFAULT_WEATHER_ICON_PACKAGE) { + values.add(0, r.activityInfo.name) + drawables.add( + 0, + ResourcesCompat.getDrawable( + resources, + resources.getIdentifier( + "google_30", + "drawable", + BuildConfig.APPLICATION_ID + ), + requireContext().theme + ) + ) + } else { + values.add(packageName + "." + r.activityInfo.name.split(".").last()) + val name = r.activityInfo.name.split("\\.".toRegex()).dropLastWhile { it.isEmpty() } + .toTypedArray() + drawables.add( + ResourcesCompat.getDrawable( + resources, resources.getIdentifier( + name[name.size - 1].lowercase( + Locale.getDefault() + ) + "_30", "drawable", BuildConfig.APPLICATION_ID + ), requireContext().theme + ) + ) + } + + val label: String = r.activityInfo.loadLabel(packageManager).toString() + if (packageName == DEFAULT_WEATHER_ICON_PACKAGE) { + entries.add(0, label) + } else { + entries.add(label) + } + } + } + + override fun onResume() { + super.onResume() + + mWeatherClient.addObserver(this) + handlePermissions() + } + + override fun onPause() { + super.onPause() + + mWeatherClient.removeObserver(this) + } + + private fun showOwnKeyDialog() { + MaterialAlertDialogBuilder(requireContext()) + .setTitle(appContextLocale.getString(R.string.weather_provider_owm_key_title)) + .setMessage(appContextLocale.getString(R.string.weather_provider_owm_key_message)) + .setCancelable(false) + .setPositiveButton(appContextLocale.getString(R.string.understood), null) + .create() + .show() + } + + private fun handlePermissions() { + if (!getBoolean(WEATHER_CUSTOM_LOCATION, false) + ) { + checkLocationEnabled(false) + } + } + + private fun checkLocationEnabled(force: Boolean) { + if (!isLocationEnabled()) { + showLocationPermissionDialog() + } else { + checkLocationPermission(force) + } + } + + private fun hasPermissions(): Boolean { + return (requireContext().checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) + == PackageManager.PERMISSION_GRANTED) && + (requireContext().checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) + == PackageManager.PERMISSION_GRANTED) && + (requireContext().checkSelfPermission(Manifest.permission.ACCESS_BACKGROUND_LOCATION) + == PackageManager.PERMISSION_GRANTED) + } + + private fun checkLocationPermission(force: Boolean) { + if (!hasPermissions()) { + if (!getBoolean(WEATHER_CUSTOM_LOCATION, false) + ) { + requestLocationPermission() + } + } else { + if (force) { + forceRefreshWeatherSettings() + } + queryAndUpdateWeather() + } + } + + private fun showLocationPermissionDialog() { + MaterialAlertDialogBuilder(requireContext()) + .setTitle(R.string.weather_retrieve_location_dialog_title) + .setMessage(R.string.weather_retrieve_location_dialog_message) + .setCancelable(false) + .setPositiveButton(R.string.weather_retrieve_location_dialog_enable_button) { _, _ -> + startActivity( + Intent( + Settings.ACTION_LOCATION_SOURCE_SETTINGS + ).apply { + setFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP) + } + ) + } + .setNegativeButton(android.R.string.cancel, null) + .create() + .show() + } + + private fun showApplicationPermissionDialog() { + MaterialAlertDialogBuilder(requireContext()) + .setTitle(R.string.weather_permission_dialog_title) + .setMessage(R.string.weather_permission_dialog_message) + .setCancelable(false) + .setPositiveButton(android.R.string.ok) { _: DialogInterface?, _: Int -> + startActivity( + Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS).apply { + setData( + Uri.fromParts( + "package", + requireContext().packageName, + null + ) + ) + } + ) + } + .setNegativeButton(android.R.string.cancel, null) + .create() + .show() + } + + private fun requestLocationPermission() { + if (shouldShowRequestPermissionRationale(Manifest.permission.ACCESS_FINE_LOCATION) || + shouldShowRequestPermissionRationale(Manifest.permission.ACCESS_COARSE_LOCATION) || + shouldShowRequestPermissionRationale(Manifest.permission.ACCESS_BACKGROUND_LOCATION) + ) { + showApplicationPermissionDialog() + } else { + locationPermissionRequest.launch( + arrayOf( + Manifest.permission.ACCESS_FINE_LOCATION, + Manifest.permission.ACCESS_COARSE_LOCATION, + Manifest.permission.ACCESS_BACKGROUND_LOCATION + ) + ) + } + } + + private fun isLocationEnabled(): Boolean { + val lm = requireContext().getSystemService(Context.LOCATION_SERVICE) as LocationManager + return lm.isLocationEnabled + } + + private var locationPermissionRequest = registerForActivityResult( + ActivityResultContracts.RequestMultiplePermissions() + ) { permissions -> + val fineLocationGranted: Boolean = permissions.getOrDefault( + Manifest.permission.ACCESS_FINE_LOCATION, false + ) + val coarseLocationGranted: Boolean = permissions.getOrDefault( + Manifest.permission.ACCESS_COARSE_LOCATION, false + ) + + if (fineLocationGranted || coarseLocationGranted) { + forceRefreshWeatherSettings() + } + } + + private fun forceRefreshWeatherSettings() { + WeatherScheduler.scheduleUpdateNow(requireContext()) + } + + private fun queryAndUpdateWeather() { + mWeatherClient.queryWeather() + + if (mWeatherClient.weatherInfo != null && activity != null) { + requireActivity().runOnUiThread { + binding.weatherLastUpdate.setSummary(mWeatherClient.weatherInfo!!.lastUpdateTime) + } + } + } + + override fun weatherUpdated() { + queryAndUpdateWeather() + } + + companion object { + private const val DEFAULT_WEATHER_ICON_PACKAGE: String = + "${BuildConfig.APPLICATION_ID}.google" + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWidgets.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWidgets.kt index 3b4612dea..9c6b8a7a3 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWidgets.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWidgets.kt @@ -10,6 +10,7 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.CompoundButton +import androidx.navigation.Navigation.findNavController import com.drdisagree.iconify.R import com.drdisagree.iconify.common.Const.SWITCH_ANIMATION_DELAY import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS @@ -203,6 +204,13 @@ class XposedLockscreenWidgets : BaseFragment() { updatePrefs() } + // Weather Settings + binding.weatherSettings.setOnClickListener{ + findNavController(binding.weatherSettings).navigate( + (R.id.action_xposedLockscreenWeather_to_weatherSettings) + ) + } + // Widgets Colors binding.widgetsCustomColor.isSwitchChecked = getBoolean(LOCKSCREEN_WIDGETS_CUSTOM_COLOR, false) binding.widgetsCustomColor.setSwitchChangeListener{ @@ -266,6 +274,8 @@ class XposedLockscreenWidgets : BaseFragment() { val deviceWidgetCustomColor = getBoolean( LOCKSCREEN_WIDGETS_DEVICE_WIDGET_CUSTOM_COLOR_SWITCH, false) val widgetsCustomColor = getBoolean(LOCKSCREEN_WIDGETS_CUSTOM_COLOR, false) + val mainWidgets: String? = RPrefs.getString(LOCKSCREEN_WIDGETS, "") + val extraWidgets: String? = RPrefs.getString(LOCKSCREEN_WIDGETS_EXTRAS, "") // Device Widget Prefs binding.deviceWidgetCustomColor.isEnabled = widgetsEnabled && deviceWidgetEnabled @@ -303,6 +313,8 @@ class XposedLockscreenWidgets : BaseFragment() { binding.widgetsSmallIconActive.isEnabled = widgetsEnabled && widgetsCustomColor binding.widgetsSmallIconInactive.isEnabled = widgetsEnabled && widgetsCustomColor + binding.weatherSettings.isEnabled = mainWidgets!!.contains("weather") || extraWidgets!!.contains("weather") + } private fun readPrefs() { diff --git a/app/src/main/res/layout/fragment_weather_settings.xml b/app/src/main/res/layout/fragment_weather_settings.xml new file mode 100644 index 000000000..2e7fcdba1 --- /dev/null +++ b/app/src/main/res/layout/fragment_weather_settings.xml @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_xposed_lockscreen_widgets.xml b/app/src/main/res/layout/fragment_xposed_lockscreen_widgets.xml index cbb4b3a1f..65bc67eb0 100644 --- a/app/src/main/res/layout/fragment_xposed_lockscreen_widgets.xml +++ b/app/src/main/res/layout/fragment_xposed_lockscreen_widgets.xml @@ -39,8 +39,8 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/device_widget_custom_color" - app:titleText="@string/widgets_custom_color" /> - app:iconSpaceReserved="false" /> + app:titleText="@string/widgets_custom_color" + app:iconSpaceReserved="false"/> + + - diff --git a/app/src/main/res/navigation/nav_xposed_menu.xml b/app/src/main/res/navigation/nav_xposed_menu.xml index 79bbbe9f8..8e066ec20 100644 --- a/app/src/main/res/navigation/nav_xposed_menu.xml +++ b/app/src/main/res/navigation/nav_xposed_menu.xml @@ -238,6 +238,26 @@ app:exitAnim="@anim/fragment_fade_out" app:popEnterAnim="@anim/fragment_fade_in" app:popExitAnim="@anim/fragment_fade_out" /> + + + + Date: Fri, 23 Aug 2024 23:41:54 +0200 Subject: [PATCH 185/369] Send Intent for Widgets positioning when Weather enabled --- .../com/drdisagree/iconify/common/Const.kt | 1 + .../xposed/modules/LockscreenWeather.kt | 7 +++ .../xposed/modules/LockscreenWidgets.kt | 52 ++++++++++++++++++- 3 files changed, 59 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/drdisagree/iconify/common/Const.kt b/app/src/main/java/com/drdisagree/iconify/common/Const.kt index 0540076bd..51ff97418 100644 --- a/app/src/main/java/com/drdisagree/iconify/common/Const.kt +++ b/app/src/main/java/com/drdisagree/iconify/common/Const.kt @@ -45,6 +45,7 @@ object Const { const val ACTION_HOOK_CHECK_REQUEST = "${BuildConfig.APPLICATION_ID}.ACTION_HOOK_CHECK_REQUEST" const val ACTION_HOOK_CHECK_RESULT = "${BuildConfig.APPLICATION_ID}.ACTION_HOOK_CHECK_RESULT" const val ACTION_BOOT_COMPLETED = "${BuildConfig.APPLICATION_ID}.ACTION_BOOT_COMPLETED" + const val ACTION_WEATHER_INFLATED = "${BuildConfig.APPLICATION_ID}.ACTION_WEATHER_INFLATED" // Module script val MAGISK_UPDATE_BINARY = """ diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt index e620e34fc..73c4d039a 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt @@ -1,12 +1,14 @@ package com.drdisagree.iconify.xposed.modules import android.content.Context +import android.content.Intent import android.graphics.Color import android.view.Gravity import android.view.View import android.view.ViewGroup import android.widget.LinearLayout import androidx.core.view.children +import com.drdisagree.iconify.common.Const.ACTION_WEATHER_INFLATED import com.drdisagree.iconify.common.Preferences.LSCLOCK_SWITCH import com.drdisagree.iconify.common.Preferences.WEATHER_CENTER_VIEW import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_BOTTOM @@ -159,6 +161,11 @@ class LockscreenWeather(context: Context?) : ModPack(context!!) { refreshWeatherView(currentWeatherView) updateMargins() + + // Weather placed, now inflate widgets + val broadcast = Intent(ACTION_WEATHER_INFLATED) + broadcast.setFlags(Intent.FLAG_RECEIVER_FOREGROUND) + Thread { mContext.sendBroadcast(broadcast) }.start() } catch (ignored: Throwable) { } } diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWidgets.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWidgets.kt index f5aee6e06..085ee041c 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWidgets.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWidgets.kt @@ -1,9 +1,15 @@ package com.drdisagree.iconify.xposed.modules +import android.content.BroadcastReceiver import android.content.Context +import android.content.Intent +import android.content.IntentFilter import android.graphics.Color +import android.os.Build import android.view.ViewGroup import android.widget.LinearLayout +import com.drdisagree.iconify.common.Const.ACTION_BOOT_COMPLETED +import com.drdisagree.iconify.common.Const.ACTION_WEATHER_INFLATED import com.drdisagree.iconify.common.Const.SYSTEMUI_PACKAGE import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_BIG_ACTIVE @@ -24,6 +30,7 @@ import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_SMALL_ICON_A import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_SMALL_ICON_INACTIVE import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_SMALL_INACTIVE import com.drdisagree.iconify.common.Preferences.LSCLOCK_SWITCH +import com.drdisagree.iconify.common.Preferences.WEATHER_SWITCH import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.ModPack import com.drdisagree.iconify.xposed.modules.views.LockscreenWidgetsView @@ -50,6 +57,10 @@ class LockscreenWidgets(context: Context?) : ModPack(context!!) { // Ls custom clock private var customLockscreenClock = false + // Ls weather + private var lsWeather = false + private var lsWeatherInflated = false + // Widgets Prefs // Lockscreen Widgets private var mWidgetsEnabled: Boolean = false @@ -71,12 +82,28 @@ class LockscreenWidgets(context: Context?) : ModPack(context!!) { private var mMainWidgets: String = "" private var mExtraWidgets: String = "" + private var mBroadcastRegistered = false + private val mReceiver: BroadcastReceiver = object : BroadcastReceiver() { + override fun onReceive(context: Context?, intent: Intent?) { + if (intent != null && intent.action != null) { + if (intent.action == ACTION_WEATHER_INFLATED && mWidgetsEnabled) { + log(TAG + "Weather inflated") + lsWeatherInflated = true + placeWidgets() + } + } + } + } + override fun updatePrefs(vararg key: String) { if (Xprefs == null) return // Ls custom clock customLockscreenClock = Xprefs!!.getBoolean(LSCLOCK_SWITCH, false) + // Ls weather + lsWeather = Xprefs!!.getBoolean(WEATHER_SWITCH, false) + // Widgets mWidgetsEnabled = Xprefs!!.getBoolean(LOCKSCREEN_WIDGETS_ENABLED, false) mDeviceWidgetEnabled = Xprefs!!.getBoolean(LOCKSCREEN_WIDGETS_DEVICE_WIDGET, false) @@ -135,6 +162,28 @@ class LockscreenWidgets(context: Context?) : ModPack(context!!) { } override fun handleLoadPackage(loadPackageParam: XC_LoadPackage.LoadPackageParam) { + + // Receiver to handle weather inflated + if (!mBroadcastRegistered) { + val intentFilter = IntentFilter() + intentFilter.addAction(ACTION_WEATHER_INFLATED) + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + mContext.registerReceiver( + mReceiver, + intentFilter, + Context.RECEIVER_EXPORTED + ) + } else { + mContext.registerReceiver( + mReceiver, + intentFilter + ) + } + + mBroadcastRegistered = true + } + mWidgetsContainer = LinearLayout(mContext) mWidgetsContainer.layoutParams = LinearLayout.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, @@ -230,7 +279,8 @@ class LockscreenWidgets(context: Context?) : ModPack(context!!) { } private fun placeWidgets() { - if (mStatusViewContainer == null) return + if (mStatusViewContainer == null || mStatusArea == null) return + if (lsWeather && !lsWeatherInflated) return try { val lsWidgets = LockscreenWidgetsView.getInstance(mContext, mActivityStarter) (lsWidgets.parent as ViewGroup?)?.removeView(lsWidgets) From b89a05582571cf877f04790f8fa980cb137c578c Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Fri, 23 Aug 2024 23:42:57 +0200 Subject: [PATCH 186/369] ControllersProvider: get also Hotspot Tile for toggling hotspot --- .../xposed/modules/ControllersProvider.kt | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/ControllersProvider.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/ControllersProvider.kt index a4057f9ba..118290217 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/ControllersProvider.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/ControllersProvider.kt @@ -84,20 +84,14 @@ class ControllersProvider(context: Context?) : ModPack(context!!) { @Throws(Throwable::class) override fun afterHookedMethod(param: MethodHookParam) { log(TAG + "InternetTile found") - mNetworkController = getObjectField(param.thisObject, "mController") mCellularTile = param.thisObject + mNetworkController = getObjectField(param.thisObject, "mController") + mDataController = getObjectField(param.thisObject, "mDataController") } }) } catch (t: Throwable) { log(TAG + "NetworkController not found " + t.message) } - try { - SignalIconClass = findClass( - "com.android.systemui.qs.tiles.InternetTile\$SignalIcon", - loadPackageParam.classLoader) - } catch (t: Throwable) { - log(TAG + "SignalIcon not found " + t.message) - } // Bluetooth Controller try { @@ -175,10 +169,7 @@ class ControllersProvider(context: Context?) : ModPack(context!!) { object : XC_MethodHook() { @Throws(Throwable::class) override fun afterHookedMethod(param: MethodHookParam) { - val enabled = XposedHelpers.callMethod( - param.thisObject, - "isHotspotEnabled" - ) as Boolean + val enabled = getIntField(param.thisObject, "mHotspotState") == 13 val devices = getIntField(param.thisObject, "mNumConnectedDevices") onHotspotChanged(enabled, devices) @@ -196,6 +187,7 @@ class ControllersProvider(context: Context?) : ModPack(context!!) { hookAllConstructors(HotspotTile, object : XC_MethodHook() { @Throws(Throwable::class) override fun afterHookedMethod(param: MethodHookParam) { + mHotspotTile = param.thisObject mHotspotController = getObjectField(param.thisObject, "mHotspotController") } }) @@ -437,11 +429,12 @@ class ControllersProvider(context: Context?) : ModPack(context!!) { var SignalIconClass: Class<*>? = null var mBluetoothController: Any? = null - val mDataController: Any? = null + var mDataController: Any? = null var mNetworkController: Any? = null var mHotspotController: Any? = null val mBluetoothTile: Any? = null + var mHotspotTile: Any? = null var mCellularTile: Any? = null var mDeviceControlsTile: Any? = null val mCalculatorTile: Any? = null From b897b4f0155e53dedcd370b7bde090410556e371 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Fri, 23 Aug 2024 23:51:32 +0200 Subject: [PATCH 187/369] Add some titles --- .../fragment_xposed_lockscreen_widgets.xml | 31 +++++++++++++++++-- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/layout/fragment_xposed_lockscreen_widgets.xml b/app/src/main/res/layout/fragment_xposed_lockscreen_widgets.xml index 65bc67eb0..b87ea2f95 100644 --- a/app/src/main/res/layout/fragment_xposed_lockscreen_widgets.xml +++ b/app/src/main/res/layout/fragment_xposed_lockscreen_widgets.xml @@ -28,6 +28,11 @@ app:titleText="@string/lockscreen_widgets_enabled_title" app:summaryText="@string/lockscreen_widgets_enabled_summary" /> + + + + + + - + app:titleText="@string/widgets_custom_color" /> + + + + From ff384f1f68375e210c81c9e17fdc7756241d5e09 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Fri, 23 Aug 2024 23:57:26 +0200 Subject: [PATCH 188/369] LockscreenWidgetsView: misc improvements --- .../modules/views/LockscreenWidgetsView.kt | 84 ++++++++----------- 1 file changed, 33 insertions(+), 51 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/views/LockscreenWidgetsView.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/views/LockscreenWidgetsView.kt index 43698f971..9f6a42c0a 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/views/LockscreenWidgetsView.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/views/LockscreenWidgetsView.kt @@ -52,7 +52,6 @@ import com.drdisagree.iconify.xposed.modules.utils.ExtendedFAB import de.robv.android.xposed.XposedBridge.log import de.robv.android.xposed.XposedHelpers.callMethod import de.robv.android.xposed.XposedHelpers.getBooleanField -import de.robv.android.xposed.XposedHelpers.getObjectField import java.lang.reflect.Method import java.util.Locale import kotlin.math.abs @@ -133,9 +132,6 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : private var mCameraId: String? = null private var isFlashOn = false - private var mWifiIndicators: Any? = null - private var mMobileIndicators: Any? = null - private val mAudioMode = 0 private val mMediaUpdater: Runnable private val mHandler: Handler @@ -169,13 +165,6 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : object : ControllersProvider.OnMobileDataChanged { override fun setMobileDataIndicators(mMobileDataIndicators: Any?) { log("LockscreenWidgets setMobileDataIndicators") - val qsIcon = getObjectField(mMobileDataIndicators, "qsIcon") - this@LockscreenWidgetsView.mMobileIndicators = mMobileDataIndicators - if (qsIcon == null) { - log("LockscreenWidgets setMobileDataIndicators qsIcon null") - updateMobileDataState(false) - return - } updateMobileDataState(isMobileDataEnabled) } @@ -198,13 +187,6 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : private val mWifiCallback: ControllersProvider.OnWifiChanged = object : ControllersProvider.OnWifiChanged { override fun onWifiChanged(mWifiIndicators: Any?) { log("LockscreenWidgets onWifiChanged") - this@LockscreenWidgetsView.mWifiIndicators = mWifiIndicators - val qsIcon = getObjectField(mWifiIndicators, "qsIcon") - log("LockscreenWidgets onWifiChanged qsIcon " + (qsIcon != null)) - if (qsIcon == null) { - updateWiFiButtonState(false) - return - } updateWiFiButtonState(isWifiEnabled) } } @@ -582,6 +564,7 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : updateBtState() updateWiFiButtonState(isWifiEnabled) updateMobileDataState(isMobileDataEnabled) + updateHotspotButtonState(0) } override fun onAttachedToWindow() { @@ -732,7 +715,8 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : } } setUpWidgetResources(iv, efab, - { toggleWiFi() }, getDrawable(WIFI_INACTIVE, SYSTEMUI_PACKAGE), getString("wifi_Connected", SYSTEMUI_PACKAGE) + { toggleWiFi() }, getDrawable(WIFI_INACTIVE, SYSTEMUI_PACKAGE), getString( + WIFI_LABEL, SYSTEMUI_PACKAGE) ) } @@ -1147,9 +1131,10 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : } private fun toggleHotspot() { - val mHostpotController: Any? = ControllersProvider.mHotspotController - if (mHostpotController != null) { - callMethod(mHostpotController, "setHotspotEnabled", !isHotspotEnabled()) + val mHotspotTile = ControllersProvider.mHotspotTile + if (mHotspotTile != null) { + val finalView = hotspotButton ?: hotspotButtonFab + callMethod(mHotspotTile, "handleClick", finalView) } updateHotspotButtonState(0) postDelayed({ updateHotspotButtonState(0) }, 350L) @@ -1160,22 +1145,18 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : get() { val dataController: Any? = ControllersProvider.mDataController log("LockscreenWidgets isMobileDataEnabled (dataController == null) " + (dataController == null)) - if (dataController != null) { - return callMethod(dataController, "isMobileDataEnabled") as Boolean - } else { - try { - val connectivityManager = mContext.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager - val cmClass = Class.forName(ConnectivityManager::class.java.name) - val method= cmClass.getDeclaredMethod("getMobileDataEnabled") - method.isAccessible = true - // Call the method on the ConnectivityManager instance - val result = method.invoke(connectivityManager) - // Safely handle the return value - return if (result is Boolean) result else false - } catch (e: Exception) { - log("LockscreenWidgets isMobileDataEnabled error: " + e.message) - return false - } + try { + val connectivityManager = mContext.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager + val cmClass = Class.forName(ConnectivityManager::class.java.name) + val method= cmClass.getDeclaredMethod("getMobileDataEnabled") + method.isAccessible = true + // Call the method on the ConnectivityManager instance + val result = method.invoke(connectivityManager) + // Safely handle the return value + return if (result is Boolean) result else false + } catch (e: Exception) { + log("LockscreenWidgets isMobileDataEnabled error: " + e.message) + return false } } @@ -1285,6 +1266,11 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : init { instance = this + this.layoutParams = LayoutParams( + ViewGroup.LayoutParams.MATCH_PARENT, + ViewGroup.LayoutParams.WRAP_CONTENT + ) + mContext = context mAudioManager = mContext.getSystemService(AudioManager::class.java) mWifiManager = mContext.getSystemService(WifiManager::class.java) @@ -1522,19 +1508,15 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : } private fun isHotspotEnabled(): Boolean { - val hotspotController: Any? = ControllersProvider.mHotspotController - if (hotspotController != null) { - return callMethod(hotspotController, "isHotspotEnabled") as Boolean - } else { - try { - val method: Method = WifiManager::class.java.getDeclaredMethod("getWifiApState") - method.isAccessible = true - val actualState = - method.invoke(mWifiManager, null as Array?) as Int - return actualState == HOTSPOT_ENABLED - } catch (t: Throwable) { - log("LockscreenWidgetsView isHotspotEnabled error: " + t.message) - } + try { + val wifiManager = mContext.getSystemService(WifiManager::class.java) + val method: Method = wifiManager.javaClass.getDeclaredMethod("getWifiApState") + method.isAccessible = true + val actualState = + method.invoke(wifiManager) as Int + return actualState == HOTSPOT_ENABLED + } catch (t: Throwable) { + log("LockscreenWidgetsView isHotspotEnabled error: " + t.message) } return false } From c6257986145a7ab127842aee113ae427a8b434ae Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Sun, 25 Aug 2024 12:55:08 +0200 Subject: [PATCH 189/369] ControllersProvider: clean up --- .../iconify/xposed/modules/ControllersProvider.kt | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/ControllersProvider.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/ControllersProvider.kt index 118290217..b56df06e0 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/ControllersProvider.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/ControllersProvider.kt @@ -2,7 +2,6 @@ package com.drdisagree.iconify.xposed.modules import android.annotation.SuppressLint import android.content.Context -import android.os.Build import com.drdisagree.iconify.xposed.ModPack import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge.hookAllConstructors @@ -28,8 +27,6 @@ class ControllersProvider(context: Context?) : ModPack(context!!) { override fun updatePrefs(vararg key: String) {} override fun handleLoadPackage(loadPackageParam: XC_LoadPackage.LoadPackageParam) { - if (Build.VERSION.SDK_INT != 34) return - instance = this // Network Callbacks @@ -83,14 +80,11 @@ class ControllersProvider(context: Context?) : ModPack(context!!) { hookAllConstructors(InternetTile, object : XC_MethodHook() { @Throws(Throwable::class) override fun afterHookedMethod(param: MethodHookParam) { - log(TAG + "InternetTile found") mCellularTile = param.thisObject - mNetworkController = getObjectField(param.thisObject, "mController") - mDataController = getObjectField(param.thisObject, "mDataController") } }) } catch (t: Throwable) { - log(TAG + "NetworkController not found " + t.message) + log(TAG + "InternetTile error " + t.message) } // Bluetooth Controller @@ -426,11 +420,7 @@ class ControllersProvider(context: Context?) : ModPack(context!!) { const val TAG: String = "ControllersProvider" - var SignalIconClass: Class<*>? = null - var mBluetoothController: Any? = null - var mDataController: Any? = null - var mNetworkController: Any? = null var mHotspotController: Any? = null val mBluetoothTile: Any? = null @@ -440,9 +430,6 @@ class ControllersProvider(context: Context?) : ModPack(context!!) { val mCalculatorTile: Any? = null var mWalletTile: Any? = null - val mQsDialogLaunchAnimator: Any? = null - val mQsMediaDialogController: Any? = null - fun getInstance(): ControllersProvider { return instance!! } From f6a679d780e05a139e86826fc3a40f5fce943292 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Sun, 25 Aug 2024 12:55:44 +0200 Subject: [PATCH 190/369] LockscreenWidgets: if custom clock no care about large or small clock --- .../drdisagree/iconify/xposed/modules/LockscreenWidgets.kt | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWidgets.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWidgets.kt index 085ee041c..af1ee3feb 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWidgets.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWidgets.kt @@ -8,7 +8,6 @@ import android.graphics.Color import android.os.Build import android.view.ViewGroup import android.widget.LinearLayout -import com.drdisagree.iconify.common.Const.ACTION_BOOT_COMPLETED import com.drdisagree.iconify.common.Const.ACTION_WEATHER_INFLATED import com.drdisagree.iconify.common.Const.SYSTEMUI_PACKAGE import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS @@ -260,9 +259,7 @@ class LockscreenWidgets(context: Context?) : ModPack(context!!) { hookAllMethods(keyguardClockSwitch, "updateClockViews", object : XC_MethodHook() { override fun afterHookedMethod(param: MethodHookParam) { if (!mWidgetsEnabled) return - updateLockscreenWidgetsOnClock(param.args[0] as Boolean) - } }) @@ -291,7 +288,7 @@ class LockscreenWidgets(context: Context?) : ModPack(context!!) { if (customLockscreenClock) { mStatusViewContainer!!.addView(mWidgetsContainer) } else { - // Put weather view inside the status area + // Put widgets view inside the status area // But before notifications mStatusArea!!.addView(mWidgetsContainer, mStatusArea!!.childCount - 1) } @@ -312,7 +309,7 @@ class LockscreenWidgets(context: Context?) : ModPack(context!!) { private fun updateLockscreenWidgetsOnClock(isLargeClock: Boolean) { log(TAG + "Updating Lockscreen Widgets on Clock") val lsWidgets = LockscreenWidgetsView.getInstance() ?: return - lsWidgets.setIsLargeClock(isLargeClock) + lsWidgets.setIsLargeClock(if (customLockscreenClock) false else isLargeClock) } private fun updateLsDeviceWidget() { From bb4e1cbcdb5c0e88c49b04a145226c853f08bd91 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Sun, 25 Aug 2024 12:57:35 +0200 Subject: [PATCH 191/369] weather settings action --- app/src/main/res/navigation/nav_xposed_menu.xml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/app/src/main/res/navigation/nav_xposed_menu.xml b/app/src/main/res/navigation/nav_xposed_menu.xml index 8e066ec20..71148e2bb 100644 --- a/app/src/main/res/navigation/nav_xposed_menu.xml +++ b/app/src/main/res/navigation/nav_xposed_menu.xml @@ -238,13 +238,6 @@ app:exitAnim="@anim/fragment_fade_out" app:popEnterAnim="@anim/fragment_fade_in" app:popExitAnim="@anim/fragment_fade_out" /> - + Date: Sun, 25 Aug 2024 12:58:58 +0200 Subject: [PATCH 192/369] weather settings action --- .../iconify/ui/fragments/XposedLockscreenWidgets.kt | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWidgets.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWidgets.kt index 9c6b8a7a3..ac80ebf2f 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWidgets.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWidgets.kt @@ -207,7 +207,7 @@ class XposedLockscreenWidgets : BaseFragment() { // Weather Settings binding.weatherSettings.setOnClickListener{ findNavController(binding.weatherSettings).navigate( - (R.id.action_xposedLockscreenWeather_to_weatherSettings) + (R.id.action_xposedLockscreenWidgets_to_weatherSettings) ) } @@ -356,6 +356,8 @@ class XposedLockscreenWidgets : BaseFragment() { } private fun updatePrefs() { + mWeatherClient.queryWeather() + val mainWidgets = "${mWidgetsValues!![bigWidget1]},${mWidgetsValues!![bigWidget2]}" val extraWidgets = "${mWidgetsValues!![miniWidget1]},${mWidgetsValues!![miniWidget2]},${mWidgetsValues!![miniWidget3]},${mWidgetsValues!![miniWidget4]}" @@ -370,7 +372,9 @@ class XposedLockscreenWidgets : BaseFragment() { val weatherEnabled = mainWidgets.contains("weather") || extraWidgets.contains("weather") - if (weatherEnabled && wasWeatherEnabled) { + binding.weatherSettings.isEnabled = weatherEnabled + + if (weatherEnabled && wasWeatherEnabled && mWeatherClient.weatherInfo != null) { // Weather enabled but updater more than 1h ago if (System.currentTimeMillis() - mWeatherClient.weatherInfo?.timeStamp!! > 3600000) { WeatherScheduler.scheduleUpdateNow(requireContext()) @@ -380,7 +384,6 @@ class XposedLockscreenWidgets : BaseFragment() { WeatherScheduler.scheduleUpdates(requireContext()) WeatherScheduler.scheduleUpdateNow(requireContext()) } - } } \ No newline at end of file From fdd23bcabe1c21543420dc0710be355910885fc1 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Sun, 25 Aug 2024 13:00:02 +0200 Subject: [PATCH 193/369] LockscreenWidgetsView: cleanup toggle mobile data uses root device widget invisible on large clock --- .../modules/views/LockscreenWidgetsView.kt | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/views/LockscreenWidgetsView.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/views/LockscreenWidgetsView.kt index 9f6a42c0a..953ba2510 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/views/LockscreenWidgetsView.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/views/LockscreenWidgetsView.kt @@ -43,6 +43,7 @@ import com.drdisagree.iconify.R import com.drdisagree.iconify.common.Const.FRAMEWORK_PACKAGE import com.drdisagree.iconify.common.Const.SYSTEMUI_PACKAGE import com.drdisagree.iconify.utils.OmniJawsClient +import com.drdisagree.iconify.xposed.HookEntry.Companion.enqueueProxyCommand import com.drdisagree.iconify.xposed.HookRes.Companion.modRes import com.drdisagree.iconify.xposed.modules.ControllersProvider import com.drdisagree.iconify.xposed.modules.LockscreenWidgets.Companion.LaunchableImageView @@ -601,7 +602,11 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : val isEmpty = isMainWidgetsEmpty && isSecondaryWidgetsEmpty if (mDeviceWidgetContainer != null) { - mDeviceWidgetContainer.visibility = if (deviceWidgetsEnabled) VISIBLE else GONE + mDeviceWidgetContainer.visibility = if (deviceWidgetsEnabled) { + if (mIsLargeClock) View.GONE else View.VISIBLE + } else { + View.GONE + } } if (mMainWidgetsContainer != null) { mMainWidgetsContainer.visibility = if (isMainWidgetsEmpty) GONE else VISIBLE @@ -715,7 +720,7 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : } } setUpWidgetResources(iv, efab, - { toggleWiFi() }, getDrawable(WIFI_INACTIVE, SYSTEMUI_PACKAGE), getString( + { toggleWiFi() }, getDrawable(WIFI_INACTIVE, FRAMEWORK_PACKAGE), getString( WIFI_LABEL, SYSTEMUI_PACKAGE) ) } @@ -1143,8 +1148,6 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : private val isMobileDataEnabled: Boolean get() { - val dataController: Any? = ControllersProvider.mDataController - log("LockscreenWidgets isMobileDataEnabled (dataController == null) " + (dataController == null)) try { val connectivityManager = mContext.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager val cmClass = Class.forName(ConnectivityManager::class.java.name) @@ -1168,8 +1171,9 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : } private fun toggleMobileData() { - if (ControllersProvider.mDataController == null) return - callMethod(ControllersProvider.mDataController, "setMobileDataEnabled", !isMobileDataEnabled) + enqueueProxyCommand { proxy -> + proxy?.runCommand("svc data " + if (isMobileDataEnabled) "disable" else "enable") + } updateMobileDataState(!isMobileDataEnabled) mHandler.postDelayed({ updateMobileDataState(isMobileDataEnabled) }, 250L) vibrate(1) @@ -1405,17 +1409,16 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : private fun updateMobileDataState(enabled: Boolean) { if (!isWidgetEnabled("data")) return if (dataButton == null && dataButtonFab == null) return - val networkController: Any? = ControllersProvider.mNetworkController val inactive = getString(DATA_LABEL, SYSTEMUI_PACKAGE) val networkName = if (!TextUtils.isEmpty(activeMobileDataCarrier)) activeMobileDataCarrier else inactive - val hasNetwork = networkController != null && !TextUtils.isEmpty(networkName) + val hasNetwork = enabled && !TextUtils.isEmpty(networkName) updateTileButtonState( dataButton, dataButtonFab, enabled, getDrawable(DATA_ICON, FRAMEWORK_PACKAGE), - if (hasNetwork && enabled) networkName else inactive + if (hasNetwork) networkName else inactive ) } @@ -1589,7 +1592,7 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : fun setIsLargeClock(isLargeClock: Boolean) { log("LockscreenWidgets setIsLargeClock $isLargeClock") instance!!.mIsLargeClock = isLargeClock - instance!!.updateWidgetViews() + instance!!.updateContainerVisibility() } /** From 20d416f9e5b06b3063bbb7e6a147996a51d53020 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Sun, 25 Aug 2024 13:08:04 +0200 Subject: [PATCH 194/369] LockscreenWidgetsView: our own icons for ringer --- .../modules/views/LockscreenWidgetsView.kt | 200 +++++++++++------- .../main/res/drawable-v24/ic_ringer_mute.xml | 4 + .../res/drawable-v24/ic_ringer_normal.xml | 4 + .../res/drawable-v24/ic_ringer_vibrate.xml | 4 + 4 files changed, 138 insertions(+), 74 deletions(-) create mode 100644 app/src/main/res/drawable-v24/ic_ringer_mute.xml create mode 100644 app/src/main/res/drawable-v24/ic_ringer_normal.xml create mode 100644 app/src/main/res/drawable-v24/ic_ringer_vibrate.xml diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/views/LockscreenWidgetsView.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/views/LockscreenWidgetsView.kt index 953ba2510..e026ee36e 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/views/LockscreenWidgetsView.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/views/LockscreenWidgetsView.kt @@ -185,45 +185,50 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : } } - private val mWifiCallback: ControllersProvider.OnWifiChanged = object : ControllersProvider.OnWifiChanged { - override fun onWifiChanged(mWifiIndicators: Any?) { - log("LockscreenWidgets onWifiChanged") - updateWiFiButtonState(isWifiEnabled) + private val mWifiCallback: ControllersProvider.OnWifiChanged = + object : ControllersProvider.OnWifiChanged { + override fun onWifiChanged(mWifiIndicators: Any?) { + log("LockscreenWidgets onWifiChanged") + updateWiFiButtonState(isWifiEnabled) + } } - } - private val mBluetoothCallback: ControllersProvider.OnBluetoothChanged = object : ControllersProvider.OnBluetoothChanged { - override fun onBluetoothChanged(enabled: Boolean) { - log("LockscreenWidgets onBluetoothChanged $enabled") - isBluetoothOn = enabled - updateBtState() + private val mBluetoothCallback: ControllersProvider.OnBluetoothChanged = + object : ControllersProvider.OnBluetoothChanged { + override fun onBluetoothChanged(enabled: Boolean) { + log("LockscreenWidgets onBluetoothChanged $enabled") + isBluetoothOn = enabled + updateBtState() + } } - } - private val mTorchCallback: ControllersProvider.OnTorchModeChanged = object : ControllersProvider.OnTorchModeChanged { - override fun onTorchModeChanged(enabled: Boolean) { - log("LockscreenWidgets onTorchChanged $enabled") - isFlashOn = enabled - updateTorchButtonState() + private val mTorchCallback: ControllersProvider.OnTorchModeChanged = + object : ControllersProvider.OnTorchModeChanged { + override fun onTorchModeChanged(enabled: Boolean) { + log("LockscreenWidgets onTorchChanged $enabled") + isFlashOn = enabled + updateTorchButtonState() + } } - } - private val mHotspotCallback: ControllersProvider.OnHotspotChanged = object : ControllersProvider.OnHotspotChanged { - override fun onHotspotChanged(enabled: Boolean, connectedDevices: Int) { - log("LockscreenWidgets onHotspotChanged $enabled") - updateHotspotButtonState(connectedDevices) + private val mHotspotCallback: ControllersProvider.OnHotspotChanged = + object : ControllersProvider.OnHotspotChanged { + override fun onHotspotChanged(enabled: Boolean, connectedDevices: Int) { + log("LockscreenWidgets onHotspotChanged $enabled") + updateHotspotButtonState(connectedDevices) + } } - } - private val mDozeCallback: ControllersProvider.OnDozingChanged = object : ControllersProvider.OnDozingChanged { - override fun onDozingChanged(dozing: Boolean) { - if (mDozing == dozing) { - return + private val mDozeCallback: ControllersProvider.OnDozingChanged = + object : ControllersProvider.OnDozingChanged { + override fun onDozingChanged(dozing: Boolean) { + if (mDozing == dozing) { + return + } + mDozing = dozing + updateContainerVisibility() } - mDozing = dozing - updateContainerVisibility() } - } private fun createDeviceWidgetContainer(context: Context): LinearLayout { val deviceWidget = LinearLayout(context) @@ -248,7 +253,8 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : log("LockscreenWidgets createMainWidgetsContainer LaunchableLinearLayout " + (LaunchableLinearLayout != null)) try { mainWidgetsContainer = - LaunchableLinearLayout!!.getConstructor(Context::class.java).newInstance(context) as LinearLayout? + LaunchableLinearLayout!!.getConstructor(Context::class.java) + .newInstance(context) as LinearLayout? } catch (e: Exception) { log("LockscreenWidgets createMainWidgetsContainer LaunchableLinearLayout not found: " + e.message) mainWidgetsContainer = LinearLayout(context) @@ -257,7 +263,7 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : if (mainWidgetsContainer == null) { mainWidgetsContainer = LinearLayout(context) // Ensure the creation on our linear layout } - + mainWidgetsContainer.orientation = HORIZONTAL mainWidgetsContainer.gravity = Gravity.CENTER mainWidgetsContainer.setLayoutParams( @@ -309,7 +315,8 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : log("LockscreenWidgets createSecondaryWidgetsContainer LaunchableLinearLayout " + (LaunchableLinearLayout != null)) try { secondaryWidgetsContainer = - LaunchableLinearLayout?.getConstructor(Context::class.java)?.newInstance(context) as LinearLayout? + LaunchableLinearLayout?.getConstructor(Context::class.java) + ?.newInstance(context) as LinearLayout? } catch (e: Exception) { log("LockscreenWidgets createMainWidgetsContainer LaunchableLinearLayout not found: " + e.message) secondaryWidgetsContainer = LinearLayout(context) @@ -344,13 +351,14 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : for (mSecondaryWidgetView: ImageView? in mSecondaryWidgetViews!!) { secondaryWidgetsContainer.addView(mSecondaryWidgetView) } - + return secondaryWidgetsContainer } private fun createImageView(context: Context): ImageView { val imageView: ImageView = try { - LaunchableImageView?.getConstructor(Context::class.java)?.newInstance(context) as ImageView + LaunchableImageView?.getConstructor(Context::class.java) + ?.newInstance(context) as ImageView } catch (e: Exception) { // LaunchableImageView not found or other error, ensure the creation of our ImageView ImageView(context) @@ -540,7 +548,8 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : mWeatherClient!!.getWeatherConditionImage(mWeatherInfo!!.conditionCode) if (weatherButtonFab != null) { weatherButtonFab!!.icon = d - weatherButtonFab!!.text = (mWeatherInfo!!.temp + mWeatherInfo!!.tempUnits) + " • " + formattedCondition + weatherButtonFab!!.text = + (mWeatherInfo!!.temp + mWeatherInfo!!.tempUnits) + " • " + formattedCondition weatherButtonFab!!.iconTint = null } if (weatherButton != null) { @@ -612,7 +621,8 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : mMainWidgetsContainer.visibility = if (isMainWidgetsEmpty) GONE else VISIBLE } if (mSecondaryWidgetsContainer != null) { - mSecondaryWidgetsContainer.visibility = if (isSecondaryWidgetsEmpty || mIsLargeClock) GONE else VISIBLE + mSecondaryWidgetsContainer.visibility = + if (isSecondaryWidgetsEmpty || mIsLargeClock) GONE else VISIBLE } val shouldHideContainer = isEmpty || mDozing || !lockscreenWidgetsEnabled visibility = if (shouldHideContainer) GONE else VISIBLE @@ -623,7 +633,8 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : if (mMainWidgetViews != null && mMainWidgetsList != null) { for (i in mMainWidgetViews!!.indices) { - mMainWidgetViews!![i].visibility = if (i < mMainWidgetsList!!.size) VISIBLE else GONE + mMainWidgetViews!![i].visibility = + if (i < mMainWidgetsList!!.size) VISIBLE else GONE } for (i in 0 until min( mMainWidgetsList!!.size.toDouble(), @@ -719,9 +730,11 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : true } } - setUpWidgetResources(iv, efab, + setUpWidgetResources( + iv, efab, { toggleWiFi() }, getDrawable(WIFI_INACTIVE, FRAMEWORK_PACKAGE), getString( - WIFI_LABEL, SYSTEMUI_PACKAGE) + WIFI_LABEL, SYSTEMUI_PACKAGE + ) ) } @@ -743,7 +756,8 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : setUpWidgetResources( iv, efab, { toggleMobileData() }, getDrawable(DATA_ICON, FRAMEWORK_PACKAGE), getString( - DATA_LABEL, SYSTEMUI_PACKAGE) + DATA_LABEL, SYSTEMUI_PACKAGE + ) ) } @@ -764,8 +778,13 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : } setUpWidgetResources( iv, efab, - { toggleRingerMode() }, getDrawable(RINGER_NORMAL, SYSTEMUI_PACKAGE), getString( - RINGER_LABEL_INACTIVE, SYSTEMUI_PACKAGE) + { toggleRingerMode() }, + ResourcesCompat.getDrawable( + modRes, + R.drawable.ic_ringer_normal, + mContext.theme + ), + getString(RINGER_LABEL_INACTIVE, SYSTEMUI_PACKAGE) ) } @@ -788,7 +807,8 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : iv, efab, { toggleBluetoothState() }, getDrawable( BT_ICON, - SYSTEMUI_PACKAGE), getString(BT_LABEL, SYSTEMUI_PACKAGE) + SYSTEMUI_PACKAGE + ), getString(BT_LABEL, SYSTEMUI_PACKAGE) ) } @@ -800,9 +820,13 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : torchButtonFab = efab } setUpWidgetResources( - iv, efab, - { toggleFlashlight() }, getDrawable(TORCH_RES_INACTIVE, SYSTEMUI_PACKAGE), getString( - TORCH_LABEL, SYSTEMUI_PACKAGE) + iv, + efab, + { toggleFlashlight() }, + getDrawable(TORCH_RES_INACTIVE, SYSTEMUI_PACKAGE), + getString( + TORCH_LABEL, SYSTEMUI_PACKAGE + ) ) } @@ -811,10 +835,16 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : vibrate(1) }, getDrawable("ic_alarm", SYSTEMUI_PACKAGE), modRes.getString(R.string.clock_timer)) - "camera" -> setUpWidgetResources(iv, efab, { - mActivityLauncherUtils.launchCamera() - vibrate(1) - }, getDrawable(CAMERA_ICON, SYSTEMUI_PACKAGE), getString(CAMERA_LABEL, SYSTEMUI_PACKAGE)) + "camera" -> setUpWidgetResources( + iv, + efab, + { + mActivityLauncherUtils.launchCamera() + vibrate(1) + }, + getDrawable(CAMERA_ICON, SYSTEMUI_PACKAGE), + getString(CAMERA_LABEL, SYSTEMUI_PACKAGE) + ) "calculator" -> setUpWidgetResources( iv, @@ -827,30 +857,37 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : ) "homecontrols" -> setUpWidgetResources( - iv, efab, + iv, + efab, { view: View -> this.launchHomeControls( view ) - }, getDrawable(HOME_CONTROLS, SYSTEMUI_PACKAGE), getString(HOME_CONTROLS_LABEL, SYSTEMUI_PACKAGE) + }, + getDrawable(HOME_CONTROLS, SYSTEMUI_PACKAGE), + getString(HOME_CONTROLS_LABEL, SYSTEMUI_PACKAGE) ) - "wallet" -> setUpWidgetResources(iv, efab, + "wallet" -> setUpWidgetResources( + iv, + efab, { view: View -> this.launchWallet( view ) - }, getDrawable(WALLET_ICON, SYSTEMUI_PACKAGE), getString(WALLET_LABEL, SYSTEMUI_PACKAGE) + }, + getDrawable(WALLET_ICON, SYSTEMUI_PACKAGE), + getString(WALLET_LABEL, SYSTEMUI_PACKAGE) ) "media" -> { if (iv != null) { mediaButton = iv - mediaButton!!.setOnLongClickListener {true} + mediaButton!!.setOnLongClickListener { true } } if (efab != null) { mediaButtonFab = efab - mediaButtonFab!!.setOnLongClickListener {true} + mediaButtonFab!!.setOnLongClickListener { true } } setUpWidgetResources( iv, efab, @@ -996,9 +1033,11 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : } } if (efab != null) { - efab.backgroundTintList = ColorStateList.valueOf(if (active) mBigActiveColor else mBigInactiveColor) + efab.backgroundTintList = + ColorStateList.valueOf(if (active) mBigActiveColor else mBigInactiveColor) if (efab !== weatherButtonFab) { - efab.iconTint = ColorStateList.valueOf(if (active) mBigIconActiveColor else mBigIconInactiveColor) + efab.iconTint = + ColorStateList.valueOf(if (active) mBigIconActiveColor else mBigIconInactiveColor) } else { efab.iconTint = null } @@ -1149,9 +1188,10 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : private val isMobileDataEnabled: Boolean get() { try { - val connectivityManager = mContext.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager + val connectivityManager = + mContext.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager val cmClass = Class.forName(ConnectivityManager::class.java.name) - val method= cmClass.getDeclaredMethod("getMobileDataEnabled") + val method = cmClass.getDeclaredMethod("getMobileDataEnabled") method.isAccessible = true // Call the method on the ConnectivityManager instance val result = method.invoke(connectivityManager) @@ -1257,8 +1297,12 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : if (!isWidgetEnabled("torch")) return log("LockscreenWidgets updateTorchButtonState $isFlashOn") updateTileButtonState( - torchButton, torchButtonFab, isFlashOn, - getDrawable(TORCH_RES_ACTIVE, SYSTEMUI_PACKAGE), getString(TORCH_LABEL, SYSTEMUI_PACKAGE)) + torchButton, + torchButtonFab, + isFlashOn, + getDrawable(TORCH_RES_ACTIVE, SYSTEMUI_PACKAGE), + getString(TORCH_LABEL, SYSTEMUI_PACKAGE) + ) } private val mRingerModeReceiver: BroadcastReceiver = object : BroadcastReceiver() { @@ -1308,7 +1352,7 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : if (mWeatherClient == null) { mWeatherClient = OmniJawsClient(context) } - + try { mCameraId = mCameraManager.cameraIdList[0] } catch (e: Throwable) { @@ -1383,7 +1427,8 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : val icon: Drawable? = getDrawable( if (enabled && connected) WIFI_ACTIVE else if (enabled) WIFI_ACTIVE - else WIFI_INACTIVE, FRAMEWORK_PACKAGE) + else WIFI_INACTIVE, FRAMEWORK_PACKAGE + ) updateTileButtonState( wifiButton, wifiButtonFab, isWifiEnabled, @@ -1424,8 +1469,10 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : private val activeMobileDataCarrier: String get() { - val connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager - val telephonyManager = context.getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager + val connectivityManager = + context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager + val telephonyManager = + context.getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager val activeNetwork = connectivityManager.activeNetwork val networkCapabilities = connectivityManager.getNetworkCapabilities(activeNetwork) @@ -1478,7 +1525,8 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : btButton, btButtonFab, isBluetoothOn, icon, if (isConnected) deviceName!! - else getString(BT_LABEL, SYSTEMUI_PACKAGE)) + else getString(BT_LABEL, SYSTEMUI_PACKAGE) + ) } private fun updateHotspotButtonState(numDevices: Int) { @@ -1674,12 +1722,15 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : HOME_CONTROLS_LABEL -> { return modRes.getString(R.string.home_controls) } + CALCULATOR_LABEL -> { return modRes.getString(R.string.calculator) } + CAMERA_LABEL -> { return modRes.getString(R.string.camera) } + WALLET_LABEL -> { return modRes.getString(R.string.wallet) } @@ -1692,13 +1743,17 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : private val ringerDrawable: Drawable? get() { val resName = when (mAudioManager!!.ringerMode) { - AudioManager.RINGER_MODE_NORMAL -> RINGER_NORMAL - AudioManager.RINGER_MODE_VIBRATE -> RINGER_VIBRATE - AudioManager.RINGER_MODE_SILENT -> RINGER_SILENT + AudioManager.RINGER_MODE_NORMAL -> R.drawable.ic_ringer_normal + AudioManager.RINGER_MODE_VIBRATE -> R.drawable.ic_ringer_vibrate + AudioManager.RINGER_MODE_SILENT -> R.drawable.ic_ringer_mute else -> throw IllegalStateException("Unexpected value: " + mAudioManager.ringerMode) } - return getDrawable(resName, SYSTEMUI_PACKAGE) + return ResourcesCompat.getDrawable( + modRes, + resName, + mContext.theme + ) } private val ringerText: String @@ -1735,9 +1790,6 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : const val BT_ICON: String = "qs_bluetooth_icon_on" const val DATA_ICON: String = "perm_group_network" - const val RINGER_NORMAL: String = " ic_volume_ringer" - const val RINGER_VIBRATE: String = "ic_volume_ringer_vibrate" - const val RINGER_SILENT: String = "ic_volume_ringer_mute" const val TORCH_RES_ACTIVE: String = "qs_flashlight_icon_on" const val TORCH_RES_INACTIVE: String = "qs_flashlight_icon_off" const val WIFI_ACTIVE: String = "ic_wifi_signal_4" diff --git a/app/src/main/res/drawable-v24/ic_ringer_mute.xml b/app/src/main/res/drawable-v24/ic_ringer_mute.xml new file mode 100644 index 000000000..38950ce65 --- /dev/null +++ b/app/src/main/res/drawable-v24/ic_ringer_mute.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/ic_ringer_normal.xml b/app/src/main/res/drawable-v24/ic_ringer_normal.xml new file mode 100644 index 000000000..1f6c65371 --- /dev/null +++ b/app/src/main/res/drawable-v24/ic_ringer_normal.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/ic_ringer_vibrate.xml b/app/src/main/res/drawable-v24/ic_ringer_vibrate.xml new file mode 100644 index 000000000..b5180809d --- /dev/null +++ b/app/src/main/res/drawable-v24/ic_ringer_vibrate.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file From 780e4bbace9af4e583de0f73ca7c809c2e64cf74 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Sun, 25 Aug 2024 13:29:08 +0200 Subject: [PATCH 195/369] Change Misc title --- app/src/main/res/layout/fragment_xposed_lockscreen_widgets.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/layout/fragment_xposed_lockscreen_widgets.xml b/app/src/main/res/layout/fragment_xposed_lockscreen_widgets.xml index b87ea2f95..f7106d602 100644 --- a/app/src/main/res/layout/fragment_xposed_lockscreen_widgets.xml +++ b/app/src/main/res/layout/fragment_xposed_lockscreen_widgets.xml @@ -210,7 +210,7 @@ + app:titleText="@string/activity_title_miscellaneous"/> Date: Sun, 25 Aug 2024 13:33:52 +0200 Subject: [PATCH 196/369] ControllersProvider: start only if widgets enabled --- .../iconify/xposed/modules/ControllersProvider.kt | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/ControllersProvider.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/ControllersProvider.kt index b56df06e0..4a867310e 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/ControllersProvider.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/ControllersProvider.kt @@ -2,6 +2,8 @@ package com.drdisagree.iconify.xposed.modules import android.annotation.SuppressLint import android.content.Context +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_ENABLED +import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.ModPack import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge.hookAllConstructors @@ -15,6 +17,8 @@ import de.robv.android.xposed.callbacks.XC_LoadPackage class ControllersProvider(context: Context?) : ModPack(context!!) { + private var mWidgetsEnabled = false + private var mBluetoothEnabled = false private val mMobileDataChangedListeners = ArrayList() @@ -24,9 +28,16 @@ class ControllersProvider(context: Context?) : ModPack(context!!) { private val mHotspotChangedListeners = ArrayList() private val mDozeChangedListeners = ArrayList() - override fun updatePrefs(vararg key: String) {} + override fun updatePrefs(vararg key: String) { + if (Xprefs == null) return + + mWidgetsEnabled = Xprefs!!.getBoolean(LOCKSCREEN_WIDGETS_ENABLED, false) + + } override fun handleLoadPackage(loadPackageParam: XC_LoadPackage.LoadPackageParam) { + if (!mWidgetsEnabled) return + instance = this // Network Callbacks From 301bf3fbe778d126271bfa458f419ff784e82354 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Sun, 25 Aug 2024 13:57:50 +0200 Subject: [PATCH 197/369] Resize ringer icons --- .../main/res/drawable-v24/ic_ringer_mute.xml | 17 +++++++++++++++-- .../main/res/drawable-v24/ic_ringer_normal.xml | 17 +++++++++++++++-- .../main/res/drawable-v24/ic_ringer_vibrate.xml | 17 +++++++++++++++-- 3 files changed, 45 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/drawable-v24/ic_ringer_mute.xml b/app/src/main/res/drawable-v24/ic_ringer_mute.xml index 38950ce65..1665b0a9a 100644 --- a/app/src/main/res/drawable-v24/ic_ringer_mute.xml +++ b/app/src/main/res/drawable-v24/ic_ringer_mute.xml @@ -1,4 +1,17 @@ - - + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/ic_ringer_normal.xml b/app/src/main/res/drawable-v24/ic_ringer_normal.xml index 1f6c65371..7626cf637 100644 --- a/app/src/main/res/drawable-v24/ic_ringer_normal.xml +++ b/app/src/main/res/drawable-v24/ic_ringer_normal.xml @@ -1,4 +1,17 @@ - - + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/ic_ringer_vibrate.xml b/app/src/main/res/drawable-v24/ic_ringer_vibrate.xml index b5180809d..e858e54c1 100644 --- a/app/src/main/res/drawable-v24/ic_ringer_vibrate.xml +++ b/app/src/main/res/drawable-v24/ic_ringer_vibrate.xml @@ -1,4 +1,17 @@ - - + + + + \ No newline at end of file From d731411e89975ffd0ca409d50038c3775ab1dda4 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Sun, 25 Aug 2024 14:00:28 +0200 Subject: [PATCH 198/369] LockscreenWidgets: added bottom margin --- .../drdisagree/iconify/common/Preferences.kt | 1 + .../ui/fragments/XposedLockscreenWidgets.kt | 12 +++++++++++ .../xposed/modules/LockscreenWidgets.kt | 20 ++++++++++++++++++- .../fragment_xposed_lockscreen_widgets.xml | 15 ++++++++++++++ 4 files changed, 47 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt index 32a9b341a..fba412138 100644 --- a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt +++ b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt @@ -85,6 +85,7 @@ object Preferences { const val LOCKSCREEN_WIDGETS_SMALL_ICON_ACTIVE: String = "lockscreen_widgets_small_icon_active" const val LOCKSCREEN_WIDGETS_SMALL_ICON_INACTIVE: String = "lockscreen_widgets_small_icon_inactive" + const val LOCKSCREEN_WIDGETS_BOTTOM_MARGIN: String = "lockscreen_widgets_bottom_margin" const val FIXED_STATUS_ICONS_SWITCH = "xposed_fixedstatusicons" const val FIXED_STATUS_ICONS_SIDEMARGIN = "xposed_fixedstatusiconssidemargin" const val FIXED_STATUS_ICONS_TOPMARGIN = "xposed_fixedstatusiconstopmargin" diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWidgets.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWidgets.kt index ac80ebf2f..e0e8a13b8 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWidgets.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWidgets.kt @@ -18,6 +18,7 @@ import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_BIG_ACTIVE import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_BIG_ICON_ACTIVE import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_BIG_ICON_INACTIVE import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_BIG_INACTIVE +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_BOTTOM_MARGIN import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_CUSTOM_COLOR import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_DEVICE_WIDGET import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_DEVICE_WIDGET_CIRCULAR_COLOR @@ -45,6 +46,7 @@ import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader import com.drdisagree.iconify.utils.OmniJawsClient import com.drdisagree.iconify.utils.SystemUtil import com.drdisagree.iconify.utils.weather.WeatherConfig +import com.google.android.material.slider.Slider class XposedLockscreenWidgets : BaseFragment() { @@ -266,6 +268,14 @@ class XposedLockscreenWidgets : BaseFragment() { } } + binding.widgetsBottomMargin.sliderValue = getInt(LOCKSCREEN_WIDGETS_BOTTOM_MARGIN, 0) + binding.widgetsBottomMargin.setOnSliderChangeListener{ slider: Slider, _: Float, _: Boolean -> + putInt( + LOCKSCREEN_WIDGETS_BOTTOM_MARGIN, + slider.value.toInt() + ) + } + } private fun updateUI() { @@ -315,6 +325,8 @@ class XposedLockscreenWidgets : BaseFragment() { binding.weatherSettings.isEnabled = mainWidgets!!.contains("weather") || extraWidgets!!.contains("weather") + binding.widgetsBottomMargin.isEnabled = widgetsEnabled + } private fun readPrefs() { diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWidgets.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWidgets.kt index af1ee3feb..9972bdb05 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWidgets.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWidgets.kt @@ -15,6 +15,7 @@ import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_BIG_ACTIVE import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_BIG_ICON_ACTIVE import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_BIG_ICON_INACTIVE import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_BIG_INACTIVE +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_BOTTOM_MARGIN import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_CUSTOM_COLOR import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_DEVICE_WIDGET import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_DEVICE_WIDGET_CIRCULAR_COLOR @@ -32,6 +33,7 @@ import com.drdisagree.iconify.common.Preferences.LSCLOCK_SWITCH import com.drdisagree.iconify.common.Preferences.WEATHER_SWITCH import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.ModPack +import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.setMargins import com.drdisagree.iconify.xposed.modules.views.LockscreenWidgetsView import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge @@ -80,6 +82,7 @@ class LockscreenWidgets(context: Context?) : ModPack(context!!) { private var mDeviceName = "" private var mMainWidgets: String = "" private var mExtraWidgets: String = "" + private var mBottomMargin = 0 private var mBroadcastRegistered = false private val mReceiver: BroadcastReceiver = object : BroadcastReceiver() { @@ -126,7 +129,7 @@ class LockscreenWidgets(context: Context?) : ModPack(context!!) { mSmallIconActiveColor = Xprefs!!.getInt(LOCKSCREEN_WIDGETS_SMALL_ICON_ACTIVE, Color.BLACK) mSmallIconInactiveColor = Xprefs!!.getInt(LOCKSCREEN_WIDGETS_SMALL_ICON_INACTIVE, Color.WHITE) - + mBottomMargin = Xprefs!!.getInt(LOCKSCREEN_WIDGETS_BOTTOM_MARGIN, 0) if (key.isNotEmpty()) { if (key[0] == LOCKSCREEN_WIDGETS_ENABLED || @@ -156,6 +159,9 @@ class LockscreenWidgets(context: Context?) : ModPack(context!!) { ) { updateLockscreenWidgetsColors() } + if (key[0] == LOCKSCREEN_WIDGETS_BOTTOM_MARGIN) { + updateMargins() + } } } @@ -295,6 +301,7 @@ class LockscreenWidgets(context: Context?) : ModPack(context!!) { updateLockscreenWidgets() updateLsDeviceWidget() updateLockscreenWidgetsColors() + updateMargins() } catch (ignored: Throwable) { } @@ -336,6 +343,17 @@ class LockscreenWidgets(context: Context?) : ModPack(context!!) { ) } + private fun updateMargins() { + setMargins( + mWidgetsContainer, + mContext, + 0, + 0, + 0, + mBottomMargin + ) + } + private fun updateDozingState(isDozing: Boolean) { val lsWidgets = LockscreenWidgetsView.getInstance() ?: return lsWidgets.setDozingState(isDozing) diff --git a/app/src/main/res/layout/fragment_xposed_lockscreen_widgets.xml b/app/src/main/res/layout/fragment_xposed_lockscreen_widgets.xml index f7106d602..f15825520 100644 --- a/app/src/main/res/layout/fragment_xposed_lockscreen_widgets.xml +++ b/app/src/main/res/layout/fragment_xposed_lockscreen_widgets.xml @@ -218,6 +218,21 @@ android:id="@+id/weather_settings" app:titleText="@string/weather_settings" /> + + + + From 5c0dc1d4b61b95f333684857bd4cbf9d11449280 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Sun, 25 Aug 2024 14:03:39 +0200 Subject: [PATCH 199/369] WeatherSettings: weather icon pack --- .../iconify/ui/fragments/WeatherSettings.kt | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/WeatherSettings.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/WeatherSettings.kt index 968945ffd..9b9f572b7 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/WeatherSettings.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/WeatherSettings.kt @@ -11,15 +11,18 @@ import android.location.LocationManager import android.net.Uri import android.os.Bundle import android.provider.Settings +import android.text.TextUtils import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.activity.result.contract.ActivityResultContracts import androidx.core.content.res.ResourcesCompat +import androidx.recyclerview.widget.LinearLayoutManager import com.drdisagree.iconify.BuildConfig import com.drdisagree.iconify.Iconify.Companion.appContextLocale import com.drdisagree.iconify.R import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_LOCATION +import com.drdisagree.iconify.common.Preferences.WEATHER_ICON_PACK import com.drdisagree.iconify.common.Preferences.WEATHER_OWM_KEY import com.drdisagree.iconify.common.Preferences.WEATHER_PROVIDER import com.drdisagree.iconify.common.Preferences.WEATHER_UNITS @@ -29,6 +32,8 @@ import com.drdisagree.iconify.config.RPrefs.getBoolean import com.drdisagree.iconify.config.RPrefs.putString import com.drdisagree.iconify.databinding.FragmentWeatherSettingsBinding import com.drdisagree.iconify.services.WeatherScheduler +import com.drdisagree.iconify.ui.adapters.IconsAdapter +import com.drdisagree.iconify.ui.adapters.IconsAdapter.Companion.WEATHER_ICONS_ADAPTER import com.drdisagree.iconify.ui.base.BaseFragment import com.drdisagree.iconify.ui.dialogs.EditTextDialog import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader @@ -138,6 +143,41 @@ class WeatherSettings: BaseFragment(), OmniJawsClient.OmniJawsObserver { forceRefreshWeatherSettings() } + val entries: MutableList = ArrayList() + val values: MutableList = ArrayList() + val drawables: MutableList = ArrayList() + getAvailableWeatherIconPacks(entries, values, drawables) + val entriesChar: Array = entries.filterNotNull().toTypedArray() + val valuesChar: Array = values.filterNotNull().toTypedArray() + val currentIconPack = if (TextUtils.isEmpty(WeatherConfig.getIconPack(requireContext()))) { + valuesChar[0].toString() + } else { + WeatherConfig.getIconPack(requireContext()) + } + val mAdapter = IconsAdapter( + entriesChar, + valuesChar, + currentIconPack!!, + WEATHER_ICONS_ADAPTER, + object : IconsAdapter.OnItemClickListener { + override fun onItemClick(view: View, position: Int) { + val value = values[position] + putString(WEATHER_ICON_PACK, value!!) + binding.weatherIconPack.setSummary(entries[position]!!) + forceRefreshWeatherSettings() + } + } + ) + mAdapter.setDrawables(drawables.filterNotNull().toTypedArray()) + val summary = if (!TextUtils.isEmpty(currentIconPack) && values.contains(currentIconPack)) { + entries[values.indexOf(currentIconPack)] + } else { + entries[0] + } + binding.weatherIconPack.setSummary(summary!!) + binding.weatherIconPack.setLayoutManager(LinearLayoutManager(requireContext())) + binding.weatherIconPack.setAdapter(mAdapter) + } override fun weatherError(errorReason: Int) { From e39a0e2b427a660653286561a4b049933ed0bdb9 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Sun, 25 Aug 2024 14:12:26 +0200 Subject: [PATCH 200/369] Handle bluetooth settings for A<=A13 --- .../modules/utils/ActivityLauncherUtils.kt | 43 ++++--------------- .../modules/views/LockscreenWidgetsView.kt | 23 +++++++--- 2 files changed, 25 insertions(+), 41 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/ActivityLauncherUtils.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/ActivityLauncherUtils.kt index 872a554d2..1df1d8393 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/ActivityLauncherUtils.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/ActivityLauncherUtils.kt @@ -18,15 +18,6 @@ import de.robv.android.xposed.XposedHelpers.callMethod class ActivityLauncherUtils(private val mContext: Context, private val mActivityStarter: Any?) { private val mPackageManager: PackageManager = mContext.packageManager - val installedMusicApp: String - get() { - val intent = Intent(Intent.ACTION_MAIN) - intent.addCategory(Intent.CATEGORY_APP_MUSIC) - val musicApps = mPackageManager.queryIntentActivities(intent, 0) - val musicApp = if (musicApps.isEmpty()) null else musicApps[0] - return if (musicApp != null) musicApp.activityInfo.packageName else "" - } - private fun launchAppIfAvailable(launchIntent: Intent?, @StringRes appTypeResId: Int) { val apps = mPackageManager.queryIntentActivities(launchIntent!!, PackageManager.MATCH_DEFAULT_ONLY) @@ -54,15 +45,6 @@ class ActivityLauncherUtils(private val mContext: Context, private val mActivity } fun launchCalculator() { - // If the calculator tile is available - // we can use it to open the calculator - val calculatorTile: Any? = ControllersProvider.mCalculatorTile - if (calculatorTile != null) { - callMethod(calculatorTile, "openCalculator") - return - } - - // Otherwise we try to launch the calculator app val launchIntent = Intent(Intent.ACTION_MAIN) launchIntent.addCategory(Intent.CATEGORY_APP_CALCULATOR) launchIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP + Intent.FLAG_ACTIVITY_SINGLE_TOP) @@ -78,25 +60,21 @@ class ActivityLauncherUtils(private val mContext: Context, private val mActivity fun launchSettingsComponent(className: String) { if (mActivityStarter == null) return - val intent = - if (className == PERSONALIZATIONS_ACTIVITY) Intent(Intent.ACTION_MAIN) else Intent() + val intent = Intent() intent.setComponent(ComponentName("com.android.settings", className)) callMethod(mActivityStarter, "startActivity", intent, true) } - fun launchAudioSettings() { - val launchIntent = Intent(Settings.ACTION_SOUND_SETTINGS) + fun launchBluetoothSettings() { + val launchIntent = Intent(Settings.ACTION_BLUETOOTH_SETTINGS) + launchIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP + Intent.FLAG_ACTIVITY_SINGLE_TOP) launchAppIfAvailable(launchIntent, 0) } - fun startSettingsActivity() { - if (mActivityStarter == null) return - callMethod( - mActivityStarter, - "startActivity", - Intent(Settings.ACTION_SETTINGS), - true - ) + fun launchAudioSettings() { + val launchIntent = Intent(Settings.ACTION_SOUND_SETTINGS) + launchIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP + Intent.FLAG_ACTIVITY_SINGLE_TOP) + launchAppIfAvailable(launchIntent, 0) } fun launchInternetSettings() { @@ -109,9 +87,4 @@ class ActivityLauncherUtils(private val mContext: Context, private val mActivity Toast.makeText(mContext, modRes.getString(appTypeResId) + " not found", Toast.LENGTH_SHORT) .show() } - - companion object { - private const val PERSONALIZATIONS_ACTIVITY = - "com.android.settings.Settings\$personalizationSettingsLayoutActivity" - } } diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/views/LockscreenWidgetsView.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/views/LockscreenWidgetsView.kt index e026ee36e..bfdaa0168 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/views/LockscreenWidgetsView.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/views/LockscreenWidgetsView.kt @@ -477,7 +477,7 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : } } - fun disableWeatherUpdates() { + private fun disableWeatherUpdates() { if (mWeatherClient != null) { weatherButton = null weatherButtonFab = null @@ -1398,11 +1398,18 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : ControllersProvider.getInstance().registerDozingCallback(mDozeCallback) // Add a Screen On Receiver so we can update the widgets state when the screen is turned on - mContext.registerReceiver( - mScreenOnReceiver, - IntentFilter(Intent.ACTION_SCREEN_ON), - Context.RECEIVER_EXPORTED - ) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + mContext.registerReceiver( + mScreenOnReceiver, + IntentFilter(Intent.ACTION_SCREEN_ON), + Context.RECEIVER_EXPORTED + ) + } else { + mContext.registerReceiver( + mScreenOnReceiver, + IntentFilter(Intent.ACTION_SCREEN_ON) + ) + } } private fun updateWiFiButtonState(enabled: Boolean) { @@ -1493,6 +1500,10 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : } private fun showBluetoothDialog(view: View) { + if (Build.VERSION.SDK_INT < 34) { + mActivityLauncherUtils.launchBluetoothSettings() + return + } val finalView: View = if (view is ExtendedFAB) { view.parent as View } else { From ee0ea8c5b9135081b85942a1ccfeb4c7999bcf2d Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Sun, 25 Aug 2024 14:13:33 +0200 Subject: [PATCH 201/369] Added bottom padding for device widget --- .../iconify/xposed/modules/views/LockscreenWidgetsView.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/views/LockscreenWidgetsView.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/views/LockscreenWidgetsView.kt index bfdaa0168..81a545a31 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/views/LockscreenWidgetsView.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/views/LockscreenWidgetsView.kt @@ -50,6 +50,7 @@ import com.drdisagree.iconify.xposed.modules.LockscreenWidgets.Companion.Launcha import com.drdisagree.iconify.xposed.modules.LockscreenWidgets.Companion.LaunchableLinearLayout import com.drdisagree.iconify.xposed.modules.utils.ActivityLauncherUtils import com.drdisagree.iconify.xposed.modules.utils.ExtendedFAB +import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.toPx import de.robv.android.xposed.XposedBridge.log import de.robv.android.xposed.XposedHelpers.callMethod import de.robv.android.xposed.XposedHelpers.getBooleanField @@ -242,8 +243,7 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : mDeviceWidgetView = DeviceWidgetView(context) deviceWidget.addView(mDeviceWidgetView) - - log("LockscreenWidgets createDeviceWidgetContainer done") + deviceWidget.setPadding(0, 0, 0, mContext.toPx(18)) return deviceWidget } From 6b3e4b28fdaf51316361159608c7bdabff3be9f5 Mon Sep 17 00:00:00 2001 From: DHD2280 Date: Sun, 25 Aug 2024 14:21:14 +0200 Subject: [PATCH 202/369] LockscreenWidgetsView: change camera icon --- .../iconify/xposed/modules/views/LockscreenWidgetsView.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/views/LockscreenWidgetsView.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/views/LockscreenWidgetsView.kt index 81a545a31..6d369d05c 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/views/LockscreenWidgetsView.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/views/LockscreenWidgetsView.kt @@ -1808,7 +1808,7 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : const val HOME_CONTROLS: String = "controls_icon" const val CALCULATOR_ICON: String = "status_bar_qs_calculator_inactive" const val CAMERA_ICON: String = - "ic_device_camera" // Use qs camera access icon for camera + "ic_camera" // Use qs camera access icon for camera const val WALLET_ICON: String = "ic_wallet_lockscreen" const val HOTSPOT_ACTIVE: String = "qs_hotspot_icon_on" const val HOTSPOT_INACTIVE: String = "qs_hotspot_icon_off" From 4cb54a5d5f94b2d9b7e4748f559dd341be721eaf Mon Sep 17 00:00:00 2001 From: DrDisagree Date: Tue, 27 Aug 2024 21:22:29 +0600 Subject: [PATCH 203/369] Covert xposed menu to preference fragment (#584) * Initial commit of migration to preference fragment * Rename .java to .kt * 2nd commit of migration to preference fragment * Rename .java to .kt * Refactor prefs * Add some searchable items * Make full settings functional * Misc fixed and improvements * More improvements and fixes * Add keys and fragments in xml * Increase padding of search results * Show xposed hook info * Misc changes to menus * Fix collapsing toolbar expanded state when returning back to this fragment Improve fragment transactions * Fix search option in home page * Fix collapsing toolbar overlapping recyclerview when going back * Refactor * Reduce paddings * Misc fixes * Rename .java to .kt * Revert Kotlin conversion * Revert "Rename .java to .kt" This reverts commit 89820d11fb59609297c07907cad7ebe03216665b. * Revert "Revert Kotlin conversion" This reverts commit 34917064387e8b21f77f36b4d29b50311ac986e6. * Open lsposed on hook check click * Rename .java to .kt * Show an icon if option requires systemui restart * Fix margin and padding * Remove useless pref value checking * Rename .java to .kt * Update some preference classes * Add transparency & blur in preference fragment [1/2] * Preference improvements * Add transparency & blur in preference fragment [2/2] * Show a floating action button when actions required * Fix fragment replacement compatibility with search option * Removed xposed option from settings * More preference fragments * More preference fragments * Fix slider preference title color * More preference fragment compat * Enable font picker for lockscreen clock * Add header clock preference fragment * Fix "Can not perform this action after onSaveInstanceState" * Add custom QS margin switch * Add xposed themes preference fragment * Fix hook check * Refactor * Fix "Preference type mismatch" * Convert header image to preference fragment * Convert depth wallpaper to preference fragment * Disable recycler preference scrolling if not enabled * Convert Lockscreen Weather to preference fragment * Fix weather preference keys * Add lockscreen weather as searchable fragment * Extract searchable fragments list * Extract searchable fragments list * Add more locales and refactor * Ignore lint complaining about non translated strings * Add 24 hours format for lockscreen clock 5 * Make cellular and wifi icons show list even if overlays not available * Add more wifi cellular icons * Rename forlorn to lorn * Remove unused fragments and refactor codes * Improve navigation bar auto selection * Remove home and tweaks from search if xposed only mode * Fix signal icon applying method * Fix fragment backstack issue * Fix fragment backstack issue * Refactor classes * Fix xml * Handle basic colors and monet engine in backstack * Convert lockscreen widgets to preference fragment * Fix experimental enabler * Set initial timestamp to 0 * Require systemui restart for enabling lockscreen widget * Fix weather settings * Show import export in fragments too * Convert weather settings to pref fragment * Place Widgets on intent only if enabled * Get ActivityStarter from different class in A13 * Get Bluetooth Tile for launch bluetooth dialog * Convert battery styles to pref fragment * Add mod name for xprefs updatePrefs crash * Fix updatePrefs preference cast exception * Fix restart systemui floating button * Rename .java to .kt * Add more advanced statusbar clock chip customizer * Fix clock chip horizontal padding * Make searchable fragment list distinct * Extract string resource * Enable alpha for clock chip colors * Remove status icons chip for android 14 and later --------- Co-authored-by: DHD2280 --- app/build.gradle.kts | 9 +- app/proguard-rules.pro | 6 +- .../android/SGIC1/res/values/strings.xml | 24 - .../android/SGIC10/res/values/strings.xml | 24 - .../android/SGIC11/res/values/strings.xml | 24 - .../android/SGIC12/res/values/strings.xml | 24 - .../android/SGIC13/res/values/strings.xml | 24 - .../android/SGIC14/res/values/strings.xml | 24 - .../android/SGIC15/res/values/strings.xml | 24 - .../android/SGIC16/res/values/strings.xml | 24 - .../android/SGIC17/res/values/strings.xml | 24 - .../android/SGIC18/res/values/strings.xml | 24 - .../android/SGIC19/res/values/strings.xml | 24 - .../android/SGIC2/res/values/strings.xml | 24 - .../android/SGIC20/res/values/strings.xml | 24 - .../android/SGIC21/res/values/strings.xml | 24 - .../android/SGIC22/res/values/strings.xml | 24 - .../android/SGIC23/res/values/strings.xml | 24 - .../android/SGIC24/res/values/strings.xml | 24 - .../android/SGIC25/res/values/strings.xml | 24 - .../android/SGIC26/res/values/strings.xml | 24 - .../android/SGIC27/res/values/strings.xml | 24 - .../android/SGIC28/res/values/strings.xml | 24 - .../android/SGIC29/res/values/strings.xml | 24 - .../android/SGIC3/res/values/strings.xml | 24 - .../android/SGIC30/res/values/strings.xml | 24 - .../android/SGIC31/res/values/strings.xml | 24 - .../android/SGIC32/res/values/strings.xml | 24 - .../android/SGIC33/res/values/strings.xml | 24 - .../android/SGIC34/res/values/strings.xml | 24 - .../android/SGIC35/res/values/strings.xml | 24 - .../android/SGIC36/res/values/strings.xml | 24 - .../android/SGIC4/res/values/strings.xml | 24 - .../android/SGIC5/res/values/strings.xml | 24 - .../android/SGIC6/res/values/strings.xml | 24 - .../android/SGIC7/res/values/strings.xml | 24 - .../android/SGIC8/res/values/strings.xml | 24 - .../android/SGIC9/res/values/strings.xml | 24 - .../ic_signal_wifi_transient_animation.xml | 14 + ...gnal_wifi_transient_animation_drawable.xml | 14 + .../WIFI1/res/drawable/ic_wifi_4_signal_0.xml | 14 + .../WIFI1/res/drawable/ic_wifi_4_signal_1.xml | 22 + .../WIFI1/res/drawable/ic_wifi_4_signal_2.xml | 30 + .../WIFI1/res/drawable/ic_wifi_4_signal_3.xml | 38 + .../WIFI1/res/drawable/ic_wifi_4_signal_4.xml | 38 + .../WIFI1/res/drawable/ic_wifi_5_signal_0.xml | 14 + .../WIFI1/res/drawable/ic_wifi_5_signal_1.xml | 22 + .../WIFI1/res/drawable/ic_wifi_5_signal_2.xml | 30 + .../WIFI1/res/drawable/ic_wifi_5_signal_3.xml | 38 + .../WIFI1/res/drawable/ic_wifi_5_signal_4.xml | 38 + .../WIFI1/res/drawable/ic_wifi_6_signal_0.xml | 14 + .../WIFI1/res/drawable/ic_wifi_6_signal_1.xml | 22 + .../WIFI1/res/drawable/ic_wifi_6_signal_2.xml | 30 + .../WIFI1/res/drawable/ic_wifi_6_signal_3.xml | 38 + .../WIFI1/res/drawable/ic_wifi_6_signal_4.xml | 38 + .../android/WIFI1/res/values/strings.xml | 24 - .../ic_signal_wifi_transient_animation.xml | 5 + ...gnal_wifi_transient_animation_drawable.xml | 5 + .../res/drawable/ic_wifi_4_signal_0.xml | 5 + .../res/drawable/ic_wifi_4_signal_1.xml | 6 + .../res/drawable/ic_wifi_4_signal_2.xml | 6 + .../res/drawable/ic_wifi_4_signal_3.xml | 5 + .../res/drawable/ic_wifi_4_signal_4.xml | 5 + .../res/drawable/ic_wifi_5_signal_0.xml | 5 + .../res/drawable/ic_wifi_5_signal_1.xml | 6 + .../res/drawable/ic_wifi_5_signal_2.xml | 6 + .../res/drawable/ic_wifi_5_signal_3.xml | 5 + .../res/drawable/ic_wifi_5_signal_4.xml | 5 + .../res/drawable/ic_wifi_6_signal_0.xml | 5 + .../res/drawable/ic_wifi_6_signal_1.xml | 6 + .../res/drawable/ic_wifi_6_signal_2.xml | 6 + .../res/drawable/ic_wifi_6_signal_3.xml | 5 + .../res/drawable/ic_wifi_6_signal_4.xml | 5 + .../android/WIFI10/res/values/strings.xml | 24 - .../ic_signal_wifi_transient_animation.xml | 8 + ...gnal_wifi_transient_animation_drawable.xml | 8 + .../res/drawable/ic_wifi_4_signal_0.xml | 8 + .../res/drawable/ic_wifi_4_signal_1.xml | 8 + .../res/drawable/ic_wifi_4_signal_2.xml | 8 + .../res/drawable/ic_wifi_4_signal_3.xml | 8 + .../res/drawable/ic_wifi_4_signal_4.xml | 8 + .../res/drawable/ic_wifi_5_signal_0.xml | 8 + .../res/drawable/ic_wifi_5_signal_1.xml | 8 + .../res/drawable/ic_wifi_5_signal_2.xml | 8 + .../res/drawable/ic_wifi_5_signal_3.xml | 8 + .../res/drawable/ic_wifi_5_signal_4.xml | 8 + .../res/drawable/ic_wifi_6_signal_0.xml | 8 + .../res/drawable/ic_wifi_6_signal_1.xml | 8 + .../res/drawable/ic_wifi_6_signal_2.xml | 8 + .../res/drawable/ic_wifi_6_signal_3.xml | 8 + .../res/drawable/ic_wifi_6_signal_4.xml | 8 + .../android/WIFI11/res/values/strings.xml | 24 - .../ic_signal_wifi_transient_animation.xml | 5 + ...gnal_wifi_transient_animation_drawable.xml | 5 + .../res/drawable/ic_wifi_4_signal_0.xml | 5 + .../res/drawable/ic_wifi_4_signal_1.xml | 6 + .../res/drawable/ic_wifi_4_signal_2.xml | 6 + .../res/drawable/ic_wifi_4_signal_3.xml | 6 + .../res/drawable/ic_wifi_4_signal_4.xml | 6 + .../res/drawable/ic_wifi_5_signal_0.xml | 5 + .../res/drawable/ic_wifi_5_signal_1.xml | 6 + .../res/drawable/ic_wifi_5_signal_2.xml | 6 + .../res/drawable/ic_wifi_5_signal_3.xml | 6 + .../res/drawable/ic_wifi_5_signal_4.xml | 6 + .../res/drawable/ic_wifi_6_signal_0.xml | 5 + .../res/drawable/ic_wifi_6_signal_1.xml | 6 + .../res/drawable/ic_wifi_6_signal_2.xml | 6 + .../res/drawable/ic_wifi_6_signal_3.xml | 6 + .../res/drawable/ic_wifi_6_signal_4.xml | 6 + .../android/WIFI12/res/values/strings.xml | 24 - .../ic_signal_wifi_transient_animation.xml | 5 + ...gnal_wifi_transient_animation_drawable.xml | 5 + .../res/drawable/ic_wifi_4_signal_0.xml | 5 + .../res/drawable/ic_wifi_4_signal_1.xml | 6 + .../res/drawable/ic_wifi_4_signal_2.xml | 7 + .../res/drawable/ic_wifi_4_signal_3.xml | 7 + .../res/drawable/ic_wifi_4_signal_4.xml | 5 + .../res/drawable/ic_wifi_5_signal_0.xml | 5 + .../res/drawable/ic_wifi_5_signal_1.xml | 6 + .../res/drawable/ic_wifi_5_signal_2.xml | 7 + .../res/drawable/ic_wifi_5_signal_3.xml | 7 + .../res/drawable/ic_wifi_5_signal_4.xml | 5 + .../res/drawable/ic_wifi_6_signal_0.xml | 5 + .../res/drawable/ic_wifi_6_signal_1.xml | 6 + .../res/drawable/ic_wifi_6_signal_2.xml | 7 + .../res/drawable/ic_wifi_6_signal_3.xml | 7 + .../res/drawable/ic_wifi_6_signal_4.xml | 5 + .../android/WIFI13/res/values/strings.xml | 24 - .../ic_signal_wifi_transient_animation.xml | 101 +++ ...gnal_wifi_transient_animation_drawable.xml | 101 +++ .../res/drawable/ic_wifi_4_signal_0.xml | 101 +++ .../res/drawable/ic_wifi_4_signal_1.xml | 66 ++ .../res/drawable/ic_wifi_4_signal_2.xml | 63 ++ .../res/drawable/ic_wifi_4_signal_3.xml | 86 ++ .../res/drawable/ic_wifi_4_signal_4.xml | 93 +++ .../res/drawable/ic_wifi_5_signal_0.xml | 101 +++ .../res/drawable/ic_wifi_5_signal_1.xml | 66 ++ .../res/drawable/ic_wifi_5_signal_2.xml | 63 ++ .../res/drawable/ic_wifi_5_signal_3.xml | 86 ++ .../res/drawable/ic_wifi_5_signal_4.xml | 93 +++ .../res/drawable/ic_wifi_6_signal_0.xml | 101 +++ .../res/drawable/ic_wifi_6_signal_1.xml | 66 ++ .../res/drawable/ic_wifi_6_signal_2.xml | 63 ++ .../res/drawable/ic_wifi_6_signal_3.xml | 86 ++ .../res/drawable/ic_wifi_6_signal_4.xml | 93 +++ .../android/WIFI14/res/values/strings.xml | 24 - .../ic_signal_wifi_transient_animation.xml | 7 + ...gnal_wifi_transient_animation_drawable.xml | 7 + .../res/drawable/ic_wifi_4_signal_0.xml | 7 + .../res/drawable/ic_wifi_4_signal_1.xml | 7 + .../res/drawable/ic_wifi_4_signal_2.xml | 7 + .../res/drawable/ic_wifi_4_signal_3.xml | 7 + .../res/drawable/ic_wifi_4_signal_4.xml | 7 + .../res/drawable/ic_wifi_5_signal_0.xml | 7 + .../res/drawable/ic_wifi_5_signal_1.xml | 7 + .../res/drawable/ic_wifi_5_signal_2.xml | 7 + .../res/drawable/ic_wifi_5_signal_3.xml | 7 + .../res/drawable/ic_wifi_5_signal_4.xml | 7 + .../res/drawable/ic_wifi_6_signal_0.xml | 7 + .../res/drawable/ic_wifi_6_signal_1.xml | 7 + .../res/drawable/ic_wifi_6_signal_2.xml | 7 + .../res/drawable/ic_wifi_6_signal_3.xml | 7 + .../res/drawable/ic_wifi_6_signal_4.xml | 7 + .../android/WIFI15/res/values/strings.xml | 24 - .../ic_signal_wifi_transient_animation.xml | 6 + ...gnal_wifi_transient_animation_drawable.xml | 6 + .../res/drawable/ic_wifi_4_signal_0.xml | 6 + .../res/drawable/ic_wifi_4_signal_1.xml | 7 + .../res/drawable/ic_wifi_4_signal_2.xml | 7 + .../res/drawable/ic_wifi_4_signal_3.xml | 7 + .../res/drawable/ic_wifi_4_signal_4.xml | 7 + .../res/drawable/ic_wifi_5_signal_0.xml | 6 + .../res/drawable/ic_wifi_5_signal_1.xml | 7 + .../res/drawable/ic_wifi_5_signal_2.xml | 7 + .../res/drawable/ic_wifi_5_signal_3.xml | 7 + .../res/drawable/ic_wifi_5_signal_4.xml | 7 + .../res/drawable/ic_wifi_6_signal_0.xml | 6 + .../res/drawable/ic_wifi_6_signal_1.xml | 7 + .../res/drawable/ic_wifi_6_signal_2.xml | 7 + .../res/drawable/ic_wifi_6_signal_3.xml | 7 + .../res/drawable/ic_wifi_6_signal_4.xml | 7 + .../android/WIFI16/res/values/strings.xml | 24 - .../ic_signal_wifi_transient_animation.xml | 12 + ...gnal_wifi_transient_animation_drawable.xml | 12 + .../WIFI2/res/drawable/ic_wifi_4_signal_0.xml | 12 + .../WIFI2/res/drawable/ic_wifi_4_signal_1.xml | 11 + .../WIFI2/res/drawable/ic_wifi_4_signal_2.xml | 11 + .../WIFI2/res/drawable/ic_wifi_4_signal_3.xml | 11 + .../WIFI2/res/drawable/ic_wifi_4_signal_4.xml | 10 + .../WIFI2/res/drawable/ic_wifi_5_signal_0.xml | 12 + .../WIFI2/res/drawable/ic_wifi_5_signal_1.xml | 11 + .../WIFI2/res/drawable/ic_wifi_5_signal_2.xml | 11 + .../WIFI2/res/drawable/ic_wifi_5_signal_3.xml | 11 + .../WIFI2/res/drawable/ic_wifi_5_signal_4.xml | 10 + .../WIFI2/res/drawable/ic_wifi_6_signal_0.xml | 12 + .../WIFI2/res/drawable/ic_wifi_6_signal_1.xml | 11 + .../WIFI2/res/drawable/ic_wifi_6_signal_2.xml | 11 + .../WIFI2/res/drawable/ic_wifi_6_signal_3.xml | 11 + .../WIFI2/res/drawable/ic_wifi_6_signal_4.xml | 10 + .../android/WIFI2/res/values/strings.xml | 24 - ...gnal_wifi_transient_animation_drawable.xml | 8 + .../WIFI3/res/drawable/ic_wifi_4_signal_0.xml | 8 + .../WIFI3/res/drawable/ic_wifi_4_signal_1.xml | 8 + .../WIFI3/res/drawable/ic_wifi_4_signal_2.xml | 8 + .../WIFI3/res/drawable/ic_wifi_4_signal_3.xml | 8 + .../WIFI3/res/drawable/ic_wifi_4_signal_4.xml | 8 + .../WIFI3/res/drawable/ic_wifi_5_signal_0.xml | 8 + .../WIFI3/res/drawable/ic_wifi_5_signal_1.xml | 8 + .../WIFI3/res/drawable/ic_wifi_5_signal_2.xml | 8 + .../WIFI3/res/drawable/ic_wifi_5_signal_3.xml | 8 + .../WIFI3/res/drawable/ic_wifi_5_signal_4.xml | 8 + .../WIFI3/res/drawable/ic_wifi_6_signal_0.xml | 8 + .../WIFI3/res/drawable/ic_wifi_6_signal_1.xml | 8 + .../WIFI3/res/drawable/ic_wifi_6_signal_2.xml | 8 + .../WIFI3/res/drawable/ic_wifi_6_signal_3.xml | 8 + .../WIFI3/res/drawable/ic_wifi_6_signal_4.xml | 8 + .../android/WIFI3/res/values/strings.xml | 24 - .../WIFI4/res/drawable/ic_wifi_4_signal_0.xml | 38 + .../WIFI4/res/drawable/ic_wifi_4_signal_1.xml | 30 + .../WIFI4/res/drawable/ic_wifi_4_signal_2.xml | 38 + .../WIFI4/res/drawable/ic_wifi_4_signal_3.xml | 46 ++ .../WIFI4/res/drawable/ic_wifi_4_signal_4.xml | 46 ++ .../WIFI4/res/drawable/ic_wifi_5_signal_0.xml | 38 + .../WIFI4/res/drawable/ic_wifi_5_signal_1.xml | 30 + .../WIFI4/res/drawable/ic_wifi_5_signal_2.xml | 38 + .../WIFI4/res/drawable/ic_wifi_5_signal_3.xml | 46 ++ .../WIFI4/res/drawable/ic_wifi_5_signal_4.xml | 46 ++ .../WIFI4/res/drawable/ic_wifi_6_signal_0.xml | 38 + .../WIFI4/res/drawable/ic_wifi_6_signal_1.xml | 30 + .../WIFI4/res/drawable/ic_wifi_6_signal_2.xml | 38 + .../WIFI4/res/drawable/ic_wifi_6_signal_3.xml | 46 ++ .../WIFI4/res/drawable/ic_wifi_6_signal_4.xml | 46 ++ .../android/WIFI4/res/values/strings.xml | 24 - .../WIFI5/res/drawable/ic_wifi_4_signal_0.xml | 30 + .../WIFI5/res/drawable/ic_wifi_4_signal_1.xml | 22 + .../WIFI5/res/drawable/ic_wifi_4_signal_2.xml | 22 + .../WIFI5/res/drawable/ic_wifi_4_signal_3.xml | 22 + .../WIFI5/res/drawable/ic_wifi_4_signal_4.xml | 22 + .../WIFI5/res/drawable/ic_wifi_5_signal_0.xml | 30 + .../WIFI5/res/drawable/ic_wifi_5_signal_1.xml | 22 + .../WIFI5/res/drawable/ic_wifi_5_signal_2.xml | 22 + .../WIFI5/res/drawable/ic_wifi_5_signal_3.xml | 22 + .../WIFI5/res/drawable/ic_wifi_5_signal_4.xml | 22 + .../WIFI5/res/drawable/ic_wifi_6_signal_0.xml | 30 + .../WIFI5/res/drawable/ic_wifi_6_signal_1.xml | 22 + .../WIFI5/res/drawable/ic_wifi_6_signal_2.xml | 22 + .../WIFI5/res/drawable/ic_wifi_6_signal_3.xml | 22 + .../WIFI5/res/drawable/ic_wifi_6_signal_4.xml | 22 + .../android/WIFI5/res/values/strings.xml | 24 - .../WIFI6/res/drawable/ic_wifi_4_signal_0.xml | 139 ++++ .../WIFI6/res/drawable/ic_wifi_4_signal_1.xml | 139 ++++ .../WIFI6/res/drawable/ic_wifi_4_signal_2.xml | 139 ++++ .../WIFI6/res/drawable/ic_wifi_4_signal_3.xml | 139 ++++ .../WIFI6/res/drawable/ic_wifi_4_signal_4.xml | 139 ++++ .../WIFI6/res/drawable/ic_wifi_5_signal_0.xml | 139 ++++ .../WIFI6/res/drawable/ic_wifi_5_signal_1.xml | 139 ++++ .../WIFI6/res/drawable/ic_wifi_5_signal_2.xml | 139 ++++ .../WIFI6/res/drawable/ic_wifi_5_signal_3.xml | 139 ++++ .../WIFI6/res/drawable/ic_wifi_5_signal_4.xml | 139 ++++ .../WIFI6/res/drawable/ic_wifi_6_signal_0.xml | 139 ++++ .../WIFI6/res/drawable/ic_wifi_6_signal_1.xml | 139 ++++ .../WIFI6/res/drawable/ic_wifi_6_signal_2.xml | 139 ++++ .../WIFI6/res/drawable/ic_wifi_6_signal_3.xml | 139 ++++ .../WIFI6/res/drawable/ic_wifi_6_signal_4.xml | 139 ++++ .../android/WIFI6/res/values/strings.xml | 24 - .../ic_signal_wifi_transient_animation.xml | 8 + ...gnal_wifi_transient_animation_drawable.xml | 8 + .../WIFI7/res/drawable/ic_wifi_4_signal_0.xml | 8 + .../WIFI7/res/drawable/ic_wifi_4_signal_1.xml | 9 + .../WIFI7/res/drawable/ic_wifi_4_signal_2.xml | 9 + .../WIFI7/res/drawable/ic_wifi_4_signal_3.xml | 9 + .../WIFI7/res/drawable/ic_wifi_4_signal_4.xml | 9 + .../WIFI7/res/drawable/ic_wifi_5_signal_0.xml | 8 + .../WIFI7/res/drawable/ic_wifi_5_signal_1.xml | 9 + .../WIFI7/res/drawable/ic_wifi_5_signal_2.xml | 9 + .../WIFI7/res/drawable/ic_wifi_5_signal_3.xml | 9 + .../WIFI7/res/drawable/ic_wifi_5_signal_4.xml | 9 + .../WIFI7/res/drawable/ic_wifi_6_signal_0.xml | 8 + .../WIFI7/res/drawable/ic_wifi_6_signal_1.xml | 9 + .../WIFI7/res/drawable/ic_wifi_6_signal_2.xml | 9 + .../WIFI7/res/drawable/ic_wifi_6_signal_3.xml | 9 + .../WIFI7/res/drawable/ic_wifi_6_signal_4.xml | 9 + .../android/WIFI7/res/values/strings.xml | 24 - .../ic_signal_wifi_transient_animation.xml | 6 + ...gnal_wifi_transient_animation_drawable.xml | 6 + .../WIFI8/res/drawable/ic_wifi_4_signal_0.xml | 6 + .../WIFI8/res/drawable/ic_wifi_4_signal_1.xml | 6 + .../WIFI8/res/drawable/ic_wifi_4_signal_2.xml | 6 + .../WIFI8/res/drawable/ic_wifi_4_signal_3.xml | 6 + .../WIFI8/res/drawable/ic_wifi_4_signal_4.xml | 6 + .../WIFI8/res/drawable/ic_wifi_5_signal_0.xml | 6 + .../WIFI8/res/drawable/ic_wifi_5_signal_1.xml | 6 + .../WIFI8/res/drawable/ic_wifi_5_signal_2.xml | 6 + .../WIFI8/res/drawable/ic_wifi_5_signal_3.xml | 6 + .../WIFI8/res/drawable/ic_wifi_5_signal_4.xml | 6 + .../WIFI8/res/drawable/ic_wifi_6_signal_0.xml | 6 + .../WIFI8/res/drawable/ic_wifi_6_signal_1.xml | 6 + .../WIFI8/res/drawable/ic_wifi_6_signal_2.xml | 6 + .../WIFI8/res/drawable/ic_wifi_6_signal_3.xml | 6 + .../WIFI8/res/drawable/ic_wifi_6_signal_4.xml | 6 + .../android/WIFI8/res/values/strings.xml | 24 - .../WIFI9/res/drawable/ic_wifi_4_signal_0.xml | 22 + .../WIFI9/res/drawable/ic_wifi_4_signal_1.xml | 22 + .../WIFI9/res/drawable/ic_wifi_4_signal_2.xml | 22 + .../WIFI9/res/drawable/ic_wifi_4_signal_3.xml | 22 + .../WIFI9/res/drawable/ic_wifi_4_signal_4.xml | 22 + .../WIFI9/res/drawable/ic_wifi_5_signal_0.xml | 22 + .../WIFI9/res/drawable/ic_wifi_5_signal_1.xml | 22 + .../WIFI9/res/drawable/ic_wifi_5_signal_2.xml | 22 + .../WIFI9/res/drawable/ic_wifi_5_signal_3.xml | 22 + .../WIFI9/res/drawable/ic_wifi_5_signal_4.xml | 22 + .../WIFI9/res/drawable/ic_wifi_6_signal_0.xml | 22 + .../WIFI9/res/drawable/ic_wifi_6_signal_1.xml | 22 + .../WIFI9/res/drawable/ic_wifi_6_signal_2.xml | 22 + .../WIFI9/res/drawable/ic_wifi_6_signal_3.xml | 22 + .../WIFI9/res/drawable/ic_wifi_6_signal_4.xml | 22 + .../android/WIFI9/res/values/strings.xml | 24 - .../com/drdisagree/iconify/SplashActivity.kt | 8 +- .../com/drdisagree/iconify/common/Const.kt | 3 + .../com/drdisagree/iconify/common/Dynamic.kt | 7 +- .../drdisagree/iconify/common/Preferences.kt | 71 +- .../drdisagree/iconify/common/Resources.kt | 131 +++- .../com/drdisagree/iconify/config/Prefs.kt | 76 -- .../drdisagree/iconify/config/PrefsHelper.kt | 562 +++++++++++++ .../com/drdisagree/iconify/config/RPrefs.kt | 116 ++- .../com/drdisagree/iconify/config/XPrefs.kt | 40 - .../iconify/services/TileMonetEngine.kt | 4 +- .../iconify/services/TileNotchBarKiller.kt | 4 +- .../iconify/services/TilePitchBlack.kt | 2 +- .../iconify/services/UpdateScheduler.kt | 4 +- .../iconify/services/UpdateWorker.kt | 6 +- .../iconify/ui/activities/MainActivity.kt | 614 ++++++++++++--- .../ui/adapters/BrightnessBarAdapter.kt | 2 +- .../ui/adapters/ClockPreviewAdapter.kt | 19 +- .../iconify/ui/adapters/IconPackAdapter.kt | 60 +- .../iconify/ui/adapters/IconShapeAdapter.kt | 6 +- .../ui/adapters/ListPreferenceAdapter.kt | 172 ++++ .../iconify/ui/adapters/MenuAdapter.kt | 6 +- .../ui/adapters/NotificationAdapter.kt | 2 +- .../iconify/ui/adapters/ProgressBarAdapter.kt | 18 +- .../iconify/ui/adapters/QsShapeAdapter.kt | 2 +- .../iconify/ui/adapters/SwitchAdapter.kt | 14 +- .../iconify/ui/adapters/ToastAdapter.kt | 6 +- .../iconify/ui/base/BaseFragment.kt | 133 +++- .../ControlledPreferenceFragmentCompat.kt | 256 ++++++ .../ui/base/WeatherPreferenceFragment.kt | 398 ++++++++++ .../drdisagree/iconify/ui/fragments/Home.kt | 354 --------- .../iconify/ui/fragments/Settings.kt | 517 ------------ .../iconify/ui/fragments/SignalIcons.kt | 135 ---- .../drdisagree/iconify/ui/fragments/Tweaks.kt | 185 ----- .../iconify/ui/fragments/WeatherSettings.kt | 423 ---------- .../iconify/ui/fragments/WiFiIcons.kt | 135 ---- .../ui/fragments/XposedBackgroundChip.kt | 245 ------ .../ui/fragments/XposedBatteryStyle.kt | 514 ------------ .../ui/fragments/XposedDepthWallpaper.kt | 362 --------- .../iconify/ui/fragments/XposedHeaderClock.kt | 410 ---------- .../iconify/ui/fragments/XposedHeaderImage.kt | 158 ---- .../ui/fragments/XposedLockscreenClock.kt | 456 ----------- .../ui/fragments/XposedLockscreenWeather.kt | 635 --------------- .../ui/fragments/XposedLockscreenWidgets.kt | 401 ---------- .../iconify/ui/fragments/XposedMenu.kt | 563 -------------- .../iconify/ui/fragments/XposedOthers.kt | 135 ---- .../ui/fragments/XposedQuickSettings.kt | 201 ----- .../iconify/ui/fragments/XposedStatusbar.kt | 112 --- .../iconify/ui/fragments/XposedThemes.kt | 178 ----- .../ui/fragments/XposedTransparencyBlur.kt | 187 ----- .../iconify/ui/fragments/XposedVolumePanel.kt | 67 -- .../ui/fragments/{ => home}/BrightnessBar.kt | 4 +- .../{ => home}/BrightnessBarPixel.kt | 2 +- .../ui/fragments/home/CellularIcons.kt | 123 +++ .../iconify/ui/fragments/home/Home.kt | 112 +++ .../ui/fragments/{ => home}/IconPack.kt | 53 +- .../ui/fragments/{ => home}/IconShape.kt | 15 +- .../ui/fragments/{ => home}/MediaIcons.kt | 4 +- .../ui/fragments/{ => home}/Notification.kt | 16 +- .../fragments/{ => home}/NotificationPixel.kt | 2 +- .../ui/fragments/{ => home}/ProgressBar.kt | 2 +- .../ui/fragments/{ => home}/QsPanelTile.kt | 4 +- .../fragments/{ => home}/QsPanelTilePixel.kt | 2 +- .../ui/fragments/{ => home}/SettingsIcons.kt | 36 +- .../iconify/ui/fragments/{ => home}/Switch.kt | 2 +- .../ui/fragments/{ => home}/ToastFrame.kt | 10 +- .../iconify/ui/fragments/home/WiFiIcons.kt | 119 +++ .../ui/fragments/{ => settings}/AppUpdates.kt | 10 +- .../ui/fragments/{ => settings}/Changelog.kt | 2 +- .../ui/fragments/{ => settings}/Credits.kt | 2 +- .../fragments/{ => settings}/Experimental.kt | 2 +- .../iconify/ui/fragments/settings/Settings.kt | 191 +++++ .../ui/fragments/{ => tweaks}/BasicColors.kt | 12 +- .../ui/fragments/{ => tweaks}/ColorEngine.kt | 19 +- .../fragments/{ => tweaks}/ColoredBattery.kt | 28 +- .../ui/fragments/{ => tweaks}/MediaPlayer.kt | 14 +- .../fragments/{ => tweaks}/Miscellaneous.kt | 15 +- .../ui/fragments/{ => tweaks}/MonetEngine.kt | 27 +- .../fragments/{ => tweaks}/NavigationBar.kt | 10 +- .../ui/fragments/{ => tweaks}/QsIconLabel.kt | 17 +- .../fragments/{ => tweaks}/QsPanelMargin.kt | 8 +- .../ui/fragments/{ => tweaks}/QsRowColumn.kt | 40 +- .../ui/fragments/{ => tweaks}/QsTileSize.kt | 30 +- .../ui/fragments/{ => tweaks}/Statusbar.kt | 30 +- .../iconify/ui/fragments/tweaks/Tweaks.kt | 19 + .../ui/fragments/{ => tweaks}/UiRoundness.kt | 7 +- .../ui/fragments/{ => tweaks}/VolumePanel.kt | 22 +- .../ui/fragments/xposed/BackgroundChip.kt | 39 + .../ui/fragments/xposed/BatteryStyle.kt | 61 ++ .../iconify/ui/fragments/xposed/ClockChip.kt | 426 ++++++++++ .../ui/fragments/xposed/DepthWallpaper.kt | 145 ++++ .../ui/fragments/xposed/HeaderClock.kt | 136 ++++ .../ui/fragments/xposed/HeaderImage.kt | 69 ++ .../ui/fragments/xposed/LockscreenClock.kt | 145 ++++ .../ui/fragments/xposed/LockscreenWeather.kt | 58 ++ .../ui/fragments/xposed/LockscreenWidget.kt | 140 ++++ .../iconify/ui/fragments/xposed/Others.kt | 49 ++ .../ui/fragments/xposed/QuickSettings.kt | 61 ++ .../ui/fragments/xposed/StatusIconsChip.kt | 382 +++++++++ .../iconify/ui/fragments/xposed/Statusbar.kt | 35 + .../iconify/ui/fragments/xposed/Themes.kt | 45 ++ .../ui/fragments/xposed/TransparencyBlur.kt | 90 +++ .../ui/fragments/xposed/VolumePanel.kt | 36 + .../ui/fragments/xposed/WeatherSettings.kt | 52 ++ .../iconify/ui/fragments/xposed/Xposed.kt | 60 ++ .../drdisagree/iconify/ui/models/MenuModel.kt | 4 +- .../iconify/ui/models/SearchPreferenceItem.kt | 11 + .../preferences/BottomSheetListPreference.kt | 199 +++++ .../ui/preferences/ColorPreference.java | 225 ++++++ .../ui/preferences/EasterPreference.kt | 68 ++ .../ui/preferences/EditTextPreference.kt | 38 + .../ui/preferences/FilePickerPreference.kt | 76 ++ .../ui/preferences/FooterPreference.java | 296 +++++++ .../ui/preferences/HomeCardPreference.kt | 29 + .../ui/preferences/HookCheckPreference.kt | 175 +++++ .../iconify/ui/preferences/LinkTextView.java | 35 + .../iconify/ui/preferences/ListPreference.kt | 38 + .../ui/preferences/PreferenceCategory.kt | 38 + .../iconify/ui/preferences/PreferenceMenu.kt | 53 ++ .../preferences/RebootReminderPreference.kt | 30 + .../ui/preferences/RecyclerPreference.kt | 84 ++ .../SelectorWithWidgetPreference.java | 186 +++++ .../ui/preferences/SliderPreference.java | 317 ++++++++ .../ui/preferences/SwitchPreference.kt | 39 + .../ui/preferences/TimePickerPreference.java | 113 +++ .../ui/preferences/UpdateCheckerPreference.kt | 146 ++++ .../preferencesearch/AnimationUtils.java | 89 +++ .../preferencesearch/Breadcrumb.java | 25 + .../preferencesearch/HistoryItem.java | 28 + .../preferencesearch/ListItem.java | 5 + .../preferencesearch/PreferenceItem.java | 175 +++++ .../preferencesearch/PreferenceParser.kt | 227 ++++++ .../RevealAnimationSetting.java | 73 ++ .../preferencesearch/SearchConfiguration.java | 394 ++++++++++ .../preferencesearch/SearchPreference.java | 87 +++ .../SearchPreferenceActionView.java | 93 +++ .../SearchPreferenceAdapter.java | 139 ++++ .../SearchPreferenceFragment.java | 342 ++++++++ .../SearchPreferenceResult.java | 170 ++++ .../SearchPreferenceResultListener.java | 7 + .../iconify/ui/utils/FragmentHelper.kt | 124 +++ .../ui/utils/SnapOnScrollListener.java | 72 ++ .../iconify/ui/utils/ThemeHelper.kt | 5 +- .../drdisagree/iconify/ui/utils/ViewHelper.kt | 25 +- .../iconify/ui/views/OnboardingView.kt | 15 +- .../iconify/ui/widgets/ColorPickerWidget.kt | 20 +- .../iconify/ui/widgets/RadioDialogWidget.kt | 9 +- .../iconify/ui/widgets/SliderWidget.kt | 29 +- .../iconify/ui/widgets/SwitchWidget.kt | 10 + .../com/drdisagree/iconify/utils/FileUtil.kt | 36 + .../com/drdisagree/iconify/utils/MiscUtil.kt | 41 + .../drdisagree/iconify/utils/ModuleUtil.kt | 14 +- .../iconify/utils/OmniJawsClient.kt | 6 +- .../drdisagree/iconify/utils/SystemUtil.kt | 15 +- .../iconify/utils/helper/ImportExport.kt | 154 +++- .../iconify/utils/helper/LocaleHelper.kt | 8 +- .../iconify/utils/overlay/FabricatedUtil.kt | 34 +- .../iconify/utils/overlay/OverlayUtil.kt | 18 +- .../utils/overlay/compiler/CompilerUtil.kt | 8 + .../overlay/manager/BrightnessBarManager.kt | 2 +- .../manager/BrightnessBarPixelManager.kt | 2 +- .../utils/overlay/manager/IconPackManager.kt | 34 +- .../overlay/manager/MediaPlayerIconManager.kt | 2 +- .../overlay/manager/MonetEngineManager.kt | 6 +- .../overlay/manager/NotificationManager.kt | 5 +- .../manager/NotificationPixelManager.kt | 5 +- .../utils/overlay/manager/QsShapeManager.kt | 5 +- .../overlay/manager/QsShapePixelManager.kt | 5 +- .../overlay/manager/SignalIconManager.kt | 52 ++ .../manager/resource/ResourceManager.kt | 4 +- .../iconify/utils/weather/WeatherConfig.kt | 2 +- .../drdisagree/iconify/xposed/HookEntry.kt | 56 +- .../iconify/xposed/modules/BackgroundChip.kt | 531 ++++++++----- .../xposed/modules/BatteryStyleManager.kt | 109 ++- .../xposed/modules/ControllersProvider.kt | 82 +- .../iconify/xposed/modules/DepthWallpaper.kt | 23 +- .../xposed/modules/DepthWallpaperA14.kt | 21 +- .../iconify/xposed/modules/HeaderClock.kt | 39 +- .../iconify/xposed/modules/HeaderImage.kt | 23 +- .../iconify/xposed/modules/LockscreenClock.kt | 50 +- .../xposed/modules/LockscreenWeather.kt | 39 +- .../xposed/modules/LockscreenWidgets.kt | 108 ++- .../iconify/xposed/modules/Miscellaneous.kt | 11 +- .../iconify/xposed/modules/QSTransparency.kt | 21 +- .../iconify/xposed/modules/QuickSettings.kt | 132 ++-- .../iconify/xposed/modules/Statusbar.kt | 9 +- .../iconify/xposed/modules/VolumePanel.kt | 13 +- .../modules/batterystyles/CircleBattery.kt | 6 +- .../batterystyles/CircleFilledBattery.kt | 4 +- .../xposed/modules/themes/QSBlackThemeA13.kt | 13 +- .../xposed/modules/themes/QSBlackThemeA14.kt | 13 +- .../xposed/modules/themes/QSFluidThemeA13.kt | 19 +- .../xposed/modules/themes/QSFluidThemeA14.kt | 19 +- .../xposed/modules/themes/QSLightThemeA12.kt | 14 +- .../xposed/modules/themes/QSLightThemeA13.kt | 16 +- .../xposed/modules/themes/QSLightThemeA14.kt | 16 +- .../xposed/modules/utils/ExtendedFAB.kt | 2 +- .../xposed/modules/views/ChipDrawable.kt | 100 +++ .../modules/views/LockscreenWidgetsView.kt | 6 +- .../iconify/xposed/utils/BootLoopProtector.kt | 17 +- .../xposed/utils/ExtendedRemotePreferences.kt | 38 + .../drdisagree/iconify/xposed/utils/XPrefs.kt | 53 ++ .../res/color/color_material_ripple_error.xml | 5 + .../color/color_surface_semitransparent.xml | 4 + .../res/drawable-v24/chip_status_bar_1.xml | 13 - .../res/drawable-v24/chip_status_bar_2.xml | 17 - .../res/drawable-v24/chip_status_bar_3.xml | 25 - .../res/drawable-v24/chip_status_bar_4.xml | 31 - .../res/drawable-v24/chip_status_bar_5.xml | 12 - .../res/drawable-v24/chip_status_bar_6.xml | 16 - .../res/drawable-v24/chip_status_bar_7.xml | 26 - .../res/drawable-v24/chip_status_icons_1.xml | 13 - .../res/drawable-v24/chip_status_icons_2.xml | 40 - .../res/drawable-v24/chip_status_icons_3.xml | 25 - .../res/drawable-v24/chip_status_icons_4.xml | 31 - .../res/drawable-v24/chip_status_icons_5.xml | 12 - .../res/drawable-v24/chip_status_icons_6.xml | 26 - .../drawable-v24/container_main_no_ripple.xml | 15 + .../drawable-v24/ic_navbar_tweaks_checked.xml | 15 +- .../ic_navbar_tweaks_unchecked.xml | 17 +- .../res/drawable-v24/ic_navbar_xposed.xml | 4 + .../drawable-v24/ic_navbar_xposed_checked.xml | 22 + .../ic_navbar_xposed_unchecked.xml | 22 + ...ew_aquarium_ic_signal_cellular_1_4_bar.xml | 10 + ...ew_aquarium_ic_signal_cellular_2_4_bar.xml | 12 + ...ew_aquarium_ic_signal_cellular_3_4_bar.xml | 13 + ...ew_aquarium_ic_signal_cellular_4_4_bar.xml | 15 + ...view_aurora_ic_signal_cellular_1_4_bar.xml | 22 + ...view_aurora_ic_signal_cellular_2_4_bar.xml | 30 + ...view_aurora_ic_signal_cellular_3_4_bar.xml | 38 + ...view_aurora_ic_signal_cellular_4_4_bar.xml | 38 + .../preview_aurora_ic_wifi_signal_1.xml | 22 + .../preview_aurora_ic_wifi_signal_2.xml | 30 + .../preview_aurora_ic_wifi_signal_3.xml | 38 + .../preview_aurora_ic_wifi_signal_4.xml | 38 + ...review_bars_ic_signal_cellular_1_4_bar.xml | 9 + ...review_bars_ic_signal_cellular_2_4_bar.xml | 9 + ...review_bars_ic_signal_cellular_3_4_bar.xml | 9 + ...review_bars_ic_signal_cellular_4_4_bar.xml | 9 + .../preview_bars_ic_wifi_signal_1.xml | 11 + .../preview_bars_ic_wifi_signal_2.xml | 11 + .../preview_bars_ic_wifi_signal_3.xml | 11 + .../preview_bars_ic_wifi_signal_4.xml | 10 + ...w_butterfly_ic_signal_cellular_1_4_bar.xml | 17 + ...w_butterfly_ic_signal_cellular_2_4_bar.xml | 17 + ...w_butterfly_ic_signal_cellular_3_4_bar.xml | 17 + ...w_butterfly_ic_signal_cellular_4_4_bar.xml | 17 + ...view_circle_ic_signal_cellular_1_4_bar.xml | 9 + ...view_circle_ic_signal_cellular_2_4_bar.xml | 9 + ...view_circle_ic_signal_cellular_3_4_bar.xml | 9 + ...view_circle_ic_signal_cellular_4_4_bar.xml | 9 + .../preview_color_picker_border.xml | 6 + ...review_daun_ic_signal_cellular_1_4_bar.xml | 17 + ...review_daun_ic_signal_cellular_2_4_bar.xml | 17 + ...review_daun_ic_signal_cellular_3_4_bar.xml | 17 + ...review_daun_ic_signal_cellular_4_4_bar.xml | 17 + ...preview_dec_ic_signal_cellular_1_4_bar.xml | 13 + ...preview_dec_ic_signal_cellular_2_4_bar.xml | 13 + ...preview_dec_ic_signal_cellular_3_4_bar.xml | 13 + ...preview_dec_ic_signal_cellular_4_4_bar.xml | 13 + ...review_deep_ic_signal_cellular_1_4_bar.xml | 17 + ...review_deep_ic_signal_cellular_2_4_bar.xml | 17 + ...review_deep_ic_signal_cellular_3_4_bar.xml | 17 + ...review_deep_ic_signal_cellular_4_4_bar.xml | 17 + ...review_dora_ic_signal_cellular_1_4_bar.xml | 8 + ...review_dora_ic_signal_cellular_2_4_bar.xml | 8 + ...review_dora_ic_signal_cellular_3_4_bar.xml | 8 + ...review_dora_ic_signal_cellular_4_4_bar.xml | 8 + .../preview_dora_ic_wifi_signal_1.xml | 8 + .../preview_dora_ic_wifi_signal_2.xml | 8 + .../preview_dora_ic_wifi_signal_3.xml | 8 + .../preview_dora_ic_wifi_signal_4.xml | 8 + ...eview_equal_ic_signal_cellular_1_4_bar.xml | 29 + ...eview_equal_ic_signal_cellular_2_4_bar.xml | 29 + ...eview_equal_ic_signal_cellular_3_4_bar.xml | 29 + ...eview_equal_ic_signal_cellular_4_4_bar.xml | 29 + ...ew_faint_ui_ic_signal_cellular_1_4_bar.xml | 60 ++ ...ew_faint_ui_ic_signal_cellular_2_4_bar.xml | 60 ++ ...ew_faint_ui_ic_signal_cellular_3_4_bar.xml | 60 ++ ...ew_faint_ui_ic_signal_cellular_4_4_bar.xml | 60 ++ .../preview_faint_ui_ic_wifi_signal_1.xml | 30 + .../preview_faint_ui_ic_wifi_signal_2.xml | 38 + .../preview_faint_ui_ic_wifi_signal_3.xml | 46 ++ .../preview_faint_ui_ic_wifi_signal_4.xml | 46 ++ ...preview_fan_ic_signal_cellular_1_4_bar.xml | 15 + ...preview_fan_ic_signal_cellular_2_4_bar.xml | 15 + ...preview_fan_ic_signal_cellular_3_4_bar.xml | 15 + ...preview_fan_ic_signal_cellular_4_4_bar.xml | 15 + ...ew_gradicon_ic_signal_cellular_1_4_bar.xml | 183 +++++ ...ew_gradicon_ic_signal_cellular_2_4_bar.xml | 183 +++++ ...ew_gradicon_ic_signal_cellular_3_4_bar.xml | 183 +++++ ...ew_gradicon_ic_signal_cellular_4_4_bar.xml | 183 +++++ .../preview_gradicon_ic_wifi_signal_1.xml | 139 ++++ .../preview_gradicon_ic_wifi_signal_2.xml | 139 ++++ .../preview_gradicon_ic_wifi_signal_3.xml | 139 ++++ .../preview_gradicon_ic_wifi_signal_4.xml | 139 ++++ ...view_huawei_ic_signal_cellular_1_4_bar.xml | 21 + ...view_huawei_ic_signal_cellular_2_4_bar.xml | 21 + ...view_huawei_ic_signal_cellular_3_4_bar.xml | 21 + ...view_huawei_ic_signal_cellular_4_4_bar.xml | 21 + ...view_inside_ic_signal_cellular_1_4_bar.xml | 7 + ...view_inside_ic_signal_cellular_2_4_bar.xml | 7 + ...view_inside_ic_signal_cellular_3_4_bar.xml | 7 + ...view_inside_ic_signal_cellular_4_4_bar.xml | 7 + .../preview_inside_ic_wifi_signal_1.xml | 9 + .../preview_inside_ic_wifi_signal_2.xml | 9 + .../preview_inside_ic_wifi_signal_3.xml | 9 + .../preview_inside_ic_wifi_signal_4.xml | 9 + ...preview_ios_ic_signal_cellular_1_4_bar.xml | 13 + ...preview_ios_ic_signal_cellular_2_4_bar.xml | 13 + ...preview_ios_ic_signal_cellular_3_4_bar.xml | 13 + ...preview_ios_ic_signal_cellular_4_4_bar.xml | 13 + ...review_lorn_ic_signal_cellular_1_4_bar.xml | 22 + ...review_lorn_ic_signal_cellular_2_4_bar.xml | 22 + ...review_lorn_ic_signal_cellular_3_4_bar.xml | 22 + ...review_lorn_ic_signal_cellular_4_4_bar.xml | 22 + .../preview_lorn_ic_wifi_signal_1.xml | 22 + .../preview_lorn_ic_wifi_signal_2.xml | 22 + .../preview_lorn_ic_wifi_signal_3.xml | 22 + .../preview_lorn_ic_wifi_signal_4.xml | 22 + ...review_mini_ic_signal_cellular_1_4_bar.xml | 11 + ...review_mini_ic_signal_cellular_2_4_bar.xml | 11 + ...review_mini_ic_signal_cellular_3_4_bar.xml | 11 + ...review_mini_ic_signal_cellular_4_4_bar.xml | 11 + ...nothing_dot_ic_signal_cellular_1_4_bar.xml | 7 + ...nothing_dot_ic_signal_cellular_2_4_bar.xml | 7 + ...nothing_dot_ic_signal_cellular_3_4_bar.xml | 7 + ...nothing_dot_ic_signal_cellular_4_4_bar.xml | 7 + .../preview_nothing_dot_ic_wifi_signal_1.xml | 6 + .../preview_nothing_dot_ic_wifi_signal_2.xml | 6 + .../preview_nothing_dot_ic_wifi_signal_3.xml | 6 + .../preview_nothing_dot_ic_wifi_signal_4.xml | 6 + ...review_odin_ic_signal_cellular_1_4_bar.xml | 9 + ...review_odin_ic_signal_cellular_2_4_bar.xml | 11 + ...review_odin_ic_signal_cellular_3_4_bar.xml | 11 + ...review_odin_ic_signal_cellular_4_4_bar.xml | 13 + ...eview_pills_ic_signal_cellular_1_4_bar.xml | 15 + ...eview_pills_ic_signal_cellular_2_4_bar.xml | 15 + ...eview_pills_ic_signal_cellular_3_4_bar.xml | 15 + ...eview_pills_ic_signal_cellular_4_4_bar.xml | 15 + ...view_plumpy_ic_signal_cellular_1_4_bar.xml | 22 + ...view_plumpy_ic_signal_cellular_2_4_bar.xml | 22 + ...view_plumpy_ic_signal_cellular_3_4_bar.xml | 22 + ...view_plumpy_ic_signal_cellular_4_4_bar.xml | 22 + .../preview_plumpy_ic_wifi_signal_1.xml | 22 + .../preview_plumpy_ic_wifi_signal_2.xml | 22 + .../preview_plumpy_ic_wifi_signal_3.xml | 22 + .../preview_plumpy_ic_wifi_signal_4.xml | 22 + ...preview_rel_ic_signal_cellular_1_4_bar.xml | 19 + ...preview_rel_ic_signal_cellular_2_4_bar.xml | 19 + ...preview_rel_ic_signal_cellular_3_4_bar.xml | 19 + ...preview_rel_ic_signal_cellular_4_4_bar.xml | 19 + ...eview_roman_ic_signal_cellular_1_4_bar.xml | 7 + ...eview_roman_ic_signal_cellular_2_4_bar.xml | 9 + ...eview_roman_ic_signal_cellular_3_4_bar.xml | 11 + ...eview_roman_ic_signal_cellular_4_4_bar.xml | 11 + ...eview_round_ic_signal_cellular_1_4_bar.xml | 6 + ...eview_round_ic_signal_cellular_2_4_bar.xml | 6 + ...eview_round_ic_signal_cellular_3_4_bar.xml | 6 + ...eview_round_ic_signal_cellular_4_4_bar.xml | 5 + .../preview_round_ic_wifi_signal_1.xml | 6 + .../preview_round_ic_wifi_signal_2.xml | 6 + .../preview_round_ic_wifi_signal_3.xml | 5 + .../preview_round_ic_wifi_signal_4.xml | 5 + ...view_scroll_ic_signal_cellular_1_4_bar.xml | 15 + ...view_scroll_ic_signal_cellular_2_4_bar.xml | 15 + ...view_scroll_ic_signal_cellular_3_4_bar.xml | 15 + ...view_scroll_ic_signal_cellular_4_4_bar.xml | 15 + ...preview_sea_ic_signal_cellular_1_4_bar.xml | 23 + ...preview_sea_ic_signal_cellular_2_4_bar.xml | 23 + ...preview_sea_ic_signal_cellular_3_4_bar.xml | 23 + ...preview_sea_ic_signal_cellular_4_4_bar.xml | 23 + ...view_sneaky_ic_signal_cellular_1_4_bar.xml | 8 + ...view_sneaky_ic_signal_cellular_2_4_bar.xml | 8 + ...view_sneaky_ic_signal_cellular_3_4_bar.xml | 8 + ...view_sneaky_ic_signal_cellular_4_4_bar.xml | 8 + .../preview_sneaky_ic_wifi_signal_1.xml | 8 + .../preview_sneaky_ic_wifi_signal_2.xml | 8 + .../preview_sneaky_ic_wifi_signal_3.xml | 8 + .../preview_sneaky_ic_wifi_signal_4.xml | 8 + ...eview_stack_ic_signal_cellular_1_4_bar.xml | 45 ++ ...eview_stack_ic_signal_cellular_2_4_bar.xml | 45 ++ ...eview_stack_ic_signal_cellular_3_4_bar.xml | 45 ++ ...eview_stack_ic_signal_cellular_4_4_bar.xml | 45 ++ ...view_stroke_ic_signal_cellular_1_4_bar.xml | 6 + ...view_stroke_ic_signal_cellular_2_4_bar.xml | 6 + ...view_stroke_ic_signal_cellular_3_4_bar.xml | 6 + ...view_stroke_ic_signal_cellular_4_4_bar.xml | 6 + .../preview_stroke_ic_wifi_signal_1.xml | 6 + .../preview_stroke_ic_wifi_signal_2.xml | 6 + .../preview_stroke_ic_wifi_signal_3.xml | 6 + .../preview_stroke_ic_wifi_signal_4.xml | 6 + ...view_wannui_ic_signal_cellular_1_4_bar.xml | 13 + ...view_wannui_ic_signal_cellular_2_4_bar.xml | 13 + ...view_wannui_ic_signal_cellular_3_4_bar.xml | 13 + ...view_wannui_ic_signal_cellular_4_4_bar.xml | 13 + ...review_wavy_ic_signal_cellular_1_4_bar.xml | 7 + ...review_wavy_ic_signal_cellular_2_4_bar.xml | 7 + ...review_wavy_ic_signal_cellular_3_4_bar.xml | 7 + ...review_wavy_ic_signal_cellular_4_4_bar.xml | 5 + .../preview_wavy_ic_wifi_signal_1.xml | 6 + .../preview_wavy_ic_wifi_signal_2.xml | 7 + .../preview_wavy_ic_wifi_signal_3.xml | 7 + .../preview_wavy_ic_wifi_signal_4.xml | 5 + .../preview_weed_ic_wifi_signal_1.xml | 66 ++ .../preview_weed_ic_wifi_signal_2.xml | 63 ++ .../preview_weed_ic_wifi_signal_3.xml | 86 ++ .../preview_weed_ic_wifi_signal_4.xml | 93 +++ ...iew_windows_ic_signal_cellular_1_4_bar.xml | 13 + ...iew_windows_ic_signal_cellular_2_4_bar.xml | 13 + ...iew_windows_ic_signal_cellular_3_4_bar.xml | 13 + ...iew_windows_ic_signal_cellular_4_4_bar.xml | 13 + ...review_wing_ic_signal_cellular_1_4_bar.xml | 13 + ...review_wing_ic_signal_cellular_2_4_bar.xml | 13 + ...review_wing_ic_signal_cellular_3_4_bar.xml | 13 + ...review_wing_ic_signal_cellular_4_4_bar.xml | 13 + ...view_xperia_ic_signal_cellular_1_4_bar.xml | 8 + ...view_xperia_ic_signal_cellular_2_4_bar.xml | 8 + ...view_xperia_ic_signal_cellular_3_4_bar.xml | 8 + ...view_xperia_ic_signal_cellular_4_4_bar.xml | 8 + .../preview_xperia_ic_wifi_signal_1.xml | 7 + .../preview_xperia_ic_wifi_signal_2.xml | 7 + .../preview_xperia_ic_wifi_signal_3.xml | 7 + .../preview_xperia_ic_wifi_signal_4.xml | 7 + ...view_zigzag_ic_signal_cellular_1_4_bar.xml | 6 + ...view_zigzag_ic_signal_cellular_2_4_bar.xml | 6 + ...view_zigzag_ic_signal_cellular_3_4_bar.xml | 6 + ...view_zigzag_ic_signal_cellular_4_4_bar.xml | 5 + .../preview_zigzag_ic_wifi_signal_1.xml | 7 + .../preview_zigzag_ic_wifi_signal_2.xml | 7 + .../preview_zigzag_ic_wifi_signal_3.xml | 7 + .../preview_zigzag_ic_wifi_signal_4.xml | 7 + .../action_bar_item_background_material.xml | 14 + ...ion_bar_item_background_material_error.xml | 14 + app/src/main/res/drawable/container_small.xml | 9 + app/src/main/res/drawable/ic_clear.xml | 15 + app/src/main/res/drawable/ic_history.xml | 11 + app/src/main/res/drawable/ic_info_duotone.xml | 16 + app/src/main/res/drawable/ic_search.xml | 29 +- app/src/main/res/drawable/ic_translate.xml | 36 + .../main/res/layout/activity_home_page.xml | 31 - app/src/main/res/layout/activity_main.xml | 143 ++++ .../main/res/layout/cpv_preference_circle.xml | 7 + .../layout/cpv_preference_circle_large.xml | 7 + .../main/res/layout/cpv_preference_square.xml | 7 + .../layout/cpv_preference_square_large.xml | 7 + .../res/layout/custom_preference_category.xml | 46 ++ .../res/layout/custom_preference_color.xml | 64 ++ .../layout/custom_preference_edit_text.xml | 49 ++ .../layout/custom_preference_filepicker.xml | 47 ++ .../res/layout/custom_preference_list.xml | 50 ++ .../res/layout/custom_preference_menu.xml | 63 ++ .../layout/custom_preference_recyclerview.xml | 74 ++ .../res/layout/custom_preference_slider.xml | 79 ++ .../res/layout/custom_preference_switch.xml | 63 ++ .../layout/custom_preference_time_picker.xml | 48 ++ .../main/res/layout/fragment_app_updates.xml | 6 +- .../main/res/layout/fragment_basic_colors.xml | 2 +- .../res/layout/fragment_brightness_bar.xml | 2 +- .../layout/fragment_brightness_bar_pixel.xml | 2 +- .../main/res/layout/fragment_changelog.xml | 4 +- .../main/res/layout/fragment_color_engine.xml | 2 +- .../res/layout/fragment_colored_battery.xml | 2 +- app/src/main/res/layout/fragment_credits.xml | 19 +- .../main/res/layout/fragment_experimental.xml | 2 +- app/src/main/res/layout/fragment_home.xml | 41 - .../main/res/layout/fragment_icon_pack.xml | 2 +- .../main/res/layout/fragment_icon_shape.xml | 7 +- .../main/res/layout/fragment_media_icons.xml | 2 +- .../main/res/layout/fragment_media_player.xml | 2 +- .../res/layout/fragment_miscellaneous.xml | 2 +- .../main/res/layout/fragment_monet_engine.xml | 2 +- .../res/layout/fragment_navigation_bar.xml | 2 +- .../main/res/layout/fragment_notification.xml | 2 +- .../layout/fragment_notification_pixel.xml | 2 +- ....xml => fragment_preference_container.xml} | 18 +- .../fragment_preference_container_home.xml | 18 + .../main/res/layout/fragment_progress_bar.xml | 2 +- .../res/layout/fragment_qs_icon_label.xml | 2 +- .../res/layout/fragment_qs_panel_margin.xml | 2 +- .../res/layout/fragment_qs_panel_tile.xml | 2 +- .../layout/fragment_qs_panel_tile_pixel.xml | 2 +- .../res/layout/fragment_qs_row_column.xml | 2 +- .../main/res/layout/fragment_qs_tile_size.xml | 2 +- app/src/main/res/layout/fragment_settings.xml | 51 -- .../res/layout/fragment_settings_icons.xml | 2 +- .../main/res/layout/fragment_statusbar.xml | 4 +- app/src/main/res/layout/fragment_switch.xml | 2 +- .../main/res/layout/fragment_toast_frame.xml | 7 +- .../main/res/layout/fragment_ui_roundness.xml | 4 +- .../main/res/layout/fragment_volume_panel.xml | 4 +- .../res/layout/fragment_weather_settings.xml | 87 --- .../fragment_xposed_background_chip.xml | 149 ---- .../layout/fragment_xposed_battery_style.xml | 65 -- .../res/layout/fragment_xposed_clock_chip.xml | 284 +++++++ .../fragment_xposed_depth_wallpaper.xml | 129 --- .../layout/fragment_xposed_header_clock.xml | 200 ----- .../layout/fragment_xposed_header_image.xml | 88 --- .../fragment_xposed_lockscreen_clock.xml | 209 ----- .../fragment_xposed_lockscreen_weather.xml | 211 ----- .../fragment_xposed_lockscreen_widgets.xml | 244 ------ .../main/res/layout/fragment_xposed_menu.xml | 40 - .../res/layout/fragment_xposed_others.xml | 103 --- .../layout/fragment_xposed_quick_settings.xml | 126 --- .../fragment_xposed_status_icons_chip.xml | 296 +++++++ .../res/layout/fragment_xposed_statusbar.xml | 76 -- .../res/layout/fragment_xposed_themes.xml | 118 --- .../fragment_xposed_transparency_blur.xml | 100 --- .../layout/fragment_xposed_volume_panel.xml | 53 -- .../main/res/layout/preference_category.xml | 8 + app/src/main/res/layout/preference_footer.xml | 67 ++ .../main/res/layout/preference_list_item.xml | 43 + .../res/layout/preference_material_switch.xml | 8 + .../preference_selector_with_widget.xml | 107 +++ .../res/layout/preference_widget_checkbox.xml | 24 + .../layout/preference_widget_radiobutton.xml | 9 + .../res/layout/preview_lockscreen_clock_5.xml | 2 +- .../res/layout/searchpreference_fragment.xml | 50 ++ .../searchpreference_list_item_history.xml | 38 + .../searchpreference_list_item_result.xml | 32 + .../layout/searchpreference_preference.xml | 11 + .../res/layout/searchpreference_searchbar.xml | 65 ++ .../view_bottom_sheet_dialog_layout.xml | 34 + app/src/main/res/layout/view_home_card.xml | 5 +- app/src/main/res/layout/view_icon_shape.xml | 2 +- .../main/res/layout/view_list_info_item.xml | 2 +- .../layout/view_list_option_brightnessbar.xml | 2 +- .../view_list_option_brightnessbar_pixel.xml | 2 +- .../res/layout/view_list_option_iconpack.xml | 7 +- .../view_list_option_mediaplayer_icons.xml | 2 +- .../layout/view_list_option_progressbar.xml | 2 +- .../res/layout/view_list_option_qsshape.xml | 2 +- .../layout/view_list_option_qsshape_pixel.xml | 2 +- .../view_list_option_settings_icons.xml | 2 +- .../res/layout/view_list_option_switch.xml | 2 +- app/src/main/res/layout/view_new_update.xml | 1 + app/src/main/res/layout/view_reboot.xml | 1 + .../main/res/layout/view_status_bar_chip.xml | 43 - .../res/layout/view_status_icons_chip.xml | 65 -- app/src/main/res/layout/view_volume_style.xml | 2 +- .../res/layout/view_widget_bottomsheet.xml | 2 +- .../res/layout/view_widget_colorpicker.xml | 25 +- .../res/layout/view_widget_filepicker.xml | 2 +- app/src/main/res/layout/view_widget_menu.xml | 2 +- .../res/layout/view_widget_radiodialog.xml | 2 +- .../main/res/layout/view_widget_slider.xml | 35 +- .../main/res/layout/view_widget_switch.xml | 2 +- app/src/main/res/layout/view_widget_title.xml | 2 +- .../res/layout/view_widget_title_misc.xml | 36 + .../layout/view_xposed_battery_dimension.xml | 4 +- .../res/layout/view_xposed_hook_check.xml | 23 +- app/src/main/res/menu/bottom_nav_menu.xml | 5 + .../res/menu/bottom_nav_menu_xposed_only.xml | 6 +- app/src/main/res/menu/default_menu.xml | 28 + app/src/main/res/menu/home_menu.xml | 9 + .../{settings_menu.xml => search_menu.xml} | 0 app/src/main/res/menu/search_more.xml | 6 + app/src/main/res/navigation/nav_home_page.xml | 735 ------------------ .../main/res/navigation/nav_xposed_menu.xml | 416 ---------- app/src/main/res/values-af-rZA/strings.xml | 18 +- app/src/main/res/values-ar-rSA/strings.xml | 18 +- app/src/main/res/values-ca-rES/strings.xml | 18 +- app/src/main/res/values-cs-rCZ/strings.xml | 18 +- app/src/main/res/values-da-rDK/strings.xml | 18 +- app/src/main/res/values-de-rDE/strings.xml | 18 +- app/src/main/res/values-el-rGR/strings.xml | 18 +- app/src/main/res/values-es-rES/strings.xml | 18 +- app/src/main/res/values-fa-rIR/strings.xml | 18 +- app/src/main/res/values-fi-rFI/strings.xml | 18 +- app/src/main/res/values-fr-rFR/strings.xml | 18 +- app/src/main/res/values-hu-rHU/strings.xml | 18 +- app/src/main/res/values-in-rID/strings.xml | 18 +- app/src/main/res/values-it-rIT/strings.xml | 18 +- app/src/main/res/values-iw-rIL/strings.xml | 14 +- app/src/main/res/values-ja-rJP/strings.xml | 18 +- app/src/main/res/values-ko-rKR/strings.xml | 18 +- app/src/main/res/values-night/styles.xml | 1 - app/src/main/res/values-night/themes.xml | 5 + app/src/main/res/values-nl-rNL/strings.xml | 18 +- app/src/main/res/values-no-rNO/strings.xml | 18 +- app/src/main/res/values-pl-rPL/strings.xml | 18 +- app/src/main/res/values-pt-rBR/strings.xml | 18 +- app/src/main/res/values-pt-rPT/strings.xml | 18 +- app/src/main/res/values-ro-rRO/strings.xml | 18 +- app/src/main/res/values-ru-rRU/strings.xml | 18 +- app/src/main/res/values-sr-rSP/strings.xml | 18 +- app/src/main/res/values-sv-rSE/strings.xml | 18 +- app/src/main/res/values-tr-rTR/strings.xml | 18 +- app/src/main/res/values-uk-rUA/strings.xml | 18 +- app/src/main/res/values-vi-rVN/strings.xml | 18 +- app/src/main/res/values-zh-rCN/strings.xml | 18 +- app/src/main/res/values-zh-rTW/strings.xml | 18 +- app/src/main/res/values/arrays.xml | 70 ++ app/src/main/res/values/attrs.xml | 69 +- app/src/main/res/values/battery_configs.xml | 65 ++ app/src/main/res/values/colors.xml | 5 + app/src/main/res/values/dimens.xml | 8 + app/src/main/res/values/strings.xml | 143 +++- app/src/main/res/values/styles.xml | 19 +- app/src/main/res/values/themes.xml | 5 + app/src/main/res/xml/home.xml | 110 +++ app/src/main/res/xml/locales_config.xml | 28 +- app/src/main/res/xml/settings.xml | 153 ++++ app/src/main/res/xml/tweaks.xml | 89 +++ app/src/main/res/xml/xposed.xml | 111 +++ .../main/res/xml/xposed_background_chip.xml | 52 ++ app/src/main/res/xml/xposed_battery_style.xml | 253 ++++++ .../main/res/xml/xposed_depth_wallpaper.xml | 99 +++ app/src/main/res/xml/xposed_header_clock.xml | 145 ++++ app/src/main/res/xml/xposed_header_image.xml | 69 ++ .../main/res/xml/xposed_lockscreen_clock.xml | 156 ++++ .../res/xml/xposed_lockscreen_weather.xml | 189 +++++ .../main/res/xml/xposed_lockscreen_widget.xml | 272 +++++++ app/src/main/res/xml/xposed_others.xml | 75 ++ .../main/res/xml/xposed_quick_settings.xml | 108 +++ app/src/main/res/xml/xposed_statusbar.xml | 49 ++ app/src/main/res/xml/xposed_themes.xml | 94 +++ .../main/res/xml/xposed_transparency_blur.xml | 74 ++ app/src/main/res/xml/xposed_volume_panel.xml | 23 + .../main/res/xml/xposed_weather_settings.xml | 64 ++ gradle/libs.versions.toml | 10 +- 937 files changed, 27103 insertions(+), 13077 deletions(-) delete mode 100644 app/src/main/assets/Overlays/android/SGIC1/res/values/strings.xml delete mode 100644 app/src/main/assets/Overlays/android/SGIC10/res/values/strings.xml delete mode 100644 app/src/main/assets/Overlays/android/SGIC11/res/values/strings.xml delete mode 100644 app/src/main/assets/Overlays/android/SGIC12/res/values/strings.xml delete mode 100644 app/src/main/assets/Overlays/android/SGIC13/res/values/strings.xml delete mode 100644 app/src/main/assets/Overlays/android/SGIC14/res/values/strings.xml delete mode 100644 app/src/main/assets/Overlays/android/SGIC15/res/values/strings.xml delete mode 100644 app/src/main/assets/Overlays/android/SGIC16/res/values/strings.xml delete mode 100644 app/src/main/assets/Overlays/android/SGIC17/res/values/strings.xml delete mode 100644 app/src/main/assets/Overlays/android/SGIC18/res/values/strings.xml delete mode 100644 app/src/main/assets/Overlays/android/SGIC19/res/values/strings.xml delete mode 100644 app/src/main/assets/Overlays/android/SGIC2/res/values/strings.xml delete mode 100644 app/src/main/assets/Overlays/android/SGIC20/res/values/strings.xml delete mode 100644 app/src/main/assets/Overlays/android/SGIC21/res/values/strings.xml delete mode 100644 app/src/main/assets/Overlays/android/SGIC22/res/values/strings.xml delete mode 100644 app/src/main/assets/Overlays/android/SGIC23/res/values/strings.xml delete mode 100644 app/src/main/assets/Overlays/android/SGIC24/res/values/strings.xml delete mode 100644 app/src/main/assets/Overlays/android/SGIC25/res/values/strings.xml delete mode 100644 app/src/main/assets/Overlays/android/SGIC26/res/values/strings.xml delete mode 100644 app/src/main/assets/Overlays/android/SGIC27/res/values/strings.xml delete mode 100644 app/src/main/assets/Overlays/android/SGIC28/res/values/strings.xml delete mode 100644 app/src/main/assets/Overlays/android/SGIC29/res/values/strings.xml delete mode 100644 app/src/main/assets/Overlays/android/SGIC3/res/values/strings.xml delete mode 100644 app/src/main/assets/Overlays/android/SGIC30/res/values/strings.xml delete mode 100644 app/src/main/assets/Overlays/android/SGIC31/res/values/strings.xml delete mode 100644 app/src/main/assets/Overlays/android/SGIC32/res/values/strings.xml delete mode 100644 app/src/main/assets/Overlays/android/SGIC33/res/values/strings.xml delete mode 100644 app/src/main/assets/Overlays/android/SGIC34/res/values/strings.xml delete mode 100644 app/src/main/assets/Overlays/android/SGIC35/res/values/strings.xml delete mode 100644 app/src/main/assets/Overlays/android/SGIC36/res/values/strings.xml delete mode 100644 app/src/main/assets/Overlays/android/SGIC4/res/values/strings.xml delete mode 100644 app/src/main/assets/Overlays/android/SGIC5/res/values/strings.xml delete mode 100644 app/src/main/assets/Overlays/android/SGIC6/res/values/strings.xml delete mode 100644 app/src/main/assets/Overlays/android/SGIC7/res/values/strings.xml delete mode 100644 app/src/main/assets/Overlays/android/SGIC8/res/values/strings.xml delete mode 100644 app/src/main/assets/Overlays/android/SGIC9/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_signal_wifi_transient_animation.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_signal_wifi_transient_animation_drawable.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_4_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_4_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_4_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_4_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_4_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_5_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_5_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_5_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_5_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_5_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_6_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_6_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_6_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_6_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_6_signal_4.xml delete mode 100644 app/src/main/assets/Overlays/android/WIFI1/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_signal_wifi_transient_animation.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_signal_wifi_transient_animation_drawable.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_4_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_4_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_4_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_4_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_4_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_5_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_5_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_5_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_5_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_5_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_6_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_6_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_6_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_6_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_6_signal_4.xml delete mode 100644 app/src/main/assets/Overlays/android/WIFI10/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_signal_wifi_transient_animation.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_signal_wifi_transient_animation_drawable.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_4_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_4_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_4_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_4_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_4_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_5_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_5_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_5_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_5_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_5_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_6_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_6_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_6_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_6_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_6_signal_4.xml delete mode 100644 app/src/main/assets/Overlays/android/WIFI11/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_signal_wifi_transient_animation.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_signal_wifi_transient_animation_drawable.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_4_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_4_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_4_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_4_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_4_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_5_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_5_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_5_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_5_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_5_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_6_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_6_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_6_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_6_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_6_signal_4.xml delete mode 100644 app/src/main/assets/Overlays/android/WIFI12/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_signal_wifi_transient_animation.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_signal_wifi_transient_animation_drawable.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_4_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_4_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_4_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_4_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_4_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_5_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_5_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_5_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_5_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_5_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_6_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_6_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_6_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_6_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_6_signal_4.xml delete mode 100644 app/src/main/assets/Overlays/android/WIFI13/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_signal_wifi_transient_animation.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_signal_wifi_transient_animation_drawable.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_4_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_4_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_4_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_4_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_4_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_5_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_5_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_5_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_5_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_5_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_6_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_6_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_6_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_6_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_6_signal_4.xml delete mode 100644 app/src/main/assets/Overlays/android/WIFI14/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_signal_wifi_transient_animation.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_signal_wifi_transient_animation_drawable.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_4_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_4_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_4_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_4_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_4_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_5_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_5_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_5_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_5_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_5_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_6_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_6_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_6_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_6_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_6_signal_4.xml delete mode 100644 app/src/main/assets/Overlays/android/WIFI15/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_signal_wifi_transient_animation.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_signal_wifi_transient_animation_drawable.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_4_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_4_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_4_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_4_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_4_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_5_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_5_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_5_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_5_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_5_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_6_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_6_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_6_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_6_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_6_signal_4.xml delete mode 100644 app/src/main/assets/Overlays/android/WIFI16/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_signal_wifi_transient_animation.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_signal_wifi_transient_animation_drawable.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_4_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_4_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_4_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_4_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_4_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_5_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_5_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_5_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_5_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_5_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_6_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_6_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_6_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_6_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_6_signal_4.xml delete mode 100644 app/src/main/assets/Overlays/android/WIFI2/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_signal_wifi_transient_animation_drawable.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_4_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_4_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_4_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_4_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_4_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_5_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_5_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_5_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_5_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_5_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_6_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_6_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_6_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_6_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_6_signal_4.xml delete mode 100644 app/src/main/assets/Overlays/android/WIFI3/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_4_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_4_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_4_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_4_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_4_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_5_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_5_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_5_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_5_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_5_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_6_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_6_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_6_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_6_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_6_signal_4.xml delete mode 100644 app/src/main/assets/Overlays/android/WIFI4/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_4_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_4_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_4_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_4_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_4_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_5_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_5_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_5_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_5_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_5_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_6_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_6_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_6_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_6_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_6_signal_4.xml delete mode 100644 app/src/main/assets/Overlays/android/WIFI5/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_4_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_4_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_4_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_4_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_4_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_5_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_5_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_5_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_5_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_5_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_6_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_6_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_6_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_6_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_6_signal_4.xml delete mode 100644 app/src/main/assets/Overlays/android/WIFI6/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_signal_wifi_transient_animation.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_signal_wifi_transient_animation_drawable.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_4_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_4_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_4_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_4_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_4_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_5_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_5_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_5_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_5_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_5_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_6_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_6_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_6_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_6_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_6_signal_4.xml delete mode 100644 app/src/main/assets/Overlays/android/WIFI7/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_signal_wifi_transient_animation.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_signal_wifi_transient_animation_drawable.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_4_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_4_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_4_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_4_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_4_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_5_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_5_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_5_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_5_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_5_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_6_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_6_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_6_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_6_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_6_signal_4.xml delete mode 100644 app/src/main/assets/Overlays/android/WIFI8/res/values/strings.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_4_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_4_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_4_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_4_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_4_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_5_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_5_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_5_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_5_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_5_signal_4.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_6_signal_0.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_6_signal_1.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_6_signal_2.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_6_signal_3.xml create mode 100644 app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_6_signal_4.xml delete mode 100644 app/src/main/assets/Overlays/android/WIFI9/res/values/strings.xml delete mode 100644 app/src/main/java/com/drdisagree/iconify/config/Prefs.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/config/PrefsHelper.kt delete mode 100644 app/src/main/java/com/drdisagree/iconify/config/XPrefs.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/adapters/ListPreferenceAdapter.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/base/ControlledPreferenceFragmentCompat.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/base/WeatherPreferenceFragment.kt delete mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/Home.kt delete mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/Settings.kt delete mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/SignalIcons.kt delete mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/Tweaks.kt delete mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/WeatherSettings.kt delete mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/WiFiIcons.kt delete mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedBackgroundChip.kt delete mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedBatteryStyle.kt delete mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedDepthWallpaper.kt delete mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedHeaderClock.kt delete mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedHeaderImage.kt delete mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenClock.kt delete mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt delete mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWidgets.kt delete mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedMenu.kt delete mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedOthers.kt delete mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedQuickSettings.kt delete mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedStatusbar.kt delete mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedThemes.kt delete mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedTransparencyBlur.kt delete mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedVolumePanel.kt rename app/src/main/java/com/drdisagree/iconify/ui/fragments/{ => home}/BrightnessBar.kt (98%) rename app/src/main/java/com/drdisagree/iconify/ui/fragments/{ => home}/BrightnessBarPixel.kt (99%) create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/home/CellularIcons.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/home/Home.kt rename app/src/main/java/com/drdisagree/iconify/ui/fragments/{ => home}/IconPack.kt (79%) rename app/src/main/java/com/drdisagree/iconify/ui/fragments/{ => home}/IconShape.kt (95%) rename app/src/main/java/com/drdisagree/iconify/ui/fragments/{ => home}/MediaIcons.kt (98%) rename app/src/main/java/com/drdisagree/iconify/ui/fragments/{ => home}/Notification.kt (93%) rename app/src/main/java/com/drdisagree/iconify/ui/fragments/{ => home}/NotificationPixel.kt (99%) rename app/src/main/java/com/drdisagree/iconify/ui/fragments/{ => home}/ProgressBar.kt (98%) rename app/src/main/java/com/drdisagree/iconify/ui/fragments/{ => home}/QsPanelTile.kt (98%) rename app/src/main/java/com/drdisagree/iconify/ui/fragments/{ => home}/QsPanelTilePixel.kt (99%) rename app/src/main/java/com/drdisagree/iconify/ui/fragments/{ => home}/SettingsIcons.kt (90%) rename app/src/main/java/com/drdisagree/iconify/ui/fragments/{ => home}/Switch.kt (98%) rename app/src/main/java/com/drdisagree/iconify/ui/fragments/{ => home}/ToastFrame.kt (96%) create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/home/WiFiIcons.kt rename app/src/main/java/com/drdisagree/iconify/ui/fragments/{ => settings}/AppUpdates.kt (97%) rename app/src/main/java/com/drdisagree/iconify/ui/fragments/{ => settings}/Changelog.kt (99%) rename app/src/main/java/com/drdisagree/iconify/ui/fragments/{ => settings}/Credits.kt (99%) rename app/src/main/java/com/drdisagree/iconify/ui/fragments/{ => settings}/Experimental.kt (97%) create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/settings/Settings.kt rename app/src/main/java/com/drdisagree/iconify/ui/fragments/{ => tweaks}/BasicColors.kt (97%) rename app/src/main/java/com/drdisagree/iconify/ui/fragments/{ => tweaks}/ColorEngine.kt (94%) rename app/src/main/java/com/drdisagree/iconify/ui/fragments/{ => tweaks}/ColoredBattery.kt (85%) rename app/src/main/java/com/drdisagree/iconify/ui/fragments/{ => tweaks}/MediaPlayer.kt (88%) rename app/src/main/java/com/drdisagree/iconify/ui/fragments/{ => tweaks}/Miscellaneous.kt (96%) rename app/src/main/java/com/drdisagree/iconify/ui/fragments/{ => tweaks}/MonetEngine.kt (98%) rename app/src/main/java/com/drdisagree/iconify/ui/fragments/{ => tweaks}/NavigationBar.kt (98%) rename app/src/main/java/com/drdisagree/iconify/ui/fragments/{ => tweaks}/QsIconLabel.kt (97%) rename app/src/main/java/com/drdisagree/iconify/ui/fragments/{ => tweaks}/QsPanelMargin.kt (98%) rename app/src/main/java/com/drdisagree/iconify/ui/fragments/{ => tweaks}/QsRowColumn.kt (85%) rename app/src/main/java/com/drdisagree/iconify/ui/fragments/{ => tweaks}/QsTileSize.kt (89%) rename app/src/main/java/com/drdisagree/iconify/ui/fragments/{ => tweaks}/Statusbar.kt (92%) create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/Tweaks.kt rename app/src/main/java/com/drdisagree/iconify/ui/fragments/{ => tweaks}/UiRoundness.kt (96%) rename app/src/main/java/com/drdisagree/iconify/ui/fragments/{ => tweaks}/VolumePanel.kt (95%) create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/BackgroundChip.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/BatteryStyle.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/ClockChip.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/DepthWallpaper.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/HeaderClock.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/HeaderImage.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/LockscreenClock.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/LockscreenWeather.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/LockscreenWidget.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/Others.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/QuickSettings.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/StatusIconsChip.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/Statusbar.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/Themes.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/TransparencyBlur.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/VolumePanel.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/WeatherSettings.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/Xposed.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/models/SearchPreferenceItem.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/preferences/BottomSheetListPreference.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/preferences/ColorPreference.java create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/preferences/EasterPreference.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/preferences/EditTextPreference.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/preferences/FilePickerPreference.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/preferences/FooterPreference.java create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/preferences/HomeCardPreference.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/preferences/HookCheckPreference.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/preferences/LinkTextView.java create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/preferences/ListPreference.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/preferences/PreferenceCategory.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/preferences/PreferenceMenu.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/preferences/RebootReminderPreference.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/preferences/RecyclerPreference.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/preferences/SelectorWithWidgetPreference.java create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/preferences/SliderPreference.java create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/preferences/SwitchPreference.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/preferences/TimePickerPreference.java create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/preferences/UpdateCheckerPreference.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/AnimationUtils.java create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/Breadcrumb.java create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/HistoryItem.java create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/ListItem.java create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/PreferenceItem.java create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/PreferenceParser.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/RevealAnimationSetting.java create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/SearchConfiguration.java create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/SearchPreference.java create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/SearchPreferenceActionView.java create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/SearchPreferenceAdapter.java create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/SearchPreferenceFragment.java create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/SearchPreferenceResult.java create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/SearchPreferenceResultListener.java create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/utils/FragmentHelper.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/ui/utils/SnapOnScrollListener.java create mode 100644 app/src/main/java/com/drdisagree/iconify/utils/MiscUtil.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/SignalIconManager.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/xposed/modules/views/ChipDrawable.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/xposed/utils/ExtendedRemotePreferences.kt create mode 100644 app/src/main/java/com/drdisagree/iconify/xposed/utils/XPrefs.kt create mode 100644 app/src/main/res/color/color_material_ripple_error.xml create mode 100644 app/src/main/res/color/color_surface_semitransparent.xml delete mode 100644 app/src/main/res/drawable-v24/chip_status_bar_1.xml delete mode 100644 app/src/main/res/drawable-v24/chip_status_bar_2.xml delete mode 100644 app/src/main/res/drawable-v24/chip_status_bar_3.xml delete mode 100644 app/src/main/res/drawable-v24/chip_status_bar_4.xml delete mode 100644 app/src/main/res/drawable-v24/chip_status_bar_5.xml delete mode 100644 app/src/main/res/drawable-v24/chip_status_bar_6.xml delete mode 100644 app/src/main/res/drawable-v24/chip_status_bar_7.xml delete mode 100644 app/src/main/res/drawable-v24/chip_status_icons_1.xml delete mode 100644 app/src/main/res/drawable-v24/chip_status_icons_2.xml delete mode 100644 app/src/main/res/drawable-v24/chip_status_icons_3.xml delete mode 100644 app/src/main/res/drawable-v24/chip_status_icons_4.xml delete mode 100644 app/src/main/res/drawable-v24/chip_status_icons_5.xml delete mode 100644 app/src/main/res/drawable-v24/chip_status_icons_6.xml create mode 100644 app/src/main/res/drawable-v24/container_main_no_ripple.xml create mode 100644 app/src/main/res/drawable-v24/ic_navbar_xposed.xml create mode 100644 app/src/main/res/drawable-v24/ic_navbar_xposed_checked.xml create mode 100644 app/src/main/res/drawable-v24/ic_navbar_xposed_unchecked.xml create mode 100644 app/src/main/res/drawable-v24/preview_aquarium_ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_aquarium_ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_aquarium_ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_aquarium_ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_aurora_ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_aurora_ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_aurora_ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_aurora_ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_aurora_ic_wifi_signal_1.xml create mode 100644 app/src/main/res/drawable-v24/preview_aurora_ic_wifi_signal_2.xml create mode 100644 app/src/main/res/drawable-v24/preview_aurora_ic_wifi_signal_3.xml create mode 100644 app/src/main/res/drawable-v24/preview_aurora_ic_wifi_signal_4.xml create mode 100644 app/src/main/res/drawable-v24/preview_bars_ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_bars_ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_bars_ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_bars_ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_bars_ic_wifi_signal_1.xml create mode 100644 app/src/main/res/drawable-v24/preview_bars_ic_wifi_signal_2.xml create mode 100644 app/src/main/res/drawable-v24/preview_bars_ic_wifi_signal_3.xml create mode 100644 app/src/main/res/drawable-v24/preview_bars_ic_wifi_signal_4.xml create mode 100644 app/src/main/res/drawable-v24/preview_butterfly_ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_butterfly_ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_butterfly_ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_butterfly_ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_circle_ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_circle_ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_circle_ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_circle_ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_color_picker_border.xml create mode 100644 app/src/main/res/drawable-v24/preview_daun_ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_daun_ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_daun_ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_daun_ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_dec_ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_dec_ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_dec_ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_dec_ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_deep_ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_deep_ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_deep_ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_deep_ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_dora_ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_dora_ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_dora_ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_dora_ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_dora_ic_wifi_signal_1.xml create mode 100644 app/src/main/res/drawable-v24/preview_dora_ic_wifi_signal_2.xml create mode 100644 app/src/main/res/drawable-v24/preview_dora_ic_wifi_signal_3.xml create mode 100644 app/src/main/res/drawable-v24/preview_dora_ic_wifi_signal_4.xml create mode 100644 app/src/main/res/drawable-v24/preview_equal_ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_equal_ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_equal_ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_equal_ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_faint_ui_ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_faint_ui_ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_faint_ui_ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_faint_ui_ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_faint_ui_ic_wifi_signal_1.xml create mode 100644 app/src/main/res/drawable-v24/preview_faint_ui_ic_wifi_signal_2.xml create mode 100644 app/src/main/res/drawable-v24/preview_faint_ui_ic_wifi_signal_3.xml create mode 100644 app/src/main/res/drawable-v24/preview_faint_ui_ic_wifi_signal_4.xml create mode 100644 app/src/main/res/drawable-v24/preview_fan_ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_fan_ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_fan_ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_fan_ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_gradicon_ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_gradicon_ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_gradicon_ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_gradicon_ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_gradicon_ic_wifi_signal_1.xml create mode 100644 app/src/main/res/drawable-v24/preview_gradicon_ic_wifi_signal_2.xml create mode 100644 app/src/main/res/drawable-v24/preview_gradicon_ic_wifi_signal_3.xml create mode 100644 app/src/main/res/drawable-v24/preview_gradicon_ic_wifi_signal_4.xml create mode 100644 app/src/main/res/drawable-v24/preview_huawei_ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_huawei_ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_huawei_ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_huawei_ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_inside_ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_inside_ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_inside_ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_inside_ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_inside_ic_wifi_signal_1.xml create mode 100644 app/src/main/res/drawable-v24/preview_inside_ic_wifi_signal_2.xml create mode 100644 app/src/main/res/drawable-v24/preview_inside_ic_wifi_signal_3.xml create mode 100644 app/src/main/res/drawable-v24/preview_inside_ic_wifi_signal_4.xml create mode 100644 app/src/main/res/drawable-v24/preview_ios_ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_ios_ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_ios_ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_ios_ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_lorn_ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_lorn_ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_lorn_ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_lorn_ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_lorn_ic_wifi_signal_1.xml create mode 100644 app/src/main/res/drawable-v24/preview_lorn_ic_wifi_signal_2.xml create mode 100644 app/src/main/res/drawable-v24/preview_lorn_ic_wifi_signal_3.xml create mode 100644 app/src/main/res/drawable-v24/preview_lorn_ic_wifi_signal_4.xml create mode 100644 app/src/main/res/drawable-v24/preview_mini_ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_mini_ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_mini_ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_mini_ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_nothing_dot_ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_nothing_dot_ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_nothing_dot_ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_nothing_dot_ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_nothing_dot_ic_wifi_signal_1.xml create mode 100644 app/src/main/res/drawable-v24/preview_nothing_dot_ic_wifi_signal_2.xml create mode 100644 app/src/main/res/drawable-v24/preview_nothing_dot_ic_wifi_signal_3.xml create mode 100644 app/src/main/res/drawable-v24/preview_nothing_dot_ic_wifi_signal_4.xml create mode 100644 app/src/main/res/drawable-v24/preview_odin_ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_odin_ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_odin_ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_odin_ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_pills_ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_pills_ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_pills_ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_pills_ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_plumpy_ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_plumpy_ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_plumpy_ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_plumpy_ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_plumpy_ic_wifi_signal_1.xml create mode 100644 app/src/main/res/drawable-v24/preview_plumpy_ic_wifi_signal_2.xml create mode 100644 app/src/main/res/drawable-v24/preview_plumpy_ic_wifi_signal_3.xml create mode 100644 app/src/main/res/drawable-v24/preview_plumpy_ic_wifi_signal_4.xml create mode 100644 app/src/main/res/drawable-v24/preview_rel_ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_rel_ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_rel_ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_rel_ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_roman_ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_roman_ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_roman_ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_roman_ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_round_ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_round_ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_round_ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_round_ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_round_ic_wifi_signal_1.xml create mode 100644 app/src/main/res/drawable-v24/preview_round_ic_wifi_signal_2.xml create mode 100644 app/src/main/res/drawable-v24/preview_round_ic_wifi_signal_3.xml create mode 100644 app/src/main/res/drawable-v24/preview_round_ic_wifi_signal_4.xml create mode 100644 app/src/main/res/drawable-v24/preview_scroll_ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_scroll_ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_scroll_ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_scroll_ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_sea_ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_sea_ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_sea_ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_sea_ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_sneaky_ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_sneaky_ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_sneaky_ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_sneaky_ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_sneaky_ic_wifi_signal_1.xml create mode 100644 app/src/main/res/drawable-v24/preview_sneaky_ic_wifi_signal_2.xml create mode 100644 app/src/main/res/drawable-v24/preview_sneaky_ic_wifi_signal_3.xml create mode 100644 app/src/main/res/drawable-v24/preview_sneaky_ic_wifi_signal_4.xml create mode 100644 app/src/main/res/drawable-v24/preview_stack_ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_stack_ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_stack_ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_stack_ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_stroke_ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_stroke_ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_stroke_ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_stroke_ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_stroke_ic_wifi_signal_1.xml create mode 100644 app/src/main/res/drawable-v24/preview_stroke_ic_wifi_signal_2.xml create mode 100644 app/src/main/res/drawable-v24/preview_stroke_ic_wifi_signal_3.xml create mode 100644 app/src/main/res/drawable-v24/preview_stroke_ic_wifi_signal_4.xml create mode 100644 app/src/main/res/drawable-v24/preview_wannui_ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_wannui_ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_wannui_ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_wannui_ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_wavy_ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_wavy_ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_wavy_ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_wavy_ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_wavy_ic_wifi_signal_1.xml create mode 100644 app/src/main/res/drawable-v24/preview_wavy_ic_wifi_signal_2.xml create mode 100644 app/src/main/res/drawable-v24/preview_wavy_ic_wifi_signal_3.xml create mode 100644 app/src/main/res/drawable-v24/preview_wavy_ic_wifi_signal_4.xml create mode 100644 app/src/main/res/drawable-v24/preview_weed_ic_wifi_signal_1.xml create mode 100644 app/src/main/res/drawable-v24/preview_weed_ic_wifi_signal_2.xml create mode 100644 app/src/main/res/drawable-v24/preview_weed_ic_wifi_signal_3.xml create mode 100644 app/src/main/res/drawable-v24/preview_weed_ic_wifi_signal_4.xml create mode 100644 app/src/main/res/drawable-v24/preview_windows_ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_windows_ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_windows_ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_windows_ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_wing_ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_wing_ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_wing_ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_wing_ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_xperia_ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_xperia_ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_xperia_ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_xperia_ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_xperia_ic_wifi_signal_1.xml create mode 100644 app/src/main/res/drawable-v24/preview_xperia_ic_wifi_signal_2.xml create mode 100644 app/src/main/res/drawable-v24/preview_xperia_ic_wifi_signal_3.xml create mode 100644 app/src/main/res/drawable-v24/preview_xperia_ic_wifi_signal_4.xml create mode 100644 app/src/main/res/drawable-v24/preview_zigzag_ic_signal_cellular_1_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_zigzag_ic_signal_cellular_2_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_zigzag_ic_signal_cellular_3_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_zigzag_ic_signal_cellular_4_4_bar.xml create mode 100644 app/src/main/res/drawable-v24/preview_zigzag_ic_wifi_signal_1.xml create mode 100644 app/src/main/res/drawable-v24/preview_zigzag_ic_wifi_signal_2.xml create mode 100644 app/src/main/res/drawable-v24/preview_zigzag_ic_wifi_signal_3.xml create mode 100644 app/src/main/res/drawable-v24/preview_zigzag_ic_wifi_signal_4.xml create mode 100644 app/src/main/res/drawable/action_bar_item_background_material.xml create mode 100644 app/src/main/res/drawable/action_bar_item_background_material_error.xml create mode 100644 app/src/main/res/drawable/container_small.xml create mode 100644 app/src/main/res/drawable/ic_clear.xml create mode 100644 app/src/main/res/drawable/ic_history.xml create mode 100644 app/src/main/res/drawable/ic_info_duotone.xml create mode 100644 app/src/main/res/drawable/ic_translate.xml delete mode 100644 app/src/main/res/layout/activity_home_page.xml create mode 100644 app/src/main/res/layout/activity_main.xml create mode 100644 app/src/main/res/layout/cpv_preference_circle.xml create mode 100644 app/src/main/res/layout/cpv_preference_circle_large.xml create mode 100644 app/src/main/res/layout/cpv_preference_square.xml create mode 100644 app/src/main/res/layout/cpv_preference_square_large.xml create mode 100644 app/src/main/res/layout/custom_preference_category.xml create mode 100644 app/src/main/res/layout/custom_preference_color.xml create mode 100644 app/src/main/res/layout/custom_preference_edit_text.xml create mode 100644 app/src/main/res/layout/custom_preference_filepicker.xml create mode 100644 app/src/main/res/layout/custom_preference_list.xml create mode 100644 app/src/main/res/layout/custom_preference_menu.xml create mode 100644 app/src/main/res/layout/custom_preference_recyclerview.xml create mode 100644 app/src/main/res/layout/custom_preference_slider.xml create mode 100644 app/src/main/res/layout/custom_preference_switch.xml create mode 100644 app/src/main/res/layout/custom_preference_time_picker.xml delete mode 100644 app/src/main/res/layout/fragment_home.xml rename app/src/main/res/layout/{fragment_tweaks.xml => fragment_preference_container.xml} (58%) create mode 100644 app/src/main/res/layout/fragment_preference_container_home.xml delete mode 100644 app/src/main/res/layout/fragment_settings.xml delete mode 100644 app/src/main/res/layout/fragment_weather_settings.xml delete mode 100644 app/src/main/res/layout/fragment_xposed_background_chip.xml delete mode 100644 app/src/main/res/layout/fragment_xposed_battery_style.xml create mode 100644 app/src/main/res/layout/fragment_xposed_clock_chip.xml delete mode 100644 app/src/main/res/layout/fragment_xposed_depth_wallpaper.xml delete mode 100644 app/src/main/res/layout/fragment_xposed_header_clock.xml delete mode 100644 app/src/main/res/layout/fragment_xposed_header_image.xml delete mode 100644 app/src/main/res/layout/fragment_xposed_lockscreen_clock.xml delete mode 100644 app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml delete mode 100644 app/src/main/res/layout/fragment_xposed_lockscreen_widgets.xml delete mode 100644 app/src/main/res/layout/fragment_xposed_menu.xml delete mode 100644 app/src/main/res/layout/fragment_xposed_others.xml delete mode 100644 app/src/main/res/layout/fragment_xposed_quick_settings.xml create mode 100644 app/src/main/res/layout/fragment_xposed_status_icons_chip.xml delete mode 100644 app/src/main/res/layout/fragment_xposed_statusbar.xml delete mode 100644 app/src/main/res/layout/fragment_xposed_themes.xml delete mode 100644 app/src/main/res/layout/fragment_xposed_transparency_blur.xml delete mode 100644 app/src/main/res/layout/fragment_xposed_volume_panel.xml create mode 100644 app/src/main/res/layout/preference_category.xml create mode 100644 app/src/main/res/layout/preference_footer.xml create mode 100644 app/src/main/res/layout/preference_list_item.xml create mode 100644 app/src/main/res/layout/preference_material_switch.xml create mode 100644 app/src/main/res/layout/preference_selector_with_widget.xml create mode 100644 app/src/main/res/layout/preference_widget_checkbox.xml create mode 100644 app/src/main/res/layout/preference_widget_radiobutton.xml create mode 100644 app/src/main/res/layout/searchpreference_fragment.xml create mode 100644 app/src/main/res/layout/searchpreference_list_item_history.xml create mode 100644 app/src/main/res/layout/searchpreference_list_item_result.xml create mode 100644 app/src/main/res/layout/searchpreference_preference.xml create mode 100644 app/src/main/res/layout/searchpreference_searchbar.xml create mode 100644 app/src/main/res/layout/view_bottom_sheet_dialog_layout.xml delete mode 100644 app/src/main/res/layout/view_status_bar_chip.xml delete mode 100644 app/src/main/res/layout/view_status_icons_chip.xml create mode 100644 app/src/main/res/layout/view_widget_title_misc.xml create mode 100644 app/src/main/res/menu/default_menu.xml create mode 100644 app/src/main/res/menu/home_menu.xml rename app/src/main/res/menu/{settings_menu.xml => search_menu.xml} (100%) create mode 100644 app/src/main/res/menu/search_more.xml delete mode 100644 app/src/main/res/navigation/nav_home_page.xml delete mode 100644 app/src/main/res/navigation/nav_xposed_menu.xml create mode 100644 app/src/main/res/xml/home.xml create mode 100644 app/src/main/res/xml/settings.xml create mode 100644 app/src/main/res/xml/tweaks.xml create mode 100644 app/src/main/res/xml/xposed.xml create mode 100644 app/src/main/res/xml/xposed_background_chip.xml create mode 100644 app/src/main/res/xml/xposed_battery_style.xml create mode 100644 app/src/main/res/xml/xposed_depth_wallpaper.xml create mode 100644 app/src/main/res/xml/xposed_header_clock.xml create mode 100644 app/src/main/res/xml/xposed_header_image.xml create mode 100644 app/src/main/res/xml/xposed_lockscreen_clock.xml create mode 100644 app/src/main/res/xml/xposed_lockscreen_weather.xml create mode 100644 app/src/main/res/xml/xposed_lockscreen_widget.xml create mode 100644 app/src/main/res/xml/xposed_others.xml create mode 100644 app/src/main/res/xml/xposed_quick_settings.xml create mode 100644 app/src/main/res/xml/xposed_statusbar.xml create mode 100644 app/src/main/res/xml/xposed_themes.xml create mode 100644 app/src/main/res/xml/xposed_transparency_blur.xml create mode 100644 app/src/main/res/xml/xposed_volume_panel.xml create mode 100644 app/src/main/res/xml/xposed_weather_settings.xml diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 7ec4584f7..039c08663 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -129,7 +129,7 @@ dependencies { implementation(libs.kotlinx.coroutines.android) // Color Picker - implementation(libs.colorpicker) + implementation(libs.jaredrummler.colorpicker) // Splash Screen implementation(libs.androidx.core.splashscreen) @@ -143,6 +143,9 @@ dependencies { // Zip Util implementation(libs.zip4j) + // Preference + implementation(libs.androidx.preference.ktx) + // Remote Preference implementation(libs.remotepreferences) @@ -195,12 +198,16 @@ dependencies { implementation(libs.com.google.android.gms.play.services.mlkit.subject.segmentation) implementation(libs.play.services.base) + // Blur View + implementation(libs.blurview) + // Misc implementation(libs.androidx.appcompat) implementation(libs.androidx.constraintlayout) implementation(libs.androidx.work.runtime) implementation(libs.androidx.work.runtime.ktx) implementation(libs.slf4j.api) + implementation(libs.commons.text) } tasks.register("printVersionName") { diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index dae69ac1a..474870070 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -21,11 +21,15 @@ public static int d(...); } +# Activity and Fragment names +-keep class com.drdisagree.iconify.ui.activities.** +-keep class com.drdisagree.iconify.ui.fragments.** + # Xposed -keep class de.robv.android.xposed.** -keep class com.drdisagree.iconify.xposed.InitHook -keepnames class com.drdisagree.iconify.xposed.** --keepnames class com.drdisagree.iconify.config.XPrefs +-keepnames class com.drdisagree.iconify.xposed.utils.XPrefs -keep class com.drdisagree.iconify.xposed.** { (android.content.Context); } diff --git a/app/src/main/assets/Overlays/android/SGIC1/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC1/res/values/strings.xml deleted file mode 100644 index f3b6ce52c..000000000 --- a/app/src/main/assets/Overlays/android/SGIC1/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Aquarium - - - diff --git a/app/src/main/assets/Overlays/android/SGIC10/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC10/res/values/strings.xml deleted file mode 100644 index 1be21314f..000000000 --- a/app/src/main/assets/Overlays/android/SGIC10/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - ZigZag - - - diff --git a/app/src/main/assets/Overlays/android/SGIC11/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC11/res/values/strings.xml deleted file mode 100644 index be245cdac..000000000 --- a/app/src/main/assets/Overlays/android/SGIC11/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Equal - - - diff --git a/app/src/main/assets/Overlays/android/SGIC12/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC12/res/values/strings.xml deleted file mode 100644 index e55ad1f20..000000000 --- a/app/src/main/assets/Overlays/android/SGIC12/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Faint UI - - - diff --git a/app/src/main/assets/Overlays/android/SGIC13/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC13/res/values/strings.xml deleted file mode 100644 index f3204944d..000000000 --- a/app/src/main/assets/Overlays/android/SGIC13/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Fan - - - diff --git a/app/src/main/assets/Overlays/android/SGIC14/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC14/res/values/strings.xml deleted file mode 100644 index 40a4476f8..000000000 --- a/app/src/main/assets/Overlays/android/SGIC14/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Lorn - - - diff --git a/app/src/main/assets/Overlays/android/SGIC15/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC15/res/values/strings.xml deleted file mode 100644 index d73727615..000000000 --- a/app/src/main/assets/Overlays/android/SGIC15/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Gradicon - - - diff --git a/app/src/main/assets/Overlays/android/SGIC16/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC16/res/values/strings.xml deleted file mode 100644 index e8609f481..000000000 --- a/app/src/main/assets/Overlays/android/SGIC16/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Huawei - - - diff --git a/app/src/main/assets/Overlays/android/SGIC17/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC17/res/values/strings.xml deleted file mode 100644 index 427e4f1fd..000000000 --- a/app/src/main/assets/Overlays/android/SGIC17/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Inside - - - diff --git a/app/src/main/assets/Overlays/android/SGIC18/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC18/res/values/strings.xml deleted file mode 100644 index aa1db3a2a..000000000 --- a/app/src/main/assets/Overlays/android/SGIC18/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - iOS - - - diff --git a/app/src/main/assets/Overlays/android/SGIC19/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC19/res/values/strings.xml deleted file mode 100644 index 3762c523b..000000000 --- a/app/src/main/assets/Overlays/android/SGIC19/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Mini - - - diff --git a/app/src/main/assets/Overlays/android/SGIC2/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC2/res/values/strings.xml deleted file mode 100644 index 8e225afcb..000000000 --- a/app/src/main/assets/Overlays/android/SGIC2/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Aurora - - - diff --git a/app/src/main/assets/Overlays/android/SGIC20/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC20/res/values/strings.xml deleted file mode 100644 index 11f30a066..000000000 --- a/app/src/main/assets/Overlays/android/SGIC20/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Nothing Dot - - - diff --git a/app/src/main/assets/Overlays/android/SGIC21/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC21/res/values/strings.xml deleted file mode 100644 index 59b42b440..000000000 --- a/app/src/main/assets/Overlays/android/SGIC21/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Odin - - - diff --git a/app/src/main/assets/Overlays/android/SGIC22/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC22/res/values/strings.xml deleted file mode 100644 index 26466f468..000000000 --- a/app/src/main/assets/Overlays/android/SGIC22/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Pills - - - diff --git a/app/src/main/assets/Overlays/android/SGIC23/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC23/res/values/strings.xml deleted file mode 100644 index d17baff6f..000000000 --- a/app/src/main/assets/Overlays/android/SGIC23/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Plumpy - - - diff --git a/app/src/main/assets/Overlays/android/SGIC24/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC24/res/values/strings.xml deleted file mode 100644 index 7a64b29b6..000000000 --- a/app/src/main/assets/Overlays/android/SGIC24/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Rel - - - diff --git a/app/src/main/assets/Overlays/android/SGIC25/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC25/res/values/strings.xml deleted file mode 100644 index e75319d6b..000000000 --- a/app/src/main/assets/Overlays/android/SGIC25/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Roman - - - diff --git a/app/src/main/assets/Overlays/android/SGIC26/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC26/res/values/strings.xml deleted file mode 100644 index a98302b17..000000000 --- a/app/src/main/assets/Overlays/android/SGIC26/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Round - - - diff --git a/app/src/main/assets/Overlays/android/SGIC27/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC27/res/values/strings.xml deleted file mode 100644 index 84127f60e..000000000 --- a/app/src/main/assets/Overlays/android/SGIC27/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Scroll - - - diff --git a/app/src/main/assets/Overlays/android/SGIC28/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC28/res/values/strings.xml deleted file mode 100644 index acc80ba85..000000000 --- a/app/src/main/assets/Overlays/android/SGIC28/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Sea - - - diff --git a/app/src/main/assets/Overlays/android/SGIC29/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC29/res/values/strings.xml deleted file mode 100644 index 5da81e973..000000000 --- a/app/src/main/assets/Overlays/android/SGIC29/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Sneaky - - - diff --git a/app/src/main/assets/Overlays/android/SGIC3/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC3/res/values/strings.xml deleted file mode 100644 index 06a64025e..000000000 --- a/app/src/main/assets/Overlays/android/SGIC3/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Bars - - - diff --git a/app/src/main/assets/Overlays/android/SGIC30/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC30/res/values/strings.xml deleted file mode 100644 index 64c67bd18..000000000 --- a/app/src/main/assets/Overlays/android/SGIC30/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Stack - - - diff --git a/app/src/main/assets/Overlays/android/SGIC31/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC31/res/values/strings.xml deleted file mode 100644 index e0693e37a..000000000 --- a/app/src/main/assets/Overlays/android/SGIC31/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Stroke - - - diff --git a/app/src/main/assets/Overlays/android/SGIC32/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC32/res/values/strings.xml deleted file mode 100644 index c80125e55..000000000 --- a/app/src/main/assets/Overlays/android/SGIC32/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Wannui - - - diff --git a/app/src/main/assets/Overlays/android/SGIC33/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC33/res/values/strings.xml deleted file mode 100644 index ae110b5ab..000000000 --- a/app/src/main/assets/Overlays/android/SGIC33/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Wavy - - - diff --git a/app/src/main/assets/Overlays/android/SGIC34/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC34/res/values/strings.xml deleted file mode 100644 index f83b393b2..000000000 --- a/app/src/main/assets/Overlays/android/SGIC34/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Windows - - - diff --git a/app/src/main/assets/Overlays/android/SGIC35/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC35/res/values/strings.xml deleted file mode 100644 index 85cfeb3e9..000000000 --- a/app/src/main/assets/Overlays/android/SGIC35/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Wing - - - diff --git a/app/src/main/assets/Overlays/android/SGIC36/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC36/res/values/strings.xml deleted file mode 100644 index 4b7715d5e..000000000 --- a/app/src/main/assets/Overlays/android/SGIC36/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Xperia - - - diff --git a/app/src/main/assets/Overlays/android/SGIC4/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC4/res/values/strings.xml deleted file mode 100644 index 6a27a2217..000000000 --- a/app/src/main/assets/Overlays/android/SGIC4/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Butterfly - - - diff --git a/app/src/main/assets/Overlays/android/SGIC5/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC5/res/values/strings.xml deleted file mode 100644 index 42cbc454d..000000000 --- a/app/src/main/assets/Overlays/android/SGIC5/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Circle - - - diff --git a/app/src/main/assets/Overlays/android/SGIC6/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC6/res/values/strings.xml deleted file mode 100644 index b1cb6415d..000000000 --- a/app/src/main/assets/Overlays/android/SGIC6/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Daun - - - diff --git a/app/src/main/assets/Overlays/android/SGIC7/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC7/res/values/strings.xml deleted file mode 100644 index 16ad17437..000000000 --- a/app/src/main/assets/Overlays/android/SGIC7/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Dec - - - diff --git a/app/src/main/assets/Overlays/android/SGIC8/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC8/res/values/strings.xml deleted file mode 100644 index 3f172ef08..000000000 --- a/app/src/main/assets/Overlays/android/SGIC8/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Deep - - - diff --git a/app/src/main/assets/Overlays/android/SGIC9/res/values/strings.xml b/app/src/main/assets/Overlays/android/SGIC9/res/values/strings.xml deleted file mode 100644 index 4bfab9638..000000000 --- a/app/src/main/assets/Overlays/android/SGIC9/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Dora - - - diff --git a/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_signal_wifi_transient_animation.xml b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_signal_wifi_transient_animation.xml new file mode 100644 index 000000000..17a804f7d --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_signal_wifi_transient_animation.xml @@ -0,0 +1,14 @@ + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_signal_wifi_transient_animation_drawable.xml b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_signal_wifi_transient_animation_drawable.xml new file mode 100644 index 000000000..17a804f7d --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_signal_wifi_transient_animation_drawable.xml @@ -0,0 +1,14 @@ + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_4_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_4_signal_0.xml new file mode 100644 index 000000000..17a804f7d --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_4_signal_0.xml @@ -0,0 +1,14 @@ + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_4_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_4_signal_1.xml new file mode 100644 index 000000000..fec096e70 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_4_signal_1.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_4_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_4_signal_2.xml new file mode 100644 index 000000000..5dd08b195 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_4_signal_2.xml @@ -0,0 +1,30 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_4_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_4_signal_3.xml new file mode 100644 index 000000000..1974b4d26 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_4_signal_3.xml @@ -0,0 +1,38 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_4_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_4_signal_4.xml new file mode 100644 index 000000000..18eec4e44 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_4_signal_4.xml @@ -0,0 +1,38 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_5_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_5_signal_0.xml new file mode 100644 index 000000000..17a804f7d --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_5_signal_0.xml @@ -0,0 +1,14 @@ + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_5_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_5_signal_1.xml new file mode 100644 index 000000000..fec096e70 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_5_signal_1.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_5_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_5_signal_2.xml new file mode 100644 index 000000000..5dd08b195 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_5_signal_2.xml @@ -0,0 +1,30 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_5_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_5_signal_3.xml new file mode 100644 index 000000000..1974b4d26 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_5_signal_3.xml @@ -0,0 +1,38 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_5_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_5_signal_4.xml new file mode 100644 index 000000000..18eec4e44 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_5_signal_4.xml @@ -0,0 +1,38 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_6_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_6_signal_0.xml new file mode 100644 index 000000000..17a804f7d --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_6_signal_0.xml @@ -0,0 +1,14 @@ + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_6_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_6_signal_1.xml new file mode 100644 index 000000000..fec096e70 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_6_signal_1.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_6_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_6_signal_2.xml new file mode 100644 index 000000000..5dd08b195 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_6_signal_2.xml @@ -0,0 +1,30 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_6_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_6_signal_3.xml new file mode 100644 index 000000000..1974b4d26 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_6_signal_3.xml @@ -0,0 +1,38 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_6_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_6_signal_4.xml new file mode 100644 index 000000000..18eec4e44 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI1/res/drawable/ic_wifi_6_signal_4.xml @@ -0,0 +1,38 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI1/res/values/strings.xml b/app/src/main/assets/Overlays/android/WIFI1/res/values/strings.xml deleted file mode 100644 index 8e225afcb..000000000 --- a/app/src/main/assets/Overlays/android/WIFI1/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Aurora - - - diff --git a/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_signal_wifi_transient_animation.xml b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_signal_wifi_transient_animation.xml new file mode 100644 index 000000000..de80ec9e8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_signal_wifi_transient_animation.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_signal_wifi_transient_animation_drawable.xml b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_signal_wifi_transient_animation_drawable.xml new file mode 100644 index 000000000..de80ec9e8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_signal_wifi_transient_animation_drawable.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_4_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_4_signal_0.xml new file mode 100644 index 000000000..de80ec9e8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_4_signal_0.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_4_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_4_signal_1.xml new file mode 100644 index 000000000..f8fbf1e32 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_4_signal_1.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_4_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_4_signal_2.xml new file mode 100644 index 000000000..226d28263 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_4_signal_2.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_4_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_4_signal_3.xml new file mode 100644 index 000000000..de80ec9e8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_4_signal_3.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_4_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_4_signal_4.xml new file mode 100644 index 000000000..de80ec9e8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_4_signal_4.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_5_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_5_signal_0.xml new file mode 100644 index 000000000..de80ec9e8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_5_signal_0.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_5_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_5_signal_1.xml new file mode 100644 index 000000000..f8fbf1e32 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_5_signal_1.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_5_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_5_signal_2.xml new file mode 100644 index 000000000..226d28263 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_5_signal_2.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_5_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_5_signal_3.xml new file mode 100644 index 000000000..de80ec9e8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_5_signal_3.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_5_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_5_signal_4.xml new file mode 100644 index 000000000..de80ec9e8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_5_signal_4.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_6_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_6_signal_0.xml new file mode 100644 index 000000000..de80ec9e8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_6_signal_0.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_6_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_6_signal_1.xml new file mode 100644 index 000000000..f8fbf1e32 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_6_signal_1.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_6_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_6_signal_2.xml new file mode 100644 index 000000000..226d28263 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_6_signal_2.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_6_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_6_signal_3.xml new file mode 100644 index 000000000..de80ec9e8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_6_signal_3.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_6_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_6_signal_4.xml new file mode 100644 index 000000000..de80ec9e8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI10/res/drawable/ic_wifi_6_signal_4.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI10/res/values/strings.xml b/app/src/main/assets/Overlays/android/WIFI10/res/values/strings.xml deleted file mode 100644 index a98302b17..000000000 --- a/app/src/main/assets/Overlays/android/WIFI10/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Round - - - diff --git a/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_signal_wifi_transient_animation.xml b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_signal_wifi_transient_animation.xml new file mode 100644 index 000000000..abc3a1a1b --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_signal_wifi_transient_animation.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_signal_wifi_transient_animation_drawable.xml b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_signal_wifi_transient_animation_drawable.xml new file mode 100644 index 000000000..abc3a1a1b --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_signal_wifi_transient_animation_drawable.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_4_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_4_signal_0.xml new file mode 100644 index 000000000..abc3a1a1b --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_4_signal_0.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_4_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_4_signal_1.xml new file mode 100644 index 000000000..465a729ab --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_4_signal_1.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_4_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_4_signal_2.xml new file mode 100644 index 000000000..a4553d7ec --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_4_signal_2.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_4_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_4_signal_3.xml new file mode 100644 index 000000000..df7b1d63a --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_4_signal_3.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_4_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_4_signal_4.xml new file mode 100644 index 000000000..abc3a1a1b --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_4_signal_4.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_5_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_5_signal_0.xml new file mode 100644 index 000000000..abc3a1a1b --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_5_signal_0.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_5_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_5_signal_1.xml new file mode 100644 index 000000000..465a729ab --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_5_signal_1.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_5_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_5_signal_2.xml new file mode 100644 index 000000000..a4553d7ec --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_5_signal_2.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_5_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_5_signal_3.xml new file mode 100644 index 000000000..df7b1d63a --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_5_signal_3.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_5_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_5_signal_4.xml new file mode 100644 index 000000000..abc3a1a1b --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_5_signal_4.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_6_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_6_signal_0.xml new file mode 100644 index 000000000..abc3a1a1b --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_6_signal_0.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_6_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_6_signal_1.xml new file mode 100644 index 000000000..465a729ab --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_6_signal_1.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_6_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_6_signal_2.xml new file mode 100644 index 000000000..a4553d7ec --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_6_signal_2.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_6_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_6_signal_3.xml new file mode 100644 index 000000000..df7b1d63a --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_6_signal_3.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_6_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_6_signal_4.xml new file mode 100644 index 000000000..abc3a1a1b --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI11/res/drawable/ic_wifi_6_signal_4.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI11/res/values/strings.xml b/app/src/main/assets/Overlays/android/WIFI11/res/values/strings.xml deleted file mode 100644 index 5da81e973..000000000 --- a/app/src/main/assets/Overlays/android/WIFI11/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Sneaky - - - diff --git a/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_signal_wifi_transient_animation.xml b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_signal_wifi_transient_animation.xml new file mode 100644 index 000000000..1119f8131 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_signal_wifi_transient_animation.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_signal_wifi_transient_animation_drawable.xml b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_signal_wifi_transient_animation_drawable.xml new file mode 100644 index 000000000..1119f8131 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_signal_wifi_transient_animation_drawable.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_4_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_4_signal_0.xml new file mode 100644 index 000000000..1119f8131 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_4_signal_0.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_4_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_4_signal_1.xml new file mode 100644 index 000000000..d33292b6b --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_4_signal_1.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_4_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_4_signal_2.xml new file mode 100644 index 000000000..16a2e9902 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_4_signal_2.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_4_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_4_signal_3.xml new file mode 100644 index 000000000..aa17764ba --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_4_signal_3.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_4_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_4_signal_4.xml new file mode 100644 index 000000000..894c47966 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_4_signal_4.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_5_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_5_signal_0.xml new file mode 100644 index 000000000..1119f8131 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_5_signal_0.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_5_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_5_signal_1.xml new file mode 100644 index 000000000..d33292b6b --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_5_signal_1.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_5_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_5_signal_2.xml new file mode 100644 index 000000000..16a2e9902 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_5_signal_2.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_5_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_5_signal_3.xml new file mode 100644 index 000000000..aa17764ba --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_5_signal_3.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_5_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_5_signal_4.xml new file mode 100644 index 000000000..894c47966 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_5_signal_4.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_6_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_6_signal_0.xml new file mode 100644 index 000000000..1119f8131 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_6_signal_0.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_6_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_6_signal_1.xml new file mode 100644 index 000000000..d33292b6b --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_6_signal_1.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_6_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_6_signal_2.xml new file mode 100644 index 000000000..16a2e9902 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_6_signal_2.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_6_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_6_signal_3.xml new file mode 100644 index 000000000..aa17764ba --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_6_signal_3.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_6_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_6_signal_4.xml new file mode 100644 index 000000000..894c47966 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI12/res/drawable/ic_wifi_6_signal_4.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI12/res/values/strings.xml b/app/src/main/assets/Overlays/android/WIFI12/res/values/strings.xml deleted file mode 100644 index e0693e37a..000000000 --- a/app/src/main/assets/Overlays/android/WIFI12/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Stroke - - - diff --git a/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_signal_wifi_transient_animation.xml b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_signal_wifi_transient_animation.xml new file mode 100644 index 000000000..502071544 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_signal_wifi_transient_animation.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_signal_wifi_transient_animation_drawable.xml b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_signal_wifi_transient_animation_drawable.xml new file mode 100644 index 000000000..502071544 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_signal_wifi_transient_animation_drawable.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_4_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_4_signal_0.xml new file mode 100644 index 000000000..502071544 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_4_signal_0.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_4_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_4_signal_1.xml new file mode 100644 index 000000000..6b42ba14a --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_4_signal_1.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_4_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_4_signal_2.xml new file mode 100644 index 000000000..7617c3fbd --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_4_signal_2.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_4_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_4_signal_3.xml new file mode 100644 index 000000000..746887bc3 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_4_signal_3.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_4_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_4_signal_4.xml new file mode 100644 index 000000000..88ae44047 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_4_signal_4.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_5_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_5_signal_0.xml new file mode 100644 index 000000000..502071544 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_5_signal_0.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_5_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_5_signal_1.xml new file mode 100644 index 000000000..6b42ba14a --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_5_signal_1.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_5_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_5_signal_2.xml new file mode 100644 index 000000000..7617c3fbd --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_5_signal_2.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_5_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_5_signal_3.xml new file mode 100644 index 000000000..746887bc3 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_5_signal_3.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_5_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_5_signal_4.xml new file mode 100644 index 000000000..88ae44047 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_5_signal_4.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_6_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_6_signal_0.xml new file mode 100644 index 000000000..502071544 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_6_signal_0.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_6_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_6_signal_1.xml new file mode 100644 index 000000000..6b42ba14a --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_6_signal_1.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_6_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_6_signal_2.xml new file mode 100644 index 000000000..7617c3fbd --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_6_signal_2.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_6_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_6_signal_3.xml new file mode 100644 index 000000000..746887bc3 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_6_signal_3.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_6_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_6_signal_4.xml new file mode 100644 index 000000000..88ae44047 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI13/res/drawable/ic_wifi_6_signal_4.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI13/res/values/strings.xml b/app/src/main/assets/Overlays/android/WIFI13/res/values/strings.xml deleted file mode 100644 index ae110b5ab..000000000 --- a/app/src/main/assets/Overlays/android/WIFI13/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Wavy - - - diff --git a/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_signal_wifi_transient_animation.xml b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_signal_wifi_transient_animation.xml new file mode 100644 index 000000000..3e389c657 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_signal_wifi_transient_animation.xml @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_signal_wifi_transient_animation_drawable.xml b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_signal_wifi_transient_animation_drawable.xml new file mode 100644 index 000000000..3e389c657 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_signal_wifi_transient_animation_drawable.xml @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_4_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_4_signal_0.xml new file mode 100644 index 000000000..3e389c657 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_4_signal_0.xml @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_4_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_4_signal_1.xml new file mode 100644 index 000000000..204e906b2 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_4_signal_1.xml @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_4_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_4_signal_2.xml new file mode 100644 index 000000000..f5a538cdb --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_4_signal_2.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_4_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_4_signal_3.xml new file mode 100644 index 000000000..b57747aa4 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_4_signal_3.xml @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_4_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_4_signal_4.xml new file mode 100644 index 000000000..66fb6e362 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_4_signal_4.xml @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_5_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_5_signal_0.xml new file mode 100644 index 000000000..3e389c657 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_5_signal_0.xml @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_5_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_5_signal_1.xml new file mode 100644 index 000000000..204e906b2 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_5_signal_1.xml @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_5_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_5_signal_2.xml new file mode 100644 index 000000000..f5a538cdb --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_5_signal_2.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_5_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_5_signal_3.xml new file mode 100644 index 000000000..b57747aa4 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_5_signal_3.xml @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_5_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_5_signal_4.xml new file mode 100644 index 000000000..66fb6e362 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_5_signal_4.xml @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_6_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_6_signal_0.xml new file mode 100644 index 000000000..3e389c657 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_6_signal_0.xml @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_6_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_6_signal_1.xml new file mode 100644 index 000000000..204e906b2 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_6_signal_1.xml @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_6_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_6_signal_2.xml new file mode 100644 index 000000000..f5a538cdb --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_6_signal_2.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_6_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_6_signal_3.xml new file mode 100644 index 000000000..b57747aa4 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_6_signal_3.xml @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_6_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_6_signal_4.xml new file mode 100644 index 000000000..66fb6e362 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI14/res/drawable/ic_wifi_6_signal_4.xml @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI14/res/values/strings.xml b/app/src/main/assets/Overlays/android/WIFI14/res/values/strings.xml deleted file mode 100644 index bd7c23037..000000000 --- a/app/src/main/assets/Overlays/android/WIFI14/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Weed - - - diff --git a/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_signal_wifi_transient_animation.xml b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_signal_wifi_transient_animation.xml new file mode 100644 index 000000000..056f813de --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_signal_wifi_transient_animation.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_signal_wifi_transient_animation_drawable.xml b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_signal_wifi_transient_animation_drawable.xml new file mode 100644 index 000000000..056f813de --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_signal_wifi_transient_animation_drawable.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_4_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_4_signal_0.xml new file mode 100644 index 000000000..056f813de --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_4_signal_0.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_4_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_4_signal_1.xml new file mode 100644 index 000000000..d1a978fa8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_4_signal_1.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_4_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_4_signal_2.xml new file mode 100644 index 000000000..f9e7b669c --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_4_signal_2.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_4_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_4_signal_3.xml new file mode 100644 index 000000000..056f813de --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_4_signal_3.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_4_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_4_signal_4.xml new file mode 100644 index 000000000..056f813de --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_4_signal_4.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_5_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_5_signal_0.xml new file mode 100644 index 000000000..056f813de --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_5_signal_0.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_5_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_5_signal_1.xml new file mode 100644 index 000000000..d1a978fa8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_5_signal_1.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_5_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_5_signal_2.xml new file mode 100644 index 000000000..f9e7b669c --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_5_signal_2.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_5_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_5_signal_3.xml new file mode 100644 index 000000000..056f813de --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_5_signal_3.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_5_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_5_signal_4.xml new file mode 100644 index 000000000..056f813de --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_5_signal_4.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_6_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_6_signal_0.xml new file mode 100644 index 000000000..056f813de --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_6_signal_0.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_6_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_6_signal_1.xml new file mode 100644 index 000000000..d1a978fa8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_6_signal_1.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_6_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_6_signal_2.xml new file mode 100644 index 000000000..f9e7b669c --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_6_signal_2.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_6_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_6_signal_3.xml new file mode 100644 index 000000000..056f813de --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_6_signal_3.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_6_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_6_signal_4.xml new file mode 100644 index 000000000..056f813de --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI15/res/drawable/ic_wifi_6_signal_4.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI15/res/values/strings.xml b/app/src/main/assets/Overlays/android/WIFI15/res/values/strings.xml deleted file mode 100644 index 4b7715d5e..000000000 --- a/app/src/main/assets/Overlays/android/WIFI15/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Xperia - - - diff --git a/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_signal_wifi_transient_animation.xml b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_signal_wifi_transient_animation.xml new file mode 100644 index 000000000..b4c6a3445 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_signal_wifi_transient_animation.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_signal_wifi_transient_animation_drawable.xml b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_signal_wifi_transient_animation_drawable.xml new file mode 100644 index 000000000..b4c6a3445 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_signal_wifi_transient_animation_drawable.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_4_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_4_signal_0.xml new file mode 100644 index 000000000..b4c6a3445 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_4_signal_0.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_4_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_4_signal_1.xml new file mode 100644 index 000000000..e33ba2644 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_4_signal_1.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_4_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_4_signal_2.xml new file mode 100644 index 000000000..83908487d --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_4_signal_2.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_4_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_4_signal_3.xml new file mode 100644 index 000000000..6195b24b0 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_4_signal_3.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_4_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_4_signal_4.xml new file mode 100644 index 000000000..76c0868a4 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_4_signal_4.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_5_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_5_signal_0.xml new file mode 100644 index 000000000..b4c6a3445 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_5_signal_0.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_5_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_5_signal_1.xml new file mode 100644 index 000000000..e33ba2644 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_5_signal_1.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_5_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_5_signal_2.xml new file mode 100644 index 000000000..83908487d --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_5_signal_2.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_5_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_5_signal_3.xml new file mode 100644 index 000000000..6195b24b0 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_5_signal_3.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_5_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_5_signal_4.xml new file mode 100644 index 000000000..76c0868a4 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_5_signal_4.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_6_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_6_signal_0.xml new file mode 100644 index 000000000..b4c6a3445 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_6_signal_0.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_6_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_6_signal_1.xml new file mode 100644 index 000000000..e33ba2644 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_6_signal_1.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_6_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_6_signal_2.xml new file mode 100644 index 000000000..83908487d --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_6_signal_2.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_6_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_6_signal_3.xml new file mode 100644 index 000000000..6195b24b0 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_6_signal_3.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_6_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_6_signal_4.xml new file mode 100644 index 000000000..76c0868a4 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI16/res/drawable/ic_wifi_6_signal_4.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI16/res/values/strings.xml b/app/src/main/assets/Overlays/android/WIFI16/res/values/strings.xml deleted file mode 100644 index 1be21314f..000000000 --- a/app/src/main/assets/Overlays/android/WIFI16/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - ZigZag - - - diff --git a/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_signal_wifi_transient_animation.xml b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_signal_wifi_transient_animation.xml new file mode 100644 index 000000000..2a4327571 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_signal_wifi_transient_animation.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_signal_wifi_transient_animation_drawable.xml b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_signal_wifi_transient_animation_drawable.xml new file mode 100644 index 000000000..2a4327571 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_signal_wifi_transient_animation_drawable.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_4_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_4_signal_0.xml new file mode 100644 index 000000000..2a4327571 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_4_signal_0.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_4_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_4_signal_1.xml new file mode 100644 index 000000000..f05deda6a --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_4_signal_1.xml @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_4_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_4_signal_2.xml new file mode 100644 index 000000000..a6d1cf1be --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_4_signal_2.xml @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_4_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_4_signal_3.xml new file mode 100644 index 000000000..b668f00d7 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_4_signal_3.xml @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_4_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_4_signal_4.xml new file mode 100644 index 000000000..82cf3b616 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_4_signal_4.xml @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_5_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_5_signal_0.xml new file mode 100644 index 000000000..2a4327571 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_5_signal_0.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_5_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_5_signal_1.xml new file mode 100644 index 000000000..f05deda6a --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_5_signal_1.xml @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_5_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_5_signal_2.xml new file mode 100644 index 000000000..a6d1cf1be --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_5_signal_2.xml @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_5_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_5_signal_3.xml new file mode 100644 index 000000000..b668f00d7 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_5_signal_3.xml @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_5_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_5_signal_4.xml new file mode 100644 index 000000000..82cf3b616 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_5_signal_4.xml @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_6_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_6_signal_0.xml new file mode 100644 index 000000000..2a4327571 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_6_signal_0.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_6_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_6_signal_1.xml new file mode 100644 index 000000000..f05deda6a --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_6_signal_1.xml @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_6_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_6_signal_2.xml new file mode 100644 index 000000000..a6d1cf1be --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_6_signal_2.xml @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_6_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_6_signal_3.xml new file mode 100644 index 000000000..b668f00d7 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_6_signal_3.xml @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_6_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_6_signal_4.xml new file mode 100644 index 000000000..82cf3b616 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI2/res/drawable/ic_wifi_6_signal_4.xml @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI2/res/values/strings.xml b/app/src/main/assets/Overlays/android/WIFI2/res/values/strings.xml deleted file mode 100644 index 06a64025e..000000000 --- a/app/src/main/assets/Overlays/android/WIFI2/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Bars - - - diff --git a/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_signal_wifi_transient_animation_drawable.xml b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_signal_wifi_transient_animation_drawable.xml new file mode 100644 index 000000000..17297d38a --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_signal_wifi_transient_animation_drawable.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_4_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_4_signal_0.xml new file mode 100644 index 000000000..17297d38a --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_4_signal_0.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_4_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_4_signal_1.xml new file mode 100644 index 000000000..361725009 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_4_signal_1.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_4_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_4_signal_2.xml new file mode 100644 index 000000000..a9c6992e5 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_4_signal_2.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_4_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_4_signal_3.xml new file mode 100644 index 000000000..d902c2970 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_4_signal_3.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_4_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_4_signal_4.xml new file mode 100644 index 000000000..f96ae041a --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_4_signal_4.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_5_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_5_signal_0.xml new file mode 100644 index 000000000..17297d38a --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_5_signal_0.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_5_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_5_signal_1.xml new file mode 100644 index 000000000..361725009 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_5_signal_1.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_5_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_5_signal_2.xml new file mode 100644 index 000000000..a9c6992e5 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_5_signal_2.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_5_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_5_signal_3.xml new file mode 100644 index 000000000..d902c2970 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_5_signal_3.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_5_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_5_signal_4.xml new file mode 100644 index 000000000..f96ae041a --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_5_signal_4.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_6_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_6_signal_0.xml new file mode 100644 index 000000000..17297d38a --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_6_signal_0.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_6_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_6_signal_1.xml new file mode 100644 index 000000000..361725009 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_6_signal_1.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_6_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_6_signal_2.xml new file mode 100644 index 000000000..a9c6992e5 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_6_signal_2.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_6_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_6_signal_3.xml new file mode 100644 index 000000000..d902c2970 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_6_signal_3.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_6_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_6_signal_4.xml new file mode 100644 index 000000000..f96ae041a --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI3/res/drawable/ic_wifi_6_signal_4.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI3/res/values/strings.xml b/app/src/main/assets/Overlays/android/WIFI3/res/values/strings.xml deleted file mode 100644 index 4bfab9638..000000000 --- a/app/src/main/assets/Overlays/android/WIFI3/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Dora - - - diff --git a/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_4_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_4_signal_0.xml new file mode 100644 index 000000000..59db1a957 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_4_signal_0.xml @@ -0,0 +1,38 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_4_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_4_signal_1.xml new file mode 100644 index 000000000..1ea85488b --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_4_signal_1.xml @@ -0,0 +1,30 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_4_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_4_signal_2.xml new file mode 100644 index 000000000..b366d77d9 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_4_signal_2.xml @@ -0,0 +1,38 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_4_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_4_signal_3.xml new file mode 100644 index 000000000..d827bca42 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_4_signal_3.xml @@ -0,0 +1,46 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_4_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_4_signal_4.xml new file mode 100644 index 000000000..7c0a964be --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_4_signal_4.xml @@ -0,0 +1,46 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_5_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_5_signal_0.xml new file mode 100644 index 000000000..59db1a957 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_5_signal_0.xml @@ -0,0 +1,38 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_5_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_5_signal_1.xml new file mode 100644 index 000000000..1ea85488b --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_5_signal_1.xml @@ -0,0 +1,30 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_5_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_5_signal_2.xml new file mode 100644 index 000000000..b366d77d9 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_5_signal_2.xml @@ -0,0 +1,38 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_5_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_5_signal_3.xml new file mode 100644 index 000000000..d827bca42 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_5_signal_3.xml @@ -0,0 +1,46 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_5_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_5_signal_4.xml new file mode 100644 index 000000000..7c0a964be --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_5_signal_4.xml @@ -0,0 +1,46 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_6_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_6_signal_0.xml new file mode 100644 index 000000000..59db1a957 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_6_signal_0.xml @@ -0,0 +1,38 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_6_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_6_signal_1.xml new file mode 100644 index 000000000..1ea85488b --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_6_signal_1.xml @@ -0,0 +1,30 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_6_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_6_signal_2.xml new file mode 100644 index 000000000..b366d77d9 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_6_signal_2.xml @@ -0,0 +1,38 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_6_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_6_signal_3.xml new file mode 100644 index 000000000..d827bca42 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_6_signal_3.xml @@ -0,0 +1,46 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_6_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_6_signal_4.xml new file mode 100644 index 000000000..7c0a964be --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI4/res/drawable/ic_wifi_6_signal_4.xml @@ -0,0 +1,46 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI4/res/values/strings.xml b/app/src/main/assets/Overlays/android/WIFI4/res/values/strings.xml deleted file mode 100644 index e55ad1f20..000000000 --- a/app/src/main/assets/Overlays/android/WIFI4/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Faint UI - - - diff --git a/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_4_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_4_signal_0.xml new file mode 100644 index 000000000..85643697a --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_4_signal_0.xml @@ -0,0 +1,30 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_4_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_4_signal_1.xml new file mode 100644 index 000000000..500617c4b --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_4_signal_1.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_4_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_4_signal_2.xml new file mode 100644 index 000000000..f0aa6e016 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_4_signal_2.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_4_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_4_signal_3.xml new file mode 100644 index 000000000..23c0e7f0f --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_4_signal_3.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_4_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_4_signal_4.xml new file mode 100644 index 000000000..23c0e7f0f --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_4_signal_4.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_5_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_5_signal_0.xml new file mode 100644 index 000000000..85643697a --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_5_signal_0.xml @@ -0,0 +1,30 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_5_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_5_signal_1.xml new file mode 100644 index 000000000..500617c4b --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_5_signal_1.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_5_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_5_signal_2.xml new file mode 100644 index 000000000..f0aa6e016 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_5_signal_2.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_5_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_5_signal_3.xml new file mode 100644 index 000000000..23c0e7f0f --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_5_signal_3.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_5_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_5_signal_4.xml new file mode 100644 index 000000000..23c0e7f0f --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_5_signal_4.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_6_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_6_signal_0.xml new file mode 100644 index 000000000..85643697a --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_6_signal_0.xml @@ -0,0 +1,30 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_6_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_6_signal_1.xml new file mode 100644 index 000000000..500617c4b --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_6_signal_1.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_6_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_6_signal_2.xml new file mode 100644 index 000000000..f0aa6e016 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_6_signal_2.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_6_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_6_signal_3.xml new file mode 100644 index 000000000..23c0e7f0f --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_6_signal_3.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_6_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_6_signal_4.xml new file mode 100644 index 000000000..23c0e7f0f --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI5/res/drawable/ic_wifi_6_signal_4.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI5/res/values/strings.xml b/app/src/main/assets/Overlays/android/WIFI5/res/values/strings.xml deleted file mode 100644 index ae97c74dd..000000000 --- a/app/src/main/assets/Overlays/android/WIFI5/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Forlorn - - - diff --git a/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_4_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_4_signal_0.xml new file mode 100644 index 000000000..927d22325 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_4_signal_0.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_4_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_4_signal_1.xml new file mode 100644 index 000000000..867de6807 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_4_signal_1.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_4_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_4_signal_2.xml new file mode 100644 index 000000000..e2207408d --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_4_signal_2.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_4_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_4_signal_3.xml new file mode 100644 index 000000000..eef571d59 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_4_signal_3.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_4_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_4_signal_4.xml new file mode 100644 index 000000000..eef571d59 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_4_signal_4.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_5_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_5_signal_0.xml new file mode 100644 index 000000000..927d22325 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_5_signal_0.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_5_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_5_signal_1.xml new file mode 100644 index 000000000..867de6807 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_5_signal_1.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_5_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_5_signal_2.xml new file mode 100644 index 000000000..e2207408d --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_5_signal_2.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_5_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_5_signal_3.xml new file mode 100644 index 000000000..eef571d59 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_5_signal_3.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_5_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_5_signal_4.xml new file mode 100644 index 000000000..eef571d59 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_5_signal_4.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_6_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_6_signal_0.xml new file mode 100644 index 000000000..927d22325 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_6_signal_0.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_6_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_6_signal_1.xml new file mode 100644 index 000000000..867de6807 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_6_signal_1.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_6_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_6_signal_2.xml new file mode 100644 index 000000000..e2207408d --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_6_signal_2.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_6_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_6_signal_3.xml new file mode 100644 index 000000000..eef571d59 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_6_signal_3.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_6_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_6_signal_4.xml new file mode 100644 index 000000000..eef571d59 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI6/res/drawable/ic_wifi_6_signal_4.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI6/res/values/strings.xml b/app/src/main/assets/Overlays/android/WIFI6/res/values/strings.xml deleted file mode 100644 index d73727615..000000000 --- a/app/src/main/assets/Overlays/android/WIFI6/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Gradicon - - - diff --git a/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_signal_wifi_transient_animation.xml b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_signal_wifi_transient_animation.xml new file mode 100644 index 000000000..4df9bc617 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_signal_wifi_transient_animation.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_signal_wifi_transient_animation_drawable.xml b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_signal_wifi_transient_animation_drawable.xml new file mode 100644 index 000000000..4df9bc617 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_signal_wifi_transient_animation_drawable.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_4_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_4_signal_0.xml new file mode 100644 index 000000000..4df9bc617 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_4_signal_0.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_4_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_4_signal_1.xml new file mode 100644 index 000000000..ece630995 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_4_signal_1.xml @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_4_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_4_signal_2.xml new file mode 100644 index 000000000..41e4caea8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_4_signal_2.xml @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_4_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_4_signal_3.xml new file mode 100644 index 000000000..6e7a27fb8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_4_signal_3.xml @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_4_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_4_signal_4.xml new file mode 100644 index 000000000..70e9d7a9e --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_4_signal_4.xml @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_5_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_5_signal_0.xml new file mode 100644 index 000000000..4df9bc617 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_5_signal_0.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_5_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_5_signal_1.xml new file mode 100644 index 000000000..ece630995 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_5_signal_1.xml @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_5_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_5_signal_2.xml new file mode 100644 index 000000000..41e4caea8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_5_signal_2.xml @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_5_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_5_signal_3.xml new file mode 100644 index 000000000..6e7a27fb8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_5_signal_3.xml @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_5_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_5_signal_4.xml new file mode 100644 index 000000000..70e9d7a9e --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_5_signal_4.xml @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_6_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_6_signal_0.xml new file mode 100644 index 000000000..4df9bc617 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_6_signal_0.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_6_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_6_signal_1.xml new file mode 100644 index 000000000..ece630995 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_6_signal_1.xml @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_6_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_6_signal_2.xml new file mode 100644 index 000000000..41e4caea8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_6_signal_2.xml @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_6_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_6_signal_3.xml new file mode 100644 index 000000000..6e7a27fb8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_6_signal_3.xml @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_6_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_6_signal_4.xml new file mode 100644 index 000000000..70e9d7a9e --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI7/res/drawable/ic_wifi_6_signal_4.xml @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI7/res/values/strings.xml b/app/src/main/assets/Overlays/android/WIFI7/res/values/strings.xml deleted file mode 100644 index 427e4f1fd..000000000 --- a/app/src/main/assets/Overlays/android/WIFI7/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Inside - - - diff --git a/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_signal_wifi_transient_animation.xml b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_signal_wifi_transient_animation.xml new file mode 100644 index 000000000..e17d81062 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_signal_wifi_transient_animation.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_signal_wifi_transient_animation_drawable.xml b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_signal_wifi_transient_animation_drawable.xml new file mode 100644 index 000000000..e17d81062 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_signal_wifi_transient_animation_drawable.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_4_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_4_signal_0.xml new file mode 100644 index 000000000..e17d81062 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_4_signal_0.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_4_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_4_signal_1.xml new file mode 100644 index 000000000..a3865f829 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_4_signal_1.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_4_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_4_signal_2.xml new file mode 100644 index 000000000..eb32dd9a8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_4_signal_2.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_4_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_4_signal_3.xml new file mode 100644 index 000000000..aaae51a35 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_4_signal_3.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_4_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_4_signal_4.xml new file mode 100644 index 000000000..4f2da1a5d --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_4_signal_4.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_5_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_5_signal_0.xml new file mode 100644 index 000000000..e17d81062 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_5_signal_0.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_5_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_5_signal_1.xml new file mode 100644 index 000000000..a3865f829 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_5_signal_1.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_5_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_5_signal_2.xml new file mode 100644 index 000000000..eb32dd9a8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_5_signal_2.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_5_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_5_signal_3.xml new file mode 100644 index 000000000..aaae51a35 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_5_signal_3.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_5_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_5_signal_4.xml new file mode 100644 index 000000000..4f2da1a5d --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_5_signal_4.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_6_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_6_signal_0.xml new file mode 100644 index 000000000..e17d81062 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_6_signal_0.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_6_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_6_signal_1.xml new file mode 100644 index 000000000..a3865f829 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_6_signal_1.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_6_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_6_signal_2.xml new file mode 100644 index 000000000..eb32dd9a8 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_6_signal_2.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_6_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_6_signal_3.xml new file mode 100644 index 000000000..aaae51a35 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_6_signal_3.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_6_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_6_signal_4.xml new file mode 100644 index 000000000..4f2da1a5d --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI8/res/drawable/ic_wifi_6_signal_4.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/app/src/main/assets/Overlays/android/WIFI8/res/values/strings.xml b/app/src/main/assets/Overlays/android/WIFI8/res/values/strings.xml deleted file mode 100644 index 11f30a066..000000000 --- a/app/src/main/assets/Overlays/android/WIFI8/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Nothing Dot - - - diff --git a/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_4_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_4_signal_0.xml new file mode 100644 index 000000000..3509c4ead --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_4_signal_0.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_4_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_4_signal_1.xml new file mode 100644 index 000000000..175ec6658 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_4_signal_1.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_4_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_4_signal_2.xml new file mode 100644 index 000000000..702a4471f --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_4_signal_2.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_4_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_4_signal_3.xml new file mode 100644 index 000000000..2b58058e3 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_4_signal_3.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_4_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_4_signal_4.xml new file mode 100644 index 000000000..f84d7689d --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_4_signal_4.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_5_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_5_signal_0.xml new file mode 100644 index 000000000..3509c4ead --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_5_signal_0.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_5_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_5_signal_1.xml new file mode 100644 index 000000000..175ec6658 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_5_signal_1.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_5_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_5_signal_2.xml new file mode 100644 index 000000000..702a4471f --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_5_signal_2.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_5_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_5_signal_3.xml new file mode 100644 index 000000000..2b58058e3 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_5_signal_3.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_5_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_5_signal_4.xml new file mode 100644 index 000000000..f84d7689d --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_5_signal_4.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_6_signal_0.xml b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_6_signal_0.xml new file mode 100644 index 000000000..3509c4ead --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_6_signal_0.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_6_signal_1.xml b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_6_signal_1.xml new file mode 100644 index 000000000..175ec6658 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_6_signal_1.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_6_signal_2.xml b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_6_signal_2.xml new file mode 100644 index 000000000..702a4471f --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_6_signal_2.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_6_signal_3.xml b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_6_signal_3.xml new file mode 100644 index 000000000..2b58058e3 --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_6_signal_3.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_6_signal_4.xml b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_6_signal_4.xml new file mode 100644 index 000000000..f84d7689d --- /dev/null +++ b/app/src/main/assets/Overlays/android/WIFI9/res/drawable/ic_wifi_6_signal_4.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Overlays/android/WIFI9/res/values/strings.xml b/app/src/main/assets/Overlays/android/WIFI9/res/values/strings.xml deleted file mode 100644 index d17baff6f..000000000 --- a/app/src/main/assets/Overlays/android/WIFI9/res/values/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Plumpy - - - diff --git a/app/src/main/java/com/drdisagree/iconify/SplashActivity.kt b/app/src/main/java/com/drdisagree/iconify/SplashActivity.kt index 43a6605d2..780708e11 100644 --- a/app/src/main/java/com/drdisagree/iconify/SplashActivity.kt +++ b/app/src/main/java/com/drdisagree/iconify/SplashActivity.kt @@ -8,7 +8,7 @@ import androidx.appcompat.app.AppCompatActivity import androidx.core.splashscreen.SplashScreen import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen import com.drdisagree.iconify.common.Preferences.XPOSED_ONLY_MODE -import com.drdisagree.iconify.config.Prefs +import com.drdisagree.iconify.config.RPrefs import com.drdisagree.iconify.ui.activities.MainActivity import com.drdisagree.iconify.ui.activities.OnboardingActivity import com.drdisagree.iconify.utils.ModuleUtil @@ -28,14 +28,14 @@ class SplashActivity : AppCompatActivity() { val isRooted = RootUtil.deviceProperlyRooted() val isModuleInstalled = ModuleUtil.moduleExists() val isOverlayInstalled = OverlayUtil.overlayExists() - var isXposedOnlyMode = Prefs.getBoolean(XPOSED_ONLY_MODE, false) + var isXposedOnlyMode = RPrefs.getBoolean(XPOSED_ONLY_MODE, false) val isVersionCodeCorrect = BuildConfig.VERSION_CODE == SystemUtil.savedVersionCode if (isRooted) { if (isOverlayInstalled) { - Prefs.putBoolean(XPOSED_ONLY_MODE, false) + RPrefs.putBoolean(XPOSED_ONLY_MODE, false) } else if (isModuleInstalled) { - Prefs.putBoolean(XPOSED_ONLY_MODE, true) + RPrefs.putBoolean(XPOSED_ONLY_MODE, true) isXposedOnlyMode = true } } diff --git a/app/src/main/java/com/drdisagree/iconify/common/Const.kt b/app/src/main/java/com/drdisagree/iconify/common/Const.kt index 51ff97418..cf4a25227 100644 --- a/app/src/main/java/com/drdisagree/iconify/common/Const.kt +++ b/app/src/main/java/com/drdisagree/iconify/common/Const.kt @@ -25,6 +25,9 @@ object Const { // Telegram group const val TELEGRAM_GROUP = "https://t.me/IconifyDiscussion" + // Crowdin + const val ICONIFY_CROWDIN = "https://crowdin.com/project/iconify" + // Parse new update const val LATEST_VERSION_URL = "https://raw.githubusercontent.com/Mahmud0808/Iconify/stable/latestVersion.json" diff --git a/app/src/main/java/com/drdisagree/iconify/common/Dynamic.kt b/app/src/main/java/com/drdisagree/iconify/common/Dynamic.kt index 0c0dc328d..dcc395d7a 100644 --- a/app/src/main/java/com/drdisagree/iconify/common/Dynamic.kt +++ b/app/src/main/java/com/drdisagree/iconify/common/Dynamic.kt @@ -14,9 +14,6 @@ object Dynamic { val TOTAL_BRIGHTNESSBARSPIXEL = Shell.cmd("cmd overlay list | grep '....IconifyComponentBBP'").exec().out.size - val TOTAL_ICONPACKS = - Shell.cmd("cmd overlay list | grep '....IconifyComponentIPAS'").exec().out.size - val TOTAL_NOTIFICATIONS = Shell.cmd("cmd overlay list | grep '....IconifyComponentNFN'").exec().out.size @@ -50,4 +47,8 @@ object Dynamic { // Device information val isAtleastA14 = Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE val isAndroid14 = Build.VERSION.SDK_INT == Build.VERSION_CODES.UPSIDE_DOWN_CAKE + + // Floating action buttons + var requiresSystemUiRestart = false + var requiresDeviceRestart = false } diff --git a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt index fba412138..acbd8ab28 100644 --- a/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt +++ b/app/src/main/java/com/drdisagree/iconify/common/Preferences.kt @@ -1,20 +1,63 @@ package com.drdisagree.iconify.common import com.drdisagree.iconify.SplashActivity -import com.drdisagree.iconify.config.Prefs.getBoolean +import com.drdisagree.iconify.config.RPrefs.getBoolean object Preferences { // Xposed mods + const val XPOSED_HOOK_CHECK = "xposedHookCheck" const val FORCE_RELOAD_OVERLAY_STATE = "xposed_force_reload_overlay_state" const val QS_TRANSPARENCY_SWITCH = "xposed_qstransparency" const val NOTIF_TRANSPARENCY_SWITCH = "xposed_notiftransparency" const val LOCKSCREEN_SHADE_SWITCH = "xposed_lockscreen_shade" const val QSALPHA_LEVEL = "xposed_qsalpha" const val STATUSBAR_CLOCKBG_SWITCH = "xposed_sbclockbg" - const val STATUSBAR_CLOCK_COLOR_OPTION = "xposed_sbclockcolor" - const val STATUSBAR_CLOCK_COLOR_CODE = "xposed_sbclockcolorcode" - const val CHIP_STATUSBAR_CLOCKBG_STYLE = "xposed_chipstatusbarclockbgstyle" + const val CHIP_STATUSBAR_CLOCK_SWITCH = "xposed_chipstatusbarclock" + const val CHIP_STATUSBAR_CLOCK_STYLE_CHANGED = "xposed_chipstatusbarclockstylechanged" + const val CHIP_STATUSBAR_CLOCK_TEXT_COLOR_OPTION = "xposed_sbclockcolor" + const val CHIP_STATUSBAR_CLOCK_TEXT_COLOR_CODE = "xposed_sbclockcolorcode" + const val CHIP_STATUSBAR_CLOCK_ACCENT = "xposed_chipstatusbarclockaccent" + const val CHIP_STATUSBAR_CLOCK_START_COLOR = "xposed_chipstatusbarclockstartcolor" + const val CHIP_STATUSBAR_CLOCK_END_COLOR = "xposed_chipstatusbarclockendcolor" + const val CHIP_STATUSBAR_CLOCK_GRADIENT_DIRECTION = "xposed_chipstatusbarclockgradientdirection" + const val CHIP_STATUSBAR_CLOCK_PADDING_LEFT = "xposed_chipstatusbarclockpaddingleft" + const val CHIP_STATUSBAR_CLOCK_PADDING_RIGHT = "xposed_chipstatusbarclockpaddingright" + const val CHIP_STATUSBAR_CLOCK_PADDING_TOP = "xposed_chipstatusbarclockpaddingtop" + const val CHIP_STATUSBAR_CLOCK_PADDING_BOTTOM = "xposed_chipstatusbarclockpaddingbottom" + const val CHIP_STATUSBAR_CLOCK_STROKE_SWITCH = "xposed_chipstatusbarclockstroke" + const val CHIP_STATUSBAR_CLOCK_STROKE_WIDTH = "xposed_chipstatusbarclockstrokewidth" + const val CHIP_STATUSBAR_CLOCK_STROKE_ACCENT = "xposed_chipstatusbarclockstrokeaccent" + const val CHIP_STATUSBAR_CLOCK_STROKE_COLOR = "xposed_chipstatusbarclockstrokecolor" + const val CHIP_STATUSBAR_CLOCK_STROKE_DASH = "xposed_chipstatusbarclockstrokedash" + const val CHIP_STATUSBAR_CLOCK_STROKE_DASH_WIDTH = "xposed_chipstatusbarclockstrokedashwidth" + const val CHIP_STATUSBAR_CLOCK_STROKE_DASH_GAP = "xposed_chipstatusbarclockstrokedashgap" + const val CHIP_STATUSBAR_CLOCK_RADIUS_TOP_LEFT = "xposed_chipstatusbarclockradiustopleft" + const val CHIP_STATUSBAR_CLOCK_RADIUS_TOP_RIGHT = "xposed_chipstatusbarclockradiustopright" + const val CHIP_STATUSBAR_CLOCK_RADIUS_BOTTOM_RIGHT = + "xposed_chipstatusbarclockradiusbottomright" + const val CHIP_STATUSBAR_CLOCK_RADIUS_BOTTOM_LEFT = "xposed_chipstatusbarclockradiusbottomleft" + const val CHIP_STATUS_ICONS_SWITCH = "xposed_chipstatusicons" + const val CHIP_STATUS_ICONS_STYLE_CHANGED = "xposed_chipstatusiconsstylechanged" + const val CHIP_STATUS_ICONS_ACCENT = "xposed_chipstatusiconsaccent" + const val CHIP_STATUS_ICONS_START_COLOR = "xposed_chipstatusiconsstartcolor" + const val CHIP_STATUS_ICONS_END_COLOR = "xposed_chipstatusiconsendcolor" + const val CHIP_STATUS_ICONS_GRADIENT_DIRECTION = "xposed_chipstatusiconsgradientdirection" + const val CHIP_STATUS_ICONS_PADDING_LEFT = "xposed_chipstatusiconspaddingleft" + const val CHIP_STATUS_ICONS_PADDING_RIGHT = "xposed_chipstatusiconspaddingright" + const val CHIP_STATUS_ICONS_PADDING_TOP = "xposed_chipstatusiconspaddingtop" + const val CHIP_STATUS_ICONS_PADDING_BOTTOM = "xposed_chipstatusiconspaddingbottom" + const val CHIP_STATUS_ICONS_STROKE_SWITCH = "xposed_chipstatusiconsstroke" + const val CHIP_STATUS_ICONS_STROKE_WIDTH = "xposed_chipstatusiconsstrokewidth" + const val CHIP_STATUS_ICONS_STROKE_ACCENT = "xposed_chipstatusiconsstrokeaccent" + const val CHIP_STATUS_ICONS_STROKE_COLOR = "xposed_chipstatusiconsstrokecolor" + const val CHIP_STATUS_ICONS_STROKE_DASH = "xposed_chipstatusiconsstrokedash" + const val CHIP_STATUS_ICONS_STROKE_DASH_WIDTH = "xposed_chipstatusiconsstrokedashwidth" + const val CHIP_STATUS_ICONS_STROKE_DASH_GAP = "xposed_chipstatusiconsstrokedashgap" + const val CHIP_STATUS_ICONS_RADIUS_TOP_LEFT = "xposed_chipstatusiconsradiustopleft" + const val CHIP_STATUS_ICONS_RADIUS_TOP_RIGHT = "xposed_chipstatusiconsradiustopright" + const val CHIP_STATUS_ICONS_RADIUS_BOTTOM_RIGHT = "xposed_chipstatusiconsradiusbottomright" + const val CHIP_STATUS_ICONS_RADIUS_BOTTOM_LEFT = "xposed_chipstatusiconsradiusbottomleft" const val QSPANEL_STATUSICONSBG_SWITCH = "xposed_qsstatusiconsbg" const val CHIP_QSSTATUSICONS_STYLE = "xposed_chipqsstatusiconsstyle" const val VERTICAL_QSTILE_SWITCH = "xposed_verticalqstile" @@ -60,11 +103,18 @@ object Preferences { const val LSCLOCK_FONT_TEXT_SCALING = "xposed_lockscreenclocktextscaling" const val LSCLOCK_USERNAME = "xposed_lockscreenclockcustomusername" const val LSCLOCK_DEVICENAME = "xposed_lockscreenclockcustomdevicename" + // LS Widgets const val LOCKSCREEN_WIDGETS_ENABLED: String = "lockscreen_widgets_enabled" const val LOCKSCREEN_WIDGETS_DEVICE_WIDGET: String = "lockscreen_device_widget" const val LOCKSCREEN_WIDGETS: String = "lockscreen_widgets" const val LOCKSCREEN_WIDGETS_EXTRAS: String = "lockscreen_widgets_extras" + const val MAIN_WIDGET_1_KEY: String = "main_custom_widgets1" + const val MAIN_WIDGET_2_KEY: String = "main_custom_widgets2" + const val EXTRA_WIDGET_1_KEY: String = "custom_widgets1" + const val EXTRA_WIDGET_2_KEY: String = "custom_widgets2" + const val EXTRA_WIDGET_3_KEY: String = "custom_widgets3" + const val EXTRA_WIDGET_4_KEY: String = "custom_widgets4" const val LOCKSCREEN_WIDGETS_DEVICE_WIDGET_CUSTOM_COLOR_SWITCH: String = "lockscreen_device_widget_custom_color" const val LOCKSCREEN_WIDGETS_DEVICE_WIDGET_LINEAR_COLOR: String = @@ -111,8 +161,10 @@ object Preferences { const val DEPTH_WALLPAPER_ON_AOD = "xposed_depthwallpaperaonaod" const val DEPTH_WALLPAPER_FADE_ANIMATION = "xposed_depthwallpaperfadeanimation" const val DEPTH_WALLPAPER_PARALLAX_EFFECT = "xposed_depthwallpaperparallaxeffect" - const val DEPTH_WALLPAPER_BACKGROUND_MOVEMENT_MULTIPLIER = "xposed_depthwallpaperbackgroundmovementmultiplier" - const val DEPTH_WALLPAPER_FOREGROUND_MOVEMENT_MULTIPLIER = "xposed_depthwallpaperforegroundmovementmultiplier" + const val DEPTH_WALLPAPER_BACKGROUND_MOVEMENT_MULTIPLIER = + "xposed_depthwallpaperbackgroundmovementmultiplier" + const val DEPTH_WALLPAPER_FOREGROUND_MOVEMENT_MULTIPLIER = + "xposed_depthwallpaperforegroundmovementmultiplier" const val DEPTH_WALLPAPER_CHANGED = "xposed_depthwallpaperchanged" const val UNZOOM_DEPTH_WALLPAPER = "xposed_unzoomdepthwallpaper" const val CUSTOM_BATTERY_LAYOUT_REVERSE = "xposed_custombatterylayoutreverse" @@ -144,6 +196,7 @@ object Preferences { const val CUSTOM_BATTERY_INSIDE_PERCENTAGE = "xposed_custombatteryinsidepercentage" const val CUSTOM_BATTERY_HIDE_BATTERY = "xposed_custombatteryhidebattery" const val BLUR_RADIUS_VALUE = "xposed_blurradiusvalue" + const val CUSTOM_QS_MARGIN = "xposed_customqsmargin" const val QQS_TOPMARGIN = "xposed_qqspanelTopMargin" const val QS_TOPMARGIN = "xposed_qspanelTopMargin" const val FIX_QS_TILE_COLOR = "xposed_fixqstilecolor" @@ -208,10 +261,10 @@ object Preferences { const val RESTART_SYSUI_BEHAVIOR_EXT = "IconifyRestartSysuiBehaviorExtended" // Preference keys - const val STR_NULL = "null" const val UPDATE_SCHEDULE = "iconify_update_schedule" const val UPDATE_CHECK_TIME = "iconify_update_check_time" const val LAST_UPDATE_CHECK_TIME = "iconify_last_update_check_time" + const val NEW_UPDATE_VERSION_CODE = "iconify_new_update_version_code" const val FIRST_INSTALL = "firstInstall" const val UPDATE_DETECTED = "updateDetected" const val ON_HOME_PAGE = "onHomePage" @@ -277,6 +330,7 @@ object Preferences { // Weather const val WEATHER_SWITCH: String = "weather_switch" + const val PREF_KEY_UPDATE_STATUS: String = "update_status" const val WEATHER_ICON_PACK: String = "weather_icon_pack" const val WEATHER_UPDATE_INTERVAL: String = "weather_update_interval" const val WEATHER_SHOW_LOCATION: String = "weather_show_location" @@ -291,6 +345,7 @@ object Preferences { const val WEATHER_UNITS: String = "weather_units" const val WEATHER_PROVIDER: String = "weather_provider" const val WEATHER_CUSTOM_LOCATION: String = "weather_custom_location_switch" + const val WEATHER_CUSTOM_LOCATION_PICKER: String = "weather_custom_location_picker" const val WEATHER_CUSTOM_MARGINS_TOP: String = "weather_custom_margins_top" const val WEATHER_CUSTOM_MARGINS_SIDE: String = "weather_custom_margins_side" const val WEATHER_CUSTOM_MARGINS_BOTTOM: String = "weather_custom_margins_bottom" @@ -306,6 +361,7 @@ object Preferences { const val SHOW_XPOSED_WARN = "IconifyShowXposedWarn" const val SHOW_HOME_CARD = "IconifyShowHomeCard" const val XPOSED_ONLY_MODE = "IconifyXposedOnlyMode" + const val NEW_UPDATE_FOUND = "newUpdateFound" var isXposedOnlyMode = getBoolean(XPOSED_ONLY_MODE, true) && !SplashActivity.SKIP_TO_HOMEPAGE_FOR_TESTING @@ -314,6 +370,7 @@ object Preferences { const val BOOT_ID = "boot_id" const val VER_CODE = "versionCode" const val EASTER_EGG = "iconify_easter_egg" + const val EXPERIMENTAL_FEATURES = "experimentalFeatures" const val ALERT_DIALOG_QSROWCOL = "alertDialogQsRowCol" const val SHOW_QS_TILE_NORMAL_WARN = "showQsTileNormalWarn" const val SHOW_QS_TILE_PIXEL_WARN = "showQsTilePixelWarn" diff --git a/app/src/main/java/com/drdisagree/iconify/common/Resources.kt b/app/src/main/java/com/drdisagree/iconify/common/Resources.kt index f6f5618d1..cb91a22ff 100644 --- a/app/src/main/java/com/drdisagree/iconify/common/Resources.kt +++ b/app/src/main/java/com/drdisagree/iconify/common/Resources.kt @@ -3,6 +3,31 @@ package com.drdisagree.iconify.common import android.os.Environment import com.drdisagree.iconify.BuildConfig import com.drdisagree.iconify.Iconify.Companion.appContext +import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Preferences.FIRST_INSTALL +import com.drdisagree.iconify.common.Preferences.UPDATE_DETECTED +import com.drdisagree.iconify.config.RPrefs.getBoolean +import com.drdisagree.iconify.ui.fragments.home.Home +import com.drdisagree.iconify.ui.fragments.settings.Settings +import com.drdisagree.iconify.ui.fragments.tweaks.Tweaks +import com.drdisagree.iconify.ui.fragments.xposed.BackgroundChip +import com.drdisagree.iconify.ui.fragments.xposed.BatteryStyle +import com.drdisagree.iconify.ui.fragments.xposed.DepthWallpaper +import com.drdisagree.iconify.ui.fragments.xposed.HeaderClock +import com.drdisagree.iconify.ui.fragments.xposed.HeaderImage +import com.drdisagree.iconify.ui.fragments.xposed.LockscreenClock +import com.drdisagree.iconify.ui.fragments.xposed.LockscreenWeather +import com.drdisagree.iconify.ui.fragments.xposed.LockscreenWidget +import com.drdisagree.iconify.ui.fragments.xposed.Others +import com.drdisagree.iconify.ui.fragments.xposed.QuickSettings +import com.drdisagree.iconify.ui.fragments.xposed.Statusbar +import com.drdisagree.iconify.ui.fragments.xposed.Themes +import com.drdisagree.iconify.ui.fragments.xposed.TransparencyBlur +import com.drdisagree.iconify.ui.fragments.xposed.VolumePanel +import com.drdisagree.iconify.ui.fragments.xposed.Xposed +import com.drdisagree.iconify.ui.models.SearchPreferenceItem +import com.drdisagree.iconify.ui.preferences.preferencesearch.SearchConfiguration +import com.drdisagree.iconify.utils.RootUtil.folderExists object Resources { @@ -75,5 +100,109 @@ object Resources { // Resource names const val HEADER_CLOCK_LAYOUT = "preview_header_clock_" const val LOCKSCREEN_CLOCK_LAYOUT = "preview_lockscreen_clock_" - const val LOCKSCREEN_CLOCK_LOTTIE = "lottie_lockscreen_clock_" + + fun shouldShowRebootDialog() = (!getBoolean(FIRST_INSTALL) && getBoolean(UPDATE_DETECTED)) || + folderExists("/data/adb/modules_update/Iconify") + + val searchConfiguration = SearchConfiguration() + + private val commonFragments = arrayOf( + SearchPreferenceItem( + R.xml.xposed, + R.string.navbar_xposed, + Xposed() + ), + SearchPreferenceItem( + R.xml.settings, + R.string.navbar_settings, + Settings() + ), + SearchPreferenceItem( + R.xml.xposed_transparency_blur, + R.string.activity_title_transparency_blur, + TransparencyBlur() + ), + SearchPreferenceItem( + R.xml.xposed_background_chip, + R.string.activity_title_background_chip, + BackgroundChip() + ), + SearchPreferenceItem( + R.xml.xposed_quick_settings, + R.string.activity_title_quick_settings, + QuickSettings() + ), + SearchPreferenceItem( + R.xml.xposed_themes, + R.string.activity_title_themes, + Themes() + ), + SearchPreferenceItem( + R.xml.xposed_battery_style, + R.string.activity_title_battery_style, + BatteryStyle() + ), + SearchPreferenceItem( + R.xml.xposed_statusbar, + R.string.activity_title_statusbar, + Statusbar() + ), + SearchPreferenceItem( + R.xml.xposed_volume_panel, + R.string.activity_title_volume_panel, + VolumePanel() + ), + SearchPreferenceItem( + R.xml.xposed_header_image, + R.string.activity_title_header_image, + HeaderImage() + ), + SearchPreferenceItem( + R.xml.xposed_header_clock, + R.string.activity_title_header_clock, + HeaderClock() + ), + SearchPreferenceItem( + R.xml.xposed_lockscreen_clock, + R.string.activity_title_lockscreen_clock, + LockscreenClock() + ), + SearchPreferenceItem( + R.xml.xposed_lockscreen_weather, + R.string.activity_title_lockscreen_weather, + LockscreenWeather() + ), + SearchPreferenceItem( + R.xml.xposed_lockscreen_widget, + R.string.activity_title_lockscreen_widget, + LockscreenWidget() + ), + SearchPreferenceItem( + R.xml.xposed_depth_wallpaper, + R.string.activity_title_depth_wallpaper, + DepthWallpaper() + ), + SearchPreferenceItem( + R.xml.xposed_others, + R.string.activity_title_xposed_others, + Others() + ) + ) + + val searchableFragments = if (Preferences.isXposedOnlyMode) { + commonFragments + } else { + arrayOf( + SearchPreferenceItem( + R.xml.home, + R.string.navbar_home, + Home() + ), + SearchPreferenceItem( + R.xml.tweaks, + R.string.navbar_tweaks, + Tweaks() + ) + ) + commonFragments + }.distinctBy { it.fragment::class.java } } diff --git a/app/src/main/java/com/drdisagree/iconify/config/Prefs.kt b/app/src/main/java/com/drdisagree/iconify/config/Prefs.kt deleted file mode 100644 index 5b70664ef..000000000 --- a/app/src/main/java/com/drdisagree/iconify/config/Prefs.kt +++ /dev/null @@ -1,76 +0,0 @@ -package com.drdisagree.iconify.config - -import android.content.Context -import android.content.SharedPreferences -import com.drdisagree.iconify.Iconify.Companion.appContext -import com.drdisagree.iconify.common.Preferences.STR_NULL -import com.drdisagree.iconify.common.Resources.SHARED_PREFERENCES - -@Suppress("unused") -object Prefs { - - var prefs: SharedPreferences = appContext.getSharedPreferences(SHARED_PREFERENCES, Context.MODE_PRIVATE) - private var editor: SharedPreferences.Editor = prefs.edit() - - fun putBoolean(key: String?, `val`: Boolean) { - editor.putBoolean(key, `val`).apply() - } - - fun putInt(key: String?, `val`: Int) { - editor.putInt(key, `val`).apply() - } - - fun putLong(key: String?, `val`: Long) { - editor.putLong(key, `val`).apply() - } - - fun putString(key: String?, `val`: String?) { - editor.putString(key, `val`).apply() - } - - fun getBoolean(key: String?): Boolean { - return prefs.getBoolean(key, false) - } - - fun getBoolean(key: String?, defValue: Boolean?): Boolean { - return prefs.getBoolean(key, defValue!!) - } - - fun getInt(key: String?): Int { - return prefs.getInt(key, 0) - } - - fun getInt(key: String?, defValue: Int): Int { - return prefs.getInt(key, defValue) - } - - fun getLong(key: String?): Long { - return prefs.getLong(key, 0) - } - - fun getLong(key: String?, defValue: Long): Long { - return prefs.getLong(key, defValue) - } - - fun getString(key: String?): String? { - return prefs.getString(key, STR_NULL) - } - - fun getString(key: String?, defValue: String?): String? { - return prefs.getString(key, defValue) - } - - fun clearPref(key: String?) { - editor.remove(key).apply() - } - - fun clearPrefs(vararg keys: String?) { - for (key in keys) { - editor.remove(key).apply() - } - } - - fun clearAllPrefs() { - editor.clear().apply() - } -} diff --git a/app/src/main/java/com/drdisagree/iconify/config/PrefsHelper.kt b/app/src/main/java/com/drdisagree/iconify/config/PrefsHelper.kt new file mode 100644 index 000000000..a7558c536 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/config/PrefsHelper.kt @@ -0,0 +1,562 @@ +package com.drdisagree.iconify.config + +import android.annotation.SuppressLint +import android.content.Context +import android.os.Build +import androidx.preference.Preference +import androidx.preference.PreferenceGroup +import com.drdisagree.iconify.BuildConfig +import com.drdisagree.iconify.Iconify.Companion.appContext +import com.drdisagree.iconify.Iconify.Companion.appContextLocale +import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Dynamic.isAtleastA14 +import com.drdisagree.iconify.common.Preferences.AGGRESSIVE_QSPANEL_BLUR_SWITCH +import com.drdisagree.iconify.common.Preferences.APP_LANGUAGE +import com.drdisagree.iconify.common.Preferences.AUTO_UPDATE +import com.drdisagree.iconify.common.Preferences.BATTERY_STYLE_CIRCLE +import com.drdisagree.iconify.common.Preferences.BATTERY_STYLE_DEFAULT +import com.drdisagree.iconify.common.Preferences.BATTERY_STYLE_DEFAULT_LANDSCAPE +import com.drdisagree.iconify.common.Preferences.BATTERY_STYLE_DEFAULT_RLANDSCAPE +import com.drdisagree.iconify.common.Preferences.BATTERY_STYLE_DOTTED_CIRCLE +import com.drdisagree.iconify.common.Preferences.BATTERY_STYLE_FILLED_CIRCLE +import com.drdisagree.iconify.common.Preferences.BATTERY_STYLE_LANDSCAPE_BATTERYA +import com.drdisagree.iconify.common.Preferences.BATTERY_STYLE_LANDSCAPE_BATTERYI +import com.drdisagree.iconify.common.Preferences.BATTERY_STYLE_LANDSCAPE_BATTERYJ +import com.drdisagree.iconify.common.Preferences.BATTERY_STYLE_LANDSCAPE_BATTERYL +import com.drdisagree.iconify.common.Preferences.BATTERY_STYLE_LANDSCAPE_BATTERYM +import com.drdisagree.iconify.common.Preferences.BATTERY_STYLE_LANDSCAPE_BATTERYO +import com.drdisagree.iconify.common.Preferences.BATTERY_STYLE_LANDSCAPE_IOS_16 +import com.drdisagree.iconify.common.Preferences.BLUR_RADIUS_VALUE +import com.drdisagree.iconify.common.Preferences.CHIP_STATUS_ICONS_SWITCH +import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_BLEND_COLOR +import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_CHARGING_COLOR +import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_CHARGING_ICON_MARGIN_LEFT +import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_CHARGING_ICON_MARGIN_RIGHT +import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_CHARGING_ICON_STYLE +import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_CHARGING_ICON_SWITCH +import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_CHARGING_ICON_WIDTH_HEIGHT +import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_DIMENSION +import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_FILL_ALPHA +import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_FILL_COLOR +import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_FILL_GRAD_COLOR +import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_HEIGHT +import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_HIDE_BATTERY +import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_HIDE_PERCENTAGE +import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_INSIDE_PERCENTAGE +import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_LAYOUT_REVERSE +import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_MARGIN_BOTTOM +import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_MARGIN_LEFT +import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_MARGIN_RIGHT +import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_MARGIN_TOP +import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_PERIMETER_ALPHA +import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_POWERSAVE_FILL_COLOR +import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_POWERSAVE_INDICATOR_COLOR +import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_RAINBOW_FILL_COLOR +import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_STYLE +import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_SWAP_PERCENTAGE +import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_WIDTH +import com.drdisagree.iconify.common.Preferences.CUSTOM_DEPTH_WALLPAPER_SWITCH +import com.drdisagree.iconify.common.Preferences.CUSTOM_QS_MARGIN +import com.drdisagree.iconify.common.Preferences.DEPTH_WALLPAPER_BACKGROUND_MOVEMENT_MULTIPLIER +import com.drdisagree.iconify.common.Preferences.DEPTH_WALLPAPER_FADE_ANIMATION +import com.drdisagree.iconify.common.Preferences.DEPTH_WALLPAPER_FOREGROUND_MOVEMENT_MULTIPLIER +import com.drdisagree.iconify.common.Preferences.DEPTH_WALLPAPER_ON_AOD +import com.drdisagree.iconify.common.Preferences.DEPTH_WALLPAPER_PARALLAX_EFFECT +import com.drdisagree.iconify.common.Preferences.DUALTONE_QSPANEL +import com.drdisagree.iconify.common.Preferences.EASTER_EGG +import com.drdisagree.iconify.common.Preferences.EXPERIMENTAL_FEATURES +import com.drdisagree.iconify.common.Preferences.FIXED_STATUS_ICONS_SIDEMARGIN +import com.drdisagree.iconify.common.Preferences.FIXED_STATUS_ICONS_SWITCH +import com.drdisagree.iconify.common.Preferences.FIXED_STATUS_ICONS_TOPMARGIN +import com.drdisagree.iconify.common.Preferences.FIX_NOTIFICATION_COLOR +import com.drdisagree.iconify.common.Preferences.FIX_NOTIFICATION_FOOTER_BUTTON_COLOR +import com.drdisagree.iconify.common.Preferences.FIX_QS_TILE_COLOR +import com.drdisagree.iconify.common.Preferences.FLUID_NOTIF_TRANSPARENCY +import com.drdisagree.iconify.common.Preferences.FLUID_POWERMENU_TRANSPARENCY +import com.drdisagree.iconify.common.Preferences.FLUID_QSPANEL +import com.drdisagree.iconify.common.Preferences.HEADER_CLOCK_COLOR_CODE_ACCENT1 +import com.drdisagree.iconify.common.Preferences.HEADER_CLOCK_COLOR_CODE_ACCENT2 +import com.drdisagree.iconify.common.Preferences.HEADER_CLOCK_COLOR_CODE_ACCENT3 +import com.drdisagree.iconify.common.Preferences.HEADER_CLOCK_COLOR_CODE_TEXT1 +import com.drdisagree.iconify.common.Preferences.HEADER_CLOCK_COLOR_CODE_TEXT2 +import com.drdisagree.iconify.common.Preferences.HEADER_CLOCK_COLOR_SWITCH +import com.drdisagree.iconify.common.Preferences.HEADER_CLOCK_FONT_TEXT_SCALING +import com.drdisagree.iconify.common.Preferences.HEADER_CLOCK_SIDEMARGIN +import com.drdisagree.iconify.common.Preferences.HEADER_CLOCK_TOPMARGIN +import com.drdisagree.iconify.common.Preferences.HEADER_IMAGE_ALPHA +import com.drdisagree.iconify.common.Preferences.HEADER_IMAGE_BOTTOM_FADE_AMOUNT +import com.drdisagree.iconify.common.Preferences.HEADER_IMAGE_HEIGHT +import com.drdisagree.iconify.common.Preferences.HIDE_QSLABEL_SWITCH +import com.drdisagree.iconify.common.Preferences.LIGHT_QSPANEL +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_SHADE_SWITCH +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_BIG_ACTIVE +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_BIG_ICON_ACTIVE +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_BIG_ICON_INACTIVE +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_BIG_INACTIVE +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_BOTTOM_MARGIN +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_CUSTOM_COLOR +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_DEVICE_WIDGET +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_DEVICE_WIDGET_CIRCULAR_COLOR +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_DEVICE_WIDGET_CUSTOM_COLOR_SWITCH +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_DEVICE_WIDGET_DEVICE +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_DEVICE_WIDGET_LINEAR_COLOR +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_DEVICE_WIDGET_TEXT_COLOR +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_SMALL_ACTIVE +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_SMALL_ICON_ACTIVE +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_SMALL_ICON_INACTIVE +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_SMALL_INACTIVE +import com.drdisagree.iconify.common.Preferences.LSCLOCK_BOTTOMMARGIN +import com.drdisagree.iconify.common.Preferences.LSCLOCK_COLOR_CODE_ACCENT1 +import com.drdisagree.iconify.common.Preferences.LSCLOCK_COLOR_CODE_ACCENT2 +import com.drdisagree.iconify.common.Preferences.LSCLOCK_COLOR_CODE_ACCENT3 +import com.drdisagree.iconify.common.Preferences.LSCLOCK_COLOR_CODE_TEXT1 +import com.drdisagree.iconify.common.Preferences.LSCLOCK_COLOR_CODE_TEXT2 +import com.drdisagree.iconify.common.Preferences.LSCLOCK_COLOR_SWITCH +import com.drdisagree.iconify.common.Preferences.LSCLOCK_DEVICENAME +import com.drdisagree.iconify.common.Preferences.LSCLOCK_FONT_LINEHEIGHT +import com.drdisagree.iconify.common.Preferences.LSCLOCK_FONT_TEXT_SCALING +import com.drdisagree.iconify.common.Preferences.LSCLOCK_STYLE +import com.drdisagree.iconify.common.Preferences.LSCLOCK_TOPMARGIN +import com.drdisagree.iconify.common.Preferences.LSCLOCK_USERNAME +import com.drdisagree.iconify.common.Preferences.NEW_UPDATE_FOUND +import com.drdisagree.iconify.common.Preferences.NOTIF_TRANSPARENCY_SWITCH +import com.drdisagree.iconify.common.Preferences.PREF_KEY_UPDATE_STATUS +import com.drdisagree.iconify.common.Preferences.QQS_TOPMARGIN +import com.drdisagree.iconify.common.Preferences.QSALPHA_LEVEL +import com.drdisagree.iconify.common.Preferences.QSPANEL_BLUR_SWITCH +import com.drdisagree.iconify.common.Preferences.QSPANEL_STATUSICONSBG_SWITCH +import com.drdisagree.iconify.common.Preferences.QS_TOPMARGIN +import com.drdisagree.iconify.common.Preferences.QS_TRANSPARENCY_SWITCH +import com.drdisagree.iconify.common.Preferences.SB_CLOCK_SIZE +import com.drdisagree.iconify.common.Preferences.SB_CLOCK_SIZE_SWITCH +import com.drdisagree.iconify.common.Preferences.SHOW_HOME_CARD +import com.drdisagree.iconify.common.Preferences.UNZOOM_DEPTH_WALLPAPER +import com.drdisagree.iconify.common.Preferences.UPDATE_OVER_WIFI +import com.drdisagree.iconify.common.Preferences.VERTICAL_QSTILE_SWITCH +import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_LOCATION +import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_LOCATION_PICKER +import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_BOTTOM +import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_SIDE +import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_TOP +import com.drdisagree.iconify.common.Preferences.WEATHER_ICON_PACK +import com.drdisagree.iconify.common.Preferences.WEATHER_ICON_SIZE +import com.drdisagree.iconify.common.Preferences.WEATHER_OWM_KEY +import com.drdisagree.iconify.common.Preferences.WEATHER_PROVIDER +import com.drdisagree.iconify.common.Preferences.WEATHER_TEXT_COLOR +import com.drdisagree.iconify.common.Preferences.WEATHER_TEXT_COLOR_SWITCH +import com.drdisagree.iconify.common.Preferences.WEATHER_TEXT_SIZE +import com.drdisagree.iconify.common.Preferences.WEATHER_UNITS +import com.drdisagree.iconify.common.Preferences.WEATHER_UPDATE_INTERVAL +import com.drdisagree.iconify.common.Preferences.XPOSED_HOOK_CHECK +import com.drdisagree.iconify.common.Resources.shouldShowRebootDialog +import com.drdisagree.iconify.config.RPrefs.getBoolean +import com.drdisagree.iconify.config.RPrefs.getInt +import com.drdisagree.iconify.config.RPrefs.getSliderInt +import com.drdisagree.iconify.config.RPrefs.getString +import com.drdisagree.iconify.config.RPrefs.getStringSet +import com.drdisagree.iconify.ui.preferences.SliderPreference +import com.drdisagree.iconify.utils.weather.WeatherConfig + +object PrefsHelper { + + fun isVisible(key: String?): Boolean { + return when (key) { + UPDATE_OVER_WIFI -> getBoolean(AUTO_UPDATE, true) + + EXPERIMENTAL_FEATURES -> getBoolean(EASTER_EGG) + + "iconifyHomeCard" -> getBoolean(SHOW_HOME_CARD, true) + + "rebootReminder" -> shouldShowRebootDialog() + + "newUpdate" -> getBoolean(NEW_UPDATE_FOUND) + + XPOSED_HOOK_CHECK -> !getBoolean(key) + + LOCKSCREEN_SHADE_SWITCH, + QSALPHA_LEVEL -> getBoolean(QS_TRANSPARENCY_SWITCH) || + getBoolean(NOTIF_TRANSPARENCY_SWITCH) + + AGGRESSIVE_QSPANEL_BLUR_SWITCH -> getBoolean(QSPANEL_BLUR_SWITCH) + + HIDE_QSLABEL_SWITCH -> getBoolean(VERTICAL_QSTILE_SWITCH) + + QQS_TOPMARGIN, + QS_TOPMARGIN -> getBoolean(CUSTOM_QS_MARGIN) + + SB_CLOCK_SIZE -> getBoolean(SB_CLOCK_SIZE_SWITCH) + + FIXED_STATUS_ICONS_TOPMARGIN -> if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + getBoolean(QSPANEL_STATUSICONSBG_SWITCH) || + getBoolean(FIXED_STATUS_ICONS_SWITCH) + } else { + getBoolean(FIXED_STATUS_ICONS_SWITCH) + } + + FIXED_STATUS_ICONS_SIDEMARGIN -> getBoolean(FIXED_STATUS_ICONS_SWITCH) + + LSCLOCK_COLOR_CODE_ACCENT1, + LSCLOCK_COLOR_CODE_ACCENT2, + LSCLOCK_COLOR_CODE_ACCENT3, + LSCLOCK_COLOR_CODE_TEXT1, + LSCLOCK_COLOR_CODE_TEXT2 -> getBoolean(LSCLOCK_COLOR_SWITCH) + + LSCLOCK_DEVICENAME -> getInt(LSCLOCK_STYLE, 0) == 7 + + LSCLOCK_USERNAME -> getInt(LSCLOCK_STYLE, 0) == 19 + + // Weather Common + WEATHER_OWM_KEY -> getString(WEATHER_PROVIDER, "0") == "1" + WEATHER_CUSTOM_LOCATION_PICKER -> getBoolean(WEATHER_CUSTOM_LOCATION) + + // Lockscreen Weather + WEATHER_TEXT_COLOR -> getBoolean(WEATHER_TEXT_COLOR_SWITCH) + + HEADER_CLOCK_COLOR_CODE_ACCENT1, + HEADER_CLOCK_COLOR_CODE_ACCENT2, + HEADER_CLOCK_COLOR_CODE_ACCENT3, + HEADER_CLOCK_COLOR_CODE_TEXT1, + HEADER_CLOCK_COLOR_CODE_TEXT2 -> getBoolean(HEADER_CLOCK_COLOR_SWITCH) + + DUALTONE_QSPANEL -> getBoolean(LIGHT_QSPANEL) + + FLUID_NOTIF_TRANSPARENCY, + FLUID_POWERMENU_TRANSPARENCY -> getBoolean(FLUID_QSPANEL) + + "xposedThemesOthers", + FIX_QS_TILE_COLOR, + FIX_NOTIFICATION_COLOR, + FIX_NOTIFICATION_FOOTER_BUTTON_COLOR -> isAtleastA14 + + CUSTOM_DEPTH_WALLPAPER_SWITCH, + DEPTH_WALLPAPER_ON_AOD -> Build.VERSION.SDK_INT > Build.VERSION_CODES.TIRAMISU + + DEPTH_WALLPAPER_FADE_ANIMATION, + DEPTH_WALLPAPER_PARALLAX_EFFECT, + DEPTH_WALLPAPER_BACKGROUND_MOVEMENT_MULTIPLIER, + DEPTH_WALLPAPER_FOREGROUND_MOVEMENT_MULTIPLIER, + UNZOOM_DEPTH_WALLPAPER -> Build.VERSION.SDK_INT <= Build.VERSION_CODES.TIRAMISU + + "xposed_depthwallpaperbgimagepicker", + "xposed_depthwallpaperfgimagepicker" -> getBoolean(CUSTOM_DEPTH_WALLPAPER_SWITCH) || + Build.VERSION.SDK_INT <= Build.VERSION_CODES.TIRAMISU + + "mediaIcon" -> Build.VERSION.SDK_INT <= Build.VERSION_CODES.TIRAMISU + + LOCKSCREEN_WIDGETS_DEVICE_WIDGET_CUSTOM_COLOR_SWITCH, + LOCKSCREEN_WIDGETS_DEVICE_WIDGET_DEVICE -> getBoolean(LOCKSCREEN_WIDGETS_DEVICE_WIDGET) + + LOCKSCREEN_WIDGETS_DEVICE_WIDGET_LINEAR_COLOR, + LOCKSCREEN_WIDGETS_DEVICE_WIDGET_CIRCULAR_COLOR, + LOCKSCREEN_WIDGETS_DEVICE_WIDGET_TEXT_COLOR -> getBoolean( + LOCKSCREEN_WIDGETS_DEVICE_WIDGET_CUSTOM_COLOR_SWITCH + ) + + LOCKSCREEN_WIDGETS_BIG_ACTIVE, + LOCKSCREEN_WIDGETS_BIG_INACTIVE, + LOCKSCREEN_WIDGETS_BIG_ICON_ACTIVE, + LOCKSCREEN_WIDGETS_BIG_ICON_INACTIVE, + LOCKSCREEN_WIDGETS_SMALL_ACTIVE, + LOCKSCREEN_WIDGETS_SMALL_INACTIVE, + LOCKSCREEN_WIDGETS_SMALL_ICON_ACTIVE, + LOCKSCREEN_WIDGETS_SMALL_ICON_INACTIVE -> getBoolean(LOCKSCREEN_WIDGETS_CUSTOM_COLOR) + + "xposed_lockscreenwidget_weather_settings" -> WeatherConfig.isEnabled(appContext) + + CUSTOM_BATTERY_STYLE, + CUSTOM_BATTERY_WIDTH, + CUSTOM_BATTERY_HEIGHT, + CUSTOM_BATTERY_HIDE_PERCENTAGE, + CUSTOM_BATTERY_INSIDE_PERCENTAGE, + CUSTOM_BATTERY_HIDE_BATTERY, + CUSTOM_BATTERY_SWAP_PERCENTAGE, + CUSTOM_BATTERY_LAYOUT_REVERSE, + CUSTOM_BATTERY_PERIMETER_ALPHA, + CUSTOM_BATTERY_FILL_ALPHA, + CUSTOM_BATTERY_RAINBOW_FILL_COLOR, + CUSTOM_BATTERY_BLEND_COLOR, + CUSTOM_BATTERY_FILL_COLOR, + CUSTOM_BATTERY_FILL_GRAD_COLOR, + CUSTOM_BATTERY_CHARGING_COLOR, + CUSTOM_BATTERY_POWERSAVE_FILL_COLOR, + CUSTOM_BATTERY_POWERSAVE_INDICATOR_COLOR, + CUSTOM_BATTERY_DIMENSION, + CUSTOM_BATTERY_MARGIN_LEFT, + CUSTOM_BATTERY_MARGIN_RIGHT, + CUSTOM_BATTERY_MARGIN_TOP, + CUSTOM_BATTERY_MARGIN_BOTTOM, + CUSTOM_BATTERY_CHARGING_ICON_SWITCH, + CUSTOM_BATTERY_CHARGING_ICON_STYLE, + CUSTOM_BATTERY_CHARGING_ICON_MARGIN_LEFT, + CUSTOM_BATTERY_CHARGING_ICON_MARGIN_RIGHT, + CUSTOM_BATTERY_CHARGING_ICON_WIDTH_HEIGHT -> { + return isBatteryPrefsVisible(key) + } + + // Status icons + "xposedStatusIcons", + CHIP_STATUS_ICONS_SWITCH, + "xposed_chipstatusiconscustomizer" -> { + return Build.VERSION.SDK_INT < Build.VERSION_CODES.UPSIDE_DOWN_CAKE + } + + else -> true + } + } + + private fun isBatteryPrefsVisible(key: String): Boolean { + val batteryStyle: Int = getString(CUSTOM_BATTERY_STYLE, 0.toString())!!.toInt() + + val showAdvancedCustomizations = + batteryStyle in BATTERY_STYLE_LANDSCAPE_BATTERYA..BATTERY_STYLE_LANDSCAPE_BATTERYO + + val showColorPickers: Boolean = getBoolean(CUSTOM_BATTERY_BLEND_COLOR, false) + + val showRainbowBattery = batteryStyle == BATTERY_STYLE_LANDSCAPE_BATTERYI || + batteryStyle == BATTERY_STYLE_LANDSCAPE_BATTERYJ + + val showBatteryDimensions = batteryStyle > BATTERY_STYLE_DEFAULT_LANDSCAPE && + getBoolean(CUSTOM_BATTERY_DIMENSION) + + val showPercentage = batteryStyle != BATTERY_STYLE_DEFAULT && + batteryStyle != BATTERY_STYLE_DEFAULT_LANDSCAPE && + batteryStyle != BATTERY_STYLE_DEFAULT_RLANDSCAPE && + batteryStyle != BATTERY_STYLE_LANDSCAPE_IOS_16 && + batteryStyle != BATTERY_STYLE_LANDSCAPE_BATTERYL && + batteryStyle != BATTERY_STYLE_LANDSCAPE_BATTERYM + + val showInsidePercentage = showPercentage && !getBoolean( + CUSTOM_BATTERY_HIDE_PERCENTAGE, + false + ) + + val showChargingIconCustomization: Boolean = + batteryStyle > BATTERY_STYLE_DEFAULT_LANDSCAPE && + getBoolean(CUSTOM_BATTERY_CHARGING_ICON_SWITCH, false) + + val showSwapLayout: Boolean = showInsidePercentage && + batteryStyle > BATTERY_STYLE_DEFAULT_LANDSCAPE + + val circleBattery = batteryStyle == BATTERY_STYLE_CIRCLE || + batteryStyle == BATTERY_STYLE_DOTTED_CIRCLE || + batteryStyle == BATTERY_STYLE_FILLED_CIRCLE + + return when (key) { + CUSTOM_BATTERY_LAYOUT_REVERSE, + CUSTOM_BATTERY_PERIMETER_ALPHA, + CUSTOM_BATTERY_FILL_ALPHA -> showAdvancedCustomizations + + CUSTOM_BATTERY_BLEND_COLOR -> showAdvancedCustomizations || circleBattery + + CUSTOM_BATTERY_FILL_COLOR, + CUSTOM_BATTERY_FILL_GRAD_COLOR, + CUSTOM_BATTERY_CHARGING_COLOR, + CUSTOM_BATTERY_POWERSAVE_FILL_COLOR, + CUSTOM_BATTERY_POWERSAVE_INDICATOR_COLOR -> (showAdvancedCustomizations || circleBattery) && + showColorPickers + + CUSTOM_BATTERY_RAINBOW_FILL_COLOR -> (showAdvancedCustomizations || circleBattery) && + showRainbowBattery + + CUSTOM_BATTERY_DIMENSION -> batteryStyle > BATTERY_STYLE_DEFAULT_LANDSCAPE + + CUSTOM_BATTERY_MARGIN_LEFT, + CUSTOM_BATTERY_MARGIN_RIGHT, + CUSTOM_BATTERY_MARGIN_TOP, + CUSTOM_BATTERY_MARGIN_BOTTOM -> showBatteryDimensions + + CUSTOM_BATTERY_HIDE_PERCENTAGE -> showPercentage + + CUSTOM_BATTERY_INSIDE_PERCENTAGE -> showInsidePercentage + + CUSTOM_BATTERY_SWAP_PERCENTAGE -> showSwapLayout + + CUSTOM_BATTERY_HIDE_BATTERY, + CUSTOM_BATTERY_CHARGING_ICON_SWITCH -> batteryStyle > BATTERY_STYLE_DEFAULT_LANDSCAPE + + CUSTOM_BATTERY_CHARGING_ICON_STYLE, + CUSTOM_BATTERY_CHARGING_ICON_MARGIN_LEFT, + CUSTOM_BATTERY_CHARGING_ICON_MARGIN_RIGHT, + CUSTOM_BATTERY_CHARGING_ICON_WIDTH_HEIGHT -> showChargingIconCustomization + + else -> true + } + } + + fun isEnabled(key: String): Boolean { + return when (key) { + + // Weather Common Prefs + WEATHER_UPDATE_INTERVAL, + PREF_KEY_UPDATE_STATUS, + WEATHER_PROVIDER, + WEATHER_UNITS, + WEATHER_CUSTOM_LOCATION, + WEATHER_ICON_PACK -> WeatherConfig.isEnabled(appContext) + + WEATHER_OWM_KEY -> getString(WEATHER_PROVIDER, "0") == "1" && + WeatherConfig.isEnabled(appContext) + + CUSTOM_BATTERY_WIDTH, + CUSTOM_BATTERY_HEIGHT -> getString(CUSTOM_BATTERY_STYLE, 0.toString())!!.toInt() != 0 + + else -> true + } + } + + @SuppressLint("DefaultLocale") + fun getSummary(fragmentCompat: Context, key: String): String? { + if (key.endsWith("Slider")) { + return String.format("%.2f", RPrefs.getSliderFloat(key, 0f)) + } + if (key.endsWith("List")) { + return getString(key, "") + } + if (key.endsWith("EditText")) { + return getString(key, "") + } + if (key.endsWith("MultiSelect")) { + return getStringSet(key, emptySet()).toString() + } + + return when (key) { + APP_LANGUAGE -> { + val currentLanguageCode = + listOf(*fragmentCompat.resources.getStringArray(R.array.locale_code)) + .indexOf( + getString( + APP_LANGUAGE, + fragmentCompat.resources.configuration.locales[0].language + ) + ) + val selectedLanguageCode = if (currentLanguageCode < 0) listOf( + *fragmentCompat.resources.getStringArray(R.array.locale_code) + ).indexOf("en-US") else currentLanguageCode + + return listOf(*fragmentCompat.resources.getStringArray(R.array.locale_name))[selectedLanguageCode] + } + + "checkForUpdatePref" -> BuildConfig.VERSION_NAME + + QSALPHA_LEVEL -> "${getSliderInt(key, 60)}%" + + BLUR_RADIUS_VALUE -> "${getSliderInt(key, 23)}px" + + QQS_TOPMARGIN, + QS_TOPMARGIN -> "${getSliderInt(key, 100)}dp" + + SB_CLOCK_SIZE -> "${getSliderInt(key, 14)}px" + + FIXED_STATUS_ICONS_TOPMARGIN -> "${getSliderInt(key, 8)}dp" + + FIXED_STATUS_ICONS_SIDEMARGIN -> "${getSliderInt(key, 0)}dp" + + LSCLOCK_FONT_LINEHEIGHT -> "${getSliderInt(key, 0)}dp" + + HEADER_CLOCK_FONT_TEXT_SCALING, + LSCLOCK_FONT_TEXT_SCALING -> "${String.format("%.1f", getSliderInt(key, 10) / 10f)}x" + + LSCLOCK_TOPMARGIN -> "${getSliderInt(key, 100)}dp" + + LSCLOCK_BOTTOMMARGIN -> "${getSliderInt(key, 40)}dp" + + HEADER_CLOCK_SIDEMARGIN -> "${getSliderInt(key, 0)}dp" + + HEADER_CLOCK_TOPMARGIN -> "${getSliderInt(key, 8)}dp" + + HEADER_IMAGE_HEIGHT -> "${getSliderInt(key, 140)}dp" + + HEADER_IMAGE_ALPHA -> "${getSliderInt(key, 100)}%" + + HEADER_IMAGE_BOTTOM_FADE_AMOUNT -> "${getSliderInt(key, 40)}%" + + WEATHER_CUSTOM_MARGINS_TOP, + WEATHER_CUSTOM_MARGINS_SIDE, + WEATHER_CUSTOM_MARGINS_BOTTOM -> "${getSliderInt(key, 0)}dp" + + WEATHER_TEXT_SIZE -> "${getSliderInt(key, 16)}sp" + + WEATHER_ICON_SIZE -> "${getSliderInt(key, 18)}dp" + + LOCKSCREEN_WIDGETS_BOTTOM_MARGIN -> "${getSliderInt(key, 0)}dp" + + WEATHER_CUSTOM_LOCATION_PICKER -> { + WeatherConfig.getLocationName(appContext).let { + if (it.isNullOrEmpty()) appContextLocale.getString(R.string.not_available) else it + } + } + + WEATHER_OWM_KEY -> { + val owmKey = getString(WEATHER_OWM_KEY, "")!! + + if (owmKey.length > 4) { + "*".repeat(owmKey.length - 4) + owmKey.takeLast( + 4 + ) + } else if (owmKey.isNotEmpty()) { + "*".repeat(owmKey.length) + } else { + appContextLocale.getString(R.string.not_available) + } + } + + CUSTOM_BATTERY_WIDTH, + CUSTOM_BATTERY_HEIGHT -> "${getSliderInt(key, 20)}dp" + + CUSTOM_BATTERY_MARGIN_LEFT, + CUSTOM_BATTERY_MARGIN_RIGHT -> "${getSliderInt(key, 4)}dp" + + CUSTOM_BATTERY_MARGIN_TOP, + CUSTOM_BATTERY_MARGIN_BOTTOM -> "${getSliderInt(key, 0)}dp" + + CUSTOM_BATTERY_CHARGING_ICON_MARGIN_LEFT -> "${getSliderInt(key, 1)}dp" + + CUSTOM_BATTERY_CHARGING_ICON_MARGIN_RIGHT -> "${getSliderInt(key, 0)}dp" + + CUSTOM_BATTERY_CHARGING_ICON_WIDTH_HEIGHT -> "${getSliderInt(key, 14)}dp" + + else -> null + } + } + + fun setupAllPreferences(group: PreferenceGroup) { + var i = 0 + while (true) { + try { + val thisPreference = group.getPreference(i) + + setupPreference(thisPreference) + + if (thisPreference is PreferenceGroup) { + setupAllPreferences(thisPreference) + } + } catch (ignored: Throwable) { + break + } + i++ + } + } + + private fun setupPreference(preference: Preference) { + try { + val key = preference.key + + preference.isVisible = isVisible(key) + preference.isEnabled = isEnabled(key) + + getSummary(preference.context, key)?.let { + preference.summary = it + } + + if (preference is SliderPreference) { + preference.slider.setLabelFormatter { value: Float -> + if (value == preference.defaultValue[0]) return@setLabelFormatter appContext.getString( + R.string.opt_default + ) + else return@setLabelFormatter Math.round(value).toString() + } + } + } catch (ignored: Throwable) { + } + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/config/RPrefs.kt b/app/src/main/java/com/drdisagree/iconify/config/RPrefs.kt index b5676e887..cb8a86f90 100644 --- a/app/src/main/java/com/drdisagree/iconify/config/RPrefs.kt +++ b/app/src/main/java/com/drdisagree/iconify/config/RPrefs.kt @@ -2,85 +2,90 @@ package com.drdisagree.iconify.config import android.content.Context.MODE_PRIVATE import android.content.SharedPreferences +import android.content.SharedPreferences.OnSharedPreferenceChangeListener import com.drdisagree.iconify.Iconify.Companion.appContext -import com.drdisagree.iconify.common.Preferences.STR_NULL import com.drdisagree.iconify.common.Resources.SHARED_XPREFERENCES +import com.drdisagree.iconify.ui.preferences.SliderPreference @Suppress("unused") -object RPrefs { +object RPrefs : SharedPreferences { - var prefs: SharedPreferences = + private val prefs: SharedPreferences by lazy { appContext.createDeviceProtectedStorageContext().getSharedPreferences( SHARED_XPREFERENCES, MODE_PRIVATE ) - private var editor: SharedPreferences.Editor = prefs.edit() + } + + private val editor: SharedPreferences.Editor by lazy { prefs.edit() } + + val instance: RPrefs + get() = this - fun putBoolean(key: String?, `val`: Boolean) { - editor.putBoolean(key, `val`).apply() + val getPrefs: SharedPreferences + get() = prefs + + // Basic put methods + fun putBoolean(key: String?, value: Boolean) { + editor.putBoolean(key, value).apply() } - fun putInt(key: String?, `val`: Int) { - editor.putInt(key, `val`).apply() + fun putInt(key: String?, value: Int) { + editor.putInt(key, value).apply() } - fun putLong(key: String?, `val`: Long) { - editor.putLong(key, `val`).apply() + fun putFloat(key: String?, value: Float) { + editor.putFloat(key, value).apply() } - fun putFloat(key: String?, `val`: Float) { - editor.putFloat(key, `val`).apply() + fun putLong(key: String?, value: Long) { + editor.putLong(key, value).apply() } - fun putString(key: String?, `val`: String?) { - editor.putString(key, `val`).apply() + fun putString(key: String?, value: String?) { + editor.putString(key, value).apply() } + // Basic get methods fun getBoolean(key: String?): Boolean { return prefs.getBoolean(key, false) } - fun getBoolean(key: String?, defValue: Boolean?): Boolean { - return prefs.getBoolean(key, defValue!!) - } - fun getInt(key: String?): Int { return prefs.getInt(key, 0) } - fun getInt(key: String?, defValue: Int): Int { - return prefs.getInt(key, defValue) - } - fun getLong(key: String?): Long { return prefs.getLong(key, 0) } - fun getLong(key: String?, defValue: Long): Long { - return prefs.getLong(key, defValue) - } - fun getFloat(key: String?): Float { return prefs.getFloat(key, 0f) } - fun getFloat(key: String?, defValue: Float): Float { - return prefs.getFloat(key, defValue) + fun getString(key: String?): String? { + return prefs.getString(key, null) } - fun getString(key: String?): String? { - return prefs.getString(key, STR_NULL) + // Custom slider preference methods + fun getSliderInt(key: String?, defaultVal: Int): Int { + return SliderPreference.getSingleIntValue(this, key, defaultVal) } - fun getString(key: String?, defValue: String?): String? { - return prefs.getString(key, defValue) + fun getSliderValues(key: String?, defaultValue: Float): List { + return SliderPreference.getValues(this, key, defaultValue) } + fun getSliderFloat(key: String?, defaultVal: Float): Float { + return SliderPreference.getSingleFloatValue(this, key, defaultVal) + } + + // Clear methods fun clearPref(key: String?) { editor.remove(key).apply() } fun clearPrefs(vararg keys: String?) { - for (key in keys) { + keys.forEach { key -> editor.remove(key).apply() } } @@ -88,4 +93,49 @@ object RPrefs { fun clearAllPrefs() { editor.clear().apply() } + + // Implementing SharedPreferences interface + override fun getAll(): Map { + return prefs.all + } + + override fun getBoolean(key: String?, defValue: Boolean): Boolean { + return prefs.getBoolean(key, defValue) + } + + override fun getInt(key: String?, defValue: Int): Int { + return prefs.getInt(key, defValue) + } + + override fun getLong(key: String?, defValue: Long): Long { + return prefs.getLong(key, defValue) + } + + override fun getFloat(key: String?, defValue: Float): Float { + return prefs.getFloat(key, defValue) + } + + override fun getString(key: String?, defValue: String?): String? { + return prefs.getString(key, defValue) + } + + override fun getStringSet(key: String, defValues: Set?): Set? { + return prefs.getStringSet(key, defValues) + } + + override fun contains(key: String): Boolean { + return prefs.contains(key) + } + + override fun edit(): SharedPreferences.Editor { + return editor + } + + override fun registerOnSharedPreferenceChangeListener(listener: OnSharedPreferenceChangeListener) { + prefs.registerOnSharedPreferenceChangeListener(listener) + } + + override fun unregisterOnSharedPreferenceChangeListener(listener: OnSharedPreferenceChangeListener) { + prefs.unregisterOnSharedPreferenceChangeListener(listener) + } } diff --git a/app/src/main/java/com/drdisagree/iconify/config/XPrefs.kt b/app/src/main/java/com/drdisagree/iconify/config/XPrefs.kt deleted file mode 100644 index d8251effc..000000000 --- a/app/src/main/java/com/drdisagree/iconify/config/XPrefs.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.drdisagree.iconify.config - -import android.content.Context -import android.content.SharedPreferences -import android.content.SharedPreferences.OnSharedPreferenceChangeListener -import com.crossbowffs.remotepreferences.RemotePreferences -import com.drdisagree.iconify.BuildConfig -import com.drdisagree.iconify.common.Const.PREF_UPDATE_EXCLUSIONS -import com.drdisagree.iconify.common.Resources.SHARED_XPREFERENCES -import com.drdisagree.iconify.xposed.HookEntry - -object XPrefs { - - var Xprefs: SharedPreferences? = null - private var packageName: String? = null - private val listener = - OnSharedPreferenceChangeListener { _: SharedPreferences?, key: String? -> - loadEverything( - key - ) - } - - fun init(context: Context) { - packageName = context.packageName - Xprefs = RemotePreferences(context, BuildConfig.APPLICATION_ID, SHARED_XPREFERENCES, true) - (Xprefs as RemotePreferences).registerOnSharedPreferenceChangeListener(listener) - } - - private fun loadEverything(vararg key: String?) { - if (key.isEmpty() || key[0].isNullOrEmpty() || PREF_UPDATE_EXCLUSIONS.any { exclusion -> - key[0]?.equals(exclusion) == true - }) { - return - } - - HookEntry.runningMods.forEach { thisMod -> - thisMod.updatePrefs(*key.filterNotNull().toTypedArray()) - } - } -} diff --git a/app/src/main/java/com/drdisagree/iconify/services/TileMonetEngine.kt b/app/src/main/java/com/drdisagree/iconify/services/TileMonetEngine.kt index 18be615dd..4b95c2b64 100644 --- a/app/src/main/java/com/drdisagree/iconify/services/TileMonetEngine.kt +++ b/app/src/main/java/com/drdisagree/iconify/services/TileMonetEngine.kt @@ -4,8 +4,8 @@ import android.service.quicksettings.Tile import android.service.quicksettings.TileService import com.drdisagree.iconify.R import com.drdisagree.iconify.common.Preferences.MONET_ENGINE_SWITCH -import com.drdisagree.iconify.config.Prefs.getBoolean -import com.drdisagree.iconify.config.Prefs.putBoolean +import com.drdisagree.iconify.config.RPrefs.getBoolean +import com.drdisagree.iconify.config.RPrefs.putBoolean import com.drdisagree.iconify.utils.overlay.OverlayUtil diff --git a/app/src/main/java/com/drdisagree/iconify/services/TileNotchBarKiller.kt b/app/src/main/java/com/drdisagree/iconify/services/TileNotchBarKiller.kt index 25941c462..453cac0f3 100644 --- a/app/src/main/java/com/drdisagree/iconify/services/TileNotchBarKiller.kt +++ b/app/src/main/java/com/drdisagree/iconify/services/TileNotchBarKiller.kt @@ -5,8 +5,8 @@ import android.service.quicksettings.TileService import com.drdisagree.iconify.R import com.drdisagree.iconify.common.Const.FRAMEWORK_PACKAGE import com.drdisagree.iconify.common.Preferences.NOTCH_BAR_KILLER_SWITCH -import com.drdisagree.iconify.config.Prefs.getBoolean -import com.drdisagree.iconify.config.Prefs.putBoolean +import com.drdisagree.iconify.config.RPrefs.getBoolean +import com.drdisagree.iconify.config.RPrefs.putBoolean import com.drdisagree.iconify.utils.SystemUtil import com.drdisagree.iconify.utils.overlay.manager.resource.ResourceEntry import com.drdisagree.iconify.utils.overlay.manager.resource.ResourceManager diff --git a/app/src/main/java/com/drdisagree/iconify/services/TilePitchBlack.kt b/app/src/main/java/com/drdisagree/iconify/services/TilePitchBlack.kt index b09ccd336..64c94c445 100644 --- a/app/src/main/java/com/drdisagree/iconify/services/TilePitchBlack.kt +++ b/app/src/main/java/com/drdisagree/iconify/services/TilePitchBlack.kt @@ -3,7 +3,7 @@ package com.drdisagree.iconify.services import android.service.quicksettings.Tile import android.service.quicksettings.TileService import com.drdisagree.iconify.R -import com.drdisagree.iconify.config.Prefs.getBoolean +import com.drdisagree.iconify.config.RPrefs.getBoolean import com.drdisagree.iconify.utils.overlay.OverlayUtil class TilePitchBlack : TileService() { diff --git a/app/src/main/java/com/drdisagree/iconify/services/UpdateScheduler.kt b/app/src/main/java/com/drdisagree/iconify/services/UpdateScheduler.kt index 8b455553f..fccbcf54b 100644 --- a/app/src/main/java/com/drdisagree/iconify/services/UpdateScheduler.kt +++ b/app/src/main/java/com/drdisagree/iconify/services/UpdateScheduler.kt @@ -10,8 +10,8 @@ import androidx.work.WorkManager import com.drdisagree.iconify.BuildConfig import com.drdisagree.iconify.common.Preferences.AUTO_UPDATE import com.drdisagree.iconify.common.Preferences.UPDATE_CHECK_TIME -import com.drdisagree.iconify.config.Prefs.getBoolean -import com.drdisagree.iconify.config.Prefs.getLong +import com.drdisagree.iconify.config.RPrefs.getBoolean +import com.drdisagree.iconify.config.RPrefs.getLong import java.util.concurrent.TimeUnit object UpdateScheduler { diff --git a/app/src/main/java/com/drdisagree/iconify/services/UpdateWorker.kt b/app/src/main/java/com/drdisagree/iconify/services/UpdateWorker.kt index ee54f277a..d1ee25334 100644 --- a/app/src/main/java/com/drdisagree/iconify/services/UpdateWorker.kt +++ b/app/src/main/java/com/drdisagree/iconify/services/UpdateWorker.kt @@ -16,9 +16,9 @@ import com.drdisagree.iconify.R import com.drdisagree.iconify.common.Const.LATEST_VERSION_URL import com.drdisagree.iconify.common.Preferences.UPDATE_OVER_WIFI import com.drdisagree.iconify.common.Preferences.VER_CODE -import com.drdisagree.iconify.config.Prefs +import com.drdisagree.iconify.config.RPrefs import com.drdisagree.iconify.ui.activities.MainActivity -import com.drdisagree.iconify.ui.fragments.AppUpdates +import com.drdisagree.iconify.ui.fragments.settings.AppUpdates import com.topjohnwu.superuser.Shell import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext @@ -56,7 +56,7 @@ class UpdateWorker(context: Context, params: WorkerParameters) : CoroutineWorker } private fun isGoodNetworkAvailable(): Boolean { - val updateOverWifiOnly = Prefs.getBoolean(UPDATE_OVER_WIFI, true) + val updateOverWifiOnly = RPrefs.getBoolean(UPDATE_OVER_WIFI, true) val connectivityManager = applicationContext.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager val capabilities = diff --git a/app/src/main/java/com/drdisagree/iconify/ui/activities/MainActivity.kt b/app/src/main/java/com/drdisagree/iconify/ui/activities/MainActivity.kt index 5c9be6fcf..449acd72f 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/activities/MainActivity.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/activities/MainActivity.kt @@ -1,47 +1,88 @@ package com.drdisagree.iconify.ui.activities -import android.annotation.SuppressLint +import android.animation.Animator +import android.animation.AnimatorListenerAdapter import android.os.Bundle +import android.os.Handler +import android.os.Looper import android.view.MenuItem -import androidx.navigation.NavController -import androidx.navigation.Navigation.findNavController -import androidx.navigation.fragment.NavHostFragment -import androidx.navigation.ui.NavigationUI.setupWithNavController +import android.view.View +import androidx.activity.OnBackPressedCallback +import androidx.appcompat.app.ActionBar +import androidx.fragment.app.Fragment +import androidx.fragment.app.FragmentManager +import androidx.fragment.app.FragmentTransaction +import androidx.preference.Preference +import androidx.preference.PreferenceFragmentCompat import com.airbnb.lottie.LottieCompositionFactory import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Dynamic import com.drdisagree.iconify.common.Preferences import com.drdisagree.iconify.common.Preferences.FORCE_RELOAD_OVERLAY_STATE import com.drdisagree.iconify.common.Preferences.FORCE_RELOAD_PACKAGE_NAME import com.drdisagree.iconify.common.Preferences.MONET_ENGINE_SWITCH import com.drdisagree.iconify.common.Preferences.ON_HOME_PAGE -import com.drdisagree.iconify.config.Prefs +import com.drdisagree.iconify.common.Resources.searchConfiguration +import com.drdisagree.iconify.common.Resources.searchableFragments import com.drdisagree.iconify.config.RPrefs -import com.drdisagree.iconify.databinding.ActivityHomePageBinding +import com.drdisagree.iconify.databinding.ActivityMainBinding import com.drdisagree.iconify.ui.base.BaseActivity +import com.drdisagree.iconify.ui.base.BaseFragment +import com.drdisagree.iconify.ui.base.ControlledPreferenceFragmentCompat import com.drdisagree.iconify.ui.events.ColorDismissedEvent import com.drdisagree.iconify.ui.events.ColorSelectedEvent +import com.drdisagree.iconify.ui.fragments.home.Home +import com.drdisagree.iconify.ui.fragments.settings.Settings +import com.drdisagree.iconify.ui.fragments.tweaks.BasicColors +import com.drdisagree.iconify.ui.fragments.tweaks.ColorEngine +import com.drdisagree.iconify.ui.fragments.tweaks.MonetEngine +import com.drdisagree.iconify.ui.fragments.tweaks.Tweaks +import com.drdisagree.iconify.ui.fragments.xposed.BackgroundChip +import com.drdisagree.iconify.ui.fragments.xposed.ClockChip +import com.drdisagree.iconify.ui.fragments.xposed.LockscreenWidget +import com.drdisagree.iconify.ui.fragments.xposed.WeatherSettings +import com.drdisagree.iconify.ui.fragments.xposed.Xposed +import com.drdisagree.iconify.ui.preferences.preferencesearch.SearchPreferenceFragment +import com.drdisagree.iconify.ui.preferences.preferencesearch.SearchPreferenceResult +import com.drdisagree.iconify.ui.preferences.preferencesearch.SearchPreferenceResultListener +import com.drdisagree.iconify.ui.utils.FragmentHelper.isInGroup +import com.drdisagree.iconify.utils.SystemUtil import com.drdisagree.iconify.utils.overlay.FabricatedUtil import com.drdisagree.iconify.utils.overlay.OverlayUtil import com.jaredrummler.android.colorpicker.ColorPickerDialog import com.jaredrummler.android.colorpicker.ColorPickerDialogListener import com.topjohnwu.superuser.Shell import org.greenrobot.eventbus.EventBus +import java.util.UUID -class MainActivity : BaseActivity(), ColorPickerDialogListener { - - private lateinit var binding: ActivityHomePageBinding - private var selectedFragment: Int? = null - private var colorPickerDialog: ColorPickerDialog.Builder? = null +class MainActivity : BaseActivity(), + PreferenceFragmentCompat.OnPreferenceStartFragmentCallback, + SearchPreferenceResultListener, + ColorPickerDialogListener { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - binding = ActivityHomePageBinding.inflate(layoutInflater) + binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.getRoot()) - // Setup navigation + colorPickerDialog = ColorPickerDialog.newBuilder() + myFragmentManager = supportFragmentManager + myActionBar = supportActionBar + setupNavigation() - Prefs.putBoolean(ON_HOME_PAGE, true) + setupSearchConfiguration() + RPrefs.putBoolean(ON_HOME_PAGE, true) + + if (savedInstanceState == null) { + replaceFragment(if (!Preferences.isXposedOnlyMode) Home() else Xposed()) + } + initData() + + setupFloatingActionButtons() + } + + private fun initData() { Thread { // Clear lottie cache LottieCompositionFactory.clearCache(this) @@ -49,106 +90,262 @@ class MainActivity : BaseActivity(), ColorPickerDialogListener { // Get list of enabled overlays val enabledOverlays = OverlayUtil.enabledOverlayList for (overlay in enabledOverlays) { - Prefs.putBoolean(overlay, true) + if (!RPrefs.getBoolean(overlay, false)) { + RPrefs.putBoolean(overlay, true) + } } val fabricatedEnabledOverlays = FabricatedUtil.enabledOverlayList for (overlay in fabricatedEnabledOverlays) { - Prefs.putBoolean("fabricated$overlay", true) + if (!RPrefs.getBoolean("fabricated$overlay", false)) { + RPrefs.putBoolean("fabricated$overlay", true) + } } - Prefs.putBoolean( - MONET_ENGINE_SWITCH, - enabledOverlays.contains("IconifyComponentME.overlay") - ) + if (enabledOverlays.contains("IconifyComponentME.overlay") && + !RPrefs.getBoolean(MONET_ENGINE_SWITCH, false) + ) { + RPrefs.putBoolean( + MONET_ENGINE_SWITCH, + true + ) + } else if (!enabledOverlays.contains("IconifyComponentME.overlay") && + RPrefs.getBoolean(MONET_ENGINE_SWITCH, false) + ) { + RPrefs.putBoolean( + MONET_ENGINE_SWITCH, + false + ) + } + + val state = Shell.cmd( + "[[ $(cmd overlay list | grep -o '\\[x\\] $FORCE_RELOAD_PACKAGE_NAME') ]] && echo 1 || echo 0" + ).exec().out[0] == "1" - val state = - Shell.cmd( - "[[ $(cmd overlay list | grep -o '\\[x\\] $FORCE_RELOAD_PACKAGE_NAME') ]] && echo 1 || echo 0" - ).exec().out[0] == "1" - RPrefs.putBoolean(FORCE_RELOAD_OVERLAY_STATE, state) + if (state != RPrefs.getBoolean(FORCE_RELOAD_OVERLAY_STATE, false)) { + RPrefs.putBoolean(FORCE_RELOAD_OVERLAY_STATE, state) + } }.start() + } - colorPickerDialog = ColorPickerDialog.newBuilder() + private fun setupFloatingActionButtons() { + binding.hideAll.hide() + binding.restartSystemui.hide() + binding.restartDevice.hide() + binding.pendingActions.shrink() + + showOrHidePendingActionButton( + Dynamic.requiresSystemUiRestart, + Dynamic.requiresDeviceRestart + ) + + binding.pendingActions.setOnClickListener { + showOrHideFabButtons() + } + + binding.hideAll.setOnClickListener { + Dynamic.requiresSystemUiRestart = false + Dynamic.requiresDeviceRestart = false + + showOrHidePendingActionButton( + requiresSystemUiRestart = false, + requiresDeviceRestart = false + ) + } + + binding.restartSystemui.setOnClickListener { + Dynamic.requiresSystemUiRestart = false + + showOrHidePendingActionButton( + requiresSystemUiRestart = false, + requiresDeviceRestart = Dynamic.requiresDeviceRestart + ) + + Handler(Looper.getMainLooper()).postDelayed({ + SystemUtil.restartSystemUI() + }, 500) + } + + binding.restartDevice.setOnClickListener { + Dynamic.requiresDeviceRestart = false + + showOrHidePendingActionButton( + requiresSystemUiRestart = Dynamic.requiresSystemUiRestart, + requiresDeviceRestart = false + ) + + Handler(Looper.getMainLooper()).postDelayed({ + SystemUtil.restartDevice() + }, android.R.integer.config_longAnimTime.toLong()) + } } private fun setupNavigation() { - val navHostFragment = - supportFragmentManager.findFragmentById(R.id.fragmentContainerView) as NavHostFragment? - ?: return - val navController = navHostFragment.navController + onBackPressedDispatcher.addCallback(this, object : OnBackPressedCallback(true) { + override fun handleOnBackPressed() { + if (myFragmentManager.backStackEntryCount > 1) { + popCurrentFragment() + } else { + handleBackPress() + } + } + }) if (Preferences.isXposedOnlyMode) { - navController.setGraph(R.navigation.nav_xposed_menu) binding.bottomNavigationView.menu.clear() binding.bottomNavigationView.inflateMenu(R.menu.bottom_nav_menu_xposed_only) } - setupWithNavController(binding.bottomNavigationView, navController) + supportFragmentManager.addOnBackStackChangedListener { + val fragment = getTopFragment() + val xposedOnlyMode = Preferences.isXposedOnlyMode + + val homeIndex = 0 + val tweaksIndex = 1 + val xposedIndex = if (!xposedOnlyMode) 2 else 0 + val settingsIndex = if (!xposedOnlyMode) 3 else 1 + + when { + isInGroup(fragment, homeIndex) && !xposedOnlyMode -> { + selectedFragment = R.id.homePage + binding.bottomNavigationView.menu.getItem(homeIndex).setChecked(true) + } + + isInGroup(fragment, tweaksIndex) && !xposedOnlyMode -> { + selectedFragment = R.id.tweaks + binding.bottomNavigationView.menu.getItem(tweaksIndex).setChecked(true) + } + + isInGroup(fragment, xposedIndex) -> { + selectedFragment = R.id.xposed + binding.bottomNavigationView.menu.getItem(xposedIndex).setChecked(true) + } - binding.bottomNavigationView.setOnItemSelectedListener { item: MenuItem -> - setFragment(item.itemId, navController, Preferences.isXposedOnlyMode) - true + isInGroup(fragment, settingsIndex) -> { + selectedFragment = R.id.settings + binding.bottomNavigationView.menu.getItem(settingsIndex).setChecked(true) + } + } } - } - @SuppressLint("NonConstantResourceId") - private fun setFragment(itemId: Int, navController: NavController, isXposedOnlyMode: Boolean) { - val currentDestination = navController.currentDestination ?: return + binding.bottomNavigationView.setOnItemSelectedListener { item -> + val fragmentTag: String = getTopFragmentTag() + + when (item.itemId) { + R.id.homePage -> { + if (fragmentTag != Home::class.java.simpleName) { + selectedFragment = R.id.homePage + replaceFragment(Home()) + } + return@setOnItemSelectedListener true + } + + R.id.tweaks -> { + if (fragmentTag != Tweaks::class.java.simpleName) { + selectedFragment = R.id.tweaks + replaceFragment(Tweaks()) + } + return@setOnItemSelectedListener true + } - if (isXposedOnlyMode) { - when (itemId) { - R.id.xposedMenu -> { - if (currentDestination.id != itemId) { - navController.popBackStack(navController.graph.startDestinationId, false) - selectedFragment = itemId + R.id.xposed -> { + if (fragmentTag != Xposed::class.java.simpleName) { + selectedFragment = R.id.xposed + replaceFragment(Xposed()) } + return@setOnItemSelectedListener true } R.id.settings -> { - if (currentDestination.id != itemId) { - navController.popBackStack(navController.graph.startDestinationId, false) - findNavController( - this, - R.id.fragmentContainerView - ).navigate(R.id.action_xposedMenu_to_settings2) - selectedFragment = itemId + if (fragmentTag != Settings::class.java.simpleName) { + selectedFragment = R.id.settings + replaceFragment(Settings()) } + return@setOnItemSelectedListener true + } + + else -> { + return@setOnItemSelectedListener true } } - return } + } - when (itemId) { - R.id.homePage -> { - if (currentDestination.id != itemId) { - navController.popBackStack(navController.graph.startDestinationId, false) - selectedFragment = itemId - } + private fun handleBackPress() { + val topFragment = getTopFragment() + val xposedOnlyMode = Preferences.isXposedOnlyMode + + val homeIndex = 0 + val tweaksIndex = 1 + val xposedIndex = if (!xposedOnlyMode) 2 else 0 + val settingsIndex = if (!xposedOnlyMode) 3 else 1 + + when { + topFragment is BasicColors || topFragment is MonetEngine -> { + clearAndReplaceFragment(ColorEngine()) } - R.id.tweaks -> { - if (currentDestination.id != itemId) { - navController.popBackStack(navController.graph.startDestinationId, false) - findNavController( - this, - R.id.fragmentContainerView - ).navigate(R.id.action_home2_to_tweaks) - selectedFragment = itemId - } + topFragment is WeatherSettings -> { + clearAndReplaceFragment(LockscreenWidget()) } - R.id.settings -> { - if (currentDestination.id != itemId) { - navController.popBackStack(navController.graph.startDestinationId, false) - findNavController( - this, - R.id.fragmentContainerView - ).navigate(R.id.action_home2_to_settings) - selectedFragment = itemId - } + topFragment is ClockChip -> { + clearAndReplaceFragment(BackgroundChip()) } + + isInGroup(topFragment, homeIndex) && topFragment !is Home -> { + clearAndReplaceFragment(Home()) + } + + isInGroup(topFragment, tweaksIndex) && topFragment !is Tweaks -> { + clearAndReplaceFragment(Tweaks()) + } + + isInGroup(topFragment, xposedIndex) && topFragment !is Xposed -> { + clearAndReplaceFragment(Xposed()) + } + + isInGroup(topFragment, settingsIndex) && topFragment !is Settings -> { + clearAndReplaceFragment(Settings()) + } + + (topFragment is Settings || topFragment is Xposed || topFragment is Tweaks) -> { + clearAndReplaceFragment(Home()) + } + + else -> { + finish() + } + } + } + + private fun setupSearchConfiguration() { + searchConfiguration.apply { + setActivity(this@MainActivity) + setFragmentContainerViewId(R.id.fragmentContainerView) + + searchableFragments.forEach { + index(it.xml).addBreadcrumb(resources.getString(it.title)) + } + + setBreadcrumbsEnabled(true) + setHistoryEnabled(true) + setFuzzySearchEnabled(false) + } + } + + private fun getTopFragment(): Fragment { + val last: Int = supportFragmentManager.fragments.size - 1 + + if (last >= 0) { + return supportFragmentManager.fragments[last] } + + return Home() + } + + private fun getTopFragmentTag(): String { + return getTopFragment().tag ?: UUID.randomUUID().toString() } fun showColorPickerDialog( @@ -158,7 +355,7 @@ class MainActivity : BaseActivity(), ColorPickerDialogListener { showAlphaSlider: Boolean, showColorShades: Boolean ) { - colorPickerDialog!!.setDialogStyle(R.style.ColorPicker) + colorPickerDialog .setColor(defaultColor) .setDialogType(ColorPickerDialog.TYPE_CUSTOM) .setAllowCustom(false) @@ -167,19 +364,27 @@ class MainActivity : BaseActivity(), ColorPickerDialogListener { .setShowAlphaSlider(showAlphaSlider) .setShowColorShades(showColorShades) - colorPickerDialog!!.show(this) + colorPickerDialog.show(this) } override fun onSaveInstanceState(outState: Bundle) { - super.onSaveInstanceState(outState) + if (selectedFragment != null) { + outState.putInt(SELECTED_FRAGMENT_KEY, selectedFragment!!) + } - if (selectedFragment != null) outState.putInt(DATA_KEY, selectedFragment!!) + outState.putBoolean(REQUIRE_SYSTEMUI_RESTART_KEY, Dynamic.requiresSystemUiRestart) + outState.putBoolean(REQUIRE_DEVICE_RESTART_KEY, Dynamic.requiresDeviceRestart) + + super.onSaveInstanceState(outState) } public override fun onRestoreInstanceState(savedInstanceState: Bundle) { - super.onRestoreInstanceState(savedInstanceState) + selectedFragment = savedInstanceState.getInt(SELECTED_FRAGMENT_KEY) + Dynamic.requiresSystemUiRestart = + savedInstanceState.getBoolean(REQUIRE_SYSTEMUI_RESTART_KEY) + Dynamic.requiresDeviceRestart = savedInstanceState.getBoolean(REQUIRE_DEVICE_RESTART_KEY) - selectedFragment = savedInstanceState.getInt(DATA_KEY) + super.onRestoreInstanceState(savedInstanceState) } override fun onColorSelected(dialogId: Int, color: Int) { @@ -190,12 +395,245 @@ class MainActivity : BaseActivity(), ColorPickerDialogListener { EventBus.getDefault().post(ColorDismissedEvent(dialogId)) } - override fun onSupportNavigateUp(): Boolean { - val navController = findNavController(this, R.id.fragmentContainerView) - return navController.navigateUp() || super.onSupportNavigateUp() + @Suppress("deprecation") + override fun onPreferenceStartFragment( + caller: PreferenceFragmentCompat, + pref: Preference + ): Boolean { + replaceFragment( + supportFragmentManager.fragmentFactory.instantiate( + classLoader, pref.fragment!! + ).apply { + arguments = pref.extras + setTargetFragment(caller, 0) + } + ) + return true + } + + override fun onSearchResultClicked(result: SearchPreferenceResult) { + Handler(mainLooper).post { + val lastFragment = getLastFragment(excludeSearchFragment = true) + + (lastFragment as? BaseFragment)?.onSearchResultClicked(result) + ?: (lastFragment as? ControlledPreferenceFragmentCompat) + ?.onSearchResultClicked(result) + } + } + + override fun onOptionsItemSelected(item: MenuItem): Boolean { + val itemID = item.itemId + + if (itemID == android.R.id.home) { + onBackPressedDispatcher.onBackPressed() + return true + } + + return false } companion object { - private const val DATA_KEY = "mDataKey" + @Suppress("StaticFieldLeak") + private lateinit var binding: ActivityMainBinding + private const val SELECTED_FRAGMENT_KEY = "mSelectedFragmentKey" + private const val REQUIRE_SYSTEMUI_RESTART_KEY = "mSystemUiRestartKey" + private const val REQUIRE_DEVICE_RESTART_KEY = "mDeviceRestartKey" + private lateinit var myFragmentManager: FragmentManager + private var myActionBar: ActionBar? = null + private var selectedFragment: Int? = null + private lateinit var colorPickerDialog: ColorPickerDialog.Builder + + fun replaceFragment(fragment: Fragment) { + val fragmentTag = fragment.javaClass.simpleName + var currentFragment = myFragmentManager.findFragmentById(R.id.fragmentContainerView) + + if (currentFragment != null && + currentFragment.javaClass.simpleName == SearchPreferenceFragment::class.java.simpleName + ) { + myFragmentManager.popBackStack() + currentFragment = myFragmentManager.findFragmentById(R.id.fragmentContainerView) + } + + if (currentFragment != null && + currentFragment.javaClass.simpleName == fragmentTag + ) { + popCurrentFragment() + } + + try { + myFragmentManager.popBackStackImmediate( + fragmentTag, + FragmentManager.POP_BACK_STACK_INCLUSIVE + ) + } catch (ignored: IllegalStateException) { + } + + val fragmentTransaction: FragmentTransaction = myFragmentManager.beginTransaction() + + fragmentTransaction.setCustomAnimations( + R.anim.fragment_fade_in, + R.anim.fragment_fade_out, + R.anim.fragment_fade_in, + R.anim.fragment_fade_out + ) + + fragmentTransaction.replace(R.id.fragmentContainerView, fragment, fragmentTag) + + when { + fragmentTag == Home::class.java.simpleName || + fragmentTag == Tweaks::class.java.simpleName || + fragmentTag == Xposed::class.java.simpleName || + fragmentTag == Settings::class.java.simpleName -> { + myFragmentManager.popBackStack(Home::class.java.simpleName, 0) + fragmentTransaction.addToBackStack(fragmentTag) + } + + else -> { + fragmentTransaction.addToBackStack(fragmentTag) + } + } + + fragmentTransaction.commit() + } + + private fun clearAndReplaceFragment(fragment: Fragment) { + while (myFragmentManager.backStackEntryCount > 0) { + myFragmentManager.popBackStackImmediate() + } + replaceFragment(fragment) + } + + private fun getLastFragment(excludeSearchFragment: Boolean = false): Fragment? { + val index = myFragmentManager.backStackEntryCount - 1 + var backEntry = myFragmentManager.getBackStackEntryAt(index) + var fragment = myFragmentManager.findFragmentByTag(backEntry.name) + + if (excludeSearchFragment && fragment is SearchPreferenceFragment) { + backEntry = myFragmentManager.getBackStackEntryAt(index - 1) + fragment = myFragmentManager.findFragmentByTag(backEntry.name) + } + + return fragment + } + + fun popCurrentFragment() { + myFragmentManager.popBackStack() + } + + @JvmStatic + fun showOrHidePendingActionButton( + requiresSystemUiRestart: Boolean = false, + requiresDeviceRestart: Boolean = false, + ) { + Dynamic.requiresSystemUiRestart = + requiresSystemUiRestart || Dynamic.requiresSystemUiRestart + Dynamic.requiresDeviceRestart = requiresDeviceRestart || Dynamic.requiresDeviceRestart + + try { + if (!Dynamic.requiresSystemUiRestart && !Dynamic.requiresDeviceRestart) { + binding.hideAll.hide() + binding.hideAllText.fadeOut() + binding.restartSystemui.hide() + binding.restartSystemuiText.fadeOut() + binding.restartDevice.hide() + binding.restartDeviceText.fadeOut() + binding.pendingActions.hide() + binding.pendingActions.shrink() + } else { + if (binding.hideAll.isShown && Dynamic.requiresSystemUiRestart && !binding.restartSystemui.isShown) { + binding.restartSystemui.show() + binding.restartSystemuiText.fadeIn() + } else if (!Dynamic.requiresSystemUiRestart && binding.restartSystemui.isShown) { + binding.restartSystemui.hide() + binding.restartSystemuiText.fadeOut() + } + + if (binding.hideAll.isShown && Dynamic.requiresDeviceRestart && !binding.restartDevice.isShown) { + binding.restartDevice.show() + binding.restartDeviceText.fadeIn() + } else if (!Dynamic.requiresDeviceRestart && binding.restartDevice.isShown) { + binding.restartDevice.hide() + binding.restartDeviceText.fadeOut() + } + + if (!binding.hideAll.isShown) { + binding.pendingActions.shrink() + } else { + binding.pendingActions.extend() + } + + binding.pendingActions.show() + } + } catch (_: Exception) { + } + } + + private fun showOrHideFabButtons() { + try { + val pendingActionsShown = binding.pendingActions.isShown + var isAnyButtonShown: Boolean + + if (!binding.hideAll.isShown && pendingActionsShown) { + binding.hideAll.show() + binding.hideAllText.fadeIn() + isAnyButtonShown = true + } else { + binding.hideAll.hide() + binding.hideAllText.fadeOut() + isAnyButtonShown = false + } + + if (!binding.restartSystemui.isShown && Dynamic.requiresSystemUiRestart && pendingActionsShown) { + binding.restartSystemui.show() + binding.restartSystemuiText.fadeIn() + isAnyButtonShown = true + } else { + binding.restartSystemui.hide() + binding.restartSystemuiText.fadeOut() + isAnyButtonShown = isAnyButtonShown || false + } + + if (!binding.restartDevice.isShown && Dynamic.requiresDeviceRestart && pendingActionsShown) { + binding.restartDevice.show() + binding.restartDeviceText.fadeIn() + isAnyButtonShown = true + } else { + binding.restartDevice.hide() + binding.restartDeviceText.fadeOut() + isAnyButtonShown = isAnyButtonShown || false + } + + if (isAnyButtonShown) { + binding.pendingActions.extend() + } else { + binding.pendingActions.shrink() + } + } catch (_: Exception) { + } + } + + private fun View.fadeIn(duration: Long = 300) { + this.apply { + alpha = 0f + visibility = View.VISIBLE + animate() + .alpha(1f) + .setDuration(duration) + .setListener(null) + } + } + + private fun View.fadeOut(duration: Long = 300) { + this.apply { + animate() + .alpha(0f) + .setDuration(duration) + .setListener(object : AnimatorListenerAdapter() { + override fun onAnimationEnd(animation: Animator) { + visibility = View.GONE + } + }) + } + } } } \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/adapters/BrightnessBarAdapter.kt b/app/src/main/java/com/drdisagree/iconify/ui/adapters/BrightnessBarAdapter.kt index 3420d8cf9..7015e73cb 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/adapters/BrightnessBarAdapter.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/adapters/BrightnessBarAdapter.kt @@ -19,7 +19,7 @@ import androidx.recyclerview.widget.RecyclerView import com.drdisagree.iconify.Iconify import com.drdisagree.iconify.Iconify.Companion.appContext import com.drdisagree.iconify.R -import com.drdisagree.iconify.config.Prefs.getBoolean +import com.drdisagree.iconify.config.RPrefs.getBoolean import com.drdisagree.iconify.ui.dialogs.LoadingDialog import com.drdisagree.iconify.ui.models.BrightnessBarModel import com.drdisagree.iconify.utils.overlay.manager.BrightnessBarManager diff --git a/app/src/main/java/com/drdisagree/iconify/ui/adapters/ClockPreviewAdapter.kt b/app/src/main/java/com/drdisagree/iconify/ui/adapters/ClockPreviewAdapter.kt index 56952ad56..c6c110c40 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/adapters/ClockPreviewAdapter.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/adapters/ClockPreviewAdapter.kt @@ -77,11 +77,10 @@ class ClockPreviewAdapter( fun bind(model: ClockModel, position: Int) { title.text = model.title + button.setOnClickListener { RPrefs.putInt(prefStyle, position) - if (mOnStyleSelected != null) { - mOnStyleSelected!!.onStyleSelected(position) - } + mOnStyleSelected?.onStyleSelected(position) refreshLayout(this) } @@ -150,10 +149,8 @@ class ClockPreviewAdapter( fun loadWallpaper(adapter: ClockPreviewAdapter) { CoroutineScope(Dispatchers.Main).launch { val bitmap = withContext(Dispatchers.IO) { - val context = adapter.context - WallpaperUtil.getCompressedWallpaper( - context, + adapter.context, 80, if (prefSwitch == LSCLOCK_SWITCH) { WallpaperManager.FLAG_LOCK @@ -170,12 +167,12 @@ class ClockPreviewAdapter( } } - /** - * Interface for style selection - * @param position The position of the selected style, - * in our case is the num of the layout - */ interface OnStyleSelected { + /** + * Interface for style selection + * @param position The position of the selected style, + * in our case is the num of the layout + */ fun onStyleSelected(position: Int) } diff --git a/app/src/main/java/com/drdisagree/iconify/ui/adapters/IconPackAdapter.kt b/app/src/main/java/com/drdisagree/iconify/ui/adapters/IconPackAdapter.kt index 96f5f5b46..8d131d9c0 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/adapters/IconPackAdapter.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/adapters/IconPackAdapter.kt @@ -4,7 +4,6 @@ import android.app.Activity import android.content.Context import android.os.Handler import android.os.Looper -import android.text.TextUtils import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -18,20 +17,18 @@ import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.drdisagree.iconify.Iconify.Companion.appContext import com.drdisagree.iconify.R -import com.drdisagree.iconify.config.Prefs.getBoolean +import com.drdisagree.iconify.config.RPrefs.getBoolean import com.drdisagree.iconify.ui.dialogs.LoadingDialog import com.drdisagree.iconify.ui.models.IconPackModel -import com.drdisagree.iconify.utils.overlay.manager.IconPackManager class IconPackAdapter( var context: Context, private var itemList: ArrayList, var loadingDialog: LoadingDialog, - private var componentName : String, - private var onButtonClick : OnButtonClick? = null + private var componentName: String, + private var onButtonClick: OnButtonClick? = null ) : RecyclerView.Adapter() { - private var iconPackKeys = ArrayList() private var linearLayoutManager: LinearLayoutManager? = null private var selectedItem = -1 @@ -47,17 +44,20 @@ class IconPackAdapter( init { // Preference key for (i in 1..itemList.size) iconPackKeys.add( - itemList[i - 1].packageName.takeIf { !it.isNullOrEmpty() } ?: "IconifyComponent${mComponentName}${i}.overlay" + itemList[i - 1].packageName.takeIf { !it.isNullOrEmpty() } + ?: "IconifyComponent${mComponentName}${i}.overlay" ) } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { - val view = - LayoutInflater.from(context).inflate(R.layout.view_list_option_iconpack, parent, false) + val view = LayoutInflater.from(context).inflate( + R.layout.view_list_option_iconpack, + parent, + false + ) return ViewHolder(view) } - override fun onBindViewHolder(holder: ViewHolder, position: Int) { holder.styleName.text = itemList[position].name if (itemList[position].desc != 0x0) { @@ -145,7 +145,10 @@ class IconPackAdapter( Thread { if (onButtonClick != null) { - onButtonClick!!.onEnableClick(holder.bindingAdapterPosition, itemList[holder.bindingAdapterPosition]) + onButtonClick!!.onEnableClick( + holder.bindingAdapterPosition, + itemList[holder.bindingAdapterPosition] + ) } (context as Activity).runOnUiThread { @@ -176,7 +179,10 @@ class IconPackAdapter( Thread { if (onButtonClick != null) { - onButtonClick!!.onDisableClick(holder.bindingAdapterPosition, itemList[holder.bindingAdapterPosition]) + onButtonClick!!.onDisableClick( + holder.bindingAdapterPosition, + itemList[holder.bindingAdapterPosition] + ) } (context as Activity).runOnUiThread { @@ -292,27 +298,15 @@ class IconPackAdapter( class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - var container: LinearLayout - var styleName: TextView - var desc: TextView - var icon1: ImageView - var icon2: ImageView - var icon3: ImageView - var icon4: ImageView - var btnEnable: Button - var btnDisable: Button - - init { - container = itemView.findViewById(R.id.icon_pack_child) - styleName = itemView.findViewById(R.id.iconpack_title) - desc = itemView.findViewById(R.id.iconpack_desc) - icon1 = itemView.findViewById(R.id.iconpack_preview1) - icon2 = itemView.findViewById(R.id.iconpack_preview2) - icon3 = itemView.findViewById(R.id.iconpack_preview3) - icon4 = itemView.findViewById(R.id.iconpack_preview4) - btnEnable = itemView.findViewById(R.id.enable_iconpack) - btnDisable = itemView.findViewById(R.id.disable_iconpack) - } + var container: LinearLayout = itemView.findViewById(R.id.icon_pack_child) + var styleName: TextView = itemView.findViewById(R.id.iconpack_title) + var desc: TextView = itemView.findViewById(R.id.iconpack_desc) + var icon1: ImageView = itemView.findViewById(R.id.iconpack_preview1) + var icon2: ImageView = itemView.findViewById(R.id.iconpack_preview2) + var icon3: ImageView = itemView.findViewById(R.id.iconpack_preview3) + var icon4: ImageView = itemView.findViewById(R.id.iconpack_preview4) + var btnEnable: Button = itemView.findViewById(R.id.enable_iconpack) + var btnDisable: Button = itemView.findViewById(R.id.disable_iconpack) } /** diff --git a/app/src/main/java/com/drdisagree/iconify/ui/adapters/IconShapeAdapter.kt b/app/src/main/java/com/drdisagree/iconify/ui/adapters/IconShapeAdapter.kt index aa64b22a1..7c084db69 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/adapters/IconShapeAdapter.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/adapters/IconShapeAdapter.kt @@ -11,7 +11,7 @@ import com.drdisagree.iconify.Iconify.Companion.appContext import com.drdisagree.iconify.Iconify.Companion.appContextLocale import com.drdisagree.iconify.R import com.drdisagree.iconify.common.Preferences.SELECTED_ICON_SHAPE -import com.drdisagree.iconify.config.Prefs +import com.drdisagree.iconify.config.RPrefs import com.drdisagree.iconify.databinding.ViewIconShapeBinding import com.drdisagree.iconify.databinding.ViewToastFrameBinding import com.drdisagree.iconify.ui.models.IconShapeModel @@ -22,7 +22,7 @@ class IconShapeAdapter ( private var iconShapeClick: OnShapeClick ) : RecyclerView.Adapter() { - private var selected = Prefs.getInt(SELECTED_ICON_SHAPE, -1) + private var selected = RPrefs.getInt(SELECTED_ICON_SHAPE, -1) @ColorInt val colorBackground = appContextLocale.resources.getColor( R.color.colorBackground, @@ -69,7 +69,7 @@ class IconShapeAdapter ( fun notifyChange() { refresh(false) - selected = Prefs.getInt(SELECTED_ICON_SHAPE, -1) + selected = RPrefs.getInt(SELECTED_ICON_SHAPE, -1) refresh(true) } diff --git a/app/src/main/java/com/drdisagree/iconify/ui/adapters/ListPreferenceAdapter.kt b/app/src/main/java/com/drdisagree/iconify/ui/adapters/ListPreferenceAdapter.kt new file mode 100644 index 000000000..6ef9ea198 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/adapters/ListPreferenceAdapter.kt @@ -0,0 +1,172 @@ +package com.drdisagree.iconify.ui.adapters + +import android.graphics.Color +import android.graphics.drawable.Drawable +import android.text.TextUtils +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.core.content.ContextCompat +import androidx.recyclerview.widget.RecyclerView +import com.drdisagree.iconify.Iconify.Companion.appContext +import com.drdisagree.iconify.R +import com.drdisagree.iconify.config.RPrefs +import com.drdisagree.iconify.databinding.PreferenceListItemBinding +import com.drdisagree.iconify.databinding.ViewListIconItemBinding + +class ListPreferenceAdapter : RecyclerView.Adapter { + private var mResImages: List = ArrayList() + private val mEntries: Array + private val mEntryValues: Array + private val mEntryIcons: IntArray? + private val mEntryDrawables: Array? + private val mKey: String + private val mHasImage: Boolean + private var onItemClickListener: OnItemClickListener + private var mValue: String? = null + var type: Int = DEFAULT_TYPE + private var prevPos: Int = -1 + + + constructor( + entries: Array, + entryValues: Array, + entryIcons: IntArray?, + key: String, + hasImage: Boolean, + onItemClickListener: OnItemClickListener + ) { + this.mEntries = entries + this.mEntryValues = entryValues + this.mEntryIcons = entryIcons + this.mEntryDrawables = null + this.mKey = key + this.mHasImage = hasImage + this.onItemClickListener = onItemClickListener + this.type = DEFAULT_TYPE + } + + constructor( + entries: Array, + entryValues: Array, + entryDrawables: Array, + key: String, + hasImage: Boolean, + onItemClickListener: OnItemClickListener + ) { + this.mEntries = entries + this.mEntryValues = entryValues + this.mEntryDrawables = entryDrawables + this.mEntryIcons = null + this.mKey = key + this.mHasImage = hasImage + this.onItemClickListener = onItemClickListener + this.type = DEFAULT_TYPE + } + + fun setListener(onItemClickListener: OnItemClickListener) { + this.onItemClickListener = onItemClickListener + } + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { + mValue = RPrefs.getString(mKey, "") + val binding: PreferenceListItemBinding = + PreferenceListItemBinding.inflate(LayoutInflater.from(parent.context), parent, false) + val batteryIconOptionsBinding: ViewListIconItemBinding = + ViewListIconItemBinding.inflate(LayoutInflater.from(parent.context), parent, false) + return if (type == TYPE_BATTERY_ICONS) { + BatteryIconsViewHolder(batteryIconOptionsBinding) + } else { + ViewHolder(binding) + } + } + + override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { + if (type == TYPE_BATTERY_ICONS) { + (holder as BatteryIconsViewHolder).binding.typeTitle.text = mEntries[holder.bindingAdapterPosition] + + if (mHasImage) { + if (mEntryDrawables != null) holder.binding.batteryIcon.setImageDrawable( + mEntryDrawables[holder.bindingAdapterPosition] + ) + else holder.binding.batteryIcon.setImageDrawable( + ContextCompat.getDrawable( + holder.binding.getRoot().context, + mEntryIcons!![holder.bindingAdapterPosition] + ) + ) + } else holder.binding.batteryIcon.setVisibility(View.GONE) + + if (TextUtils.equals(mEntryValues[holder.bindingAdapterPosition].toString(), mValue)) { + prevPos = holder.bindingAdapterPosition + holder.binding.rootLayout.strokeColor = appContext.getColor(R.color.colorAccent) + } else { + holder.binding.rootLayout.strokeColor = Color.TRANSPARENT + } + + holder.binding.rootLayout.setOnClickListener { v -> + onItemClickListener.onItemClick(v, holder.bindingAdapterPosition) + mValue = mEntryValues[holder.bindingAdapterPosition].toString() + notifyItemChanged(prevPos) + notifyItemChanged(holder.bindingAdapterPosition) + } + } else { + (holder as ViewHolder).binding.text.text = mEntries[holder.bindingAdapterPosition] + if (mHasImage) { + if (mEntryIcons != null && mEntryIcons.isNotEmpty()) holder.binding.image.setImageDrawable( + ContextCompat.getDrawable( + holder.binding.getRoot().context, + mEntryIcons[holder.bindingAdapterPosition] + ) + ) + else if (!mEntryDrawables.isNullOrEmpty()) holder.binding.image.setImageDrawable( + mEntryDrawables[holder.bindingAdapterPosition] + ) + } else holder.binding.image.setVisibility(View.GONE) + + + if (TextUtils.equals(mEntryValues[holder.bindingAdapterPosition].toString(), mValue)) { + prevPos = holder.bindingAdapterPosition + holder.binding.rootLayout.strokeColor = + appContext.getColor(R.color.colorAccent) + } else { + holder.binding.rootLayout.strokeColor = Color.TRANSPARENT + } + + holder.binding.rootLayout.setOnClickListener { v -> + onItemClickListener.onItemClick(v, holder.bindingAdapterPosition) + mValue = mEntryValues[holder.bindingAdapterPosition].toString() + notifyItemChanged(prevPos) + notifyItemChanged(holder.bindingAdapterPosition) + } + } + } + + override fun getItemCount(): Int { + return mEntries.size + } + + fun setImages(images: List) { + mResImages = images + } + + class ViewHolder internal constructor(val binding: PreferenceListItemBinding) : + RecyclerView.ViewHolder(binding.getRoot()) { + } + + class BatteryIconsViewHolder internal constructor(val binding: ViewListIconItemBinding) : + RecyclerView.ViewHolder(binding.getRoot()) { + } + + /** + * Interface for the click on the item + */ + interface OnItemClickListener { + fun onItemClick(view: View?, position: Int) + } + + companion object { + const val DEFAULT_TYPE: Int = 0 + const val TYPE_BATTERY_ICONS: Int = 2 + } +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/adapters/MenuAdapter.kt b/app/src/main/java/com/drdisagree/iconify/ui/adapters/MenuAdapter.kt index 8b0251cf6..0ed6415ed 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/adapters/MenuAdapter.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/adapters/MenuAdapter.kt @@ -3,8 +3,8 @@ package com.drdisagree.iconify.ui.adapters import android.content.Context import android.view.View import android.view.ViewGroup -import androidx.navigation.Navigation.findNavController import androidx.recyclerview.widget.RecyclerView +import com.drdisagree.iconify.ui.activities.MainActivity.Companion.replaceFragment import com.drdisagree.iconify.ui.models.MenuModel import com.drdisagree.iconify.ui.widgets.MenuWidget @@ -25,8 +25,8 @@ class MenuAdapter( menu.setIcon(itemList[position].icon) menu.setEndArrowVisibility(View.VISIBLE) - menu.setOnClickListener { v: View? -> - findNavController(v!!).navigate(itemList[position].id) + menu.setOnClickListener { + replaceFragment(itemList[position].fragment) } } diff --git a/app/src/main/java/com/drdisagree/iconify/ui/adapters/NotificationAdapter.kt b/app/src/main/java/com/drdisagree/iconify/ui/adapters/NotificationAdapter.kt index 5c26c919c..49354f2b9 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/adapters/NotificationAdapter.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/adapters/NotificationAdapter.kt @@ -18,7 +18,7 @@ import androidx.recyclerview.widget.RecyclerView import com.drdisagree.iconify.Iconify import com.drdisagree.iconify.Iconify.Companion.appContext import com.drdisagree.iconify.R -import com.drdisagree.iconify.config.Prefs.getBoolean +import com.drdisagree.iconify.config.RPrefs.getBoolean import com.drdisagree.iconify.ui.dialogs.LoadingDialog import com.drdisagree.iconify.ui.models.NotificationModel import com.drdisagree.iconify.ui.utils.ViewBindingHelpers.setDrawable diff --git a/app/src/main/java/com/drdisagree/iconify/ui/adapters/ProgressBarAdapter.kt b/app/src/main/java/com/drdisagree/iconify/ui/adapters/ProgressBarAdapter.kt index d065a511e..603053443 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/adapters/ProgressBarAdapter.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/adapters/ProgressBarAdapter.kt @@ -21,7 +21,7 @@ import com.drdisagree.iconify.Iconify.Companion.appContext import com.drdisagree.iconify.R import com.drdisagree.iconify.common.Const.FRAMEWORK_PACKAGE import com.drdisagree.iconify.common.Preferences.SELECTED_PROGRESSBAR -import com.drdisagree.iconify.config.Prefs +import com.drdisagree.iconify.config.RPrefs import com.drdisagree.iconify.ui.dialogs.LoadingDialog import com.drdisagree.iconify.ui.models.ProgressBarModel import com.drdisagree.iconify.utils.SystemUtil @@ -51,7 +51,7 @@ class ProgressBarAdapter( holder.progressbar.background = ContextCompat.getDrawable(context, itemList[position].progress) - itemSelected(holder.container, Prefs.getInt(SELECTED_PROGRESSBAR, -1) == position) + itemSelected(holder.container, RPrefs.getInt(SELECTED_PROGRESSBAR, -1) == position) refreshButton(holder) enableOnClickListener(holder) } @@ -65,7 +65,7 @@ class ProgressBarAdapter( itemSelected( holder.container, - Prefs.getInt(SELECTED_PROGRESSBAR, -1) == holder.getBindingAdapterPosition() + RPrefs.getInt(SELECTED_PROGRESSBAR, -1) == holder.getBindingAdapterPosition() ) refreshButton(holder) @@ -86,7 +86,7 @@ class ProgressBarAdapter( refreshLayout(holder) - if (Prefs.getInt(SELECTED_PROGRESSBAR, -1) != holder.getBindingAdapterPosition()) { + if (RPrefs.getInt(SELECTED_PROGRESSBAR, -1) != holder.getBindingAdapterPosition()) { holder.btnDisable.visibility = View.GONE if (holder.btnEnable.visibility == View.VISIBLE) { @@ -116,7 +116,7 @@ class ProgressBarAdapter( Thread { val hasErroredOut = AtomicBoolean(false) - Prefs.putInt(SELECTED_PROGRESSBAR, holder.getBindingAdapterPosition()) + RPrefs.putInt(SELECTED_PROGRESSBAR, holder.getBindingAdapterPosition()) try { hasErroredOut.set( @@ -150,7 +150,7 @@ class ProgressBarAdapter( Toast.LENGTH_SHORT ).show() } else { - Prefs.putInt(SELECTED_PROGRESSBAR, -1) + RPrefs.putInt(SELECTED_PROGRESSBAR, -1) Toast.makeText( appContext, @@ -170,7 +170,7 @@ class ProgressBarAdapter( loadingDialog.show(context.resources.getString(R.string.loading_dialog_wait)) Thread { - Prefs.putInt(SELECTED_PROGRESSBAR, -1) + RPrefs.putInt(SELECTED_PROGRESSBAR, -1) OverlayUtil.disableOverlay("IconifyComponentPGB.overlay") (context as Activity).runOnUiThread { Handler(Looper.getMainLooper()).postDelayed({ @@ -229,7 +229,7 @@ class ProgressBarAdapter( itemSelected( child, i == holder.getAbsoluteAdapterPosition() && - Prefs.getInt(SELECTED_PROGRESSBAR, -1) == + RPrefs.getInt(SELECTED_PROGRESSBAR, -1) == i - (holder.getAbsoluteAdapterPosition() - holder.getBindingAdapterPosition()) ) } @@ -242,7 +242,7 @@ class ProgressBarAdapter( holder.btnEnable.visibility = View.GONE holder.btnDisable.visibility = View.GONE } else { - if (Prefs.getInt(SELECTED_PROGRESSBAR, -1) == selectedItem) { + if (RPrefs.getInt(SELECTED_PROGRESSBAR, -1) == selectedItem) { holder.btnEnable.visibility = View.GONE holder.btnDisable.visibility = View.VISIBLE } else { diff --git a/app/src/main/java/com/drdisagree/iconify/ui/adapters/QsShapeAdapter.kt b/app/src/main/java/com/drdisagree/iconify/ui/adapters/QsShapeAdapter.kt index 0e7229a4b..9f1d40609 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/adapters/QsShapeAdapter.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/adapters/QsShapeAdapter.kt @@ -22,7 +22,7 @@ import androidx.recyclerview.widget.RecyclerView import com.drdisagree.iconify.Iconify import com.drdisagree.iconify.Iconify.Companion.appContext import com.drdisagree.iconify.R -import com.drdisagree.iconify.config.Prefs.getBoolean +import com.drdisagree.iconify.config.RPrefs.getBoolean import com.drdisagree.iconify.ui.dialogs.LoadingDialog import com.drdisagree.iconify.ui.models.QsShapeModel import com.drdisagree.iconify.ui.utils.ViewBindingHelpers.setDrawable diff --git a/app/src/main/java/com/drdisagree/iconify/ui/adapters/SwitchAdapter.kt b/app/src/main/java/com/drdisagree/iconify/ui/adapters/SwitchAdapter.kt index 7afc47d9a..eaffb8b8c 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/adapters/SwitchAdapter.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/adapters/SwitchAdapter.kt @@ -22,7 +22,7 @@ import com.drdisagree.iconify.Iconify.Companion.appContext import com.drdisagree.iconify.R import com.drdisagree.iconify.common.Const.SWITCH_ANIMATION_DELAY import com.drdisagree.iconify.common.Preferences.SELECTED_SWITCH -import com.drdisagree.iconify.config.Prefs +import com.drdisagree.iconify.config.RPrefs import com.drdisagree.iconify.ui.dialogs.LoadingDialog import com.drdisagree.iconify.ui.models.SwitchModel import com.drdisagree.iconify.utils.SystemUtil @@ -61,7 +61,7 @@ class SwitchAdapter( null ) ) - holder.aSwitch.setChecked(Prefs.getInt(SELECTED_SWITCH, -1) == position) + holder.aSwitch.setChecked(RPrefs.getInt(SELECTED_SWITCH, -1) == position) enableOnCheckedChangeListener(holder) } @@ -74,7 +74,7 @@ class SwitchAdapter( super.onViewAttachedToWindow(holder) holder.aSwitch.setChecked( - Prefs.getInt( + RPrefs.getInt( SELECTED_SWITCH, -1 ) == holder.getBindingAdapterPosition() @@ -100,7 +100,7 @@ class SwitchAdapter( val aSwitch = view.findViewById(R.id.switch_view) aSwitch?.setChecked( - i == holder.getAbsoluteAdapterPosition() && Prefs.getInt( + i == holder.getAbsoluteAdapterPosition() && RPrefs.getInt( SELECTED_SWITCH, -1 ) == i - (holder.getAbsoluteAdapterPosition() - holder.getBindingAdapterPosition()) @@ -134,7 +134,7 @@ class SwitchAdapter( Thread { val hasErroredOut = AtomicBoolean(false) - Prefs.putInt(SELECTED_SWITCH, holder.getBindingAdapterPosition()) + RPrefs.putInt(SELECTED_SWITCH, holder.getBindingAdapterPosition()) try { hasErroredOut.set( @@ -164,7 +164,7 @@ class SwitchAdapter( Toast.LENGTH_SHORT ).show() } else { - Prefs.putInt(SELECTED_SWITCH, -1) + RPrefs.putInt(SELECTED_SWITCH, -1) holder.aSwitch.setChecked(false) @@ -183,7 +183,7 @@ class SwitchAdapter( loadingDialog.show(context.resources.getString(R.string.loading_dialog_wait)) Thread { - Prefs.putInt(SELECTED_SWITCH, -1) + RPrefs.putInt(SELECTED_SWITCH, -1) OverlayUtil.disableOverlays( "IconifyComponentSWITCH1.overlay", diff --git a/app/src/main/java/com/drdisagree/iconify/ui/adapters/ToastAdapter.kt b/app/src/main/java/com/drdisagree/iconify/ui/adapters/ToastAdapter.kt index 4fb815bba..0f2c512ea 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/adapters/ToastAdapter.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/adapters/ToastAdapter.kt @@ -9,7 +9,7 @@ import com.drdisagree.iconify.Iconify.Companion.appContext import com.drdisagree.iconify.Iconify.Companion.appContextLocale import com.drdisagree.iconify.R import com.drdisagree.iconify.common.Preferences.SELECTED_TOAST_FRAME -import com.drdisagree.iconify.config.Prefs +import com.drdisagree.iconify.config.RPrefs import com.drdisagree.iconify.databinding.ViewToastFrameBinding import com.drdisagree.iconify.ui.models.ToastModel @@ -19,7 +19,7 @@ class ToastAdapter ( private var toastClick: OnToastClick ) : RecyclerView.Adapter() { - private var selected = Prefs.getInt(SELECTED_TOAST_FRAME, -1) + private var selected = RPrefs.getInt(SELECTED_TOAST_FRAME, -1) override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { val binding: ViewToastFrameBinding = @@ -58,7 +58,7 @@ class ToastAdapter ( fun notifyChange() { refresh(false) - selected = Prefs.getInt(SELECTED_TOAST_FRAME, -1) + selected = RPrefs.getInt(SELECTED_TOAST_FRAME, -1) refresh(true) } diff --git a/app/src/main/java/com/drdisagree/iconify/ui/base/BaseFragment.kt b/app/src/main/java/com/drdisagree/iconify/ui/base/BaseFragment.kt index 65bf5ec02..ec041eb9c 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/base/BaseFragment.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/base/BaseFragment.kt @@ -1,11 +1,61 @@ package com.drdisagree.iconify.ui.base import android.content.Context +import android.os.Bundle +import android.os.Handler +import android.os.Looper +import android.view.LayoutInflater +import android.view.Menu +import android.view.MenuInflater +import android.view.MenuItem +import android.view.View +import android.view.ViewGroup +import androidx.activity.result.ActivityResult +import androidx.activity.result.contract.ActivityResultContracts +import androidx.core.view.MenuHost +import androidx.core.view.MenuProvider import androidx.core.view.WindowCompat import androidx.fragment.app.Fragment +import androidx.lifecycle.Lifecycle +import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Dynamic +import com.drdisagree.iconify.common.Resources.searchConfiguration +import com.drdisagree.iconify.common.Resources.searchableFragments +import com.drdisagree.iconify.ui.activities.MainActivity +import com.drdisagree.iconify.ui.activities.MainActivity.Companion.replaceFragment +import com.drdisagree.iconify.ui.dialogs.LoadingDialog +import com.drdisagree.iconify.ui.fragments.settings.Changelog +import com.drdisagree.iconify.ui.preferences.preferencesearch.SearchPreferenceResult +import com.drdisagree.iconify.utils.SystemUtil.restartSystemUI +import com.drdisagree.iconify.utils.helper.ImportExport.exportSettings +import com.drdisagree.iconify.utils.helper.ImportExport.handleExportResult +import com.drdisagree.iconify.utils.helper.ImportExport.handleImportResult +import com.drdisagree.iconify.utils.helper.ImportExport.importSettings import com.drdisagree.iconify.utils.helper.LocaleHelper -open class BaseFragment : Fragment() { +abstract class BaseFragment : Fragment() { + + private var loadingDialog: LoadingDialog? = null + + private var startExportActivityIntent = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { result: ActivityResult -> + handleExportResult( + result = result, + context = requireContext(), + contentResolver = requireContext().contentResolver + ) + } + + private var startImportActivityIntent = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { result: ActivityResult -> + handleImportResult( + result = result, + fragment = this, + loadingDialog = loadingDialog!! + ) + } override fun onAttach(context: Context) { super.onAttach(LocaleHelper.setLocale(context)) @@ -15,4 +65,85 @@ open class BaseFragment : Fragment() { WindowCompat.setDecorFitsSystemWindows(window, false) } } + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + // Initialize loading dialog + loadingDialog = LoadingDialog(requireActivity()) + + return super.onCreateView(inflater, container, savedInstanceState) + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + + val menuHost: MenuHost = requireActivity() + menuHost.addMenuProvider(object : MenuProvider { + override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) { + menu.clear() + menuInflater.inflate(R.menu.default_menu, menu) + } + + override fun onMenuItemSelected(menuItem: MenuItem): Boolean { + return when (menuItem.itemId) { + R.id.action_search -> { + searchConfiguration.showSearchFragment() + true + } + + R.id.menu_changelog -> { + replaceFragment(Changelog()) + true + } + + R.id.menu_export_settings -> { + exportSettings(this@BaseFragment, startExportActivityIntent) + true + } + + R.id.menu_import_settings -> { + importSettings(this@BaseFragment, startImportActivityIntent) + true + } + + R.id.restart_systemui -> { + Dynamic.requiresSystemUiRestart = false + + MainActivity.showOrHidePendingActionButton( + requiresSystemUiRestart = false, + requiresDeviceRestart = Dynamic.requiresDeviceRestart + ) + + Handler(Looper.getMainLooper()).postDelayed({ + restartSystemUI() + }, 300) + true + } + + else -> { + false + } + } + } + }, viewLifecycleOwner, Lifecycle.State.RESUMED) + } + + fun onSearchResultClicked(result: SearchPreferenceResult) { + for (searchableFragment in searchableFragments) { + if (searchableFragment.xml == result.resourceFile) { + replaceFragment(searchableFragment.fragment) + SearchPreferenceResult.highlight(searchableFragment.fragment, result.key); + break + } + } + } + + override fun onDestroy() { + loadingDialog?.dismiss() + + super.onDestroy() + } } diff --git a/app/src/main/java/com/drdisagree/iconify/ui/base/ControlledPreferenceFragmentCompat.kt b/app/src/main/java/com/drdisagree/iconify/ui/base/ControlledPreferenceFragmentCompat.kt new file mode 100644 index 000000000..184ec35a0 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/base/ControlledPreferenceFragmentCompat.kt @@ -0,0 +1,256 @@ +package com.drdisagree.iconify.ui.base + +import android.content.Context +import android.content.SharedPreferences +import android.content.SharedPreferences.OnSharedPreferenceChangeListener +import android.graphics.Color +import android.graphics.drawable.ColorDrawable +import android.graphics.drawable.Drawable +import android.os.Bundle +import android.os.Handler +import android.os.Looper +import android.util.Log +import android.view.LayoutInflater +import android.view.Menu +import android.view.MenuInflater +import android.view.MenuItem +import android.view.View +import android.view.ViewGroup +import androidx.activity.result.ActivityResult +import androidx.activity.result.contract.ActivityResultContracts +import androidx.appcompat.app.AppCompatActivity +import androidx.appcompat.widget.Toolbar +import androidx.core.view.MenuHost +import androidx.core.view.MenuProvider +import androidx.core.view.WindowCompat +import androidx.lifecycle.Lifecycle +import androidx.preference.PreferenceFragmentCompat +import androidx.preference.PreferenceScreen +import androidx.recyclerview.widget.RecyclerView +import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Dynamic +import com.drdisagree.iconify.common.Resources.SHARED_XPREFERENCES +import com.drdisagree.iconify.common.Resources.searchConfiguration +import com.drdisagree.iconify.common.Resources.searchableFragments +import com.drdisagree.iconify.config.PrefsHelper +import com.drdisagree.iconify.config.RPrefs +import com.drdisagree.iconify.ui.activities.MainActivity +import com.drdisagree.iconify.ui.activities.MainActivity.Companion.popCurrentFragment +import com.drdisagree.iconify.ui.activities.MainActivity.Companion.replaceFragment +import com.drdisagree.iconify.ui.dialogs.LoadingDialog +import com.drdisagree.iconify.ui.fragments.settings.Changelog +import com.drdisagree.iconify.ui.preferences.preferencesearch.SearchPreferenceResult +import com.drdisagree.iconify.utils.SystemUtil.restartSystemUI +import com.drdisagree.iconify.utils.helper.ImportExport.exportSettings +import com.drdisagree.iconify.utils.helper.ImportExport.handleExportResult +import com.drdisagree.iconify.utils.helper.ImportExport.handleImportResult +import com.drdisagree.iconify.utils.helper.ImportExport.importSettings +import com.drdisagree.iconify.utils.helper.LocaleHelper + +abstract class ControlledPreferenceFragmentCompat : PreferenceFragmentCompat() { + + var loadingDialog: LoadingDialog? = null + + private val changeListener = + OnSharedPreferenceChangeListener { _: SharedPreferences, key: String? -> + updateScreen( + key + ) + } + + abstract val title: String + + abstract val backButtonEnabled: Boolean + + abstract val layoutResource: Int + + open val themeResource: Int + get() = R.style.PrefsThemeToolbar + + abstract val hasMenu: Boolean + + open val menuResource: Int + get() = R.menu.default_menu + + private var mView: View? = null + + private var startExportActivityIntent = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { result: ActivityResult -> + handleExportResult( + result = result, + context = requireContext(), + contentResolver = requireContext().contentResolver + ) + } + + private var startImportActivityIntent = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { result: ActivityResult -> + handleImportResult( + result = result, + fragment = this, + loadingDialog = loadingDialog!! + ) + } + + override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { + preferenceManager.setStorageDeviceProtected() + preferenceManager.sharedPreferencesName = SHARED_XPREFERENCES + preferenceManager.sharedPreferencesMode = Context.MODE_PRIVATE + + try { + setPreferencesFromResource(layoutResource, rootKey) + } catch (e: Exception) { + Log.e(TAG, "Failed to load preference from resource", e) + } + } + + override fun onAttach(context: Context) { + super.onAttach(LocaleHelper.setLocale(context)) + + if (activity != null) { + val window = requireActivity().window + WindowCompat.setDecorFitsSystemWindows(window, false) + } + } + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View { + inflater.context.setTheme(themeResource) + + // Initialize loading dialog + loadingDialog = LoadingDialog(requireActivity()) + + return super.onCreateView(inflater, container, savedInstanceState) + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + + mView = view + + if (hasMenu) { + val menuHost: MenuHost = requireActivity() + menuHost.addMenuProvider(object : MenuProvider { + override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) { + menu.clear() + menuInflater.inflate(menuResource, menu) + } + + override fun onMenuItemSelected(menuItem: MenuItem): Boolean { + return when (menuItem.itemId) { + R.id.action_search -> { + searchConfiguration.showSearchFragment() + true + } + + R.id.menu_changelog -> { + replaceFragment(Changelog()) + true + } + + R.id.menu_export_settings -> { + exportSettings( + this@ControlledPreferenceFragmentCompat, + startExportActivityIntent + ) + true + } + + R.id.menu_import_settings -> { + importSettings( + this@ControlledPreferenceFragmentCompat, + startImportActivityIntent + ) + true + } + + R.id.restart_systemui -> { + Dynamic.requiresSystemUiRestart = false + + MainActivity.showOrHidePendingActionButton( + requiresSystemUiRestart = false, + requiresDeviceRestart = Dynamic.requiresDeviceRestart + ) + + Handler(Looper.getMainLooper()).postDelayed({ + restartSystemUI() + }, 300) + true + } + + else -> { + false + } + } + } + }, viewLifecycleOwner, Lifecycle.State.RESUMED) + } + } + + public override fun onCreateAdapter(preferenceScreen: PreferenceScreen): RecyclerView.Adapter<*> { + RPrefs.registerOnSharedPreferenceChangeListener(changeListener) + + updateScreen(null) + + return super.onCreateAdapter(preferenceScreen) + } + + fun onSearchResultClicked(result: SearchPreferenceResult) { + if (result.resourceFile == layoutResource) { + popCurrentFragment() + SearchPreferenceResult.highlight(this, result.key) + } else { + for (searchableFragment in searchableFragments) { + if (searchableFragment.xml == result.resourceFile) { + replaceFragment(searchableFragment.fragment) + SearchPreferenceResult.highlight(searchableFragment.fragment, result.key); + break + } + } + } + } + + override fun onResume() { + super.onResume() + + if (context != null) { + mView?.findViewById(R.id.toolbar)?.let { + (context as AppCompatActivity).setSupportActionBar(it) + it.title = title + } + + ((context as AppCompatActivity).supportActionBar)?.setDisplayHomeAsUpEnabled( + backButtonEnabled + ) + } + } + + override fun onDestroy() { + loadingDialog?.hide() + + RPrefs.unregisterOnSharedPreferenceChangeListener(changeListener) + + super.onDestroy() + } + + open fun updateScreen(key: String?) { + PrefsHelper.setupAllPreferences(this.preferenceScreen) + } + + override fun setDivider(divider: Drawable?) { + super.setDivider(ColorDrawable(Color.TRANSPARENT)) + } + + override fun setDividerHeight(height: Int) { + super.setDividerHeight(0) + } + + companion object { + private val TAG = ControlledPreferenceFragmentCompat::class.java.simpleName + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/base/WeatherPreferenceFragment.kt b/app/src/main/java/com/drdisagree/iconify/ui/base/WeatherPreferenceFragment.kt new file mode 100644 index 000000000..c27cb8203 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/base/WeatherPreferenceFragment.kt @@ -0,0 +1,398 @@ +package com.drdisagree.iconify.ui.base + +import android.Manifest +import android.app.Activity +import android.content.Context +import android.content.DialogInterface +import android.content.Intent +import android.content.pm.PackageManager +import android.graphics.drawable.Drawable +import android.location.LocationManager +import android.net.Uri +import android.os.Bundle +import android.provider.Settings +import androidx.activity.result.ActivityResultLauncher +import androidx.activity.result.contract.ActivityResultContracts +import androidx.core.content.res.ResourcesCompat +import androidx.preference.Preference +import com.drdisagree.iconify.BuildConfig +import com.drdisagree.iconify.Iconify.Companion.appContext +import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Preferences.PREF_KEY_UPDATE_STATUS +import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_LOCATION +import com.drdisagree.iconify.common.Preferences.WEATHER_ICON_PACK +import com.drdisagree.iconify.common.Preferences.WEATHER_PROVIDER +import com.drdisagree.iconify.config.RPrefs +import com.drdisagree.iconify.config.RPrefs.getBoolean +import com.drdisagree.iconify.services.WeatherScheduler +import com.drdisagree.iconify.ui.activities.LocationBrowseActivity +import com.drdisagree.iconify.ui.activities.LocationBrowseActivity.Companion.DATA_LOCATION_LAT +import com.drdisagree.iconify.ui.activities.LocationBrowseActivity.Companion.DATA_LOCATION_LON +import com.drdisagree.iconify.ui.activities.LocationBrowseActivity.Companion.DATA_LOCATION_NAME +import com.drdisagree.iconify.ui.preferences.BottomSheetListPreference +import com.drdisagree.iconify.ui.preferences.SwitchPreference +import com.drdisagree.iconify.utils.OmniJawsClient +import com.drdisagree.iconify.utils.weather.WeatherConfig +import com.google.android.material.dialog.MaterialAlertDialogBuilder +import java.util.Locale + +abstract class WeatherPreferenceFragment : ControlledPreferenceFragmentCompat(), + OmniJawsClient.OmniJawsObserver { + + private var mCustomLocation: SwitchPreference? = null + private var mWeatherIconPack: BottomSheetListPreference? = null + private var mUpdateStatus: Preference? = null + private var mWeatherClient: OmniJawsClient? = null + + abstract fun getMainSwitchKey(): String + + override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { + super.onCreatePreferences(savedInstanceState, rootKey) + mWeatherClient = OmniJawsClient(requireContext()) + + mWeatherIconPack = findPreference(WEATHER_ICON_PACK) + + var settingHeaderPackage: String = WeatherConfig.getIconPack(requireContext()).toString() + val entries: MutableList = ArrayList() + val values: MutableList = ArrayList() + val drawables: MutableList = ArrayList() + getAvailableWeatherIconPacks(entries, values, drawables) + mWeatherIconPack!!.entries = entries.toTypedArray() + mWeatherIconPack!!.entryValues = values.toTypedArray() + mWeatherIconPack!!.createDefaultAdapter( + drawables.filterNotNull().toTypedArray(), + object : BottomSheetListPreference.OnItemClickListener { + + override fun onItemClick(position: Int) { + RPrefs.putString(WEATHER_ICON_PACK, values[position]) + mWeatherIconPack!!.setSummary(entries[position]) + } + }) + var valueIndex: Int = mWeatherIconPack!!.findIndexOfValue(settingHeaderPackage) + if (valueIndex == -1) { + // no longer found + settingHeaderPackage = Companion.DEFAULT_WEATHER_ICON_PACKAGE + //WeatherConfig.setIconPack(getContext(), settingHeaderPackage); + valueIndex = mWeatherIconPack!!.findIndexOfValue(settingHeaderPackage) + } + mWeatherIconPack!!.setValueIndex(if (valueIndex >= 0) valueIndex else 0) + mWeatherIconPack!!.setSummary(mWeatherIconPack!!.getEntry()) + + mUpdateStatus = findPreference(PREF_KEY_UPDATE_STATUS) + if (mUpdateStatus != null) { + mUpdateStatus!!.onPreferenceClickListener = + Preference.OnPreferenceClickListener { + forceRefreshWeatherSettings() + true + } + } + + mCustomLocation = findPreference(WEATHER_CUSTOM_LOCATION) + mCustomLocation?.setOnPreferenceClickListener { + forceRefreshWeatherSettings() + true + } + + findPreference("weather_custom_location_picker")?.apply { + onPreferenceClickListener = Preference.OnPreferenceClickListener { + mCustomLocationLauncher.launch( + Intent( + context, + LocationBrowseActivity::class.java + ) + ) + true + } + setSummary(WeatherConfig.getLocationName(requireContext())) + } + } + + override fun onResume() { + super.onResume() + mWeatherClient!!.addObserver(this) + + handlePermissions() + } + + private fun handlePermissions() { + if (WeatherConfig.isEnabled(requireContext()) && + !getBoolean(WEATHER_CUSTOM_LOCATION, false) + ) { + checkLocationEnabled(false) + } else { + forceRefreshWeatherSettings() + } + } + + private fun hasPermissions(): Boolean { + return (requireContext().checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) + == PackageManager.PERMISSION_GRANTED) && + (requireContext().checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) + == PackageManager.PERMISSION_GRANTED) && + (requireContext().checkSelfPermission(Manifest.permission.ACCESS_BACKGROUND_LOCATION) + == PackageManager.PERMISSION_GRANTED) + } + + private var mCustomLocationLauncher: ActivityResultLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { result -> + if (result.resultCode == Activity.RESULT_OK) { + val intent: Intent? = result.data + + if (intent!!.hasExtra(DATA_LOCATION_NAME)) { + val locationName = intent.getStringExtra(DATA_LOCATION_NAME) + val lat = intent.getDoubleExtra(DATA_LOCATION_LAT, 0.0) + val lon = intent.getDoubleExtra(DATA_LOCATION_LON, 0.0) + + WeatherConfig.apply { + setLocationId(requireContext(), lat.toString(), lon.toString()) + setLocationName(requireContext(), locationName) + } + + if (locationName.isNullOrEmpty()) { + mUpdateStatus!!.setSummary(com.drdisagree.iconify.R.string.not_available) + } else { + mUpdateStatus!!.setSummary(locationName) + } + + if (WeatherConfig.isEnabled(requireContext()) + && !getBoolean(WEATHER_CUSTOM_LOCATION, false) + ) { + checkLocationEnabled(true) + } + } + } + } + + + private fun isLocationEnabled(): Boolean { + val lm = requireContext().getSystemService(Context.LOCATION_SERVICE) as LocationManager + return lm.isLocationEnabled + } + + private fun requestLocationPermission(locationPermissionRequest: ActivityResultLauncher>) { + if (shouldShowRequestPermissionRationale(Manifest.permission.ACCESS_FINE_LOCATION) || + shouldShowRequestPermissionRationale(Manifest.permission.ACCESS_COARSE_LOCATION) || + shouldShowRequestPermissionRationale(Manifest.permission.ACCESS_BACKGROUND_LOCATION) + ) { + showApplicationPermissionDialog() + } else { + locationPermissionRequest.launch( + arrayOf( + Manifest.permission.ACCESS_FINE_LOCATION, + Manifest.permission.ACCESS_COARSE_LOCATION, + Manifest.permission.ACCESS_BACKGROUND_LOCATION + ) + ) + } + } + + private fun checkLocationEnabled(force: Boolean) { + if (!isLocationEnabled()) { + showLocationPermissionDialog() + } else { + checkLocationPermission(force) + } + } + + private fun checkLocationPermission(force: Boolean) { + if (!hasPermissions() && !getBoolean(WEATHER_CUSTOM_LOCATION, false)) { + requestLocationPermission(requestPermissionLauncher) + } else { + if (force) { + forceRefreshWeatherSettings() + } + queryAndUpdateWeather() + } + } + + private fun showLocationPermissionDialog() { + MaterialAlertDialogBuilder(requireContext()) + .setTitle(com.drdisagree.iconify.R.string.weather_retrieve_location_dialog_title) + .setMessage(com.drdisagree.iconify.R.string.weather_retrieve_location_dialog_message) + .setCancelable(false) + .setPositiveButton(com.drdisagree.iconify.R.string.weather_retrieve_location_dialog_enable_button) { _, _ -> + startActivity( + Intent( + Settings.ACTION_LOCATION_SOURCE_SETTINGS + ).apply { + setFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP) + } + ) + } + .setNegativeButton(android.R.string.cancel, null) + .create() + .show() + } + + private fun showApplicationPermissionDialog() { + MaterialAlertDialogBuilder(requireContext()) + .setTitle(com.drdisagree.iconify.R.string.weather_permission_dialog_title) + .setMessage(com.drdisagree.iconify.R.string.weather_permission_dialog_message) + .setCancelable(false) + .setPositiveButton(android.R.string.ok) { _: DialogInterface?, _: Int -> + startActivity( + Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS).apply { + setData( + Uri.fromParts( + "package", + requireContext().packageName, + null + ) + ) + } + ) + } + .setNegativeButton(android.R.string.cancel, null) + .create() + .show() + } + + private fun enableService() { + WeatherScheduler.scheduleUpdates(requireContext()) + } + + override fun onPause() { + super.onPause() + mWeatherClient!!.removeObserver(this) + } + + override fun updateScreen(key: String?) { + super.updateScreen(key) + + if (key == null) return + + val mainKey = getMainSwitchKey() + + if (key == mainKey) { + WeatherConfig.setEnabled(requireContext(), getBoolean(mainKey, false), mainKey) + if (getBoolean(mainKey, false)) { + handlePermissions() + enableService() + forceRefreshWeatherSettings() + } + } else if (key == WEATHER_PROVIDER) { + forceRefreshWeatherSettings() + } + } + + @Suppress("DiscouragedApi") + private fun getAvailableWeatherIconPacks( + entries: MutableList, + values: MutableList, + drawables: MutableList + ) { + val i = Intent() + val packageManager = requireContext().packageManager + i.setAction(BuildConfig.APPLICATION_ID + ".WeatherIconPack") + for (r in packageManager.queryIntentActivities(i, 0)) { + val packageName = r.activityInfo.packageName + if (packageName == Companion.DEFAULT_WEATHER_ICON_PACKAGE) { + values.add(0, r.activityInfo.name) + drawables.add( + 0, + ResourcesCompat.getDrawable( + resources, + resources.getIdentifier( + "google_30", + "drawable", + BuildConfig.APPLICATION_ID + ), + requireContext().theme + ) + ) + } else { + values.add(r.activityInfo.name) + val name = r.activityInfo.name.split("\\.".toRegex()).dropLastWhile { it.isEmpty() } + .toTypedArray() + drawables.add( + ResourcesCompat.getDrawable( + resources, resources.getIdentifier( + name[name.size - 1].lowercase( + Locale.getDefault() + ) + "_30", "drawable", BuildConfig.APPLICATION_ID + ), requireContext().theme + ) + ) + } + var label: String? = r.activityInfo?.loadLabel(packageManager)?.toString() + if (label == null) { + label = r.activityInfo.packageName + } + if (packageName == DEFAULT_WEATHER_ICON_PACKAGE) { + entries.add(0, label) + } else { + entries.add(label) + } + } + } + + override fun weatherUpdated() { + queryAndUpdateWeather() + } + + override fun weatherError(errorReason: Int) { + val errorString: String = when (errorReason) { + OmniJawsClient.EXTRA_ERROR_DISABLED -> { + resources.getString(R.string.omnijaws_service_disabled) + } + + OmniJawsClient.EXTRA_ERROR_LOCATION -> { + resources.getString(R.string.omnijaws_service_error_location) + } + + OmniJawsClient.EXTRA_ERROR_NETWORK -> { + resources.getString(R.string.omnijaws_service_error_network) + } + + OmniJawsClient.EXTRA_ERROR_NO_PERMISSIONS -> { + resources.getString(R.string.omnijaws_service_error_permissions) + } + + else -> { + resources.getString(R.string.omnijaws_service_error_long) + } + } + val s: String = errorString + requireActivity().runOnUiThread { + if (mUpdateStatus != null) { + mUpdateStatus!!.summary = s + } + } + } + + private fun queryAndUpdateWeather() { + mWeatherClient!!.queryWeather() + if (mWeatherClient?.weatherInfo != null) { + requireActivity().runOnUiThread { + if (mUpdateStatus != null) { + mUpdateStatus!!.setSummary(mWeatherClient!!.weatherInfo!!.lastUpdateTime) + } + } + } + } + + private var requestPermissionLauncher: ActivityResultLauncher> = + registerForActivityResult( + ActivityResultContracts.RequestMultiplePermissions() + ) { result -> + val fineLocationGranted: Boolean = result.getOrDefault( + Manifest.permission.ACCESS_FINE_LOCATION, false + ) + val coarseLocationGranted: Boolean = result.getOrDefault( + Manifest.permission.ACCESS_COARSE_LOCATION, false + ) + if (fineLocationGranted || coarseLocationGranted) { + forceRefreshWeatherSettings() + } + } + + private fun forceRefreshWeatherSettings() { + WeatherScheduler.scheduleUpdateNow(appContext) + } + + companion object { + private const val DEFAULT_WEATHER_ICON_PACKAGE: String = + "${BuildConfig.APPLICATION_ID}.google" + } +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/Home.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/Home.kt deleted file mode 100644 index 0f6c6c4b6..000000000 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/Home.kt +++ /dev/null @@ -1,354 +0,0 @@ -package com.drdisagree.iconify.ui.fragments - -import android.os.Bundle -import android.os.Handler -import android.os.Looper -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.LinearLayout -import android.widget.TextView -import androidx.appcompat.app.AppCompatActivity -import androidx.navigation.Navigation.findNavController -import androidx.navigation.fragment.NavHostFragment -import com.drdisagree.iconify.BuildConfig -import com.drdisagree.iconify.Iconify.Companion.appContext -import com.drdisagree.iconify.Iconify.Companion.appContextLocale -import com.drdisagree.iconify.R -import com.drdisagree.iconify.common.Const.LATEST_VERSION_URL -import com.drdisagree.iconify.common.Preferences.AUTO_UPDATE -import com.drdisagree.iconify.common.Preferences.FIRST_INSTALL -import com.drdisagree.iconify.common.Preferences.LAST_UPDATE_CHECK_TIME -import com.drdisagree.iconify.common.Preferences.SHOW_HOME_CARD -import com.drdisagree.iconify.common.Preferences.UPDATE_CHECK_TIME -import com.drdisagree.iconify.common.Preferences.UPDATE_DETECTED -import com.drdisagree.iconify.common.Preferences.VER_CODE -import com.drdisagree.iconify.config.Prefs -import com.drdisagree.iconify.config.Prefs.getBoolean -import com.drdisagree.iconify.config.Prefs.getLong -import com.drdisagree.iconify.config.Prefs.putLong -import com.drdisagree.iconify.databinding.FragmentHomeBinding -import com.drdisagree.iconify.services.UpdateScheduler.scheduleUpdates -import com.drdisagree.iconify.ui.base.BaseFragment -import com.drdisagree.iconify.ui.dialogs.LoadingDialog -import com.drdisagree.iconify.ui.widgets.MenuWidget -import com.drdisagree.iconify.utils.RootUtil.folderExists -import com.drdisagree.iconify.utils.SystemUtil.restartDevice -import com.drdisagree.iconify.utils.SystemUtil.saveBootId -import com.drdisagree.iconify.utils.extension.TaskExecutor -import com.google.android.material.bottomnavigation.BottomNavigationView -import org.json.JSONObject -import java.io.BufferedReader -import java.io.InputStreamReader -import java.net.HttpURLConnection -import java.net.URL - -class Home : BaseFragment() { - - private lateinit var binding: FragmentHomeBinding - private var checkForUpdate: CheckForUpdate? = null - private var checkUpdate: LinearLayout? = null - private var updateDesc: TextView? = null - - override fun onCreateView( - inflater: LayoutInflater, - container: ViewGroup?, - savedInstanceState: Bundle? - ): View { - binding = FragmentHomeBinding.inflate(inflater, container, false) - val view: View = binding.getRoot() - - // Header - binding.header.toolbar.setTitle(resources.getString(R.string.activity_title_home_page)) - (requireActivity() as AppCompatActivity).setSupportActionBar(binding.header.toolbar) - - val intent = requireActivity().intent - if (intent != null && intent.getBooleanExtra(AppUpdates.KEY_NEW_UPDATE, false)) { - (requireActivity().findViewById(R.id.bottomNavigationView) as BottomNavigationView).selectedItemId = - R.id.settings - NavHostFragment.findNavController(this).navigate(R.id.action_settings_to_appUpdates) - intent.removeExtra(AppUpdates.Companion.KEY_NEW_UPDATE) - } else { - scheduleUpdates(appContext) - } - - // New update available dialog - val listView1 = LayoutInflater.from(requireActivity()) - .inflate( - R.layout.view_new_update, - binding.homePageList, - false - ) - - checkUpdate = listView1.findViewById(R.id.check_update) - binding.homePageList.addView(listView1) - (checkUpdate as LinearLayout).visibility = View.GONE - updateDesc = binding.homePageList.findViewById(R.id.update_desc) - - if (shouldCheckForUpdate()) { - putLong(LAST_UPDATE_CHECK_TIME, System.currentTimeMillis()) - - try { - checkForUpdate = CheckForUpdate() - checkForUpdate!!.execute() - } catch (ignored: Exception) { - } - } - - // Reboot needed dialog - val listView2 = LayoutInflater.from(requireActivity()) - .inflate( - R.layout.view_reboot, - binding.homePageList, - false - ) - - val rebootReminder = listView2.findViewById(R.id.reboot_reminder) - binding.homePageList.addView(listView2) - rebootReminder.visibility = View.GONE - - if (shouldShowRebootDialog()) { - rebootReminder.visibility = View.VISIBLE - - binding.homePageList.findViewById(R.id.btn_reboot).setOnClickListener { - val rebootingDialog = LoadingDialog(requireActivity()) - - rebootingDialog.show(resources.getString(R.string.rebooting_desc)) - - Handler(Looper.getMainLooper()).postDelayed({ - rebootingDialog.hide() - restartDevice() - }, 5000) - } - } - - Prefs.putBoolean(FIRST_INSTALL, false) - Prefs.putBoolean(UPDATE_DETECTED, false) - Prefs.putInt(VER_CODE, BuildConfig.VERSION_CODE) - saveBootId - - // Home page list items - addItem(initHomePageList()) - - binding.homeCard.container.visibility = - if (getBoolean(SHOW_HOME_CARD, true)) View.VISIBLE else View.GONE - - binding.homeCard.button.setOnClickListener { - binding.homeCard - .container - .animate() - .setDuration(400) - .translationX(binding.homeCard.container.width * 2f) - .alpha(0f) - .withEndAction { - binding.homeCard.container.visibility = View.GONE - Prefs.putBoolean(SHOW_HOME_CARD, false) - } - .start() - } - - return view - } - - private fun initHomePageList(): ArrayList> { - val homePage = ArrayList>().apply { - add( - arrayOf( - R.id.action_homePage_to_iconPack, - appContextLocale.resources.getString(R.string.activity_title_icon_pack), - appContextLocale.resources.getString(R.string.activity_desc_icon_pack), - R.drawable.ic_styles_iconpack - ) - ) - add( - arrayOf( - R.id.action_homePage_to_signalIcons, - appContextLocale.resources.getString(R.string.activity_title_signal_icons), - appContextLocale.resources.getString(R.string.activity_desc_signal_icons), - R.drawable.ic_styles_signal_icons - ) - ) - add( - arrayOf( - R.id.action_homePage_to_wifiIcons, - appContextLocale.resources.getString(R.string.activity_title_wifi_icons), - appContextLocale.resources.getString(R.string.activity_desc_wifi_icons), - R.drawable.ic_styles_wifi_icons - ) - ) - add( - arrayOf( - R.id.action_homePage_to_brightnessBar, - appContextLocale.resources.getString(R.string.activity_title_brightness_bar), - appContextLocale.resources.getString(R.string.activity_desc_brightness_bar), - R.drawable.ic_styles_brightness - ) - ) - add( - arrayOf( - R.id.action_homePage_to_qsPanelTile, - appContextLocale.resources.getString(R.string.activity_title_qs_shape), - appContextLocale.resources.getString(R.string.activity_desc_qs_shape), - R.drawable.ic_styles_qs_shape - ) - ) - add( - arrayOf( - R.id.action_homePage_to_notification, - appContextLocale.resources.getString(R.string.activity_title_notification), - appContextLocale.resources.getString(R.string.activity_desc_notification), - R.drawable.ic_styles_notification - ) - ) - add( - arrayOf( - R.id.action_homePage_to_progressBar, - appContextLocale.resources.getString(R.string.activity_title_progress_bar), - appContextLocale.resources.getString(R.string.activity_desc_progress_bar), - R.drawable.ic_styles_progress - ) - ) - add( - arrayOf( - R.id.action_homePage_to_switch1, - appContextLocale.resources.getString(R.string.activity_title_switch), - appContextLocale.resources.getString(R.string.activity_desc_switch), - R.drawable.ic_styles_switch - ) - ) - add( - arrayOf( - R.id.action_homePage_to_toastFrame, - appContextLocale.resources.getString(R.string.activity_title_toast_frame), - appContextLocale.resources.getString(R.string.activity_desc_toast_frame), - R.drawable.ic_styles_toast_frame - ) - ) - add( - arrayOf( - R.id.action_homePage_to_iconShape, - appContextLocale.resources.getString(R.string.activity_title_icon_shape), - appContextLocale.resources.getString(R.string.activity_desc_icon_shape), - R.drawable.ic_styles_icon_shape - ) - ) - } - - return homePage - } - - private fun shouldShowRebootDialog() = - !getBoolean(FIRST_INSTALL) && getBoolean(UPDATE_DETECTED) || - folderExists("/data/adb/modules_update/Iconify") - - private fun shouldCheckForUpdate(): Boolean { - val lastChecked = getLong(LAST_UPDATE_CHECK_TIME, -1) - - return getBoolean( - AUTO_UPDATE, - true - ) && (lastChecked == -1L || System.currentTimeMillis() - lastChecked >= getLong( - UPDATE_CHECK_TIME, - 0 - )) - } - - // Function to add new item in list - private fun addItem(pack: ArrayList>) { - for (i in pack.indices) { - val widget = MenuWidget(requireActivity()) - - widget.setTitle(pack[i][1] as String) - widget.setSummary(pack[i][2] as String) - widget.setIcon(pack[i][3] as Int) - widget.setEndArrowVisibility(View.VISIBLE) - - widget.setOnClickListener { - findNavController( - binding.getRoot() - ).navigate((pack[i][0] as Int)) - } - - binding.homePageList.addView(widget) - } - } - - override fun onStop() { - if (checkForUpdate?.status == TaskExecutor.Status.PENDING || - checkForUpdate?.status == TaskExecutor.Status.RUNNING - ) { - checkForUpdate?.cancel(true) - } - - super.onStop() - } - - private inner class CheckForUpdate : TaskExecutor() { - - var jsonURL: String = LATEST_VERSION_URL - - override fun onPreExecute() {} - - override fun doInBackground(vararg params: Int?): String? { - var urlConnection: HttpURLConnection? = null - var bufferedReader: BufferedReader? = null - - return try { - val url = URL(jsonURL) - urlConnection = url.openConnection() as HttpURLConnection - urlConnection.connect() - - val inputStream = urlConnection.inputStream - bufferedReader = BufferedReader(InputStreamReader(inputStream)) - - val stringBuffer = StringBuilder() - var line: String? - - while (bufferedReader.readLine().also { line = it } != null) { - stringBuffer.append(line).append("\n") - } - - if (stringBuffer.isEmpty()) { - null - } else { - stringBuffer.toString() - } - } catch (e: Exception) { - null - } finally { - urlConnection?.disconnect() - - if (bufferedReader != null) { - try { - bufferedReader.close() - } catch (ignored: Exception) { - } - } - } - } - - override fun onPostExecute(result: String?) { - if (result != null) { - try { - val latestVersion = JSONObject(result) - - if (latestVersion.getString(VER_CODE).toInt() > BuildConfig.VERSION_CODE) { - checkUpdate!!.setOnClickListener { - findNavController( - requireActivity(), - R.id.fragmentContainerView - ).navigate(R.id.action_homePage_to_appUpdates) - } - - updateDesc!!.text = resources.getString( - R.string.update_dialog_desc, - latestVersion.getString("versionName") - ) - checkUpdate!!.visibility = View.VISIBLE - } - } catch (ignored: Exception) { - } - } - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/Settings.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/Settings.kt deleted file mode 100644 index 599e5b947..000000000 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/Settings.kt +++ /dev/null @@ -1,517 +0,0 @@ -package com.drdisagree.iconify.ui.fragments - -import android.annotation.SuppressLint -import android.app.Activity -import android.content.ComponentName -import android.content.DialogInterface -import android.content.Intent -import android.content.pm.PackageManager -import android.net.Uri -import android.os.Bundle -import android.os.Handler -import android.os.Looper -import android.util.Log -import android.view.LayoutInflater -import android.view.Menu -import android.view.MenuInflater -import android.view.MenuItem -import android.view.View -import android.view.ViewGroup -import android.widget.CompoundButton -import android.widget.Toast -import androidx.activity.result.ActivityResult -import androidx.activity.result.contract.ActivityResultContracts -import androidx.appcompat.app.AppCompatActivity -import androidx.navigation.Navigation.findNavController -import com.drdisagree.iconify.BuildConfig -import com.drdisagree.iconify.Iconify.Companion.appContext -import com.drdisagree.iconify.Iconify.Companion.appContextLocale -import com.drdisagree.iconify.R -import com.drdisagree.iconify.common.Const -import com.drdisagree.iconify.common.Const.FRAGMENT_BACK_BUTTON_DELAY -import com.drdisagree.iconify.common.Preferences -import com.drdisagree.iconify.common.Preferences.APP_ICON -import com.drdisagree.iconify.common.Preferences.APP_LANGUAGE -import com.drdisagree.iconify.common.Preferences.APP_THEME -import com.drdisagree.iconify.common.Preferences.AUTO_UPDATE -import com.drdisagree.iconify.common.Preferences.EASTER_EGG -import com.drdisagree.iconify.common.Preferences.FIRST_INSTALL -import com.drdisagree.iconify.common.Preferences.ON_HOME_PAGE -import com.drdisagree.iconify.common.Preferences.RESTART_SYSUI_AFTER_BOOT -import com.drdisagree.iconify.common.Preferences.RESTART_SYSUI_BEHAVIOR_EXT -import com.drdisagree.iconify.common.Preferences.SHOW_HOME_CARD -import com.drdisagree.iconify.common.Preferences.SHOW_XPOSED_WARN -import com.drdisagree.iconify.common.Preferences.UPDATE_OVER_WIFI -import com.drdisagree.iconify.common.Resources.MODULE_DIR -import com.drdisagree.iconify.config.Prefs -import com.drdisagree.iconify.config.Prefs.putString -import com.drdisagree.iconify.config.RPrefs -import com.drdisagree.iconify.databinding.FragmentSettingsBinding -import com.drdisagree.iconify.services.UpdateScheduler.scheduleUpdates -import com.drdisagree.iconify.ui.base.BaseFragment -import com.drdisagree.iconify.ui.dialogs.LoadingDialog -import com.drdisagree.iconify.utils.AppUtil.restartApplication -import com.drdisagree.iconify.utils.CacheUtil.clearCache -import com.drdisagree.iconify.utils.SystemUtil.disableBlur -import com.drdisagree.iconify.utils.SystemUtil.disableRestartSystemuiAfterBoot -import com.drdisagree.iconify.utils.SystemUtil.enableRestartSystemuiAfterBoot -import com.drdisagree.iconify.utils.SystemUtil.hasStoragePermission -import com.drdisagree.iconify.utils.SystemUtil.requestStoragePermission -import com.drdisagree.iconify.utils.SystemUtil.restartSystemUI -import com.drdisagree.iconify.utils.SystemUtil.saveBootId -import com.drdisagree.iconify.utils.SystemUtil.saveVersionCode -import com.drdisagree.iconify.utils.helper.ImportExport.exportSettings -import com.drdisagree.iconify.utils.helper.ImportExport.importSettings -import com.drdisagree.iconify.utils.weather.WeatherConfig -import com.google.android.material.dialog.MaterialAlertDialogBuilder -import com.topjohnwu.superuser.Shell -import java.util.Date -import java.util.concurrent.Executors - -class Settings : BaseFragment() { - - private lateinit var binding: FragmentSettingsBinding - private var loadingDialog: LoadingDialog? = null - private var clickTimestamps = LongArray(NUM_CLICKS_REQUIRED) - private var oldestIndex = 0 - private var nextIndex = 0 - - private var startExportActivityIntent = registerForActivityResult( - ActivityResultContracts.StartActivityForResult() - ) { result1: ActivityResult -> - if (result1.resultCode == Activity.RESULT_OK) { - val data = result1.data ?: return@registerForActivityResult - - Executors.newSingleThreadExecutor().execute { - try { - exportSettings( - Prefs.prefs, - appContext.contentResolver.openOutputStream(data.data!!)!! - ) - - Handler(Looper.getMainLooper()).post { - Toast.makeText( - appContext, - appContextLocale.resources.getString(R.string.toast_export_settings_successfull), - Toast.LENGTH_SHORT - ).show() - } - } catch (exception: Exception) { - Handler(Looper.getMainLooper()).post { - Toast.makeText( - appContext, - appContextLocale.resources.getString(R.string.toast_error), - Toast.LENGTH_SHORT - ).show() - Log.e("Settings", "Error exporting settings", exception) - } - } - } - } - } - - private var startImportActivityIntent = registerForActivityResult( - ActivityResultContracts.StartActivityForResult() - ) { result2: ActivityResult -> - if (result2.resultCode == Activity.RESULT_OK) { - val data = result2.data ?: return@registerForActivityResult - MaterialAlertDialogBuilder(requireContext()) - .setTitle(requireContext().resources.getString(R.string.import_settings_confirmation_title)) - .setMessage(requireContext().resources.getString(R.string.import_settings_confirmation_desc)) - .setPositiveButton( - requireContext().resources.getString(R.string.btn_positive) - ) { dialog: DialogInterface, _: Int -> - dialog.dismiss() - loadingDialog!!.show(resources.getString(R.string.loading_dialog_wait)) - Executors.newSingleThreadExecutor().execute { - try { - val success = importSettings( - Prefs.prefs, - appContext.contentResolver.openInputStream(data.data!!)!!, - true - ) - Handler(Looper.getMainLooper()).post { - loadingDialog!!.hide() - if (success) { - Toast.makeText( - appContext, - appContext.resources.getString(R.string.toast_import_settings_successfull), - Toast.LENGTH_SHORT - ).show() - } else { - Toast.makeText( - appContext, - appContext.resources.getString(R.string.toast_error), - Toast.LENGTH_SHORT - ).show() - } - } - } catch (exception: Exception) { - Handler(Looper.getMainLooper()).post { - Toast.makeText( - appContext, - appContext.resources.getString(R.string.toast_error), - Toast.LENGTH_SHORT - ).show() - Log.e("Settings", "Error importing settings", exception) - } - } - } - } - .setNegativeButton(requireContext().resources.getString(R.string.btn_negative)) { dialog: DialogInterface, _: Int -> dialog.dismiss() } - .show() - } - } - - @Suppress("deprecation") - override fun onCreateView( - inflater: LayoutInflater, - container: ViewGroup?, - savedInstanceState: Bundle? - ): View { - binding = FragmentSettingsBinding.inflate(inflater, container, false) - val view: View = binding.getRoot() - - // Header - binding.header.toolbar.setTitle(resources.getString(R.string.activity_title_settings)) - (requireActivity() as AppCompatActivity).setSupportActionBar(binding.header.toolbar) - setHasOptionsMenu(true) - (requireActivity() as AppCompatActivity).supportActionBar?.setDisplayHomeAsUpEnabled(true) - (requireActivity() as AppCompatActivity).supportActionBar?.setDisplayShowHomeEnabled(true) - binding.header.toolbar.setNavigationOnClickListener { - Handler(Looper.getMainLooper()).postDelayed( - { getParentFragmentManager().popBackStack() }, FRAGMENT_BACK_BUTTON_DELAY.toLong() - ) - } - - // Show loading dialog - loadingDialog = LoadingDialog(requireActivity()) - - // Language - var currentLanguage = - listOf(*resources.getStringArray(R.array.locale_code)).indexOf("en-US") - val locales = resources.configuration.getLocales() - val localeCodes = listOf(*resources.getStringArray(R.array.locale_code)) - - for (i in 0 until locales.size()) { - val languageCode = locales[i].language - val countryCode = locales[i].country - val languageFormat = "$languageCode-$countryCode" - - if (localeCodes.contains(Prefs.getString(APP_LANGUAGE, languageFormat))) { - currentLanguage = - localeCodes.indexOf(Prefs.getString(APP_LANGUAGE, languageFormat)) - break - } - } - - binding.settingsGeneral.appLanguage.setSelectedIndex(currentLanguage) - binding.settingsGeneral.appLanguage.setOnItemSelectedListener { index: Int -> - putString( - APP_LANGUAGE, - listOf(*resources.getStringArray(R.array.locale_code))[index] - ) - - restartApplication(requireActivity()) - } - - // App Icon - binding.settingsGeneral.appIcon.setSelectedIndex(Prefs.getInt(APP_ICON, 0)) - binding.settingsGeneral.appIcon.setOnItemSelectedListener { index: Int -> - Prefs.putInt(APP_ICON, index) - val splashActivities = - appContextLocale.resources.getStringArray(R.array.app_icon_identifier) - - changeIcon(splashActivities[index]) - } - - // App Theme - binding.settingsGeneral.appTheme.setSelectedIndex(Prefs.getInt(APP_THEME, 2)) - binding.settingsGeneral.appTheme.setOnItemSelectedListener { index: Int -> - Prefs.putInt(APP_THEME, index) - - restartApplication(requireActivity()) - } - - // Check for update - binding.settingsUpdate.checkUpdate.setSummary( - resources.getString( - R.string.settings_current_version, - BuildConfig.VERSION_NAME - ) - ) - binding.settingsUpdate.checkUpdate.setOnClickListener { - findNavController(view).navigate( - R.id.action_settings_to_appUpdates - ) - } - - // Auto update - binding.settingsUpdate.autoUpdate.isSwitchChecked = Prefs.getBoolean(AUTO_UPDATE, true) - binding.settingsUpdate.autoUpdate.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - Prefs.putBoolean(AUTO_UPDATE, isChecked) - scheduleUpdates(requireContext().applicationContext) - binding.settingsUpdate.autoUpdateWifiOnly.setEnabled(isChecked) - } - - // Check over wifi only - binding.settingsUpdate.autoUpdateWifiOnly.setEnabled(binding.settingsUpdate.autoUpdate.isSwitchChecked) - binding.settingsUpdate.autoUpdateWifiOnly.isSwitchChecked = - Prefs.getBoolean(UPDATE_OVER_WIFI, true) - binding.settingsUpdate.autoUpdateWifiOnly.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - Prefs.putBoolean(UPDATE_OVER_WIFI, isChecked) - } - - // Show xposed warn - binding.settingsXposed.hideWarnMessage.isSwitchChecked = - Prefs.getBoolean(SHOW_XPOSED_WARN, true) - binding.settingsXposed.hideWarnMessage.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - Prefs.putBoolean(SHOW_XPOSED_WARN, isChecked) - } - - // Restart systemui behavior - binding.settingsXposed.modApplyingMethod.setSelectedIndex( - RPrefs.getInt(RESTART_SYSUI_BEHAVIOR_EXT, 0) - ) - binding.settingsXposed.modApplyingMethod.setOnItemSelectedListener { index: Int -> - RPrefs.putInt(RESTART_SYSUI_BEHAVIOR_EXT, index) - } - - // Restart systemui after boot - binding.settingsMisc.restartSysuiAfterBoot.isSwitchChecked = - Prefs.getBoolean(RESTART_SYSUI_AFTER_BOOT, false) - binding.settingsMisc.restartSysuiAfterBoot.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - Prefs.putBoolean(RESTART_SYSUI_AFTER_BOOT, isChecked) - if (isChecked) { - enableRestartSystemuiAfterBoot() - } else { - disableRestartSystemuiAfterBoot() - } - } - - // Home page card - binding.settingsMisc.homePageCard.isSwitchChecked = Prefs.getBoolean(SHOW_HOME_CARD, true) - binding.settingsMisc.homePageCard.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - Prefs.putBoolean(SHOW_HOME_CARD, isChecked) - } - binding.settingsMisc.homePageCard.visibility = - if (Preferences.isXposedOnlyMode) { - View.GONE - } else { - View.VISIBLE - } - - // Clear App Cache - binding.settingsMisc.clearCache.setOnClickListener { - clearCache(appContext) - - Toast.makeText( - appContext, - appContextLocale.resources.getString(R.string.toast_clear_cache), - Toast.LENGTH_SHORT - ).show() - } - - // Experimental features - binding.settingsMisc.settingsMiscTitle.setOnClickListener { onEasterViewClicked() } - binding.settingsMisc.experimentalFeatures.setOnClickListener { - findNavController( - view - ).navigate(R.id.action_settings_to_experimental) - } - binding.settingsMisc.experimentalFeatures.visibility = - if (Prefs.getBoolean(EASTER_EGG)) { - View.VISIBLE - } else { - View.GONE - } - - // Disable Everything - binding.settingsMisc.buttonDisableEverything.setOnClickListener { - MaterialAlertDialogBuilder(requireActivity()) - .setCancelable(true) - .setTitle(requireContext().resources.getString(R.string.import_settings_confirmation_title)) - .setMessage(requireContext().resources.getString(R.string.import_settings_confirmation_desc)) - .setPositiveButton(getString(R.string.positive)) { dialog: DialogInterface, _: Int -> - dialog.dismiss() - - // Show loading dialog - loadingDialog!!.show(resources.getString(R.string.loading_dialog_wait)) - Executors.newSingleThreadExecutor().execute { - disableEverything() - Handler(Looper.getMainLooper()).postDelayed({ - - // Hide loading dialog - loadingDialog!!.hide() - - // Restart SystemUI - restartSystemUI() - }, 3000) - } - } - .setNegativeButton(getString(R.string.negative)) { dialog: DialogInterface, _: Int -> - dialog.dismiss() - } - .show() - } - - binding.settingsMisc.buttonDisableEverything.visibility = - if (Preferences.isXposedOnlyMode) { - View.GONE - } else { - View.VISIBLE - } - - // Github repository - binding.settingsAbout.githubRepository.setOnClickListener { - startActivity( - Intent(Intent.ACTION_VIEW).setData(Uri.parse(Const.GITHUB_REPO)) - ) - } - - // Telegram group - binding.settingsAbout.telegramGroup.setOnClickListener { - val intent = Intent(Intent.ACTION_VIEW) - intent.setData(Uri.parse(Const.TELEGRAM_GROUP)) - startActivity(intent) - } - - // Credits - binding.settingsAbout.credits.setOnClickListener { - findNavController(view).navigate( - R.id.action_settings_to_credits2 - ) - } - - return view - } - - override fun onDestroy() { - loadingDialog?.hide() - - super.onDestroy() - } - - @Suppress("deprecation") - @Deprecated("Deprecated in Java") - override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { - menu.clear() - inflater.inflate(R.menu.settings_menu, menu) - - super.onCreateOptionsMenu(menu, inflater) - } - - @Suppress("deprecation") - @Deprecated("Deprecated in Java") - @SuppressLint("NonConstantResourceId") - override fun onOptionsItemSelected(item: MenuItem): Boolean { - when (item.itemId) { - R.id.menu_changelog -> findNavController(requireView()).navigate(R.id.action_settings_to_changelog2) - R.id.menu_export_settings -> importExportSettings(true) - R.id.menu_import_settings -> importExportSettings(false) - R.id.restart_systemui -> Handler(Looper.getMainLooper()).postDelayed( - { restartSystemUI() }, - 300 - ) - } - - return super.onOptionsItemSelected(item) - } - - private fun importExportSettings(export: Boolean) { - if (!hasStoragePermission()) { - requestStoragePermission(requireContext()) - } else { - val fileIntent = Intent() - fileIntent.setAction(if (export) Intent.ACTION_CREATE_DOCUMENT else Intent.ACTION_GET_CONTENT) - fileIntent.setType("*/*") - fileIntent.putExtra(Intent.EXTRA_TITLE, "configs" + ".iconify") - - if (export) { - startExportActivityIntent.launch(fileIntent) - } else { - startImportActivityIntent.launch(fileIntent) - } - } - } - - private fun changeIcon(splash: String) { - val manager = requireActivity().packageManager - val splashActivities = - appContextLocale.resources.getStringArray(R.array.app_icon_identifier) - for (splashActivity in splashActivities) { - manager.setComponentEnabledSetting( - ComponentName( - requireActivity(), - "com.drdisagree.iconify.$splashActivity" - ), - if (splash == splashActivity) { - PackageManager.COMPONENT_ENABLED_STATE_ENABLED - } else { - PackageManager.COMPONENT_ENABLED_STATE_DISABLED - }, - PackageManager.DONT_KILL_APP - ) - } - } - - private fun onEasterViewClicked() { - val timeMillis = Date().time - - if (nextIndex == NUM_CLICKS_REQUIRED - 1 || oldestIndex > 0) { - val diff = (timeMillis - clickTimestamps[oldestIndex]).toInt() - if (diff < SECONDS_FOR_CLICKS * 1000) { - if (!Prefs.getBoolean(EASTER_EGG)) { - Prefs.putBoolean(EASTER_EGG, true) - - binding.settingsMisc.experimentalFeatures.visibility = View.VISIBLE - - Toast.makeText( - requireContext(), - requireContext().resources.getString(R.string.toast_easter_egg), - Toast.LENGTH_SHORT - ).show() - } else { - Toast.makeText( - requireContext(), - requireContext().resources.getString(R.string.toast_easter_egg_activated), - Toast.LENGTH_SHORT - ).show() - } - - oldestIndex = 0 - nextIndex = 0 - } else { - oldestIndex++ - } - } - - clickTimestamps[nextIndex] = timeMillis - nextIndex++ - - if (nextIndex == NUM_CLICKS_REQUIRED) nextIndex = 0 - if (oldestIndex == NUM_CLICKS_REQUIRED) oldestIndex = 0 - } - - companion object { - private const val SECONDS_FOR_CLICKS = 3.0 - private const val NUM_CLICKS_REQUIRED = 7 - - fun disableEverything() { - WeatherConfig.clear(appContext) - Prefs.clearAllPrefs() - RPrefs.clearAllPrefs() - - saveBootId - disableBlur(false) - saveVersionCode() - - Prefs.putBoolean(ON_HOME_PAGE, true) - Prefs.putBoolean(FIRST_INSTALL, false) - - Shell.cmd( - "> $MODULE_DIR/system.prop; > $MODULE_DIR/post-exec.sh; for ol in $(cmd overlay list | grep -E '.x.*IconifyComponent' | sed -E 's/^.x..//'); do cmd overlay disable \$ol; done; killall com.android.systemui" - ).submit() - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/SignalIcons.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/SignalIcons.kt deleted file mode 100644 index b9c5261ce..000000000 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/SignalIcons.kt +++ /dev/null @@ -1,135 +0,0 @@ -package com.drdisagree.iconify.ui.fragments - -import android.content.Context -import android.graphics.Bitmap -import android.graphics.BitmapFactory -import android.graphics.drawable.BitmapDrawable -import android.graphics.drawable.Drawable -import android.os.Bundle -import android.util.Log -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import androidx.recyclerview.widget.LinearLayoutManager -import com.drdisagree.iconify.Iconify -import com.drdisagree.iconify.R -import com.drdisagree.iconify.config.Prefs.putBoolean -import com.drdisagree.iconify.databinding.FragmentIconPackBinding -import com.drdisagree.iconify.ui.adapters.IconPackAdapter -import com.drdisagree.iconify.ui.base.BaseFragment -import com.drdisagree.iconify.ui.dialogs.LoadingDialog -import com.drdisagree.iconify.ui.models.IconPackModel -import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader -import com.drdisagree.iconify.utils.overlay.OverlayUtil -import com.drdisagree.iconify.utils.overlay.OverlayUtil.checkEnabledOverlay -import com.drdisagree.iconify.utils.overlay.OverlayUtil.getDrawableFromOverlay -import com.drdisagree.iconify.utils.overlay.OverlayUtil.getOverlayForComponent -import com.drdisagree.iconify.utils.overlay.OverlayUtil.getStringFromOverlay -import java.io.IOException -import java.io.InputStream - -class SignalIcons : BaseFragment() { - - private lateinit var binding: FragmentIconPackBinding - private var loadingDialog: LoadingDialog? = null - val signalIcons: java.util.ArrayList = ArrayList() - - override fun onCreateView( - inflater: LayoutInflater, - container: ViewGroup?, - savedInstanceState: Bundle? - ): View { - binding = FragmentIconPackBinding.inflate(inflater, container, false) - val view: View = binding.getRoot() - - // Header - setHeader( - requireContext(), - getParentFragmentManager(), - binding.header.toolbar, - R.string.activity_title_signal_icons - ) - - // Loading dialog while enabling or disabling pack - loadingDialog = LoadingDialog(requireContext()) - - // RecyclerView - binding.iconPackContainer.setLayoutManager(LinearLayoutManager(requireContext())) - - binding.iconPackContainer.setAdapter(initIconPackItems()) - binding.iconPackContainer.setHasFixedSize(true) - - return view - } - - private fun initIconPackItems(): IconPackAdapter { - val pack = getOverlayForComponent("SGIC") - for (i in pack.indices) { - if (!pack[i].contains("]")) continue - val pkgName = pack[i].split("]")[1].trim() - val name = getStringFromOverlay(Iconify.appContext, pkgName, "theme_name") ?: "Unknown" - Log.d("SignalIcons", "initIconPackItems: $pkgName | $name") - signalIcons.add( - IconPackModel( - name, - pkgName, - getDrawableFromOverlay(Iconify.appContext, pkgName, "ic_signal_cellular_1_4_bar"), - getDrawableFromOverlay(Iconify.appContext, pkgName, "ic_signal_cellular_2_4_bar"), - getDrawableFromOverlay(Iconify.appContext, pkgName, "ic_signal_cellular_3_4_bar"), - getDrawableFromOverlay(Iconify.appContext, pkgName, "ic_signal_cellular_4_4_bar"), - pack[i].contains("[x]") - ) - ) - } - signalIcons.sortBy { it.name } - - return IconPackAdapter( - requireContext(), - signalIcons, - loadingDialog!!, - "SGIC", - onButtonClick - ) - } - - private val onButtonClick = object : IconPackAdapter.OnButtonClick { - - override fun onEnableClick(position: Int, item: IconPackModel) { - disableIcons() - putBoolean(item.packageName, true) - val pkgName = checkEnabledOverlay("IPAS") - if (pkgName.isNotEmpty()) { - OverlayUtil.disableOverlay(pkgName) - } - item.packageName?.let { OverlayUtil.enableOverlay(it) } - if (pkgName.isNotEmpty()) { - OverlayUtil.enableOverlay(pkgName, "high") - // Force Signal Icons - item.packageName?.let { OverlayUtil.enableOverlay(it) } - // get and set wifi icon - val wifiPack = checkEnabledOverlay("WIFI") - if (wifiPack.isNotEmpty()) { - OverlayUtil.enableOverlay(wifiPack) - } - } - } - - override fun onDisableClick(position: Int, item: IconPackModel) { - disableIcons() - } - } - - private fun disableIcons() { - for (i in signalIcons.indices) { - signalIcons[i].isEnabled = false - putBoolean(signalIcons[i].packageName, false) - signalIcons[i].packageName?.let { OverlayUtil.disableOverlay(it)} - } - } - - override fun onDestroy() { - loadingDialog?.dismiss() - - super.onDestroy() - } -} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/Tweaks.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/Tweaks.kt deleted file mode 100644 index e98edf56e..000000000 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/Tweaks.kt +++ /dev/null @@ -1,185 +0,0 @@ -package com.drdisagree.iconify.ui.fragments - -import android.os.Build -import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.Toast -import androidx.navigation.Navigation.findNavController -import com.drdisagree.iconify.Iconify.Companion.appContext -import com.drdisagree.iconify.R -import com.drdisagree.iconify.SplashActivity.Companion.SKIP_TO_HOMEPAGE_FOR_TESTING -import com.drdisagree.iconify.databinding.FragmentTweaksBinding -import com.drdisagree.iconify.ui.base.BaseFragment -import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader -import com.drdisagree.iconify.ui.widgets.MenuWidget -import com.drdisagree.iconify.utils.AppUtil.isLsposedInstalled - -class Tweaks : BaseFragment() { - - private lateinit var binding: FragmentTweaksBinding - - override fun onCreateView( - inflater: LayoutInflater, - container: ViewGroup?, - savedInstanceState: Bundle? - ): View { - binding = FragmentTweaksBinding.inflate(inflater, container, false) - val view: View = binding.getRoot() - - // Header - setHeader( - requireContext(), - getParentFragmentManager(), - binding.header.toolbar, - R.string.navbar_tweaks - ) - - addItem(initTweaksItemList(view)) - - return view - } - - private fun initTweaksItemList(view: View): ArrayList> { - val tweaksList = ArrayList>().apply { - add( - arrayOf( - R.id.action_tweaks_to_colorEngine, - resources.getString(R.string.activity_title_color_engine), - resources.getString(R.string.activity_desc_color_engine), - R.drawable.ic_tweaks_color - ) - ) - add( - arrayOf( - R.id.action_tweaks_to_uiRoundness, - resources.getString(R.string.activity_title_ui_roundness), - resources.getString(R.string.activity_desc_ui_roundness), - R.drawable.ic_tweaks_roundness - ) - ) - add( - arrayOf( - R.id.action_tweaks_to_qsRowColumn, - resources.getString(R.string.activity_title_qs_row_column), - resources.getString(R.string.activity_desc_qs_row_column), - R.drawable.ic_qs_row_column - ) - ) - add( - arrayOf( - R.id.action_tweaks_to_qsIconLabel, - resources.getString(R.string.activity_title_qs_icon_label), - resources.getString(R.string.activity_desc_qs_icon_label), - R.drawable.ic_qs_icon_and_label - ) - ) - add( - arrayOf( - R.id.action_tweaks_to_qsTileSize, - resources.getString(R.string.activity_title_qs_tile_size), - resources.getString(R.string.activity_desc_qs_tile_size), - R.drawable.ic_qs_tile_size - ) - ) - add( - arrayOf( - R.id.action_tweaks_to_qsPanelMargin, - resources.getString(R.string.activity_title_qs_panel_margin), - resources.getString(R.string.activity_desc_qs_panel_margin), - R.drawable.ic_qs_top_margin - ) - ) - add( - arrayOf( - R.id.action_tweaks_to_statusbar, - resources.getString(R.string.activity_title_statusbar), - resources.getString(R.string.activity_desc_statusbar), - R.drawable.ic_tweaks_statusbar - ) - ) - add( - arrayOf( - R.id.action_tweaks_to_navigationBar, - resources.getString(R.string.activity_title_navigation_bar), - resources.getString(R.string.activity_desc_navigation_bar), - R.drawable.ic_tweaks_navbar - ) - ) - add( - arrayOf( - R.id.action_tweaks_to_mediaPlayer, - resources.getString(R.string.activity_title_media_player), - resources.getString(R.string.activity_desc_media_player), - R.drawable.ic_tweaks_media - ) - ) - add( - arrayOf( - R.id.action_tweaks_to_volumePanel, - resources.getString(R.string.activity_title_volume_panel), - resources.getString(R.string.activity_desc_volume_panel), - R.drawable.ic_tweaks_volume - ) - ) - add( - arrayOf( - R.id.action_tweaks_to_miscellaneous, - resources.getString(R.string.activity_title_miscellaneous), - resources.getString(R.string.activity_desc_miscellaneous), - R.drawable.ic_tweaks_miscellaneous - ) - ) - add( - arrayOf( - View.OnClickListener { - // Check if LSPosed is installed or not - if (!isLsposedInstalled && !SKIP_TO_HOMEPAGE_FOR_TESTING) { - Toast.makeText( - appContext, - resources.getString(R.string.toast_lsposed_not_found), - Toast.LENGTH_SHORT - ).show() - return@OnClickListener - } - findNavController(view).navigate(R.id.action_tweaks_to_nav_xposed_menu) - }, - resources.getString(R.string.activity_title_xposed_menu), - resources.getString(R.string.activity_desc_xposed_menu), - R.drawable.ic_tweaks_xposed_menu - ) - ) - } - - return tweaksList - } - - // Function to add new item in list - private fun addItem(pack: ArrayList>) { - for (i in pack.indices) { - val menu = MenuWidget(requireActivity()) - - menu.setTitle(pack[i][1] as String) - menu.setSummary(pack[i][2] as String) - menu.setIcon(pack[i][3] as Int) - menu.setEndArrowVisibility(View.VISIBLE) - - if (pack[i][0] is View.OnClickListener) { - menu.setOnClickListener(pack[i][0] as View.OnClickListener) - } else if (pack[i][0] is Int) { - menu.setOnClickListener { - findNavController( - binding.getRoot() - ).navigate((pack[i][0] as Int)) - } - } - - if (pack[i][1] == resources.getString(R.string.activity_title_media_player) && Build.VERSION.SDK_INT >= 33) { - menu.visibility = View.GONE - } - - binding.tweaksList.addView(menu) - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/WeatherSettings.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/WeatherSettings.kt deleted file mode 100644 index 9b9f572b7..000000000 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/WeatherSettings.kt +++ /dev/null @@ -1,423 +0,0 @@ -package com.drdisagree.iconify.ui.fragments - -import android.Manifest -import android.annotation.SuppressLint -import android.content.Context -import android.content.DialogInterface -import android.content.Intent -import android.content.pm.PackageManager -import android.graphics.drawable.Drawable -import android.location.LocationManager -import android.net.Uri -import android.os.Bundle -import android.provider.Settings -import android.text.TextUtils -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import androidx.activity.result.contract.ActivityResultContracts -import androidx.core.content.res.ResourcesCompat -import androidx.recyclerview.widget.LinearLayoutManager -import com.drdisagree.iconify.BuildConfig -import com.drdisagree.iconify.Iconify.Companion.appContextLocale -import com.drdisagree.iconify.R -import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_LOCATION -import com.drdisagree.iconify.common.Preferences.WEATHER_ICON_PACK -import com.drdisagree.iconify.common.Preferences.WEATHER_OWM_KEY -import com.drdisagree.iconify.common.Preferences.WEATHER_PROVIDER -import com.drdisagree.iconify.common.Preferences.WEATHER_UNITS -import com.drdisagree.iconify.common.Preferences.WEATHER_UPDATE_INTERVAL -import com.drdisagree.iconify.config.RPrefs -import com.drdisagree.iconify.config.RPrefs.getBoolean -import com.drdisagree.iconify.config.RPrefs.putString -import com.drdisagree.iconify.databinding.FragmentWeatherSettingsBinding -import com.drdisagree.iconify.services.WeatherScheduler -import com.drdisagree.iconify.ui.adapters.IconsAdapter -import com.drdisagree.iconify.ui.adapters.IconsAdapter.Companion.WEATHER_ICONS_ADAPTER -import com.drdisagree.iconify.ui.base.BaseFragment -import com.drdisagree.iconify.ui.dialogs.EditTextDialog -import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader -import com.drdisagree.iconify.utils.OmniJawsClient -import com.drdisagree.iconify.utils.weather.WeatherConfig -import com.google.android.material.dialog.MaterialAlertDialogBuilder -import java.util.Locale - -class WeatherSettings: BaseFragment(), OmniJawsClient.OmniJawsObserver { - - private lateinit var binding: FragmentWeatherSettingsBinding - private lateinit var mWeatherClient: OmniJawsClient - private val mapping: IntArray = intArrayOf(1, 2, 4, 6, 12) - - override fun onCreateView( - inflater: LayoutInflater, - container: ViewGroup?, - savedInstanceState: Bundle? - ): View { - binding = FragmentWeatherSettingsBinding.inflate(inflater, container, false) - - mWeatherClient = OmniJawsClient(requireContext()) - mWeatherClient.queryWeather() - - // Header - setHeader( - requireContext(), - getParentFragmentManager(), - binding.header.toolbar, - R.string.activity_title_lockscreen_widgets - ) - - return binding.root - } - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - - val updateInterval = WeatherConfig.getUpdateInterval(requireContext()) - var selectedIndex = 1 - when (updateInterval) { - 1 -> selectedIndex = 0 - 2 -> selectedIndex = 1 - 4 -> selectedIndex = 2 - 6 -> selectedIndex = 3 - 12 -> selectedIndex = 4 - } - binding.weatherUpdateInterval.setSelectedIndex(selectedIndex) - binding.weatherUpdateInterval.setOnItemSelectedListener { - putString(WEATHER_UPDATE_INTERVAL, mapping[it].toString()) - handlePermissions() - forceRefreshWeatherSettings() - } - - binding.weatherLastUpdate.setOnClickListener { - handlePermissions() - forceRefreshWeatherSettings() - } - - binding.weatherProvider.setSelectedIndex( - RPrefs.getString(WEATHER_PROVIDER, "0")!!.toInt() - ) - binding.weatherProvider.setOnItemSelectedListener { - putString(WEATHER_PROVIDER, it.toString()) - - if (WeatherConfig.getOwmKey(requireContext()).isEmpty() && it != 0) { - showOwnKeyDialog() - } else { - forceRefreshWeatherSettings() - } - } - - val owmKey = WeatherConfig.getOwmKey(requireContext()) - if (owmKey.isEmpty()) { - binding.weatherOwmKey.setSummary(getString(R.string.not_available)) - } else { - binding.weatherOwmKey.setSummary( - "*".repeat(owmKey.length - 4) + owmKey.takeLast( - 4 - ) - ) - } - binding.weatherOwmKey.setEditTextValue(owmKey) - binding.weatherOwmKey.setOnEditTextListener(object : - EditTextDialog.EditTextDialogListener { - override fun onOkPressed(dialogId: Int, newText: String) { - putString(WEATHER_OWM_KEY, newText) - handlePermissions() - forceRefreshWeatherSettings() - - val maskedKey = if (newText.length > 4) { - "*".repeat(newText.length - 4) + newText.takeLast(4) - } else { - newText.ifEmpty { - getString(R.string.not_available) - } - } - - binding.weatherOwmKey.setSummary(maskedKey) - binding.weatherOwmKey.setEditTextValue(newText) - } - }) - - binding.weatherUnits.setSelectedIndex(if (WeatherConfig.isMetric(requireContext())) 0 else 1) - binding.weatherUnits.setOnItemSelectedListener { index: Int -> - putString(WEATHER_UNITS, index.toString()) - forceRefreshWeatherSettings() - } - - val entries: MutableList = ArrayList() - val values: MutableList = ArrayList() - val drawables: MutableList = ArrayList() - getAvailableWeatherIconPacks(entries, values, drawables) - val entriesChar: Array = entries.filterNotNull().toTypedArray() - val valuesChar: Array = values.filterNotNull().toTypedArray() - val currentIconPack = if (TextUtils.isEmpty(WeatherConfig.getIconPack(requireContext()))) { - valuesChar[0].toString() - } else { - WeatherConfig.getIconPack(requireContext()) - } - val mAdapter = IconsAdapter( - entriesChar, - valuesChar, - currentIconPack!!, - WEATHER_ICONS_ADAPTER, - object : IconsAdapter.OnItemClickListener { - override fun onItemClick(view: View, position: Int) { - val value = values[position] - putString(WEATHER_ICON_PACK, value!!) - binding.weatherIconPack.setSummary(entries[position]!!) - forceRefreshWeatherSettings() - } - } - ) - mAdapter.setDrawables(drawables.filterNotNull().toTypedArray()) - val summary = if (!TextUtils.isEmpty(currentIconPack) && values.contains(currentIconPack)) { - entries[values.indexOf(currentIconPack)] - } else { - entries[0] - } - binding.weatherIconPack.setSummary(summary!!) - binding.weatherIconPack.setLayoutManager(LinearLayoutManager(requireContext())) - binding.weatherIconPack.setAdapter(mAdapter) - - } - - override fun weatherError(errorReason: Int) { - val errorString: String = when (errorReason) { - OmniJawsClient.EXTRA_ERROR_DISABLED -> { - appContextLocale.getString(R.string.omnijaws_service_disabled) - } - - OmniJawsClient.EXTRA_ERROR_LOCATION -> { - appContextLocale.getString(R.string.omnijaws_service_error_location) - } - - OmniJawsClient.EXTRA_ERROR_NETWORK -> { - appContextLocale.getString(R.string.omnijaws_service_error_network) - } - - OmniJawsClient.EXTRA_ERROR_NO_PERMISSIONS -> { - appContextLocale.getString(R.string.omnijaws_service_error_permissions) - } - - else -> { - appContextLocale.getString(R.string.omnijaws_service_error_long) - } - } - - requireActivity().runOnUiThread { - binding.weatherLastUpdate.setSummary(errorString) - } - } - - @SuppressLint("DiscouragedApi") - private fun getAvailableWeatherIconPacks( - entries: MutableList, - values: MutableList, - drawables: MutableList - ) { - val i = Intent() - val packageManager = requireContext().packageManager - i.setAction(BuildConfig.APPLICATION_ID + ".WeatherIconPack") - for (r in packageManager.queryIntentActivities(i, 0)) { - val packageName = r.activityInfo.applicationInfo.packageName - if (packageName == DEFAULT_WEATHER_ICON_PACKAGE) { - values.add(0, r.activityInfo.name) - drawables.add( - 0, - ResourcesCompat.getDrawable( - resources, - resources.getIdentifier( - "google_30", - "drawable", - BuildConfig.APPLICATION_ID - ), - requireContext().theme - ) - ) - } else { - values.add(packageName + "." + r.activityInfo.name.split(".").last()) - val name = r.activityInfo.name.split("\\.".toRegex()).dropLastWhile { it.isEmpty() } - .toTypedArray() - drawables.add( - ResourcesCompat.getDrawable( - resources, resources.getIdentifier( - name[name.size - 1].lowercase( - Locale.getDefault() - ) + "_30", "drawable", BuildConfig.APPLICATION_ID - ), requireContext().theme - ) - ) - } - - val label: String = r.activityInfo.loadLabel(packageManager).toString() - if (packageName == DEFAULT_WEATHER_ICON_PACKAGE) { - entries.add(0, label) - } else { - entries.add(label) - } - } - } - - override fun onResume() { - super.onResume() - - mWeatherClient.addObserver(this) - handlePermissions() - } - - override fun onPause() { - super.onPause() - - mWeatherClient.removeObserver(this) - } - - private fun showOwnKeyDialog() { - MaterialAlertDialogBuilder(requireContext()) - .setTitle(appContextLocale.getString(R.string.weather_provider_owm_key_title)) - .setMessage(appContextLocale.getString(R.string.weather_provider_owm_key_message)) - .setCancelable(false) - .setPositiveButton(appContextLocale.getString(R.string.understood), null) - .create() - .show() - } - - private fun handlePermissions() { - if (!getBoolean(WEATHER_CUSTOM_LOCATION, false) - ) { - checkLocationEnabled(false) - } - } - - private fun checkLocationEnabled(force: Boolean) { - if (!isLocationEnabled()) { - showLocationPermissionDialog() - } else { - checkLocationPermission(force) - } - } - - private fun hasPermissions(): Boolean { - return (requireContext().checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) - == PackageManager.PERMISSION_GRANTED) && - (requireContext().checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) - == PackageManager.PERMISSION_GRANTED) && - (requireContext().checkSelfPermission(Manifest.permission.ACCESS_BACKGROUND_LOCATION) - == PackageManager.PERMISSION_GRANTED) - } - - private fun checkLocationPermission(force: Boolean) { - if (!hasPermissions()) { - if (!getBoolean(WEATHER_CUSTOM_LOCATION, false) - ) { - requestLocationPermission() - } - } else { - if (force) { - forceRefreshWeatherSettings() - } - queryAndUpdateWeather() - } - } - - private fun showLocationPermissionDialog() { - MaterialAlertDialogBuilder(requireContext()) - .setTitle(R.string.weather_retrieve_location_dialog_title) - .setMessage(R.string.weather_retrieve_location_dialog_message) - .setCancelable(false) - .setPositiveButton(R.string.weather_retrieve_location_dialog_enable_button) { _, _ -> - startActivity( - Intent( - Settings.ACTION_LOCATION_SOURCE_SETTINGS - ).apply { - setFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP) - } - ) - } - .setNegativeButton(android.R.string.cancel, null) - .create() - .show() - } - - private fun showApplicationPermissionDialog() { - MaterialAlertDialogBuilder(requireContext()) - .setTitle(R.string.weather_permission_dialog_title) - .setMessage(R.string.weather_permission_dialog_message) - .setCancelable(false) - .setPositiveButton(android.R.string.ok) { _: DialogInterface?, _: Int -> - startActivity( - Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS).apply { - setData( - Uri.fromParts( - "package", - requireContext().packageName, - null - ) - ) - } - ) - } - .setNegativeButton(android.R.string.cancel, null) - .create() - .show() - } - - private fun requestLocationPermission() { - if (shouldShowRequestPermissionRationale(Manifest.permission.ACCESS_FINE_LOCATION) || - shouldShowRequestPermissionRationale(Manifest.permission.ACCESS_COARSE_LOCATION) || - shouldShowRequestPermissionRationale(Manifest.permission.ACCESS_BACKGROUND_LOCATION) - ) { - showApplicationPermissionDialog() - } else { - locationPermissionRequest.launch( - arrayOf( - Manifest.permission.ACCESS_FINE_LOCATION, - Manifest.permission.ACCESS_COARSE_LOCATION, - Manifest.permission.ACCESS_BACKGROUND_LOCATION - ) - ) - } - } - - private fun isLocationEnabled(): Boolean { - val lm = requireContext().getSystemService(Context.LOCATION_SERVICE) as LocationManager - return lm.isLocationEnabled - } - - private var locationPermissionRequest = registerForActivityResult( - ActivityResultContracts.RequestMultiplePermissions() - ) { permissions -> - val fineLocationGranted: Boolean = permissions.getOrDefault( - Manifest.permission.ACCESS_FINE_LOCATION, false - ) - val coarseLocationGranted: Boolean = permissions.getOrDefault( - Manifest.permission.ACCESS_COARSE_LOCATION, false - ) - - if (fineLocationGranted || coarseLocationGranted) { - forceRefreshWeatherSettings() - } - } - - private fun forceRefreshWeatherSettings() { - WeatherScheduler.scheduleUpdateNow(requireContext()) - } - - private fun queryAndUpdateWeather() { - mWeatherClient.queryWeather() - - if (mWeatherClient.weatherInfo != null && activity != null) { - requireActivity().runOnUiThread { - binding.weatherLastUpdate.setSummary(mWeatherClient.weatherInfo!!.lastUpdateTime) - } - } - } - - override fun weatherUpdated() { - queryAndUpdateWeather() - } - - companion object { - private const val DEFAULT_WEATHER_ICON_PACKAGE: String = - "${BuildConfig.APPLICATION_ID}.google" - } - -} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/WiFiIcons.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/WiFiIcons.kt deleted file mode 100644 index 88287eafe..000000000 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/WiFiIcons.kt +++ /dev/null @@ -1,135 +0,0 @@ -package com.drdisagree.iconify.ui.fragments - -import android.content.Context -import android.graphics.Bitmap -import android.graphics.BitmapFactory -import android.graphics.drawable.BitmapDrawable -import android.graphics.drawable.Drawable -import android.os.Bundle -import android.util.Log -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import androidx.recyclerview.widget.LinearLayoutManager -import com.drdisagree.iconify.Iconify -import com.drdisagree.iconify.R -import com.drdisagree.iconify.config.Prefs.putBoolean -import com.drdisagree.iconify.databinding.FragmentIconPackBinding -import com.drdisagree.iconify.ui.adapters.IconPackAdapter -import com.drdisagree.iconify.ui.base.BaseFragment -import com.drdisagree.iconify.ui.dialogs.LoadingDialog -import com.drdisagree.iconify.ui.models.IconPackModel -import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader -import com.drdisagree.iconify.utils.overlay.OverlayUtil -import com.drdisagree.iconify.utils.overlay.OverlayUtil.checkEnabledOverlay -import com.drdisagree.iconify.utils.overlay.OverlayUtil.getDrawableFromOverlay -import com.drdisagree.iconify.utils.overlay.OverlayUtil.getOverlayForComponent -import com.drdisagree.iconify.utils.overlay.OverlayUtil.getStringFromOverlay -import java.io.IOException -import java.io.InputStream - -class WiFiIcons : BaseFragment() { - - private lateinit var binding: FragmentIconPackBinding - private var loadingDialog: LoadingDialog? = null - val wifiIcons: java.util.ArrayList = ArrayList() - - override fun onCreateView( - inflater: LayoutInflater, - container: ViewGroup?, - savedInstanceState: Bundle? - ): View { - binding = FragmentIconPackBinding.inflate(inflater, container, false) - val view: View = binding.getRoot() - - // Header - setHeader( - requireContext(), - getParentFragmentManager(), - binding.header.toolbar, - R.string.activity_title_wifi_icons - ) - - // Loading dialog while enabling or disabling pack - loadingDialog = LoadingDialog(requireContext()) - - // RecyclerView - binding.iconPackContainer.setLayoutManager(LinearLayoutManager(requireContext())) - - binding.iconPackContainer.setAdapter(initIconPackItems()) - binding.iconPackContainer.setHasFixedSize(true) - - return view - } - - private fun initIconPackItems(): IconPackAdapter { - val pack = getOverlayForComponent("WIFI") - for (i in pack.indices) { - if (!pack[i].contains("]")) continue - val pkgName = pack[i].split("]")[1].trim() - val name = getStringFromOverlay(Iconify.appContext, pkgName, "theme_name") ?: "Unknown" - Log.d("WifiIcons", "initIconPackItems: $pkgName | $name") - wifiIcons.add( - IconPackModel( - name, - pkgName, - getDrawableFromOverlay(Iconify.appContext, pkgName, "ic_wifi_signal_1"), - getDrawableFromOverlay(Iconify.appContext, pkgName, "ic_wifi_signal_2"), - getDrawableFromOverlay(Iconify.appContext, pkgName, "ic_wifi_signal_3"), - getDrawableFromOverlay(Iconify.appContext, pkgName, "ic_wifi_signal_4"), - pack[i].contains("[x]") - ) - ) - } - wifiIcons.sortBy { it.name } - - return IconPackAdapter( - requireContext(), - wifiIcons, - loadingDialog!!, - "WIFI", - onButtonClick - ) - } - - private val onButtonClick = object : IconPackAdapter.OnButtonClick { - - override fun onEnableClick(position: Int, item: IconPackModel) { - disableIcons() - putBoolean(item.packageName, true) - val pkgName = checkEnabledOverlay("IPAS") - if (pkgName.isNotEmpty()) { - OverlayUtil.disableOverlay(pkgName) - } - item.packageName?.let { OverlayUtil.enableOverlay(it) } - if (pkgName.isNotEmpty()) { - OverlayUtil.enableOverlay(pkgName, "high") - // Force WiFi Icons - item.packageName?.let { OverlayUtil.enableOverlay(it) } - // get and set signal icon - val signalPack = checkEnabledOverlay("SGIC") - if (signalPack.isNotEmpty()) { - OverlayUtil.enableOverlay(signalPack) - } - } - } - - override fun onDisableClick(position: Int, item: IconPackModel) { - disableIcons() - } - } - - private fun disableIcons() { - for (i in wifiIcons.indices) { - wifiIcons[i].isEnabled = false - putBoolean(wifiIcons[i].packageName, false) - wifiIcons[i].packageName?.let { OverlayUtil.disableOverlay(it) } - } - } - - override fun onDestroy() { - loadingDialog?.dismiss() - - super.onDestroy() - } -} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedBackgroundChip.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedBackgroundChip.kt deleted file mode 100644 index b54d58915..000000000 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedBackgroundChip.kt +++ /dev/null @@ -1,245 +0,0 @@ -package com.drdisagree.iconify.ui.fragments - -import android.annotation.SuppressLint -import android.graphics.Color -import android.os.Build -import android.os.Bundle -import android.os.Handler -import android.os.Looper -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.CompoundButton -import android.widget.LinearLayout -import android.widget.TextView -import androidx.core.content.ContextCompat -import com.drdisagree.iconify.Iconify.Companion.appContext -import com.drdisagree.iconify.Iconify.Companion.appContextLocale -import com.drdisagree.iconify.R -import com.drdisagree.iconify.common.Const.SWITCH_ANIMATION_DELAY -import com.drdisagree.iconify.common.Preferences.CHIP_QSSTATUSICONS_STYLE -import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCKBG_STYLE -import com.drdisagree.iconify.common.Preferences.QSPANEL_STATUSICONSBG_SWITCH -import com.drdisagree.iconify.common.Preferences.STATUSBAR_CLOCKBG_SWITCH -import com.drdisagree.iconify.common.Preferences.STATUSBAR_CLOCK_COLOR_CODE -import com.drdisagree.iconify.common.Preferences.STATUSBAR_CLOCK_COLOR_OPTION -import com.drdisagree.iconify.config.RPrefs -import com.drdisagree.iconify.databinding.FragmentXposedBackgroundChipBinding -import com.drdisagree.iconify.ui.base.BaseFragment -import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader -import com.drdisagree.iconify.utils.SystemUtil -import com.drdisagree.iconify.utils.overlay.OverlayUtil.enableOverlay - -class XposedBackgroundChip : BaseFragment() { - - private lateinit var binding: FragmentXposedBackgroundChipBinding - - override fun onCreateView( - inflater: LayoutInflater, - container: ViewGroup?, - savedInstanceState: Bundle? - ): View { - binding = FragmentXposedBackgroundChipBinding.inflate(inflater, container, false) - val view: View = binding.getRoot() - - // Header - setHeader( - requireContext(), - getParentFragmentManager(), - binding.header.toolbar, - R.string.activity_title_background_chip - ) - - // Statusbar clock Chip - binding.clockBgChip.isSwitchChecked = RPrefs.getBoolean(STATUSBAR_CLOCKBG_SWITCH, false) - binding.clockBgChip.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - RPrefs.putBoolean(STATUSBAR_CLOCKBG_SWITCH, isChecked) - - binding.clockTextColor.setEnabled(isChecked) - binding.clockTextColorPicker.setEnabled(isChecked) - - if (!isChecked) { - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - } - } - - // Statusbar clock chip style - addItemStatusBar(initStatusBarChipStyles()) - refreshBackgroundStatusBar() - - // Statusbar Clock Color - binding.clockTextColor.setEnabled(RPrefs.getBoolean(STATUSBAR_CLOCKBG_SWITCH, false)) - binding.clockTextColor.setSelectedIndex(RPrefs.getInt(STATUSBAR_CLOCK_COLOR_OPTION, 0)) - binding.clockTextColor.setOnItemSelectedListener { index: Int -> - RPrefs.putInt(STATUSBAR_CLOCK_COLOR_OPTION, index) - binding.clockTextColorPicker.visibility = if (index == 2) View.VISIBLE else View.GONE - } - - // Clock Color Picker - binding.clockTextColorPicker.setEnabled( - RPrefs.getBoolean( - STATUSBAR_CLOCKBG_SWITCH, - false - ) - ) - binding.clockTextColorPicker.visibility = - if (RPrefs.getInt(STATUSBAR_CLOCK_COLOR_OPTION, 0) == 2) { - View.VISIBLE - } else { - View.GONE - } - binding.clockTextColorPicker.setColorPickerListener( - activity = requireActivity(), - defaultColor = RPrefs.getInt(STATUSBAR_CLOCK_COLOR_CODE, Color.WHITE), - showPresets = true, - showAlphaSlider = true, - showColorShades = true - ) - binding.clockTextColorPicker.setOnColorSelectedListener { color: Int -> - binding.clockTextColorPicker.previewColor = color - RPrefs.putInt(STATUSBAR_CLOCK_COLOR_CODE, color) - } - - // Status icons chip - binding.statusIconsChip.isSwitchChecked = - RPrefs.getBoolean(QSPANEL_STATUSICONSBG_SWITCH, false) - binding.statusIconsChip.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - RPrefs.putBoolean(QSPANEL_STATUSICONSBG_SWITCH, isChecked) - - Handler(Looper.getMainLooper()).postDelayed({ - enableOverlay("IconifyComponentIXCC.overlay") - - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - }, SWITCH_ANIMATION_DELAY) - } - - // Status icons chip style - addItemStatusIcons(initStatusIconsChipStyles()) - refreshBackgroundStatusIcons() - - return view - } - - private fun initStatusBarChipStyles(): ArrayList> { - val statusBarChipStyle = ArrayList>().apply { - add(arrayOf(R.drawable.chip_status_bar_1, String.format(appContextLocale.resources.getString(R.string.style), 1))) - add(arrayOf(R.drawable.chip_status_bar_2, String.format(appContextLocale.resources.getString(R.string.style), 2))) - add(arrayOf(R.drawable.chip_status_bar_3, String.format(appContextLocale.resources.getString(R.string.style), 3))) - add(arrayOf(R.drawable.chip_status_bar_4, String.format(appContextLocale.resources.getString(R.string.style), 4))) - add(arrayOf(R.drawable.chip_status_bar_5, String.format(appContextLocale.resources.getString(R.string.style), 5))) - add(arrayOf(R.drawable.chip_status_bar_6, String.format(appContextLocale.resources.getString(R.string.style), 6))) - add(arrayOf(R.drawable.chip_status_bar_7, String.format(appContextLocale.resources.getString(R.string.style), 7))) - } - - return statusBarChipStyle - } - - private fun initStatusIconsChipStyles(): ArrayList> { - val statusIconsChipStyle = ArrayList>().apply { - add(arrayOf(R.drawable.chip_status_icons_1, String.format(appContextLocale.resources.getString(R.string.style), 1))) - add(arrayOf(R.drawable.chip_status_icons_2, String.format(appContextLocale.resources.getString(R.string.style), 2))) - add(arrayOf(R.drawable.chip_status_icons_3, String.format(appContextLocale.resources.getString(R.string.style), 3))) - add(arrayOf(R.drawable.chip_status_icons_4, String.format(appContextLocale.resources.getString(R.string.style), 4))) - add(arrayOf(R.drawable.chip_status_icons_5, String.format(appContextLocale.resources.getString(R.string.style), 5))) - add(arrayOf(R.drawable.chip_status_icons_6, String.format(appContextLocale.resources.getString(R.string.style), 6))) - } - - return statusIconsChipStyle - } - - // Function to add new item in list - @SuppressLint("UseCompatLoadingForDrawables") - private fun addItemStatusBar(pack: ArrayList>) { - for (i in pack.indices) { - val list = LayoutInflater.from(requireContext()) - .inflate( - R.layout.view_status_bar_chip, - binding.statusBarChipContainer, - false - ) - - val clockContainer = list.findViewById(R.id.clock_container) - clockContainer.background = ContextCompat.getDrawable(appContext, pack[i][0] as Int) - - val styleName = list.findViewById(R.id.style_name) - styleName.text = pack[i][1] as String - - list.setOnClickListener { - RPrefs.putInt(CHIP_STATUSBAR_CLOCKBG_STYLE, i) - refreshBackgroundStatusBar() - } - - binding.statusBarChipContainer.addView(list) - } - } - - // Function to check for bg drawable changes - private fun refreshBackgroundStatusBar() { - for (i in 0 until binding.statusBarChipContainer.childCount) { - val child = binding.statusBarChipContainer.getChildAt(i) - .findViewById(R.id.list_item_chip) - - val title = child.findViewById(R.id.style_name) - - if (i == RPrefs.getInt(CHIP_STATUSBAR_CLOCKBG_STYLE, 0)) { - title.setTextColor(resources.getColor(R.color.colorAccent, appContext.theme)) - } else { - title.setTextColor(resources.getColor(R.color.textColorSecondary, appContext.theme)) - } - } - } - - // Function to add new item in list - private fun addItemStatusIcons(pack: ArrayList>) { - for (i in pack.indices) { - val list = LayoutInflater.from(requireContext()) - .inflate(R.layout.view_status_icons_chip, binding.statusIconsChipContainer, false) - - val iconContainer = list.findViewById(R.id.clock_container) - iconContainer.background = ContextCompat.getDrawable(appContext, pack[i][0] as Int) - - val styleName = list.findViewById(R.id.style_name) - styleName.text = pack[i][1] as String - - list.setOnClickListener { - RPrefs.putInt(CHIP_QSSTATUSICONS_STYLE, i) - - refreshBackgroundStatusIcons() - - if (RPrefs.getBoolean( - QSPANEL_STATUSICONSBG_SWITCH, - false - ) && Build.VERSION.SDK_INT < 33 - ) { - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.doubleToggleDarkMode() }, - SWITCH_ANIMATION_DELAY - ) - } - } - binding.statusIconsChipContainer.addView(list) - } - } - - // Function to check for bg drawable changes - private fun refreshBackgroundStatusIcons() { - for (i in 0 until binding.statusIconsChipContainer.childCount) { - val child = binding.statusIconsChipContainer.getChildAt(i) - .findViewById(R.id.list_item_chip) - - val title = child.findViewById(R.id.style_name) - - if (i == RPrefs.getInt(CHIP_QSSTATUSICONS_STYLE, 0)) { - title.setTextColor(resources.getColor(R.color.colorAccent, appContext.theme)) - } else { - title.setTextColor(resources.getColor(R.color.textColorSecondary, appContext.theme)) - } - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedBatteryStyle.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedBatteryStyle.kt deleted file mode 100644 index f37bf0cd8..000000000 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedBatteryStyle.kt +++ /dev/null @@ -1,514 +0,0 @@ -package com.drdisagree.iconify.ui.fragments - -import android.graphics.Color -import android.os.Bundle -import android.os.Handler -import android.os.Looper -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.CompoundButton -import com.drdisagree.iconify.R -import com.drdisagree.iconify.common.Const.SWITCH_ANIMATION_DELAY -import com.drdisagree.iconify.common.Preferences.BATTERY_STYLE_CIRCLE -import com.drdisagree.iconify.common.Preferences.BATTERY_STYLE_DEFAULT -import com.drdisagree.iconify.common.Preferences.BATTERY_STYLE_DEFAULT_LANDSCAPE -import com.drdisagree.iconify.common.Preferences.BATTERY_STYLE_DEFAULT_RLANDSCAPE -import com.drdisagree.iconify.common.Preferences.BATTERY_STYLE_DOTTED_CIRCLE -import com.drdisagree.iconify.common.Preferences.BATTERY_STYLE_FILLED_CIRCLE -import com.drdisagree.iconify.common.Preferences.BATTERY_STYLE_LANDSCAPE_BATTERYL -import com.drdisagree.iconify.common.Preferences.BATTERY_STYLE_LANDSCAPE_BATTERYM -import com.drdisagree.iconify.common.Preferences.BATTERY_STYLE_LANDSCAPE_IOS_16 -import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_BLEND_COLOR -import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_CHARGING_COLOR -import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_CHARGING_ICON_MARGIN_LEFT -import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_CHARGING_ICON_MARGIN_RIGHT -import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_CHARGING_ICON_STYLE -import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_CHARGING_ICON_SWITCH -import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_CHARGING_ICON_WIDTH_HEIGHT -import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_DIMENSION -import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_FILL_ALPHA -import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_FILL_COLOR -import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_FILL_GRAD_COLOR -import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_HEIGHT -import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_HIDE_BATTERY -import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_HIDE_PERCENTAGE -import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_INSIDE_PERCENTAGE -import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_LAYOUT_REVERSE -import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_MARGIN_BOTTOM -import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_MARGIN_LEFT -import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_MARGIN_RIGHT -import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_MARGIN_TOP -import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_PERIMETER_ALPHA -import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_POWERSAVE_FILL_COLOR -import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_POWERSAVE_INDICATOR_COLOR -import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_RAINBOW_FILL_COLOR -import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_STYLE -import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_SWAP_PERCENTAGE -import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_WIDTH -import com.drdisagree.iconify.config.RPrefs.getBoolean -import com.drdisagree.iconify.config.RPrefs.getInt -import com.drdisagree.iconify.config.RPrefs.putBoolean -import com.drdisagree.iconify.config.RPrefs.putInt -import com.drdisagree.iconify.databinding.FragmentXposedBatteryStyleBinding -import com.drdisagree.iconify.databinding.ViewXposedBatteryChargingIconBinding -import com.drdisagree.iconify.databinding.ViewXposedBatteryColorBinding -import com.drdisagree.iconify.databinding.ViewXposedBatteryDimensionBinding -import com.drdisagree.iconify.databinding.ViewXposedBatteryMiscBinding -import com.drdisagree.iconify.ui.base.BaseFragment -import com.drdisagree.iconify.ui.utils.ViewHelper.getBatteryDrawables -import com.drdisagree.iconify.ui.utils.ViewHelper.getChargingIcons -import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader -import com.drdisagree.iconify.utils.SystemUtil -import com.google.android.material.slider.Slider - - -class XposedBatteryStyle : BaseFragment() { - - private lateinit var binding: FragmentXposedBatteryStyleBinding - private lateinit var bindingMiscSettings: ViewXposedBatteryMiscBinding - private lateinit var bindingCustomColors: ViewXposedBatteryColorBinding - private lateinit var bindingCustomDimens: ViewXposedBatteryDimensionBinding - private lateinit var bindingChargingIcon: ViewXposedBatteryChargingIconBinding - - override fun onCreateView( - inflater: LayoutInflater, - container: ViewGroup?, - savedInstanceState: Bundle? - ): View { - binding = FragmentXposedBatteryStyleBinding.inflate(inflater, container, false) - bindingMiscSettings = ViewXposedBatteryMiscBinding.bind(binding.getRoot()) - bindingCustomColors = ViewXposedBatteryColorBinding.bind(binding.getRoot()) - bindingCustomDimens = ViewXposedBatteryDimensionBinding.bind(binding.getRoot()) - bindingChargingIcon = ViewXposedBatteryChargingIconBinding.bind(binding.getRoot()) - val view: View = binding.getRoot() - - // Header - setHeader( - requireContext(), - getParentFragmentManager(), - binding.header.toolbar, - R.string.activity_title_battery_style - ) - - // Custom battery style - binding.customBatteryStyle.setSelectedIndex(getInt(CUSTOM_BATTERY_STYLE, 0)) - binding.customBatteryStyle.setDrawable(getBatteryDrawables(requireContext())) - binding.customBatteryStyle.setOnItemClickListener { index: Int -> - selectedBatteryStyle = index - binding.customBatteryStyle.setCurrentValue(index.toString()) - updateLayoutVisibility() - } - selectedBatteryStyle = getInt(CUSTOM_BATTERY_STYLE, 0) - - // Apply battery style - binding.applyBatteryStyle.setOnClickListener { - putInt(CUSTOM_BATTERY_STYLE, selectedBatteryStyle) - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - } - - miscSettings() - customColors() - customDimension() - customChargingIcon() - updateLayoutVisibility() - - return view - } - - private fun miscSettings() { - // Battery width - bindingMiscSettings.batteryWidth.sliderValue = getInt(CUSTOM_BATTERY_WIDTH, 20) - bindingMiscSettings.batteryWidth.setOnSliderChangeListener { slider: Slider, _: Float, _: Boolean -> - putInt( - CUSTOM_BATTERY_WIDTH, - slider.value.toInt() - ) - } - bindingMiscSettings.batteryWidth.setOnSliderTouchListener(object : - Slider.OnSliderTouchListener { - override fun onStartTrackingTouch(slider: Slider) {} - - override fun onStopTrackingTouch(slider: Slider) { - if (selectedBatteryStyle < 3) { - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - } - } - }) - - // Battery height - bindingMiscSettings.batteryHeight.sliderValue = getInt(CUSTOM_BATTERY_HEIGHT, 20) - bindingMiscSettings.batteryHeight.setOnSliderChangeListener { slider: Slider, _: Float, _: Boolean -> - putInt( - CUSTOM_BATTERY_HEIGHT, - slider.value.toInt() - ) - } - bindingMiscSettings.batteryHeight.setOnSliderTouchListener(object : - Slider.OnSliderTouchListener { - override fun onStartTrackingTouch(slider: Slider) {} - - override fun onStopTrackingTouch(slider: Slider) { - if (selectedBatteryStyle < 3) { - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - } - } - }) - - // Hide percentage - bindingMiscSettings.hidePercentage.isSwitchChecked = - getBoolean(CUSTOM_BATTERY_HIDE_PERCENTAGE, false) - bindingMiscSettings.hidePercentage.setSwitchChangeListener { _: CompoundButton?, isSwitchChecked: Boolean -> - putBoolean(CUSTOM_BATTERY_HIDE_PERCENTAGE, isSwitchChecked) - updateLayoutVisibility() - } - - // Inside percentage - bindingMiscSettings.insidePercentage.isSwitchChecked = - getBoolean(CUSTOM_BATTERY_INSIDE_PERCENTAGE, false) - bindingMiscSettings.insidePercentage.setSwitchChangeListener { _: CompoundButton?, isSwitchChecked: Boolean -> - putBoolean( - CUSTOM_BATTERY_INSIDE_PERCENTAGE, - isSwitchChecked - ) - } - - // Hide battery - bindingMiscSettings.hideBattery.isSwitchChecked = - getBoolean(CUSTOM_BATTERY_HIDE_BATTERY, false) - bindingMiscSettings.hideBattery.setSwitchChangeListener { _: CompoundButton?, isSwitchChecked: Boolean -> - putBoolean(CUSTOM_BATTERY_HIDE_BATTERY, isSwitchChecked) - updateLayoutVisibility() - } - - // Reverse layout - bindingMiscSettings.reverseLayout.isSwitchChecked = - getBoolean(CUSTOM_BATTERY_SWAP_PERCENTAGE, false) - bindingMiscSettings.reverseLayout.setSwitchChangeListener { _: CompoundButton?, isSwitchChecked: Boolean -> - putBoolean( - CUSTOM_BATTERY_SWAP_PERCENTAGE, - isSwitchChecked - ) - } - - // Rotate layout - bindingMiscSettings.rotateLayout.isSwitchChecked = - getBoolean(CUSTOM_BATTERY_LAYOUT_REVERSE, false) - bindingMiscSettings.rotateLayout.setSwitchChangeListener { _: CompoundButton?, isSwitchChecked: Boolean -> - putBoolean( - CUSTOM_BATTERY_LAYOUT_REVERSE, - isSwitchChecked - ) - } - } - - private fun customColors() { - // Perimeter alpha - bindingCustomColors.perimeterAlpha.isSwitchChecked = - getBoolean(CUSTOM_BATTERY_PERIMETER_ALPHA, false) - bindingCustomColors.perimeterAlpha.setSwitchChangeListener { _: CompoundButton?, isSwitchChecked: Boolean -> - putBoolean( - CUSTOM_BATTERY_PERIMETER_ALPHA, - isSwitchChecked - ) - } - - // Fill alpha - bindingCustomColors.fillAlpha.isSwitchChecked = - getBoolean(CUSTOM_BATTERY_FILL_ALPHA, false) - bindingCustomColors.fillAlpha.setSwitchChangeListener { _: CompoundButton?, isSwitchChecked: Boolean -> - putBoolean( - CUSTOM_BATTERY_FILL_ALPHA, - isSwitchChecked - ) - } - - // Rainbow color - bindingCustomColors.rainbowColor.isSwitchChecked = - getBoolean(CUSTOM_BATTERY_RAINBOW_FILL_COLOR, false) - bindingCustomColors.rainbowColor.setSwitchChangeListener { _: CompoundButton?, isSwitchChecked: Boolean -> - putBoolean( - CUSTOM_BATTERY_RAINBOW_FILL_COLOR, - isSwitchChecked - ) - } - - // Blend color - bindingCustomColors.blendColor.isSwitchChecked = - getBoolean(CUSTOM_BATTERY_BLEND_COLOR, false) - bindingCustomColors.blendColor.setSwitchChangeListener { _: CompoundButton?, isSwitchChecked: Boolean -> - putBoolean(CUSTOM_BATTERY_BLEND_COLOR, isSwitchChecked) - updateLayoutVisibility() - } - - // Fill color picker - bindingCustomColors.fillColor.setColorPickerListener( - activity = requireActivity(), - defaultColor = getInt(CUSTOM_BATTERY_FILL_COLOR, Color.BLACK), - showPresets = true, - showAlphaSlider = false, - showColorShades = true - ) - bindingCustomColors.fillColor.setOnColorSelectedListener { color: Int -> - putInt( - CUSTOM_BATTERY_FILL_COLOR, - color - ) - } - - // Fill gradient color picker - bindingCustomColors.fillGradientColor.setColorPickerListener( - activity = requireActivity(), - defaultColor = getInt(CUSTOM_BATTERY_FILL_GRAD_COLOR, Color.BLACK), - showPresets = true, - showAlphaSlider = false, - showColorShades = true - ) - bindingCustomColors.fillGradientColor.setOnColorSelectedListener { color: Int -> - putInt( - CUSTOM_BATTERY_FILL_GRAD_COLOR, - color - ) - } - - // Charging fill color picker - bindingCustomColors.chargingFillColor.setColorPickerListener( - activity = requireActivity(), - defaultColor = getInt(CUSTOM_BATTERY_CHARGING_COLOR, Color.BLACK), - showPresets = true, - showAlphaSlider = false, - showColorShades = true - ) - bindingCustomColors.chargingFillColor.setOnColorSelectedListener { color: Int -> - putInt( - CUSTOM_BATTERY_CHARGING_COLOR, - color - ) - } - - // Power save fill color picker - bindingCustomColors.powersaveFillColor.setColorPickerListener( - activity = requireActivity(), - defaultColor = getInt(CUSTOM_BATTERY_POWERSAVE_FILL_COLOR, Color.BLACK), - showPresets = true, - showAlphaSlider = false, - showColorShades = true - ) - bindingCustomColors.powersaveFillColor.setOnColorSelectedListener { color: Int -> - putInt( - CUSTOM_BATTERY_POWERSAVE_FILL_COLOR, - color - ) - } - - // Power save icon color picker - bindingCustomColors.powersaveIconColor.setColorPickerListener( - activity = requireActivity(), - defaultColor = getInt(CUSTOM_BATTERY_POWERSAVE_INDICATOR_COLOR, Color.BLACK), - showPresets = true, - showAlphaSlider = false, - showColorShades = true - ) - bindingCustomColors.powersaveIconColor.setOnColorSelectedListener { color: Int -> - putInt( - CUSTOM_BATTERY_POWERSAVE_INDICATOR_COLOR, - color - ) - } - } - - private fun customDimension() { - // Custom dimensions - bindingCustomDimens.customDimensions.isSwitchChecked = - getBoolean(CUSTOM_BATTERY_DIMENSION, false) - bindingCustomDimens.customDimensions.setSwitchChangeListener { _: CompoundButton?, isSwitchChecked: Boolean -> - putBoolean(CUSTOM_BATTERY_DIMENSION, isSwitchChecked) - updateLayoutVisibility() - } - - // Battery margin left - bindingCustomDimens.batteryMarginLeft.sliderValue = - getInt(CUSTOM_BATTERY_MARGIN_LEFT, 4) - bindingCustomDimens.batteryMarginLeft.setOnSliderChangeListener { slider: Slider, _: Float, _: Boolean -> - putInt( - CUSTOM_BATTERY_MARGIN_LEFT, - slider.value.toInt() - ) - } - - // Battery margin right - bindingCustomDimens.batteryMarginRight.sliderValue = - getInt(CUSTOM_BATTERY_MARGIN_RIGHT, 4) - bindingCustomDimens.batteryMarginRight.setOnSliderChangeListener { slider: Slider, _: Float, _: Boolean -> - putInt( - CUSTOM_BATTERY_MARGIN_RIGHT, - slider.value.toInt() - ) - } - - // Battery margin top - bindingCustomDimens.batteryMarginTop.sliderValue = - getInt(CUSTOM_BATTERY_MARGIN_TOP, 0) - bindingCustomDimens.batteryMarginTop.setOnSliderChangeListener { slider: Slider, _: Float, _: Boolean -> - putInt( - CUSTOM_BATTERY_MARGIN_TOP, - slider.value.toInt() - ) - } - - // Battery margin bottom - bindingCustomDimens.batteryMarginBottom.sliderValue = - getInt(CUSTOM_BATTERY_MARGIN_BOTTOM, 0) - bindingCustomDimens.batteryMarginBottom.setOnSliderChangeListener { slider: Slider, _: Float, _: Boolean -> - putInt( - CUSTOM_BATTERY_MARGIN_BOTTOM, - slider.value.toInt() - ) - } - } - - private fun customChargingIcon() { - // Enable charging icon - bindingChargingIcon.enableChargingIcon.isSwitchChecked = - getBoolean(CUSTOM_BATTERY_CHARGING_ICON_SWITCH, false) - bindingChargingIcon.enableChargingIcon.setSwitchChangeListener { _: CompoundButton?, isSwitchChecked: Boolean -> - putBoolean(CUSTOM_BATTERY_CHARGING_ICON_SWITCH, isSwitchChecked) - updateLayoutVisibility() - } - - // Charging icon style - bindingChargingIcon.chargingIconStyle.setSelectedIndex( - getInt( - CUSTOM_BATTERY_CHARGING_ICON_STYLE, - 0 - ) - ) - bindingChargingIcon.chargingIconStyle.setDrawable(getChargingIcons(requireContext())) - bindingChargingIcon.chargingIconStyle.setCurrentValue( - getInt( - CUSTOM_BATTERY_CHARGING_ICON_STYLE, - 0 - ).toString() - ) - bindingChargingIcon.chargingIconStyle.setOnItemClickListener { index: Int -> - bindingChargingIcon.chargingIconStyle.setCurrentValue(index.toString()) - putInt(CUSTOM_BATTERY_CHARGING_ICON_STYLE, index) - } - - // Charging icon margin left - bindingChargingIcon.chargingIconMarginLeft.sliderValue = - getInt(CUSTOM_BATTERY_CHARGING_ICON_MARGIN_LEFT, 1) - bindingChargingIcon.chargingIconMarginLeft.setOnSliderChangeListener { slider: Slider, _: Float, _: Boolean -> - putInt( - CUSTOM_BATTERY_CHARGING_ICON_MARGIN_LEFT, - slider.value.toInt() - ) - } - - // Charging icon margin right - bindingChargingIcon.chargingIconMarginRight.sliderValue = - getInt(CUSTOM_BATTERY_CHARGING_ICON_MARGIN_RIGHT, 0) - bindingChargingIcon.chargingIconMarginRight.setOnSliderChangeListener { slider: Slider, _: Float, _: Boolean -> - putInt( - CUSTOM_BATTERY_CHARGING_ICON_MARGIN_RIGHT, - slider.value.toInt() - ) - } - - // Charging icon size - bindingChargingIcon.chargingIconSize.sliderValue = - getInt(CUSTOM_BATTERY_CHARGING_ICON_WIDTH_HEIGHT, 14) - bindingChargingIcon.chargingIconSize.setOnSliderChangeListener { slider: Slider, _: Float, _: Boolean -> - putInt( - CUSTOM_BATTERY_CHARGING_ICON_WIDTH_HEIGHT, - slider.value.toInt() - ) - } - } - - private fun updateLayoutVisibility() { - val selectedIndex = selectedBatteryStyle - val batteryStyles = listOf(*resources.getStringArray(R.array.custom_battery_style)) - val showAdvancedCustomizations = - selectedIndex >= batteryStyles.indexOf(getString(R.string.battery_landscape_battery_a)) && - selectedIndex <= batteryStyles.indexOf(getString(R.string.battery_landscape_battery_o)) - val showColorPickers = bindingCustomColors.blendColor.isSwitchChecked - val showRainbowBattery = - batteryStyles.indexOf(getString(R.string.battery_landscape_battery_i)) == selectedIndex || - batteryStyles.indexOf(getString(R.string.battery_landscape_battery_j)) == selectedIndex - val showCommonCustomizations = selectedIndex != 0 - val showBatteryDimensions = - selectedIndex > 2 && bindingCustomDimens.customDimensions.isSwitchChecked - val showPercentage = - selectedIndex != BATTERY_STYLE_DEFAULT && - selectedIndex != BATTERY_STYLE_DEFAULT_LANDSCAPE && - selectedIndex != BATTERY_STYLE_DEFAULT_RLANDSCAPE && - selectedIndex != BATTERY_STYLE_LANDSCAPE_IOS_16 && - selectedIndex != BATTERY_STYLE_LANDSCAPE_BATTERYL && - selectedIndex != BATTERY_STYLE_LANDSCAPE_BATTERYM - val showInsidePercentage = - showPercentage && !bindingMiscSettings.hidePercentage.isSwitchChecked - val showChargingIconCustomization = - selectedIndex > 2 && bindingChargingIcon.enableChargingIcon.isSwitchChecked - val showReverseLayout = selectedIndex > 2 && showInsidePercentage - val circleBattery = selectedIndex == BATTERY_STYLE_CIRCLE || - selectedIndex == BATTERY_STYLE_DOTTED_CIRCLE || - selectedIndex == BATTERY_STYLE_FILLED_CIRCLE - val visibilityAdvanced = if (showAdvancedCustomizations) View.VISIBLE else View.GONE - val visibilityBlendColor = - if (showAdvancedCustomizations || circleBattery) View.VISIBLE else View.GONE - val visibilityColorPickers = - if ((showAdvancedCustomizations || circleBattery) && showColorPickers) View.VISIBLE else View.GONE - val visibilityRainbow = - if ((showAdvancedCustomizations || circleBattery) && showRainbowBattery) View.VISIBLE else View.GONE - val visibilityWh = if (selectedIndex > 2) View.VISIBLE else View.GONE - val visibilityDimensions = if (showBatteryDimensions) View.VISIBLE else View.GONE - val visibilityPercentage = if (showPercentage) View.VISIBLE else View.GONE - val visibilityInsidePercentage = if (showInsidePercentage) View.VISIBLE else View.GONE - val visibilityReverseLayout = if (showReverseLayout) View.VISIBLE else View.GONE - val visibilityChargingIconSwitch = if (selectedIndex > 2) View.VISIBLE else View.GONE - val visibilityChargingIconCustomization = - if (showChargingIconCustomization) View.VISIBLE else View.GONE - - // Misc settings - bindingMiscSettings.batteryWidth.setEnabled(showCommonCustomizations) - bindingMiscSettings.batteryHeight.setEnabled(showCommonCustomizations) - bindingMiscSettings.hidePercentage.visibility = visibilityPercentage - bindingMiscSettings.insidePercentage.visibility = visibilityInsidePercentage - bindingMiscSettings.hideBattery.visibility = visibilityChargingIconSwitch - bindingMiscSettings.reverseLayout.visibility = visibilityReverseLayout - bindingMiscSettings.rotateLayout.visibility = visibilityAdvanced - - // Custom colors - bindingCustomColors.perimeterAlpha.visibility = visibilityAdvanced - bindingCustomColors.fillAlpha.visibility = visibilityAdvanced - bindingCustomColors.rainbowColor.visibility = visibilityRainbow - bindingCustomColors.blendColor.visibility = visibilityBlendColor - bindingCustomColors.colorPickers.visibility = visibilityColorPickers - - // Custom dimensions - bindingCustomDimens.customDimensions.visibility = visibilityWh - bindingCustomDimens.batteryMarginLeft.visibility = visibilityDimensions - bindingCustomDimens.batteryMarginTop.visibility = visibilityDimensions - bindingCustomDimens.batteryMarginRight.visibility = visibilityDimensions - bindingCustomDimens.batteryMarginBottom.visibility = visibilityDimensions - - // Custom charging icon - bindingChargingIcon.enableChargingIcon.visibility = visibilityChargingIconSwitch - bindingChargingIcon.chargingIconCustContainer.visibility = - visibilityChargingIconCustomization - } - - companion object { - private var selectedBatteryStyle = 0 - } -} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedDepthWallpaper.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedDepthWallpaper.kt deleted file mode 100644 index bf1282720..000000000 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedDepthWallpaper.kt +++ /dev/null @@ -1,362 +0,0 @@ -package com.drdisagree.iconify.ui.fragments - -import android.app.Activity -import android.os.Build -import android.os.Bundle -import android.os.Handler -import android.os.Looper -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.CompoundButton -import android.widget.Toast -import androidx.activity.result.ActivityResult -import androidx.activity.result.contract.ActivityResultContracts -import com.drdisagree.iconify.Iconify.Companion.appContext -import com.drdisagree.iconify.Iconify.Companion.appContextLocale -import com.drdisagree.iconify.R -import com.drdisagree.iconify.common.Const.SWITCH_ANIMATION_DELAY -import com.drdisagree.iconify.common.Preferences.CUSTOM_DEPTH_WALLPAPER_SWITCH -import com.drdisagree.iconify.common.Preferences.DEPTH_WALLPAPER_BACKGROUND_MOVEMENT_MULTIPLIER -import com.drdisagree.iconify.common.Preferences.DEPTH_WALLPAPER_CHANGED -import com.drdisagree.iconify.common.Preferences.DEPTH_WALLPAPER_FADE_ANIMATION -import com.drdisagree.iconify.common.Preferences.DEPTH_WALLPAPER_FOREGROUND_ALPHA -import com.drdisagree.iconify.common.Preferences.DEPTH_WALLPAPER_FOREGROUND_MOVEMENT_MULTIPLIER -import com.drdisagree.iconify.common.Preferences.DEPTH_WALLPAPER_ON_AOD -import com.drdisagree.iconify.common.Preferences.DEPTH_WALLPAPER_PARALLAX_EFFECT -import com.drdisagree.iconify.common.Preferences.DEPTH_WALLPAPER_SWITCH -import com.drdisagree.iconify.common.Preferences.UNZOOM_DEPTH_WALLPAPER -import com.drdisagree.iconify.common.Resources.DEPTH_WALL_BG_DIR -import com.drdisagree.iconify.common.Resources.DEPTH_WALL_FG_DIR -import com.drdisagree.iconify.config.RPrefs -import com.drdisagree.iconify.config.RPrefs.getBoolean -import com.drdisagree.iconify.config.RPrefs.getInt -import com.drdisagree.iconify.config.RPrefs.putBoolean -import com.drdisagree.iconify.config.RPrefs.putInt -import com.drdisagree.iconify.databinding.FragmentXposedDepthWallpaperBinding -import com.drdisagree.iconify.ui.base.BaseFragment -import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader -import com.drdisagree.iconify.utils.FileUtil.getRealPath -import com.drdisagree.iconify.utils.FileUtil.moveToIconifyHiddenDir -import com.drdisagree.iconify.utils.SystemUtil -import com.drdisagree.iconify.xposed.modules.utils.BitmapSubjectSegmenter -import com.google.android.gms.common.moduleinstall.ModuleAvailabilityResponse -import com.google.android.material.slider.Slider - - -class XposedDepthWallpaper : BaseFragment() { - - private lateinit var binding: FragmentXposedDepthWallpaperBinding - - private var intentForegroundImage = registerForActivityResult( - ActivityResultContracts.StartActivityForResult() - ) { result: ActivityResult -> - if (result.resultCode == Activity.RESULT_OK) { - val data = result.data - val path = getRealPath(data) - - if (path != null && moveToIconifyHiddenDir(path, DEPTH_WALL_FG_DIR)) { - putBoolean( - DEPTH_WALLPAPER_CHANGED, - !binding.depthWallpaper.isSwitchChecked - ) - putBoolean( - DEPTH_WALLPAPER_CHANGED, - binding.depthWallpaper.isSwitchChecked - ) - - Toast.makeText( - appContext, - appContextLocale.resources.getString(R.string.toast_selected_successfully), - Toast.LENGTH_SHORT - ).show() - } else { - Toast.makeText( - appContext, - appContextLocale.resources.getString(R.string.toast_rename_file), - Toast.LENGTH_SHORT - ).show() - } - } - } - - private var intentBackgroundImage = registerForActivityResult( - ActivityResultContracts.StartActivityForResult() - ) { result: ActivityResult -> - if (result.resultCode == Activity.RESULT_OK) { - val data = result.data - val path = getRealPath(data) - - if (path != null && moveToIconifyHiddenDir(path, DEPTH_WALL_BG_DIR)) { - putBoolean( - DEPTH_WALLPAPER_CHANGED, - !binding.depthWallpaper.isSwitchChecked - ) - putBoolean( - DEPTH_WALLPAPER_CHANGED, - binding.depthWallpaper.isSwitchChecked - ) - - Toast.makeText( - appContext, - appContextLocale.resources.getString(R.string.toast_selected_successfully), - Toast.LENGTH_SHORT - ).show() - } else { - Toast.makeText( - appContext, - appContextLocale.resources.getString(R.string.toast_rename_file), - Toast.LENGTH_SHORT - ).show() - } - } - } - - override fun onCreateView( - inflater: LayoutInflater, - container: ViewGroup?, - savedInstanceState: Bundle? - ): View { - binding = FragmentXposedDepthWallpaperBinding.inflate(inflater, container, false) - val view: View = binding.getRoot() - - // Header - setHeader( - requireContext(), - getParentFragmentManager(), - binding.header.toolbar, - R.string.activity_title_depth_wallpaper - ) - - // Enable depth wallpaper - binding.depthWallpaper.isSwitchChecked = getBoolean(DEPTH_WALLPAPER_SWITCH, false) - binding.depthWallpaper.setSwitchChangeListener { _: CompoundButton?, isSwitchChecked: Boolean -> - putBoolean(DEPTH_WALLPAPER_SWITCH, isSwitchChecked) - updateEnabledState() - - if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.TIRAMISU) { - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - } - } - if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.TIRAMISU) { - binding.depthWallpaper.setSummary( - getString( - R.string.enable_depth_wallpaper_desc, - getString(R.string.use_custom_lockscreen_clock) - ) - ) - } else { - BitmapSubjectSegmenter(requireContext()) - .checkModelAvailability { moduleAvailabilityResponse: ModuleAvailabilityResponse? -> - binding.depthWallpaper.setSummary( - getString( - R.string.enable_depth_wallpaper_desc, - getString( - if (moduleAvailabilityResponse?.areModulesAvailable() == true) { - R.string.depth_wallpaper_model_ready - } else { - R.string.depth_wallpaper_model_not_available - } - ) - ) - ) - } - } - - // Custom depth wallpaper - binding.customDepthWallpaper.visibility = - if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.TIRAMISU) { - View.GONE - } else { - View.VISIBLE - } - binding.customDepthWallpaper.isSwitchChecked = getBoolean( - CUSTOM_DEPTH_WALLPAPER_SWITCH, - false - ) - binding.customDepthWallpaper.setSwitchChangeListener { _: CompoundButton?, isSwitchChecked: Boolean -> - putBoolean(CUSTOM_DEPTH_WALLPAPER_SWITCH, isSwitchChecked) - updateEnabledState() - } - - // Foreground image - binding.foregroundImage.setEnabled(binding.depthWallpaper.isSwitchChecked) - binding.foregroundImage.setActivityResultLauncher(intentForegroundImage) - - // Background image - binding.backgroundImage.setEnabled(binding.depthWallpaper.isSwitchChecked) - binding.backgroundImage.setActivityResultLauncher(intentBackgroundImage) - - // Foreground alpha - binding.foregroundAlpha.setEnabled(binding.depthWallpaper.isSwitchChecked) - binding.foregroundAlpha.sliderValue = getInt(DEPTH_WALLPAPER_FOREGROUND_ALPHA, 80) - binding.foregroundAlpha.setOnSliderTouchListener(object : Slider.OnSliderTouchListener { - override fun onStartTrackingTouch(slider: Slider) {} - - override fun onStopTrackingTouch(slider: Slider) { - putInt(DEPTH_WALLPAPER_FOREGROUND_ALPHA, slider.value.toInt()) - } - }) - - // Show on AOD - binding.depthWallpaperOnAod.visibility = - if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.TIRAMISU) { - View.GONE - } else { - View.VISIBLE - } - binding.depthWallpaperOnAod.setEnabled(binding.depthWallpaper.isSwitchChecked) - binding.depthWallpaperOnAod.isSwitchChecked = getBoolean(DEPTH_WALLPAPER_ON_AOD, true) - binding.depthWallpaperOnAod.setSwitchChangeListener { _: CompoundButton?, isSwitchChecked: Boolean -> - putBoolean(DEPTH_WALLPAPER_ON_AOD, isSwitchChecked) - } - - // Fade animation - binding.wallpaperFadeAnimation.visibility = - if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.TIRAMISU) { - View.VISIBLE - } else { - View.GONE - } - binding.wallpaperFadeAnimation.setEnabled(binding.depthWallpaper.isSwitchChecked) - binding.wallpaperFadeAnimation.isSwitchChecked = - getBoolean(DEPTH_WALLPAPER_FADE_ANIMATION, false) - binding.wallpaperFadeAnimation.setSwitchChangeListener { _: CompoundButton?, isSwitchChecked: Boolean -> - putBoolean(DEPTH_WALLPAPER_FADE_ANIMATION, isSwitchChecked) - } - - // Parallax effect - binding.parallaxEffect.visibility = - if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.TIRAMISU) { - View.VISIBLE - } else { - View.GONE - } - binding.parallaxEffect.setEnabled(binding.depthWallpaper.isSwitchChecked) - binding.parallaxEffect.isSwitchChecked = getBoolean(DEPTH_WALLPAPER_PARALLAX_EFFECT, false) - binding.parallaxEffect.setSwitchChangeListener { _: CompoundButton?, isSwitchChecked: Boolean -> - putBoolean(DEPTH_WALLPAPER_PARALLAX_EFFECT, isSwitchChecked) - updateEnabledState() - } - - // Foreground sensitivity - binding.foregroundSensitivity.sliderValue = RPrefs.getFloat( - DEPTH_WALLPAPER_FOREGROUND_MOVEMENT_MULTIPLIER, - 3.0f - ).toInt() - binding.foregroundSensitivity.setOnSliderTouchListener(object : - Slider.OnSliderTouchListener { - override fun onStartTrackingTouch(slider: Slider) {} - - override fun onStopTrackingTouch(slider: Slider) { - RPrefs.putFloat(DEPTH_WALLPAPER_FOREGROUND_MOVEMENT_MULTIPLIER, slider.value) - } - }) - binding.foregroundSensitivity.setResetClickListener { - RPrefs.clearPref(DEPTH_WALLPAPER_FOREGROUND_MOVEMENT_MULTIPLIER) - true - } - - // Background sensitivity - binding.backgroundSensitivity.sliderValue = RPrefs.getFloat( - DEPTH_WALLPAPER_BACKGROUND_MOVEMENT_MULTIPLIER, - 1.0f - ).toInt() - binding.backgroundSensitivity.setOnSliderTouchListener(object : - Slider.OnSliderTouchListener { - override fun onStartTrackingTouch(slider: Slider) {} - - override fun onStopTrackingTouch(slider: Slider) { - RPrefs.putFloat(DEPTH_WALLPAPER_BACKGROUND_MOVEMENT_MULTIPLIER, slider.value) - } - }) - binding.backgroundSensitivity.setResetClickListener { - RPrefs.clearPref(DEPTH_WALLPAPER_BACKGROUND_MOVEMENT_MULTIPLIER) - true - } - - // Unzoom depth wallpaper - binding.unzoomDepthWallpaper.isSwitchChecked = getBoolean(UNZOOM_DEPTH_WALLPAPER, false) - binding.unzoomDepthWallpaper.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(UNZOOM_DEPTH_WALLPAPER, isChecked) - - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.restartSystemUI() }, - SWITCH_ANIMATION_DELAY - ) - } - - updateEnabledState() - - return view - } - - private fun updateEnabledState() { - val isDepthWallpaperEnabled = binding.depthWallpaper.isSwitchChecked - - binding.customDepthWallpaper.setEnabled(isDepthWallpaperEnabled) - binding.depthWallpaperOnAod.setEnabled(isDepthWallpaperEnabled) - binding.wallpaperFadeAnimation.setEnabled(isDepthWallpaperEnabled) - binding.foregroundImage.setEnabled(isDepthWallpaperEnabled) - binding.backgroundImage.setEnabled(isDepthWallpaperEnabled) - binding.foregroundAlpha.setEnabled(isDepthWallpaperEnabled) - binding.parallaxEffect.setEnabled(isDepthWallpaperEnabled) - binding.foregroundSensitivity.setEnabled(isDepthWallpaperEnabled) - binding.backgroundSensitivity.setEnabled(isDepthWallpaperEnabled) - binding.unzoomDepthWallpaper.setEnabled(isDepthWallpaperEnabled) - - val isBelowA14Feature = Build.VERSION.SDK_INT <= Build.VERSION_CODES.TIRAMISU - - binding.wallpaperFadeAnimation.visibility = if (isBelowA14Feature) { - View.VISIBLE - } else { - View.GONE - } - binding.parallaxEffect.visibility = if (isBelowA14Feature) { - View.VISIBLE - } else { - View.GONE - } - binding.unzoomDepthWallpaper.visibility = if (isBelowA14Feature) { - View.VISIBLE - } else { - View.GONE - } - binding.depthWallpaperOnAod.visibility = if (isBelowA14Feature) { - View.GONE - } else { - View.VISIBLE - } - - val isParallaxEffectEnabled = binding.parallaxEffect.isSwitchChecked - && isBelowA14Feature - - binding.backgroundSensitivity.visibility = if (isParallaxEffectEnabled) { - View.VISIBLE - } else { - View.GONE - } - binding.foregroundSensitivity.visibility = if (isParallaxEffectEnabled) { - View.VISIBLE - } else { - View.GONE - } - - val isImagePickersEnabled = binding.customDepthWallpaper.isSwitchChecked - || isBelowA14Feature - - binding.foregroundImage.visibility = if (isImagePickersEnabled) { - View.VISIBLE - } else { - View.GONE - } - binding.backgroundImage.visibility = if (isImagePickersEnabled) { - View.VISIBLE - } else { - View.GONE - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedHeaderClock.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedHeaderClock.kt deleted file mode 100644 index 20c939d37..000000000 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedHeaderClock.kt +++ /dev/null @@ -1,410 +0,0 @@ -package com.drdisagree.iconify.ui.fragments - -import android.annotation.SuppressLint -import android.app.Activity -import android.graphics.Color -import android.os.Bundle -import android.os.Handler -import android.os.Looper -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.CompoundButton -import android.widget.Toast -import androidx.activity.result.ActivityResult -import androidx.activity.result.contract.ActivityResultContracts -import androidx.core.content.ContextCompat -import androidx.recyclerview.widget.LinearSnapHelper -import androidx.recyclerview.widget.RecyclerView -import androidx.recyclerview.widget.SnapHelper -import com.drdisagree.iconify.BuildConfig -import com.drdisagree.iconify.Iconify.Companion.appContext -import com.drdisagree.iconify.Iconify.Companion.appContextLocale -import com.drdisagree.iconify.R -import com.drdisagree.iconify.common.Const.SWITCH_ANIMATION_DELAY -import com.drdisagree.iconify.common.Preferences.HEADER_CLOCK_CENTERED -import com.drdisagree.iconify.common.Preferences.HEADER_CLOCK_COLOR_CODE_ACCENT1 -import com.drdisagree.iconify.common.Preferences.HEADER_CLOCK_COLOR_CODE_ACCENT2 -import com.drdisagree.iconify.common.Preferences.HEADER_CLOCK_COLOR_CODE_ACCENT3 -import com.drdisagree.iconify.common.Preferences.HEADER_CLOCK_COLOR_CODE_TEXT1 -import com.drdisagree.iconify.common.Preferences.HEADER_CLOCK_COLOR_CODE_TEXT2 -import com.drdisagree.iconify.common.Preferences.HEADER_CLOCK_COLOR_SWITCH -import com.drdisagree.iconify.common.Preferences.HEADER_CLOCK_FONT_SWITCH -import com.drdisagree.iconify.common.Preferences.HEADER_CLOCK_FONT_TEXT_SCALING -import com.drdisagree.iconify.common.Preferences.HEADER_CLOCK_LANDSCAPE_SWITCH -import com.drdisagree.iconify.common.Preferences.HEADER_CLOCK_SIDEMARGIN -import com.drdisagree.iconify.common.Preferences.HEADER_CLOCK_STYLE -import com.drdisagree.iconify.common.Preferences.HEADER_CLOCK_SWITCH -import com.drdisagree.iconify.common.Preferences.HEADER_CLOCK_TOPMARGIN -import com.drdisagree.iconify.common.Resources.HEADER_CLOCK_FONT_DIR -import com.drdisagree.iconify.common.Resources.HEADER_CLOCK_LAYOUT -import com.drdisagree.iconify.config.RPrefs.clearPref -import com.drdisagree.iconify.config.RPrefs.clearPrefs -import com.drdisagree.iconify.config.RPrefs.getBoolean -import com.drdisagree.iconify.config.RPrefs.getInt -import com.drdisagree.iconify.config.RPrefs.putBoolean -import com.drdisagree.iconify.config.RPrefs.putInt -import com.drdisagree.iconify.databinding.FragmentXposedHeaderClockBinding -import com.drdisagree.iconify.ui.adapters.ClockPreviewAdapter -import com.drdisagree.iconify.ui.base.BaseFragment -import com.drdisagree.iconify.ui.models.ClockModel -import com.drdisagree.iconify.ui.utils.CarouselLayoutManager -import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader -import com.drdisagree.iconify.utils.FileUtil.getRealPath -import com.drdisagree.iconify.utils.FileUtil.moveToIconifyHiddenDir -import com.drdisagree.iconify.utils.SystemUtil -import com.google.android.material.slider.Slider - -class XposedHeaderClock : BaseFragment() { - - private lateinit var binding: FragmentXposedHeaderClockBinding - private var totalClocks: Int = 1 - - private var startActivityIntent = registerForActivityResult( - ActivityResultContracts.StartActivityForResult() - ) { result: ActivityResult -> - if (result.resultCode == Activity.RESULT_OK) { - val data = result.data - val path = getRealPath(data) - - if (path != null && moveToIconifyHiddenDir(path, HEADER_CLOCK_FONT_DIR)) { - binding.headerClockFont.setEnableButtonVisibility(View.VISIBLE) - } else { - Toast.makeText( - appContext, - appContextLocale.resources.getString(R.string.toast_rename_file), - Toast.LENGTH_SHORT - ).show() - } - } - } - - override fun onCreateView( - inflater: LayoutInflater, - container: ViewGroup?, - savedInstanceState: Bundle? - ): View { - binding = FragmentXposedHeaderClockBinding.inflate(inflater, container, false) - val view: View = binding.getRoot() - - // Header - setHeader( - requireContext(), - getParentFragmentManager(), - binding.header.toolbar, - R.string.activity_title_header_clock - ) - - // Enable header clock - binding.enableHeaderClock.isSwitchChecked = getBoolean(HEADER_CLOCK_SWITCH, false) - binding.enableHeaderClock.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(HEADER_CLOCK_SWITCH, isChecked) - updateEnabled(isChecked) - - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - } - updateEnabled(getBoolean(HEADER_CLOCK_SWITCH, false)) - - // Header clock style - val snapHelper: SnapHelper = LinearSnapHelper() - val carouselLayoutManager = CarouselLayoutManager( - requireContext(), - RecyclerView.HORIZONTAL, - false - ) - carouselLayoutManager.setMinifyDistance(0.8f) - - binding.rvHeaderClockPreview.setLayoutManager(carouselLayoutManager) - binding.rvHeaderClockPreview.setAdapter(initHeaderClockStyles()) - binding.rvHeaderClockPreview.setHasFixedSize(true) - snapHelper.attachToRecyclerView(binding.rvHeaderClockPreview) - - // if index exceeds limit, set to highest available - var headerClockStyle = getInt(HEADER_CLOCK_STYLE, 0) - if (headerClockStyle >= totalClocks) { - headerClockStyle = totalClocks - 1 - putInt(HEADER_CLOCK_STYLE, headerClockStyle) - } - binding.rvHeaderClockPreview.scrollToPosition(headerClockStyle) - - // Lockscreen clock font picker - binding.headerClockFont.setActivityResultLauncher(startActivityIntent) - binding.headerClockFont.setDisableButtonVisibility( - if (getBoolean( - HEADER_CLOCK_FONT_SWITCH, - false - ) - ) View.VISIBLE else View.GONE - ) - binding.headerClockFont.setEnableButtonOnClickListener { - putBoolean(HEADER_CLOCK_FONT_SWITCH, false) - putBoolean(HEADER_CLOCK_FONT_SWITCH, true) - - binding.headerClockFont.setEnableButtonVisibility(View.GONE) - binding.headerClockFont.setDisableButtonVisibility(View.VISIBLE) - } - binding.headerClockFont.setDisableButtonOnClickListener { - putBoolean(HEADER_CLOCK_FONT_SWITCH, false) - - binding.headerClockFont.setDisableButtonVisibility(View.GONE) - } - - // Custom clock color - binding.headerClockCustomColor.isSwitchChecked = - getBoolean(HEADER_CLOCK_COLOR_SWITCH, false) - binding.headerClockCustomColor.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(HEADER_CLOCK_COLOR_SWITCH, isChecked) - - clearPrefs( - HEADER_CLOCK_COLOR_CODE_ACCENT1, - HEADER_CLOCK_COLOR_CODE_ACCENT2, - HEADER_CLOCK_COLOR_CODE_ACCENT3, - HEADER_CLOCK_COLOR_CODE_TEXT1, - HEADER_CLOCK_COLOR_CODE_TEXT2 - ) - - binding.headerClockColorPicker.visibility = if (isChecked) View.VISIBLE else View.GONE - - if (!isChecked) { - binding.colorPickerAccent1.previewColor = ContextCompat.getColor( - requireContext(), - android.R.color.system_accent1_300 - ) - binding.colorPickerAccent2.previewColor = ContextCompat.getColor( - requireContext(), - android.R.color.system_accent2_300 - ) - binding.colorPickerAccent3.previewColor = ContextCompat.getColor( - requireContext(), - android.R.color.system_accent3_300 - ) - - binding.colorPickerText1.previewColor = Color.WHITE - binding.colorPickerText2.previewColor = Color.BLACK - } - } - binding.headerClockColorPicker.visibility = - if (getBoolean(HEADER_CLOCK_COLOR_SWITCH, false)) { - View.VISIBLE - } else { - View.GONE - } - - // Clock color picker accent 1 - binding.colorPickerAccent1.setColorPickerListener( - activity = requireActivity(), - defaultColor = getInt( - HEADER_CLOCK_COLOR_CODE_ACCENT1, - ContextCompat.getColor( - requireContext(), - android.R.color.system_accent1_300 - ) - ), - showPresets = true, - showAlphaSlider = true, - showColorShades = true - ) - binding.colorPickerAccent1.setOnColorSelectedListener { color: Int -> - binding.colorPickerAccent1.previewColor = color - - putInt(HEADER_CLOCK_COLOR_CODE_ACCENT1, color) - } - - // Clock color picker accent 2 - binding.colorPickerAccent2.setColorPickerListener( - activity = requireActivity(), - defaultColor = getInt( - HEADER_CLOCK_COLOR_CODE_ACCENT2, - ContextCompat.getColor( - requireContext(), - android.R.color.system_accent2_300 - ) - ), - showPresets = true, - showAlphaSlider = true, - showColorShades = true - ) - binding.colorPickerAccent2.setOnColorSelectedListener { color: Int -> - binding.colorPickerAccent2.previewColor = color - - putInt(HEADER_CLOCK_COLOR_CODE_ACCENT2, color) - } - - // Clock color picker accent 3 - binding.colorPickerAccent3.setColorPickerListener( - activity = requireActivity(), - defaultColor = getInt( - HEADER_CLOCK_COLOR_CODE_ACCENT3, - ContextCompat.getColor( - requireContext(), - android.R.color.system_accent3_300 - ) - ), - showPresets = true, - showAlphaSlider = true, - showColorShades = true - ) - binding.colorPickerAccent3.setOnColorSelectedListener { color: Int -> - binding.colorPickerAccent3.previewColor = color - - putInt(HEADER_CLOCK_COLOR_CODE_ACCENT3, color) - } - - // Clock color picker text 1 - binding.colorPickerText1.setColorPickerListener( - activity = requireActivity(), - defaultColor = getInt( - HEADER_CLOCK_COLOR_CODE_TEXT1, - Color.WHITE - ), - showPresets = true, - showAlphaSlider = true, - showColorShades = true - ) - binding.colorPickerText1.setOnColorSelectedListener { color: Int -> - binding.colorPickerText1.previewColor = color - - putInt(HEADER_CLOCK_COLOR_CODE_TEXT1, color) - } - - // Clock color picker text 2 - binding.colorPickerText2.setColorPickerListener( - activity = requireActivity(), - defaultColor = getInt( - HEADER_CLOCK_COLOR_CODE_TEXT2, - Color.BLACK - ), - showPresets = true, - showAlphaSlider = true, - showColorShades = true - ) - binding.colorPickerText2.setOnColorSelectedListener { color: Int -> - binding.colorPickerText2.previewColor = color - - putInt(HEADER_CLOCK_COLOR_CODE_TEXT2, color) - } - - // Text Scaling - binding.headerClockTextscaling.sliderValue = - getInt(HEADER_CLOCK_FONT_TEXT_SCALING, 10) - binding.headerClockTextscaling.setOnSliderTouchListener(object : - Slider.OnSliderTouchListener { - override fun onStartTrackingTouch(slider: Slider) {} - - override fun onStopTrackingTouch(slider: Slider) { - putInt(HEADER_CLOCK_FONT_TEXT_SCALING, slider.value.toInt()) - } - }) - binding.headerClockTextscaling.setResetClickListener { - clearPref(HEADER_CLOCK_FONT_TEXT_SCALING) - - true - } - - // Header clock side margin - binding.headerClockSideMargin.sliderValue = getInt(HEADER_CLOCK_SIDEMARGIN, 0) - binding.headerClockSideMargin.setOnSliderTouchListener(object : - Slider.OnSliderTouchListener { - override fun onStartTrackingTouch(slider: Slider) {} - - override fun onStopTrackingTouch(slider: Slider) { - putInt(HEADER_CLOCK_SIDEMARGIN, slider.value.toInt()) - } - }) - - // Header clock top margin - binding.headerClockTopMargin.sliderValue = getInt(HEADER_CLOCK_TOPMARGIN, 8) - binding.headerClockTopMargin.setOnSliderTouchListener(object : - Slider.OnSliderTouchListener { - override fun onStartTrackingTouch(slider: Slider) {} - - override fun onStopTrackingTouch(slider: Slider) { - putInt(HEADER_CLOCK_TOPMARGIN, slider.value.toInt()) - } - }) - - // Center clock - binding.centerClock.isSwitchChecked = getBoolean(HEADER_CLOCK_CENTERED, false) - binding.centerClock.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean( - HEADER_CLOCK_CENTERED, - isChecked - ) - } - - // Hide in landscape - binding.hideHeaderClockLandscape.isSwitchChecked = - getBoolean(HEADER_CLOCK_LANDSCAPE_SWITCH, true) - binding.hideHeaderClockLandscape.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean( - HEADER_CLOCK_LANDSCAPE_SWITCH, - isChecked - ) - } - - return view - } - - @SuppressLint("DiscouragedApi") - private fun initHeaderClockStyles(): ClockPreviewAdapter { - val headerClock = ArrayList() - var maxIndex = 0 - - while (requireContext() - .resources - .getIdentifier( - HEADER_CLOCK_LAYOUT + maxIndex, - "layout", - BuildConfig.APPLICATION_ID - ) != 0 - ) { - maxIndex++ - } - - totalClocks = maxIndex - - for (i in 0 until maxIndex) { - headerClock.add( - ClockModel( - if (i == 0) { - requireContext().getString(R.string.clock_none) - } else { - requireContext().getString(R.string.clock_style_name, i) - }, - requireContext() - .resources - .getIdentifier( - HEADER_CLOCK_LAYOUT + i, - "layout", - BuildConfig.APPLICATION_ID - ) - ) - ) - } - - return ClockPreviewAdapter( - requireContext(), - headerClock, - HEADER_CLOCK_SWITCH, - HEADER_CLOCK_STYLE - ) - } - - private fun updateEnabled(enabled: Boolean) { - binding.headerClockFont.setEnabled(enabled) - binding.headerClockCustomColor.setEnabled(enabled) - binding.colorPickerAccent1.setEnabled(enabled) - binding.colorPickerAccent2.setEnabled(enabled) - binding.colorPickerAccent3.setEnabled(enabled) - binding.colorPickerText1.setEnabled(enabled) - binding.colorPickerText2.setEnabled(enabled) - binding.headerClockTextscaling.setEnabled(enabled) - binding.headerClockSideMargin.setEnabled(enabled) - binding.headerClockTopMargin.setEnabled(enabled) - binding.centerClock.setEnabled(enabled) - binding.hideHeaderClockLandscape.setEnabled(enabled) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedHeaderImage.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedHeaderImage.kt deleted file mode 100644 index 0acfad928..000000000 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedHeaderImage.kt +++ /dev/null @@ -1,158 +0,0 @@ -package com.drdisagree.iconify.ui.fragments - -import android.app.Activity -import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.CompoundButton -import android.widget.Toast -import androidx.activity.result.ActivityResult -import androidx.activity.result.contract.ActivityResultContracts -import com.drdisagree.iconify.Iconify.Companion.appContext -import com.drdisagree.iconify.R -import com.drdisagree.iconify.common.Preferences.HEADER_IMAGE_ALPHA -import com.drdisagree.iconify.common.Preferences.HEADER_IMAGE_BOTTOM_FADE_AMOUNT -import com.drdisagree.iconify.common.Preferences.HEADER_IMAGE_HEIGHT -import com.drdisagree.iconify.common.Preferences.HEADER_IMAGE_LANDSCAPE_SWITCH -import com.drdisagree.iconify.common.Preferences.HEADER_IMAGE_SWITCH -import com.drdisagree.iconify.common.Preferences.HEADER_IMAGE_ZOOMTOFIT -import com.drdisagree.iconify.common.Resources.HEADER_IMAGE_DIR -import com.drdisagree.iconify.config.RPrefs.getBoolean -import com.drdisagree.iconify.config.RPrefs.getInt -import com.drdisagree.iconify.config.RPrefs.putBoolean -import com.drdisagree.iconify.config.RPrefs.putInt -import com.drdisagree.iconify.databinding.FragmentXposedHeaderImageBinding -import com.drdisagree.iconify.ui.base.BaseFragment -import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader -import com.drdisagree.iconify.utils.FileUtil.getRealPath -import com.drdisagree.iconify.utils.FileUtil.moveToIconifyHiddenDir -import com.google.android.material.slider.Slider - -class XposedHeaderImage : BaseFragment() { - - private lateinit var binding: FragmentXposedHeaderImageBinding - - private var startActivityIntent = registerForActivityResult( - ActivityResultContracts.StartActivityForResult() - ) { result: ActivityResult -> - if (result.resultCode == Activity.RESULT_OK) { - val data = result.data - val path = getRealPath(data) - - if (path != null && moveToIconifyHiddenDir(path, HEADER_IMAGE_DIR)) { - binding.headerImage.setEnableButtonVisibility(View.VISIBLE) - } else { - Toast.makeText( - appContext, - resources.getString(R.string.toast_rename_file), - Toast.LENGTH_SHORT - ).show() - } - } - } - - override fun onCreateView( - inflater: LayoutInflater, - container: ViewGroup?, - savedInstanceState: Bundle? - ): View { - binding = FragmentXposedHeaderImageBinding.inflate(inflater, container, false) - val view: View = binding.getRoot() - - // Header - setHeader( - requireContext(), - getParentFragmentManager(), - binding.header.toolbar, - R.string.activity_title_header_image - ) - - // Header image picker - binding.headerImage.setActivityResultLauncher(startActivityIntent) - binding.headerImage.setEnableButtonOnClickListener { - putBoolean(HEADER_IMAGE_SWITCH, false) - putBoolean(HEADER_IMAGE_SWITCH, true) - - binding.headerImage.setEnableButtonVisibility(View.GONE) - binding.headerImage.setDisableButtonVisibility(View.VISIBLE) - - updateEnabledState() - } - - binding.headerImage.setDisableButtonVisibility( - if (getBoolean(HEADER_IMAGE_SWITCH, false)) { - View.VISIBLE - } else { - View.GONE - } - ) - - binding.headerImage.setDisableButtonOnClickListener { - putBoolean(HEADER_IMAGE_SWITCH, false) - - binding.headerImage.setDisableButtonVisibility(View.GONE) - - updateEnabledState() - } - - // Image height - binding.headerImageHeight.sliderValue = getInt(HEADER_IMAGE_HEIGHT, 140) - binding.headerImageHeight.setOnSliderTouchListener(object : Slider.OnSliderTouchListener { - override fun onStartTrackingTouch(slider: Slider) {} - - override fun onStopTrackingTouch(slider: Slider) { - putInt(HEADER_IMAGE_HEIGHT, slider.value.toInt()) - } - }) - - // Image alpha - binding.headerImageAlpha.sliderValue = getInt(HEADER_IMAGE_ALPHA, 100) - binding.headerImageAlpha.setOnSliderTouchListener(object : Slider.OnSliderTouchListener { - override fun onStartTrackingTouch(slider: Slider) {} - - override fun onStopTrackingTouch(slider: Slider) { - putInt(HEADER_IMAGE_ALPHA, slider.value.toInt()) - } - }) - - // Image bottom fade amount - binding.headerImageBottomFade.sliderValue = - getInt(HEADER_IMAGE_BOTTOM_FADE_AMOUNT, 40) - binding.headerImageBottomFade.setOnSliderTouchListener(object : - Slider.OnSliderTouchListener { - override fun onStartTrackingTouch(slider: Slider) {} - - override fun onStopTrackingTouch(slider: Slider) { - putInt(HEADER_IMAGE_BOTTOM_FADE_AMOUNT, slider.value.toInt()) - } - }) - - // Header image zoom to fit - binding.zoomToFit.isSwitchChecked = getBoolean(HEADER_IMAGE_ZOOMTOFIT, false) - binding.zoomToFit.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(HEADER_IMAGE_ZOOMTOFIT, isChecked) - } - - // Header image hide in landscape - binding.hideInLandscape.isSwitchChecked = - getBoolean(HEADER_IMAGE_LANDSCAPE_SWITCH, true) - binding.hideInLandscape.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(HEADER_IMAGE_LANDSCAPE_SWITCH, isChecked) - } - - updateEnabledState() - - return view - } - - private fun updateEnabledState() { - val enabled = getBoolean(HEADER_IMAGE_SWITCH, false) - - binding.headerImageHeight.setEnabled(enabled) - binding.headerImageAlpha.setEnabled(enabled) - binding.headerImageBottomFade.setEnabled(enabled) - binding.zoomToFit.setEnabled(enabled) - binding.hideInLandscape.setEnabled(enabled) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenClock.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenClock.kt deleted file mode 100644 index e6976f4ee..000000000 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenClock.kt +++ /dev/null @@ -1,456 +0,0 @@ -package com.drdisagree.iconify.ui.fragments - -import android.annotation.SuppressLint -import android.app.Activity -import android.graphics.Color -import android.os.Bundle -import android.os.Handler -import android.os.Looper -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.CompoundButton -import android.widget.Toast -import androidx.activity.result.ActivityResult -import androidx.activity.result.contract.ActivityResultContracts -import androidx.core.content.ContextCompat -import androidx.recyclerview.widget.LinearSnapHelper -import androidx.recyclerview.widget.RecyclerView -import androidx.recyclerview.widget.SnapHelper -import com.drdisagree.iconify.BuildConfig -import com.drdisagree.iconify.Iconify.Companion.appContext -import com.drdisagree.iconify.Iconify.Companion.appContextLocale -import com.drdisagree.iconify.R -import com.drdisagree.iconify.common.Const.SWITCH_ANIMATION_DELAY -import com.drdisagree.iconify.common.Dynamic.isAtleastA14 -import com.drdisagree.iconify.common.Preferences.LSCLOCK_BOTTOMMARGIN -import com.drdisagree.iconify.common.Preferences.LSCLOCK_COLOR_CODE_ACCENT1 -import com.drdisagree.iconify.common.Preferences.LSCLOCK_COLOR_CODE_ACCENT2 -import com.drdisagree.iconify.common.Preferences.LSCLOCK_COLOR_CODE_ACCENT3 -import com.drdisagree.iconify.common.Preferences.LSCLOCK_COLOR_CODE_TEXT1 -import com.drdisagree.iconify.common.Preferences.LSCLOCK_COLOR_CODE_TEXT2 -import com.drdisagree.iconify.common.Preferences.LSCLOCK_COLOR_SWITCH -import com.drdisagree.iconify.common.Preferences.LSCLOCK_DEVICENAME -import com.drdisagree.iconify.common.Preferences.LSCLOCK_FONT_LINEHEIGHT -import com.drdisagree.iconify.common.Preferences.LSCLOCK_FONT_SWITCH -import com.drdisagree.iconify.common.Preferences.LSCLOCK_FONT_TEXT_SCALING -import com.drdisagree.iconify.common.Preferences.LSCLOCK_STYLE -import com.drdisagree.iconify.common.Preferences.LSCLOCK_SWITCH -import com.drdisagree.iconify.common.Preferences.LSCLOCK_TOPMARGIN -import com.drdisagree.iconify.common.Preferences.LSCLOCK_USERNAME -import com.drdisagree.iconify.common.Resources.LOCKSCREEN_CLOCK_LAYOUT -import com.drdisagree.iconify.common.Resources.LSCLOCK_FONT_DIR -import com.drdisagree.iconify.config.RPrefs.clearPref -import com.drdisagree.iconify.config.RPrefs.clearPrefs -import com.drdisagree.iconify.config.RPrefs.getBoolean -import com.drdisagree.iconify.config.RPrefs.getInt -import com.drdisagree.iconify.config.RPrefs.getString -import com.drdisagree.iconify.config.RPrefs.putBoolean -import com.drdisagree.iconify.config.RPrefs.putInt -import com.drdisagree.iconify.config.RPrefs.putString -import com.drdisagree.iconify.databinding.FragmentXposedLockscreenClockBinding -import com.drdisagree.iconify.ui.adapters.ClockPreviewAdapter -import com.drdisagree.iconify.ui.base.BaseFragment -import com.drdisagree.iconify.ui.dialogs.EditTextDialog -import com.drdisagree.iconify.ui.models.ClockModel -import com.drdisagree.iconify.ui.utils.CarouselLayoutManager -import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader -import com.drdisagree.iconify.utils.FileUtil.getRealPath -import com.drdisagree.iconify.utils.FileUtil.moveToIconifyHiddenDir -import com.drdisagree.iconify.utils.SystemUtil -import com.google.android.material.slider.Slider -import com.topjohnwu.superuser.Shell - -class XposedLockscreenClock : BaseFragment() { - - private lateinit var binding: FragmentXposedLockscreenClockBinding - private var totalClocks: Int = 1 - private var userText: String = "" - private var deviceText: String = "" - - private var startActivityIntent = registerForActivityResult( - ActivityResultContracts.StartActivityForResult() - ) { result: ActivityResult -> - if (result.resultCode == Activity.RESULT_OK) { - val data = result.data - val path = getRealPath(data) - - if (path != null && moveToIconifyHiddenDir(path, LSCLOCK_FONT_DIR)) { - binding.lockscreenClockFont.setEnableButtonVisibility(View.VISIBLE) - } else { - Toast.makeText( - appContext, - appContextLocale.resources.getString(R.string.toast_rename_file), - Toast.LENGTH_SHORT - ).show() - } - } - } - - override fun onCreateView( - inflater: LayoutInflater, - container: ViewGroup?, - savedInstanceState: Bundle? - ): View { - binding = FragmentXposedLockscreenClockBinding.inflate(inflater, container, false) - val view: View = binding.getRoot() - - // Header - setHeader( - requireContext(), - getParentFragmentManager(), - binding.header.toolbar, - R.string.activity_title_lockscreen_clock - ) - - // Enable lockscreen clock - binding.enableLockscreenClock.isSwitchChecked = getBoolean(LSCLOCK_SWITCH, false) - binding.enableLockscreenClock.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - if (isChecked && isAtleastA14) { - Shell.cmd( - "settings put secure lock_screen_custom_clock_face default" - ).exec() - } - - putBoolean(LSCLOCK_SWITCH, isChecked) - - updateEnabled(isChecked) - - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - } - - updateEnabled(getBoolean(LSCLOCK_SWITCH, false)) - - // Lockscreen clock style - val snapHelper: SnapHelper = LinearSnapHelper() - val carouselLayoutManager = CarouselLayoutManager( - requireContext(), - RecyclerView.HORIZONTAL, - false - ) - carouselLayoutManager.setMinifyDistance(0.8f) - - binding.rvLockscreenClockPreview.setLayoutManager(carouselLayoutManager) - binding.rvLockscreenClockPreview.setAdapter(initLockscreenClockStyles()) - binding.rvLockscreenClockPreview.setHasFixedSize(true) - snapHelper.attachToRecyclerView(binding.rvLockscreenClockPreview) - - // if index exceeds limit, set to highest available - var lsClockStyle = getInt(LSCLOCK_STYLE, 0) - if (lsClockStyle >= totalClocks) { - lsClockStyle = totalClocks - 1 - putInt(LSCLOCK_STYLE, lsClockStyle) - } - binding.rvLockscreenClockPreview.scrollToPosition(lsClockStyle) - - // Lockscreen clock font picker - binding.lockscreenClockFont.setActivityResultLauncher(startActivityIntent) - binding.lockscreenClockFont.setDisableButtonVisibility( - if (getBoolean( - LSCLOCK_FONT_SWITCH, - false - ) - ) View.VISIBLE else View.GONE - ) - binding.lockscreenClockFont.setEnableButtonOnClickListener { - putBoolean(LSCLOCK_FONT_SWITCH, false) - putBoolean(LSCLOCK_FONT_SWITCH, true) - - binding.lockscreenClockFont.setEnableButtonVisibility(View.GONE) - binding.lockscreenClockFont.setDisableButtonVisibility(View.VISIBLE) - } - binding.lockscreenClockFont.setDisableButtonOnClickListener { - putBoolean(LSCLOCK_FONT_SWITCH, false) - - binding.lockscreenClockFont.setDisableButtonVisibility(View.GONE) - } - - // Custom clock color - binding.lsClockCustomColor.isSwitchChecked = - getBoolean(LSCLOCK_COLOR_SWITCH, false) - binding.lsClockCustomColor.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(LSCLOCK_COLOR_SWITCH, isChecked) - - clearPrefs( - LSCLOCK_COLOR_CODE_ACCENT1, - LSCLOCK_COLOR_CODE_ACCENT2, - LSCLOCK_COLOR_CODE_ACCENT3, - LSCLOCK_COLOR_CODE_TEXT1, - LSCLOCK_COLOR_CODE_TEXT2 - ) - - binding.lsClockColorPicker.visibility = if (isChecked) View.VISIBLE else View.GONE - - if (!isChecked) { - binding.colorPickerAccent1.previewColor = ContextCompat.getColor( - requireContext(), - android.R.color.system_accent1_300 - ) - binding.colorPickerAccent2.previewColor = ContextCompat.getColor( - requireContext(), - android.R.color.system_accent2_300 - ) - binding.colorPickerAccent3.previewColor = ContextCompat.getColor( - requireContext(), - android.R.color.system_accent3_300 - ) - - binding.colorPickerText1.previewColor = Color.WHITE - binding.colorPickerText2.previewColor = Color.BLACK - } - } - binding.lsClockColorPicker.visibility = - if (getBoolean(LSCLOCK_COLOR_SWITCH, false)) View.VISIBLE else View.GONE - - // Clock color picker accent 1 - binding.colorPickerAccent1.setColorPickerListener( - activity = requireActivity(), - defaultColor = getInt( - LSCLOCK_COLOR_CODE_ACCENT1, - ContextCompat.getColor( - requireContext(), - android.R.color.system_accent1_300 - ) - ), - showPresets = true, - showAlphaSlider = true, - showColorShades = true - ) - binding.colorPickerAccent1.setOnColorSelectedListener { color: Int -> - binding.colorPickerAccent1.previewColor = color - - putInt(LSCLOCK_COLOR_CODE_ACCENT1, color) - } - - // Clock color picker accent 2 - binding.colorPickerAccent2.setColorPickerListener( - activity = requireActivity(), - defaultColor = getInt( - LSCLOCK_COLOR_CODE_ACCENT2, - ContextCompat.getColor( - requireContext(), - android.R.color.system_accent2_300 - ) - ), - showPresets = true, - showAlphaSlider = true, - showColorShades = true - ) - binding.colorPickerAccent2.setOnColorSelectedListener { color: Int -> - binding.colorPickerAccent2.previewColor = color - - putInt(LSCLOCK_COLOR_CODE_ACCENT2, color) - } - - // Clock color picker accent 3 - binding.colorPickerAccent3.setColorPickerListener( - activity = requireActivity(), - defaultColor = getInt( - LSCLOCK_COLOR_CODE_ACCENT3, - ContextCompat.getColor( - requireContext(), - android.R.color.system_accent3_300 - ) - ), - showPresets = true, - showAlphaSlider = true, - showColorShades = true - ) - binding.colorPickerAccent3.setOnColorSelectedListener { color: Int -> - binding.colorPickerAccent3.previewColor = color - - putInt(LSCLOCK_COLOR_CODE_ACCENT3, color) - } - - // Clock color picker text 1 - binding.colorPickerText1.setColorPickerListener( - activity = requireActivity(), - defaultColor = getInt( - LSCLOCK_COLOR_CODE_TEXT1, - Color.WHITE - ), - showPresets = true, - showAlphaSlider = true, - showColorShades = true - ) - binding.colorPickerText1.setOnColorSelectedListener { color: Int -> - binding.colorPickerText1.previewColor = color - - putInt(LSCLOCK_COLOR_CODE_TEXT1, color) - } - - // Clock color picker text 2 - binding.colorPickerText2.setColorPickerListener( - activity = requireActivity(), - defaultColor = getInt( - LSCLOCK_COLOR_CODE_TEXT2, - Color.BLACK - ), - showPresets = true, - showAlphaSlider = true, - showColorShades = true - ) - binding.colorPickerText2.setOnColorSelectedListener { color: Int -> - binding.colorPickerText2.previewColor = color - - putInt(LSCLOCK_COLOR_CODE_TEXT2, color) - } - - // Line height - binding.lsclockLineHeight.sliderValue = getInt(LSCLOCK_FONT_LINEHEIGHT, 0) - binding.lsclockLineHeight.setOnSliderTouchListener(object : Slider.OnSliderTouchListener { - override fun onStartTrackingTouch(slider: Slider) {} - - override fun onStopTrackingTouch(slider: Slider) { - putInt(LSCLOCK_FONT_LINEHEIGHT, slider.value.toInt()) - } - }) - binding.lsclockLineHeight.setResetClickListener { - clearPref(LSCLOCK_FONT_LINEHEIGHT) - - true - } - - // Text Scaling - binding.lsClockTextscaling.sliderValue = getInt(LSCLOCK_FONT_TEXT_SCALING, 10) - binding.lsClockTextscaling.setOnSliderTouchListener(object : - Slider.OnSliderTouchListener { - override fun onStartTrackingTouch(slider: Slider) {} - override fun onStopTrackingTouch(slider: Slider) { - putInt(LSCLOCK_FONT_TEXT_SCALING, slider.value.toInt()) - } - }) - binding.lsClockTextscaling.setResetClickListener { - clearPref(LSCLOCK_FONT_TEXT_SCALING) - - true - } - - // Top margin - binding.lsclockTopMargin.sliderValue = getInt(LSCLOCK_TOPMARGIN, 100) - binding.lsclockTopMargin.setOnSliderTouchListener(object : Slider.OnSliderTouchListener { - override fun onStartTrackingTouch(slider: Slider) {} - - override fun onStopTrackingTouch(slider: Slider) { - putInt(LSCLOCK_TOPMARGIN, slider.value.toInt()) - } - }) - - // Bottom margin - binding.lsclockBottomMargin.sliderValue = getInt(LSCLOCK_BOTTOMMARGIN, 40) - binding.lsclockBottomMargin.setOnSliderTouchListener(object : - Slider.OnSliderTouchListener { - override fun onStartTrackingTouch(slider: Slider) {} - - override fun onStopTrackingTouch(slider: Slider) { - putInt(LSCLOCK_BOTTOMMARGIN, slider.value.toInt()) - } - }) - - showMoreLsSettings() - - userText = getString(LSCLOCK_USERNAME, "").toString() - binding.lsclockCustomUsername.setEditTextValue(userText) - binding.lsclockCustomUsername.setOnEditTextListener(object : - EditTextDialog.EditTextDialogListener { - override fun onOkPressed(dialogId: Int, newText: String) { - putString(LSCLOCK_USERNAME, newText) - userText = newText - binding.lsclockCustomUsername.setEditTextValue(userText) - } - }) - - deviceText = getString(LSCLOCK_DEVICENAME, "").toString() - binding.lsclockCustomDevicename.setEditTextValue(deviceText) - binding.lsclockCustomDevicename.setOnEditTextListener(object : - EditTextDialog.EditTextDialogListener { - override fun onOkPressed(dialogId: Int, newText: String) { - putString(LSCLOCK_DEVICENAME, newText) - deviceText = newText - binding.lsclockCustomDevicename.setEditTextValue(deviceText) - } - }) - - return view - } - - @SuppressLint("DiscouragedApi") - private fun initLockscreenClockStyles(): ClockPreviewAdapter { - val lsClock = ArrayList() - var maxIndex = 0 - - while (requireContext() - .resources - .getIdentifier( - LOCKSCREEN_CLOCK_LAYOUT + maxIndex, - "layout", - BuildConfig.APPLICATION_ID - ) != 0 - ) { - maxIndex++ - } - - totalClocks = maxIndex - - for (i in 0 until maxIndex) { - lsClock.add( - ClockModel( - if (i == 0) { - requireContext().getString(R.string.clock_none) - } else { - requireContext().getString(R.string.clock_style_name, i) - }, - requireContext() - .resources - .getIdentifier( - LOCKSCREEN_CLOCK_LAYOUT + i, - "layout", - BuildConfig.APPLICATION_ID - ) - ) - ) - } - - return ClockPreviewAdapter( - requireContext(), - lsClock, - LSCLOCK_SWITCH, - LSCLOCK_STYLE, - onStyleSelected - ) - } - - private val onStyleSelected = object : ClockPreviewAdapter.OnStyleSelected { - override fun onStyleSelected(position: Int) { - showMoreLsSettings() - } - } - - private fun updateEnabled(enabled: Boolean) { - binding.lockscreenClockFont.isEnabled = enabled - binding.lsClockCustomColor.isEnabled = enabled - binding.colorPickerAccent1.isEnabled = enabled - binding.colorPickerAccent2.isEnabled = enabled - binding.colorPickerAccent3.isEnabled = enabled - binding.colorPickerText1.isEnabled = enabled - binding.colorPickerText2.isEnabled = enabled - binding.lsclockLineHeight.isEnabled = enabled - binding.lsClockTextscaling.isEnabled = enabled - binding.lsclockTopMargin.isEnabled = enabled - binding.lsclockBottomMargin.isEnabled = enabled - binding.lsclockCustomUsername.isEnabled = enabled - binding.lsclockCustomDevicename.isEnabled = enabled - } - - private fun showMoreLsSettings() { - // More settings - val lsStyle = getInt(LSCLOCK_STYLE, 0) - val username = lsStyle == 7 - val devicename = lsStyle == 19 - binding.lsclockCustomUsername.visibility = if (username) View.VISIBLE else View.GONE - binding.lsclockCustomDevicename.visibility = if (devicename) View.VISIBLE else View.GONE - } -} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt deleted file mode 100644 index 4f68bf564..000000000 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWeather.kt +++ /dev/null @@ -1,635 +0,0 @@ -package com.drdisagree.iconify.ui.fragments - -import android.Manifest -import android.annotation.SuppressLint -import android.app.Activity -import android.content.Context -import android.content.DialogInterface -import android.content.Intent -import android.content.pm.PackageManager -import android.graphics.Color -import android.graphics.drawable.Drawable -import android.location.LocationManager -import android.net.Uri -import android.os.Bundle -import android.os.Handler -import android.os.Looper -import android.provider.Settings -import android.text.TextUtils -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.CompoundButton -import androidx.activity.result.ActivityResultLauncher -import androidx.activity.result.contract.ActivityResultContracts -import androidx.core.content.res.ResourcesCompat -import androidx.recyclerview.widget.LinearLayoutManager -import com.drdisagree.iconify.BuildConfig -import com.drdisagree.iconify.Iconify.Companion.appContextLocale -import com.drdisagree.iconify.R -import com.drdisagree.iconify.common.Const.SWITCH_ANIMATION_DELAY -import com.drdisagree.iconify.common.Preferences.WEATHER_CENTER_VIEW -import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_LOCATION -import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_BOTTOM -import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_SIDE -import com.drdisagree.iconify.common.Preferences.WEATHER_CUSTOM_MARGINS_TOP -import com.drdisagree.iconify.common.Preferences.WEATHER_ICON_PACK -import com.drdisagree.iconify.common.Preferences.WEATHER_ICON_SIZE -import com.drdisagree.iconify.common.Preferences.WEATHER_OWM_KEY -import com.drdisagree.iconify.common.Preferences.WEATHER_PROVIDER -import com.drdisagree.iconify.common.Preferences.WEATHER_SHOW_CONDITION -import com.drdisagree.iconify.common.Preferences.WEATHER_SHOW_HUMIDITY -import com.drdisagree.iconify.common.Preferences.WEATHER_SHOW_LOCATION -import com.drdisagree.iconify.common.Preferences.WEATHER_SHOW_WIND -import com.drdisagree.iconify.common.Preferences.WEATHER_STYLE -import com.drdisagree.iconify.common.Preferences.WEATHER_SWITCH -import com.drdisagree.iconify.common.Preferences.WEATHER_TEXT_COLOR -import com.drdisagree.iconify.common.Preferences.WEATHER_TEXT_COLOR_SWITCH -import com.drdisagree.iconify.common.Preferences.WEATHER_TEXT_SIZE -import com.drdisagree.iconify.common.Preferences.WEATHER_UNITS -import com.drdisagree.iconify.common.Preferences.WEATHER_UPDATE_INTERVAL -import com.drdisagree.iconify.config.RPrefs -import com.drdisagree.iconify.config.RPrefs.getBoolean -import com.drdisagree.iconify.config.RPrefs.getInt -import com.drdisagree.iconify.config.RPrefs.putBoolean -import com.drdisagree.iconify.config.RPrefs.putInt -import com.drdisagree.iconify.config.RPrefs.putString -import com.drdisagree.iconify.databinding.FragmentXposedLockscreenWeatherBinding -import com.drdisagree.iconify.services.WeatherScheduler -import com.drdisagree.iconify.ui.activities.LocationBrowseActivity -import com.drdisagree.iconify.ui.activities.LocationBrowseActivity.Companion.DATA_LOCATION_LAT -import com.drdisagree.iconify.ui.activities.LocationBrowseActivity.Companion.DATA_LOCATION_LON -import com.drdisagree.iconify.ui.activities.LocationBrowseActivity.Companion.DATA_LOCATION_NAME -import com.drdisagree.iconify.ui.adapters.IconsAdapter -import com.drdisagree.iconify.ui.adapters.IconsAdapter.Companion.WEATHER_ICONS_ADAPTER -import com.drdisagree.iconify.ui.base.BaseFragment -import com.drdisagree.iconify.ui.dialogs.EditTextDialog -import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader -import com.drdisagree.iconify.utils.OmniJawsClient -import com.drdisagree.iconify.utils.SystemUtil -import com.drdisagree.iconify.utils.weather.WeatherConfig -import com.google.android.material.dialog.MaterialAlertDialogBuilder -import com.google.android.material.slider.Slider -import java.util.Locale - -class XposedLockscreenWeather : BaseFragment(), OmniJawsClient.OmniJawsObserver { - - private lateinit var binding: FragmentXposedLockscreenWeatherBinding - private lateinit var mWeatherClient: OmniJawsClient - private val mapping: IntArray = intArrayOf(1, 2, 4, 6, 12) - - override fun onCreateView( - inflater: LayoutInflater, - container: ViewGroup?, - savedInstanceState: Bundle? - ): View { - binding = FragmentXposedLockscreenWeatherBinding.inflate(inflater, container, false) - val view: View = binding.getRoot() - - // Header - setHeader( - requireContext(), - getParentFragmentManager(), - binding.header.toolbar, - R.string.activity_title_lockscreen_weather - ) - - mWeatherClient = OmniJawsClient(requireContext()) - - return view - } - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - - binding.enableLockscreenWeather.isSwitchChecked = getBoolean(WEATHER_SWITCH, false) - binding.enableLockscreenWeather.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(WEATHER_SWITCH, isChecked) - - WeatherConfig.setEnabled(requireContext(), isChecked, WEATHER_SWITCH) - queryAndUpdateWeather() - - if (isChecked) { - WeatherScheduler.scheduleUpdates(requireContext()) - if (mWeatherClient.weatherInfo != null) { - // Weather enabled but updated more than 1h ago - if (System.currentTimeMillis() - mWeatherClient.weatherInfo!!.timeStamp!! > 3600000) { - WeatherScheduler.scheduleUpdateNow(requireContext()); - } - } else { - // Weather not enabled so we will update now - WeatherScheduler.scheduleUpdateNow(requireContext()); - } - } - - updateUI() - - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - } - - val updateInterval = WeatherConfig.getUpdateInterval(requireContext()) - var selectedIndex = 1 - when (updateInterval) { - 1 -> selectedIndex = 0 - 2 -> selectedIndex = 1 - 4 -> selectedIndex = 2 - 6 -> selectedIndex = 3 - 12 -> selectedIndex = 4 - } - binding.lockscreenWeatherUpdateInterval.setSelectedIndex(selectedIndex) - binding.lockscreenWeatherUpdateInterval.setOnItemSelectedListener { - putString(WEATHER_UPDATE_INTERVAL, mapping[it].toString()) - handlePermissions() - forceRefreshWeatherSettings() - } - - binding.lockscreenWeatherLastUpdate.setOnClickListener { - handlePermissions() - forceRefreshWeatherSettings() - } - - binding.lockscreenWeatherProvider.setSelectedIndex( - RPrefs.getString(WEATHER_PROVIDER, "0")!!.toInt() - ) - binding.lockscreenWeatherProvider.setOnItemSelectedListener { - putString(WEATHER_PROVIDER, it.toString()) - - if (WeatherConfig.getOwmKey(requireContext()).isEmpty() && it != 0) { - showOwnKeyDialog() - } else { - forceRefreshWeatherSettings() - } - } - - val owmKey = WeatherConfig.getOwmKey(requireContext()) - if (owmKey.isEmpty()) { - binding.lockscreenWeatherOwmKey.setSummary(getString(R.string.not_available)) - } else { - binding.lockscreenWeatherOwmKey.setSummary( - "*".repeat(owmKey.length - 4) + owmKey.takeLast( - 4 - ) - ) - } - binding.lockscreenWeatherOwmKey.setEditTextValue(owmKey) - binding.lockscreenWeatherOwmKey.setOnEditTextListener(object : - EditTextDialog.EditTextDialogListener { - override fun onOkPressed(dialogId: Int, newText: String) { - putString(WEATHER_OWM_KEY, newText) - handlePermissions() - forceRefreshWeatherSettings() - - val maskedKey = if (newText.length > 4) { - "*".repeat(newText.length - 4) + newText.takeLast(4) - } else { - newText.ifEmpty { - getString(R.string.not_available) - } - } - - binding.lockscreenWeatherOwmKey.setSummary(maskedKey) - binding.lockscreenWeatherOwmKey.setEditTextValue(newText) - } - }) - - binding.lockscreenWeatherUnits.setSelectedIndex(if (WeatherConfig.isMetric(requireContext())) 0 else 1) - binding.lockscreenWeatherUnits.setOnItemSelectedListener { index: Int -> - putString(WEATHER_UNITS, index.toString()) - forceRefreshWeatherSettings() - } - - binding.lockscreenWeatherShowLocation.isSwitchChecked = - getBoolean(WEATHER_SHOW_LOCATION, true) - binding.lockscreenWeatherShowLocation.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(WEATHER_SHOW_LOCATION, isChecked) - } - - binding.lockscreenWeatherShowCondition.isSwitchChecked = - getBoolean(WEATHER_SHOW_CONDITION, true) - binding.lockscreenWeatherShowCondition.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(WEATHER_SHOW_CONDITION, isChecked) - } - - binding.lockscreenWeatherShowHumidity.isSwitchChecked = - getBoolean(WEATHER_SHOW_HUMIDITY, false) - binding.lockscreenWeatherShowHumidity.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(WEATHER_SHOW_HUMIDITY, isChecked) - } - - binding.lockscreenWeatherShowWind.isSwitchChecked = getBoolean(WEATHER_SHOW_WIND, false) - binding.lockscreenWeatherShowWind.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(WEATHER_SHOW_WIND, isChecked) - } - - binding.lockscreenWeatherTextSize.sliderValue = getInt(WEATHER_TEXT_SIZE, 16) - binding.lockscreenWeatherTextSize.setOnSliderChangeListener { _: Slider?, value: Float, _: Boolean -> - putInt(WEATHER_TEXT_SIZE, value.toInt()) - } - - binding.lockscreenWeatherImageSize.sliderValue = getInt(WEATHER_ICON_SIZE, 18) - binding.lockscreenWeatherImageSize.setOnSliderChangeListener { _: Slider?, value: Float, _: Boolean -> - putInt(WEATHER_ICON_SIZE, value.toInt()) - } - - binding.lockscreenWeatherCustomColorSwitch.isSwitchChecked = - getBoolean(WEATHER_TEXT_COLOR_SWITCH, false) - binding.lockscreenWeatherCustomColorSwitch.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(WEATHER_TEXT_COLOR_SWITCH, isChecked) - binding.lockscreenWeatherCustomColor.visibility = - if (isChecked) View.VISIBLE else View.GONE - } - - binding.lockscreenWeatherCustomColor.previewColor = getInt(WEATHER_TEXT_COLOR, Color.WHITE) - binding.lockscreenWeatherCustomColor.setColorPickerListener( - activity = requireActivity(), - defaultColor = getInt(WEATHER_TEXT_COLOR, Color.WHITE), - showPresets = true, - showAlphaSlider = false, - showColorShades = true - ) - binding.lockscreenWeatherCustomColor.setOnColorSelectedListener { color: Int -> - putInt(WEATHER_TEXT_COLOR, color) - } - - binding.lockscreenWeatherCustomLocation.isSwitchChecked = - getBoolean(WEATHER_CUSTOM_LOCATION, false) - binding.lockscreenWeatherCustomLocation.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(WEATHER_CUSTOM_LOCATION, isChecked) - binding.lockscreenWeatherCustomLocationMenu.isEnabled = isChecked - handlePermissions() - forceRefreshWeatherSettings() - } - - val locationName = WeatherConfig.getLocationName(requireContext()) - if (locationName.isNullOrEmpty()) { - binding.lockscreenWeatherCustomLocationMenu.setSummary(R.string.not_available) - } else { - binding.lockscreenWeatherCustomLocationMenu.setSummary(locationName) - } - binding.lockscreenWeatherCustomLocationMenu.setOnClickListener { - mCustomLocationLauncher.launch( - Intent( - requireContext(), - LocationBrowseActivity::class.java - ) - ) - } - - val entries: MutableList = ArrayList() - val values: MutableList = ArrayList() - val drawables: MutableList = ArrayList() - getAvailableWeatherIconPacks(entries, values, drawables) - val entriesChar: Array = entries.filterNotNull().toTypedArray() - val valuesChar: Array = values.filterNotNull().toTypedArray() - val currentIconPack = if (TextUtils.isEmpty(WeatherConfig.getIconPack(requireContext()))) { - valuesChar[0].toString() - } else { - WeatherConfig.getIconPack(requireContext()) - } - val mAdapter = IconsAdapter( - entriesChar, - valuesChar, - currentIconPack!!, - WEATHER_ICONS_ADAPTER, - object : IconsAdapter.OnItemClickListener { - override fun onItemClick(view: View, position: Int) { - val value = values[position] - putString(WEATHER_ICON_PACK, value!!) - binding.lockscreenWeatherIconPack.setSummary(entries[position]!!) - forceRefreshWeatherSettings() - } - } - ) - mAdapter.setDrawables(drawables.filterNotNull().toTypedArray()) - val summary = if (!TextUtils.isEmpty(currentIconPack) && values.contains(currentIconPack)) { - entries[values.indexOf(currentIconPack)] - } else { - entries[0] - } - binding.lockscreenWeatherIconPack.setSummary(summary!!) - binding.lockscreenWeatherIconPack.setLayoutManager(LinearLayoutManager(requireContext())) - binding.lockscreenWeatherIconPack.setAdapter(mAdapter) - - binding.lockscreenWeatherMarginTop.sliderValue = getInt(WEATHER_CUSTOM_MARGINS_TOP, 20) - binding.lockscreenWeatherMarginTop.setOnSliderChangeListener { _: Slider?, value: Float, _: Boolean -> - putInt(WEATHER_CUSTOM_MARGINS_TOP, value.toInt()) - } - - binding.lockscreenWeatherMarginSide.sliderValue = getInt(WEATHER_CUSTOM_MARGINS_SIDE, 20) - binding.lockscreenWeatherMarginSide.setOnSliderChangeListener { _: Slider?, value: Float, _: Boolean -> - putInt(WEATHER_CUSTOM_MARGINS_SIDE, value.toInt()) - } - - binding.lockscreenWeatherMarginBottom.sliderValue = - getInt(WEATHER_CUSTOM_MARGINS_BOTTOM, 20) - binding.lockscreenWeatherMarginBottom.setOnSliderChangeListener { _: Slider?, value: Float, _: Boolean -> - putInt(WEATHER_CUSTOM_MARGINS_BOTTOM, value.toInt()) - } - - binding.lockscreenWeatherBg.setSelectedIndex(getInt(WEATHER_STYLE, 0)) - binding.lockscreenWeatherBg.setOnItemSelectedListener { - putInt(WEATHER_STYLE, it) - } - - binding.lockscreenWeatherCenterView.isSwitchChecked = getBoolean(WEATHER_CENTER_VIEW, false) - binding.lockscreenWeatherCenterView.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(WEATHER_CENTER_VIEW, isChecked) - } - - if (getBoolean(WEATHER_SWITCH, false)) { - queryAndUpdateWeather() - } - - updateUI() - } - - override fun onResume() { - super.onResume() - - mWeatherClient.addObserver(this) - handlePermissions() - } - - override fun onPause() { - super.onPause() - - mWeatherClient.removeObserver(this) - } - - private fun showOwnKeyDialog() { - MaterialAlertDialogBuilder(requireContext()) - .setTitle(appContextLocale.getString(R.string.weather_provider_owm_key_title)) - .setMessage(appContextLocale.getString(R.string.weather_provider_owm_key_message)) - .setCancelable(false) - .setPositiveButton(appContextLocale.getString(R.string.understood), null) - .create() - .show() - } - - private fun handlePermissions() { - if (getBoolean(WEATHER_SWITCH, false) && - !getBoolean(WEATHER_CUSTOM_LOCATION, false) - ) { - checkLocationEnabled(false) - } - } - - private fun checkLocationEnabled(force: Boolean) { - if (!isLocationEnabled()) { - showLocationPermissionDialog() - } else { - checkLocationPermission(force) - } - } - - private fun checkLocationPermission(force: Boolean) { - if (!hasPermissions()) { - if (getBoolean(WEATHER_SWITCH, false) && - !getBoolean(WEATHER_CUSTOM_LOCATION, false) - ) { - requestLocationPermission() - } - } else { - if (force) { - forceRefreshWeatherSettings() - } - queryAndUpdateWeather() - } - } - - private fun showLocationPermissionDialog() { - MaterialAlertDialogBuilder(requireContext()) - .setTitle(R.string.weather_retrieve_location_dialog_title) - .setMessage(R.string.weather_retrieve_location_dialog_message) - .setCancelable(false) - .setPositiveButton(R.string.weather_retrieve_location_dialog_enable_button) { _, _ -> - startActivity( - Intent( - Settings.ACTION_LOCATION_SOURCE_SETTINGS - ).apply { - setFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP) - } - ) - } - .setNegativeButton(android.R.string.cancel, null) - .create() - .show() - } - - private fun showApplicationPermissionDialog() { - MaterialAlertDialogBuilder(requireContext()) - .setTitle(R.string.weather_permission_dialog_title) - .setMessage(R.string.weather_permission_dialog_message) - .setCancelable(false) - .setPositiveButton(android.R.string.ok) { _: DialogInterface?, _: Int -> - startActivity( - Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS).apply { - setData( - Uri.fromParts( - "package", - requireContext().packageName, - null - ) - ) - } - ) - } - .setNegativeButton(android.R.string.cancel, null) - .create() - .show() - } - - private fun requestLocationPermission() { - if (shouldShowRequestPermissionRationale(Manifest.permission.ACCESS_FINE_LOCATION) || - shouldShowRequestPermissionRationale(Manifest.permission.ACCESS_COARSE_LOCATION) || - shouldShowRequestPermissionRationale(Manifest.permission.ACCESS_BACKGROUND_LOCATION) - ) { - showApplicationPermissionDialog() - } else { - locationPermissionRequest.launch( - arrayOf( - Manifest.permission.ACCESS_FINE_LOCATION, - Manifest.permission.ACCESS_COARSE_LOCATION, - Manifest.permission.ACCESS_BACKGROUND_LOCATION - ) - ) - } - } - - private fun isLocationEnabled(): Boolean { - val lm = requireContext().getSystemService(Context.LOCATION_SERVICE) as LocationManager - return lm.isLocationEnabled - } - - private var locationPermissionRequest = registerForActivityResult( - ActivityResultContracts.RequestMultiplePermissions() - ) { permissions -> - val fineLocationGranted: Boolean = permissions.getOrDefault( - Manifest.permission.ACCESS_FINE_LOCATION, false - ) - val coarseLocationGranted: Boolean = permissions.getOrDefault( - Manifest.permission.ACCESS_COARSE_LOCATION, false - ) - - if (fineLocationGranted || coarseLocationGranted) { - forceRefreshWeatherSettings() - } - } - - private fun forceRefreshWeatherSettings() { - WeatherScheduler.scheduleUpdateNow(requireContext()) - } - - private fun queryAndUpdateWeather() { - mWeatherClient.queryWeather() - - if (mWeatherClient.weatherInfo != null && activity != null) { - requireActivity().runOnUiThread { - binding.lockscreenWeatherLastUpdate.setSummary(mWeatherClient.weatherInfo!!.lastUpdateTime) - } - } - } - - override fun weatherUpdated() { - queryAndUpdateWeather() - } - - override fun weatherError(errorReason: Int) { - val errorString: String = when (errorReason) { - OmniJawsClient.EXTRA_ERROR_DISABLED -> { - appContextLocale.getString(R.string.omnijaws_service_disabled) - } - - OmniJawsClient.EXTRA_ERROR_LOCATION -> { - appContextLocale.getString(R.string.omnijaws_service_error_location) - } - - OmniJawsClient.EXTRA_ERROR_NETWORK -> { - appContextLocale.getString(R.string.omnijaws_service_error_network) - } - - OmniJawsClient.EXTRA_ERROR_NO_PERMISSIONS -> { - appContextLocale.getString(R.string.omnijaws_service_error_permissions) - } - - else -> { - appContextLocale.getString(R.string.omnijaws_service_error_long) - } - } - - requireActivity().runOnUiThread { - binding.lockscreenWeatherLastUpdate.setSummary(errorString) - } - } - - @SuppressLint("DiscouragedApi") - private fun getAvailableWeatherIconPacks( - entries: MutableList, - values: MutableList, - drawables: MutableList - ) { - val i = Intent() - val packageManager = requireContext().packageManager - i.setAction(BuildConfig.APPLICATION_ID + ".WeatherIconPack") - for (r in packageManager.queryIntentActivities(i, 0)) { - val packageName = r.activityInfo.applicationInfo.packageName - if (packageName == DEFAULT_WEATHER_ICON_PACKAGE) { - values.add(0, r.activityInfo.name) - drawables.add( - 0, - ResourcesCompat.getDrawable( - resources, - resources.getIdentifier( - "google_30", - "drawable", - BuildConfig.APPLICATION_ID - ), - requireContext().theme - ) - ) - } else { - values.add(packageName + "." + r.activityInfo.name.split(".").last()) - val name = r.activityInfo.name.split("\\.".toRegex()).dropLastWhile { it.isEmpty() } - .toTypedArray() - drawables.add( - ResourcesCompat.getDrawable( - resources, resources.getIdentifier( - name[name.size - 1].lowercase( - Locale.getDefault() - ) + "_30", "drawable", BuildConfig.APPLICATION_ID - ), requireContext().theme - ) - ) - } - - val label: String = r.activityInfo.loadLabel(packageManager).toString() - if (packageName == DEFAULT_WEATHER_ICON_PACKAGE) { - entries.add(0, label) - } else { - entries.add(label) - } - } - } - - private fun updateUI() { - val enabled = getBoolean(WEATHER_SWITCH, false) - - for (i in 0 until binding.lockscreenWeatherContainer.childCount) { - val child = binding.lockscreenWeatherContainer.getChildAt(i) - if (child != binding.enableLockscreenWeather) child.isEnabled = enabled - } - - binding.lockscreenWeatherCustomColor.visibility = - if (getBoolean(WEATHER_TEXT_COLOR_SWITCH, false)) View.VISIBLE else View.GONE - binding.lockscreenWeatherCustomLocationMenu.isEnabled = - getBoolean(WEATHER_CUSTOM_LOCATION, false) - } - - private var mCustomLocationLauncher: ActivityResultLauncher = registerForActivityResult( - ActivityResultContracts.StartActivityForResult() - ) { result -> - if (result.resultCode == Activity.RESULT_OK) { - val intent: Intent? = result.data - - if (intent!!.hasExtra(DATA_LOCATION_NAME)) { - val locationName = intent.getStringExtra(DATA_LOCATION_NAME) - val lat = intent.getDoubleExtra(DATA_LOCATION_LAT, 0.0) - val lon = intent.getDoubleExtra(DATA_LOCATION_LON, 0.0) - - WeatherConfig.apply { - setLocationId(requireContext(), lat.toString(), lon.toString()) - setLocationName(requireContext(), locationName) - } - - if (locationName.isNullOrEmpty()) { - binding.lockscreenWeatherCustomLocationMenu.setSummary(R.string.not_available) - } else { - binding.lockscreenWeatherCustomLocationMenu.setSummary(locationName) - } - - if (getBoolean(WEATHER_SWITCH, false) - && !getBoolean(WEATHER_CUSTOM_LOCATION, false) - ) { - checkLocationEnabled(true) - } - } - } - } - - private fun hasPermissions(): Boolean { - return (requireContext().checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) - == PackageManager.PERMISSION_GRANTED) && - (requireContext().checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) - == PackageManager.PERMISSION_GRANTED) && - (requireContext().checkSelfPermission(Manifest.permission.ACCESS_BACKGROUND_LOCATION) - == PackageManager.PERMISSION_GRANTED) - } - - companion object { - private const val DEFAULT_WEATHER_ICON_PACKAGE: String = - "${BuildConfig.APPLICATION_ID}.google" - } -} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWidgets.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWidgets.kt deleted file mode 100644 index e0e8a13b8..000000000 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedLockscreenWidgets.kt +++ /dev/null @@ -1,401 +0,0 @@ -package com.drdisagree.iconify.ui.fragments - -import android.graphics.Color -import android.os.Build -import android.os.Bundle -import android.os.Handler -import android.os.Looper -import android.util.Log -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.CompoundButton -import androidx.navigation.Navigation.findNavController -import com.drdisagree.iconify.R -import com.drdisagree.iconify.common.Const.SWITCH_ANIMATION_DELAY -import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS -import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_BIG_ACTIVE -import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_BIG_ICON_ACTIVE -import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_BIG_ICON_INACTIVE -import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_BIG_INACTIVE -import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_BOTTOM_MARGIN -import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_CUSTOM_COLOR -import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_DEVICE_WIDGET -import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_DEVICE_WIDGET_CIRCULAR_COLOR -import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_DEVICE_WIDGET_CUSTOM_COLOR_SWITCH -import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_DEVICE_WIDGET_DEVICE -import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_DEVICE_WIDGET_LINEAR_COLOR -import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_DEVICE_WIDGET_TEXT_COLOR -import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_ENABLED -import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_EXTRAS -import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_SMALL_ACTIVE -import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_SMALL_ICON_ACTIVE -import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_SMALL_ICON_INACTIVE -import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_SMALL_INACTIVE -import com.drdisagree.iconify.config.RPrefs -import com.drdisagree.iconify.config.RPrefs.getBoolean -import com.drdisagree.iconify.config.RPrefs.getInt -import com.drdisagree.iconify.config.RPrefs.putBoolean -import com.drdisagree.iconify.config.RPrefs.putInt -import com.drdisagree.iconify.config.RPrefs.putString -import com.drdisagree.iconify.databinding.FragmentXposedLockscreenWidgetsBinding -import com.drdisagree.iconify.services.WeatherScheduler -import com.drdisagree.iconify.ui.base.BaseFragment -import com.drdisagree.iconify.ui.dialogs.EditTextDialog -import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader -import com.drdisagree.iconify.utils.OmniJawsClient -import com.drdisagree.iconify.utils.SystemUtil -import com.drdisagree.iconify.utils.weather.WeatherConfig -import com.google.android.material.slider.Slider - -class XposedLockscreenWidgets : BaseFragment() { - - private lateinit var binding: FragmentXposedLockscreenWidgetsBinding - private lateinit var mWeatherClient: OmniJawsClient - - private var bigWidget1 = 0 - private var bigWidget2 = 0 - private var miniWidget1 = 0 - private var miniWidget2 = 0 - private var miniWidget3 = 0 - private var miniWidget4 = 0 - - private var mWidgetsValues: Array? = null - - override fun onCreateView( - inflater: LayoutInflater, - container: ViewGroup?, - savedInstanceState: Bundle? - ): View { - - binding = FragmentXposedLockscreenWidgetsBinding.inflate(inflater, container, false) - val view: View = binding.getRoot() - - mWeatherClient = OmniJawsClient(requireContext()) - mWeatherClient.queryWeather() - - // Header - setHeader( - requireContext(), - getParentFragmentManager(), - binding.header.toolbar, - R.string.activity_title_lockscreen_widgets - ) - - return view - } - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - readPrefs() - updateUI() - - // Main Switch - binding.lockscreenWidgetsSwitch.isSwitchChecked = getBoolean(LOCKSCREEN_WIDGETS_ENABLED, false) - binding.lockscreenWidgetsSwitch.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - - putBoolean(LOCKSCREEN_WIDGETS_ENABLED, isChecked) - - updateUI() - - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - } - - // Device Widget - binding.deviceWidget.isSwitchChecked = getBoolean(LOCKSCREEN_WIDGETS_DEVICE_WIDGET, false) - binding.deviceWidget.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(LOCKSCREEN_WIDGETS_DEVICE_WIDGET, isChecked) - updateUI() - } - - binding.deviceWidgetCustomColor.isSwitchChecked = getBoolean(LOCKSCREEN_WIDGETS_DEVICE_WIDGET_CUSTOM_COLOR_SWITCH, false) - binding.deviceWidgetCustomColor.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(LOCKSCREEN_WIDGETS_DEVICE_WIDGET_CUSTOM_COLOR_SWITCH, isChecked) - updateUI() - } - - binding.widgetDeviceName.setEditTextValue(RPrefs.getString( - LOCKSCREEN_WIDGETS_DEVICE_WIDGET_DEVICE, Build.MODEL)!!) - binding.widgetDeviceName.setOnEditTextListener(object : - EditTextDialog.EditTextDialogListener { - override fun onOkPressed(dialogId: Int, newText: String) { - putString(LOCKSCREEN_WIDGETS_DEVICE_WIDGET_DEVICE, newText) - binding.widgetDeviceName.setEditTextValue(newText) - } - }) - - binding.deviceWidgetLinearProgressColor.previewColor = getInt(LOCKSCREEN_WIDGETS_DEVICE_WIDGET_LINEAR_COLOR, Color.WHITE) - binding.deviceWidgetLinearProgressColor.setColorPickerListener( - activity = requireActivity(), - defaultColor = getInt(LOCKSCREEN_WIDGETS_DEVICE_WIDGET_LINEAR_COLOR, Color.WHITE), - showPresets = true, - showAlphaSlider = false, - showColorShades = true - ) - binding.deviceWidgetLinearProgressColor.setOnColorSelectedListener { color: Int -> - putInt(LOCKSCREEN_WIDGETS_DEVICE_WIDGET_LINEAR_COLOR, color) - } - - binding.deviceWidgetCircularProgressColor.previewColor = getInt(LOCKSCREEN_WIDGETS_DEVICE_WIDGET_CIRCULAR_COLOR, Color.WHITE) - binding.deviceWidgetCircularProgressColor.setColorPickerListener( - activity = requireActivity(), - defaultColor = getInt(LOCKSCREEN_WIDGETS_DEVICE_WIDGET_CIRCULAR_COLOR, Color.WHITE), - showPresets = true, - showAlphaSlider = false, - showColorShades = true - ) - binding.deviceWidgetCircularProgressColor.setOnColorSelectedListener { color: Int -> - putInt(LOCKSCREEN_WIDGETS_DEVICE_WIDGET_CIRCULAR_COLOR, color) - } - - binding.deviceWidgetTextColor.previewColor = getInt( - LOCKSCREEN_WIDGETS_DEVICE_WIDGET_TEXT_COLOR, Color.WHITE) - binding.deviceWidgetTextColor.setColorPickerListener( - activity = requireActivity(), - defaultColor = getInt(LOCKSCREEN_WIDGETS_DEVICE_WIDGET_TEXT_COLOR, Color.WHITE), - showPresets = true, - showAlphaSlider = false, - showColorShades = true - ) - binding.deviceWidgetTextColor.setOnColorSelectedListener { color: Int -> - putInt(LOCKSCREEN_WIDGETS_DEVICE_WIDGET_TEXT_COLOR, color) - } - - // Big Widget 1 - binding.bigWidget1.setSelectedIndex(bigWidget1) - binding.bigWidget1.setOnItemSelectedListener { index: Int -> - bigWidget1 = index - updatePrefs() - } - - // Big Widget 2 - binding.bigWidget2.setSelectedIndex(bigWidget2) - binding.bigWidget2.setOnItemSelectedListener { index: Int -> - bigWidget2 = index - updatePrefs() - } - - // Mini Widget 1 - binding.miniWidget1.setSelectedIndex(miniWidget1) - binding.miniWidget1.setOnItemSelectedListener { index: Int -> - miniWidget1 = index - updatePrefs() - } - - // Mini Widget 2 - binding.miniWidget2.setSelectedIndex(miniWidget2) - binding.miniWidget2.setOnItemSelectedListener { index: Int -> - miniWidget2 = index - updatePrefs() - } - - // Mini Widget 3 - binding.miniWidget3.setSelectedIndex(miniWidget3) - binding.miniWidget3.setOnItemSelectedListener { index: Int -> - miniWidget3 = index - updatePrefs() - } - - // Mini Widget 4 - binding.miniWidget4.setSelectedIndex(miniWidget4) - binding.miniWidget4.setOnItemSelectedListener { index: Int -> - miniWidget4 = index - updatePrefs() - } - - // Weather Settings - binding.weatherSettings.setOnClickListener{ - findNavController(binding.weatherSettings).navigate( - (R.id.action_xposedLockscreenWidgets_to_weatherSettings) - ) - } - - // Widgets Colors - binding.widgetsCustomColor.isSwitchChecked = getBoolean(LOCKSCREEN_WIDGETS_CUSTOM_COLOR, false) - binding.widgetsCustomColor.setSwitchChangeListener{ - _, isChecked -> - putBoolean(LOCKSCREEN_WIDGETS_CUSTOM_COLOR, isChecked) - updateUI() - } - - val widgetsColors = arrayOf( - binding.widgetsBigActive, - binding.widgetsBigInactive, - binding.widgetsBigIconActive, - binding.widgetsBigIconInactive, - binding.widgetsSmallActive, - binding.widgetsSmallInactive, - binding.widgetsSmallIconActive, - binding.widgetsSmallIconInactive - ) - val widgetsColorPrefs = arrayOf( - LOCKSCREEN_WIDGETS_BIG_ACTIVE, - LOCKSCREEN_WIDGETS_BIG_INACTIVE, - LOCKSCREEN_WIDGETS_BIG_ICON_ACTIVE, - LOCKSCREEN_WIDGETS_BIG_ICON_INACTIVE, - LOCKSCREEN_WIDGETS_SMALL_ACTIVE, - LOCKSCREEN_WIDGETS_SMALL_INACTIVE, - LOCKSCREEN_WIDGETS_SMALL_ICON_ACTIVE, - LOCKSCREEN_WIDGETS_SMALL_ICON_INACTIVE - ) - val widgetsColorDefaultPrefs = arrayOf( - Color.BLACK, - Color.WHITE, - Color.BLACK, - Color.WHITE, - Color.WHITE, - Color.BLACK, - Color.WHITE, - Color.BLACK - ) - - if (widgetsColors.size == widgetsColorPrefs.size) { - for (i in widgetsColors.indices) { - widgetsColors[i].previewColor = getInt(widgetsColorPrefs[i], widgetsColorDefaultPrefs[i]) - widgetsColors[i].setColorPickerListener( - activity = requireActivity(), - defaultColor = getInt(widgetsColorPrefs[i], widgetsColorDefaultPrefs[i]), - showPresets = true, - showAlphaSlider = true, - showColorShades = true - ) - widgetsColors[i].setOnColorSelectedListener { color: Int -> - putInt(widgetsColorPrefs[i], color) - } - } - } - - binding.widgetsBottomMargin.sliderValue = getInt(LOCKSCREEN_WIDGETS_BOTTOM_MARGIN, 0) - binding.widgetsBottomMargin.setOnSliderChangeListener{ slider: Slider, _: Float, _: Boolean -> - putInt( - LOCKSCREEN_WIDGETS_BOTTOM_MARGIN, - slider.value.toInt() - ) - } - - } - - private fun updateUI() { - val widgetsEnabled = getBoolean(LOCKSCREEN_WIDGETS_ENABLED, false) - val deviceWidgetEnabled = getBoolean(LOCKSCREEN_WIDGETS_DEVICE_WIDGET, false) - val deviceWidgetCustomColor = getBoolean( - LOCKSCREEN_WIDGETS_DEVICE_WIDGET_CUSTOM_COLOR_SWITCH, false) - val widgetsCustomColor = getBoolean(LOCKSCREEN_WIDGETS_CUSTOM_COLOR, false) - val mainWidgets: String? = RPrefs.getString(LOCKSCREEN_WIDGETS, "") - val extraWidgets: String? = RPrefs.getString(LOCKSCREEN_WIDGETS_EXTRAS, "") - - // Device Widget Prefs - binding.deviceWidgetCustomColor.isEnabled = widgetsEnabled && deviceWidgetEnabled - binding.deviceWidgetTextColor.isEnabled = widgetsEnabled && deviceWidgetEnabled - binding.widgetDeviceName.isEnabled = widgetsEnabled && deviceWidgetEnabled - binding.deviceWidgetLinearProgressColor.visibility = if (widgetsEnabled && deviceWidgetEnabled && deviceWidgetCustomColor) View.VISIBLE else View.GONE - binding.deviceWidgetCircularProgressColor.visibility = if (widgetsEnabled && deviceWidgetEnabled && deviceWidgetCustomColor) View.VISIBLE else View.GONE - - binding.deviceWidget.isEnabled = widgetsEnabled - binding.bigWidget1.isEnabled = widgetsEnabled - binding.bigWidget2.isEnabled = widgetsEnabled - binding.miniWidget1.isEnabled = widgetsEnabled - binding.miniWidget2.isEnabled = widgetsEnabled - binding.miniWidget3.isEnabled = widgetsEnabled - binding.miniWidget4.isEnabled = widgetsEnabled - - // Visibility of color picker based on switch - binding.widgetsBigActive.visibility = if (widgetsCustomColor) View.VISIBLE else View.GONE - binding.widgetsBigInactive.visibility = if (widgetsCustomColor) View.VISIBLE else View.GONE - binding.widgetsBigIconActive.visibility = if (widgetsCustomColor) View.VISIBLE else View.GONE - binding.widgetsBigIconInactive.visibility = if (widgetsCustomColor) View.VISIBLE else View.GONE - binding.widgetsSmallActive.visibility = if (widgetsCustomColor) View.VISIBLE else View.GONE - binding.widgetsSmallInactive.visibility = if (widgetsCustomColor) View.VISIBLE else View.GONE - binding.widgetsSmallIconActive.visibility = if (widgetsCustomColor) View.VISIBLE else View.GONE - binding.widgetsSmallIconInactive.visibility = if (widgetsCustomColor) View.VISIBLE else View.GONE - - // Switch enabled based on main switch - binding.widgetsCustomColor.isEnabled = widgetsEnabled - binding.widgetsBigActive.isEnabled = widgetsEnabled && widgetsCustomColor - binding.widgetsBigInactive.isEnabled = widgetsEnabled && widgetsCustomColor - binding.widgetsBigIconActive.isEnabled = widgetsEnabled && widgetsCustomColor - binding.widgetsBigIconInactive.isEnabled = widgetsEnabled && widgetsCustomColor - binding.widgetsSmallActive.isEnabled = widgetsEnabled && widgetsCustomColor - binding.widgetsSmallInactive.isEnabled = widgetsEnabled && widgetsCustomColor - binding.widgetsSmallIconActive.isEnabled = widgetsEnabled && widgetsCustomColor - binding.widgetsSmallIconInactive.isEnabled = widgetsEnabled && widgetsCustomColor - - binding.weatherSettings.isEnabled = mainWidgets!!.contains("weather") || extraWidgets!!.contains("weather") - - binding.widgetsBottomMargin.isEnabled = widgetsEnabled - - } - - private fun readPrefs() { - val mainWidgets: String? = RPrefs.getString(LOCKSCREEN_WIDGETS, "") - val extraWidgets: String? = RPrefs.getString(LOCKSCREEN_WIDGETS_EXTRAS, "") - - mWidgetsValues = resources.getStringArray(R.array.lockscreen_widgets_values) - - fun assignWidgets(widgets: Array, indices: MutableList) { - for (i in widgets.indices) { - indices[i] = getWidgetIndex(mWidgetsValues!!, widgets[i]) - } - } - - val mainWi = mainWidgets?.split(",")?.toTypedArray() ?: emptyArray() - val bigWidgets = mutableListOf(0, 0) - assignWidgets(mainWi, bigWidgets) - bigWidget1 = bigWidgets[0] - bigWidget2 = bigWidgets[1] - - val extraWi = extraWidgets?.split(",")?.toTypedArray() ?: emptyArray() - val miniWidgets = mutableListOf(0, 0, 0, 0) - assignWidgets(extraWi, miniWidgets) - miniWidget1 = miniWidgets[0] - miniWidget2 = miniWidgets[1] - miniWidget3 = miniWidgets[2] - miniWidget4 = miniWidgets[3] - - } - - private fun getWidgetIndex(values: Array, widget: String): Int { - val mainIndex = values.indexOf(widget) - return if (mainIndex != -1) { - mainIndex - } else { - val extraIndex = values.indexOf(widget) - if (extraIndex != -1) values.size + extraIndex else 0 - } - } - - private fun updatePrefs() { - mWeatherClient.queryWeather() - - val mainWidgets = "${mWidgetsValues!![bigWidget1]},${mWidgetsValues!![bigWidget2]}" - val extraWidgets = "${mWidgetsValues!![miniWidget1]},${mWidgetsValues!![miniWidget2]},${mWidgetsValues!![miniWidget3]},${mWidgetsValues!![miniWidget4]}" - - Log.d("LockscreenWidgets", "Main: $mainWidgets") - Log.d("LockscreenWidgets", "Extra: $extraWidgets") - - val wasWeatherEnabled: Boolean = WeatherConfig.isEnabled(requireContext()) - - putString(LOCKSCREEN_WIDGETS, mainWidgets) - putString(LOCKSCREEN_WIDGETS_EXTRAS, extraWidgets) - - val weatherEnabled = - mainWidgets.contains("weather") || extraWidgets.contains("weather") - - binding.weatherSettings.isEnabled = weatherEnabled - - if (weatherEnabled && wasWeatherEnabled && mWeatherClient.weatherInfo != null) { - // Weather enabled but updater more than 1h ago - if (System.currentTimeMillis() - mWeatherClient.weatherInfo?.timeStamp!! > 3600000) { - WeatherScheduler.scheduleUpdateNow(requireContext()) - } - } else if (weatherEnabled) { - // Weather not enabled (LS Weather) so we will update now - WeatherScheduler.scheduleUpdates(requireContext()) - WeatherScheduler.scheduleUpdateNow(requireContext()) - } - } - -} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedMenu.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedMenu.kt deleted file mode 100644 index d8a3296e1..000000000 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedMenu.kt +++ /dev/null @@ -1,563 +0,0 @@ -package com.drdisagree.iconify.ui.fragments - -import android.annotation.SuppressLint -import android.app.Activity -import android.content.BroadcastReceiver -import android.content.ComponentName -import android.content.Context -import android.content.DialogInterface -import android.content.Intent -import android.content.IntentFilter -import android.os.Build -import android.os.Bundle -import android.os.CountDownTimer -import android.os.Handler -import android.os.Looper -import android.util.Log -import android.view.LayoutInflater -import android.view.Menu -import android.view.MenuInflater -import android.view.MenuItem -import android.view.View -import android.view.ViewGroup -import android.widget.Toast -import androidx.activity.result.ActivityResult -import androidx.activity.result.contract.ActivityResultContracts -import androidx.appcompat.app.AppCompatActivity -import androidx.navigation.Navigation.findNavController -import com.drdisagree.iconify.Iconify.Companion.appContext -import com.drdisagree.iconify.Iconify.Companion.appContextLocale -import com.drdisagree.iconify.R -import com.drdisagree.iconify.common.Const.ACTION_HOOK_CHECK_REQUEST -import com.drdisagree.iconify.common.Const.ACTION_HOOK_CHECK_RESULT -import com.drdisagree.iconify.common.Preferences -import com.drdisagree.iconify.common.Preferences.SHOW_XPOSED_WARN -import com.drdisagree.iconify.config.Prefs -import com.drdisagree.iconify.config.RPrefs -import com.drdisagree.iconify.databinding.FragmentXposedMenuBinding -import com.drdisagree.iconify.ui.base.BaseFragment -import com.drdisagree.iconify.ui.widgets.MenuWidget -import com.drdisagree.iconify.utils.SystemUtil -import com.drdisagree.iconify.utils.SystemUtil.disableBlur -import com.drdisagree.iconify.utils.SystemUtil.hasStoragePermission -import com.drdisagree.iconify.utils.SystemUtil.requestStoragePermission -import com.drdisagree.iconify.utils.SystemUtil.restartSystemUI -import com.drdisagree.iconify.utils.extension.ObservableVariable -import com.drdisagree.iconify.utils.helper.ImportExport.exportSettings -import com.drdisagree.iconify.utils.helper.ImportExport.importSettings -import com.drdisagree.iconify.utils.overlay.FabricatedUtil.disableOverlays -import com.drdisagree.iconify.utils.overlay.OverlayUtil -import com.google.android.material.dialog.MaterialAlertDialogBuilder -import java.util.concurrent.Executors - -class XposedMenu : BaseFragment() { - - private lateinit var binding: FragmentXposedMenuBinding - - private val handler = Handler(Looper.getMainLooper()) - private var intentFilterHookedSystemUI = IntentFilter() - private var isHookSuccessful = false - - private val checkSystemUIHooked: Runnable = object : Runnable { - override fun run() { - checkXposedHooked() - handler.postDelayed(this, 1000) - } - } - - private val receiverHookedSystemui: BroadcastReceiver = object : BroadcastReceiver() { - override fun onReceive(context: Context, intent: Intent) { - if (intent.action == ACTION_HOOK_CHECK_RESULT) { - isHookSuccessful = true - isXposedHooked.setValue(true) - } - } - } - - private var startExportActivityIntent = registerForActivityResult( - ActivityResultContracts.StartActivityForResult() - ) { result1: ActivityResult -> - if (result1.resultCode == Activity.RESULT_OK) { - val data = result1.data ?: return@registerForActivityResult - - try { - exportSettings( - RPrefs.prefs, - requireContext().contentResolver.openOutputStream(data.data!!)!! - ) - - Toast.makeText( - requireContext(), - requireContext().resources.getString(R.string.toast_export_settings_successfull), - Toast.LENGTH_SHORT - ).show() - } catch (exception: Exception) { - Toast.makeText( - requireContext(), - requireContext().resources.getString(R.string.toast_error), - Toast.LENGTH_SHORT - ).show() - - Log.e("Settings", "Error exporting settings", exception) - } - } - } - - private var startImportActivityIntent = registerForActivityResult( - ActivityResultContracts.StartActivityForResult() - ) { result2: ActivityResult -> - if (result2.resultCode == Activity.RESULT_OK) { - val data = result2.data ?: return@registerForActivityResult - - MaterialAlertDialogBuilder(requireContext()) - .setTitle(requireContext().resources.getString(R.string.import_settings_confirmation_title)) - .setMessage(requireContext().resources.getString(R.string.import_settings_confirmation_desc)) - .setPositiveButton(requireContext().resources.getString(R.string.btn_positive)) { dialog: DialogInterface, _: Int -> - dialog.dismiss() - - Executors.newSingleThreadExecutor().execute { - try { - val success = importSettings( - RPrefs.prefs, - appContext.contentResolver.openInputStream(data.data!!)!!, - false - ) - - if (success) { - Handler(Looper.getMainLooper()).post { - Toast.makeText( - appContext, - appContext.resources.getString(R.string.toast_import_settings_successfull), - Toast.LENGTH_SHORT - ).show() - } - - restartSystemUI() - } else { - Handler(Looper.getMainLooper()).post { - Toast.makeText( - appContext, - appContext.resources.getString(R.string.toast_error), - Toast.LENGTH_SHORT - ).show() - } - } - } catch (exception: Exception) { - Handler(Looper.getMainLooper()).post { - Toast.makeText( - appContext, - appContext.resources.getString(R.string.toast_error), - Toast.LENGTH_SHORT - ).show() - - Log.e("Settings", "Error exporting settings", exception) - } - } - } - } - .setNegativeButton(requireContext().resources.getString(R.string.btn_negative)) { dialog: DialogInterface, _: Int -> - dialog.dismiss() - } - .show() - } - } - - @SuppressLint("UnspecifiedRegisterReceiverFlag") - @Suppress("deprecation") - override fun onCreateView( - inflater: LayoutInflater, - container: ViewGroup?, - savedInstanceState: Bundle? - ): View { - binding = FragmentXposedMenuBinding.inflate(inflater, container, false) - val view: View = binding.getRoot() - - // Header - binding.header.toolbar.setTitle(resources.getString(R.string.activity_title_xposed_menu)) - (requireActivity() as AppCompatActivity).setSupportActionBar(binding.header.toolbar) - setHasOptionsMenu(true) - - if (!Preferences.isXposedOnlyMode) { - (requireActivity() as AppCompatActivity).supportActionBar - ?.setDisplayHomeAsUpEnabled(true) - (requireActivity() as AppCompatActivity).supportActionBar - ?.setDisplayShowHomeEnabled(true) - binding.header.toolbar.setNavigationOnClickListener { - findNavController(view).popBackStack() - } - } - - // Xposed hook check - intentFilterHookedSystemUI.addAction(ACTION_HOOK_CHECK_RESULT) - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { - requireContext().registerReceiver( - receiverHookedSystemui, - intentFilterHookedSystemUI, - Context.RECEIVER_EXPORTED - ) - } else { - requireContext().registerReceiver( - receiverHookedSystemui, - intentFilterHookedSystemUI - ) - } - binding.xposedHookCheck.container.setOnClickListener { - try { - val intent = Intent(Intent.ACTION_MAIN) - intent.setComponent( - ComponentName( - "org.lsposed.manager", - "org.lsposed.manager.ui.activity.MainActivity" - ) - ) - intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) - startActivity(intent) - } catch (ignored: Exception) { - } - } - isXposedHooked.setOnChangeListener { newValue: Boolean? -> - try { - if (newValue == true) { - if (binding.xposedHookCheck.container.visibility != View.GONE) { - binding.xposedHookCheck.container.visibility = View.GONE - } - } else { - if (binding.xposedHookCheck.container.visibility != View.VISIBLE) { - binding.xposedHookCheck.container.visibility = View.VISIBLE - } - } - } catch (ignored: Exception) { - } - } - isXposedHooked.setValue(false) - handler.post(checkSystemUIHooked) - - // Xposed menu list items - addItem(initXposedMenuListItems()) - - return view - } - - private fun initXposedMenuListItems(): ArrayList> { - val xposedMenu = ArrayList>().apply { - add( - arrayOf( - R.id.action_xposedMenu2_to_xposedTransparencyBlur, - appContextLocale.resources.getString(R.string.activity_title_transparency_blur), - appContextLocale.resources.getString(R.string.activity_desc_transparency_blur), - R.drawable.ic_xposed_transparency_blur - ) - ) - add( - arrayOf( - R.id.action_xposedMenu2_to_xposedQuickSettings, - appContextLocale.resources.getString(R.string.activity_title_quick_settings), - appContextLocale.resources.getString(R.string.activity_desc_quick_settings), - R.drawable.ic_xposed_quick_settings - ) - ) - add( - arrayOf( - R.id.action_xposedMenu2_to_xposedThemes, - appContextLocale.resources.getString(R.string.activity_title_themes), - appContextLocale.resources.getString(R.string.activity_desc_themes), - R.drawable.ic_xposed_themes - ) - ) - add( - arrayOf( - R.id.action_xposedMenu2_to_xposedBatteryStyle, - appContextLocale.resources.getString(R.string.activity_title_battery_style), - appContextLocale.resources.getString(R.string.activity_desc_battery_style), - R.drawable.ic_colored_battery - ) - ) - add( - arrayOf( - R.id.action_xposedMenu_to_xposedStatusbar, - resources.getString(R.string.activity_title_statusbar), - resources.getString(R.string.activity_desc_statusbar), - R.drawable.ic_tweaks_statusbar - ) - ) - add( - arrayOf( - R.id.action_xposedMenu_to_xposedVolumePanel, - appContextLocale.resources.getString(R.string.activity_title_volume_panel), - appContextLocale.resources.getString(R.string.activity_desc_volume_panel), - R.drawable.ic_tweaks_volume - ) - ) - add( - arrayOf( - R.id.action_xposedMenu2_to_xposedHeaderImage, - appContextLocale.resources.getString(R.string.activity_title_header_image), - appContextLocale.resources.getString(R.string.activity_desc_header_image), - R.drawable.ic_xposed_header_image - ) - ) - add( - arrayOf( - R.id.action_xposedMenu2_to_xposedHeaderClock, - appContextLocale.resources.getString(R.string.activity_title_header_clock), - appContextLocale.resources.getString(R.string.activity_desc_header_clock), - R.drawable.ic_xposed_header_clock - ) - ) - add( - arrayOf( - R.id.action_xposedMenu2_to_xposedLockscreenClock, - appContextLocale.resources.getString(R.string.activity_title_lockscreen_clock), - appContextLocale.resources.getString(R.string.activity_desc_lockscreen_clock), - R.drawable.ic_xposed_lockscreen - ) - ) - add( - arrayOf( - R.id.action_xposedMenu2_to_xposedLockscreenWeather, - appContextLocale.resources.getString(R.string.activity_title_lockscreen_weather), - appContextLocale.resources.getString(R.string.activity_desc_lockscreen_weather), - R.drawable.ic_xposed_lockscreen_weather - ) - ) - add( - arrayOf( - R.id.action_xposedMenu2_to_xposedLockscreenWidgets, - appContextLocale.resources.getString(R.string.activity_title_lockscreen_widgets), - appContextLocale.resources.getString(R.string.activity_desc_lockscreen_widgets), - R.drawable.ic_xposed_lockscreen_widgets - ) - ) - add( - arrayOf( - R.id.action_xposedMenu2_to_xposedDepthWallpaper, - appContextLocale.resources.getString(R.string.activity_title_depth_wallpaper), - appContextLocale.resources.getString(R.string.activity_desc_depth_wallpaper), - R.drawable.ic_xposed_depth_wallpaper - ) - ) - add( - arrayOf( - R.id.action_xposedMenu2_to_xposedBackgroundChip, - appContextLocale.resources.getString(R.string.activity_title_background_chip), - appContextLocale.resources.getString(R.string.activity_desc_background_chip), - R.drawable.ic_xposed_background_chip - ) - ) - add( - arrayOf( - R.id.action_xposedMenu2_to_xposedOthers, - appContextLocale.resources.getString(R.string.activity_title_xposed_others), - appContextLocale.resources.getString(R.string.activity_desc_xposed_others), - R.drawable.ic_xposed_misc - ) - ) - } - - return xposedMenu - } - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - if (Prefs.getBoolean(SHOW_XPOSED_WARN, true)) { - MaterialAlertDialogBuilder(requireContext()) - .setTitle(requireContext().resources.getString(R.string.attention)) - .setMessage( - buildString { - append( - (if (Preferences.isXposedOnlyMode) { - appContextLocale.resources.getString( - R.string.xposed_only_desc - ) + "\n\n" - } else { - "" - }) - ) - append(appContextLocale.resources.getString(R.string.lsposed_warn)) - } - ) - .setPositiveButton(requireContext().resources.getString(R.string.understood)) { dialog: DialogInterface, _: Int -> - dialog.dismiss() - } - .setNegativeButton(requireContext().resources.getString(R.string.dont_show_again)) { dialog: DialogInterface, _: Int -> - dialog.dismiss() - - Prefs.putBoolean(SHOW_XPOSED_WARN, false) - } - .setCancelable(true) - .show() - } - } - - @Deprecated("Deprecated in Java") - @Suppress("deprecation") - override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { - menu.clear() - inflater.inflate(R.menu.xposed_menu, menu) - - super.onCreateOptionsMenu(menu, inflater) - } - - @Deprecated("Deprecated in Java") - @SuppressLint("NonConstantResourceId") - @Suppress("deprecation") - override fun onOptionsItemSelected(item: MenuItem): Boolean { - when (item.itemId) { - android.R.id.home -> { - findNavController(binding.getRoot()).popBackStack() - return true - } - - R.id.menu_export_settings -> importExportSettings(true) - R.id.menu_import_settings -> importExportSettings(false) - R.id.menu_reset_settings -> resetSettings() - R.id.restart_systemui -> Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.restartSystemUI() }, - 300 - ) - } - - return super.onOptionsItemSelected(item) - } - - // Function to add new item in list - private fun addItem(pack: ArrayList>) { - for (i in pack.indices) { - val menu = MenuWidget(requireActivity()) - - menu.setTitle(pack[i][1] as String) - menu.setSummary(pack[i][2] as String) - menu.setIcon(pack[i][3] as Int) - menu.setEndArrowVisibility(View.VISIBLE) - menu.setOnClickListener { - findNavController(menu).navigate( - (pack[i][0] as Int) - ) - } - - binding.xposedList.addView(menu) - } - } - - private fun importExportSettings(export: Boolean) { - if (!hasStoragePermission()) { - requestStoragePermission(requireContext()) - } else { - val fileIntent = Intent() - fileIntent.setAction(if (export) Intent.ACTION_CREATE_DOCUMENT else Intent.ACTION_GET_CONTENT) - fileIntent.setType("*/*") - fileIntent.putExtra(Intent.EXTRA_TITLE, "xposed_configs" + ".iconify") - - if (export) { - startExportActivityIntent.launch(fileIntent) - } else { - startImportActivityIntent.launch(fileIntent) - } - } - } - - private fun resetSettings() { - MaterialAlertDialogBuilder(requireContext()) - .setTitle(requireContext().resources.getString(R.string.import_settings_confirmation_title)) - .setMessage(requireContext().resources.getString(R.string.import_settings_confirmation_desc)) - .setPositiveButton( - requireContext().resources.getString(R.string.btn_positive) - ) { dialog: DialogInterface, _: Int -> - dialog.dismiss() - - Handler(Looper.getMainLooper()).post { - try { - RPrefs.clearAllPrefs() - - disableBlur(false) - - disableOverlays( - "quick_qs_offset_height", - "qqs_layout_margin_top", - "qs_header_row_min_height", - "quick_qs_total_height", - "qs_panel_padding_top", - "qs_panel_padding_top_combined_headers" - ) - - OverlayUtil.disableOverlays( - "IconifyComponentQSLT.overlay", - "IconifyComponentQSDT.overlay" - ) - - restartSystemUI() - } catch (exception: Exception) { - Toast.makeText( - requireContext(), - requireContext().resources.getString(R.string.toast_error), - Toast.LENGTH_SHORT - ).show() - - Log.e("Settings", "Error importing settings", exception) - } - } - } - .setNegativeButton(requireContext().resources.getString(R.string.btn_negative)) { dialog: DialogInterface, _: Int -> - dialog.dismiss() - } - .show() - } - - private fun checkXposedHooked() { - - isHookSuccessful = false - - object : CountDownTimer(1600, 800) { - override fun onTick(millisUntilFinished: Long) { - if (isHookSuccessful) { - cancel() - } - } - - override fun onFinish() { - if (!isHookSuccessful) { - isXposedHooked.setValue(false) - } - } - }.start() - - Thread { - try { - requireContext().sendBroadcast(Intent().setAction(ACTION_HOOK_CHECK_REQUEST)) - } catch (ignored: Exception) { - } - }.start() - } - - override fun onDestroy() { - try { - handler.removeCallbacks(checkSystemUIHooked) - } catch (ignored: Exception) { - } - - super.onDestroy() - } - - override fun onResume() { - super.onResume() - - try { - isXposedHooked.notifyChanged() - handler.post(checkSystemUIHooked) - } catch (ignored: Exception) { - } - } - - override fun onPause() { - try { - handler.removeCallbacks(checkSystemUIHooked) - } catch (ignored: Exception) { - } - - super.onPause() - } - - companion object { - private val isXposedHooked = ObservableVariable() - } -} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedOthers.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedOthers.kt deleted file mode 100644 index 215ed474c..000000000 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedOthers.kt +++ /dev/null @@ -1,135 +0,0 @@ -package com.drdisagree.iconify.ui.fragments - -import android.os.Build -import android.os.Bundle -import android.os.Handler -import android.os.Looper -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.CompoundButton -import com.drdisagree.iconify.R -import com.drdisagree.iconify.common.Const.SWITCH_ANIMATION_DELAY -import com.drdisagree.iconify.common.Preferences.FIXED_STATUS_ICONS_SIDEMARGIN -import com.drdisagree.iconify.common.Preferences.FIXED_STATUS_ICONS_SWITCH -import com.drdisagree.iconify.common.Preferences.FIXED_STATUS_ICONS_TOPMARGIN -import com.drdisagree.iconify.common.Preferences.HIDE_LOCKSCREEN_LOCK_ICON -import com.drdisagree.iconify.common.Preferences.HIDE_STATUS_ICONS_SWITCH -import com.drdisagree.iconify.common.Preferences.QSPANEL_HIDE_CARRIER -import com.drdisagree.iconify.common.Preferences.QSPANEL_STATUSICONSBG_SWITCH -import com.drdisagree.iconify.config.RPrefs.getBoolean -import com.drdisagree.iconify.config.RPrefs.getInt -import com.drdisagree.iconify.config.RPrefs.putBoolean -import com.drdisagree.iconify.config.RPrefs.putInt -import com.drdisagree.iconify.databinding.FragmentXposedOthersBinding -import com.drdisagree.iconify.ui.base.BaseFragment -import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader -import com.drdisagree.iconify.utils.SystemUtil -import com.google.android.material.slider.Slider - -class XposedOthers : BaseFragment() { - - private lateinit var binding: FragmentXposedOthersBinding - - override fun onCreateView( - inflater: LayoutInflater, - container: ViewGroup?, - savedInstanceState: Bundle? - ): View { - binding = FragmentXposedOthersBinding.inflate(inflater, container, false) - val view: View = binding.getRoot() - - // Header - setHeader( - requireContext(), - getParentFragmentManager(), - binding.header.toolbar, - R.string.activity_title_xposed_others - ) - - // Hide carrier group - binding.hideQsCarrierGroup.isSwitchChecked = getBoolean(QSPANEL_HIDE_CARRIER, false) - binding.hideQsCarrierGroup.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(QSPANEL_HIDE_CARRIER, isChecked) - - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - } - - // Hide status icons - binding.hideStatusIcons.isSwitchChecked = getBoolean(HIDE_STATUS_ICONS_SWITCH, false) - binding.hideStatusIcons.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(HIDE_STATUS_ICONS_SWITCH, isChecked) - - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - } - - // Hide lockscreen lock icon - binding.hideLockscreenLockIcon.isSwitchChecked = - getBoolean(HIDE_LOCKSCREEN_LOCK_ICON, false) - binding.hideLockscreenLockIcon.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(HIDE_LOCKSCREEN_LOCK_ICON, isChecked) - - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - } - - // Fixed status icons - binding.fixedStatusIcons.isSwitchChecked = getBoolean(FIXED_STATUS_ICONS_SWITCH, false) - binding.fixedStatusIcons.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - binding.statusIconsTopMargin.setEnabled(isChecked) - binding.statusIconsSideMargin.setEnabled(isChecked) - - putBoolean(FIXED_STATUS_ICONS_SWITCH, isChecked) - - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - } - - // Status icons top margin - if (Build.VERSION.SDK_INT >= 33) { - binding.statusIconsTopMargin.setSliderValueTo(250) - } - binding.statusIconsTopMargin.sliderValue = getInt(FIXED_STATUS_ICONS_TOPMARGIN, 8) - binding.statusIconsTopMargin.setEnabled( - if (Build.VERSION.SDK_INT >= 33) { - getBoolean(QSPANEL_STATUSICONSBG_SWITCH, false) || - getBoolean(FIXED_STATUS_ICONS_SWITCH, false) - } else { - getBoolean(FIXED_STATUS_ICONS_SWITCH, false) - } - ) - binding.statusIconsTopMargin.setOnSliderTouchListener(object : - Slider.OnSliderTouchListener { - override fun onStartTrackingTouch(slider: Slider) {} - - override fun onStopTrackingTouch(slider: Slider) { - putInt(FIXED_STATUS_ICONS_TOPMARGIN, slider.value.toInt()) - } - }) - - // Status icons side margin - binding.statusIconsSideMargin.sliderValue = getInt(FIXED_STATUS_ICONS_SIDEMARGIN, 0) - binding.statusIconsSideMargin.setEnabled( - getBoolean(FIXED_STATUS_ICONS_SWITCH, false) - ) - binding.statusIconsSideMargin.setOnSliderTouchListener(object : - Slider.OnSliderTouchListener { - override fun onStartTrackingTouch(slider: Slider) {} - - override fun onStopTrackingTouch(slider: Slider) { - putInt(FIXED_STATUS_ICONS_SIDEMARGIN, slider.value.toInt()) - } - }) - return view - } -} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedQuickSettings.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedQuickSettings.kt deleted file mode 100644 index 1f32b11d3..000000000 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedQuickSettings.kt +++ /dev/null @@ -1,201 +0,0 @@ -package com.drdisagree.iconify.ui.fragments - -import android.os.Bundle -import android.os.Handler -import android.os.Looper -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.CompoundButton -import com.drdisagree.iconify.R -import com.drdisagree.iconify.common.Const.SWITCH_ANIMATION_DELAY -import com.drdisagree.iconify.common.Preferences.HIDE_QSLABEL_SWITCH -import com.drdisagree.iconify.common.Preferences.HIDE_QS_FOOTER_BUTTONS -import com.drdisagree.iconify.common.Preferences.HIDE_QS_ON_LOCKSCREEN -import com.drdisagree.iconify.common.Preferences.HIDE_QS_SILENT_TEXT -import com.drdisagree.iconify.common.Preferences.QQS_TOPMARGIN -import com.drdisagree.iconify.common.Preferences.QS_TEXT_ALWAYS_WHITE -import com.drdisagree.iconify.common.Preferences.QS_TEXT_FOLLOW_ACCENT -import com.drdisagree.iconify.common.Preferences.QS_TOPMARGIN -import com.drdisagree.iconify.common.Preferences.VERTICAL_QSTILE_SWITCH -import com.drdisagree.iconify.config.RPrefs.clearPref -import com.drdisagree.iconify.config.RPrefs.getBoolean -import com.drdisagree.iconify.config.RPrefs.getInt -import com.drdisagree.iconify.config.RPrefs.putBoolean -import com.drdisagree.iconify.config.RPrefs.putInt -import com.drdisagree.iconify.databinding.FragmentXposedQuickSettingsBinding -import com.drdisagree.iconify.ui.base.BaseFragment -import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader -import com.drdisagree.iconify.utils.SystemUtil -import com.google.android.material.slider.Slider - -class XposedQuickSettings : BaseFragment() { - - private lateinit var binding: FragmentXposedQuickSettingsBinding - - override fun onCreateView( - inflater: LayoutInflater, - container: ViewGroup?, - savedInstanceState: Bundle? - ): View { - binding = FragmentXposedQuickSettingsBinding.inflate(inflater, container, false) - val view: View = binding.getRoot() - - // Header - setHeader( - requireContext(), - getParentFragmentManager(), - binding.header.toolbar, - R.string.activity_title_quick_settings - ) - - // Vertical QS Tile - binding.verticalTile.isSwitchChecked = getBoolean(VERTICAL_QSTILE_SWITCH, false) - binding.verticalTile.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(VERTICAL_QSTILE_SWITCH, isChecked) - - binding.hideTileLabel.setEnabled(isChecked) - - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - } - - // Hide label for vertical tiles - binding.hideTileLabel.setEnabled(binding.verticalTile.isSwitchChecked) - binding.hideTileLabel.isSwitchChecked = getBoolean(HIDE_QSLABEL_SWITCH, false) - binding.hideTileLabel.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(HIDE_QSLABEL_SWITCH, isChecked) - - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - } - - // QQS panel top margin slider - binding.qqsTopMargin.sliderValue = getInt(QQS_TOPMARGIN, 100) - binding.qqsTopMargin.setOnSliderTouchListener(object : Slider.OnSliderTouchListener { - override fun onStartTrackingTouch(slider: Slider) {} - - override fun onStopTrackingTouch(slider: Slider) { - putInt(QQS_TOPMARGIN, slider.value.toInt()) - - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - } - }) - binding.qqsTopMargin.setResetClickListener { - clearPref(QQS_TOPMARGIN) - - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - - true - } - - // QS panel top margin slider - binding.qsTopMargin.sliderValue = getInt(QS_TOPMARGIN, 100) - binding.qsTopMargin.setOnSliderTouchListener(object : Slider.OnSliderTouchListener { - override fun onStartTrackingTouch(slider: Slider) {} - - override fun onStopTrackingTouch(slider: Slider) { - putInt(QS_TOPMARGIN, slider.value.toInt()) - - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - } - }) - binding.qsTopMargin.setResetClickListener { - clearPref(QS_TOPMARGIN) - - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - - true - } - - // QS text always white - binding.labelWhite.isSwitchChecked = getBoolean(QS_TEXT_ALWAYS_WHITE, false) - binding.labelWhite.setSwitchChangeListener(qsTextWhiteListener) - - // QS text follow accent - binding.labelAccent.isSwitchChecked = getBoolean(QS_TEXT_FOLLOW_ACCENT, false) - binding.labelAccent.setSwitchChangeListener(qsTextAccentListener) - - // Hide QS on lockscreen - binding.hideQsOnLockscreen.isSwitchChecked = getBoolean(HIDE_QS_ON_LOCKSCREEN, false) - binding.hideQsOnLockscreen.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(HIDE_QS_ON_LOCKSCREEN, isChecked) - - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - } - - // Hide silent text - binding.hideSilentText.isSwitchChecked = getBoolean(HIDE_QS_SILENT_TEXT, false) - binding.hideSilentText.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(HIDE_QS_SILENT_TEXT, isChecked) - - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - } - - // Hide footer buttons - binding.hideFooterButtons.isSwitchChecked = getBoolean(HIDE_QS_FOOTER_BUTTONS, false) - binding.hideFooterButtons.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(HIDE_QS_FOOTER_BUTTONS, isChecked) - } - - return view - } - - private var qsTextWhiteListener: CompoundButton.OnCheckedChangeListener = - CompoundButton.OnCheckedChangeListener { _, isChecked -> - if (isChecked) { - putBoolean(QS_TEXT_FOLLOW_ACCENT, false) - - binding.labelAccent.setSwitchChangeListener(null) - binding.labelAccent.isSwitchChecked = false - binding.labelAccent.setSwitchChangeListener(qsTextAccentListener) - } - - putBoolean(QS_TEXT_ALWAYS_WHITE, isChecked) - - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - } - - private var qsTextAccentListener: CompoundButton.OnCheckedChangeListener = - CompoundButton.OnCheckedChangeListener { _: CompoundButton?, isChecked: Boolean -> - if (isChecked) { - putBoolean(QS_TEXT_ALWAYS_WHITE, false) - - binding.labelWhite.setSwitchChangeListener(null) - binding.labelWhite.isSwitchChecked = false - binding.labelWhite.setSwitchChangeListener(qsTextWhiteListener) - } - - putBoolean(QS_TEXT_FOLLOW_ACCENT, isChecked) - - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedStatusbar.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedStatusbar.kt deleted file mode 100644 index e8d6f947c..000000000 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedStatusbar.kt +++ /dev/null @@ -1,112 +0,0 @@ -package com.drdisagree.iconify.ui.fragments - -import android.os.Bundle -import android.os.Handler -import android.os.Looper -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.CompoundButton -import com.drdisagree.iconify.R -import com.drdisagree.iconify.common.Const.SWITCH_ANIMATION_DELAY -import com.drdisagree.iconify.common.Preferences.COLORED_STATUSBAR_ICON -import com.drdisagree.iconify.common.Preferences.HIDE_LOCKSCREEN_CARRIER -import com.drdisagree.iconify.common.Preferences.HIDE_LOCKSCREEN_STATUSBAR -import com.drdisagree.iconify.common.Preferences.SB_CLOCK_SIZE -import com.drdisagree.iconify.common.Preferences.SB_CLOCK_SIZE_SWITCH -import com.drdisagree.iconify.config.RPrefs.getBoolean -import com.drdisagree.iconify.config.RPrefs.getInt -import com.drdisagree.iconify.config.RPrefs.putBoolean -import com.drdisagree.iconify.config.RPrefs.putInt -import com.drdisagree.iconify.databinding.FragmentXposedStatusbarBinding -import com.drdisagree.iconify.ui.base.BaseFragment -import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader -import com.drdisagree.iconify.utils.SystemUtil -import com.google.android.material.slider.Slider - -class XposedStatusbar : BaseFragment() { - - private lateinit var binding: FragmentXposedStatusbarBinding - - override fun onCreateView( - inflater: LayoutInflater, - container: ViewGroup?, - savedInstanceState: Bundle? - ): View { - binding = FragmentXposedStatusbarBinding.inflate(inflater, container, false) - val view: View = binding.getRoot() - - // Header - setHeader( - requireContext(), - getParentFragmentManager(), - binding.header.toolbar, - R.string.activity_title_statusbar - ) - - // SB Clock Size Switch - binding.sbClockSizeSwitch.isSwitchChecked = getBoolean(SB_CLOCK_SIZE_SWITCH, false) - binding.sbClockSizeSwitch.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - binding.sbClockSize.visibility = if (isChecked) { - putBoolean(SB_CLOCK_SIZE_SWITCH, true) - putInt(SB_CLOCK_SIZE, binding.sbClockSize.sliderValue) - View.VISIBLE - } else { - putInt(SB_CLOCK_SIZE, 14) - putBoolean(SB_CLOCK_SIZE_SWITCH, false) - View.GONE - } - } - - // SB Clock Size Slider - binding.sbClockSize.sliderValue = getInt(SB_CLOCK_SIZE, 14) - binding.sbClockSize.setOnSliderTouchListener(object : Slider.OnSliderTouchListener { - override fun onStartTrackingTouch(slider: Slider) {} - - override fun onStopTrackingTouch(slider: Slider) { - putInt(SB_CLOCK_SIZE, slider.value.toInt()) - } - }) - binding.sbClockSize.visibility = if (binding.sbClockSizeSwitch.isSwitchChecked) { - View.VISIBLE - } else { - View.GONE - } - - // Colored statusbar icons - binding.coloredSbIcon.isSwitchChecked = getBoolean(COLORED_STATUSBAR_ICON, false) - binding.coloredSbIcon.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(COLORED_STATUSBAR_ICON, isChecked) - - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - } - - // Hide lockscreen carrier - binding.hideLockscreenCarrier.isSwitchChecked = getBoolean(HIDE_LOCKSCREEN_CARRIER, false) - binding.hideLockscreenCarrier.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(HIDE_LOCKSCREEN_CARRIER, isChecked) - - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - } - - // Hide lockscreen statusbar - binding.hideLockscreenStatusbar.isSwitchChecked = - getBoolean(HIDE_LOCKSCREEN_STATUSBAR, false) - binding.hideLockscreenStatusbar.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(HIDE_LOCKSCREEN_STATUSBAR, isChecked) - - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - } - - return view - } -} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedThemes.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedThemes.kt deleted file mode 100644 index 70813f669..000000000 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedThemes.kt +++ /dev/null @@ -1,178 +0,0 @@ -package com.drdisagree.iconify.ui.fragments - -import android.os.Bundle -import android.os.Handler -import android.os.Looper -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.CompoundButton -import com.drdisagree.iconify.R -import com.drdisagree.iconify.common.Const.SWITCH_ANIMATION_DELAY -import com.drdisagree.iconify.common.Dynamic.isAtleastA14 -import com.drdisagree.iconify.common.Preferences.BLACK_QSPANEL -import com.drdisagree.iconify.common.Preferences.DUALTONE_QSPANEL -import com.drdisagree.iconify.common.Preferences.FIX_NOTIFICATION_COLOR -import com.drdisagree.iconify.common.Preferences.FIX_NOTIFICATION_FOOTER_BUTTON_COLOR -import com.drdisagree.iconify.common.Preferences.FIX_QS_TILE_COLOR -import com.drdisagree.iconify.common.Preferences.FLUID_NOTIF_TRANSPARENCY -import com.drdisagree.iconify.common.Preferences.FLUID_POWERMENU_TRANSPARENCY -import com.drdisagree.iconify.common.Preferences.FLUID_QSPANEL -import com.drdisagree.iconify.common.Preferences.LIGHT_QSPANEL -import com.drdisagree.iconify.config.RPrefs.getBoolean -import com.drdisagree.iconify.config.RPrefs.putBoolean -import com.drdisagree.iconify.databinding.FragmentXposedThemesBinding -import com.drdisagree.iconify.ui.base.BaseFragment -import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader -import com.drdisagree.iconify.utils.SystemUtil - -class XposedThemes : BaseFragment() { - - private lateinit var binding: FragmentXposedThemesBinding - - override fun onCreateView( - inflater: LayoutInflater, - container: ViewGroup?, - savedInstanceState: Bundle? - ): View { - binding = FragmentXposedThemesBinding.inflate(inflater, container, false) - val view: View = binding.getRoot() - - // Header - setHeader( - requireContext(), - getParentFragmentManager(), - binding.header.toolbar, - R.string.activity_title_themes - ) - - // Light Theme - binding.lightTheme.isSwitchChecked = getBoolean(LIGHT_QSPANEL, false) - binding.lightTheme.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(LIGHT_QSPANEL, isChecked) - - binding.dualTone.setEnabled(isChecked) - - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - } - binding.dualTone.setEnabled(binding.lightTheme.isSwitchChecked) - - // Dual Tone - binding.dualTone.isSwitchChecked = getBoolean(DUALTONE_QSPANEL, false) - binding.dualTone.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(DUALTONE_QSPANEL, isChecked) - } - - // Pixel Black Theme - binding.blackTheme.isSwitchChecked = getBoolean(BLACK_QSPANEL, false) - binding.blackTheme.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(BLACK_QSPANEL, isChecked) - - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - } - - // Fluid QS Theme - binding.fluidQsTheme.isSwitchChecked = getBoolean(FLUID_QSPANEL, false) - binding.fluidQsTheme.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(FLUID_QSPANEL, isChecked) - - binding.fluidNotifTheme.setEnabled(isChecked) - binding.fluidPowermenuTheme.setEnabled(isChecked) - - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - } - binding.fluidNotifTheme.setEnabled(binding.fluidQsTheme.isSwitchChecked) - binding.fluidPowermenuTheme.setEnabled(binding.fluidQsTheme.isSwitchChecked) - - // Fluid QS Notification Transparency - binding.fluidNotifTheme.isSwitchChecked = getBoolean(FLUID_NOTIF_TRANSPARENCY, false) - binding.fluidNotifTheme.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(FLUID_NOTIF_TRANSPARENCY, isChecked) - - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - } - - // Fluid QS Power Menu Transparency - binding.fluidPowermenuTheme.isSwitchChecked = - getBoolean(FLUID_POWERMENU_TRANSPARENCY, false) - binding.fluidPowermenuTheme.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(FLUID_POWERMENU_TRANSPARENCY, isChecked) - - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - } - - // Others section - binding.sectionOthers.visibility = if (isAtleastA14) { - View.VISIBLE - } else { - View.GONE - } - - // Fix qs tile color - binding.fixQsTileColor.visibility = if (isAtleastA14) { - View.VISIBLE - } else { - View.GONE - } - binding.fixQsTileColor.isSwitchChecked = getBoolean(FIX_QS_TILE_COLOR, false) - binding.fixQsTileColor.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(FIX_QS_TILE_COLOR, isChecked) - - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - } - - // Fix notification color - binding.fixNotificationColor.visibility = if (isAtleastA14) { - View.VISIBLE - } else { - View.GONE - } - binding.fixNotificationColor.isSwitchChecked = getBoolean(FIX_NOTIFICATION_COLOR, false) - binding.fixNotificationColor.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(FIX_NOTIFICATION_COLOR, isChecked) - - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - } - - // Fix notification footer button color - binding.fixNotificationFooterButtonColor.visibility = if (isAtleastA14) { - View.VISIBLE - } else { - View.GONE - } - binding.fixNotificationFooterButtonColor.isSwitchChecked = getBoolean( - FIX_NOTIFICATION_FOOTER_BUTTON_COLOR, false - ) - binding.fixNotificationFooterButtonColor.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(FIX_NOTIFICATION_FOOTER_BUTTON_COLOR, isChecked) - - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - } - - return view - } -} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedTransparencyBlur.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedTransparencyBlur.kt deleted file mode 100644 index b91566648..000000000 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedTransparencyBlur.kt +++ /dev/null @@ -1,187 +0,0 @@ -package com.drdisagree.iconify.ui.fragments - -import android.os.Bundle -import android.os.Handler -import android.os.Looper -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.CompoundButton -import com.drdisagree.iconify.R -import com.drdisagree.iconify.common.Const.SWITCH_ANIMATION_DELAY -import com.drdisagree.iconify.common.Preferences.AGGRESSIVE_QSPANEL_BLUR_SWITCH -import com.drdisagree.iconify.common.Preferences.BLUR_RADIUS_VALUE -import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_SHADE_SWITCH -import com.drdisagree.iconify.common.Preferences.NOTIF_TRANSPARENCY_SWITCH -import com.drdisagree.iconify.common.Preferences.QSALPHA_LEVEL -import com.drdisagree.iconify.common.Preferences.QSPANEL_BLUR_SWITCH -import com.drdisagree.iconify.common.Preferences.QS_TRANSPARENCY_SWITCH -import com.drdisagree.iconify.config.RPrefs.getBoolean -import com.drdisagree.iconify.config.RPrefs.getInt -import com.drdisagree.iconify.config.RPrefs.putBoolean -import com.drdisagree.iconify.config.RPrefs.putInt -import com.drdisagree.iconify.databinding.FragmentXposedTransparencyBlurBinding -import com.drdisagree.iconify.ui.base.BaseFragment -import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader -import com.drdisagree.iconify.utils.SystemUtil -import com.drdisagree.iconify.utils.SystemUtil.disableBlur -import com.drdisagree.iconify.utils.SystemUtil.enableBlur -import com.drdisagree.iconify.utils.SystemUtil.isBlurEnabled -import com.google.android.material.slider.Slider - -class XposedTransparencyBlur : BaseFragment() { - - private lateinit var binding: FragmentXposedTransparencyBlurBinding - - override fun onCreateView( - inflater: LayoutInflater, - container: ViewGroup?, - savedInstanceState: Bundle? - ): View { - binding = FragmentXposedTransparencyBlurBinding.inflate(inflater, container, false) - val view: View = binding.getRoot() - - // Header - setHeader( - requireContext(), - getParentFragmentManager(), - binding.header.toolbar, - R.string.activity_title_transparency_blur - ) - - // Qs Panel & Notification Shade Transparency - binding.transparentQsPanel.isSwitchChecked = getBoolean(QS_TRANSPARENCY_SWITCH, false) - binding.transparentQsPanel.setSwitchChangeListener(qsTransparencyListener) - binding.transparentNotifShade.isSwitchChecked = getBoolean(NOTIF_TRANSPARENCY_SWITCH, false) - binding.transparentNotifShade.setSwitchChangeListener(notifTransparencyListener) - binding.keepLockscreenShade.setEnabled(binding.transparentQsPanel.isSwitchChecked || binding.transparentNotifShade.isSwitchChecked) - binding.keepLockscreenShade.isSwitchChecked = getBoolean(LOCKSCREEN_SHADE_SWITCH, false) - binding.keepLockscreenShade.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(LOCKSCREEN_SHADE_SWITCH, isChecked) - - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - } - - // Transparency Alpha - binding.transparencySlider.setEnabled(binding.transparentQsPanel.isSwitchChecked || binding.transparentNotifShade.isSwitchChecked) - binding.transparencySlider.sliderValue = getInt(QSALPHA_LEVEL, 60) - binding.transparencySlider.setOnSliderTouchListener(object : - Slider.OnSliderTouchListener { - override fun onStartTrackingTouch(slider: Slider) {} - - override fun onStopTrackingTouch(slider: Slider) { - putInt(QSALPHA_LEVEL, slider.value.toInt()) - } - }) - binding.transparencySlider.setResetClickListener { - putInt(QSALPHA_LEVEL, 60) - - true - } - - // Qs Panel Blur Enabler - putBoolean(QSPANEL_BLUR_SWITCH, isBlurEnabled(false)) - binding.blur.isSwitchChecked = getBoolean(QSPANEL_BLUR_SWITCH, false) - binding.blur.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(QSPANEL_BLUR_SWITCH, isChecked) - - if (isChecked) { - enableBlur(false) - } else { - binding.aggressiveBlur.isSwitchChecked = false - disableBlur(false) - } - - binding.aggressiveBlur.visibility = if (isChecked) View.VISIBLE else View.GONE - } - - // Aggressive Qs Panel Blur Enabler - putBoolean(AGGRESSIVE_QSPANEL_BLUR_SWITCH, isBlurEnabled(true)) - binding.aggressiveBlur.visibility = - if (binding.blur.isSwitchChecked) { - View.VISIBLE - } else { - View.GONE - } - binding.aggressiveBlur.isSwitchChecked = getBoolean(AGGRESSIVE_QSPANEL_BLUR_SWITCH, false) - binding.aggressiveBlur.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(AGGRESSIVE_QSPANEL_BLUR_SWITCH, isChecked) - - if (isChecked) { - enableBlur(true) - } else { - disableBlur(true) - } - } - - // Blur Intensity - binding.blurIntensity.sliderValue = getInt(BLUR_RADIUS_VALUE, 23) - binding.blurIntensity.setOnSliderTouchListener(object : Slider.OnSliderTouchListener { - override fun onStartTrackingTouch(slider: Slider) {} - - override fun onStopTrackingTouch(slider: Slider) { - putInt(BLUR_RADIUS_VALUE, slider.value.toInt()) - - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - } - }) - binding.blurIntensity.setResetClickListener { - putInt(BLUR_RADIUS_VALUE, 23) - - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - - true - } - - return view - } - - private var qsTransparencyListener: CompoundButton.OnCheckedChangeListener = - CompoundButton.OnCheckedChangeListener { _, isChecked -> - putBoolean(QS_TRANSPARENCY_SWITCH, isChecked) - - if (isChecked) { - putBoolean(NOTIF_TRANSPARENCY_SWITCH, false) - binding.transparentNotifShade.setSwitchChangeListener(null) - binding.transparentNotifShade.isSwitchChecked = false - binding.transparentNotifShade.setSwitchChangeListener(notifTransparencyListener) - } - - binding.keepLockscreenShade.setEnabled(binding.transparentQsPanel.isSwitchChecked || binding.transparentNotifShade.isSwitchChecked) - binding.transparencySlider.setEnabled(binding.transparentQsPanel.isSwitchChecked || binding.transparentNotifShade.isSwitchChecked) - - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - } - - private var notifTransparencyListener: CompoundButton.OnCheckedChangeListener = - CompoundButton.OnCheckedChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(NOTIF_TRANSPARENCY_SWITCH, isChecked) - - if (isChecked) { - putBoolean(QS_TRANSPARENCY_SWITCH, false) - binding.transparentQsPanel.setSwitchChangeListener(null) - binding.transparentQsPanel.isSwitchChecked = false - binding.transparentQsPanel.setSwitchChangeListener(qsTransparencyListener) - } - - binding.keepLockscreenShade.setEnabled(binding.transparentQsPanel.isSwitchChecked || binding.transparentNotifShade.isSwitchChecked) - binding.transparencySlider.setEnabled(binding.transparentQsPanel.isSwitchChecked || binding.transparentNotifShade.isSwitchChecked) - - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - } -} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedVolumePanel.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedVolumePanel.kt deleted file mode 100644 index 3c83e7995..000000000 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/XposedVolumePanel.kt +++ /dev/null @@ -1,67 +0,0 @@ -package com.drdisagree.iconify.ui.fragments - -import android.os.Bundle -import android.os.Handler -import android.os.Looper -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.CompoundButton -import com.drdisagree.iconify.R -import com.drdisagree.iconify.common.Const.SWITCH_ANIMATION_DELAY -import com.drdisagree.iconify.common.Preferences.VOLUME_COLORED_RINGER_ICON -import com.drdisagree.iconify.common.Preferences.VOLUME_PANEL_PERCENTAGE -import com.drdisagree.iconify.common.Preferences.VOLUME_PANEL_SAFETY_WARNING -import com.drdisagree.iconify.config.RPrefs.getBoolean -import com.drdisagree.iconify.config.RPrefs.putBoolean -import com.drdisagree.iconify.databinding.FragmentXposedVolumePanelBinding -import com.drdisagree.iconify.ui.base.BaseFragment -import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader -import com.drdisagree.iconify.utils.SystemUtil - -class XposedVolumePanel : BaseFragment() { - - private lateinit var binding: FragmentXposedVolumePanelBinding - - override fun onCreateView( - inflater: LayoutInflater, - container: ViewGroup?, - savedInstanceState: Bundle? - ): View { - binding = FragmentXposedVolumePanelBinding.inflate(inflater, container, false) - val view: View = binding.getRoot() - - // Header - setHeader( - requireContext(), - getParentFragmentManager(), - binding.header.toolbar, - R.string.activity_title_volume_panel - ) - - // Volume percentage - binding.volumePercentage.isSwitchChecked = getBoolean(VOLUME_PANEL_PERCENTAGE, false) - binding.volumePercentage.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(VOLUME_PANEL_PERCENTAGE, isChecked) - - Handler(Looper.getMainLooper()).postDelayed( - { SystemUtil.handleSystemUIRestart() }, - SWITCH_ANIMATION_DELAY - ) - } - - // Safety warning - binding.safetyWarning.isSwitchChecked = getBoolean(VOLUME_PANEL_SAFETY_WARNING, true) - binding.safetyWarning.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(VOLUME_PANEL_SAFETY_WARNING, isChecked) - } - - // Colored ringer icon - binding.coloredRingerIcon.isSwitchChecked = getBoolean(VOLUME_COLORED_RINGER_ICON, false) - binding.coloredRingerIcon.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> - putBoolean(VOLUME_COLORED_RINGER_ICON, isChecked) - } - - return view - } -} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/BrightnessBar.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/home/BrightnessBar.kt similarity index 98% rename from app/src/main/java/com/drdisagree/iconify/ui/fragments/BrightnessBar.kt rename to app/src/main/java/com/drdisagree/iconify/ui/fragments/home/BrightnessBar.kt index 091372178..2d151e290 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/BrightnessBar.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/home/BrightnessBar.kt @@ -1,4 +1,4 @@ -package com.drdisagree.iconify.ui.fragments +package com.drdisagree.iconify.ui.fragments.home import android.os.Bundle import android.view.LayoutInflater @@ -64,7 +64,7 @@ class BrightnessBar : BaseFragment() { val brightnessBarActivityList = ArrayList().apply { add( MenuModel( - R.id.action_brightnessBar_to_brightnessBarPixel, + BrightnessBarPixel(), resources.getString(R.string.activity_title_pixel_variant), resources.getString(R.string.activity_desc_pixel_variant), R.drawable.ic_pixel_device diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/BrightnessBarPixel.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/home/BrightnessBarPixel.kt similarity index 99% rename from app/src/main/java/com/drdisagree/iconify/ui/fragments/BrightnessBarPixel.kt rename to app/src/main/java/com/drdisagree/iconify/ui/fragments/home/BrightnessBarPixel.kt index 6c44967e8..bad96b49c 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/BrightnessBarPixel.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/home/BrightnessBarPixel.kt @@ -1,4 +1,4 @@ -package com.drdisagree.iconify.ui.fragments +package com.drdisagree.iconify.ui.fragments.home import android.os.Bundle import android.view.LayoutInflater diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/home/CellularIcons.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/home/CellularIcons.kt new file mode 100644 index 000000000..31f7c6af5 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/home/CellularIcons.kt @@ -0,0 +1,123 @@ +package com.drdisagree.iconify.ui.fragments.home + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.recyclerview.widget.LinearLayoutManager +import com.drdisagree.iconify.BuildConfig +import com.drdisagree.iconify.R +import com.drdisagree.iconify.databinding.FragmentIconPackBinding +import com.drdisagree.iconify.ui.adapters.IconPackAdapter +import com.drdisagree.iconify.ui.base.BaseFragment +import com.drdisagree.iconify.ui.dialogs.LoadingDialog +import com.drdisagree.iconify.ui.models.IconPackModel +import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader +import com.drdisagree.iconify.utils.overlay.manager.SignalIconManager +import java.util.Locale + +class CellularIcons : BaseFragment() { + + private lateinit var binding: FragmentIconPackBinding + private var loadingDialog: LoadingDialog? = null + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View { + binding = FragmentIconPackBinding.inflate(inflater, container, false) + val view: View = binding.getRoot() + + // Header + setHeader( + requireContext(), + getParentFragmentManager(), + binding.header.toolbar, + R.string.activity_title_cellular_icons + ) + + // Loading dialog while enabling or disabling pack + loadingDialog = LoadingDialog(requireContext()) + + // RecyclerView + binding.iconPackContainer.setLayoutManager(LinearLayoutManager(requireContext())) + + binding.iconPackContainer.setAdapter(initIconPackItems()) + binding.iconPackContainer.setHasFixedSize(true) + + return view + } + + @Suppress("DiscouragedApi") + private fun initIconPackItems(): IconPackAdapter { + val iconPackList = ArrayList().apply { + val themes = listOf( + "Aquarium", "Aurora", "Bars", "Butterfly", "Circle", "Daun", + "Dec", "Deep", "Dora", "ZigZag", "Equal", "Faint UI", + "Fan", "Lorn", "Gradicon", "Huawei", "Inside", "iOS", + "Mini", "Nothing Dot", "Odin", "Pills", "Plumpy", "Rel", + "Roman", "Round", "Scroll", "Sea", "Sneaky", "Stack", + "Stroke", "Wannui", "Wavy", "Windows", "Wing", "Xperia" + ) + + val packageName = BuildConfig.APPLICATION_ID + + themes.forEachIndexed { _, themeName -> + val themeResourceName = themeName.replace(" ", "_").lowercase(Locale.ROOT) + + add( + IconPackModel( + themeName, + 0, + resources.getIdentifier( + "preview_${themeResourceName}_ic_signal_cellular_1_4_bar", + "drawable", + packageName + ), + resources.getIdentifier( + "preview_${themeResourceName}_ic_signal_cellular_2_4_bar", + "drawable", + packageName + ), + resources.getIdentifier( + "preview_${themeResourceName}_ic_signal_cellular_2_4_bar", + "drawable", + packageName + ), + resources.getIdentifier( + "preview_${themeResourceName}_ic_signal_cellular_4_4_bar", + "drawable", + packageName + ) + ) + ) + } + } + + return IconPackAdapter( + requireContext(), + iconPackList, + loadingDialog!!, + "SGIC", + onButtonClick + ) + } + + private val onButtonClick = object : IconPackAdapter.OnButtonClick { + + override fun onEnableClick(position: Int, item: IconPackModel) { + SignalIconManager.enableOverlay(n = position + 1, "SGIC") + } + + override fun onDisableClick(position: Int, item: IconPackModel) { + SignalIconManager.disableOverlay(n = position + 1, "SGIC") + } + } + + override fun onDestroy() { + loadingDialog?.dismiss() + + super.onDestroy() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/home/Home.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/home/Home.kt new file mode 100644 index 000000000..321a44c02 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/home/Home.kt @@ -0,0 +1,112 @@ +package com.drdisagree.iconify.ui.fragments.home + +import android.os.Bundle +import android.view.View +import androidx.preference.Preference +import com.drdisagree.iconify.BuildConfig +import com.drdisagree.iconify.Iconify.Companion.appContext +import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Preferences.FIRST_INSTALL +import com.drdisagree.iconify.common.Preferences.UPDATE_DETECTED +import com.drdisagree.iconify.common.Preferences.VER_CODE +import com.drdisagree.iconify.config.RPrefs.putBoolean +import com.drdisagree.iconify.config.RPrefs.putInt +import com.drdisagree.iconify.services.UpdateScheduler.scheduleUpdates +import com.drdisagree.iconify.ui.activities.MainActivity.Companion.replaceFragment +import com.drdisagree.iconify.ui.base.ControlledPreferenceFragmentCompat +import com.drdisagree.iconify.ui.fragments.settings.AppUpdates +import com.drdisagree.iconify.ui.preferences.UpdateCheckerPreference +import com.drdisagree.iconify.utils.SystemUtil.saveBootId +import com.google.android.material.appbar.AppBarLayout +import com.google.android.material.bottomnavigation.BottomNavigationView + +class Home : ControlledPreferenceFragmentCompat(), AppBarLayout.OnOffsetChangedListener { + + private lateinit var appBarLayout: AppBarLayout + + override val title: String + get() = getString(R.string.app_name) + + override val backButtonEnabled: Boolean + get() = false + + override val layoutResource: Int + get() = R.xml.home + + override val hasMenu: Boolean + get() = true + + override val menuResource: Int + get() = R.menu.home_menu + + override val themeResource: Int + get() = R.style.PrefsThemeCollapsingToolbar + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + + val intent = requireActivity().intent + if (intent != null && intent.getBooleanExtra(AppUpdates.KEY_NEW_UPDATE, false)) { + (requireActivity().findViewById(R.id.bottomNavigationView) as BottomNavigationView) + .selectedItemId = R.id.settings + replaceFragment(AppUpdates()) + intent.removeExtra(AppUpdates.KEY_NEW_UPDATE) + } else { + scheduleUpdates(appContext) + } + + appBarLayout = view.findViewById(R.id.appBarLayout) + appBarLayout.addOnOffsetChangedListener(this) + + if (isToolbarFullyExpanded) { + listView.scrollToPosition(0) + } + + putBoolean(FIRST_INSTALL, false) + putBoolean(UPDATE_DETECTED, false) + putInt(VER_CODE, BuildConfig.VERSION_CODE) + saveBootId + } + + override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { + super.onCreatePreferences(savedInstanceState, rootKey) + + findPreference("newUpdate")?.apply { + onPreferenceClickListener = + Preference.OnPreferenceClickListener { + replaceFragment(AppUpdates()) + true + } + + checkForUpdate() + } + } + + override fun onOffsetChanged(appBarLayout: AppBarLayout?, verticalOffset: Int) { + if (verticalOffset == 0) { + if (!isToolbarFullyExpanded) { + listView.scrollToPosition(0) + isToolbarFullyExpanded = true + } + } else { + isToolbarFullyExpanded = false + } + } + + override fun onResume() { + super.onResume() + + if (isToolbarFullyExpanded) { + listView.scrollToPosition(0) + } + } + + override fun onDestroyView() { + super.onDestroyView() + appBarLayout.removeOnOffsetChangedListener(this) + } + + companion object { + private var isToolbarFullyExpanded = true + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/IconPack.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/home/IconPack.kt similarity index 79% rename from app/src/main/java/com/drdisagree/iconify/ui/fragments/IconPack.kt rename to app/src/main/java/com/drdisagree/iconify/ui/fragments/home/IconPack.kt index d4c1d9ff7..9d840f588 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/IconPack.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/home/IconPack.kt @@ -1,20 +1,16 @@ -package com.drdisagree.iconify.ui.fragments +package com.drdisagree.iconify.ui.fragments.home import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import androidx.recyclerview.widget.ConcatAdapter import androidx.recyclerview.widget.LinearLayoutManager import com.drdisagree.iconify.R import com.drdisagree.iconify.databinding.FragmentIconPackBinding import com.drdisagree.iconify.ui.adapters.IconPackAdapter -import com.drdisagree.iconify.ui.adapters.MenuAdapter -import com.drdisagree.iconify.ui.adapters.SectionTitleAdapter import com.drdisagree.iconify.ui.base.BaseFragment import com.drdisagree.iconify.ui.dialogs.LoadingDialog import com.drdisagree.iconify.ui.models.IconPackModel -import com.drdisagree.iconify.ui.models.MenuModel import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader import com.drdisagree.iconify.utils.overlay.manager.IconPackManager @@ -45,53 +41,12 @@ class IconPack : BaseFragment() { // RecyclerView binding.iconPackContainer.setLayoutManager(LinearLayoutManager(requireContext())) - val adapter = ConcatAdapter( - initActivityItems(), - SectionTitleAdapter( - requireContext(), - R.layout.view_section_title, - R.string.icon_pack_styles - ), - initIconPackItems() - ) - - binding.iconPackContainer.setAdapter(adapter) + binding.iconPackContainer.setAdapter(initIconPackItems()) binding.iconPackContainer.setHasFixedSize(true) return view } - private fun initActivityItems(): MenuAdapter { - val iconPackActivityList = ArrayList().apply { - add( - MenuModel( - R.id.action_iconPack_to_coloredBattery, - resources.getString(R.string.activity_title_colored_battery), - resources.getString(R.string.activity_desc_colored_battery), - R.drawable.ic_colored_battery - ) - ) - add( - MenuModel( - R.id.action_iconPack_to_mediaIcons, - resources.getString(R.string.activity_title_media_icons), - resources.getString(R.string.activity_desc_media_icons), - R.drawable.ic_media_player_icon - ) - ) - add( - MenuModel( - R.id.action_iconPack_to_settingsIcons, - resources.getString(R.string.activity_title_settings_icons), - resources.getString(R.string.activity_desc_settings_icons), - R.drawable.ic_settings_icon_pack - ) - ) - } - - return MenuAdapter(requireContext(), iconPackActivityList) - } - private fun initIconPackItems(): IconPackAdapter { val iconPackList = ArrayList().apply { add( @@ -248,11 +203,11 @@ class IconPack : BaseFragment() { private val onButtonClick = object : IconPackAdapter.OnButtonClick { override fun onEnableClick(position: Int, item: IconPackModel) { - IconPackManager.enableOverlay(position + 1) + IconPackManager.enableOverlay(index = position + 1, "IPAS", "IPSUI") } override fun onDisableClick(position: Int, item: IconPackModel) { - IconPackManager.disableOverlay(position + 1) + IconPackManager.disableOverlay(index = position + 1, "IPAS", "IPSUI") } } diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/IconShape.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/home/IconShape.kt similarity index 95% rename from app/src/main/java/com/drdisagree/iconify/ui/fragments/IconShape.kt rename to app/src/main/java/com/drdisagree/iconify/ui/fragments/home/IconShape.kt index 72f34d243..e9d922297 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/IconShape.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/home/IconShape.kt @@ -1,7 +1,5 @@ -package com.drdisagree.iconify.ui.fragments +package com.drdisagree.iconify.ui.fragments.home -import android.annotation.SuppressLint -import android.content.res.ColorStateList import android.os.Bundle import android.os.Handler import android.os.Looper @@ -9,19 +7,14 @@ import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import android.widget.GridLayout -import android.widget.LinearLayout -import android.widget.TextView import android.widget.Toast -import androidx.annotation.ColorInt -import androidx.core.content.ContextCompat import androidx.recyclerview.widget.GridLayoutManager import com.drdisagree.iconify.Iconify.Companion.appContext import com.drdisagree.iconify.Iconify.Companion.appContextLocale import com.drdisagree.iconify.R import com.drdisagree.iconify.common.Const.FRAMEWORK_PACKAGE import com.drdisagree.iconify.common.Preferences.SELECTED_ICON_SHAPE -import com.drdisagree.iconify.config.Prefs +import com.drdisagree.iconify.config.RPrefs import com.drdisagree.iconify.databinding.FragmentIconShapeBinding import com.drdisagree.iconify.ui.adapters.IconShapeAdapter import com.drdisagree.iconify.ui.base.BaseFragment @@ -216,7 +209,7 @@ class IconShape : BaseFragment() { override fun onShapeClick(position: Int, item: IconShapeModel) { if (position == 0) { - Prefs.putInt(SELECTED_ICON_SHAPE, 0) + RPrefs.putInt(SELECTED_ICON_SHAPE, 0) OverlayUtil.disableOverlay("IconifyComponentSIS.overlay") Toast.makeText( @@ -254,7 +247,7 @@ class IconShape : BaseFragment() { } if (!hasErroredOut.get()) { - Prefs.putInt(SELECTED_ICON_SHAPE, position) + RPrefs.putInt(SELECTED_ICON_SHAPE, position) refreshAdapter() } diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/MediaIcons.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/home/MediaIcons.kt similarity index 98% rename from app/src/main/java/com/drdisagree/iconify/ui/fragments/MediaIcons.kt rename to app/src/main/java/com/drdisagree/iconify/ui/fragments/home/MediaIcons.kt index 052dea5ff..617a9803a 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/MediaIcons.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/home/MediaIcons.kt @@ -1,4 +1,4 @@ -package com.drdisagree.iconify.ui.fragments +package com.drdisagree.iconify.ui.fragments.home import android.graphics.drawable.Drawable import android.os.Build @@ -13,7 +13,7 @@ import android.widget.TextView import androidx.core.content.ContextCompat import com.drdisagree.iconify.Iconify.Companion.appContext import com.drdisagree.iconify.R -import com.drdisagree.iconify.config.Prefs.getBoolean +import com.drdisagree.iconify.config.RPrefs.getBoolean import com.drdisagree.iconify.databinding.FragmentMediaIconsBinding import com.drdisagree.iconify.ui.base.BaseFragment import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/Notification.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/home/Notification.kt similarity index 93% rename from app/src/main/java/com/drdisagree/iconify/ui/fragments/Notification.kt rename to app/src/main/java/com/drdisagree/iconify/ui/fragments/home/Notification.kt index 31ef57a41..4851029f6 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/Notification.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/home/Notification.kt @@ -1,4 +1,4 @@ -package com.drdisagree.iconify.ui.fragments +package com.drdisagree.iconify.ui.fragments.home import android.os.Bundle import android.view.LayoutInflater @@ -51,7 +51,7 @@ class Notification : BaseFragment() { R.layout.view_section_title_notif, R.string.notification_styles ), - initNotifItems() + initNotificationItems() ) binding.notificationsContainer.setAdapter(adapter) @@ -61,10 +61,10 @@ class Notification : BaseFragment() { } private fun initActivityItems(): MenuAdapter { - val notifActivityList = ArrayList().apply { + val notificationActivityList = ArrayList().apply { add( MenuModel( - R.id.action_notification_to_notificationPixel, + NotificationPixel(), resources.getString(R.string.activity_title_pixel_variant), resources.getString(R.string.activity_desc_pixel_variant), R.drawable.ic_pixel_device @@ -74,12 +74,12 @@ class Notification : BaseFragment() { return MenuAdapter( requireContext(), - notifActivityList + notificationActivityList ) } - private fun initNotifItems(): NotificationAdapter { - val notifList = ArrayList().apply { + private fun initNotificationItems(): NotificationAdapter { + val notificationList = ArrayList().apply { add( NotificationModel( "Default", @@ -204,7 +204,7 @@ class Notification : BaseFragment() { return NotificationAdapter( requireContext(), - notifList, + notificationList, loadingDialog!!, "NFN" ) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/NotificationPixel.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/home/NotificationPixel.kt similarity index 99% rename from app/src/main/java/com/drdisagree/iconify/ui/fragments/NotificationPixel.kt rename to app/src/main/java/com/drdisagree/iconify/ui/fragments/home/NotificationPixel.kt index 418d4754a..0475809ef 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/NotificationPixel.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/home/NotificationPixel.kt @@ -1,4 +1,4 @@ -package com.drdisagree.iconify.ui.fragments +package com.drdisagree.iconify.ui.fragments.home import android.os.Bundle import android.view.LayoutInflater diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/ProgressBar.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/home/ProgressBar.kt similarity index 98% rename from app/src/main/java/com/drdisagree/iconify/ui/fragments/ProgressBar.kt rename to app/src/main/java/com/drdisagree/iconify/ui/fragments/home/ProgressBar.kt index d87dcd134..170ac1670 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/ProgressBar.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/home/ProgressBar.kt @@ -1,4 +1,4 @@ -package com.drdisagree.iconify.ui.fragments +package com.drdisagree.iconify.ui.fragments.home import android.os.Bundle import android.view.LayoutInflater diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/QsPanelTile.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/home/QsPanelTile.kt similarity index 98% rename from app/src/main/java/com/drdisagree/iconify/ui/fragments/QsPanelTile.kt rename to app/src/main/java/com/drdisagree/iconify/ui/fragments/home/QsPanelTile.kt index da31606f1..a299a699d 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/QsPanelTile.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/home/QsPanelTile.kt @@ -1,4 +1,4 @@ -package com.drdisagree.iconify.ui.fragments +package com.drdisagree.iconify.ui.fragments.home import android.annotation.SuppressLint import android.content.res.Configuration @@ -67,7 +67,7 @@ class QsPanelTile : BaseFragment() { val qsShapeActivityList = ArrayList().apply { add( MenuModel( - R.id.action_qsPanelTile_to_qsPanelTilePixel, + QsPanelTilePixel(), resources.getString(R.string.activity_title_pixel_variant), resources.getString(R.string.activity_desc_pixel_variant), R.drawable.ic_pixel_device diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/QsPanelTilePixel.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/home/QsPanelTilePixel.kt similarity index 99% rename from app/src/main/java/com/drdisagree/iconify/ui/fragments/QsPanelTilePixel.kt rename to app/src/main/java/com/drdisagree/iconify/ui/fragments/home/QsPanelTilePixel.kt index c746ec857..84f88571e 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/QsPanelTilePixel.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/home/QsPanelTilePixel.kt @@ -1,4 +1,4 @@ -package com.drdisagree.iconify.ui.fragments +package com.drdisagree.iconify.ui.fragments.home import android.annotation.SuppressLint import android.content.res.Configuration diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/SettingsIcons.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/home/SettingsIcons.kt similarity index 90% rename from app/src/main/java/com/drdisagree/iconify/ui/fragments/SettingsIcons.kt rename to app/src/main/java/com/drdisagree/iconify/ui/fragments/home/SettingsIcons.kt index 051533954..7612d759f 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/SettingsIcons.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/home/SettingsIcons.kt @@ -1,4 +1,4 @@ -package com.drdisagree.iconify.ui.fragments +package com.drdisagree.iconify.ui.fragments.home import android.os.Bundle import android.os.Handler @@ -20,8 +20,8 @@ import com.drdisagree.iconify.common.Preferences.SELECTED_SETTINGS_ICONS_COLOR import com.drdisagree.iconify.common.Preferences.SELECTED_SETTINGS_ICONS_SET import com.drdisagree.iconify.common.Preferences.SELECTED_SETTINGS_ICONS_SHAPE import com.drdisagree.iconify.common.Preferences.SELECTED_SETTINGS_ICONS_SIZE -import com.drdisagree.iconify.config.Prefs -import com.drdisagree.iconify.config.Prefs.clearPrefs +import com.drdisagree.iconify.config.RPrefs +import com.drdisagree.iconify.config.RPrefs.clearPrefs import com.drdisagree.iconify.databinding.FragmentSettingsIconsBinding import com.drdisagree.iconify.ui.dialogs.LoadingDialog import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader @@ -58,31 +58,31 @@ class SettingsIcons : Fragment() { loadingDialog = LoadingDialog(requireContext()) // Retrieve previously saved preferences - selectedIcon = Prefs.getInt(SELECTED_SETTINGS_ICONS_SET, 1) + selectedIcon = RPrefs.getInt(SELECTED_SETTINGS_ICONS_SET, 1) // Background style - binding.bgStyle.setSelectedIndex(Prefs.getInt(SELECTED_SETTINGS_ICONS_BG, 1) - 1) + binding.bgStyle.setSelectedIndex(RPrefs.getInt(SELECTED_SETTINGS_ICONS_BG, 1) - 1) binding.bgStyle.setOnItemSelectedListener { index: Int -> selectedBackground = index + 1 } selectedBackground = binding.bgStyle.getSelectedIndex() + 1 // Background Shape - binding.bgShape.setSelectedIndex(Prefs.getInt(SELECTED_SETTINGS_ICONS_SHAPE, 1) - 1) + binding.bgShape.setSelectedIndex(RPrefs.getInt(SELECTED_SETTINGS_ICONS_SHAPE, 1) - 1) binding.bgShape.setOnItemSelectedListener { index: Int -> selectedShape = index + 1 } selectedShape = binding.bgShape.getSelectedIndex() + 1 // Icon Size - binding.iconSize.setSelectedIndex(Prefs.getInt(SELECTED_SETTINGS_ICONS_SIZE, 1) - 1) + binding.iconSize.setSelectedIndex(RPrefs.getInt(SELECTED_SETTINGS_ICONS_SIZE, 1) - 1) binding.iconSize.setOnItemSelectedListener { index: Int -> selectedSize = index + 1 } selectedSize = binding.iconSize.getSelectedIndex() + 1 // Icon color - binding.iconColor.setSelectedIndex(Prefs.getInt(SELECTED_SETTINGS_ICONS_COLOR, 1) - 1) + binding.iconColor.setSelectedIndex(RPrefs.getInt(SELECTED_SETTINGS_ICONS_COLOR, 1) - 1) binding.iconColor.setOnItemSelectedListener { index: Int -> selectedIconColor = index + 1 } @@ -115,7 +115,7 @@ class SettingsIcons : Fragment() { refreshBackground() // Enable and disable button - if (Prefs.getBoolean("IconifyComponentSIP1.overlay")) { + if (RPrefs.getBoolean("IconifyComponentSIP1.overlay")) { binding.disableSettingsIcons.visibility = View.VISIBLE } binding.enableSettingsIcons.setOnClickListener { @@ -146,11 +146,11 @@ class SettingsIcons : Fragment() { Handler(Looper.getMainLooper()).post { if (!hasErroredOut.get()) { - Prefs.putInt(SELECTED_SETTINGS_ICONS_SET, selectedIcon) - Prefs.putInt(SELECTED_SETTINGS_ICONS_BG, selectedBackground) - Prefs.putInt(SELECTED_SETTINGS_ICONS_SHAPE, selectedShape) - Prefs.putInt(SELECTED_SETTINGS_ICONS_SIZE, selectedSize) - Prefs.putInt(SELECTED_SETTINGS_ICONS_COLOR, selectedIconColor) + RPrefs.putInt(SELECTED_SETTINGS_ICONS_SET, selectedIcon) + RPrefs.putInt(SELECTED_SETTINGS_ICONS_BG, selectedBackground) + RPrefs.putInt(SELECTED_SETTINGS_ICONS_SHAPE, selectedShape) + RPrefs.putInt(SELECTED_SETTINGS_ICONS_SIZE, selectedSize) + RPrefs.putInt(SELECTED_SETTINGS_ICONS_COLOR, selectedIconColor) binding.disableSettingsIcons.visibility = View.VISIBLE binding.iconPacksList.getChildAt(selectedIcon - 1) @@ -181,7 +181,7 @@ class SettingsIcons : Fragment() { } } binding.disableSettingsIcons.setOnClickListener { - binding.iconPacksList.getChildAt(Prefs.getInt(SELECTED_SETTINGS_ICONS_SET, 1) - 1) + binding.iconPacksList.getChildAt(RPrefs.getInt(SELECTED_SETTINGS_ICONS_SET, 1) - 1) .findViewById(R.id.icon_selected).visibility = View.INVISIBLE clearPrefs( @@ -291,7 +291,7 @@ class SettingsIcons : Fragment() { itemSelected( child, - Prefs.getInt(SELECTED_SETTINGS_ICONS_SET, 1) == i + 1, + RPrefs.getInt(SELECTED_SETTINGS_ICONS_SET, 1) == i + 1, i + 1 ) } @@ -349,8 +349,8 @@ class SettingsIcons : Fragment() { ) ) parent.findViewById(R.id.icon_selected).visibility = - if (Prefs.getBoolean("IconifyComponentSIP1.overlay") && - Prefs.getInt(SELECTED_SETTINGS_ICONS_SET, 1) == selectedIndex + if (RPrefs.getBoolean("IconifyComponentSIP1.overlay") && + RPrefs.getInt(SELECTED_SETTINGS_ICONS_SET, 1) == selectedIndex ) View.VISIBLE else View.INVISIBLE parent.findViewById(R.id.iconpack_desc).setAlpha(0.8f) } else { diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/Switch.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/home/Switch.kt similarity index 98% rename from app/src/main/java/com/drdisagree/iconify/ui/fragments/Switch.kt rename to app/src/main/java/com/drdisagree/iconify/ui/fragments/home/Switch.kt index 6e4efd6ab..ec2bdbb7b 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/Switch.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/home/Switch.kt @@ -1,4 +1,4 @@ -package com.drdisagree.iconify.ui.fragments +package com.drdisagree.iconify.ui.fragments.home import android.os.Bundle import android.view.LayoutInflater diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/ToastFrame.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/home/ToastFrame.kt similarity index 96% rename from app/src/main/java/com/drdisagree/iconify/ui/fragments/ToastFrame.kt rename to app/src/main/java/com/drdisagree/iconify/ui/fragments/home/ToastFrame.kt index 52754d273..31a817714 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/ToastFrame.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/home/ToastFrame.kt @@ -1,4 +1,4 @@ -package com.drdisagree.iconify.ui.fragments +package com.drdisagree.iconify.ui.fragments.home import android.os.Bundle import android.os.Handler @@ -15,8 +15,8 @@ import com.drdisagree.iconify.Iconify.Companion.appContextLocale import com.drdisagree.iconify.R import com.drdisagree.iconify.common.Const.FRAMEWORK_PACKAGE import com.drdisagree.iconify.common.Preferences.SELECTED_TOAST_FRAME -import com.drdisagree.iconify.config.Prefs -import com.drdisagree.iconify.config.Prefs.getInt +import com.drdisagree.iconify.config.RPrefs +import com.drdisagree.iconify.config.RPrefs.getInt import com.drdisagree.iconify.databinding.FragmentToastFrameBinding import com.drdisagree.iconify.ui.adapters.ToastAdapter import com.drdisagree.iconify.ui.base.BaseFragment @@ -108,7 +108,7 @@ class ToastFrame : BaseFragment() { } if (position == 0) { - Prefs.putInt(SELECTED_TOAST_FRAME, -1) + RPrefs.putInt(SELECTED_TOAST_FRAME, -1) OverlayUtil.disableOverlay("IconifyComponentTSTFRM.overlay") Toast.makeText( appContext, @@ -139,7 +139,7 @@ class ToastFrame : BaseFragment() { } if (!hasErroredOut.get()) { - Prefs.putInt(SELECTED_TOAST_FRAME, position) + RPrefs.putInt(SELECTED_TOAST_FRAME, position) val ad = binding.toastStylesContainer.adapter as ToastAdapter ad.notifyChange() } diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/home/WiFiIcons.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/home/WiFiIcons.kt new file mode 100644 index 000000000..5cefd0db4 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/home/WiFiIcons.kt @@ -0,0 +1,119 @@ +package com.drdisagree.iconify.ui.fragments.home + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.recyclerview.widget.LinearLayoutManager +import com.drdisagree.iconify.BuildConfig +import com.drdisagree.iconify.R +import com.drdisagree.iconify.databinding.FragmentIconPackBinding +import com.drdisagree.iconify.ui.adapters.IconPackAdapter +import com.drdisagree.iconify.ui.base.BaseFragment +import com.drdisagree.iconify.ui.dialogs.LoadingDialog +import com.drdisagree.iconify.ui.models.IconPackModel +import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader +import com.drdisagree.iconify.utils.overlay.manager.SignalIconManager +import java.util.Locale + +class WiFiIcons : BaseFragment() { + + private lateinit var binding: FragmentIconPackBinding + private var loadingDialog: LoadingDialog? = null + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View { + binding = FragmentIconPackBinding.inflate(inflater, container, false) + + // Header + setHeader( + requireContext(), + getParentFragmentManager(), + binding.header.toolbar, + R.string.activity_title_wifi_icons + ) + + // Loading dialog while enabling or disabling pack + loadingDialog = LoadingDialog(requireContext()) + + // RecyclerView + binding.iconPackContainer.setLayoutManager(LinearLayoutManager(requireContext())) + + binding.iconPackContainer.setAdapter(initIconPackItems()) + binding.iconPackContainer.setHasFixedSize(true) + + return binding.getRoot() + } + + @Suppress("DiscouragedApi") + private fun initIconPackItems(): IconPackAdapter { + val iconPackList = ArrayList().apply { + val themes = listOf( + "Aurora", "Bars", "Dora", "Faint UI", "Lorn", "Gradicon", + "Inside", "Nothing Dot", "Plumpy", "Round", "Sneaky", "Stroke", + "Wavy", "Weed", "Xperia", "ZigZag" + ) + + val packageName = BuildConfig.APPLICATION_ID + + themes.forEachIndexed { _, themeName -> + val themeResourceName = themeName.replace(" ", "_").lowercase(Locale.ROOT) + + add( + IconPackModel( + themeName, + 0, + resources.getIdentifier( + "preview_${themeResourceName}_ic_wifi_signal_1", + "drawable", + packageName + ), + resources.getIdentifier( + "preview_${themeResourceName}_ic_wifi_signal_2", + "drawable", + packageName + ), + resources.getIdentifier( + "preview_${themeResourceName}_ic_wifi_signal_3", + "drawable", + packageName + ), + resources.getIdentifier( + "preview_${themeResourceName}_ic_wifi_signal_4", + "drawable", + packageName + ) + ) + ) + } + } + + return IconPackAdapter( + requireContext(), + iconPackList, + loadingDialog!!, + "WIFI", + onButtonClick + ) + } + + private val onButtonClick = object : IconPackAdapter.OnButtonClick { + + override fun onEnableClick(position: Int, item: IconPackModel) { + SignalIconManager.enableOverlay(n = position + 1, "WIFI") + } + + override fun onDisableClick(position: Int, item: IconPackModel) { + SignalIconManager.disableOverlay(n = position + 1, "WIFI") + } + } + + override fun onDestroy() { + loadingDialog?.dismiss() + + super.onDestroy() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/AppUpdates.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/settings/AppUpdates.kt similarity index 97% rename from app/src/main/java/com/drdisagree/iconify/ui/fragments/AppUpdates.kt rename to app/src/main/java/com/drdisagree/iconify/ui/fragments/settings/AppUpdates.kt index 434f444ea..53e43dbb2 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/AppUpdates.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/settings/AppUpdates.kt @@ -1,4 +1,4 @@ -package com.drdisagree.iconify.ui.fragments +package com.drdisagree.iconify.ui.fragments.settings import android.content.Intent import android.net.Uri @@ -23,8 +23,8 @@ import com.drdisagree.iconify.common.Const.LATEST_VERSION_URL import com.drdisagree.iconify.common.Preferences.UPDATE_CHECK_TIME import com.drdisagree.iconify.common.Preferences.UPDATE_SCHEDULE import com.drdisagree.iconify.common.Preferences.VER_CODE -import com.drdisagree.iconify.config.Prefs -import com.drdisagree.iconify.config.Prefs.putLong +import com.drdisagree.iconify.config.RPrefs +import com.drdisagree.iconify.config.RPrefs.putLong import com.drdisagree.iconify.databinding.FragmentAppUpdatesBinding import com.drdisagree.iconify.ui.base.BaseFragment import com.drdisagree.iconify.ui.utils.ViewHelper.dp2px @@ -60,9 +60,9 @@ class AppUpdates : BaseFragment() { ) // Update Schedule - binding.updateSchedule.setSelectedIndex(Prefs.getInt(UPDATE_SCHEDULE, 1)) + binding.updateSchedule.setSelectedIndex(RPrefs.getInt(UPDATE_SCHEDULE, 1)) binding.updateSchedule.setOnItemSelectedListener { index: Int -> - Prefs.putInt(UPDATE_SCHEDULE, index) + RPrefs.putInt(UPDATE_SCHEDULE, index) when (index) { 0 -> putLong(UPDATE_CHECK_TIME, 6) 1 -> putLong(UPDATE_CHECK_TIME, 12) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/Changelog.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/settings/Changelog.kt similarity index 99% rename from app/src/main/java/com/drdisagree/iconify/ui/fragments/Changelog.kt rename to app/src/main/java/com/drdisagree/iconify/ui/fragments/settings/Changelog.kt index 86674bdc7..815e42de0 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/Changelog.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/settings/Changelog.kt @@ -1,4 +1,4 @@ -package com.drdisagree.iconify.ui.fragments +package com.drdisagree.iconify.ui.fragments.settings import android.content.Intent import android.net.Uri diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/Credits.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/settings/Credits.kt similarity index 99% rename from app/src/main/java/com/drdisagree/iconify/ui/fragments/Credits.kt rename to app/src/main/java/com/drdisagree/iconify/ui/fragments/settings/Credits.kt index f601e9717..f563fcecc 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/Credits.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/settings/Credits.kt @@ -1,4 +1,4 @@ -package com.drdisagree.iconify.ui.fragments +package com.drdisagree.iconify.ui.fragments.settings import android.os.Bundle import android.view.LayoutInflater diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/Experimental.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/settings/Experimental.kt similarity index 97% rename from app/src/main/java/com/drdisagree/iconify/ui/fragments/Experimental.kt rename to app/src/main/java/com/drdisagree/iconify/ui/fragments/settings/Experimental.kt index 11189e6ae..c1d878dc9 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/Experimental.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/settings/Experimental.kt @@ -1,4 +1,4 @@ -package com.drdisagree.iconify.ui.fragments +package com.drdisagree.iconify.ui.fragments.settings import android.os.Bundle import android.os.Handler diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/settings/Settings.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/settings/Settings.kt new file mode 100644 index 000000000..3f257d247 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/settings/Settings.kt @@ -0,0 +1,191 @@ +package com.drdisagree.iconify.ui.fragments.settings + +import android.content.ComponentName +import android.content.DialogInterface +import android.content.Intent +import android.content.pm.PackageManager +import android.net.Uri +import android.os.Bundle +import android.os.Handler +import android.os.Looper +import android.widget.Toast +import com.drdisagree.iconify.Iconify.Companion.appContext +import com.drdisagree.iconify.Iconify.Companion.appContextLocale +import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Const +import com.drdisagree.iconify.common.Preferences.APP_ICON +import com.drdisagree.iconify.common.Preferences.APP_LANGUAGE +import com.drdisagree.iconify.common.Preferences.APP_THEME +import com.drdisagree.iconify.common.Preferences.FIRST_INSTALL +import com.drdisagree.iconify.common.Preferences.ON_HOME_PAGE +import com.drdisagree.iconify.common.Preferences.RESTART_SYSUI_AFTER_BOOT +import com.drdisagree.iconify.common.Resources.MODULE_DIR +import com.drdisagree.iconify.config.RPrefs +import com.drdisagree.iconify.ui.base.ControlledPreferenceFragmentCompat +import com.drdisagree.iconify.ui.preferences.PreferenceMenu +import com.drdisagree.iconify.utils.AppUtil.restartApplication +import com.drdisagree.iconify.utils.CacheUtil.clearCache +import com.drdisagree.iconify.utils.SystemUtil.disableBlur +import com.drdisagree.iconify.utils.SystemUtil.disableRestartSystemuiAfterBoot +import com.drdisagree.iconify.utils.SystemUtil.enableRestartSystemuiAfterBoot +import com.drdisagree.iconify.utils.SystemUtil.restartSystemUI +import com.drdisagree.iconify.utils.SystemUtil.saveBootId +import com.drdisagree.iconify.utils.SystemUtil.saveVersionCode +import com.drdisagree.iconify.utils.weather.WeatherConfig +import com.google.android.material.dialog.MaterialAlertDialogBuilder +import com.topjohnwu.superuser.Shell +import java.util.concurrent.Executors + +class Settings : ControlledPreferenceFragmentCompat() { + + override val title: String + get() = getString(R.string.settings_title) + + override val backButtonEnabled: Boolean + get() = true + + override val layoutResource: Int + get() = R.xml.settings + + override val hasMenu: Boolean + get() = true + + override fun updateScreen(key: String?) { + super.updateScreen(key) + + when (key) { + APP_LANGUAGE -> { + restartApplication(requireActivity()) + } + + APP_ICON -> { + val splashActivities = appContextLocale.resources + .getStringArray(R.array.app_icon_identifier) + changeIcon(RPrefs.getString(key, splashActivities[0])!!) + } + + APP_THEME -> { + restartApplication(requireActivity()) + } + + RESTART_SYSUI_AFTER_BOOT -> { + if (RPrefs.getBoolean(key, false)) { + enableRestartSystemuiAfterBoot() + } else { + disableRestartSystemuiAfterBoot() + } + } + } + } + + override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { + super.onCreatePreferences(savedInstanceState, rootKey) + + findPreference("clearAppCache")?.setOnPreferenceClickListener { + clearCache(appContext) + Toast.makeText( + appContext, + appContextLocale.resources.getString(R.string.toast_clear_cache), + Toast.LENGTH_SHORT + ).show() + true + } + + findPreference("disableEverything")?.setOnPreferenceClickListener { + MaterialAlertDialogBuilder(requireActivity()) + .setCancelable(true) + .setTitle(requireContext().resources.getString(R.string.import_settings_confirmation_title)) + .setMessage(requireContext().resources.getString(R.string.import_settings_confirmation_desc)) + .setPositiveButton(getString(R.string.positive)) { dialog: DialogInterface, _: Int -> + dialog.dismiss() + + // Show loading dialog + loadingDialog?.show(resources.getString(R.string.loading_dialog_wait)) + + Executors.newSingleThreadExecutor().execute { + Settings.disableEverything() + Handler(Looper.getMainLooper()).postDelayed({ + + // Hide loading dialog + loadingDialog?.hide() + + // Restart SystemUI + restartSystemUI() + }, 3000) + } + } + .setNegativeButton(getString(R.string.negative)) { dialog: DialogInterface, _: Int -> + dialog.dismiss() + } + .show() + true + } + + findPreference("iconifyGitHub")?.setOnPreferenceClickListener { + startActivity( + Intent(Intent.ACTION_VIEW).apply { + setData(Uri.parse(Const.GITHUB_REPO)) + } + ) + true + } + + findPreference("iconifyTelegram")?.setOnPreferenceClickListener { + startActivity( + Intent(Intent.ACTION_VIEW).apply { + setData(Uri.parse(Const.TELEGRAM_GROUP)) + } + ) + true + } + + findPreference("iconifyTranslate")?.setOnPreferenceClickListener { + startActivity( + Intent(Intent.ACTION_VIEW).apply { + setData(Uri.parse(Const.ICONIFY_CROWDIN)) + } + ) + true + } + } + + private fun changeIcon(splash: String) { + val manager = requireActivity().packageManager + val splashActivities = appContextLocale.resources + .getStringArray(R.array.app_icon_identifier) + + for (splashActivity in splashActivities) { + manager.setComponentEnabledSetting( + ComponentName( + requireActivity(), + "com.drdisagree.iconify.$splashActivity" + ), + if (splash == splashActivity) { + PackageManager.COMPONENT_ENABLED_STATE_ENABLED + } else { + PackageManager.COMPONENT_ENABLED_STATE_DISABLED + }, + PackageManager.DONT_KILL_APP + ) + } + } + + companion object { + fun disableEverything() { + WeatherConfig.clear(appContext) + RPrefs.clearAllPrefs() + RPrefs.clearAllPrefs() + + saveBootId + disableBlur(false) + saveVersionCode() + + RPrefs.putBoolean(ON_HOME_PAGE, true) + RPrefs.putBoolean(FIRST_INSTALL, false) + + Shell.cmd( + "> $MODULE_DIR/system.prop; > $MODULE_DIR/post-exec.sh; for ol in $(cmd overlay list | grep -E '.x.*IconifyComponent' | sed -E 's/^.x..//'); do cmd overlay disable \$ol; done; killall com.android.systemui" + ).submit() + } + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/BasicColors.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/BasicColors.kt similarity index 97% rename from app/src/main/java/com/drdisagree/iconify/ui/fragments/BasicColors.kt rename to app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/BasicColors.kt index d1aa659f3..46582e57f 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/BasicColors.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/BasicColors.kt @@ -1,4 +1,4 @@ -package com.drdisagree.iconify.ui.fragments +package com.drdisagree.iconify.ui.fragments.tweaks import android.graphics.drawable.GradientDrawable import android.os.Bundle @@ -21,11 +21,11 @@ import com.drdisagree.iconify.common.Preferences.CUSTOM_PRIMARY_COLOR_SWITCH import com.drdisagree.iconify.common.Preferences.CUSTOM_SECONDARY_COLOR_SWITCH import com.drdisagree.iconify.common.References.ICONIFY_COLOR_ACCENT_PRIMARY import com.drdisagree.iconify.common.References.ICONIFY_COLOR_ACCENT_SECONDARY -import com.drdisagree.iconify.config.Prefs.clearPrefs -import com.drdisagree.iconify.config.Prefs.getBoolean -import com.drdisagree.iconify.config.Prefs.getString -import com.drdisagree.iconify.config.Prefs.putBoolean -import com.drdisagree.iconify.config.Prefs.putString +import com.drdisagree.iconify.config.RPrefs.clearPrefs +import com.drdisagree.iconify.config.RPrefs.getBoolean +import com.drdisagree.iconify.config.RPrefs.getString +import com.drdisagree.iconify.config.RPrefs.putBoolean +import com.drdisagree.iconify.config.RPrefs.putString import com.drdisagree.iconify.databinding.FragmentBasicColorsBinding import com.drdisagree.iconify.ui.base.BaseFragment import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/ColorEngine.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/ColorEngine.kt similarity index 94% rename from app/src/main/java/com/drdisagree/iconify/ui/fragments/ColorEngine.kt rename to app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/ColorEngine.kt index d48609b20..2f9629fa9 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/ColorEngine.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/ColorEngine.kt @@ -1,4 +1,4 @@ -package com.drdisagree.iconify.ui.fragments +package com.drdisagree.iconify.ui.fragments.tweaks import android.os.Bundle import android.os.Handler @@ -7,15 +7,14 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.CompoundButton -import androidx.navigation.Navigation.findNavController import com.drdisagree.iconify.R import com.drdisagree.iconify.common.Const.SWITCH_ANIMATION_DELAY import com.drdisagree.iconify.common.Preferences.COLOR_ACCENT_PRIMARY import com.drdisagree.iconify.common.Preferences.COLOR_ACCENT_SECONDARY -import com.drdisagree.iconify.common.Preferences.STR_NULL -import com.drdisagree.iconify.config.Prefs.getBoolean -import com.drdisagree.iconify.config.Prefs.getString +import com.drdisagree.iconify.config.RPrefs.getBoolean +import com.drdisagree.iconify.config.RPrefs.getString import com.drdisagree.iconify.databinding.FragmentColorEngineBinding +import com.drdisagree.iconify.ui.activities.MainActivity.Companion.replaceFragment import com.drdisagree.iconify.ui.base.BaseFragment import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader import com.drdisagree.iconify.utils.overlay.OverlayUtil @@ -46,12 +45,12 @@ class ColorEngine : BaseFragment() { // Basic colors binding.basicColors.setOnClickListener { - findNavController(view).navigate(R.id.action_colorEngine_to_basicColors) + replaceFragment(BasicColors()) } // Monet engine binding.monetEngine.setOnClickListener { - findNavController(view).navigate(R.id.action_colorEngine_to_monetEngine) + replaceFragment(MonetEngine()) } // Apply monet accent and gradient @@ -89,7 +88,7 @@ class ColorEngine : BaseFragment() { }, SWITCH_ANIMATION_DELAY ) } - + return view } @@ -117,13 +116,13 @@ class ColorEngine : BaseFragment() { private fun applyDefaultColors() { if (shouldUseDefaultColors()) { - if (getString(COLOR_ACCENT_PRIMARY) == STR_NULL) { + if (getString(COLOR_ACCENT_PRIMARY) == null) { BasicColors.applyDefaultPrimaryColors() } else { BasicColors.applyPrimaryColors() } - if (getString(COLOR_ACCENT_SECONDARY) == STR_NULL) { + if (getString(COLOR_ACCENT_SECONDARY) == null) { BasicColors.applyDefaultSecondaryColors() } else { BasicColors.applySecondaryColors() diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/ColoredBattery.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/ColoredBattery.kt similarity index 85% rename from app/src/main/java/com/drdisagree/iconify/ui/fragments/ColoredBattery.kt rename to app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/ColoredBattery.kt index f18bbda8c..081554f4f 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/ColoredBattery.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/ColoredBattery.kt @@ -1,4 +1,4 @@ -package com.drdisagree.iconify.ui.fragments +package com.drdisagree.iconify.ui.fragments.tweaks import android.os.Bundle import android.os.Handler @@ -16,12 +16,11 @@ import com.drdisagree.iconify.common.Const.SWITCH_ANIMATION_DELAY import com.drdisagree.iconify.common.Const.SYSTEMUI_PACKAGE import com.drdisagree.iconify.common.Preferences.COLORED_BATTERY_CHECK import com.drdisagree.iconify.common.Preferences.COLORED_BATTERY_SWITCH -import com.drdisagree.iconify.common.Preferences.STR_NULL import com.drdisagree.iconify.common.References.FABRICATED_BATTERY_COLOR_BG import com.drdisagree.iconify.common.References.FABRICATED_BATTERY_COLOR_FG import com.drdisagree.iconify.common.References.FABRICATED_COLORED_BATTERY -import com.drdisagree.iconify.config.Prefs -import com.drdisagree.iconify.config.Prefs.putString +import com.drdisagree.iconify.config.RPrefs +import com.drdisagree.iconify.config.RPrefs.putString import com.drdisagree.iconify.databinding.FragmentColoredBatteryBinding import com.drdisagree.iconify.ui.base.BaseFragment import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader @@ -52,11 +51,11 @@ class ColoredBattery : BaseFragment() { // Enable colored battery binding.enableColoredBattery.isSwitchChecked = - if (Prefs.getString(COLORED_BATTERY_CHECK, STR_NULL) == STR_NULL) { + if (RPrefs.getString(COLORED_BATTERY_CHECK) == null) { isOverlayEnabled("IconifyComponentIPSUI2.overlay") || isOverlayEnabled("IconifyComponentIPSUI4.overlay") } else { - Prefs.getBoolean(COLORED_BATTERY_SWITCH) + RPrefs.getBoolean(COLORED_BATTERY_SWITCH) } binding.enableColoredBattery.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> @@ -82,11 +81,11 @@ class ColoredBattery : BaseFragment() { "0" ) - if (Prefs.getString(FABRICATED_BATTERY_COLOR_BG) != STR_NULL) FabricatedUtil.disableOverlay( + if (RPrefs.getString(FABRICATED_BATTERY_COLOR_BG) != null) FabricatedUtil.disableOverlay( FABRICATED_BATTERY_COLOR_BG ) - if (Prefs.getString(FABRICATED_BATTERY_COLOR_FG) != STR_NULL) FabricatedUtil.disableOverlay( + if (RPrefs.getString(FABRICATED_BATTERY_COLOR_FG) != null) FabricatedUtil.disableOverlay( FABRICATED_BATTERY_COLOR_FG ) } @@ -105,25 +104,26 @@ class ColoredBattery : BaseFragment() { ).show() } - Prefs.putBoolean(COLORED_BATTERY_SWITCH, isChecked) + RPrefs.putBoolean(COLORED_BATTERY_SWITCH, isChecked) }, SWITCH_ANIMATION_DELAY ) } - colorBackground = if (Prefs.getString(FABRICATED_BATTERY_COLOR_BG) != STR_NULL) { - Prefs.getString(FABRICATED_BATTERY_COLOR_BG) + colorBackground = if (RPrefs.getString(FABRICATED_BATTERY_COLOR_BG) != null) { + RPrefs.getString(FABRICATED_BATTERY_COLOR_BG) } else { (-0xf0f10).toString() } - colorFilled = if (Prefs.getString(FABRICATED_BATTERY_COLOR_FG) != STR_NULL) { - Prefs.getString(FABRICATED_BATTERY_COLOR_FG) + colorFilled = if (RPrefs.getString(FABRICATED_BATTERY_COLOR_FG) != null) { + RPrefs.getString(FABRICATED_BATTERY_COLOR_FG) } else { (-0xf0f10).toString() } // Battery background color binding.batteryBackgroundColor.setColorPickerListener( - activity = requireActivity(), defaultColor = colorBackground!!.toInt(), + activity = requireActivity(), + defaultColor = colorBackground!!.toInt(), showPresets = true, showAlphaSlider = false, showColorShades = true diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/MediaPlayer.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/MediaPlayer.kt similarity index 88% rename from app/src/main/java/com/drdisagree/iconify/ui/fragments/MediaPlayer.kt rename to app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/MediaPlayer.kt index 2d62eac75..8f57194da 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/MediaPlayer.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/MediaPlayer.kt @@ -1,4 +1,4 @@ -package com.drdisagree.iconify.ui.fragments +package com.drdisagree.iconify.ui.fragments.tweaks import android.os.Bundle import android.view.LayoutInflater @@ -6,7 +6,7 @@ import android.view.View import android.view.ViewGroup import android.widget.CompoundButton import com.drdisagree.iconify.R -import com.drdisagree.iconify.config.Prefs +import com.drdisagree.iconify.config.RPrefs import com.drdisagree.iconify.databinding.FragmentMediaPlayerBinding import com.drdisagree.iconify.ui.base.BaseFragment import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader @@ -35,7 +35,7 @@ class MediaPlayer : BaseFragment() { refreshPreview() - binding.mpAccent.isSwitchChecked = Prefs.getBoolean("IconifyComponentMPA.overlay") + binding.mpAccent.isSwitchChecked = RPrefs.getBoolean("IconifyComponentMPA.overlay") binding.mpAccent.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> if (isChecked) { binding.mpSystem.isSwitchChecked = false @@ -56,7 +56,7 @@ class MediaPlayer : BaseFragment() { refreshPreview() } - binding.mpSystem.isSwitchChecked = Prefs.getBoolean("IconifyComponentMPS.overlay") + binding.mpSystem.isSwitchChecked = RPrefs.getBoolean("IconifyComponentMPS.overlay") binding.mpSystem.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> if (isChecked) { binding.mpAccent.isSwitchChecked = false @@ -77,7 +77,7 @@ class MediaPlayer : BaseFragment() { refreshPreview() } - binding.mpPitchBlack.isSwitchChecked = Prefs.getBoolean("IconifyComponentMPB.overlay") + binding.mpPitchBlack.isSwitchChecked = RPrefs.getBoolean("IconifyComponentMPB.overlay") binding.mpPitchBlack.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> if (isChecked) { binding.mpAccent.isSwitchChecked = false @@ -107,11 +107,11 @@ class MediaPlayer : BaseFragment() { binding.mpSystemPreview.previewMpSystem.visibility = View.GONE when { - Prefs.getBoolean("IconifyComponentMPA.overlay") -> { + RPrefs.getBoolean("IconifyComponentMPA.overlay") -> { binding.mpAccentPreview.previewMpAccent.visibility = View.VISIBLE } - Prefs.getBoolean("IconifyComponentMPB.overlay") -> { + RPrefs.getBoolean("IconifyComponentMPB.overlay") -> { binding.mpPitchBlackPreview.previewMpBlack.visibility = View.VISIBLE } diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/Miscellaneous.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/Miscellaneous.kt similarity index 96% rename from app/src/main/java/com/drdisagree/iconify/ui/fragments/Miscellaneous.kt rename to app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/Miscellaneous.kt index 1452b34bc..635076592 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/Miscellaneous.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/Miscellaneous.kt @@ -1,4 +1,4 @@ -package com.drdisagree.iconify.ui.fragments +package com.drdisagree.iconify.ui.fragments.tweaks import android.os.Build import android.os.Bundle @@ -16,12 +16,11 @@ import com.drdisagree.iconify.common.Preferences.NOTCH_BAR_KILLER_SWITCH import com.drdisagree.iconify.common.Preferences.PROGRESS_WAVE_ANIMATION_SWITCH import com.drdisagree.iconify.common.Preferences.TABLET_LANDSCAPE_SWITCH import com.drdisagree.iconify.common.References.FABRICATED_TABLET_HEADER -import com.drdisagree.iconify.config.Prefs -import com.drdisagree.iconify.config.Prefs.getBoolean +import com.drdisagree.iconify.config.RPrefs +import com.drdisagree.iconify.config.RPrefs.getBoolean import com.drdisagree.iconify.databinding.FragmentMiscellaneousBinding import com.drdisagree.iconify.ui.base.BaseFragment import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader -import com.drdisagree.iconify.utils.SystemUtil import com.drdisagree.iconify.utils.SystemUtil.hasStoragePermission import com.drdisagree.iconify.utils.SystemUtil.requestStoragePermission import com.drdisagree.iconify.utils.SystemUtil.restartSystemUI @@ -69,7 +68,7 @@ class Miscellaneous : BaseFragment() { return@setSwitchChangeListener } - Prefs.putBoolean(TABLET_LANDSCAPE_SWITCH, isChecked) + RPrefs.putBoolean(TABLET_LANDSCAPE_SWITCH, isChecked) val resourceEntry1 = ResourceEntry( SYSTEMUI_PACKAGE, @@ -220,7 +219,7 @@ class Miscellaneous : BaseFragment() { return@setSwitchChangeListener } - Prefs.putBoolean(NOTCH_BAR_KILLER_SWITCH, isChecked) + RPrefs.putBoolean(NOTCH_BAR_KILLER_SWITCH, isChecked) if (isChecked) { buildOverlayWithResource( @@ -275,7 +274,7 @@ class Miscellaneous : BaseFragment() { binding.tabletHeader.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> Handler(Looper.getMainLooper()).postDelayed( { - Prefs.putBoolean(FABRICATED_TABLET_HEADER, isChecked) + RPrefs.putBoolean(FABRICATED_TABLET_HEADER, isChecked) if (isChecked) { buildAndEnableOverlay( @@ -328,7 +327,7 @@ class Miscellaneous : BaseFragment() { return@setSwitchChangeListener } - Prefs.putBoolean(PROGRESS_WAVE_ANIMATION_SWITCH, isChecked) + RPrefs.putBoolean(PROGRESS_WAVE_ANIMATION_SWITCH, isChecked) if (isChecked) { buildOverlayWithResource( diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/MonetEngine.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/MonetEngine.kt similarity index 98% rename from app/src/main/java/com/drdisagree/iconify/ui/fragments/MonetEngine.kt rename to app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/MonetEngine.kt index f66e8b8bb..5fb7ff286 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/MonetEngine.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/MonetEngine.kt @@ -1,5 +1,6 @@ -package com.drdisagree.iconify.ui.fragments +package com.drdisagree.iconify.ui.fragments.tweaks +import android.annotation.SuppressLint import android.app.Activity import android.content.DialogInterface import android.content.Intent @@ -43,15 +44,14 @@ import com.drdisagree.iconify.common.Preferences.MONET_PRIMARY_COLOR import com.drdisagree.iconify.common.Preferences.MONET_SECONDARY_ACCENT_SATURATION import com.drdisagree.iconify.common.Preferences.MONET_SECONDARY_COLOR import com.drdisagree.iconify.common.Preferences.MONET_STYLE -import com.drdisagree.iconify.common.Preferences.STR_NULL -import com.drdisagree.iconify.config.Prefs.clearPrefs -import com.drdisagree.iconify.config.Prefs.getBoolean -import com.drdisagree.iconify.config.Prefs.getInt -import com.drdisagree.iconify.config.Prefs.getString -import com.drdisagree.iconify.config.Prefs.prefs -import com.drdisagree.iconify.config.Prefs.putBoolean -import com.drdisagree.iconify.config.Prefs.putInt -import com.drdisagree.iconify.config.Prefs.putString +import com.drdisagree.iconify.config.RPrefs +import com.drdisagree.iconify.config.RPrefs.clearPrefs +import com.drdisagree.iconify.config.RPrefs.getBoolean +import com.drdisagree.iconify.config.RPrefs.getInt +import com.drdisagree.iconify.config.RPrefs.getString +import com.drdisagree.iconify.config.RPrefs.putBoolean +import com.drdisagree.iconify.config.RPrefs.putInt +import com.drdisagree.iconify.config.RPrefs.putString import com.drdisagree.iconify.databinding.FragmentMonetEngineBinding import com.drdisagree.iconify.ui.activities.MainActivity import com.drdisagree.iconify.ui.base.BaseFragment @@ -108,7 +108,7 @@ class MonetEngine : BaseFragment() { try { exportSettings( - prefs, + RPrefs.getPrefs, requireContext().contentResolver.openOutputStream(data.data!!)!! ) @@ -144,7 +144,7 @@ class MonetEngine : BaseFragment() { Handler(Looper.getMainLooper()).post { try { val success = importMonetSettings( - prefs, + RPrefs.getPrefs, requireContext().contentResolver.openInputStream(data.data!!)!! ) @@ -417,7 +417,7 @@ class MonetEngine : BaseFragment() { binding.enableCustomMonet.setOnClickListener { if (!hasStoragePermission()) { requestStoragePermission(requireContext()) - } else if (selectedStyle == STR_NULL) { + } else if (selectedStyle == null) { Toast.makeText( appContext, appContextLocale.resources.getString(R.string.toast_select_style), @@ -582,6 +582,7 @@ class MonetEngine : BaseFragment() { return view } + @SuppressLint("SetTextI18n") private fun assignStockColorsToPalette() { val systemColors = getSystemColors(requireContext()) val temp: MutableList> = ArrayList() diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/NavigationBar.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/NavigationBar.kt similarity index 98% rename from app/src/main/java/com/drdisagree/iconify/ui/fragments/NavigationBar.kt rename to app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/NavigationBar.kt index cd53a2e9f..35b8401ac 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/NavigationBar.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/NavigationBar.kt @@ -1,4 +1,4 @@ -package com.drdisagree.iconify.ui.fragments +package com.drdisagree.iconify.ui.fragments.tweaks import android.os.Bundle import android.os.Handler @@ -23,10 +23,10 @@ import com.drdisagree.iconify.common.Preferences.PILL_SHAPE_SWITCH import com.drdisagree.iconify.common.References.FABRICATED_PILL_BOTTOM_SPACE import com.drdisagree.iconify.common.References.FABRICATED_PILL_THICKNESS import com.drdisagree.iconify.common.References.FABRICATED_PILL_WIDTH -import com.drdisagree.iconify.config.Prefs.getBoolean -import com.drdisagree.iconify.config.Prefs.getInt -import com.drdisagree.iconify.config.Prefs.putBoolean -import com.drdisagree.iconify.config.Prefs.putInt +import com.drdisagree.iconify.config.RPrefs.getBoolean +import com.drdisagree.iconify.config.RPrefs.getInt +import com.drdisagree.iconify.config.RPrefs.putBoolean +import com.drdisagree.iconify.config.RPrefs.putInt import com.drdisagree.iconify.databinding.FragmentNavigationBarBinding import com.drdisagree.iconify.ui.base.BaseFragment import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/QsIconLabel.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/QsIconLabel.kt similarity index 97% rename from app/src/main/java/com/drdisagree/iconify/ui/fragments/QsIconLabel.kt rename to app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/QsIconLabel.kt index 470d9f0eb..e503acf71 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/QsIconLabel.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/QsIconLabel.kt @@ -1,4 +1,4 @@ -package com.drdisagree.iconify.ui.fragments +package com.drdisagree.iconify.ui.fragments.tweaks import android.os.Bundle import android.os.Handler @@ -16,14 +16,13 @@ import com.drdisagree.iconify.common.Preferences.QS_HIDE_LABEL_SWITCH import com.drdisagree.iconify.common.Preferences.QS_TEXT_COLOR_VARIANT import com.drdisagree.iconify.common.Preferences.QS_TEXT_COLOR_VARIANT_NORMAL import com.drdisagree.iconify.common.Preferences.QS_TEXT_COLOR_VARIANT_PIXEL -import com.drdisagree.iconify.common.Preferences.STR_NULL import com.drdisagree.iconify.common.References.FABRICATED_QS_ICON_SIZE import com.drdisagree.iconify.common.References.FABRICATED_QS_MOVE_ICON import com.drdisagree.iconify.common.References.FABRICATED_QS_TEXT_SIZE -import com.drdisagree.iconify.config.Prefs.getBoolean -import com.drdisagree.iconify.config.Prefs.getString -import com.drdisagree.iconify.config.Prefs.putBoolean -import com.drdisagree.iconify.config.Prefs.putString +import com.drdisagree.iconify.config.RPrefs.getBoolean +import com.drdisagree.iconify.config.RPrefs.getString +import com.drdisagree.iconify.config.RPrefs.putBoolean +import com.drdisagree.iconify.config.RPrefs.putString import com.drdisagree.iconify.databinding.FragmentQsIconLabelBinding import com.drdisagree.iconify.ui.base.BaseFragment import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader @@ -62,7 +61,7 @@ class QsIconLabel : BaseFragment() { // Text Size val finalTextSize = intArrayOf(14) - if (getString(FABRICATED_QS_TEXT_SIZE) != STR_NULL) { + if (getString(FABRICATED_QS_TEXT_SIZE) != null) { finalTextSize[0] = getString(FABRICATED_QS_TEXT_SIZE)!!.toInt() binding.textSize.sliderValue = finalTextSize[0] } @@ -100,7 +99,7 @@ class QsIconLabel : BaseFragment() { // Icon Size val finalIconSize = intArrayOf(20) - if (getString(FABRICATED_QS_ICON_SIZE) != STR_NULL) { + if (getString(FABRICATED_QS_ICON_SIZE) != null) { finalIconSize[0] = getString(FABRICATED_QS_ICON_SIZE)!!.toInt() binding.iconSize.sliderValue = finalIconSize[0] } @@ -461,7 +460,7 @@ class QsIconLabel : BaseFragment() { // Move Icon val finalMoveIcon = intArrayOf(16) - if (getString(FABRICATED_QS_MOVE_ICON) != STR_NULL) { + if (getString(FABRICATED_QS_MOVE_ICON) != null) { finalMoveIcon[0] = getString(FABRICATED_QS_MOVE_ICON)!!.toInt() binding.moveIcon.sliderValue = finalMoveIcon[0] } diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/QsPanelMargin.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/QsPanelMargin.kt similarity index 98% rename from app/src/main/java/com/drdisagree/iconify/ui/fragments/QsPanelMargin.kt rename to app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/QsPanelMargin.kt index c11fccac4..67a0dfa69 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/QsPanelMargin.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/QsPanelMargin.kt @@ -1,4 +1,4 @@ -package com.drdisagree.iconify.ui.fragments +package com.drdisagree.iconify.ui.fragments.tweaks import android.os.Bundle import android.os.Handler @@ -13,9 +13,9 @@ import com.drdisagree.iconify.common.Preferences.LAND_QQS_TOP_MARGIN import com.drdisagree.iconify.common.Preferences.LAND_QS_TOP_MARGIN import com.drdisagree.iconify.common.Preferences.PORT_QQS_TOP_MARGIN import com.drdisagree.iconify.common.Preferences.PORT_QS_TOP_MARGIN -import com.drdisagree.iconify.config.Prefs.clearPrefs -import com.drdisagree.iconify.config.Prefs.getInt -import com.drdisagree.iconify.config.Prefs.putInt +import com.drdisagree.iconify.config.RPrefs.clearPrefs +import com.drdisagree.iconify.config.RPrefs.getInt +import com.drdisagree.iconify.config.RPrefs.putInt import com.drdisagree.iconify.databinding.FragmentQsPanelMarginBinding import com.drdisagree.iconify.ui.base.BaseFragment import com.drdisagree.iconify.ui.dialogs.LoadingDialog diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/QsRowColumn.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/QsRowColumn.kt similarity index 85% rename from app/src/main/java/com/drdisagree/iconify/ui/fragments/QsRowColumn.kt rename to app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/QsRowColumn.kt index 3b3367cf3..e5ff9eb85 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/QsRowColumn.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/QsRowColumn.kt @@ -1,4 +1,4 @@ -package com.drdisagree.iconify.ui.fragments +package com.drdisagree.iconify.ui.fragments.tweaks import android.content.DialogInterface import android.os.Bundle @@ -19,7 +19,7 @@ import com.drdisagree.iconify.common.References.FABRICATED_QQS_TILE import com.drdisagree.iconify.common.References.FABRICATED_QS_COLUMN import com.drdisagree.iconify.common.References.FABRICATED_QS_ROW import com.drdisagree.iconify.common.References.FABRICATED_QS_TILE -import com.drdisagree.iconify.config.Prefs +import com.drdisagree.iconify.config.RPrefs import com.drdisagree.iconify.databinding.FragmentQsRowColumnBinding import com.drdisagree.iconify.ui.base.BaseFragment import com.drdisagree.iconify.ui.dialogs.LoadingDialog @@ -54,7 +54,7 @@ class QsRowColumn : BaseFragment() { loadingDialog = LoadingDialog(requireContext()) // Quick QsPanel Row - val finalQqsRow = intArrayOf(Prefs.getInt(FABRICATED_QQS_ROW, 2)) + val finalQqsRow = intArrayOf(RPrefs.getInt(FABRICATED_QQS_ROW, 2)) binding.qqsRow.sliderValue = finalQqsRow[0] binding.qqsRow.setOnSliderTouchListener(object : Slider.OnSliderTouchListener { override fun onStartTrackingTouch(slider: Slider) {} @@ -65,7 +65,7 @@ class QsRowColumn : BaseFragment() { }) // QsPanel Row - val finalQsRow = intArrayOf(Prefs.getInt(FABRICATED_QS_ROW, 4)) + val finalQsRow = intArrayOf(RPrefs.getInt(FABRICATED_QS_ROW, 4)) binding.qsRow.sliderValue = finalQsRow[0] binding.qsRow.setOnSliderTouchListener(object : Slider.OnSliderTouchListener { override fun onStartTrackingTouch(slider: Slider) {} @@ -76,7 +76,7 @@ class QsRowColumn : BaseFragment() { }) // QsPanel Column - val finalQsColumn = intArrayOf(Prefs.getInt(FABRICATED_QS_COLUMN, 2)) + val finalQsColumn = intArrayOf(RPrefs.getInt(FABRICATED_QS_COLUMN, 2)) binding.qsColumn.sliderValue = finalQsColumn[0] binding.qsColumn.setOnSliderTouchListener(object : Slider.OnSliderTouchListener { override fun onStartTrackingTouch(slider: Slider) {} @@ -91,12 +91,12 @@ class QsRowColumn : BaseFragment() { // Show loading dialog loadingDialog!!.show(resources.getString(R.string.loading_dialog_wait)) Thread { - Prefs.putBoolean(QS_ROW_COLUMN_SWITCH, true) - Prefs.putInt(FABRICATED_QQS_ROW, finalQqsRow[0]) - Prefs.putInt(FABRICATED_QS_ROW, finalQsRow[0]) - Prefs.putInt(FABRICATED_QS_COLUMN, finalQsColumn[0]) - Prefs.putInt(FABRICATED_QQS_TILE, finalQqsRow[0] * finalQsColumn[0]) - Prefs.putInt(FABRICATED_QS_TILE, finalQsColumn[0] * finalQsRow[0]) + RPrefs.putBoolean(QS_ROW_COLUMN_SWITCH, true) + RPrefs.putInt(FABRICATED_QQS_ROW, finalQqsRow[0]) + RPrefs.putInt(FABRICATED_QS_ROW, finalQsRow[0]) + RPrefs.putInt(FABRICATED_QS_COLUMN, finalQsColumn[0]) + RPrefs.putInt(FABRICATED_QQS_TILE, finalQqsRow[0] * finalQsColumn[0]) + RPrefs.putInt(FABRICATED_QS_TILE, finalQsColumn[0] * finalQsRow[0]) applyRowColumn() @@ -122,7 +122,7 @@ class QsRowColumn : BaseFragment() { // Reset button binding.qsRowColumnReset.visibility = - if (Prefs.getBoolean(QS_ROW_COLUMN_SWITCH)) { + if (RPrefs.getBoolean(QS_ROW_COLUMN_SWITCH)) { View.VISIBLE } else { View.GONE @@ -135,7 +135,7 @@ class QsRowColumn : BaseFragment() { resetRowColumn() Handler(Looper.getMainLooper()).post { - Prefs.putBoolean(QS_ROW_COLUMN_SWITCH, false) + RPrefs.putBoolean(QS_ROW_COLUMN_SWITCH, false) Handler(Looper.getMainLooper()).postDelayed({ // Hide loading dialog loadingDialog!!.hide() @@ -153,7 +153,7 @@ class QsRowColumn : BaseFragment() { }.start() } - if (Prefs.getBoolean(ALERT_DIALOG_QSROWCOL, true)) { + if (RPrefs.getBoolean(ALERT_DIALOG_QSROWCOL, true)) { MaterialAlertDialogBuilder(requireContext()) .setTitle(resources.getString(R.string.hey_there)) .setMessage(resources.getString(R.string.qs_row_column_warn_desc)) @@ -162,7 +162,7 @@ class QsRowColumn : BaseFragment() { } .setNegativeButton(getString(R.string.dont_show_again)) { dialog: DialogInterface, _: Int -> dialog.dismiss() - Prefs.putBoolean(ALERT_DIALOG_QSROWCOL, false) + RPrefs.putBoolean(ALERT_DIALOG_QSROWCOL, false) } .setCancelable(true) .show() @@ -185,28 +185,28 @@ class QsRowColumn : BaseFragment() { FABRICATED_QQS_ROW, "integer", "quick_qs_panel_max_rows", - Prefs.getInt(FABRICATED_QQS_ROW, 2).toString() + RPrefs.getInt(FABRICATED_QQS_ROW, 2).toString() ), arrayOf( SYSTEMUI_PACKAGE, FABRICATED_QS_ROW, "integer", "quick_settings_max_rows", - Prefs.getInt(FABRICATED_QS_ROW, 4).toString() + RPrefs.getInt(FABRICATED_QS_ROW, 4).toString() ), arrayOf( SYSTEMUI_PACKAGE, FABRICATED_QS_COLUMN, "integer", "quick_settings_num_columns", - Prefs.getInt(FABRICATED_QS_COLUMN, 2).toString() + RPrefs.getInt(FABRICATED_QS_COLUMN, 2).toString() ), arrayOf( SYSTEMUI_PACKAGE, FABRICATED_QQS_TILE, "integer", "quick_qs_panel_max_tiles", - (Prefs.getInt(FABRICATED_QQS_ROW, 2) * Prefs.getInt( + (RPrefs.getInt(FABRICATED_QQS_ROW, 2) * RPrefs.getInt( FABRICATED_QS_COLUMN, 2 )).toString() @@ -216,7 +216,7 @@ class QsRowColumn : BaseFragment() { FABRICATED_QS_TILE, "integer", "quick_settings_min_num_tiles", - (Prefs.getInt(FABRICATED_QS_COLUMN, 2) * Prefs.getInt( + (RPrefs.getInt(FABRICATED_QS_COLUMN, 2) * RPrefs.getInt( FABRICATED_QS_ROW, 4 )).toString() diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/QsTileSize.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/QsTileSize.kt similarity index 89% rename from app/src/main/java/com/drdisagree/iconify/ui/fragments/QsTileSize.kt rename to app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/QsTileSize.kt index e2b7fe644..47cad8cac 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/QsTileSize.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/QsTileSize.kt @@ -1,4 +1,4 @@ -package com.drdisagree.iconify.ui.fragments +package com.drdisagree.iconify.ui.fragments.tweaks import android.os.Bundle import android.os.Handler @@ -12,8 +12,8 @@ import com.drdisagree.iconify.common.Preferences.LAND_QSTILE_EXPANDED_HEIGHT import com.drdisagree.iconify.common.Preferences.LAND_QSTILE_NONEXPANDED_HEIGHT import com.drdisagree.iconify.common.Preferences.PORT_QSTILE_EXPANDED_HEIGHT import com.drdisagree.iconify.common.Preferences.PORT_QSTILE_NONEXPANDED_HEIGHT -import com.drdisagree.iconify.config.Prefs -import com.drdisagree.iconify.config.Prefs.clearPrefs +import com.drdisagree.iconify.config.RPrefs +import com.drdisagree.iconify.config.RPrefs.clearPrefs import com.drdisagree.iconify.databinding.FragmentQsTileSizeBinding import com.drdisagree.iconify.ui.base.BaseFragment import com.drdisagree.iconify.ui.dialogs.LoadingDialog @@ -51,7 +51,7 @@ class QsTileSize : BaseFragment() { loadingDialog = LoadingDialog(requireContext()) // Portrait non expanded height - val portNonExpandedHeight = intArrayOf(Prefs.getInt(PORT_QSTILE_NONEXPANDED_HEIGHT, 60)) + val portNonExpandedHeight = intArrayOf(RPrefs.getInt(PORT_QSTILE_NONEXPANDED_HEIGHT, 60)) binding.portNonexpandedHeight.sliderValue = portNonExpandedHeight[0] binding.portNonexpandedHeight.setOnSliderTouchListener(object : Slider.OnSliderTouchListener { @@ -69,7 +69,7 @@ class QsTileSize : BaseFragment() { } // Portrait Expanded height - val portExpandedHeight = intArrayOf(Prefs.getInt(PORT_QSTILE_EXPANDED_HEIGHT, 80)) + val portExpandedHeight = intArrayOf(RPrefs.getInt(PORT_QSTILE_EXPANDED_HEIGHT, 80)) binding.portExpandedHeight.sliderValue = portExpandedHeight[0] binding.portExpandedHeight.setOnSliderTouchListener(object : Slider.OnSliderTouchListener { @@ -87,7 +87,7 @@ class QsTileSize : BaseFragment() { } // Landscape non expanded height - val landNonExpandedHeight = intArrayOf(Prefs.getInt(LAND_QSTILE_NONEXPANDED_HEIGHT, 60)) + val landNonExpandedHeight = intArrayOf(RPrefs.getInt(LAND_QSTILE_NONEXPANDED_HEIGHT, 60)) binding.landNonexpandedHeight.sliderValue = landNonExpandedHeight[0] binding.landNonexpandedHeight.setOnSliderTouchListener(object : Slider.OnSliderTouchListener { @@ -105,7 +105,7 @@ class QsTileSize : BaseFragment() { } // Landscape Expanded height - val landExpandedHeight = intArrayOf(Prefs.getInt(LAND_QSTILE_EXPANDED_HEIGHT, 80)) + val landExpandedHeight = intArrayOf(RPrefs.getInt(LAND_QSTILE_EXPANDED_HEIGHT, 80)) binding.landExpandedHeight.sliderValue = landExpandedHeight[0] binding.landExpandedHeight.setOnSliderTouchListener(object : Slider.OnSliderTouchListener { @@ -176,10 +176,10 @@ class QsTileSize : BaseFragment() { ) if (!hasErroredOut.get()) { - Prefs.putInt(PORT_QSTILE_NONEXPANDED_HEIGHT, portNonExpandedHeight[0]) - Prefs.putInt(PORT_QSTILE_EXPANDED_HEIGHT, portExpandedHeight[0]) - Prefs.putInt(LAND_QSTILE_NONEXPANDED_HEIGHT, landNonExpandedHeight[0]) - Prefs.putInt(LAND_QSTILE_EXPANDED_HEIGHT, landExpandedHeight[0]) + RPrefs.putInt(PORT_QSTILE_NONEXPANDED_HEIGHT, portNonExpandedHeight[0]) + RPrefs.putInt(PORT_QSTILE_EXPANDED_HEIGHT, portExpandedHeight[0]) + RPrefs.putInt(LAND_QSTILE_NONEXPANDED_HEIGHT, landNonExpandedHeight[0]) + RPrefs.putInt(LAND_QSTILE_EXPANDED_HEIGHT, landExpandedHeight[0]) } Handler(Looper.getMainLooper()).postDelayed({ @@ -273,10 +273,10 @@ class QsTileSize : BaseFragment() { } private val isQsTileHeightEnabled: Boolean - get() = Prefs.getInt(PORT_QSTILE_NONEXPANDED_HEIGHT, 60) != 60 || - Prefs.getInt(PORT_QSTILE_EXPANDED_HEIGHT, 80) != 80 || - Prefs.getInt(LAND_QSTILE_NONEXPANDED_HEIGHT, 60) != 60 || - Prefs.getInt(LAND_QSTILE_EXPANDED_HEIGHT, 80) != 80 + get() = RPrefs.getInt(PORT_QSTILE_NONEXPANDED_HEIGHT, 60) != 60 || + RPrefs.getInt(PORT_QSTILE_EXPANDED_HEIGHT, 80) != 80 || + RPrefs.getInt(LAND_QSTILE_NONEXPANDED_HEIGHT, 60) != 60 || + RPrefs.getInt(LAND_QSTILE_EXPANDED_HEIGHT, 80) != 80 override fun onDestroy() { loadingDialog?.dismiss() diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/Statusbar.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/Statusbar.kt similarity index 92% rename from app/src/main/java/com/drdisagree/iconify/ui/fragments/Statusbar.kt rename to app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/Statusbar.kt index 9fe8e9b82..953552af8 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/Statusbar.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/Statusbar.kt @@ -1,4 +1,4 @@ -package com.drdisagree.iconify.ui.fragments +package com.drdisagree.iconify.ui.fragments.tweaks import android.os.Bundle import android.os.Handler @@ -17,8 +17,8 @@ import com.drdisagree.iconify.common.References.FABRICATED_SB_COLOR_TINT import com.drdisagree.iconify.common.References.FABRICATED_SB_HEIGHT import com.drdisagree.iconify.common.References.FABRICATED_SB_LEFT_PADDING import com.drdisagree.iconify.common.References.FABRICATED_SB_RIGHT_PADDING -import com.drdisagree.iconify.config.Prefs -import com.drdisagree.iconify.config.Prefs.putString +import com.drdisagree.iconify.config.RPrefs +import com.drdisagree.iconify.config.RPrefs.putString import com.drdisagree.iconify.databinding.FragmentStatusbarBinding import com.drdisagree.iconify.ui.activities.MainActivity import com.drdisagree.iconify.ui.base.BaseFragment @@ -42,9 +42,9 @@ import org.greenrobot.eventbus.Subscribe class Statusbar : BaseFragment() { private lateinit var binding: FragmentStatusbarBinding - private val finalSBLeftPadding = intArrayOf(Prefs.getInt(FABRICATED_SB_LEFT_PADDING, 8)) - private val finalSBRightPadding = intArrayOf(Prefs.getInt(FABRICATED_SB_RIGHT_PADDING, 8)) - private val finalSBHeight = intArrayOf(Prefs.getInt(FABRICATED_SB_HEIGHT, 28)) + private val finalSBLeftPadding = intArrayOf(RPrefs.getInt(FABRICATED_SB_LEFT_PADDING, 8)) + private val finalSBRightPadding = intArrayOf(RPrefs.getInt(FABRICATED_SB_RIGHT_PADDING, 8)) + private val finalSBHeight = intArrayOf(RPrefs.getInt(FABRICATED_SB_HEIGHT, 28)) private val sbLeftPaddingListener: Slider.OnSliderTouchListener = object : Slider.OnSliderTouchListener { @@ -52,7 +52,7 @@ class Statusbar : BaseFragment() { override fun onStopTrackingTouch(slider: Slider) { finalSBLeftPadding[0] = slider.value.toInt() - Prefs.putInt(FABRICATED_SB_LEFT_PADDING, finalSBLeftPadding[0]) + RPrefs.putInt(FABRICATED_SB_LEFT_PADDING, finalSBLeftPadding[0]) buildOverlayWithResource( requireContext(), @@ -72,7 +72,7 @@ class Statusbar : BaseFragment() { override fun onStopTrackingTouch(slider: Slider) { finalSBRightPadding[0] = slider.value.toInt() - Prefs.putInt(FABRICATED_SB_RIGHT_PADDING, finalSBRightPadding[0]) + RPrefs.putInt(FABRICATED_SB_RIGHT_PADDING, finalSBRightPadding[0]) buildOverlayWithResource( requireContext(), @@ -92,7 +92,7 @@ class Statusbar : BaseFragment() { override fun onStopTrackingTouch(slider: Slider) { finalSBHeight[0] = slider.value.toInt() - Prefs.putInt(FABRICATED_SB_HEIGHT, finalSBHeight[0]) + RPrefs.putInt(FABRICATED_SB_HEIGHT, finalSBHeight[0]) buildOverlayWithResource( requireContext(), @@ -146,7 +146,7 @@ class Statusbar : BaseFragment() { // Reset left padding binding.sbLeftPadding.setResetClickListener { - Prefs.putInt(FABRICATED_SB_LEFT_PADDING, 8) + RPrefs.putInt(FABRICATED_SB_LEFT_PADDING, 8) removeResourceFromOverlay( requireContext(), @@ -162,7 +162,7 @@ class Statusbar : BaseFragment() { // Reset right padding binding.sbRightPadding.setResetClickListener { - Prefs.putInt(FABRICATED_SB_RIGHT_PADDING, 8) + RPrefs.putInt(FABRICATED_SB_RIGHT_PADDING, 8) removeResourceFromOverlay( requireContext(), @@ -178,7 +178,7 @@ class Statusbar : BaseFragment() { // Reset height binding.sbHeight.setResetClickListener { - Prefs.putInt(FABRICATED_SB_HEIGHT, 28) + RPrefs.putInt(FABRICATED_SB_HEIGHT, 28) removeResourceFromOverlay( requireContext(), @@ -193,9 +193,9 @@ class Statusbar : BaseFragment() { colorSBTint = resources.getColor(R.color.colorAccent, appContext.theme).toString() //set current chosen style - selectedStyle = Prefs.getString(FABRICATED_SB_COLOR_SOURCE) + selectedStyle = RPrefs.getString(FABRICATED_SB_COLOR_SOURCE) when { - selectedStyle == "Monet" || Prefs.getBoolean("IconifyComponentSBTint.overlay") -> { + selectedStyle == "Monet" || RPrefs.getBoolean("IconifyComponentSBTint.overlay") -> { binding.sbTintMonet.setChecked(true) putString(FABRICATED_SB_COLOR_SOURCE, "Monet") } @@ -266,7 +266,7 @@ class Statusbar : BaseFragment() { @Subscribe fun onDialogDismissed(event: ColorDismissedEvent) { if (event.dialogId == 1) { - selectedStyle = Prefs.getString(FABRICATED_SB_COLOR_SOURCE) + selectedStyle = RPrefs.getString(FABRICATED_SB_COLOR_SOURCE) when (selectedStyle) { "System" -> binding.sbTintSystem.setChecked(true) "Monet" -> binding.sbTintMonet.setChecked(true) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/Tweaks.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/Tweaks.kt new file mode 100644 index 000000000..ea03bccf2 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/Tweaks.kt @@ -0,0 +1,19 @@ +package com.drdisagree.iconify.ui.fragments.tweaks + +import com.drdisagree.iconify.R +import com.drdisagree.iconify.ui.base.ControlledPreferenceFragmentCompat + +class Tweaks : ControlledPreferenceFragmentCompat() { + + override val title: String + get() = getString(R.string.navbar_tweaks) + + override val backButtonEnabled: Boolean + get() = true + + override val layoutResource: Int + get() = R.xml.tweaks + + override val hasMenu: Boolean + get() = true +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/UiRoundness.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/UiRoundness.kt similarity index 96% rename from app/src/main/java/com/drdisagree/iconify/ui/fragments/UiRoundness.kt rename to app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/UiRoundness.kt index 11873a5d4..bc5ab96dc 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/UiRoundness.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/UiRoundness.kt @@ -1,4 +1,4 @@ -package com.drdisagree.iconify.ui.fragments +package com.drdisagree.iconify.ui.fragments.tweaks import android.content.res.Configuration import android.graphics.drawable.GradientDrawable @@ -15,7 +15,6 @@ import com.drdisagree.iconify.Iconify.Companion.appContext import com.drdisagree.iconify.Iconify.Companion.appContextLocale import com.drdisagree.iconify.R import com.drdisagree.iconify.common.Preferences.UI_CORNER_RADIUS -import com.drdisagree.iconify.config.Prefs import com.drdisagree.iconify.config.RPrefs import com.drdisagree.iconify.databinding.FragmentUiRoundnessBinding import com.drdisagree.iconify.ui.base.BaseFragment @@ -70,7 +69,7 @@ class UiRoundness : BaseFragment() { binding.autoBrightness.background as GradientDrawable ) - val finalUiCornerRadius = intArrayOf(Prefs.getInt(UI_CORNER_RADIUS, 28)) + val finalUiCornerRadius = intArrayOf(RPrefs.getInt(UI_CORNER_RADIUS, 28)) if (finalUiCornerRadius[0] == 28) { binding.cornerRadiusOutput.text = @@ -146,7 +145,7 @@ class UiRoundness : BaseFragment() { Handler(Looper.getMainLooper()).post { if (!hasErroredOut.get()) { - Prefs.putInt(UI_CORNER_RADIUS, finalUiCornerRadius[0]) + RPrefs.putInt(UI_CORNER_RADIUS, finalUiCornerRadius[0]) RPrefs.putInt(UI_CORNER_RADIUS, finalUiCornerRadius[0]) } diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/VolumePanel.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/VolumePanel.kt similarity index 95% rename from app/src/main/java/com/drdisagree/iconify/ui/fragments/VolumePanel.kt rename to app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/VolumePanel.kt index 43dee18f2..2bac58139 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/fragments/VolumePanel.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/tweaks/VolumePanel.kt @@ -1,4 +1,4 @@ -package com.drdisagree.iconify.ui.fragments +package com.drdisagree.iconify.ui.fragments.tweaks import android.annotation.SuppressLint import android.os.Bundle @@ -16,7 +16,7 @@ import com.drdisagree.iconify.Iconify.Companion.appContextLocale import com.drdisagree.iconify.R import com.drdisagree.iconify.common.Const.SYSTEMUI_PACKAGE import com.drdisagree.iconify.common.Preferences.VOLUME_PANEL_BACKGROUND_WIDTH -import com.drdisagree.iconify.config.Prefs +import com.drdisagree.iconify.config.RPrefs import com.drdisagree.iconify.databinding.FragmentVolumePanelBinding import com.drdisagree.iconify.ui.base.BaseFragment import com.drdisagree.iconify.ui.dialogs.InfoDialog @@ -57,7 +57,7 @@ class VolumePanel : BaseFragment() { R.string.activity_title_volume_panel ) - binding.thinBg.isChecked = Prefs.getInt(VOLUME_PANEL_BACKGROUND_WIDTH, 0) == 1 + binding.thinBg.isChecked = RPrefs.getInt(VOLUME_PANEL_BACKGROUND_WIDTH, 0) == 1 binding.thinBg.addOnCheckedChangeListener { button: MaterialButton, isChecked: Boolean -> if (button.isPressed) { if (!hasStoragePermission()) { @@ -68,7 +68,7 @@ class VolumePanel : BaseFragment() { binding.toggleButtonGroup.uncheck(binding.thickBg.id) binding.toggleButtonGroup.uncheck(binding.noBg.id) - Prefs.putInt(VOLUME_PANEL_BACKGROUND_WIDTH, 1) + RPrefs.putInt(VOLUME_PANEL_BACKGROUND_WIDTH, 1) buildOverlayWithResource( requireContext(), @@ -92,7 +92,7 @@ class VolumePanel : BaseFragment() { ) ) } else { - Prefs.putInt(VOLUME_PANEL_BACKGROUND_WIDTH, 0) + RPrefs.putInt(VOLUME_PANEL_BACKGROUND_WIDTH, 0) removeResourceFromOverlay( requireContext(), @@ -105,7 +105,7 @@ class VolumePanel : BaseFragment() { } } - binding.thickBg.isChecked = Prefs.getInt(VOLUME_PANEL_BACKGROUND_WIDTH, 0) == 2 + binding.thickBg.isChecked = RPrefs.getInt(VOLUME_PANEL_BACKGROUND_WIDTH, 0) == 2 binding.thickBg.addOnCheckedChangeListener { button: MaterialButton, isChecked: Boolean -> if (button.isPressed) { if (!hasStoragePermission()) { @@ -116,7 +116,7 @@ class VolumePanel : BaseFragment() { binding.toggleButtonGroup.uncheck(binding.thinBg.id) binding.toggleButtonGroup.uncheck(binding.noBg.id) - Prefs.putInt(VOLUME_PANEL_BACKGROUND_WIDTH, 2) + RPrefs.putInt(VOLUME_PANEL_BACKGROUND_WIDTH, 2) buildOverlayWithResource( requireContext(), @@ -140,7 +140,7 @@ class VolumePanel : BaseFragment() { ) ) } else { - Prefs.putInt(VOLUME_PANEL_BACKGROUND_WIDTH, 0) + RPrefs.putInt(VOLUME_PANEL_BACKGROUND_WIDTH, 0) removeResourceFromOverlay( requireContext(), @@ -153,7 +153,7 @@ class VolumePanel : BaseFragment() { } } - binding.noBg.isChecked = Prefs.getInt(VOLUME_PANEL_BACKGROUND_WIDTH, 0) == 3 + binding.noBg.isChecked = RPrefs.getInt(VOLUME_PANEL_BACKGROUND_WIDTH, 0) == 3 binding.noBg.addOnCheckedChangeListener { button: MaterialButton, isChecked: Boolean -> if (button.isPressed) { if (!hasStoragePermission()) { @@ -164,7 +164,7 @@ class VolumePanel : BaseFragment() { binding.toggleButtonGroup.uncheck(binding.thinBg.id) binding.toggleButtonGroup.uncheck(binding.thickBg.id) - Prefs.putInt(VOLUME_PANEL_BACKGROUND_WIDTH, 3) + RPrefs.putInt(VOLUME_PANEL_BACKGROUND_WIDTH, 3) buildOverlayWithResource( requireContext(), @@ -188,7 +188,7 @@ class VolumePanel : BaseFragment() { ) ) } else { - Prefs.putInt(VOLUME_PANEL_BACKGROUND_WIDTH, 0) + RPrefs.putInt(VOLUME_PANEL_BACKGROUND_WIDTH, 0) removeResourceFromOverlay( requireContext(), diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/BackgroundChip.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/BackgroundChip.kt new file mode 100644 index 000000000..4e9667dc0 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/BackgroundChip.kt @@ -0,0 +1,39 @@ +package com.drdisagree.iconify.ui.fragments.xposed + +import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_SWITCH +import com.drdisagree.iconify.common.Preferences.CHIP_STATUS_ICONS_SWITCH +import com.drdisagree.iconify.config.RPrefs.getBoolean +import com.drdisagree.iconify.ui.activities.MainActivity +import com.drdisagree.iconify.ui.base.ControlledPreferenceFragmentCompat + +class BackgroundChip : ControlledPreferenceFragmentCompat() { + + override val title: String + get() = getString(R.string.activity_title_background_chip) + + override val backButtonEnabled: Boolean + get() = true + + override val layoutResource: Int + get() = R.xml.xposed_background_chip + + override val hasMenu: Boolean + get() = true + + override fun updateScreen(key: String?) { + super.updateScreen(key) + + when (key) { + CHIP_STATUSBAR_CLOCK_SWITCH -> { + if (!getBoolean(key)) { + MainActivity.showOrHidePendingActionButton(requiresSystemUiRestart = true) + } + } + + CHIP_STATUS_ICONS_SWITCH -> { + MainActivity.showOrHidePendingActionButton(requiresSystemUiRestart = true) + } + } + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/BatteryStyle.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/BatteryStyle.kt new file mode 100644 index 000000000..b484268a5 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/BatteryStyle.kt @@ -0,0 +1,61 @@ +package com.drdisagree.iconify.ui.fragments.xposed + +import android.os.Bundle +import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_CHARGING_ICON_STYLE +import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_HEIGHT +import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_STYLE +import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_WIDTH +import com.drdisagree.iconify.config.RPrefs +import com.drdisagree.iconify.ui.activities.MainActivity +import com.drdisagree.iconify.ui.adapters.ListPreferenceAdapter +import com.drdisagree.iconify.ui.base.ControlledPreferenceFragmentCompat +import com.drdisagree.iconify.ui.preferences.BottomSheetListPreference +import com.drdisagree.iconify.ui.utils.ViewHelper.getBatteryDrawables +import com.drdisagree.iconify.ui.utils.ViewHelper.getChargingIcons + +class BatteryStyle : ControlledPreferenceFragmentCompat() { + + override val title: String + get() = getString(R.string.activity_title_battery_style) + + override val backButtonEnabled: Boolean + get() = true + + override val layoutResource: Int + get() = R.xml.xposed_battery_style + + override val hasMenu: Boolean + get() = true + + override fun updateScreen(key: String?) { + super.updateScreen(key) + + when (key) { + CUSTOM_BATTERY_STYLE -> { + MainActivity.showOrHidePendingActionButton(requiresSystemUiRestart = true) + } + + CUSTOM_BATTERY_WIDTH, + CUSTOM_BATTERY_HEIGHT -> { + if (RPrefs.getString(CUSTOM_BATTERY_STYLE, "0")!!.toInt() < 3) { + MainActivity.showOrHidePendingActionButton(requiresSystemUiRestart = true) + } + } + } + } + + override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { + super.onCreatePreferences(savedInstanceState, rootKey) + + findPreference(CUSTOM_BATTERY_STYLE)?.apply { + createDefaultAdapter(getBatteryDrawables(requireContext())) + setAdapterType(ListPreferenceAdapter.TYPE_BATTERY_ICONS) + } + + findPreference(CUSTOM_BATTERY_CHARGING_ICON_STYLE)?.apply { + createDefaultAdapter(getChargingIcons(requireContext())) + setAdapterType(ListPreferenceAdapter.TYPE_BATTERY_ICONS) + } + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/ClockChip.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/ClockChip.kt new file mode 100644 index 000000000..ff8ebda04 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/ClockChip.kt @@ -0,0 +1,426 @@ +package com.drdisagree.iconify.ui.fragments.xposed + +import android.content.res.Configuration +import android.graphics.Color +import android.graphics.PorterDuff +import android.graphics.PorterDuffXfermode +import android.graphics.drawable.Drawable +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.view.ViewTreeObserver +import android.widget.CompoundButton +import androidx.coordinatorlayout.widget.CoordinatorLayout +import androidx.core.content.ContextCompat +import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat +import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_ACCENT +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_END_COLOR +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_GRADIENT_DIRECTION +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_PADDING_BOTTOM +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_PADDING_LEFT +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_PADDING_RIGHT +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_PADDING_TOP +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_RADIUS_BOTTOM_LEFT +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_RADIUS_BOTTOM_RIGHT +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_RADIUS_TOP_LEFT +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_RADIUS_TOP_RIGHT +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_START_COLOR +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_STROKE_ACCENT +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_STROKE_COLOR +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_STROKE_DASH +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_STROKE_DASH_GAP +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_STROKE_DASH_WIDTH +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_STROKE_SWITCH +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_STROKE_WIDTH +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_STYLE_CHANGED +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_TEXT_COLOR_CODE +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_TEXT_COLOR_OPTION +import com.drdisagree.iconify.config.RPrefs +import com.drdisagree.iconify.config.RPrefs.getBoolean +import com.drdisagree.iconify.config.RPrefs.getInt +import com.drdisagree.iconify.databinding.FragmentXposedClockChipBinding +import com.drdisagree.iconify.ui.base.BaseFragment +import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader +import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.toPx +import com.drdisagree.iconify.xposed.modules.views.ChipDrawable +import com.drdisagree.iconify.xposed.modules.views.ChipDrawable.GradientDirection.Companion.toIndex +import com.google.android.material.slider.Slider +import eightbitlab.com.blurview.RenderEffectBlur + +class ClockChip : BaseFragment() { + + private lateinit var binding: FragmentXposedClockChipBinding + + private var customTextColorIndex: Int = getInt(CHIP_STATUSBAR_CLOCK_TEXT_COLOR_OPTION, 0) + private var customTextColor: Int = getInt(CHIP_STATUSBAR_CLOCK_TEXT_COLOR_CODE, Color.WHITE) + private var accentFillEnabled: Boolean = getBoolean(CHIP_STATUSBAR_CLOCK_ACCENT, true) + private var startColor: Int = getInt(CHIP_STATUSBAR_CLOCK_START_COLOR, Color.RED) + private var endColor: Int = getInt(CHIP_STATUSBAR_CLOCK_END_COLOR, Color.BLUE) + private var gradientDirection: ChipDrawable.GradientDirection = + ChipDrawable.GradientDirection.fromIndex( + getInt( + CHIP_STATUSBAR_CLOCK_GRADIENT_DIRECTION, + ChipDrawable.GradientDirection.LEFT_RIGHT.toIndex() + ) + ) + private var padding: IntArray = intArrayOf( + getInt(CHIP_STATUSBAR_CLOCK_PADDING_LEFT, 8), + getInt(CHIP_STATUSBAR_CLOCK_PADDING_TOP, 4), + getInt(CHIP_STATUSBAR_CLOCK_PADDING_RIGHT, 8), + getInt(CHIP_STATUSBAR_CLOCK_PADDING_BOTTOM, 4) + ) + private var strokeEnabled: Boolean = getBoolean(CHIP_STATUSBAR_CLOCK_STROKE_SWITCH) + private var strokeWidth: Int = getInt(CHIP_STATUSBAR_CLOCK_STROKE_WIDTH, 2) + private var accentBorderEnabled: Boolean = getBoolean(CHIP_STATUSBAR_CLOCK_STROKE_ACCENT, true) + private var strokeColor: Int = getInt(CHIP_STATUSBAR_CLOCK_STROKE_COLOR, Color.GREEN) + private var dashedBorderEnabled: Boolean = getBoolean(CHIP_STATUSBAR_CLOCK_STROKE_DASH) + private var dashWidth: Int = getInt(CHIP_STATUSBAR_CLOCK_STROKE_DASH_WIDTH, 4) + private var dashGap: Int = getInt(CHIP_STATUSBAR_CLOCK_STROKE_DASH_GAP, 4) + private var cornerRadii = floatArrayOf( + getInt(CHIP_STATUSBAR_CLOCK_RADIUS_TOP_LEFT, 28).toFloat(), + getInt(CHIP_STATUSBAR_CLOCK_RADIUS_TOP_LEFT, 28).toFloat(), + getInt(CHIP_STATUSBAR_CLOCK_RADIUS_TOP_RIGHT, 28).toFloat(), + getInt(CHIP_STATUSBAR_CLOCK_RADIUS_TOP_RIGHT, 28).toFloat(), + getInt(CHIP_STATUSBAR_CLOCK_RADIUS_BOTTOM_RIGHT, 28).toFloat(), + getInt(CHIP_STATUSBAR_CLOCK_RADIUS_BOTTOM_RIGHT, 28).toFloat(), + getInt(CHIP_STATUSBAR_CLOCK_RADIUS_BOTTOM_LEFT, 28).toFloat(), + getInt(CHIP_STATUSBAR_CLOCK_RADIUS_BOTTOM_LEFT, 28).toFloat(), + ) + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View { + binding = FragmentXposedClockChipBinding.inflate(inflater, container, false) + + // Header + setHeader( + requireContext(), + getParentFragmentManager(), + binding.header.toolbar, + R.string.activity_title_clock_chip + ) + + binding.header.appBarLayout.viewTreeObserver.addOnGlobalLayoutListener(object : + ViewTreeObserver.OnGlobalLayoutListener { + override fun onGlobalLayout() { + binding.header.appBarLayout.viewTreeObserver.removeOnGlobalLayoutListener(this) + + val windowInsetsCompat = ViewCompat.getRootWindowInsets(binding.root) + val statusBarHeight = + windowInsetsCompat?.isVisible(WindowInsetsCompat.Type.statusBars())?.let { + windowInsetsCompat.getInsets(WindowInsetsCompat.Type.statusBars()).top + } ?: 0 + + val headerHeight = binding.header.appBarLayout.height + + val params = binding.blurView.layoutParams as CoordinatorLayout.LayoutParams + params.topMargin = headerHeight + binding.blurView.layoutParams = params + + val blurViewHeight = binding.header.appBarLayout.height + + binding.linearLayout.setPadding( + binding.linearLayout.paddingLeft, + blurViewHeight - statusBarHeight, + binding.linearLayout.paddingRight, + binding.linearLayout.paddingBottom + ) + } + }) + + val windowBackground: Drawable? = requireActivity().window.decorView.background + binding.blurView.setupWith(binding.root, RenderEffectBlur()) + .setFrameClearDrawable(windowBackground) + .setBlurRadius(8f) + + binding.clockTextColor.setSelectedIndex(getInt(CHIP_STATUSBAR_CLOCK_TEXT_COLOR_OPTION, 0)) + binding.clockTextColor.setOnItemSelectedListener { index: Int -> + customTextColorIndex = index + updateVisibility() + } + + binding.clockTextColorPicker.apply { + setColorPickerListener( + activity = requireActivity(), + defaultColor = customTextColor, + showPresets = true, + showAlphaSlider = true, + showColorShades = true + ) + setOnColorSelectedListener { color: Int -> + customTextColor = color + updateVisibility() + } + } + + binding.accentFillColor.isSwitchChecked = accentFillEnabled + binding.accentFillColor.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> + accentFillEnabled = isChecked + updateVisibility() + } + + binding.gradientDirection.setSelectedIndex(gradientDirection.toIndex()) + binding.gradientDirection.setOnItemSelectedListener { index: Int -> + gradientDirection = ChipDrawable.GradientDirection.entries.toTypedArray()[index] + updateVisibility() + } + + binding.fillStartColor.apply { + setColorPickerListener( + activity = requireActivity(), + defaultColor = startColor, + showPresets = true, + showAlphaSlider = true, + showColorShades = true + ) + setOnColorSelectedListener { color: Int -> + startColor = color + updateVisibility() + } + } + + binding.fillEndColor.apply { + setColorPickerListener( + activity = requireActivity(), + defaultColor = endColor, + showPresets = true, + showAlphaSlider = true, + showColorShades = true + ) + setOnColorSelectedListener { color: Int -> + endColor = color + updateVisibility() + } + } + + binding.enableBorder.isSwitchChecked = strokeEnabled + binding.enableBorder.setSwitchChangeListener { _: CompoundButton?, enabled: Boolean -> + strokeEnabled = enabled + updateVisibility() + } + + binding.accentBorderColor.isSwitchChecked = accentBorderEnabled + binding.accentBorderColor.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> + accentBorderEnabled = isChecked + updateVisibility() + } + + binding.borderColor.apply { + setColorPickerListener( + activity = requireActivity(), + defaultColor = strokeColor, + showPresets = true, + showAlphaSlider = true, + showColorShades = true + ) + setOnColorSelectedListener { color: Int -> + strokeColor = color + updateVisibility() + } + } + + binding.borderThickness.sliderValue = strokeWidth + binding.borderThickness.setOnSliderChangeListener { _: Slider?, value: Float, _: Boolean -> + strokeWidth = value.toInt() + updateVisibility() + } + + binding.dashedBorder.isSwitchChecked = dashedBorderEnabled + binding.dashedBorder.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> + dashedBorderEnabled = isChecked + updateVisibility() + } + + binding.dashWidth.sliderValue = dashWidth + binding.dashWidth.setOnSliderChangeListener { _: Slider?, value: Float, _: Boolean -> + dashWidth = value.toInt() + updateVisibility() + } + + binding.dashGap.sliderValue = dashGap + binding.dashGap.setOnSliderChangeListener { _: Slider?, value: Float, _: Boolean -> + dashGap = value.toInt() + updateVisibility() + } + + binding.paddingLeft.sliderValue = padding[0] + binding.paddingLeft.setOnSliderChangeListener { _: Slider?, value: Float, _: Boolean -> + padding[0] = value.toInt() + updateVisibility() + } + + binding.paddingRight.sliderValue = padding[2] + binding.paddingRight.setOnSliderChangeListener { _: Slider?, value: Float, _: Boolean -> + padding[2] = value.toInt() + updateVisibility() + } + + binding.paddingTop.sliderValue = padding[1] + binding.paddingTop.setOnSliderChangeListener { _: Slider?, value: Float, _: Boolean -> + padding[1] = value.toInt() + updateVisibility() + } + + binding.paddingBottom.sliderValue = padding[3] + binding.paddingBottom.setOnSliderChangeListener { _: Slider?, value: Float, _: Boolean -> + padding[3] = value.toInt() + updateVisibility() + } + + binding.cornerRadiusTopLeft.sliderValue = cornerRadii[0].toInt() + binding.cornerRadiusTopLeft.setOnSliderChangeListener { _: Slider?, value: Float, _: Boolean -> + cornerRadii[0] = value + cornerRadii[1] = value + updateVisibility() + } + + binding.cornerRadiusTopRight.sliderValue = cornerRadii[2].toInt() + binding.cornerRadiusTopRight.setOnSliderChangeListener { _: Slider?, value: Float, _: Boolean -> + cornerRadii[2] = value + cornerRadii[3] = value + updateVisibility() + } + + binding.cornerRadiusBottomLeft.sliderValue = cornerRadii[6].toInt() + binding.cornerRadiusBottomLeft.setOnSliderChangeListener { _: Slider?, value: Float, _: Boolean -> + cornerRadii[6] = value + cornerRadii[7] = value + updateVisibility() + } + + binding.cornerRadiusBottomRight.sliderValue = cornerRadii[4].toInt() + binding.cornerRadiusBottomRight.setOnSliderChangeListener { _: Slider?, value: Float, _: Boolean -> + cornerRadii[4] = value + cornerRadii[5] = value + updateVisibility() + } + + binding.btnApply.setOnClickListener { + RPrefs.apply { + putInt(CHIP_STATUSBAR_CLOCK_TEXT_COLOR_OPTION, customTextColorIndex) + putInt(CHIP_STATUSBAR_CLOCK_TEXT_COLOR_CODE, customTextColor) + putBoolean(CHIP_STATUSBAR_CLOCK_ACCENT, accentFillEnabled) + putInt(CHIP_STATUSBAR_CLOCK_START_COLOR, startColor) + putInt(CHIP_STATUSBAR_CLOCK_END_COLOR, endColor) + putInt(CHIP_STATUSBAR_CLOCK_GRADIENT_DIRECTION, gradientDirection.toIndex()) + putInt(CHIP_STATUSBAR_CLOCK_PADDING_LEFT, padding[0]) + putInt(CHIP_STATUSBAR_CLOCK_PADDING_TOP, padding[1]) + putInt(CHIP_STATUSBAR_CLOCK_PADDING_RIGHT, padding[2]) + putInt(CHIP_STATUSBAR_CLOCK_PADDING_BOTTOM, padding[3]) + putBoolean(CHIP_STATUSBAR_CLOCK_STROKE_SWITCH, strokeEnabled) + putInt(CHIP_STATUSBAR_CLOCK_STROKE_WIDTH, strokeWidth) + putBoolean(CHIP_STATUSBAR_CLOCK_STROKE_ACCENT, accentBorderEnabled) + putInt(CHIP_STATUSBAR_CLOCK_STROKE_COLOR, strokeColor) + putBoolean(CHIP_STATUSBAR_CLOCK_STROKE_DASH, dashedBorderEnabled) + putInt(CHIP_STATUSBAR_CLOCK_STROKE_DASH_WIDTH, dashWidth) + putInt(CHIP_STATUSBAR_CLOCK_STROKE_DASH_GAP, dashGap) + putInt(CHIP_STATUSBAR_CLOCK_RADIUS_TOP_LEFT, cornerRadii[0].toInt()) + putInt(CHIP_STATUSBAR_CLOCK_RADIUS_TOP_LEFT, cornerRadii[0].toInt()) + putInt(CHIP_STATUSBAR_CLOCK_RADIUS_TOP_RIGHT, cornerRadii[2].toInt()) + putInt(CHIP_STATUSBAR_CLOCK_RADIUS_TOP_RIGHT, cornerRadii[2].toInt()) + putInt(CHIP_STATUSBAR_CLOCK_RADIUS_BOTTOM_RIGHT, cornerRadii[4].toInt()) + putInt(CHIP_STATUSBAR_CLOCK_RADIUS_BOTTOM_RIGHT, cornerRadii[4].toInt()) + putInt(CHIP_STATUSBAR_CLOCK_RADIUS_BOTTOM_LEFT, cornerRadii[6].toInt()) + putInt(CHIP_STATUSBAR_CLOCK_RADIUS_BOTTOM_LEFT, cornerRadii[6].toInt()) + + putBoolean( + CHIP_STATUSBAR_CLOCK_STYLE_CHANGED, + !getBoolean(CHIP_STATUSBAR_CLOCK_STYLE_CHANGED) + ) + } + } + + updateVisibility() + + return binding.getRoot() + } + + private fun updateVisibility() { + val textColorPicker = if (customTextColorIndex == 2) View.VISIBLE else View.GONE + + binding.clockTextColorPicker.visibility = textColorPicker + + val accentFillEnabled = + if (binding.accentFillColor.isSwitchChecked) View.GONE else View.VISIBLE + + binding.gradientDirection.visibility = accentFillEnabled + binding.fillStartColor.visibility = accentFillEnabled + binding.fillEndColor.visibility = accentFillEnabled + + val borderEnabled = if (binding.enableBorder.isSwitchChecked) View.VISIBLE else View.GONE + + binding.accentBorderColor.visibility = borderEnabled + binding.borderThickness.visibility = borderEnabled + binding.dashedBorder.visibility = borderEnabled + + val accentBorderColor = + if (binding.accentBorderColor.isSwitchChecked || !binding.enableBorder.isSwitchChecked) View.GONE else View.VISIBLE + + binding.borderColor.visibility = accentBorderColor + + val dashedBorderEnabled = if (binding.dashedBorder.isSwitchChecked) { + if (!binding.enableBorder.isSwitchChecked) View.GONE else View.VISIBLE + } else View.GONE + + binding.dashWidth.visibility = dashedBorderEnabled + binding.dashGap.visibility = dashedBorderEnabled + + val isDarkMode = + requireContext().resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_YES == + Configuration.UI_MODE_NIGHT_YES + + when (customTextColorIndex) { + 0 -> { + binding.previewClock.paint.xfermode = null + binding.previewClock.setTextColor( + ContextCompat.getColor( + requireContext(), + if (isDarkMode) { + R.color.white + } else { + R.color.black + } + ) + ) + } + + 1 -> { + binding.previewClock.paint.xfermode = PorterDuffXfermode(PorterDuff.Mode.DST_OUT) + } + + 2 -> { + binding.previewClock.paint.xfermode = null + binding.previewClock.setTextColor(customTextColor) + } + } + + binding.previewClock.setPadding( + requireContext().toPx(padding[0]), + requireContext().toPx(padding[1]), + requireContext().toPx(padding[2]), + requireContext().toPx(padding[3]) + ) + + binding.previewClock.background = ChipDrawable.createChipDrawable( + context = requireContext(), + accentFill = this.accentFillEnabled, + startColor = startColor, + endColor = endColor, + gradientDirection = gradientDirection, + padding = intArrayOf(0, 0, 0, 0), + strokeEnabled = strokeEnabled, + accentStroke = accentBorderEnabled, + strokeWidth = strokeWidth, + strokeColor = strokeColor, + dashedBorderEnabled = this.dashedBorderEnabled, + dashWidth = dashWidth, + dashGap = dashGap, + cornerRadii = cornerRadii + ) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/DepthWallpaper.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/DepthWallpaper.kt new file mode 100644 index 000000000..4699b248e --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/DepthWallpaper.kt @@ -0,0 +1,145 @@ +package com.drdisagree.iconify.ui.fragments.xposed + +import android.app.Activity +import android.os.Build +import android.os.Bundle +import android.widget.Toast +import androidx.activity.result.ActivityResult +import androidx.activity.result.contract.ActivityResultContracts +import com.drdisagree.iconify.Iconify.Companion.appContext +import com.drdisagree.iconify.Iconify.Companion.appContextLocale +import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Preferences.DEPTH_WALLPAPER_CHANGED +import com.drdisagree.iconify.common.Preferences.DEPTH_WALLPAPER_SWITCH +import com.drdisagree.iconify.common.Resources.DEPTH_WALL_BG_DIR +import com.drdisagree.iconify.common.Resources.DEPTH_WALL_FG_DIR +import com.drdisagree.iconify.config.RPrefs.putBoolean +import com.drdisagree.iconify.ui.activities.MainActivity +import com.drdisagree.iconify.ui.base.ControlledPreferenceFragmentCompat +import com.drdisagree.iconify.ui.preferences.FilePickerPreference +import com.drdisagree.iconify.ui.preferences.SwitchPreference +import com.drdisagree.iconify.utils.FileUtil.getRealPath +import com.drdisagree.iconify.utils.FileUtil.launchFilePicker +import com.drdisagree.iconify.utils.FileUtil.moveToIconifyHiddenDir +import com.drdisagree.iconify.xposed.modules.utils.BitmapSubjectSegmenter +import com.google.android.gms.common.moduleinstall.ModuleAvailabilityResponse + +class DepthWallpaper : ControlledPreferenceFragmentCompat() { + + override val title: String + get() = getString(R.string.activity_title_depth_wallpaper) + + override val backButtonEnabled: Boolean + get() = true + + override val layoutResource: Int + get() = R.xml.xposed_depth_wallpaper + + override val hasMenu: Boolean + get() = true + + private var startActivityIntentForBackgroundImage = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { result: ActivityResult -> + if (result.resultCode == Activity.RESULT_OK) { + val data = result.data + val path = getRealPath(data) + + if (path != null && moveToIconifyHiddenDir(path, DEPTH_WALL_BG_DIR)) { + putBoolean(DEPTH_WALLPAPER_CHANGED, false) + putBoolean(DEPTH_WALLPAPER_CHANGED, true) + + Toast.makeText( + appContext, + appContextLocale.resources.getString(R.string.toast_applied), + Toast.LENGTH_SHORT + ).show() + } else { + Toast.makeText( + appContext, + appContextLocale.resources.getString(R.string.toast_rename_file), + Toast.LENGTH_SHORT + ).show() + } + } + } + + private var startActivityIntentForForegroundImage = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { result: ActivityResult -> + if (result.resultCode == Activity.RESULT_OK) { + val data = result.data + val path = getRealPath(data) + + if (path != null && moveToIconifyHiddenDir(path, DEPTH_WALL_FG_DIR)) { + putBoolean(DEPTH_WALLPAPER_CHANGED, false) + putBoolean(DEPTH_WALLPAPER_CHANGED, true) + + Toast.makeText( + appContext, + appContextLocale.resources.getString(R.string.toast_applied), + Toast.LENGTH_SHORT + ).show() + } else { + Toast.makeText( + appContext, + appContextLocale.resources.getString(R.string.toast_rename_file), + Toast.LENGTH_SHORT + ).show() + } + } + } + + override fun updateScreen(key: String?) { + super.updateScreen(key) + + when (key) { + DEPTH_WALLPAPER_SWITCH -> { + MainActivity.showOrHidePendingActionButton(requiresSystemUiRestart = true) + } + } + } + + override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { + super.onCreatePreferences(savedInstanceState, rootKey) + + findPreference(DEPTH_WALLPAPER_SWITCH)?.apply { + if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.TIRAMISU) { + setSummary( + getString( + R.string.enable_depth_wallpaper_desc, + getString(R.string.use_custom_lockscreen_clock) + ) + ) + } else { + BitmapSubjectSegmenter(requireContext()) + .checkModelAvailability { moduleAvailabilityResponse: ModuleAvailabilityResponse? -> + setSummary( + getString( + R.string.enable_depth_wallpaper_desc, + getString( + if (moduleAvailabilityResponse?.areModulesAvailable() == true) { + R.string.depth_wallpaper_model_ready + } else { + R.string.depth_wallpaper_model_not_available + } + ) + ) + ) + } + } + } + + findPreference("xposed_depthwallpaperbgimagepicker")?.apply { + setOnButtonClick { + launchFilePicker(context, "image", startActivityIntentForBackgroundImage) + } + } + + findPreference("xposed_depthwallpaperfgimagepicker")?.apply { + setOnButtonClick { + launchFilePicker(context, "image", startActivityIntentForForegroundImage) + } + } + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/HeaderClock.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/HeaderClock.kt new file mode 100644 index 000000000..65ad4d9c9 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/HeaderClock.kt @@ -0,0 +1,136 @@ +package com.drdisagree.iconify.ui.fragments.xposed + +import android.annotation.SuppressLint +import android.app.Activity +import android.os.Bundle +import android.widget.Toast +import androidx.activity.result.ActivityResult +import androidx.activity.result.contract.ActivityResultContracts +import com.drdisagree.iconify.BuildConfig +import com.drdisagree.iconify.Iconify.Companion.appContext +import com.drdisagree.iconify.Iconify.Companion.appContextLocale +import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Preferences.HEADER_CLOCK_FONT_SWITCH +import com.drdisagree.iconify.common.Preferences.HEADER_CLOCK_STYLE +import com.drdisagree.iconify.common.Preferences.HEADER_CLOCK_SWITCH +import com.drdisagree.iconify.common.Resources.HEADER_CLOCK_FONT_DIR +import com.drdisagree.iconify.common.Resources.HEADER_CLOCK_LAYOUT +import com.drdisagree.iconify.config.RPrefs.putBoolean +import com.drdisagree.iconify.ui.activities.MainActivity +import com.drdisagree.iconify.ui.adapters.ClockPreviewAdapter +import com.drdisagree.iconify.ui.base.ControlledPreferenceFragmentCompat +import com.drdisagree.iconify.ui.models.ClockModel +import com.drdisagree.iconify.ui.preferences.FilePickerPreference +import com.drdisagree.iconify.ui.preferences.RecyclerPreference +import com.drdisagree.iconify.utils.FileUtil.getRealPath +import com.drdisagree.iconify.utils.FileUtil.launchFilePicker +import com.drdisagree.iconify.utils.FileUtil.moveToIconifyHiddenDir + +class HeaderClock : ControlledPreferenceFragmentCompat() { + + override val title: String + get() = getString(R.string.activity_title_header_clock) + + override val backButtonEnabled: Boolean + get() = true + + override val layoutResource: Int + get() = R.xml.xposed_header_clock + + override val hasMenu: Boolean + get() = true + + private var startActivityIntent = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { result: ActivityResult -> + if (result.resultCode == Activity.RESULT_OK) { + val data = result.data + val path = getRealPath(data) + + if (path != null && moveToIconifyHiddenDir(path, HEADER_CLOCK_FONT_DIR)) { + putBoolean(HEADER_CLOCK_FONT_SWITCH, false) + putBoolean(HEADER_CLOCK_FONT_SWITCH, true) + + Toast.makeText( + appContext, + appContextLocale.resources.getString(R.string.toast_applied), + Toast.LENGTH_SHORT + ).show() + } else { + Toast.makeText( + appContext, + appContextLocale.resources.getString(R.string.toast_rename_file), + Toast.LENGTH_SHORT + ).show() + } + } + } + + override fun updateScreen(key: String?) { + super.updateScreen(key) + + when (key) { + HEADER_CLOCK_SWITCH -> { + MainActivity.showOrHidePendingActionButton(requiresSystemUiRestart = true) + } + } + } + + override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { + super.onCreatePreferences(savedInstanceState, rootKey) + + findPreference(HEADER_CLOCK_STYLE)?.apply { + setAdapter(initHeaderClockStyles()) + setPreference(HEADER_CLOCK_STYLE, 0) + } + + findPreference("xposed_headerclockfontpicker")?.apply { + setOnButtonClick { + launchFilePicker(context, "font", startActivityIntent) + } + } + } + + @SuppressLint("DiscouragedApi") + private fun initHeaderClockStyles(): ClockPreviewAdapter { + val headerClock = ArrayList() + var maxIndex = 0 + + while (requireContext() + .resources + .getIdentifier( + HEADER_CLOCK_LAYOUT + maxIndex, + "layout", + BuildConfig.APPLICATION_ID + ) != 0 + ) { + maxIndex++ + } + + for (i in 0 until maxIndex) { + headerClock.add( + ClockModel( + if (i == 0) { + requireContext().getString(R.string.clock_none) + } else { + requireContext().getString(R.string.clock_style_name, i) + }, + requireContext() + .resources + .getIdentifier( + HEADER_CLOCK_LAYOUT + i, + "layout", + BuildConfig.APPLICATION_ID + ) + ) + ) + } + + return ClockPreviewAdapter( + requireContext(), + headerClock, + HEADER_CLOCK_SWITCH, + HEADER_CLOCK_STYLE + ) + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/HeaderImage.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/HeaderImage.kt new file mode 100644 index 000000000..3c3e5487d --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/HeaderImage.kt @@ -0,0 +1,69 @@ +package com.drdisagree.iconify.ui.fragments.xposed + +import android.app.Activity +import android.os.Bundle +import android.widget.Toast +import androidx.activity.result.ActivityResult +import androidx.activity.result.contract.ActivityResultContracts +import com.drdisagree.iconify.Iconify.Companion.appContext +import com.drdisagree.iconify.Iconify.Companion.appContextLocale +import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Preferences.HEADER_IMAGE_SWITCH +import com.drdisagree.iconify.common.Resources.HEADER_IMAGE_DIR +import com.drdisagree.iconify.config.RPrefs.putBoolean +import com.drdisagree.iconify.ui.base.ControlledPreferenceFragmentCompat +import com.drdisagree.iconify.ui.preferences.FilePickerPreference +import com.drdisagree.iconify.utils.FileUtil.getRealPath +import com.drdisagree.iconify.utils.FileUtil.launchFilePicker +import com.drdisagree.iconify.utils.FileUtil.moveToIconifyHiddenDir + +class HeaderImage : ControlledPreferenceFragmentCompat() { + + override val title: String + get() = getString(R.string.activity_title_header_image) + + override val backButtonEnabled: Boolean + get() = true + + override val layoutResource: Int + get() = R.xml.xposed_header_image + + override val hasMenu: Boolean + get() = true + + private var startActivityIntent = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { result: ActivityResult -> + if (result.resultCode == Activity.RESULT_OK) { + val data = result.data + val path = getRealPath(data) + + if (path != null && moveToIconifyHiddenDir(path, HEADER_IMAGE_DIR)) { + putBoolean(HEADER_IMAGE_SWITCH, false) + putBoolean(HEADER_IMAGE_SWITCH, true) + + Toast.makeText( + appContext, + appContextLocale.resources.getString(R.string.toast_applied), + Toast.LENGTH_SHORT + ).show() + } else { + Toast.makeText( + appContext, + appContextLocale.resources.getString(R.string.toast_rename_file), + Toast.LENGTH_SHORT + ).show() + } + } + } + + override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { + super.onCreatePreferences(savedInstanceState, rootKey) + + findPreference("xposed_headerimagepicker")?.apply { + setOnButtonClick { + launchFilePicker(context, "image", startActivityIntent) + } + } + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/LockscreenClock.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/LockscreenClock.kt new file mode 100644 index 000000000..b9f3fc0e1 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/LockscreenClock.kt @@ -0,0 +1,145 @@ +package com.drdisagree.iconify.ui.fragments.xposed + +import android.annotation.SuppressLint +import android.app.Activity +import android.os.Bundle +import android.widget.Toast +import androidx.activity.result.ActivityResult +import androidx.activity.result.contract.ActivityResultContracts +import com.drdisagree.iconify.BuildConfig +import com.drdisagree.iconify.Iconify.Companion.appContext +import com.drdisagree.iconify.Iconify.Companion.appContextLocale +import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Dynamic.isAtleastA14 +import com.drdisagree.iconify.common.Preferences.LSCLOCK_FONT_SWITCH +import com.drdisagree.iconify.common.Preferences.LSCLOCK_STYLE +import com.drdisagree.iconify.common.Preferences.LSCLOCK_SWITCH +import com.drdisagree.iconify.common.Resources.LOCKSCREEN_CLOCK_LAYOUT +import com.drdisagree.iconify.common.Resources.LSCLOCK_FONT_DIR +import com.drdisagree.iconify.config.RPrefs.getBoolean +import com.drdisagree.iconify.config.RPrefs.putBoolean +import com.drdisagree.iconify.ui.activities.MainActivity +import com.drdisagree.iconify.ui.adapters.ClockPreviewAdapter +import com.drdisagree.iconify.ui.base.ControlledPreferenceFragmentCompat +import com.drdisagree.iconify.ui.models.ClockModel +import com.drdisagree.iconify.ui.preferences.FilePickerPreference +import com.drdisagree.iconify.ui.preferences.RecyclerPreference +import com.drdisagree.iconify.utils.FileUtil.getRealPath +import com.drdisagree.iconify.utils.FileUtil.launchFilePicker +import com.drdisagree.iconify.utils.FileUtil.moveToIconifyHiddenDir +import com.topjohnwu.superuser.Shell + +class LockscreenClock : ControlledPreferenceFragmentCompat() { + + override val title: String + get() = getString(R.string.activity_title_lockscreen_clock) + + override val backButtonEnabled: Boolean + get() = true + + override val layoutResource: Int + get() = R.xml.xposed_lockscreen_clock + + override val hasMenu: Boolean + get() = true + + private var startActivityIntent = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { result: ActivityResult -> + if (result.resultCode == Activity.RESULT_OK) { + val data = result.data + val path = getRealPath(data) + + if (path != null && moveToIconifyHiddenDir(path, LSCLOCK_FONT_DIR)) { + putBoolean(LSCLOCK_FONT_SWITCH, false) + putBoolean(LSCLOCK_FONT_SWITCH, true) + + Toast.makeText( + appContext, + appContextLocale.resources.getString(R.string.toast_applied), + Toast.LENGTH_SHORT + ).show() + } else { + Toast.makeText( + appContext, + appContextLocale.resources.getString(R.string.toast_rename_file), + Toast.LENGTH_SHORT + ).show() + } + } + } + + override fun updateScreen(key: String?) { + super.updateScreen(key) + + when (key) { + LSCLOCK_SWITCH -> { + if (getBoolean(key) && isAtleastA14) { + Shell.cmd( + "settings put secure lock_screen_custom_clock_face default" + ).exec() + } + + MainActivity.showOrHidePendingActionButton(requiresSystemUiRestart = true) + } + } + } + + override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { + super.onCreatePreferences(savedInstanceState, rootKey) + + findPreference(LSCLOCK_STYLE)?.apply { + setAdapter(initLockscreenClockStyles()) + setPreference(LSCLOCK_STYLE, 0) + } + + findPreference("xposed_lockscreenclockfontpicker")?.apply { + setOnButtonClick { + launchFilePicker(context, "font", startActivityIntent) + } + } + } + + @SuppressLint("DiscouragedApi") + private fun initLockscreenClockStyles(): ClockPreviewAdapter { + val lsClock = ArrayList() + var maxIndex = 0 + + while (requireContext() + .resources + .getIdentifier( + LOCKSCREEN_CLOCK_LAYOUT + maxIndex, + "layout", + BuildConfig.APPLICATION_ID + ) != 0 + ) { + maxIndex++ + } + + for (i in 0 until maxIndex) { + lsClock.add( + ClockModel( + if (i == 0) { + requireContext().getString(R.string.clock_none) + } else { + requireContext().getString(R.string.clock_style_name, i) + }, + requireContext() + .resources + .getIdentifier( + LOCKSCREEN_CLOCK_LAYOUT + i, + "layout", + BuildConfig.APPLICATION_ID + ) + ) + ) + } + + return ClockPreviewAdapter( + requireContext(), + lsClock, + LSCLOCK_SWITCH, + LSCLOCK_STYLE + ) + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/LockscreenWeather.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/LockscreenWeather.kt new file mode 100644 index 000000000..0d80d973c --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/LockscreenWeather.kt @@ -0,0 +1,58 @@ +package com.drdisagree.iconify.ui.fragments.xposed + +import com.drdisagree.iconify.Iconify.Companion.appContextLocale +import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Preferences.WEATHER_OWM_KEY +import com.drdisagree.iconify.common.Preferences.WEATHER_PROVIDER +import com.drdisagree.iconify.common.Preferences.WEATHER_SWITCH +import com.drdisagree.iconify.config.RPrefs +import com.drdisagree.iconify.ui.activities.MainActivity +import com.drdisagree.iconify.ui.base.WeatherPreferenceFragment +import com.google.android.material.dialog.MaterialAlertDialogBuilder + +class LockscreenWeather : WeatherPreferenceFragment() { + + override val title: String + get() = getString(R.string.activity_title_lockscreen_weather) + + override val backButtonEnabled: Boolean + get() = true + + override val layoutResource: Int + get() = R.xml.xposed_lockscreen_weather + + override val hasMenu: Boolean + get() = true + + override fun getMainSwitchKey(): String { + return WEATHER_SWITCH + } + + private fun showOwnKeyDialog() { + MaterialAlertDialogBuilder(requireContext()) + .setTitle(appContextLocale.getString(R.string.weather_provider_owm_key_title)) + .setMessage(appContextLocale.getString(R.string.weather_provider_owm_key_message)) + .setCancelable(false) + .setPositiveButton(appContextLocale.getString(R.string.understood), null) + .create() + .show() + } + + override fun updateScreen(key: String?) { + super.updateScreen(key) + + when (key) { + WEATHER_SWITCH -> { + MainActivity.showOrHidePendingActionButton(requiresSystemUiRestart = true) + } + + WEATHER_PROVIDER -> { + if (RPrefs.getString(WEATHER_PROVIDER) == "1" && RPrefs.getString(WEATHER_OWM_KEY) + .isNullOrEmpty() + ) { + showOwnKeyDialog() + } + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/LockscreenWidget.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/LockscreenWidget.kt new file mode 100644 index 000000000..fb374f4f2 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/LockscreenWidget.kt @@ -0,0 +1,140 @@ +package com.drdisagree.iconify.ui.fragments.xposed + +import android.os.Bundle +import android.text.TextUtils +import androidx.preference.Preference +import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Preferences.EXTRA_WIDGET_1_KEY +import com.drdisagree.iconify.common.Preferences.EXTRA_WIDGET_2_KEY +import com.drdisagree.iconify.common.Preferences.EXTRA_WIDGET_3_KEY +import com.drdisagree.iconify.common.Preferences.EXTRA_WIDGET_4_KEY +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_DEVICE_WIDGET +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_ENABLED +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_EXTRAS +import com.drdisagree.iconify.common.Preferences.MAIN_WIDGET_1_KEY +import com.drdisagree.iconify.common.Preferences.MAIN_WIDGET_2_KEY +import com.drdisagree.iconify.config.RPrefs +import com.drdisagree.iconify.services.WeatherScheduler +import com.drdisagree.iconify.ui.activities.MainActivity +import com.drdisagree.iconify.ui.base.ControlledPreferenceFragmentCompat +import com.drdisagree.iconify.utils.OmniJawsClient +import com.drdisagree.iconify.utils.weather.WeatherConfig +import java.util.stream.Collectors + +class LockscreenWidget : ControlledPreferenceFragmentCompat() { + + private lateinit var mWeatherClient: OmniJawsClient + + private val widgetKeysMap: MutableMap = HashMap() + private val initialWidgetKeysMap: MutableMap = HashMap() + + private lateinit var mMainWidget1: Preference + private lateinit var mMainWidget2: Preference + private lateinit var mExtraWidget1: Preference + private lateinit var mExtraWidget2: Preference + private lateinit var mExtraWidget3: Preference + private lateinit var mExtraWidget4: Preference + private lateinit var mDeviceInfoWidgetPref: Preference + + private var mWidgetPreferences: List? = null + + override val title: String + get() = getString(R.string.activity_title_lockscreen_widget) + + override val backButtonEnabled: Boolean + get() = true + + override val layoutResource: Int + get() = R.xml.xposed_lockscreen_widget + + override val hasMenu: Boolean + get() = true + + override fun updateScreen(key: String?) { + super.updateScreen(key) + + if (key == null) return + + saveInitialPreferences() + + var mainWidgetsList: List = listOf( + RPrefs.getString(MAIN_WIDGET_1_KEY, "none")!!, + RPrefs.getString(MAIN_WIDGET_2_KEY, "none")!! + ) + var extraWidgetsList: List = listOf( + RPrefs.getString(EXTRA_WIDGET_1_KEY, "none")!!, + RPrefs.getString(EXTRA_WIDGET_2_KEY, "none")!!, + RPrefs.getString(EXTRA_WIDGET_3_KEY, "none")!!, + RPrefs.getString(EXTRA_WIDGET_4_KEY, "none")!! + ) + + mainWidgetsList = replaceEmptyWithNone(mainWidgetsList) + extraWidgetsList = replaceEmptyWithNone(extraWidgetsList) + + val mainWidgets = TextUtils.join(",", mainWidgetsList) + val extraWidgets = TextUtils.join(",", extraWidgetsList) + + val wasWeatherEnabled: Boolean = WeatherConfig.isEnabled(requireContext()) + + RPrefs.putString(LOCKSCREEN_WIDGETS, mainWidgets) + RPrefs.putString(LOCKSCREEN_WIDGETS_EXTRAS, extraWidgets) + + val weatherEnabled = + mainWidgets.contains("weather") || extraWidgets.contains("weather") + + if (weatherEnabled && wasWeatherEnabled && mWeatherClient.weatherInfo != null) { + if (System.currentTimeMillis() - mWeatherClient.weatherInfo!!.timeStamp > 3600000) { + WeatherScheduler.scheduleUpdateNow(requireContext()) + } + } else if (weatherEnabled) { + WeatherScheduler.scheduleUpdates(requireContext()) + WeatherScheduler.scheduleUpdateNow(requireContext()) + } + + when (key) { + LOCKSCREEN_WIDGETS_ENABLED -> { + MainActivity.showOrHidePendingActionButton(requiresSystemUiRestart = true) + } + } + } + + override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { + super.onCreatePreferences(savedInstanceState, rootKey) + + mWeatherClient = OmniJawsClient(requireContext()) + mWeatherClient.queryWeather() + + mMainWidget1 = findPreference(MAIN_WIDGET_1_KEY)!! + mMainWidget2 = findPreference(MAIN_WIDGET_2_KEY)!! + mExtraWidget1 = findPreference(EXTRA_WIDGET_1_KEY)!! + mExtraWidget2 = findPreference(EXTRA_WIDGET_2_KEY)!! + mExtraWidget3 = findPreference(EXTRA_WIDGET_3_KEY)!! + mExtraWidget4 = findPreference(EXTRA_WIDGET_4_KEY)!! + mDeviceInfoWidgetPref = findPreference(LOCKSCREEN_WIDGETS_DEVICE_WIDGET)!! + + mWidgetPreferences = listOf( + mMainWidget1, + mMainWidget2, + mExtraWidget1, + mExtraWidget2, + mExtraWidget3, + mExtraWidget4, + mDeviceInfoWidgetPref + ) + } + + private fun replaceEmptyWithNone(inputList: List): MutableList { + return inputList.stream() + .map { s: String? -> if (TextUtils.isEmpty(s)) "none" else s } + .collect(Collectors.toList()) + } + + private fun saveInitialPreferences() { + initialWidgetKeysMap.clear() + + for (widgetPref in mWidgetPreferences!!) { + initialWidgetKeysMap[widgetPref] = widgetKeysMap[widgetPref] + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/Others.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/Others.kt new file mode 100644 index 000000000..21505a892 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/Others.kt @@ -0,0 +1,49 @@ +package com.drdisagree.iconify.ui.fragments.xposed + +import android.os.Build +import android.os.Bundle +import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Preferences.FIXED_STATUS_ICONS_SWITCH +import com.drdisagree.iconify.common.Preferences.FIXED_STATUS_ICONS_TOPMARGIN +import com.drdisagree.iconify.common.Preferences.HIDE_LOCKSCREEN_LOCK_ICON +import com.drdisagree.iconify.common.Preferences.HIDE_STATUS_ICONS_SWITCH +import com.drdisagree.iconify.common.Preferences.QSPANEL_HIDE_CARRIER +import com.drdisagree.iconify.ui.activities.MainActivity +import com.drdisagree.iconify.ui.base.ControlledPreferenceFragmentCompat +import com.drdisagree.iconify.ui.preferences.SliderPreference + +class Others : ControlledPreferenceFragmentCompat() { + + override val title: String + get() = getString(R.string.activity_title_xposed_others) + + override val backButtonEnabled: Boolean + get() = true + + override val layoutResource: Int + get() = R.xml.xposed_others + + override val hasMenu: Boolean + get() = true + + override fun updateScreen(key: String?) { + super.updateScreen(key) + + when (key) { + QSPANEL_HIDE_CARRIER, + HIDE_STATUS_ICONS_SWITCH, + HIDE_LOCKSCREEN_LOCK_ICON, + FIXED_STATUS_ICONS_SWITCH -> { + MainActivity.showOrHidePendingActionButton(requiresSystemUiRestart = true) + } + } + } + + override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { + super.onCreatePreferences(savedInstanceState, rootKey) + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + findPreference(FIXED_STATUS_ICONS_TOPMARGIN)?.setMax(250f) + } + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/QuickSettings.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/QuickSettings.kt new file mode 100644 index 000000000..45dd14aba --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/QuickSettings.kt @@ -0,0 +1,61 @@ +package com.drdisagree.iconify.ui.fragments.xposed + +import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Preferences.CUSTOM_QS_MARGIN +import com.drdisagree.iconify.common.Preferences.HIDE_QSLABEL_SWITCH +import com.drdisagree.iconify.common.Preferences.HIDE_QS_ON_LOCKSCREEN +import com.drdisagree.iconify.common.Preferences.HIDE_QS_SILENT_TEXT +import com.drdisagree.iconify.common.Preferences.QQS_TOPMARGIN +import com.drdisagree.iconify.common.Preferences.QS_TEXT_ALWAYS_WHITE +import com.drdisagree.iconify.common.Preferences.QS_TEXT_FOLLOW_ACCENT +import com.drdisagree.iconify.common.Preferences.QS_TOPMARGIN +import com.drdisagree.iconify.common.Preferences.VERTICAL_QSTILE_SWITCH +import com.drdisagree.iconify.config.RPrefs.getBoolean +import com.drdisagree.iconify.config.RPrefs.putBoolean +import com.drdisagree.iconify.ui.activities.MainActivity +import com.drdisagree.iconify.ui.base.ControlledPreferenceFragmentCompat + +class QuickSettings : ControlledPreferenceFragmentCompat() { + + override val title: String + get() = getString(R.string.activity_title_quick_settings) + + override val backButtonEnabled: Boolean + get() = true + + override val layoutResource: Int + get() = R.xml.xposed_quick_settings + + override val hasMenu: Boolean + get() = true + + override fun updateScreen(key: String?) { + super.updateScreen(key) + + when (key) { + VERTICAL_QSTILE_SWITCH, + HIDE_QSLABEL_SWITCH, + CUSTOM_QS_MARGIN, + QQS_TOPMARGIN, + QS_TOPMARGIN, + HIDE_QS_ON_LOCKSCREEN, + HIDE_QS_SILENT_TEXT -> { + MainActivity.showOrHidePendingActionButton(requiresSystemUiRestart = true) + } + + QS_TEXT_ALWAYS_WHITE -> { + if (getBoolean(key)) { + putBoolean(QS_TEXT_FOLLOW_ACCENT, false) + } + MainActivity.showOrHidePendingActionButton(requiresSystemUiRestart = true) + } + + QS_TEXT_FOLLOW_ACCENT -> { + if (getBoolean(key)) { + putBoolean(QS_TEXT_ALWAYS_WHITE, false) + } + MainActivity.showOrHidePendingActionButton(requiresSystemUiRestart = true) + } + } + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/StatusIconsChip.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/StatusIconsChip.kt new file mode 100644 index 000000000..de79b5e26 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/StatusIconsChip.kt @@ -0,0 +1,382 @@ +package com.drdisagree.iconify.ui.fragments.xposed + +import android.graphics.Color +import android.graphics.drawable.Drawable +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.view.ViewTreeObserver +import android.widget.CompoundButton +import androidx.coordinatorlayout.widget.CoordinatorLayout +import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat +import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_ACCENT +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_END_COLOR +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_GRADIENT_DIRECTION +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_PADDING_BOTTOM +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_PADDING_LEFT +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_PADDING_RIGHT +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_PADDING_TOP +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_RADIUS_BOTTOM_LEFT +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_RADIUS_BOTTOM_RIGHT +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_RADIUS_TOP_LEFT +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_RADIUS_TOP_RIGHT +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_START_COLOR +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_STROKE_ACCENT +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_STROKE_COLOR +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_STROKE_DASH +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_STROKE_DASH_GAP +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_STROKE_DASH_WIDTH +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_STROKE_SWITCH +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_STROKE_WIDTH +import com.drdisagree.iconify.common.Preferences.CHIP_STATUS_ICONS_ACCENT +import com.drdisagree.iconify.common.Preferences.CHIP_STATUS_ICONS_END_COLOR +import com.drdisagree.iconify.common.Preferences.CHIP_STATUS_ICONS_GRADIENT_DIRECTION +import com.drdisagree.iconify.common.Preferences.CHIP_STATUS_ICONS_PADDING_BOTTOM +import com.drdisagree.iconify.common.Preferences.CHIP_STATUS_ICONS_PADDING_LEFT +import com.drdisagree.iconify.common.Preferences.CHIP_STATUS_ICONS_PADDING_RIGHT +import com.drdisagree.iconify.common.Preferences.CHIP_STATUS_ICONS_PADDING_TOP +import com.drdisagree.iconify.common.Preferences.CHIP_STATUS_ICONS_RADIUS_BOTTOM_LEFT +import com.drdisagree.iconify.common.Preferences.CHIP_STATUS_ICONS_RADIUS_BOTTOM_RIGHT +import com.drdisagree.iconify.common.Preferences.CHIP_STATUS_ICONS_RADIUS_TOP_LEFT +import com.drdisagree.iconify.common.Preferences.CHIP_STATUS_ICONS_RADIUS_TOP_RIGHT +import com.drdisagree.iconify.common.Preferences.CHIP_STATUS_ICONS_START_COLOR +import com.drdisagree.iconify.common.Preferences.CHIP_STATUS_ICONS_STROKE_ACCENT +import com.drdisagree.iconify.common.Preferences.CHIP_STATUS_ICONS_STROKE_COLOR +import com.drdisagree.iconify.common.Preferences.CHIP_STATUS_ICONS_STROKE_DASH +import com.drdisagree.iconify.common.Preferences.CHIP_STATUS_ICONS_STROKE_DASH_GAP +import com.drdisagree.iconify.common.Preferences.CHIP_STATUS_ICONS_STROKE_DASH_WIDTH +import com.drdisagree.iconify.common.Preferences.CHIP_STATUS_ICONS_STROKE_SWITCH +import com.drdisagree.iconify.common.Preferences.CHIP_STATUS_ICONS_STROKE_WIDTH +import com.drdisagree.iconify.common.Preferences.CHIP_STATUS_ICONS_STYLE_CHANGED +import com.drdisagree.iconify.config.RPrefs +import com.drdisagree.iconify.config.RPrefs.getBoolean +import com.drdisagree.iconify.config.RPrefs.getInt +import com.drdisagree.iconify.databinding.FragmentXposedStatusIconsChipBinding +import com.drdisagree.iconify.ui.base.BaseFragment +import com.drdisagree.iconify.ui.utils.ViewHelper.setHeader +import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.toPx +import com.drdisagree.iconify.xposed.modules.views.ChipDrawable +import com.drdisagree.iconify.xposed.modules.views.ChipDrawable.GradientDirection.Companion.toIndex +import com.google.android.material.slider.Slider +import eightbitlab.com.blurview.RenderEffectBlur + +class StatusIconsChip : BaseFragment() { + + private lateinit var binding: FragmentXposedStatusIconsChipBinding + + private var accentFillEnabled: Boolean = getBoolean(CHIP_STATUSBAR_CLOCK_ACCENT, true) + private var startColor: Int = getInt(CHIP_STATUSBAR_CLOCK_START_COLOR, Color.RED) + private var endColor: Int = getInt(CHIP_STATUSBAR_CLOCK_END_COLOR, Color.BLUE) + private var gradientDirection: ChipDrawable.GradientDirection = + ChipDrawable.GradientDirection.fromIndex( + getInt( + CHIP_STATUSBAR_CLOCK_GRADIENT_DIRECTION, + ChipDrawable.GradientDirection.LEFT_RIGHT.toIndex() + ) + ) + private var padding: IntArray = intArrayOf( + getInt(CHIP_STATUSBAR_CLOCK_PADDING_LEFT, 8), + getInt(CHIP_STATUSBAR_CLOCK_PADDING_TOP, 4), + getInt(CHIP_STATUSBAR_CLOCK_PADDING_RIGHT, 8), + getInt(CHIP_STATUSBAR_CLOCK_PADDING_BOTTOM, 4) + ) + private var strokeEnabled: Boolean = getBoolean(CHIP_STATUSBAR_CLOCK_STROKE_SWITCH) + private var strokeWidth: Int = getInt(CHIP_STATUSBAR_CLOCK_STROKE_WIDTH, 2) + private var accentBorderEnabled: Boolean = getBoolean(CHIP_STATUSBAR_CLOCK_STROKE_ACCENT, true) + private var strokeColor: Int = getInt(CHIP_STATUSBAR_CLOCK_STROKE_COLOR, Color.GREEN) + private var dashedBorderEnabled: Boolean = getBoolean(CHIP_STATUSBAR_CLOCK_STROKE_DASH) + private var dashWidth: Int = getInt(CHIP_STATUSBAR_CLOCK_STROKE_DASH_WIDTH, 4) + private var dashGap: Int = getInt(CHIP_STATUSBAR_CLOCK_STROKE_DASH_GAP, 4) + private var cornerRadii = floatArrayOf( + getInt(CHIP_STATUSBAR_CLOCK_RADIUS_TOP_LEFT, 28).toFloat(), + getInt(CHIP_STATUSBAR_CLOCK_RADIUS_TOP_LEFT, 28).toFloat(), + getInt(CHIP_STATUSBAR_CLOCK_RADIUS_TOP_RIGHT, 28).toFloat(), + getInt(CHIP_STATUSBAR_CLOCK_RADIUS_TOP_RIGHT, 28).toFloat(), + getInt(CHIP_STATUSBAR_CLOCK_RADIUS_BOTTOM_RIGHT, 28).toFloat(), + getInt(CHIP_STATUSBAR_CLOCK_RADIUS_BOTTOM_RIGHT, 28).toFloat(), + getInt(CHIP_STATUSBAR_CLOCK_RADIUS_BOTTOM_LEFT, 28).toFloat(), + getInt(CHIP_STATUSBAR_CLOCK_RADIUS_BOTTOM_LEFT, 28).toFloat(), + ) + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View { + binding = FragmentXposedStatusIconsChipBinding.inflate(inflater, container, false) + + // Header + setHeader( + requireContext(), + getParentFragmentManager(), + binding.header.toolbar, + R.string.activity_title_clock_chip + ) + + binding.header.appBarLayout.viewTreeObserver.addOnGlobalLayoutListener(object : + ViewTreeObserver.OnGlobalLayoutListener { + override fun onGlobalLayout() { + binding.header.appBarLayout.viewTreeObserver.removeOnGlobalLayoutListener(this) + + val windowInsetsCompat = ViewCompat.getRootWindowInsets(binding.root) + val statusBarHeight = + windowInsetsCompat?.isVisible(WindowInsetsCompat.Type.statusBars())?.let { + windowInsetsCompat.getInsets(WindowInsetsCompat.Type.statusBars()).top + } ?: 0 + + val headerHeight = binding.header.appBarLayout.height + + val params = binding.blurView.layoutParams as CoordinatorLayout.LayoutParams + params.topMargin = headerHeight + binding.blurView.layoutParams = params + + val blurViewHeight = binding.header.appBarLayout.height + + binding.linearLayout.setPadding( + binding.linearLayout.paddingLeft, + blurViewHeight - statusBarHeight, + binding.linearLayout.paddingRight, + binding.linearLayout.paddingBottom + ) + } + }) + + val windowBackground: Drawable? = requireActivity().window.decorView.background + binding.blurView.setupWith(binding.root, RenderEffectBlur()) + .setFrameClearDrawable(windowBackground) + .setBlurRadius(8f) + + binding.accentFillColor.isSwitchChecked = accentFillEnabled + binding.accentFillColor.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> + accentFillEnabled = isChecked + updateVisibility() + } + + binding.gradientDirection.setSelectedIndex(gradientDirection.toIndex()) + binding.gradientDirection.setOnItemSelectedListener { index: Int -> + gradientDirection = ChipDrawable.GradientDirection.entries.toTypedArray()[index] + updateVisibility() + } + + binding.fillStartColor.apply { + setColorPickerListener( + activity = requireActivity(), + defaultColor = startColor, + showPresets = true, + showAlphaSlider = true, + showColorShades = true + ) + setOnColorSelectedListener { color: Int -> + startColor = color + updateVisibility() + } + } + + binding.fillEndColor.apply { + setColorPickerListener( + activity = requireActivity(), + defaultColor = endColor, + showPresets = true, + showAlphaSlider = true, + showColorShades = true + ) + setOnColorSelectedListener { color: Int -> + endColor = color + updateVisibility() + } + } + + binding.enableBorder.isSwitchChecked = strokeEnabled + binding.enableBorder.setSwitchChangeListener { _: CompoundButton?, enabled: Boolean -> + strokeEnabled = enabled + updateVisibility() + } + + binding.accentBorderColor.isSwitchChecked = accentBorderEnabled + binding.accentBorderColor.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> + accentBorderEnabled = isChecked + updateVisibility() + } + + binding.borderColor.apply { + setColorPickerListener( + activity = requireActivity(), + defaultColor = strokeColor, + showPresets = true, + showAlphaSlider = true, + showColorShades = true + ) + setOnColorSelectedListener { color: Int -> + strokeColor = color + updateVisibility() + } + } + + binding.borderThickness.sliderValue = strokeWidth + binding.borderThickness.setOnSliderChangeListener { _: Slider?, value: Float, _: Boolean -> + strokeWidth = value.toInt() + updateVisibility() + } + + binding.dashedBorder.isSwitchChecked = dashedBorderEnabled + binding.dashedBorder.setSwitchChangeListener { _: CompoundButton?, isChecked: Boolean -> + dashedBorderEnabled = isChecked + updateVisibility() + } + + binding.dashWidth.sliderValue = dashWidth + binding.dashWidth.setOnSliderChangeListener { _: Slider?, value: Float, _: Boolean -> + dashWidth = value.toInt() + updateVisibility() + } + + binding.dashGap.sliderValue = dashGap + binding.dashGap.setOnSliderChangeListener { _: Slider?, value: Float, _: Boolean -> + dashGap = value.toInt() + updateVisibility() + } + + binding.paddingLeft.sliderValue = padding[0] + binding.paddingLeft.setOnSliderChangeListener { _: Slider?, value: Float, _: Boolean -> + padding[0] = value.toInt() + updateVisibility() + } + + binding.paddingRight.sliderValue = padding[2] + binding.paddingRight.setOnSliderChangeListener { _: Slider?, value: Float, _: Boolean -> + padding[2] = value.toInt() + updateVisibility() + } + + binding.paddingTop.sliderValue = padding[1] + binding.paddingTop.setOnSliderChangeListener { _: Slider?, value: Float, _: Boolean -> + padding[1] = value.toInt() + updateVisibility() + } + + binding.paddingBottom.sliderValue = padding[3] + binding.paddingBottom.setOnSliderChangeListener { _: Slider?, value: Float, _: Boolean -> + padding[3] = value.toInt() + updateVisibility() + } + + binding.cornerRadiusTopLeft.sliderValue = cornerRadii[0].toInt() + binding.cornerRadiusTopLeft.setOnSliderChangeListener { _: Slider?, value: Float, _: Boolean -> + cornerRadii[0] = value + cornerRadii[1] = value + updateVisibility() + } + + binding.cornerRadiusTopRight.sliderValue = cornerRadii[2].toInt() + binding.cornerRadiusTopRight.setOnSliderChangeListener { _: Slider?, value: Float, _: Boolean -> + cornerRadii[2] = value + cornerRadii[3] = value + updateVisibility() + } + + binding.cornerRadiusBottomLeft.sliderValue = cornerRadii[6].toInt() + binding.cornerRadiusBottomLeft.setOnSliderChangeListener { _: Slider?, value: Float, _: Boolean -> + cornerRadii[6] = value + cornerRadii[7] = value + updateVisibility() + } + + binding.cornerRadiusBottomRight.sliderValue = cornerRadii[4].toInt() + binding.cornerRadiusBottomRight.setOnSliderChangeListener { _: Slider?, value: Float, _: Boolean -> + cornerRadii[4] = value + cornerRadii[5] = value + updateVisibility() + } + + binding.btnApply.setOnClickListener { + RPrefs.apply { + putBoolean(CHIP_STATUS_ICONS_ACCENT, accentFillEnabled) + putInt(CHIP_STATUS_ICONS_START_COLOR, startColor) + putInt(CHIP_STATUS_ICONS_END_COLOR, endColor) + putInt(CHIP_STATUS_ICONS_GRADIENT_DIRECTION, gradientDirection.toIndex()) + putInt(CHIP_STATUS_ICONS_PADDING_LEFT, padding[0]) + putInt(CHIP_STATUS_ICONS_PADDING_TOP, padding[1]) + putInt(CHIP_STATUS_ICONS_PADDING_RIGHT, padding[2]) + putInt(CHIP_STATUS_ICONS_PADDING_BOTTOM, padding[3]) + putBoolean(CHIP_STATUS_ICONS_STROKE_SWITCH, strokeEnabled) + putInt(CHIP_STATUS_ICONS_STROKE_WIDTH, strokeWidth) + putBoolean(CHIP_STATUS_ICONS_STROKE_ACCENT, accentBorderEnabled) + putInt(CHIP_STATUS_ICONS_STROKE_COLOR, strokeColor) + putBoolean(CHIP_STATUS_ICONS_STROKE_DASH, dashedBorderEnabled) + putInt(CHIP_STATUS_ICONS_STROKE_DASH_WIDTH, dashWidth) + putInt(CHIP_STATUS_ICONS_STROKE_DASH_GAP, dashGap) + putInt(CHIP_STATUS_ICONS_RADIUS_TOP_LEFT, cornerRadii[0].toInt()) + putInt(CHIP_STATUS_ICONS_RADIUS_TOP_LEFT, cornerRadii[0].toInt()) + putInt(CHIP_STATUS_ICONS_RADIUS_TOP_RIGHT, cornerRadii[2].toInt()) + putInt(CHIP_STATUS_ICONS_RADIUS_TOP_RIGHT, cornerRadii[2].toInt()) + putInt(CHIP_STATUS_ICONS_RADIUS_BOTTOM_RIGHT, cornerRadii[4].toInt()) + putInt(CHIP_STATUS_ICONS_RADIUS_BOTTOM_RIGHT, cornerRadii[4].toInt()) + putInt(CHIP_STATUS_ICONS_RADIUS_BOTTOM_LEFT, cornerRadii[6].toInt()) + putInt(CHIP_STATUS_ICONS_RADIUS_BOTTOM_LEFT, cornerRadii[6].toInt()) + + putBoolean( + CHIP_STATUS_ICONS_STYLE_CHANGED, + !getBoolean(CHIP_STATUS_ICONS_STYLE_CHANGED) + ) + } + } + + updateVisibility() + + return binding.getRoot() + } + + private fun updateVisibility() { + val accentFillEnabled = + if (binding.accentFillColor.isSwitchChecked) View.GONE else View.VISIBLE + + binding.gradientDirection.visibility = accentFillEnabled + binding.fillStartColor.visibility = accentFillEnabled + binding.fillEndColor.visibility = accentFillEnabled + + val borderEnabled = if (binding.enableBorder.isSwitchChecked) View.VISIBLE else View.GONE + + binding.accentBorderColor.visibility = borderEnabled + binding.borderThickness.visibility = borderEnabled + binding.dashedBorder.visibility = borderEnabled + + val accentBorderColor = + if (binding.accentBorderColor.isSwitchChecked || !binding.enableBorder.isSwitchChecked) View.GONE else View.VISIBLE + + binding.borderColor.visibility = accentBorderColor + + val dashedBorderEnabled = if (binding.dashedBorder.isSwitchChecked) { + if (!binding.enableBorder.isSwitchChecked) View.GONE else View.VISIBLE + } else View.GONE + + binding.dashWidth.visibility = dashedBorderEnabled + binding.dashGap.visibility = dashedBorderEnabled + + binding.previewClock.setPadding( + requireContext().toPx(padding[0]), + requireContext().toPx(padding[1]), + requireContext().toPx(padding[2]), + requireContext().toPx(padding[3]) + ) + + binding.previewClock.background = ChipDrawable.createChipDrawable( + context = requireContext(), + accentFill = this.accentFillEnabled, + startColor = startColor, + endColor = endColor, + gradientDirection = gradientDirection, + padding = intArrayOf(0, 0, 0, 0), + strokeEnabled = strokeEnabled, + accentStroke = accentBorderEnabled, + strokeWidth = strokeWidth, + strokeColor = strokeColor, + dashedBorderEnabled = this.dashedBorderEnabled, + dashWidth = dashWidth, + dashGap = dashGap, + cornerRadii = cornerRadii + ) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/Statusbar.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/Statusbar.kt new file mode 100644 index 000000000..c9d01bd07 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/Statusbar.kt @@ -0,0 +1,35 @@ +package com.drdisagree.iconify.ui.fragments.xposed + +import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Preferences.COLORED_STATUSBAR_ICON +import com.drdisagree.iconify.common.Preferences.HIDE_LOCKSCREEN_CARRIER +import com.drdisagree.iconify.common.Preferences.HIDE_LOCKSCREEN_STATUSBAR +import com.drdisagree.iconify.ui.activities.MainActivity +import com.drdisagree.iconify.ui.base.ControlledPreferenceFragmentCompat + +class Statusbar : ControlledPreferenceFragmentCompat() { + + override val title: String + get() = getString(R.string.activity_title_statusbar) + + override val backButtonEnabled: Boolean + get() = true + + override val layoutResource: Int + get() = R.xml.xposed_statusbar + + override val hasMenu: Boolean + get() = true + + override fun updateScreen(key: String?) { + super.updateScreen(key) + + when (key) { + COLORED_STATUSBAR_ICON, + HIDE_LOCKSCREEN_CARRIER, + HIDE_LOCKSCREEN_STATUSBAR -> { + MainActivity.showOrHidePendingActionButton(requiresSystemUiRestart = true) + } + } + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/Themes.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/Themes.kt new file mode 100644 index 000000000..ef8ef20ba --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/Themes.kt @@ -0,0 +1,45 @@ +package com.drdisagree.iconify.ui.fragments.xposed + +import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Preferences.BLACK_QSPANEL +import com.drdisagree.iconify.common.Preferences.FIX_NOTIFICATION_COLOR +import com.drdisagree.iconify.common.Preferences.FIX_NOTIFICATION_FOOTER_BUTTON_COLOR +import com.drdisagree.iconify.common.Preferences.FIX_QS_TILE_COLOR +import com.drdisagree.iconify.common.Preferences.FLUID_NOTIF_TRANSPARENCY +import com.drdisagree.iconify.common.Preferences.FLUID_POWERMENU_TRANSPARENCY +import com.drdisagree.iconify.common.Preferences.FLUID_QSPANEL +import com.drdisagree.iconify.common.Preferences.LIGHT_QSPANEL +import com.drdisagree.iconify.ui.activities.MainActivity +import com.drdisagree.iconify.ui.base.ControlledPreferenceFragmentCompat + +class Themes : ControlledPreferenceFragmentCompat() { + + override val title: String + get() = getString(R.string.activity_title_themes) + + override val backButtonEnabled: Boolean + get() = true + + override val layoutResource: Int + get() = R.xml.xposed_themes + + override val hasMenu: Boolean + get() = true + + override fun updateScreen(key: String?) { + super.updateScreen(key) + + when (key) { + LIGHT_QSPANEL, + BLACK_QSPANEL, + FLUID_QSPANEL, + FLUID_NOTIF_TRANSPARENCY, + FLUID_POWERMENU_TRANSPARENCY, + FIX_QS_TILE_COLOR, + FIX_NOTIFICATION_COLOR, + FIX_NOTIFICATION_FOOTER_BUTTON_COLOR -> { + MainActivity.showOrHidePendingActionButton(requiresSystemUiRestart = true) + } + } + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/TransparencyBlur.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/TransparencyBlur.kt new file mode 100644 index 000000000..8ad0ff91e --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/TransparencyBlur.kt @@ -0,0 +1,90 @@ +package com.drdisagree.iconify.ui.fragments.xposed + +import android.os.Bundle +import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Preferences.AGGRESSIVE_QSPANEL_BLUR_SWITCH +import com.drdisagree.iconify.common.Preferences.BLUR_RADIUS_VALUE +import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_SHADE_SWITCH +import com.drdisagree.iconify.common.Preferences.NOTIF_TRANSPARENCY_SWITCH +import com.drdisagree.iconify.common.Preferences.QSPANEL_BLUR_SWITCH +import com.drdisagree.iconify.common.Preferences.QS_TRANSPARENCY_SWITCH +import com.drdisagree.iconify.config.RPrefs.getBoolean +import com.drdisagree.iconify.config.RPrefs.putBoolean +import com.drdisagree.iconify.ui.activities.MainActivity +import com.drdisagree.iconify.ui.base.ControlledPreferenceFragmentCompat +import com.drdisagree.iconify.ui.preferences.SwitchPreference +import com.drdisagree.iconify.utils.SystemUtil.disableBlur +import com.drdisagree.iconify.utils.SystemUtil.enableBlur +import com.drdisagree.iconify.utils.SystemUtil.isBlurEnabled + +class TransparencyBlur : ControlledPreferenceFragmentCompat() { + + override val title: String + get() = getString(R.string.activity_title_transparency_blur) + + override val backButtonEnabled: Boolean + get() = true + + override val layoutResource: Int + get() = R.xml.xposed_transparency_blur + + override val hasMenu: Boolean + get() = true + + override fun updateScreen(key: String?) { + super.updateScreen(key) + + when (key) { + QS_TRANSPARENCY_SWITCH -> { + if (getBoolean(key)) { + putBoolean(NOTIF_TRANSPARENCY_SWITCH, false) + } + MainActivity.showOrHidePendingActionButton(requiresSystemUiRestart = true) + } + + NOTIF_TRANSPARENCY_SWITCH -> { + if (getBoolean(key)) { + putBoolean(QS_TRANSPARENCY_SWITCH, false) + } + MainActivity.showOrHidePendingActionButton(requiresSystemUiRestart = true) + } + + LOCKSCREEN_SHADE_SWITCH -> { + MainActivity.showOrHidePendingActionButton(requiresSystemUiRestart = true) + } + + QSPANEL_BLUR_SWITCH -> { + if (getBoolean(key)) { + enableBlur(force = false) + } else { + putBoolean(AGGRESSIVE_QSPANEL_BLUR_SWITCH, false) + disableBlur(force = false) + } + MainActivity.showOrHidePendingActionButton(requiresDeviceRestart = true) + } + + AGGRESSIVE_QSPANEL_BLUR_SWITCH -> { + if (getBoolean(key)) { + enableBlur(force = true) + } else { + disableBlur(force = true) + } + MainActivity.showOrHidePendingActionButton(requiresDeviceRestart = true) + } + + BLUR_RADIUS_VALUE -> { + MainActivity.showOrHidePendingActionButton(requiresSystemUiRestart = true) + } + } + } + + override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { + super.onCreatePreferences(savedInstanceState, rootKey) + + findPreference(QSPANEL_BLUR_SWITCH)?.isChecked = + isBlurEnabled(force = false) + + findPreference(AGGRESSIVE_QSPANEL_BLUR_SWITCH)?.isChecked = + isBlurEnabled(force = true) + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/VolumePanel.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/VolumePanel.kt new file mode 100644 index 000000000..00582ff5b --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/VolumePanel.kt @@ -0,0 +1,36 @@ +package com.drdisagree.iconify.ui.fragments.xposed + +import android.os.Bundle +import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Preferences.VOLUME_PANEL_PERCENTAGE +import com.drdisagree.iconify.ui.activities.MainActivity +import com.drdisagree.iconify.ui.base.ControlledPreferenceFragmentCompat + +class VolumePanel : ControlledPreferenceFragmentCompat() { + + override val title: String + get() = getString(R.string.activity_title_volume_panel) + + override val backButtonEnabled: Boolean + get() = true + + override val layoutResource: Int + get() = R.xml.xposed_volume_panel + + override val hasMenu: Boolean + get() = true + + override fun updateScreen(key: String?) { + super.updateScreen(key) + + when (key) { + VOLUME_PANEL_PERCENTAGE -> { + MainActivity.showOrHidePendingActionButton(requiresSystemUiRestart = true) + } + } + } + + override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { + super.onCreatePreferences(savedInstanceState, rootKey) + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/WeatherSettings.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/WeatherSettings.kt new file mode 100644 index 000000000..5e97c2c4e --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/WeatherSettings.kt @@ -0,0 +1,52 @@ +package com.drdisagree.iconify.ui.fragments.xposed + +import com.drdisagree.iconify.Iconify.Companion.appContextLocale +import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Preferences.WEATHER_OWM_KEY +import com.drdisagree.iconify.common.Preferences.WEATHER_PROVIDER +import com.drdisagree.iconify.config.RPrefs +import com.drdisagree.iconify.ui.base.WeatherPreferenceFragment +import com.google.android.material.dialog.MaterialAlertDialogBuilder + +class WeatherSettings : WeatherPreferenceFragment() { + + override fun getMainSwitchKey(): String { + return "" + } + + override val title: String + get() = getString(R.string.activity_title_xposed_weather_settings) + + override val backButtonEnabled: Boolean + get() = true + + override val layoutResource: Int + get() = R.xml.xposed_weather_settings + + override val hasMenu: Boolean + get() = true + + private fun showOwnKeyDialog() { + MaterialAlertDialogBuilder(requireContext()) + .setTitle(appContextLocale.getString(R.string.weather_provider_owm_key_title)) + .setMessage(appContextLocale.getString(R.string.weather_provider_owm_key_message)) + .setCancelable(false) + .setPositiveButton(appContextLocale.getString(R.string.understood), null) + .create() + .show() + } + + override fun updateScreen(key: String?) { + super.updateScreen(key) + + when (key) { + WEATHER_PROVIDER -> { + if (RPrefs.getString(WEATHER_PROVIDER) == "1" && RPrefs.getString(WEATHER_OWM_KEY) + .isNullOrEmpty() + ) { + showOwnKeyDialog() + } + } + } + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/Xposed.kt b/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/Xposed.kt new file mode 100644 index 000000000..73fd6b740 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/fragments/xposed/Xposed.kt @@ -0,0 +1,60 @@ +package com.drdisagree.iconify.ui.fragments.xposed + +import android.content.ComponentName +import android.content.Intent +import android.os.Bundle +import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Preferences +import com.drdisagree.iconify.common.Preferences.XPOSED_HOOK_CHECK +import com.drdisagree.iconify.ui.base.ControlledPreferenceFragmentCompat +import com.drdisagree.iconify.ui.preferences.HookCheckPreference + +class Xposed : ControlledPreferenceFragmentCompat() { + + private var hookCheckPreference: HookCheckPreference? = null + + override val title: String + get() = getString(R.string.navbar_xposed) + + override val backButtonEnabled: Boolean + get() = !Preferences.isXposedOnlyMode + + override val layoutResource: Int + get() = R.xml.xposed + + override val hasMenu: Boolean + get() = true + + override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { + super.onCreatePreferences(savedInstanceState, rootKey) + + findPreference(XPOSED_HOOK_CHECK)?.apply { + hookCheckPreference = this + + setOnPreferenceClickListener { + try { + val intent = Intent(Intent.ACTION_MAIN) + intent.setComponent( + ComponentName( + "org.lsposed.manager", + "org.lsposed.manager.ui.activities.MainActivity" + ) + ) + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + startActivity(intent) + } catch (ignored: Exception) { + } + true + } + + initializeHookCheck() + } + } + + override fun onResume() { + super.onResume() + + hookCheckPreference?.isHooked = false + hookCheckPreference?.initializeHookCheck() + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/models/MenuModel.kt b/app/src/main/java/com/drdisagree/iconify/ui/models/MenuModel.kt index fc0d7ff22..996f49fe8 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/models/MenuModel.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/models/MenuModel.kt @@ -1,7 +1,9 @@ package com.drdisagree.iconify.ui.models +import androidx.fragment.app.Fragment + class MenuModel( - var id: Int, + var fragment: Fragment, var title: String, var desc: String, var icon: Int diff --git a/app/src/main/java/com/drdisagree/iconify/ui/models/SearchPreferenceItem.kt b/app/src/main/java/com/drdisagree/iconify/ui/models/SearchPreferenceItem.kt new file mode 100644 index 000000000..bed02517b --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/models/SearchPreferenceItem.kt @@ -0,0 +1,11 @@ +package com.drdisagree.iconify.ui.models + +import androidx.annotation.StringRes +import androidx.annotation.XmlRes +import com.drdisagree.iconify.ui.base.ControlledPreferenceFragmentCompat + +class SearchPreferenceItem( + @field:XmlRes val xml: Int, + @field:StringRes val title: Int, + val fragment: ControlledPreferenceFragmentCompat +) diff --git a/app/src/main/java/com/drdisagree/iconify/ui/preferences/BottomSheetListPreference.kt b/app/src/main/java/com/drdisagree/iconify/ui/preferences/BottomSheetListPreference.kt new file mode 100644 index 000000000..58cbbfc2e --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/preferences/BottomSheetListPreference.kt @@ -0,0 +1,199 @@ +package com.drdisagree.iconify.ui.preferences + +import android.content.Context +import android.graphics.drawable.Drawable +import android.util.AttributeSet +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.annotation.DrawableRes +import androidx.recyclerview.widget.GridLayoutManager +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import androidx.preference.ListPreference +import com.drdisagree.iconify.R +import com.drdisagree.iconify.ui.adapters.ListPreferenceAdapter +import com.google.android.material.appbar.MaterialToolbar +import com.google.android.material.bottomsheet.BottomSheetDialog + +class BottomSheetListPreference : ListPreference { + + private var mEntryIcons: IntArray? = null + private var mEntryDrawables: Array? = null + private var mHasImages = false + private var mAdapter: ListPreferenceAdapter? = null + private var bottomSheetDialog: BottomSheetDialog? = null + private var recyclerView: RecyclerView? = null + + constructor( + context: Context, + attrs: AttributeSet?, + defStyleAttr: Int, + defStyleRes: Int + ) : super(context, attrs, defStyleAttr, defStyleRes) { + initResource() + } + + constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super( + context, + attrs, + defStyleAttr + ) { + initResource() + } + + constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) { + initResource() + } + + constructor(context: Context) : super(context) { + initResource() + } + + private fun initResource() { + layoutResource = R.layout.custom_preference_list + } + + fun setDrawables(@DrawableRes drawables: IntArray) { + mHasImages = true + mEntryIcons = drawables + } + + fun setDrawables(drawables: Array) { + mHasImages = true + mEntryDrawables = drawables + } + + fun setHasImages(hasImages: Boolean) { + mHasImages = hasImages + } + + fun setAdapter(adapter: ListPreferenceAdapter?) { + mAdapter = adapter + } + + fun setAdapterType(type: Int) { + if (mAdapter != null) mAdapter!!.type = type + } + + fun setImages(images: List) { + if (mAdapter != null) { + mAdapter!!.setImages(images) + } + } + + fun setDefaultAdapterListener() { + mAdapter!!.setListener(object : ListPreferenceAdapter.OnItemClickListener { + + override fun onItemClick(view: View?, position: Int) { + if (callChangeListener(entryValues[position].toString())) { + setValueIndex(position) + } + if (bottomSheetDialog != null) bottomSheetDialog!!.dismiss() + } + }) + } + + protected override fun onClick() { + bottomSheetDialog = BottomSheetDialog(context) + + val view: View = LayoutInflater.from(context) + .inflate(R.layout.view_bottom_sheet_dialog_layout, null as ViewGroup?) + recyclerView = view.findViewById(R.id.select_dialog_listview) + val toolbarPref = view.findViewById(R.id.toolbar_preference) + toolbarPref.setTitle(title) + toolbarPref.isTitleCentered = true + if (mAdapter != null && mAdapter!!.type == ListPreferenceAdapter.TYPE_BATTERY_ICONS) { + recyclerView!!.setLayoutManager(GridLayoutManager(context, 3)) + } else { + recyclerView!!.setLayoutManager(LinearLayoutManager(context)) + } + if (mAdapter == null) { + mAdapter = ListPreferenceAdapter( + entries, + entryValues, + mEntryIcons, + key, + mHasImages, + object : ListPreferenceAdapter.OnItemClickListener { + override fun onItemClick(view: View?, position: Int) { + if (callChangeListener(entryValues[position].toString())) { + setValueIndex(position) + } + } + } + ) + } + recyclerView!!.setAdapter(mAdapter) + bottomSheetDialog!!.setContentView(view) + bottomSheetDialog!!.show() + } + + private fun getValueIndex(): Int { + return findIndexOfValue(value) + } + + override fun setValueIndex(index: Int) { + setValue(entryValues[index].toString()) + } + + fun createDefaultAdapter() { + mAdapter = ListPreferenceAdapter( + entries, + entryValues, + mEntryIcons, + key, + mHasImages, + object : ListPreferenceAdapter.OnItemClickListener { + override fun onItemClick(view: View?, position: Int) { + if (callChangeListener(entryValues[position].toString())) { + setValueIndex(position) + } + } + } + ) + } + + fun createDefaultAdapter(drawables: Array) { + mHasImages = true + mEntryDrawables = drawables + mAdapter = ListPreferenceAdapter( + entries, + entryValues, + drawables, + key, + mHasImages, + object : ListPreferenceAdapter.OnItemClickListener { + override fun onItemClick(view: View?, position: Int) { + if (callChangeListener(getEntryValues().get(position).toString())) { + setValueIndex(position) + } + } + } + ) + } + + fun createDefaultAdapter(drawables: Array, listener: OnItemClickListener?) { + mHasImages = true + mEntryDrawables = drawables + mAdapter = ListPreferenceAdapter( + entries, + entryValues, + drawables, + key, + mHasImages, + object : ListPreferenceAdapter.OnItemClickListener { + override fun onItemClick(view: View?, position: Int) { + if (callChangeListener(entryValues[position].toString())) { + setValueIndex(position) + } + listener?.onItemClick(position) + } + } + ) + } + + interface OnItemClickListener { + fun onItemClick(position: Int) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/preferences/ColorPreference.java b/app/src/main/java/com/drdisagree/iconify/ui/preferences/ColorPreference.java new file mode 100644 index 000000000..3c1f47d3c --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/preferences/ColorPreference.java @@ -0,0 +1,225 @@ +package com.drdisagree.iconify.ui.preferences; + +import android.content.Context; +import android.content.ContextWrapper; +import android.content.res.TypedArray; +import android.graphics.Color; +import android.util.AttributeSet; + +import androidx.annotation.ColorInt; +import androidx.annotation.NonNull; +import androidx.fragment.app.FragmentActivity; +import androidx.preference.Preference; +import androidx.preference.PreferenceViewHolder; + +import com.jaredrummler.android.colorpicker.R; +import com.jaredrummler.android.colorpicker.ColorPanelView; +import com.jaredrummler.android.colorpicker.ColorPickerDialog; +import com.jaredrummler.android.colorpicker.ColorPickerDialogListener; +import com.jaredrummler.android.colorpicker.ColorShape; + +public class ColorPreference extends Preference implements ColorPickerDialogListener { + + private static final int SIZE_NORMAL = 0; + private static final int SIZE_LARGE = 1; + + private OnShowDialogListener onShowDialogListener; + private int color = Color.BLACK; + private boolean showDialog; + private int dialogType; + private int colorShape; + private boolean allowPresets; + private boolean allowCustom; + private boolean showAlphaSlider; + private boolean showColorShades; + private int previewSize; + private int[] presets; + private int dialogTitle; + + public ColorPreference(Context context, AttributeSet attrs) { + super(context, attrs); + init(attrs); + } + + public ColorPreference(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + init(attrs); + } + + private void init(AttributeSet attrs) { + setPersistent(true); + + TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.ColorPreference); + showDialog = a.getBoolean(R.styleable.ColorPreference_cpv_showDialog, true); + dialogType = a.getInt(R.styleable.ColorPreference_cpv_dialogType, ColorPickerDialog.TYPE_PRESETS); + colorShape = a.getInt(R.styleable.ColorPreference_cpv_colorShape, ColorShape.CIRCLE); + allowPresets = a.getBoolean(R.styleable.ColorPreference_cpv_allowPresets, true); + allowCustom = a.getBoolean(R.styleable.ColorPreference_cpv_allowCustom, true); + showAlphaSlider = a.getBoolean(R.styleable.ColorPreference_cpv_showAlphaSlider, false); + showColorShades = a.getBoolean(R.styleable.ColorPreference_cpv_showColorShades, true); + previewSize = a.getInt(R.styleable.ColorPreference_cpv_previewSize, SIZE_NORMAL); + final int presetsResId = a.getResourceId(R.styleable.ColorPreference_cpv_colorPresets, 0); + dialogTitle = a.getResourceId(R.styleable.ColorPreference_cpv_dialogTitle, R.string.cpv_default_title); + if (presetsResId != 0) { + presets = getContext().getResources().getIntArray(presetsResId); + } else { + presets = ColorPickerDialog.MATERIAL_COLORS; + } + if (colorShape == ColorShape.CIRCLE) { + setWidgetLayoutResource( + previewSize == SIZE_LARGE ? R.layout.cpv_preference_circle_large : R.layout.cpv_preference_circle); + } else { + setWidgetLayoutResource( + previewSize == SIZE_LARGE ? R.layout.cpv_preference_square_large : R.layout.cpv_preference_square); + } + a.recycle(); + + initResource(); + } + + private void initResource() { + setLayoutResource(com.drdisagree.iconify.R.layout.custom_preference_color); + } + + @Override + protected void onClick() { + super.onClick(); + if (onShowDialogListener != null) { + onShowDialogListener.onShowColorPickerDialog((String) getTitle(), color); + } else if (showDialog) { + ColorPickerDialog dialog = ColorPickerDialog.newBuilder() + .setDialogType(dialogType) + .setDialogTitle(dialogTitle) + .setColorShape(colorShape) + .setPresets(presets) + .setAllowPresets(allowPresets) + .setAllowCustom(allowCustom) + .setShowAlphaSlider(showAlphaSlider) + .setShowColorShades(showColorShades) + .setColor(color) + .create(); + dialog.setColorPickerDialogListener(this); + getActivity().getSupportFragmentManager() + .beginTransaction() + .add(dialog, getFragmentTag()) + .commitAllowingStateLoss(); + } + } + + public FragmentActivity getActivity() { + Context context = getContext(); + if (context instanceof FragmentActivity) { + return (FragmentActivity) context; + } else if (context instanceof ContextWrapper) { + Context baseContext = ((ContextWrapper) context).getBaseContext(); + if (baseContext instanceof FragmentActivity) { + return (FragmentActivity) baseContext; + } + } + throw new IllegalStateException("Error getting activity from context"); + } + + @Override + public void onAttached() { + super.onAttached(); + if (showDialog) { + ColorPickerDialog fragment = + (ColorPickerDialog) getActivity().getSupportFragmentManager().findFragmentByTag(getFragmentTag()); + if (fragment != null) { + // re-bind preference to fragment + fragment.setColorPickerDialogListener(this); + } + } + } + + @Override + public void onBindViewHolder(@NonNull PreferenceViewHolder holder) { + super.onBindViewHolder(holder); + + ColorPanelView preview = holder.itemView.findViewById(R.id.cpv_preference_preview_color_panel); + if (preview != null) { + preview.setColor(color); + } + } + + @Override + protected void onSetInitialValue(Object defaultValue) { + super.onSetInitialValue(defaultValue); + if (defaultValue instanceof Integer) { + color = (Integer) defaultValue; + persistInt(color); + } else { + color = getPersistedInt(0xFF000000); + } + } + + @Override + protected Object onGetDefaultValue(TypedArray a, int index) { + return a.getInteger(index, Color.BLACK); + } + + @Override + public void onColorSelected(int dialogId, @ColorInt int color) { + saveValue(color); + } + + @Override + public void onDialogDismissed(int dialogId) { + // no-op + } + + /** + * Set the new color + * + * @param color The newly selected color + */ + public void saveValue(@ColorInt int color) { + this.color = color; + persistInt(this.color); + notifyChanged(); + callChangeListener(color); + } + + /** + * Get the colors that will be shown in the {@link ColorPickerDialog}. + * + * @return An array of color ints + */ + public int[] getPresets() { + return presets; + } + + /** + * Set the colors shown in the {@link ColorPickerDialog}. + * + * @param presets An array of color ints + */ + public void setPresets(@NonNull int[] presets) { + this.presets = presets; + } + + /** + * The listener used for showing the {@link ColorPickerDialog}. + * Call {@link #saveValue(int)} after the user chooses a color. + * If this is set then it is up to you to show the dialog. + * + * @param listener The listener to show the dialog + */ + public void setOnShowDialogListener(OnShowDialogListener listener) { + onShowDialogListener = listener; + } + + /** + * The tag used for the {@link ColorPickerDialog}. + * + * @return The tag + */ + public String getFragmentTag() { + return "color_" + getKey(); + } + + public interface OnShowDialogListener { + + void onShowColorPickerDialog(String title, int currentColor); + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/preferences/EasterPreference.kt b/app/src/main/java/com/drdisagree/iconify/ui/preferences/EasterPreference.kt new file mode 100644 index 000000000..763acb859 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/preferences/EasterPreference.kt @@ -0,0 +1,68 @@ +package com.drdisagree.iconify.ui.preferences + +import android.content.Context +import android.util.AttributeSet +import android.widget.TextView +import android.widget.Toast +import androidx.preference.Preference +import androidx.preference.PreferenceViewHolder +import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Preferences.EASTER_EGG +import com.drdisagree.iconify.config.RPrefs +import java.util.Date + +class EasterPreference(context: Context, attrs: AttributeSet?) : Preference(context, attrs) { + + private var clickTimestamps = LongArray(NUM_CLICKS_REQUIRED) + private var oldestIndex = 0 + private var nextIndex = 0 + + override fun onBindViewHolder(holder: PreferenceViewHolder) { + super.onBindViewHolder(holder) + + holder.itemView.findViewById(R.id.title).setOnClickListener { + onEasterViewClicked() + } + } + + private fun onEasterViewClicked() { + val timeMillis = Date().time + + if (nextIndex == NUM_CLICKS_REQUIRED - 1 || oldestIndex > 0) { + val diff = (timeMillis - clickTimestamps[oldestIndex]).toInt() + if (diff < SECONDS_FOR_CLICKS * 1000) { + if (!RPrefs.getBoolean(EASTER_EGG)) { + RPrefs.putBoolean(EASTER_EGG, true) + + Toast.makeText( + context, + context.resources.getString(R.string.toast_easter_egg), + Toast.LENGTH_SHORT + ).show() + } else { + Toast.makeText( + context, + context.resources.getString(R.string.toast_easter_egg_activated), + Toast.LENGTH_SHORT + ).show() + } + + oldestIndex = 0 + nextIndex = 0 + } else { + oldestIndex++ + } + } + + clickTimestamps[nextIndex] = timeMillis + nextIndex++ + + if (nextIndex == NUM_CLICKS_REQUIRED) nextIndex = 0 + if (oldestIndex == NUM_CLICKS_REQUIRED) oldestIndex = 0 + } + + companion object { + private const val SECONDS_FOR_CLICKS = 3.0 + private const val NUM_CLICKS_REQUIRED = 7 + } +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/preferences/EditTextPreference.kt b/app/src/main/java/com/drdisagree/iconify/ui/preferences/EditTextPreference.kt new file mode 100644 index 000000000..23a2e91b0 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/preferences/EditTextPreference.kt @@ -0,0 +1,38 @@ +package com.drdisagree.iconify.ui.preferences + +import android.content.Context +import android.util.AttributeSet +import androidx.preference.EditTextPreference +import com.drdisagree.iconify.R + +class EditTextPreference : EditTextPreference { + + constructor( + context: Context, + attrs: AttributeSet?, + defStyleAttr: Int, + defStyleRes: Int + ) : super(context, attrs, defStyleAttr, defStyleRes) { + initResource() + } + + constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super( + context, + attrs, + defStyleAttr + ) { + initResource() + } + + constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) { + initResource() + } + + constructor(context: Context) : super(context) { + initResource() + } + + private fun initResource() { + layoutResource = R.layout.custom_preference_edit_text + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/preferences/FilePickerPreference.kt b/app/src/main/java/com/drdisagree/iconify/ui/preferences/FilePickerPreference.kt new file mode 100644 index 000000000..3681b9ff4 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/preferences/FilePickerPreference.kt @@ -0,0 +1,76 @@ +package com.drdisagree.iconify.ui.preferences + +import android.content.Context +import android.util.AttributeSet +import android.widget.TextView +import androidx.core.content.ContextCompat +import androidx.preference.Preference +import androidx.preference.PreferenceViewHolder +import com.drdisagree.iconify.R +import com.google.android.material.button.MaterialButton + +class FilePickerPreference : Preference { + + private var mOnClick: () -> Unit? = {} + private var mButtonText = "" + + constructor( + context: Context, + attrs: AttributeSet?, + defStyleAttr: Int, + defStyleRes: Int + ) : super(context, attrs, defStyleAttr, defStyleRes) { + init(attrs) + } + + constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super( + context, + attrs, + defStyleAttr + ) { + init(attrs) + } + + constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) { + init(attrs) + } + + constructor(context: Context) : super(context) { + init(null) + } + + private fun init(attrs: AttributeSet?) { + isSelectable = false + layoutResource = R.layout.custom_preference_filepicker + + attrs?.let { it -> + val a = context.obtainStyledAttributes(it, R.styleable.FilePickerPreference) + val customText: String? = a.getString(R.styleable.FilePickerPreference_buttonText) + mButtonText = + customText ?: a.getResourceId(R.styleable.FilePickerPreference_buttonText, 0) + .takeIf { it != 0 } + ?.let { context.getString(it) } ?: context.getString(R.string.btn_pick_image) + a.recycle() + } + } + + override fun onBindViewHolder(holder: PreferenceViewHolder) { + super.onBindViewHolder(holder) + + if (isEnabled) { + holder.itemView.findViewById(android.R.id.title)?.apply { + setTextColor(ContextCompat.getColor(context, R.color.textColorPrimary)) + } + } + + holder.itemView.findViewById(R.id.btn_picker)?.apply { + text = mButtonText + this.isEnabled = isEnabled + setOnClickListener { mOnClick.invoke() } + } + } + + fun setOnButtonClick(onClick: () -> Unit) { + mOnClick = onClick + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/preferences/FooterPreference.java b/app/src/main/java/com/drdisagree/iconify/ui/preferences/FooterPreference.java new file mode 100644 index 000000000..0850005fc --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/preferences/FooterPreference.java @@ -0,0 +1,296 @@ +package com.drdisagree.iconify.ui.preferences; + +import android.content.Context; +import android.text.SpannableString; +import android.text.TextUtils; +import android.text.style.URLSpan; +import android.util.AttributeSet; +import android.view.View; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.annotation.StringRes; +import androidx.annotation.VisibleForTesting; +import androidx.preference.Preference; +import androidx.preference.PreferenceViewHolder; + +import com.drdisagree.iconify.R; + +/** + * A custom preference acting as "footer" of a page. It has a field for icon and text. It is added + * to screen as the last preference. + */ +public class FooterPreference extends Preference { + + public static final String KEY_FOOTER = "footer_preference"; + static final int ORDER_FOOTER = Integer.MAX_VALUE - 1; + @VisibleForTesting + View.OnClickListener mLearnMoreListener; + @VisibleForTesting + int mIconVisibility = View.VISIBLE; + private CharSequence mContentDescription; + private CharSequence mLearnMoreText; + private FooterLearnMoreSpan mLearnMoreSpan; + + public FooterPreference(Context context, AttributeSet attrs) { + super(context, attrs, R.attr.footerPreferenceStyle); + init(); + } + + public FooterPreference(Context context) { + this(context, null); + } + + @Override + public void onBindViewHolder(@NonNull PreferenceViewHolder holder) { + super.onBindViewHolder(holder); + TextView title = holder.itemView.findViewById(android.R.id.title); + if (title != null && !TextUtils.isEmpty(mContentDescription)) { + title.setContentDescription(mContentDescription); + } + + TextView learnMore = holder.itemView.findViewById(R.id.settingslib_learn_more); + if (learnMore != null) { + if (mLearnMoreListener != null) { + learnMore.setVisibility(View.VISIBLE); + if (TextUtils.isEmpty(mLearnMoreText)) { + mLearnMoreText = learnMore.getText(); + } else { + learnMore.setText(mLearnMoreText); + } + SpannableString learnMoreText = new SpannableString(mLearnMoreText); + if (mLearnMoreSpan != null) { + learnMoreText.removeSpan(mLearnMoreSpan); + } + mLearnMoreSpan = new FooterLearnMoreSpan(mLearnMoreListener); + learnMoreText.setSpan(mLearnMoreSpan, 0, + learnMoreText.length(), 0); + learnMore.setText(learnMoreText); + } else { + learnMore.setVisibility(View.GONE); + } + } + + View icon = holder.itemView.findViewById(R.id.icon_frame); + if (icon != null) { + icon.setVisibility(mIconVisibility); + } + } + + @Override + public void setSummary(CharSequence summary) { + setTitle(summary); + } + + @Override + public void setSummary(int summaryResId) { + setTitle(summaryResId); + } + + @Override + public CharSequence getSummary() { + return getTitle(); + } + + /** + * To set content description of the {@link FooterPreference}. This can use for talkback + * environment if developer wants to have a customization content. + * + * @param contentDescription The resource id of the content description. + */ + public void setContentDescription(CharSequence contentDescription) { + if (!TextUtils.equals(mContentDescription, contentDescription)) { + mContentDescription = contentDescription; + notifyChanged(); + } + } + + /** + * Return the content description of footer preference. + */ + @VisibleForTesting + CharSequence getContentDescription() { + return mContentDescription; + } + + /** + * Sets the learn more text. + * + * @param learnMoreText The string of the learn more text. + */ + public void setLearnMoreText(CharSequence learnMoreText) { + if (!TextUtils.equals(mLearnMoreText, learnMoreText)) { + mLearnMoreText = learnMoreText; + notifyChanged(); + } + } + + /** + * Assign an action for the learn more link. + */ + public void setLearnMoreAction(View.OnClickListener listener) { + if (mLearnMoreListener != listener) { + mLearnMoreListener = listener; + notifyChanged(); + } + } + + /** + * Set visibility of footer icon. + */ + public void setIconVisibility(int iconVisibility) { + if (mIconVisibility == iconVisibility) { + return; + } + mIconVisibility = iconVisibility; + notifyChanged(); + } + + private void init() { + setLayoutResource(R.layout.preference_footer); + if (getIcon() == null) { + setIcon(R.drawable.ic_info); + } + setOrder(ORDER_FOOTER); + if (TextUtils.isEmpty(getKey())) { + setKey(KEY_FOOTER); + } + setSelectable(false); + } + + /** + * The builder is convenient to creat a dynamic FooterPreference. + */ + public static class Builder { + private Context mContext; + private String mKey; + private CharSequence mTitle; + private CharSequence mContentDescription; + private CharSequence mLearnMoreText; + + public Builder(@NonNull Context context) { + mContext = context; + } + + /** + * To set the key value of the {@link FooterPreference}. + * + * @param key The key value. + */ + public Builder setKey(@NonNull String key) { + mKey = key; + return this; + } + + /** + * To set the title of the {@link FooterPreference}. + * + * @param title The title. + */ + public Builder setTitle(CharSequence title) { + mTitle = title; + return this; + } + + /** + * To set the title of the {@link FooterPreference}. + * + * @param titleResId The resource id of the title. + */ + public Builder setTitle(@StringRes int titleResId) { + mTitle = mContext.getText(titleResId); + return this; + } + + /** + * To set content description of the {@link FooterPreference}. This can use for talkback + * environment if developer wants to have a customization content. + * + * @param contentDescription The resource id of the content description. + */ + public Builder setContentDescription(CharSequence contentDescription) { + mContentDescription = contentDescription; + return this; + } + + /** + * To set content description of the {@link FooterPreference}. This can use for talkback + * environment if developer wants to have a customization content. + * + * @param contentDescriptionResId The resource id of the content description. + */ + public Builder setContentDescription(@StringRes int contentDescriptionResId) { + mContentDescription = mContext.getText(contentDescriptionResId); + return this; + } + + /** + * To set learn more string of the learn more text. This can use for talkback + * environment if developer wants to have a customization content. + * + * @param learnMoreText The resource id of the learn more string. + */ + public Builder setLearnMoreText(CharSequence learnMoreText) { + mLearnMoreText = learnMoreText; + return this; + } + + /** + * To set learn more string of the {@link FooterPreference}. This can use for talkback + * environment if developer wants to have a customization content. + * + * @param learnMoreTextResId The resource id of the learn more string. + */ + public Builder setLearnMoreText(@StringRes int learnMoreTextResId) { + mLearnMoreText = mContext.getText(learnMoreTextResId); + return this; + } + + + /** + * To generate the {@link FooterPreference}. + */ + public FooterPreference build() { + final FooterPreference footerPreference = new FooterPreference(mContext); + footerPreference.setSelectable(false); + if (TextUtils.isEmpty(mTitle)) { + throw new IllegalArgumentException("Footer title cannot be empty!"); + } + footerPreference.setTitle(mTitle); + if (!TextUtils.isEmpty(mKey)) { + footerPreference.setKey(mKey); + } + + if (!TextUtils.isEmpty(mContentDescription)) { + footerPreference.setContentDescription(mContentDescription); + } + + if (!TextUtils.isEmpty(mLearnMoreText)) { + footerPreference.setLearnMoreText(mLearnMoreText); + } + return footerPreference; + } + } + + /** + * A {@link URLSpan} that opens a support page when clicked + */ + static class FooterLearnMoreSpan extends URLSpan { + + private final View.OnClickListener mClickListener; + + FooterLearnMoreSpan(View.OnClickListener clickListener) { + // sets the url to empty string so we can prevent any other span processing from + // clearing things we need in this string. + super(""); + mClickListener = clickListener; + } + + @Override + public void onClick(View widget) { + if (mClickListener != null) { + mClickListener.onClick(widget); + } + } + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/preferences/HomeCardPreference.kt b/app/src/main/java/com/drdisagree/iconify/ui/preferences/HomeCardPreference.kt new file mode 100644 index 000000000..e8624d791 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/preferences/HomeCardPreference.kt @@ -0,0 +1,29 @@ +package com.drdisagree.iconify.ui.preferences + +import android.content.Context +import android.util.AttributeSet +import androidx.preference.Preference +import androidx.preference.PreferenceViewHolder +import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Preferences.SHOW_HOME_CARD +import com.drdisagree.iconify.config.RPrefs +import com.google.android.material.button.MaterialButton + +class HomeCardPreference(context: Context, attrs: AttributeSet?) : Preference(context, attrs) { + + override fun onBindViewHolder(holder: PreferenceViewHolder) { + super.onBindViewHolder(holder) + + holder.itemView.findViewById(R.id.button).setOnClickListener { + holder.itemView + .animate() + .setDuration(400) + .translationX(holder.itemView.width * 2f) + .alpha(0f) + .withEndAction { + RPrefs.putBoolean(SHOW_HOME_CARD, false) + } + .start() + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/preferences/HookCheckPreference.kt b/app/src/main/java/com/drdisagree/iconify/ui/preferences/HookCheckPreference.kt new file mode 100644 index 000000000..3aaf2dcdf --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/preferences/HookCheckPreference.kt @@ -0,0 +1,175 @@ +package com.drdisagree.iconify.ui.preferences + +import android.annotation.SuppressLint +import android.content.BroadcastReceiver +import android.content.ComponentName +import android.content.Context +import android.content.DialogInterface +import android.content.Intent +import android.content.IntentFilter +import android.os.Build +import android.os.CountDownTimer +import android.os.Handler +import android.os.Looper +import android.util.AttributeSet +import android.widget.ImageView +import androidx.preference.Preference +import androidx.preference.PreferenceViewHolder +import com.drdisagree.iconify.Iconify.Companion.appContextLocale +import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Const.ACTION_HOOK_CHECK_REQUEST +import com.drdisagree.iconify.common.Const.ACTION_HOOK_CHECK_RESULT +import com.drdisagree.iconify.common.Preferences +import com.drdisagree.iconify.common.Preferences.XPOSED_HOOK_CHECK +import com.drdisagree.iconify.config.RPrefs +import com.google.android.material.dialog.MaterialAlertDialogBuilder + +class HookCheckPreference(context: Context, attrs: AttributeSet?) : Preference(context, attrs) { + + private val handler = Handler(Looper.getMainLooper()) + private val delayedHandler = Handler(Looper.getMainLooper()) + private val intentFilterHookedSystemUI = IntentFilter() + private var isHookSuccessful = false + var isHooked: Boolean = false + + init { + intentFilterHookedSystemUI.addAction(ACTION_HOOK_CHECK_RESULT) + } + + override fun onBindViewHolder(holder: PreferenceViewHolder) { + super.onBindViewHolder(holder) + + holder.itemView.setOnClickListener { + try { + context.startActivity( + Intent(Intent.ACTION_MAIN).apply { + setComponent( + ComponentName( + "org.lsposed.manager", + "org.lsposed.manager.ui.activity.MainActivity" + ) + ) + addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + } + ) + } catch (ignored: Exception) { + } + } + + holder.itemView.findViewById(R.id.info_icon).setOnClickListener { + MaterialAlertDialogBuilder(context) + .setTitle(context.resources.getString(R.string.attention)) + .setMessage( + buildString { + append( + (if (Preferences.isXposedOnlyMode) { + appContextLocale.resources.getString( + R.string.xposed_only_desc + ) + "\n\n" + } else { + "" + }) + ) + append(appContextLocale.resources.getString(R.string.lsposed_warn)) + } + ) + .setPositiveButton(context.resources.getString(R.string.understood)) { dialog: DialogInterface, _: Int -> + dialog.dismiss() + } + .setCancelable(true) + .show() + } + } + + @SuppressLint("UnspecifiedRegisterReceiverFlag") + fun initializeHookCheck() { + delayedHandler.postDelayed(delayedHookCheck, 1000) + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + context.registerReceiver( + receiverHookedSystemUI, + intentFilterHookedSystemUI, + Context.RECEIVER_EXPORTED + ) + } else { + context.registerReceiver( + receiverHookedSystemUI, + intentFilterHookedSystemUI + ) + } + + handler.post(checkSystemUIHooked) + } + + private val delayedHookCheck: Runnable = Runnable { + if (!isHooked) { + RPrefs.putBoolean(XPOSED_HOOK_CHECK, false) + } + } + + private val checkSystemUIHooked: Runnable = object : Runnable { + override fun run() { + checkXposedHooked() +// handler.postDelayed(this, 1000) // repeat check every 1 second + } + } + + private val receiverHookedSystemUI: BroadcastReceiver = object : BroadcastReceiver() { + override fun onReceive(context: Context, intent: Intent) { + if (intent.action == ACTION_HOOK_CHECK_RESULT) { + isHookSuccessful = true + + try { + delayedHandler.removeCallbacks(delayedHookCheck) + } catch (ignored: Exception) { + } + + isHooked = true + + RPrefs.putBoolean(XPOSED_HOOK_CHECK, true) + } + } + } + + private fun checkXposedHooked() { + isHookSuccessful = false + + object : CountDownTimer(1600, 800) { + override fun onTick(millisUntilFinished: Long) { + if (isHookSuccessful) { + cancel() + } + } + + override fun onFinish() { + if (!isHookSuccessful) { + try { + delayedHandler.removeCallbacks(delayedHookCheck) + } catch (ignored: Exception) { + } + + isHooked = false + + RPrefs.putBoolean(XPOSED_HOOK_CHECK, false) + } + } + }.start() + + Thread { + try { + context.sendBroadcast(Intent().setAction(ACTION_HOOK_CHECK_REQUEST)) + } catch (ignored: Exception) { + } + }.start() + } + + override fun onDetached() { + super.onDetached() + try { + handler.removeCallbacks(checkSystemUIHooked) + delayedHandler.removeCallbacks(delayedHookCheck) + context.unregisterReceiver(receiverHookedSystemUI) + } catch (ignored: Exception) { + } + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/preferences/LinkTextView.java b/app/src/main/java/com/drdisagree/iconify/ui/preferences/LinkTextView.java new file mode 100644 index 000000000..ffc6917cc --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/preferences/LinkTextView.java @@ -0,0 +1,35 @@ +package com.drdisagree.iconify.ui.preferences; + +import android.content.Context; +import android.text.Spanned; +import android.text.method.LinkMovementMethod; +import android.text.style.ClickableSpan; +import android.util.AttributeSet; + +/** + * Copied from setup wizard. This TextView performed two functions. The first is to make it so the + * link behaves properly and becomes clickable. The second was that it made the link visible to + * accessibility services, but from O forward support for links is provided natively. + */ +public class LinkTextView extends androidx.appcompat.widget.AppCompatTextView { + + public LinkTextView(Context context) { + this(context, null); + } + + public LinkTextView(Context context, AttributeSet attrs) { + super(context, attrs); + } + + @Override + public void setText(CharSequence text, BufferType type) { + super.setText(text, type); + if (text instanceof Spanned) { + final ClickableSpan[] spans = + ((Spanned) text).getSpans(0, text.length(), ClickableSpan.class); + if (spans.length > 0) { + setMovementMethod(LinkMovementMethod.getInstance()); + } + } + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/preferences/ListPreference.kt b/app/src/main/java/com/drdisagree/iconify/ui/preferences/ListPreference.kt new file mode 100644 index 000000000..76edb34ae --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/preferences/ListPreference.kt @@ -0,0 +1,38 @@ +package com.drdisagree.iconify.ui.preferences + +import android.content.Context +import android.util.AttributeSet +import androidx.preference.ListPreference +import com.drdisagree.iconify.R + +class ListPreference : ListPreference { + + constructor( + context: Context, + attrs: AttributeSet?, + defStyleAttr: Int, + defStyleRes: Int + ) : super(context, attrs, defStyleAttr, defStyleRes) { + initResource() + } + + constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super( + context, + attrs, + defStyleAttr + ) { + initResource() + } + + constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) { + initResource() + } + + constructor(context: Context) : super(context) { + initResource() + } + + private fun initResource() { + layoutResource = R.layout.custom_preference_list + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/preferences/PreferenceCategory.kt b/app/src/main/java/com/drdisagree/iconify/ui/preferences/PreferenceCategory.kt new file mode 100644 index 000000000..2e0499e2e --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/preferences/PreferenceCategory.kt @@ -0,0 +1,38 @@ +package com.drdisagree.iconify.ui.preferences + +import android.content.Context +import android.util.AttributeSet +import androidx.preference.PreferenceCategory +import com.drdisagree.iconify.R + +class PreferenceCategory : PreferenceCategory { + + constructor( + context: Context, + attrs: AttributeSet?, + defStyleAttr: Int, + defStyleRes: Int + ) : super(context, attrs, defStyleAttr, defStyleRes) { + initResource() + } + + constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super( + context, + attrs, + defStyleAttr + ) { + initResource() + } + + constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) { + initResource() + } + + constructor(context: Context) : super(context) { + initResource() + } + + private fun initResource() { + layoutResource = R.layout.custom_preference_category + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/preferences/PreferenceMenu.kt b/app/src/main/java/com/drdisagree/iconify/ui/preferences/PreferenceMenu.kt new file mode 100644 index 000000000..1809ccaa4 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/preferences/PreferenceMenu.kt @@ -0,0 +1,53 @@ +package com.drdisagree.iconify.ui.preferences + +import android.content.Context +import android.util.AttributeSet +import android.view.View +import androidx.preference.Preference +import androidx.preference.PreferenceViewHolder +import com.drdisagree.iconify.R + +class PreferenceMenu : Preference { + + private var showArrow = true + + constructor( + context: Context, + attrs: AttributeSet?, + defStyleAttr: Int, + defStyleRes: Int + ) : super(context, attrs, defStyleAttr, defStyleRes) { + init(attrs) + } + + constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super( + context, + attrs, + defStyleAttr + ) { + init(attrs) + } + + constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) { + init(attrs) + } + + constructor(context: Context) : super(context) { + init(null) + } + + private fun init(attrs: AttributeSet?) { + if (attrs != null) { + val a = context.obtainStyledAttributes(attrs, R.styleable.PreferenceMenu) + showArrow = a.getBoolean(R.styleable.PreferenceMenu_showArrow, true) + a.recycle() + } + layoutResource = R.layout.custom_preference_menu + } + + override fun onBindViewHolder(holder: PreferenceViewHolder) { + super.onBindViewHolder(holder) + + holder.findViewById(R.id.end_arrow)?.visibility = if (showArrow) View.VISIBLE else View.GONE + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/preferences/RebootReminderPreference.kt b/app/src/main/java/com/drdisagree/iconify/ui/preferences/RebootReminderPreference.kt new file mode 100644 index 000000000..6afedde48 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/preferences/RebootReminderPreference.kt @@ -0,0 +1,30 @@ +package com.drdisagree.iconify.ui.preferences + +import android.content.Context +import android.os.Handler +import android.os.Looper +import android.util.AttributeSet +import androidx.preference.Preference +import androidx.preference.PreferenceViewHolder +import com.drdisagree.iconify.R +import com.drdisagree.iconify.ui.dialogs.LoadingDialog +import com.drdisagree.iconify.utils.SystemUtil.restartDevice + +class RebootReminderPreference(context: Context, attrs: AttributeSet?) : + Preference(context, attrs) { + + override fun onBindViewHolder(holder: PreferenceViewHolder) { + super.onBindViewHolder(holder) + + holder.findViewById(R.id.btn_reboot).setOnClickListener { + val rebootingDialog = LoadingDialog(context) + + rebootingDialog.show(context.resources.getString(R.string.rebooting_desc)) + + Handler(Looper.getMainLooper()).postDelayed({ + rebootingDialog.hide() + restartDevice() + }, 5000) + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/preferences/RecyclerPreference.kt b/app/src/main/java/com/drdisagree/iconify/ui/preferences/RecyclerPreference.kt new file mode 100644 index 000000000..8ab7708c2 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/preferences/RecyclerPreference.kt @@ -0,0 +1,84 @@ +package com.drdisagree.iconify.ui.preferences + +import android.content.Context +import android.util.AttributeSet +import android.widget.TextView +import androidx.core.content.ContextCompat +import androidx.preference.Preference +import androidx.preference.PreferenceViewHolder +import androidx.recyclerview.widget.LinearSnapHelper +import androidx.recyclerview.widget.RecyclerView +import com.drdisagree.iconify.R +import com.drdisagree.iconify.config.RPrefs +import com.drdisagree.iconify.ui.utils.CarouselLayoutManager + +class RecyclerPreference : Preference { + + private var mRecyclerView: RecyclerView? = null + private var mAdapter: RecyclerView.Adapter<*>? = null + private var mKey: String? = null + private var mDefaultValue = 0 + + constructor( + context: Context, + attrs: AttributeSet?, + defStyleAttr: Int, + defStyleRes: Int + ) : super(context, attrs, defStyleAttr, defStyleRes) { + init() + } + + constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super( + context, + attrs, + defStyleAttr + ) { + init() + } + + constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) { + init() + } + + constructor(context: Context) : super(context) { + init() + } + + private fun init() { + isSelectable = false + layoutResource = R.layout.custom_preference_recyclerview + } + + override fun onBindViewHolder(holder: PreferenceViewHolder) { + super.onBindViewHolder(holder) + + mRecyclerView = (holder.findViewById(R.id.recycler_view) as RecyclerView).apply { + layoutManager = CarouselLayoutManager( + context, RecyclerView.HORIZONTAL, false + ).also { + it.setMinifyDistance(0.8f) + } + adapter = mAdapter + setHasFixedSize(true); + scrollToPosition(RPrefs.getInt(mKey, mDefaultValue)) + if (onFlingListener == null) { + LinearSnapHelper().attachToRecyclerView(this) + } + suppressLayout(!isEnabled) + } + + if (isEnabled) { + val title = holder.itemView.findViewById(android.R.id.title) + title.setTextColor(ContextCompat.getColor(context, R.color.textColorPrimary)) + } + } + + fun setPreference(key: String?, defaultValue: Int) { + mKey = key + mDefaultValue = defaultValue + } + + fun setAdapter(adapter: RecyclerView.Adapter<*>?) { + mAdapter = adapter + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/preferences/SelectorWithWidgetPreference.java b/app/src/main/java/com/drdisagree/iconify/ui/preferences/SelectorWithWidgetPreference.java new file mode 100644 index 000000000..eb0506fef --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/preferences/SelectorWithWidgetPreference.java @@ -0,0 +1,186 @@ +package com.drdisagree.iconify.ui.preferences; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.text.TextUtils; +import android.util.AttributeSet; +import android.view.View; +import android.widget.ImageView; + +import androidx.annotation.NonNull; +import androidx.preference.CheckBoxPreference; +import androidx.preference.PreferenceViewHolder; + +import com.drdisagree.iconify.R; + +public class SelectorWithWidgetPreference extends CheckBoxPreference { + + /** + * Interface definition for a callback to be invoked when the preference is clicked. + */ + public interface OnClickListener { + /** + * Called when a preference has been clicked. + * + * @param emiter The clicked preference + */ + void onRadioButtonClicked(SelectorWithWidgetPreference emiter); + } + + private OnClickListener mListener = null; + private View mAppendix; + private int mAppendixVisibility = -1; + + private View mExtraWidgetContainer; + private ImageView mExtraWidget; + private boolean mIsCheckBox = false; // whether to display this button as a checkbox + + private View.OnClickListener mExtraWidgetOnClickListener; + + /** + * Perform inflation from XML and apply a class-specific base style. + * + * @param context The {@link Context} this is associated with, through which it can + * access the current theme, resources, etc. + * @param attrs The attributes of the XML tag that is inflating the preference + * @param defStyle An attribute in the current theme that contains a reference to a style + * resource that supplies default values for the view. Can be 0 to not + * look for defaults. + */ + public SelectorWithWidgetPreference(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + init(); + } + + /** + * Perform inflation from XML and apply a class-specific base style. + * + * @param context The {@link Context} this is associated with, through which it can + * access the current theme, resources, etc. + * @param attrs The attributes of the XML tag that is inflating the preference + */ + public SelectorWithWidgetPreference(Context context, AttributeSet attrs) { + super(context, attrs); + init(); + } + + /** + * Constructor to create a preference, which will display with a checkbox style. + * + * @param context The {@link Context} this is associated with. + * @param isCheckbox Whether this preference should display as a checkbox. + */ + public SelectorWithWidgetPreference(Context context, boolean isCheckbox) { + super(context, null); + mIsCheckBox = isCheckbox; + init(); + } + + /** + * Constructor to create a preference. + * + * @param context The Context this is associated with. + */ + public SelectorWithWidgetPreference(Context context) { + this(context, null); + } + + /** + * Sets the callback to be invoked when this preference is clicked by the user. + * + * @param listener The callback to be invoked + */ + public void setOnClickListener(OnClickListener listener) { + mListener = listener; + } + + /** + * Processes a click on the preference. + */ + @Override + public void onClick() { + if (mListener != null) { + mListener.onRadioButtonClicked(this); + } + } + + /** + * Binds the created View to the data for this preference. + * + *

This is a good place to grab references to custom Views in the layout and set + * properties on them. + * + *

Make sure to call through to the superclass's implementation. + * + * @param holder The ViewHolder that provides references to the views to fill in. These views + * will be recycled, so you should not hold a reference to them after this method + * returns. + */ + @SuppressLint("WrongConstant") + @Override + public void onBindViewHolder(@NonNull PreferenceViewHolder holder) { + super.onBindViewHolder(holder); + + View summaryContainer = holder.findViewById(R.id.summary_container); + if (summaryContainer != null) { + summaryContainer.setVisibility( + TextUtils.isEmpty(getSummary()) ? View.GONE : View.VISIBLE); + mAppendix = holder.findViewById(R.id.appendix); + if (mAppendix != null && mAppendixVisibility != -1) { + mAppendix.setVisibility(mAppendixVisibility); + } + } + + mExtraWidget = (ImageView) holder.findViewById(R.id.selector_extra_widget); + mExtraWidgetContainer = holder.findViewById(R.id.selector_extra_widget_container); + + setExtraWidgetOnClickListener(mExtraWidgetOnClickListener); + } + + /** + * Set the visibility state of appendix view. + * + * @param visibility One of {@link View#VISIBLE}, {@link View#INVISIBLE}, or {@link View#GONE}. + */ + public void setAppendixVisibility(int visibility) { + if (mAppendix != null) { + mAppendix.setVisibility(visibility); + } + mAppendixVisibility = visibility; + } + + /** + * Sets the callback to be invoked when extra widget is clicked by the user. + * + * @param listener The callback to be invoked + */ + public void setExtraWidgetOnClickListener(View.OnClickListener listener) { + mExtraWidgetOnClickListener = listener; + + if (mExtraWidget == null || mExtraWidgetContainer == null) { + return; + } + + mExtraWidget.setOnClickListener(mExtraWidgetOnClickListener); + + mExtraWidgetContainer.setVisibility((mExtraWidgetOnClickListener != null) + ? View.VISIBLE : View.GONE); + } + + /** + * Returns whether this preference is a checkbox. + */ + public boolean isCheckBox() { + return mIsCheckBox; + } + + private void init() { + if (mIsCheckBox) { + setWidgetLayoutResource(R.layout.preference_widget_checkbox); + } else { + setWidgetLayoutResource(R.layout.preference_widget_radiobutton); + } + setLayoutResource(R.layout.preference_selector_with_widget); + setIconSpaceReserved(false); + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/preferences/SliderPreference.java b/app/src/main/java/com/drdisagree/iconify/ui/preferences/SliderPreference.java new file mode 100644 index 000000000..f31d2ba5d --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/preferences/SliderPreference.java @@ -0,0 +1,317 @@ +package com.drdisagree.iconify.ui.preferences; + +/* + * From Siavash79/rangesliderpreference + * https://github.com/siavash79/rangesliderpreference + */ + +import android.content.Context; +import android.content.SharedPreferences; +import android.content.res.TypedArray; +import android.util.AttributeSet; +import android.util.JsonReader; +import android.util.JsonWriter; +import android.util.Log; +import android.view.View; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.preference.Preference; +import androidx.preference.PreferenceViewHolder; + +import com.google.android.material.button.MaterialButton; +import com.google.android.material.slider.LabelFormatter; +import com.google.android.material.slider.RangeSlider; + +import java.io.StringReader; +import java.io.StringWriter; +import java.math.BigDecimal; +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Locale; +import java.util.Scanner; + +import com.drdisagree.iconify.R; + +public class SliderPreference extends Preference { + + private static final String TAG = SliderPreference.class.getSimpleName(); + private float valueFrom; + private float valueTo; + private final float tickInterval; + private final boolean showResetButton; + public final List defaultValue = new ArrayList<>(); + public RangeSlider slider; + private MaterialButton mResetButton; + @SuppressWarnings("unused") + private TextView sliderValue; + int valueCount; + private String valueFormat; + private final float outputScale; + private final boolean isDecimalFormat; + private final String decimalFormat = "#.#"; + + boolean updateConstantly, showValueLabel; + + @SuppressWarnings("unused") + public SliderPreference(Context context, AttributeSet attrs) { + this(context, attrs, 0); + setSelectable(false); + } + + public SliderPreference(Context context, AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + setSelectable(false); + setLayoutResource(R.layout.custom_preference_slider); + + TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.SliderPreference); + updateConstantly = a.getBoolean(R.styleable.SliderPreference_updatesContinuously, false); + valueCount = a.getInteger(R.styleable.SliderPreference_valueCount, 1); + valueFrom = a.getFloat(R.styleable.SliderPreference_minVal, 0f); + valueTo = a.getFloat(R.styleable.SliderPreference_maxVal, 100f); + tickInterval = a.getFloat(R.styleable.SliderPreference_tickInterval, 1f); + showResetButton = a.getBoolean(R.styleable.SliderPreference_showResetButton, false); + showValueLabel = a.getBoolean(R.styleable.SliderPreference_showValueLabel, true); + valueFormat = a.getString(R.styleable.SliderPreference_valueFormat); + isDecimalFormat = a.getBoolean(R.styleable.SliderPreference_isDecimalFormat, false); + outputScale = a.getFloat(R.styleable.SliderPreference_outputScale, 1f); + String defaultValStr = a.getString(androidx.preference.R.styleable.Preference_defaultValue); + + if (valueFormat == null) valueFormat = ""; + + try { + Scanner scanner = new Scanner(defaultValStr); + scanner.useDelimiter(","); + scanner.useLocale(Locale.ENGLISH); + + while (scanner.hasNext()) { + defaultValue.add(scanner.nextFloat()); + } + } catch (Exception ignored) { + Log.e(TAG, String.format("SliderPreference: Error parsing default values for key: %s", getKey())); + } + + a.recycle(); + } + + public void savePrefs() { + setValues(getSharedPreferences(), getKey(), slider.getValues()); + } + + @SuppressWarnings("UnusedReturnValue") + public static boolean setValues(SharedPreferences sharedPreferences, String key, List values) { + try { + StringWriter writer = new StringWriter(); + JsonWriter jsonWriter = new JsonWriter(writer); + jsonWriter.beginObject(); + jsonWriter.name(""); + jsonWriter.beginArray(); + + for (float value : values) { + jsonWriter.value(value); + } + jsonWriter.endArray(); + jsonWriter.endObject(); + jsonWriter.close(); + String jsonString = writer.toString(); + + sharedPreferences.edit().putString(key, jsonString).apply(); + + return true; + + } catch (Exception ignored) { + return false; + } + } + + public void syncState() { + boolean needsCommit = false; + + List values = getValues(getSharedPreferences(), getKey(), valueFrom); + BigDecimal step = new BigDecimal(String.valueOf(slider.getStepSize())); //float and double are not accurate when it comes to decimal points + + for (int i = 0; i < values.size(); i++) { + BigDecimal round = new BigDecimal(Math.round(values.get(i) / slider.getStepSize())); + double v = Math.min(Math.max(step.multiply(round).doubleValue(), slider.getValueFrom()), slider.getValueTo()); + if (v != values.get(i)) { + values.set(i, (float) v); + needsCommit = true; + } + } + if (values.size() < valueCount) { + needsCommit = true; + values = defaultValue; + while (values.size() < valueCount) { + values.add(valueFrom); + } + } else if (values.size() > valueCount) { + needsCommit = true; + while (values.size() > valueCount) { + values.remove(values.size() - 1); + } + } + + try { + slider.setValues(values); + if (needsCommit) savePrefs(); + } catch (Throwable t) { + values.clear(); + } + } + + RangeSlider.OnChangeListener changeListener = (slider, value, fromUser) -> { + if (!getKey().equals(slider.getTag())) return; + + if (updateConstantly && fromUser) { + savePrefs(); + } + }; + + RangeSlider.OnSliderTouchListener sliderTouchListener = new RangeSlider.OnSliderTouchListener() { + @Override + public void onStartTrackingTouch(@NonNull RangeSlider slider) { + slider.setLabelFormatter(labelFormatter); + } + + @Override + public void onStopTrackingTouch(@NonNull RangeSlider slider) { + if (!getKey().equals(slider.getTag())) return; + + if (!updateConstantly) { + savePrefs(); + } + } + }; + + LabelFormatter labelFormatter = new LabelFormatter() { + @NonNull + @Override + public String getFormattedValue(float value) { + String result; + if (valueFormat != null && (valueFormat.isBlank() || valueFormat.isEmpty())) { + result = !isDecimalFormat + ? Integer.toString((int) (slider.getValues().get(0) / outputScale)) + : new DecimalFormat(decimalFormat).format(slider.getValues().get(0) / outputScale); + } else { + result = !isDecimalFormat + ? Integer.toString((int) (slider.getValues().get(0) / 1f)) + : new DecimalFormat(decimalFormat).format(slider.getValues().get(0) / outputScale); + } + result += valueFormat; + + return result; + } + }; + + @Override + public void onBindViewHolder(@NonNull PreferenceViewHolder holder) { + super.onBindViewHolder(holder); + + if (isEnabled()) { + TextView title = holder.itemView.findViewById(android.R.id.title); + title.setTextColor(ContextCompat.getColor(getContext(), R.color.textColorPrimary)); + } + + slider = holder.itemView.findViewById(R.id.slider); + slider.setTag(getKey()); + + slider.addOnSliderTouchListener(sliderTouchListener); + slider.addOnChangeListener(changeListener); + + slider.setLabelFormatter(labelFormatter); + + mResetButton = holder.itemView.findViewById(R.id.reset_button); + if (showResetButton) { + mResetButton.setVisibility(View.VISIBLE); + mResetButton.setOnClickListener(v -> { + slider.setValues(defaultValue); + savePrefs(); + }); + } else { + mResetButton.setVisibility(View.GONE); + } + + sliderValue = holder.itemView.findViewById(androidx.preference.R.id.seekbar_value); + + slider.setValueFrom(valueFrom); + slider.setValueTo(valueTo); + slider.setStepSize(tickInterval); + + syncState(); + } + + public void setMin(float value) { + valueFrom = value; + if (slider != null) slider.setValueFrom(value); + } + + public void setMax(float value) { + valueTo = value; + if (slider != null) slider.setValueTo(value); + } + + public static List getValues(SharedPreferences prefs, String key, float defaultValue) { + List values; + + try { + String JSONString = prefs.getString(key, ""); + values = getValues(JSONString); + } catch (Exception ignored) { + try { + float value = prefs.getFloat(key, defaultValue); + values = Collections.singletonList(value); + } catch (Exception ignored2) { + try { + int value = prefs.getInt(key, Math.round(defaultValue)); + values = Collections.singletonList((float) value); + } catch (Exception ignored3) { + values = Collections.singletonList(defaultValue); + } + } + } + return values; + } + + public static List getValues(String JSONString) throws Exception { + List values = new ArrayList<>(); + + if (JSONString.trim().isEmpty()) return values; + + JsonReader jsonReader = new JsonReader(new StringReader(JSONString)); + + jsonReader.beginObject(); + try { + jsonReader.nextName(); + jsonReader.beginArray(); + } catch (Exception ignored) { + } + + while (jsonReader.hasNext()) { + try { + jsonReader.nextName(); + } catch (Exception ignored) { + } + values.add((float) jsonReader.nextDouble()); + } + + return values; + } + + public static float getSingleFloatValue(SharedPreferences prefs, String key, float defaultValue) { + float result = defaultValue; + + try { + result = getValues(prefs, key, defaultValue).get(0); + } catch (Throwable ignored) { + } + + return result; + } + + public static int getSingleIntValue(SharedPreferences prefs, String key, int defaultValue) { + return Math.round(getSingleFloatValue(prefs, key, defaultValue)); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/preferences/SwitchPreference.kt b/app/src/main/java/com/drdisagree/iconify/ui/preferences/SwitchPreference.kt new file mode 100644 index 000000000..9121bb20e --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/preferences/SwitchPreference.kt @@ -0,0 +1,39 @@ +package com.drdisagree.iconify.ui.preferences + +import android.content.Context +import android.util.AttributeSet +import androidx.preference.SwitchPreferenceCompat +import com.drdisagree.iconify.R + +class SwitchPreference : SwitchPreferenceCompat { + + constructor( + context: Context, + attrs: AttributeSet?, + defStyleAttr: Int, + defStyleRes: Int + ) : super(context, attrs, defStyleAttr, defStyleRes) { + initResource() + } + + constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super( + context, + attrs, + defStyleAttr + ) { + initResource() + } + + constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) { + initResource() + } + + constructor(context: Context) : super(context) { + initResource() + } + + private fun initResource() { + layoutResource = R.layout.custom_preference_switch + widgetLayoutResource = R.layout.preference_material_switch + } +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/preferences/TimePickerPreference.java b/app/src/main/java/com/drdisagree/iconify/ui/preferences/TimePickerPreference.java new file mode 100644 index 000000000..877c34f7f --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/preferences/TimePickerPreference.java @@ -0,0 +1,113 @@ +package com.drdisagree.iconify.ui.preferences; + +/* + * Modified from https://github.com/etidoUP/Material-Time-picker-preference- + * Credits: etidoUP + */ + +import android.content.Context; +import android.content.res.TypedArray; +import android.text.format.DateFormat; +import android.util.AttributeSet; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; +import androidx.preference.Preference; +import androidx.preference.PreferenceViewHolder; + +import com.google.android.material.timepicker.MaterialTimePicker; +import com.google.android.material.timepicker.TimeFormat; + +import java.util.Locale; +import java.util.concurrent.atomic.AtomicInteger; + +import com.drdisagree.iconify.R; + +public class TimePickerPreference extends Preference { + + private String timeValue = "00:00"; + + public TimePickerPreference(Context context) { + super(context); + } + + public TimePickerPreference(Context context, AttributeSet attrs) { + super(context, attrs); + init(context, attrs); + } + + public TimePickerPreference(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + init(context, attrs); + } + + private void init(Context context, AttributeSet attrs) { + setLayoutResource(R.layout.custom_preference_time_picker); + if (attrs != null) { + TypedArray a = + context.getTheme().obtainStyledAttributes(attrs, R.styleable.MaterialTimePickerPreference, 0, 0); + try { + timeValue = a.getString(R.styleable.MaterialTimePickerPreference_presetValue); + } catch (Exception e) { + timeValue = "00:00"; + } finally { + a.recycle(); + } + } + } + + @Override + public void onBindViewHolder(@NonNull PreferenceViewHolder holder) { + super.onBindViewHolder(holder); + TextView timeTextView = (TextView) holder.findViewById(R.id.time_stamp); + timeTextView.setText(timeValue); + } + + @Override + protected void onClick() { + super.onClick(); + + // parse hour and minute from timeValue + AtomicInteger hour = new AtomicInteger(Integer.parseInt(timeValue.split(":")[0])); + AtomicInteger minute = new AtomicInteger(Integer.parseInt(timeValue.split(":")[1])); + + MaterialTimePicker timePicker = + new MaterialTimePicker.Builder().setTimeFormat(DateFormat.is24HourFormat(getContext()) ? TimeFormat.CLOCK_24H : TimeFormat.CLOCK_12H).setHour(hour.get()).setMinute(minute.get()).build(); + + timePicker.addOnPositiveButtonClickListener( + v -> { + hour.set(timePicker.getHour()); + minute.set(timePicker.getMinute()); + String selectedTime = String.format(Locale.getDefault(), "%02d:%02d", hour.get(), minute.get()); + + timeValue = selectedTime; + persistString(selectedTime); + + notifyChanged(); + }); + + timePicker.show(((AppCompatActivity) getContext()).getSupportFragmentManager(), "timePicker"); + } + + @Override + protected Object onGetDefaultValue(TypedArray a, int index) { + return a.getString(index); + } + + @Override + protected void onSetInitialValue(Object defaultValue) { + timeValue = getPersistedString((String) defaultValue); + persistString(timeValue); + } + + public String getTimeValue() { + return this.timeValue; + } + + public void setTimeValue(String timeValue) { + this.timeValue = timeValue; + persistString(timeValue); + notifyChanged(); + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/preferences/UpdateCheckerPreference.kt b/app/src/main/java/com/drdisagree/iconify/ui/preferences/UpdateCheckerPreference.kt new file mode 100644 index 000000000..8c5b3412d --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/preferences/UpdateCheckerPreference.kt @@ -0,0 +1,146 @@ +package com.drdisagree.iconify.ui.preferences + +import android.content.Context +import android.util.AttributeSet +import android.view.View +import android.widget.TextView +import androidx.preference.Preference +import androidx.preference.PreferenceViewHolder +import com.drdisagree.iconify.BuildConfig +import com.drdisagree.iconify.R +import com.drdisagree.iconify.common.Const.LATEST_VERSION_URL +import com.drdisagree.iconify.common.Preferences.AUTO_UPDATE +import com.drdisagree.iconify.common.Preferences.LAST_UPDATE_CHECK_TIME +import com.drdisagree.iconify.common.Preferences.NEW_UPDATE_FOUND +import com.drdisagree.iconify.common.Preferences.NEW_UPDATE_VERSION_CODE +import com.drdisagree.iconify.common.Preferences.UPDATE_CHECK_TIME +import com.drdisagree.iconify.common.Preferences.VER_CODE +import com.drdisagree.iconify.config.RPrefs.getBoolean +import com.drdisagree.iconify.config.RPrefs.getLong +import com.drdisagree.iconify.config.RPrefs.getString +import com.drdisagree.iconify.config.RPrefs.putBoolean +import com.drdisagree.iconify.config.RPrefs.putLong +import com.drdisagree.iconify.config.RPrefs.putString +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.SupervisorJob +import kotlinx.coroutines.cancel +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext +import org.json.JSONObject +import java.io.BufferedReader +import java.io.InputStreamReader +import java.net.HttpURLConnection +import java.net.URL + +class UpdateCheckerPreference(context: Context, attrs: AttributeSet?) : Preference(context, attrs) { + + private val scope = CoroutineScope(Dispatchers.Main + SupervisorJob()) + private var mView: View? = null + + override fun onBindViewHolder(holder: PreferenceViewHolder) { + super.onBindViewHolder(holder) + + mView = holder.itemView + + if (newUpdateVersionCode != BuildConfig.VERSION_CODE.toString()) { + mView?.findViewById(R.id.update_desc)?.text = context.getString( + R.string.update_dialog_desc, + newUpdateVersionCode + ) + } + } + + fun checkForUpdate() { + if (shouldCheckForUpdate()) { + putLong(LAST_UPDATE_CHECK_TIME, System.currentTimeMillis()) + + scope.launch { + val result = fetchLatestVersion() + + if (result != null) { + handleUpdateResult(result) + } + } + } else { + if (getString(NEW_UPDATE_VERSION_CODE, null) == null || getString( + NEW_UPDATE_VERSION_CODE, + BuildConfig.VERSION_CODE.toString() + )!!.toInt() <= BuildConfig.VERSION_CODE + ) { + putString(NEW_UPDATE_VERSION_CODE, BuildConfig.VERSION_CODE.toString()) + putBoolean(NEW_UPDATE_FOUND, false) + } + } + } + + private fun shouldCheckForUpdate(): Boolean { + val lastChecked = getLong(LAST_UPDATE_CHECK_TIME, -1) + + return getBoolean(AUTO_UPDATE, true) && (lastChecked == -1L || + (System.currentTimeMillis() - lastChecked >= getLong(UPDATE_CHECK_TIME, 0))) + } + + private suspend fun fetchLatestVersion(): String? = withContext(Dispatchers.IO) { + var urlConnection: HttpURLConnection? = null + var bufferedReader: BufferedReader? = null + + return@withContext try { + val url = URL(LATEST_VERSION_URL) + urlConnection = url.openConnection() as HttpURLConnection + urlConnection.connect() + + val inputStream = urlConnection.inputStream + bufferedReader = BufferedReader(InputStreamReader(inputStream)) + + val stringBuffer = StringBuilder() + var line: String? + + while (bufferedReader.readLine().also { line = it } != null) { + stringBuffer.append(line).append("\n") + } + + if (stringBuffer.isEmpty()) { + null + } else { + stringBuffer.toString() + } + } catch (e: Exception) { + null + } finally { + urlConnection?.disconnect() + bufferedReader?.close() + } + } + + private fun handleUpdateResult(result: String) { + try { + val latestVersion = JSONObject(result) + + if (latestVersion.getString(VER_CODE).toInt() > BuildConfig.VERSION_CODE) { + newUpdateVersionCode = latestVersion.getString("versionName") + + mView?.findViewById(R.id.update_desc)?.text = context.getString( + R.string.update_dialog_desc, + newUpdateVersionCode + ) + + putString(NEW_UPDATE_VERSION_CODE, newUpdateVersionCode) + putBoolean(NEW_UPDATE_FOUND, true) + } else { + putString(NEW_UPDATE_VERSION_CODE, BuildConfig.VERSION_CODE.toString()) + putBoolean(NEW_UPDATE_FOUND, false) + } + } catch (_: Exception) { + } + } + + override fun onDetached() { + scope.cancel() + super.onDetached() + } + + companion object { + private var newUpdateVersionCode = BuildConfig.VERSION_CODE.toString() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/AnimationUtils.java b/app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/AnimationUtils.java new file mode 100644 index 000000000..9442bcdcb --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/AnimationUtils.java @@ -0,0 +1,89 @@ +package com.drdisagree.iconify.ui.preferences.preferencesearch; + +import android.animation.Animator; +import android.animation.AnimatorListenerAdapter; +import android.animation.ArgbEvaluator; +import android.animation.ValueAnimator; +import android.content.Context; +import android.graphics.Color; +import android.graphics.drawable.ColorDrawable; +import android.graphics.drawable.Drawable; +import android.view.View; +import android.view.ViewAnimationUtils; + +import androidx.interpolator.view.animation.FastOutSlowInInterpolator; + +public class AnimationUtils { + public static void registerCircularRevealAnimation(final Context context, final View view, final RevealAnimationSetting revealSettings) { + final int startColor = revealSettings.getColorAccent(); + final int endColor = getBackgroundColor(view); + + view.addOnLayoutChangeListener(new View.OnLayoutChangeListener() { + @Override + public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) { + v.removeOnLayoutChangeListener(this); + view.setVisibility(View.VISIBLE); + int cx = revealSettings.getCenterX(); + int cy = revealSettings.getCenterY(); + int width = revealSettings.getWidth(); + int height = revealSettings.getHeight(); + int duration = context.getResources().getInteger(android.R.integer.config_longAnimTime); + + //Simply use the diagonal of the view + float finalRadius = (float) Math.sqrt(width * width + height * height); + Animator anim = ViewAnimationUtils.createCircularReveal(v, cx, cy, 0, finalRadius).setDuration(duration); + anim.setInterpolator(new FastOutSlowInInterpolator()); + anim.start(); + startColorAnimation(view, startColor, endColor, duration); + } + }); + } + + private static void startColorAnimation(final View view, final int startColor, final int endColor, int duration) { + ValueAnimator anim = new ValueAnimator(); + anim.setIntValues(startColor, endColor); + anim.setEvaluator(new ArgbEvaluator()); + anim.addUpdateListener(valueAnimator -> view.setBackgroundColor((Integer) valueAnimator.getAnimatedValue())); + anim.setDuration(duration); + anim.start(); + } + + @SuppressWarnings("unused") + public static void startCircularExitAnimation(final Context context, final View view, final RevealAnimationSetting revealSettings, final OnDismissedListener listener) { + final int startColor = getBackgroundColor(view); + final int endColor = revealSettings.getColorAccent(); + + int cx = revealSettings.getCenterX(); + int cy = revealSettings.getCenterY(); + int width = revealSettings.getWidth(); + int height = revealSettings.getHeight(); + int duration = context.getResources().getInteger(android.R.integer.config_longAnimTime); + + float initRadius = (float) Math.sqrt(width * width + height * height); + Animator anim = ViewAnimationUtils.createCircularReveal(view, cx, cy, initRadius, 0); + anim.setDuration(duration); + anim.setInterpolator(new FastOutSlowInInterpolator()); + anim.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + view.setVisibility(View.INVISIBLE); + listener.onDismissed(); + } + }); + anim.start(); + startColorAnimation(view, startColor, endColor, duration); + } + + private static int getBackgroundColor(View view) { + int color = Color.TRANSPARENT; + Drawable background = view.getBackground(); + if (background instanceof ColorDrawable) { + color = ((ColorDrawable) background).getColor(); + } + return color; + } + + public interface OnDismissedListener { + void onDismissed(); + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/Breadcrumb.java b/app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/Breadcrumb.java new file mode 100644 index 000000000..4a6e56601 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/Breadcrumb.java @@ -0,0 +1,25 @@ +package com.drdisagree.iconify.ui.preferences.preferencesearch; + +import android.text.TextUtils; + +import androidx.annotation.Nullable; + +class Breadcrumb { + private Breadcrumb() { + + } + + /** + * Joins two breadcrumbs + * + * @param s1 First breadcrumb, might be null + * @param s2 Second breadcrumb + * @return Both breadcrumbs joined + */ + static String concat(@Nullable String s1, String s2) { + if (TextUtils.isEmpty(s1)) { + return s2; + } + return s1 + " > " + s2; + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/HistoryItem.java b/app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/HistoryItem.java new file mode 100644 index 000000000..ac192a6a2 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/HistoryItem.java @@ -0,0 +1,28 @@ +package com.drdisagree.iconify.ui.preferences.preferencesearch; + +class HistoryItem extends ListItem { + static final int TYPE = 1; + private final String term; + + HistoryItem(String term) { + super(); + this.term = term; + } + + @Override + public int getType() { + return TYPE; + } + + String getTerm() { + return term; + } + + @Override + public boolean equals(Object obj) { + if (obj instanceof HistoryItem) { + return ((HistoryItem) obj).term.equals(term); + } + return false; + } +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/ListItem.java b/app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/ListItem.java new file mode 100644 index 000000000..7e142bef8 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/ListItem.java @@ -0,0 +1,5 @@ +package com.drdisagree.iconify.ui.preferences.preferencesearch; + +public abstract class ListItem { + public abstract int getType(); +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/PreferenceItem.java b/app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/PreferenceItem.java new file mode 100644 index 000000000..58b690ba0 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/PreferenceItem.java @@ -0,0 +1,175 @@ +package com.drdisagree.iconify.ui.preferences.preferencesearch; + +import android.annotation.SuppressLint; +import android.os.Parcel; +import android.os.Parcelable; +import android.text.TextUtils; + +import androidx.annotation.NonNull; +import androidx.annotation.XmlRes; + +import org.apache.commons.text.similarity.FuzzyScore; + +import java.util.ArrayList; +import java.util.Locale; + +public class PreferenceItem extends ListItem implements Parcelable { + public static final Creator CREATOR = new Creator<>() { + @Override + public PreferenceItem createFromParcel(Parcel in) { + return new PreferenceItem(in); + } + + @Override + public PreferenceItem[] newArray(int size) { + return new PreferenceItem[size]; + } + }; + static final int TYPE = 2; + @SuppressLint("ConstantLocale") + private static final FuzzyScore fuzzyScore = new FuzzyScore(Locale.getDefault()); + String title; + String summary; + String key; + String entries; + String breadcrumbs; + String keywords; + ArrayList keyBreadcrumbs = new ArrayList<>(); + int resId; + private float lastScore = 0; + private String lastKeyword = null; + + PreferenceItem() { + } + + private PreferenceItem(Parcel in) { + this.title = in.readString(); + this.summary = in.readString(); + this.key = in.readString(); + this.breadcrumbs = in.readString(); + this.keywords = in.readString(); + this.resId = in.readInt(); + } + + boolean hasData() { + return title != null || summary != null; + } + + boolean matchesFuzzy(String keyword) { + return getScore(keyword) > 0.3; + } + + boolean matches(String keyword) { + Locale locale = Locale.getDefault(); + return getInfo().toLowerCase(locale).contains(keyword.toLowerCase(locale)); + } + + float getScore(String keyword) { + if (TextUtils.isEmpty(keyword)) { + return 0; + } else if (TextUtils.equals(lastKeyword, keyword)) { + return lastScore; + } + String info = getInfo(); + + float score = fuzzyScore.fuzzyScore(info, "ø" + keyword); + float maxScore = (keyword.length() + 1) * 3 - 2; // First item can not get +2 bonus score + + lastScore = score / maxScore; + lastKeyword = keyword; + return lastScore; + } + + private String getInfo() { + StringBuilder infoBuilder = new StringBuilder(); + if (!TextUtils.isEmpty(title)) { + infoBuilder.append("ø").append(title); + } + if (!TextUtils.isEmpty(summary)) { + infoBuilder.append("ø").append(summary); + } + if (!TextUtils.isEmpty(entries)) { + infoBuilder.append("ø").append(entries); + } + if (!TextUtils.isEmpty(breadcrumbs)) { + infoBuilder.append("ø").append(breadcrumbs); + } + if (!TextUtils.isEmpty(keywords)) { + infoBuilder.append("ø").append(keywords); + } + return infoBuilder.toString(); + } + + @SuppressWarnings("unused") + public PreferenceItem withKey(String key) { + this.key = key; + return this; + } + + @SuppressWarnings("unused") + public PreferenceItem withSummary(String summary) { + this.summary = summary; + return this; + } + + @SuppressWarnings("unused") + public PreferenceItem withTitle(String title) { + this.title = title; + return this; + } + + @SuppressWarnings("unused") + public PreferenceItem withEntries(String entries) { + this.entries = entries; + return this; + } + + @SuppressWarnings("unused") + public PreferenceItem withKeywords(String keywords) { + this.keywords = keywords; + return this; + } + + @SuppressWarnings("unused") + public PreferenceItem withResId(@XmlRes Integer resId) { + this.resId = resId; + return this; + } + + /** + * @param breadcrumb The breadcrumb to add + * @return For chaining + */ + @SuppressWarnings("unused") + public PreferenceItem addBreadcrumb(String breadcrumb) { + this.breadcrumbs = Breadcrumb.concat(this.breadcrumbs, breadcrumb); + return this; + } + + @NonNull + @Override + public String toString() { + return "PreferenceItem: " + title + " " + summary + " " + key; + } + + @Override + public int getType() { + return TYPE; + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel parcel, int i) { + parcel.writeString(title); + parcel.writeString(summary); + parcel.writeString(key); + parcel.writeString(breadcrumbs); + parcel.writeString(keywords); + parcel.writeInt(resId); + } + +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/PreferenceParser.kt b/app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/PreferenceParser.kt new file mode 100644 index 000000000..96f24c345 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/PreferenceParser.kt @@ -0,0 +1,227 @@ +package com.drdisagree.iconify.ui.preferences.preferencesearch + +import android.content.Context +import android.text.TextUtils +import com.drdisagree.iconify.config.PrefsHelper.isVisible +import com.drdisagree.iconify.ui.preferences.preferencesearch.SearchConfiguration.SearchIndexItem +import org.xmlpull.v1.XmlPullParser + +internal class PreferenceParser(private val mContext: Context) { + + private val allEntries = ArrayList() + + fun addResourceFile(item: SearchIndexItem) { + allEntries.addAll(parseFile(item)) + } + + fun addPreferenceItems(preferenceItems: ArrayList) { + preferenceItems.removeIf { item: PreferenceItem -> !isVisible(item.key) } + allEntries.addAll(preferenceItems) + } + + private fun parseFile(item: SearchIndexItem): ArrayList { + val results = ArrayList() + val xpp: XmlPullParser = mContext.resources.getXml(item.resId) + val bannedKeys: MutableList = item.searchConfiguration.bannedKeys + + try { + xpp.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, true) + xpp.setFeature(XmlPullParser.FEATURE_REPORT_NAMESPACE_ATTRIBUTES, true) + val breadcrumbs = ArrayList() + val keyBreadcrumbs = ArrayList() + if (!TextUtils.isEmpty(item.breadcrumb)) { + breadcrumbs.add(item.breadcrumb) + } + while (xpp.eventType != XmlPullParser.END_DOCUMENT) { + if (xpp.eventType == XmlPullParser.START_TAG) { + val result = parseSearchResult(xpp) + result.resId = item.resId + + try { + if (!isSearchable(result)) { + if (!bannedKeys.contains(result.key)) bannedKeys.add(result.key) + } else bannedKeys.remove(result.key) + } catch (ignored: Exception) { + } + + if (!BLACKLIST.contains(xpp.name) + && result.hasData() + && "true" != getAttribute(xpp, NS_SEARCH, "ignore") && !bannedKeys.contains( + result.key + ) + && shouldAddPreferenceItem(results, result) + ) { + result.breadcrumbs = joinBreadcrumbs(breadcrumbs) + result.keyBreadcrumbs = cleanupKeyBreadcrumbs(keyBreadcrumbs) + if (!results.contains(result)) { + results.add(result) + } + } + if (CONTAINERS.contains(xpp.name)) { + breadcrumbs.add(if (result.title == null) "" else result.title) + } + if (xpp.name == "PreferenceScreen") { + keyBreadcrumbs.add(getAttribute(xpp, "key")) + } + } else if (xpp.eventType == XmlPullParser.END_TAG && CONTAINERS.contains(xpp.name)) { + breadcrumbs.removeAt(breadcrumbs.size - 1) + if (xpp.name == "PreferenceScreen") { + keyBreadcrumbs.removeAt(keyBreadcrumbs.size - 1) + } + } + + xpp.next() + } + } catch (e: Exception) { + e.printStackTrace() + } + return results + } + + private fun isSearchable(result: PreferenceItem): Boolean { + if (TextUtils.isEmpty(result.key)) return false + return isVisible(result.key) + } + + private fun shouldAddPreferenceItem( + results: ArrayList, + result: PreferenceItem + ): Boolean { + var isAlreadyAdded = false + for (item in results) { + if (item.key == result.key && item.resId == result.resId) { + isAlreadyAdded = true + break + } + } + return !isAlreadyAdded + } + + private fun cleanupKeyBreadcrumbs(keyBreadcrumbs: ArrayList): ArrayList { + val result = ArrayList() + for (keyBreadcrumb in keyBreadcrumbs) { + if (keyBreadcrumb != null) { + result.add(keyBreadcrumb) + } + } + return result + } + + private fun joinBreadcrumbs(breadcrumbs: ArrayList): String? { + var result: String? = "" + for (crumb in breadcrumbs) { + if (!TextUtils.isEmpty(crumb)) { + result = Breadcrumb.concat(result, crumb) + } + } + return result + } + + private fun getAttribute(xpp: XmlPullParser, namespace: String?, attribute: String): String? { + for (i in 0 until xpp.attributeCount) { + if (attribute == xpp.getAttributeName(i) && + (namespace == null || namespace == xpp.getAttributeNamespace(i)) + ) { + return xpp.getAttributeValue(i) + } + } + return null + } + + private fun getAttribute(xpp: XmlPullParser, attribute: String): String? { + return if (hasAttribute(xpp, NS_SEARCH, attribute)) { + getAttribute(xpp, NS_SEARCH, attribute) + } else { + getAttribute(xpp, NS_ANDROID, attribute) + } + } + + private fun hasAttribute(xpp: XmlPullParser, namespace: String?, attribute: String): Boolean { + return getAttribute(xpp, namespace, attribute) != null + } + + private fun parseSearchResult(xpp: XmlPullParser): PreferenceItem { + val result = PreferenceItem() + result.title = readString(getAttribute(xpp, "title")) + result.summary = readString(getAttribute(xpp, "summary")) + result.key = readString(getAttribute(xpp, "key")) + result.entries = readStringArray(getAttribute(xpp, "entries")) + result.keywords = readString(getAttribute(xpp, NS_SEARCH, "keywords")) + return result + } + + private fun readStringArray(s: String?): String? { + if (s == null) { + return null + } + if (s.startsWith("@")) { + try { + val id = s.substring(1).toInt() + val elements = mContext.resources.getStringArray(id) + return TextUtils.join(",", elements) + } catch (e: Exception) { + e.printStackTrace() + } + } + return s + } + + private fun readString(s: String?): String? { + if (s == null) { + return null + } + if (s.startsWith("@")) { + try { + val id = s.substring(1).toInt() + return mContext.getString(id) + } catch (e: Exception) { + e.printStackTrace() + } + } + return s + } + + fun searchFor(keyword: String?, fuzzy: Boolean): List { + if (TextUtils.isEmpty(keyword)) { + return ArrayList() + } + val results = ArrayList() + + for (item in allEntries) { + if ((fuzzy && item.matchesFuzzy(keyword)) + || (!fuzzy && item.matches(keyword)) + ) { + results.add(item) + } + } + + results.sortWith { i1: PreferenceItem, i2: PreferenceItem -> + floatCompare( + i2.getScore(keyword), + i1.getScore(keyword) + ) + } + + return if (results.size > MAX_RESULTS) { + results.subList(0, MAX_RESULTS) + } else { + results + } + } + + companion object { + private const val MAX_RESULTS = 10 + private const val NS_ANDROID = "http://schemas.android.com/apk/res/android" + private const val NS_SEARCH = + "http://schemas.android.com/apk/com.drdisagree.iconify.ui.preferences.preferencesearch" + private val BLACKLIST: List = listOf( + SearchPreference::class.java.name, "PreferenceCategory" + ) + private val CONTAINERS: List = + mutableListOf("PreferenceCategory", "PreferenceScreen") + + private fun floatCompare(x: Float, y: Float): Int { + return if ((x < y)) -1 else (if ((x == y)) 0 else 1) + } + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/RevealAnimationSetting.java b/app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/RevealAnimationSetting.java new file mode 100644 index 000000000..7b2c8fc4c --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/RevealAnimationSetting.java @@ -0,0 +1,73 @@ +package com.drdisagree.iconify.ui.preferences.preferencesearch; + +import android.os.Parcel; +import android.os.Parcelable; + +public class RevealAnimationSetting implements Parcelable { + public static final Creator CREATOR = new Creator<>() { + @Override + public RevealAnimationSetting createFromParcel(Parcel in) { + return new RevealAnimationSetting(in); + } + + @Override + public RevealAnimationSetting[] newArray(int size) { + return new RevealAnimationSetting[size]; + } + }; + private final int centerX; + private final int centerY; + private final int width; + private final int height; + private final int colorAccent; + + public RevealAnimationSetting(int centerX, int centerY, int width, int height, int colorAccent) { + this.centerX = centerX; + this.centerY = centerY; + this.width = width; + this.height = height; + this.colorAccent = colorAccent; + } + + private RevealAnimationSetting(Parcel in) { + centerX = in.readInt(); + centerY = in.readInt(); + width = in.readInt(); + height = in.readInt(); + colorAccent = in.readInt(); + } + + public int getCenterX() { + return centerX; + } + + public int getCenterY() { + return centerY; + } + + public int getWidth() { + return width; + } + + public int getHeight() { + return height; + } + + public int getColorAccent() { + return colorAccent; + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + dest.writeInt(centerX); + dest.writeInt(centerY); + dest.writeInt(width); + dest.writeInt(height); + dest.writeInt(colorAccent); + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/SearchConfiguration.java b/app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/SearchConfiguration.java new file mode 100644 index 000000000..00a0e7b0c --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/SearchConfiguration.java @@ -0,0 +1,394 @@ +package com.drdisagree.iconify.ui.preferences.preferencesearch; + +import android.os.Bundle; +import android.os.Parcel; +import android.os.Parcelable; + +import androidx.annotation.ColorInt; +import androidx.annotation.IdRes; +import androidx.annotation.NonNull; +import androidx.annotation.StringRes; +import androidx.annotation.XmlRes; +import androidx.appcompat.app.AppCompatActivity; +import androidx.preference.ListPreference; +import androidx.preference.Preference; + +import java.util.ArrayList; +import java.util.Arrays; + +public class SearchConfiguration { + private static final String ARGUMENT_INDEX_FILES = "items"; + private static final String ARGUMENT_INDEX_INDIVIDUAL_PREFERENCES = "individual_prefs"; + private static final String ARGUMENT_FUZZY_ENABLED = "fuzzy"; + private static final String ARGUMENT_HISTORY_ENABLED = "history_enabled"; + private static final String ARGUMENT_SEARCH_BAR_ENABLED = "search_bar_enabled"; + private static final String ARGUMENT_BREADCRUMBS_ENABLED = "breadcrumbs_enabled"; + private static final String ARGUMENT_REVEAL_ANIMATION_SETTING = "reveal_anim_setting"; + private static final String ARGUMENT_TEXT_HINT = "text_hint"; + private static final String ARGUMENT_TEXT_CLEAR_HISTORY = "text_clear_history"; + private static final String ARGUMENT_TEXT_NO_RESULTS = "text_no_results"; + private final ArrayList bannedKeys = new ArrayList<>(); + private ArrayList filesToIndex = new ArrayList<>(); + private ArrayList preferencesToIndex = new ArrayList<>(); + private boolean historyEnabled = true; + private boolean breadcrumbsEnabled = false; + private boolean fuzzySearchEnabled = true; + private boolean searchBarEnabled = true; + private AppCompatActivity activity; + private int containerResId = android.R.id.content; + private RevealAnimationSetting revealAnimationSetting = null; + private String textClearHistory; + private String textNoResults; + private String textHint; + + public SearchConfiguration() { + + } + + /** + * Creates a new search configuration + * + * @param activity The Activity that receives callbacks. Must implement SearchPreferenceResultListener. + */ + @SuppressWarnings("unused") + public SearchConfiguration(AppCompatActivity activity) { + setActivity(activity); + } + + static SearchConfiguration fromBundle(Bundle bundle) { + SearchConfiguration config = new SearchConfiguration(); + config.filesToIndex = bundle.getParcelableArrayList(ARGUMENT_INDEX_FILES); + config.preferencesToIndex = bundle.getParcelableArrayList(ARGUMENT_INDEX_INDIVIDUAL_PREFERENCES); + config.historyEnabled = bundle.getBoolean(ARGUMENT_HISTORY_ENABLED); + config.revealAnimationSetting = bundle.getParcelable(ARGUMENT_REVEAL_ANIMATION_SETTING); + config.fuzzySearchEnabled = bundle.getBoolean(ARGUMENT_FUZZY_ENABLED); + config.breadcrumbsEnabled = bundle.getBoolean(ARGUMENT_BREADCRUMBS_ENABLED); + config.searchBarEnabled = bundle.getBoolean(ARGUMENT_SEARCH_BAR_ENABLED); + config.textHint = bundle.getString(ARGUMENT_TEXT_HINT); + config.textClearHistory = bundle.getString(ARGUMENT_TEXT_CLEAR_HISTORY); + config.textNoResults = bundle.getString(ARGUMENT_TEXT_NO_RESULTS); + return config; + } + + /** + * Shows the fragment + * + * @return A reference to the fragment + */ + public SearchPreferenceFragment showSearchFragment() { + if (activity == null) { + throw new IllegalStateException("setActivity() not called"); + } + + Bundle arguments = this.toBundle(); + SearchPreferenceFragment fragment = new SearchPreferenceFragment(); + fragment.setArguments(arguments); + activity.getSupportFragmentManager().beginTransaction() + .add(containerResId, fragment, SearchPreferenceFragment.TAG) + .addToBackStack(SearchPreferenceFragment.TAG) + .commit(); + return fragment; + } + + private Bundle toBundle() { + Bundle arguments = new Bundle(); + arguments.putParcelableArrayList(ARGUMENT_INDEX_FILES, filesToIndex); + arguments.putParcelableArrayList(ARGUMENT_INDEX_INDIVIDUAL_PREFERENCES, preferencesToIndex); + arguments.putBoolean(ARGUMENT_HISTORY_ENABLED, historyEnabled); + arguments.putParcelable(ARGUMENT_REVEAL_ANIMATION_SETTING, revealAnimationSetting); + arguments.putBoolean(ARGUMENT_FUZZY_ENABLED, fuzzySearchEnabled); + arguments.putBoolean(ARGUMENT_BREADCRUMBS_ENABLED, breadcrumbsEnabled); + arguments.putBoolean(ARGUMENT_SEARCH_BAR_ENABLED, searchBarEnabled); + arguments.putString(ARGUMENT_TEXT_HINT, textHint); + arguments.putString(ARGUMENT_TEXT_CLEAR_HISTORY, textClearHistory); + arguments.putString(ARGUMENT_TEXT_NO_RESULTS, textNoResults); + return arguments; + } + + /** + * Sets the current activity that also receives callbacks + * + * @param activity The Activity that receives callbacks. Must implement SearchPreferenceResultListener. + */ + public void setActivity(@NonNull AppCompatActivity activity) { + this.activity = activity; + if (!(activity instanceof SearchPreferenceResultListener)) { + throw new IllegalArgumentException("Activity must implement SearchPreferenceResultListener"); + } + } + + /** + * Sets the container to use when loading the fragment + * + * @param containerResId Resource id of the container + */ + public void setFragmentContainerViewId(@IdRes int containerResId) { + this.containerResId = containerResId; + } + + /** + * Display a reveal animation + * + * @param centerX Origin of the reveal animation + * @param centerY Origin of the reveal animation + * @param width Size of the main container + * @param height Size of the main container + * @param colorAccent Accent color to use + */ + @SuppressWarnings("unused") + public void useAnimation(int centerX, int centerY, int width, int height, @ColorInt int colorAccent) { + revealAnimationSetting = new RevealAnimationSetting(centerX, centerY, width, height, colorAccent); + } + + /** + * Adds a new file to the index + * + * @param resId The preference file to index + */ + public SearchIndexItem index(@XmlRes int resId) { + SearchIndexItem item = new SearchIndexItem(resId, this); + if (!filesToIndex.contains(item)) { + filesToIndex.add(item); + } + return item; + } + + /** + * Indexes a single preference + * + * @return the indexed PreferenceItem to configure it with chaining + * @see PreferenceItem for the available methods for configuring it + */ + @SuppressWarnings("unused") + public PreferenceItem indexItem() { + PreferenceItem preferenceItem = new PreferenceItem(); + preferencesToIndex.add(preferenceItem); + return preferenceItem; + } + + /** + * Indexes a single android preference + * + * @param preference to get its key, summary, title and entries + * @return the indexed PreferenceItem to configure it with chaining + * @see PreferenceItem for the available methods for configuring it + */ + @SuppressWarnings("unused") + public PreferenceItem indexItem(@NonNull Preference preference) { + PreferenceItem preferenceItem = new PreferenceItem(); + + if (preference.getKey() != null) { + preferenceItem.key = preference.getKey(); + } + if (preference.getSummary() != null) { + preferenceItem.summary = preference.getSummary().toString(); + } + if (preference.getTitle() != null) { + preferenceItem.title = preference.getTitle().toString(); + } + if (preference instanceof ListPreference listPreference) { + if (listPreference.getEntries() != null) { + preferenceItem.entries = Arrays.toString(listPreference.getEntries()); + } + } + preferencesToIndex.add(preferenceItem); + return preferenceItem; + } + + ArrayList getBannedKeys() { + return bannedKeys; + } + + /** + * @param key of the preference to be ignored + */ + @SuppressWarnings("unused") + public void ignorePreference(@NonNull String key) { + bannedKeys.add(key); + } + + ArrayList getFiles() { + return filesToIndex; + } + + ArrayList getPreferencesToIndex() { + return preferencesToIndex; + } + + boolean isHistoryEnabled() { + return historyEnabled; + } + + /** + * Show a history of recent search terms if nothing was typed yet. Default is true + * + * @param historyEnabled True if history should be enabled + */ + public void setHistoryEnabled(boolean historyEnabled) { + this.historyEnabled = historyEnabled; + } + + boolean isBreadcrumbsEnabled() { + return breadcrumbsEnabled; + } + + /** + * Show breadcrumbs in the list of search results, containing of + * the prefix given in addResourceFileToIndex, PreferenceCategory and PreferenceScreen. + * Default is false + * + * @param breadcrumbsEnabled True if breadcrumbs should be shown + */ + public void setBreadcrumbsEnabled(boolean breadcrumbsEnabled) { + this.breadcrumbsEnabled = breadcrumbsEnabled; + } + + boolean isFuzzySearchEnabled() { + return fuzzySearchEnabled; + } + + /** + * Allow to enable and disable fuzzy searching. Default is true + * + * @param fuzzySearchEnabled True if search should be fuzzy + */ + public void setFuzzySearchEnabled(boolean fuzzySearchEnabled) { + this.fuzzySearchEnabled = fuzzySearchEnabled; + } + + boolean isSearchBarEnabled() { + return searchBarEnabled; + } + + /** + * Show the search bar above the list. When setting this to false, you have to use {@see SearchPreferenceFragment#setSearchTerm(String) setSearchTerm} instead + * Default is true + * + * @param searchBarEnabled True if search bar should be shown + */ + public void setSearchBarEnabled(boolean searchBarEnabled) { + this.searchBarEnabled = searchBarEnabled; + } + + RevealAnimationSetting getRevealAnimationSetting() { + return revealAnimationSetting; + } + + @SuppressWarnings("unused") + public String getTextClearHistory() { + return textClearHistory; + } + + public void setTextClearHistory(String textClearHistory) { + this.textClearHistory = textClearHistory; + } + + public String getTextNoResults() { + return textNoResults; + } + + public void setTextNoResults(String textNoResults) { + this.textNoResults = textNoResults; + } + + public String getTextHint() { + return textHint; + } + + public void setTextHint(String textHint) { + this.textHint = textHint; + } + + /** + * Adds a given R.xml resource to the search index + */ + public static class SearchIndexItem implements Parcelable { + public static final Creator CREATOR = new Creator() { + @Override + public SearchIndexItem createFromParcel(Parcel in) { + return new SearchIndexItem(in); + } + + @Override + public SearchIndexItem[] newArray(int size) { + return new SearchIndexItem[size]; + } + }; + private final @XmlRes int resId; + private final SearchConfiguration searchConfiguration; + private String breadcrumb = ""; + + /** + * Includes the given R.xml resource in the index + * + * @param resId The resource to index + */ + private SearchIndexItem(@XmlRes int resId, SearchConfiguration searchConfiguration) { + this.resId = resId; + this.searchConfiguration = searchConfiguration; + } + + private SearchIndexItem(Parcel parcel) { + this.breadcrumb = parcel.readString(); + this.resId = parcel.readInt(); + this.searchConfiguration = null; + } + + /** + * Adds a breadcrumb + * + * @param breadcrumb The breadcrumb to add + * @return For chaining + */ + @SuppressWarnings("unused") + public SearchIndexItem addBreadcrumb(@StringRes int breadcrumb) { + assertNotParcel(); + return addBreadcrumb(searchConfiguration.activity.getString(breadcrumb)); + } + + /** + * Adds a breadcrumb + * + * @param breadcrumb The breadcrumb to add + * @return For chaining + */ + public SearchIndexItem addBreadcrumb(String breadcrumb) { + assertNotParcel(); + this.breadcrumb = Breadcrumb.concat(this.breadcrumb, breadcrumb); + return this; + } + + /** + * Throws an exception if the item does not have a searchConfiguration (thus, is restored from a parcel) + */ + private void assertNotParcel() { + if (searchConfiguration == null) { + throw new IllegalStateException("SearchIndexItems that are restored from parcel can not be modified."); + } + } + + @XmlRes + int getResId() { + return resId; + } + + String getBreadcrumb() { + return breadcrumb; + } + + SearchConfiguration getSearchConfiguration() { + return searchConfiguration; + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + dest.writeString(this.breadcrumb); + dest.writeInt(this.resId); + } + + @Override + public int describeContents() { + return 0; + } + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/SearchPreference.java b/app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/SearchPreference.java new file mode 100644 index 000000000..990e944f2 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/SearchPreference.java @@ -0,0 +1,87 @@ +package com.drdisagree.iconify.ui.preferences.preferencesearch; + +import android.content.Context; +import android.content.res.TypedArray; +import android.text.InputType; +import android.util.AttributeSet; +import android.view.View; +import android.widget.EditText; + +import androidx.preference.Preference; +import androidx.preference.PreferenceViewHolder; + +import com.drdisagree.iconify.R; + +public class SearchPreference extends Preference implements View.OnClickListener { + private final SearchConfiguration searchConfiguration = new SearchConfiguration(); + private String hint = null; + + @SuppressWarnings("unused") + public SearchPreference(Context context, AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + setLayoutResource(R.layout.searchpreference_preference); + parseAttrs(attrs); + } + + @SuppressWarnings("unused") + public SearchPreference(Context context, AttributeSet attrs) { + super(context, attrs); + setLayoutResource(R.layout.searchpreference_preference); + parseAttrs(attrs); + } + + @SuppressWarnings("unused") + public SearchPreference(Context context) { + super(context); + setLayoutResource(R.layout.searchpreference_preference); + } + + private void parseAttrs(AttributeSet attrs) { + TypedArray a = getContext().obtainStyledAttributes(attrs, new int[]{R.attr.textHint}); + if (a.getText(0) != null) { + hint = a.getText(0).toString(); + searchConfiguration.setTextHint(a.getText(0).toString()); + } + a.recycle(); + a = getContext().obtainStyledAttributes(attrs, new int[]{R.attr.textClearHistory}); + if (a.getText(0) != null) { + searchConfiguration.setTextClearHistory(a.getText(0).toString()); + } + a.recycle(); + a = getContext().obtainStyledAttributes(attrs, new int[]{R.attr.textNoResults}); + if (a.getText(0) != null) { + searchConfiguration.setTextNoResults(a.getText(0).toString()); + } + a.recycle(); + } + + @Override + public void onBindViewHolder(PreferenceViewHolder holder) { + EditText searchText = (EditText) holder.findViewById(R.id.search); + searchText.setFocusable(false); + searchText.setInputType(InputType.TYPE_NULL); + searchText.setOnClickListener(this); + + if (hint != null) { + searchText.setHint(hint); + } + + holder.findViewById(R.id.search_card).setOnClickListener(this); + holder.itemView.setOnClickListener(this); + holder.itemView.setBackgroundColor(0x0); + } + + @Override + public void onClick(View view) { + getSearchConfiguration().showSearchFragment(); + } + + /** + * Returns the search configuration object for this preference + * + * @return The search configuration + */ + public SearchConfiguration getSearchConfiguration() { + return searchConfiguration; + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/SearchPreferenceActionView.java b/app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/SearchPreferenceActionView.java new file mode 100644 index 000000000..fc22e9fc5 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/SearchPreferenceActionView.java @@ -0,0 +1,93 @@ +package com.drdisagree.iconify.ui.preferences.preferencesearch; + +import android.content.Context; +import android.util.AttributeSet; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.SearchView; +import androidx.fragment.app.FragmentManager; + +public class SearchPreferenceActionView extends SearchView { + protected SearchPreferenceFragment searchFragment; + protected SearchConfiguration searchConfiguration = new SearchConfiguration(); + protected AppCompatActivity activity; + + public SearchPreferenceActionView(Context context) { + super(context); + initView(); + } + + public SearchPreferenceActionView(Context context, AttributeSet attrs) { + super(context, attrs); + initView(); + } + + public SearchPreferenceActionView(Context context, AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + initView(); + } + + private void initView() { + searchConfiguration.setSearchBarEnabled(false); + setOnQueryTextListener(new OnQueryTextListener() { + @Override + public boolean onQueryTextSubmit(String query) { + return false; + } + + @Override + public boolean onQueryTextChange(String newText) { + if (searchFragment != null) { + searchFragment.setSearchTerm(newText); + } + return true; + } + }); + setOnQueryTextFocusChangeListener((v, hasFocus) -> { + if (hasFocus && (searchFragment == null || !searchFragment.isVisible())) { + searchFragment = searchConfiguration.showSearchFragment(); + searchFragment.setHistoryClickListener(entry -> setQuery(entry, false)); + } + }); + } + + @SuppressWarnings("unused") + public SearchConfiguration getSearchConfiguration() { + return searchConfiguration; + } + + /** + * Hides the search fragment + * + * @return true if it was hidden, so the calling activity should not go back itself. + */ + @SuppressWarnings("unused") + public boolean cancelSearch() { + setQuery("", false); + + boolean didSomething = false; + if (!isIconified()) { + setIconified(true); + didSomething = true; + } + if (searchFragment != null && searchFragment.isVisible()) { + removeFragment(); + didSomething = true; + } + return didSomething; + } + + protected void removeFragment() { + if (searchFragment.isVisible()) { + FragmentManager fm = activity.getSupportFragmentManager(); + fm.beginTransaction().remove(searchFragment).commit(); + fm.popBackStack(SearchPreferenceFragment.TAG, FragmentManager.POP_BACK_STACK_INCLUSIVE); + } + } + + @SuppressWarnings("unused") + public void setActivity(AppCompatActivity activity) { + searchConfiguration.setActivity(activity); + this.activity = activity; + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/SearchPreferenceAdapter.java b/app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/SearchPreferenceAdapter.java new file mode 100644 index 000000000..380849a1d --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/SearchPreferenceAdapter.java @@ -0,0 +1,139 @@ +package com.drdisagree.iconify.ui.preferences.preferencesearch; + + +import android.annotation.SuppressLint; +import android.text.TextUtils; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.drdisagree.iconify.R; + +import java.util.ArrayList; +import java.util.List; + +class SearchPreferenceAdapter extends RecyclerView.Adapter { + private List dataset; + private SearchConfiguration searchConfiguration; + private SearchClickListener onItemClickListener; + + + SearchPreferenceAdapter() { + dataset = new ArrayList<>(); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + if (viewType == PreferenceItem.TYPE) { + return new PreferenceViewHolder( + LayoutInflater.from(parent.getContext()).inflate( + R.layout.searchpreference_list_item_result, parent, false)); + } else { + return new HistoryViewHolder( + LayoutInflater.from(parent.getContext()).inflate( + R.layout.searchpreference_list_item_history, parent, false)); + } + } + + @Override + public void onBindViewHolder(@NonNull final ViewHolder h, final int position) { + final ListItem listItem = dataset.get(position); + if (getItemViewType(position) == HistoryItem.TYPE) { + HistoryViewHolder holder = (HistoryViewHolder) h; + HistoryItem item = (HistoryItem) listItem; + holder.term.setText(item.getTerm()); + } else if (getItemViewType(position) == PreferenceItem.TYPE) { + PreferenceViewHolder holder = (PreferenceViewHolder) h; + PreferenceItem item = (PreferenceItem) listItem; + holder.title.setText(item.title); + + if (TextUtils.isEmpty(item.summary) || item.summary.contains("%s")) { + holder.summary.setVisibility(View.GONE); + } else { + holder.summary.setVisibility(View.VISIBLE); + holder.summary.setText(item.summary); + holder.summary.setAlpha(0.8f); + } + + if (searchConfiguration.isBreadcrumbsEnabled()) { + holder.breadcrumbs.setText(item.breadcrumbs); + holder.breadcrumbs.setAlpha(0.6f); + holder.summary.setAlpha(0.8f); + } else { + holder.breadcrumbs.setVisibility(View.GONE); + holder.summary.setAlpha(0.6f); + } + + } + + h.root.setOnClickListener(v -> { + if (onItemClickListener != null) { + onItemClickListener.onItemClicked(listItem, h.getBindingAdapterPosition()); + } + }); + } + + @SuppressLint("NotifyDataSetChanged") + void setContent(List items) { + dataset = new ArrayList<>(items); + this.notifyDataSetChanged(); + } + + @Override + public int getItemCount() { + return dataset.size(); + } + + @Override + public int getItemViewType(int position) { + return dataset.get(position).getType(); + } + + void setSearchConfiguration(SearchConfiguration searchConfiguration) { + this.searchConfiguration = searchConfiguration; + } + + void setOnItemClickListener(SearchClickListener onItemClickListener) { + this.onItemClickListener = onItemClickListener; + } + + interface SearchClickListener { + void onItemClicked(ListItem item, int position); + } + + static class ViewHolder extends RecyclerView.ViewHolder { + View root; + + ViewHolder(View v) { + super(v); + root = v; + } + } + + static class HistoryViewHolder extends ViewHolder { + TextView term; + + HistoryViewHolder(View v) { + super(v); + term = v.findViewById(R.id.term); + } + } + + static class PreferenceViewHolder extends ViewHolder { + TextView title; + TextView summary; + TextView breadcrumbs; + + PreferenceViewHolder(View v) { + super(v); + title = v.findViewById(R.id.title); + summary = v.findViewById(R.id.summary); + breadcrumbs = v.findViewById(R.id.breadcrumbs); + } + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/SearchPreferenceFragment.java b/app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/SearchPreferenceFragment.java new file mode 100644 index 000000000..e395bf0aa --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/SearchPreferenceFragment.java @@ -0,0 +1,342 @@ +package com.drdisagree.iconify.ui.preferences.preferencesearch; + +import android.content.Context; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.text.Editable; +import android.text.TextUtils; +import android.text.TextWatcher; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.view.inputmethod.InputMethodManager; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.PopupMenu; +import androidx.core.view.MenuHost; +import androidx.core.view.MenuProvider; +import androidx.fragment.app.Fragment; +import androidx.lifecycle.Lifecycle; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.drdisagree.iconify.R; +import com.google.android.material.appbar.MaterialToolbar; +import com.google.android.material.card.MaterialCardView; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +public class SearchPreferenceFragment extends Fragment implements SearchPreferenceAdapter.SearchClickListener { + /** + * Default tag used on the library's Fragment transactions with {@link SearchPreferenceFragment} + */ + public static final String TAG = SearchPreferenceFragment.class.getSimpleName(); + + private static final String SHARED_PREFS_FILE = "preferenceSearch"; + private static final int MAX_HISTORY = 5; + private PreferenceParser searcher; + private List results; + private List history; + private SharedPreferences prefs; + private SearchViewHolder viewHolder; + private SearchConfiguration searchConfiguration; + private SearchPreferenceAdapter adapter; + private HistoryClickListener historyClickListener; + private CharSequence searchTermPreset = null; + private final TextWatcher textWatcher = new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { + } + + @Override + public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { + } + + @Override + public void afterTextChanged(Editable editable) { + updateSearchResults(editable.toString()); + viewHolder.clearButton.setVisibility(editable.toString().isEmpty() ? View.GONE : View.VISIBLE); + } + }; + + private void initSearch() { + searcher = new PreferenceParser(requireContext()); + + assert getArguments() != null; + searchConfiguration = SearchConfiguration.fromBundle(getArguments()); + ArrayList files = searchConfiguration.getFiles(); + for (SearchConfiguration.SearchIndexItem file : files) { + searcher.addResourceFile(file); + } + searcher.addPreferenceItems(searchConfiguration.getPreferencesToIndex()); + loadHistory(); + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + prefs = requireContext().getSharedPreferences(SHARED_PREFS_FILE, Context.MODE_PRIVATE); + + initSearch(); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + inflater.getContext().setTheme(R.style.PrefsThemeToolbar); + View rootView = inflater.inflate(R.layout.searchpreference_fragment, container, false); + viewHolder = new SearchViewHolder(rootView); + + viewHolder.clearButton.setOnClickListener(view -> viewHolder.searchView.setText("")); + if (searchConfiguration.isHistoryEnabled()) { + viewHolder.moreButton.setVisibility(View.VISIBLE); + } + if (searchConfiguration.getTextHint() != null) { + viewHolder.searchView.setHint(searchConfiguration.getTextHint()); + } + if (searchConfiguration.getTextNoResults() != null) { + viewHolder.noResults.setText(searchConfiguration.getTextNoResults()); + } + viewHolder.moreButton.setOnClickListener(v -> { + PopupMenu popup = new PopupMenu(requireContext(), viewHolder.moreButton); + popup.getMenuInflater().inflate(R.menu.search_more, popup.getMenu()); + popup.setOnMenuItemClickListener(item -> { + if (item.getItemId() == R.id.clear_history) { + clearHistory(); + } + return true; + }); + popup.show(); + }); + + viewHolder.recyclerView.setLayoutManager(new LinearLayoutManager(requireContext())); + adapter = new SearchPreferenceAdapter(); + adapter.setSearchConfiguration(searchConfiguration); + adapter.setOnItemClickListener(this); + viewHolder.recyclerView.setAdapter(adapter); + + viewHolder.searchView.addTextChangedListener(textWatcher); + + if (!searchConfiguration.isSearchBarEnabled()) { + viewHolder.searchContainer.setVisibility(View.GONE); + } + + if (searchTermPreset != null) { + viewHolder.searchView.setText(searchTermPreset); + } + + RevealAnimationSetting anim = searchConfiguration.getRevealAnimationSetting(); + if (anim != null) { + AnimationUtils.registerCircularRevealAnimation(requireContext(), rootView, anim); + } + + return rootView; + } + + @Override + public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + + MenuHost menuHost = requireActivity(); + menuHost.addMenuProvider(new MenuProvider() { + @Override + public void onCreateMenu(@NonNull Menu menu, @NonNull MenuInflater menuInflater) { + menu.clear(); + menuInflater.inflate(R.menu.search_menu, menu); + } + + @Override + public boolean onMenuItemSelected(@NonNull MenuItem menuItem) { + return false; + } + }, getViewLifecycleOwner(), Lifecycle.State.RESUMED); + } + + private void loadHistory() { + history = new ArrayList<>(); + if (!searchConfiguration.isHistoryEnabled()) { + return; + } + + int size = prefs.getInt("history_size", 0); + for (int i = 0; i < size; i++) { + String title = prefs.getString("history_" + i, null); + history.add(new HistoryItem(title)); + } + } + + private void saveHistory() { + SharedPreferences.Editor editor = prefs.edit(); + editor.putInt("history_size", history.size()); + for (int i = 0; i < history.size(); i++) { + editor.putString("history_" + i, history.get(i).getTerm()); + } + editor.apply(); + } + + private void clearHistory() { + viewHolder.searchView.setText(""); + history.clear(); + saveHistory(); + updateSearchResults(""); + } + + private void addHistoryEntry(String entry) { + HistoryItem newItem = new HistoryItem(entry); + if (!history.contains(newItem)) { + if (history.size() >= MAX_HISTORY) { + history.remove(history.size() - 1); + } + history.add(0, newItem); + saveHistory(); + updateSearchResults(viewHolder.searchView.getText().toString()); + } + } + + @Override + public void onResume() { + super.onResume(); + + initSearch(); + + updateSearchResults(viewHolder.searchView.getText().toString()); + + if (searchConfiguration.isSearchBarEnabled()) { + showKeyboard(); + } + + if (getContext() != null) { + if (viewHolder.toolbar != null) { + ((AppCompatActivity) getContext()).setSupportActionBar(viewHolder.toolbar); + viewHolder.toolbar.setTitle(R.string.search_title); + } + + if (getContext() instanceof AppCompatActivity) { + Objects.requireNonNull(((AppCompatActivity) getContext()) + .getSupportActionBar()).setDisplayHomeAsUpEnabled(true); + } + } + } + + private void showKeyboard() { + viewHolder.searchView.post(() -> { + viewHolder.searchView.requestFocus(); + InputMethodManager imm = (InputMethodManager) requireActivity().getSystemService(Context.INPUT_METHOD_SERVICE); + if (imm != null) { + imm.showSoftInput(viewHolder.searchView, InputMethodManager.SHOW_IMPLICIT); + } + }); + } + + private void hideKeyboard() { + View view = requireActivity().getCurrentFocus(); + InputMethodManager imm = (InputMethodManager) requireActivity().getSystemService(Context.INPUT_METHOD_SERVICE); + if (view != null && imm != null) { + imm.hideSoftInputFromWindow(view.getWindowToken(), 0); + } + } + + public void setSearchTerm(CharSequence term) { + if (viewHolder != null) { + viewHolder.searchView.setText(term); + } else { + searchTermPreset = term; + } + } + + private void updateSearchResults(String keyword) { + if (TextUtils.isEmpty(keyword)) { + showHistory(); + return; + } + + results = searcher.searchFor(keyword, searchConfiguration.isFuzzySearchEnabled()); + adapter.setContent(new ArrayList<>(results)); + + setEmptyViewShown(results.isEmpty()); + } + + private void setEmptyViewShown(boolean shown) { + if (shown) { + viewHolder.noResults.setVisibility(View.VISIBLE); + viewHolder.recyclerView.setVisibility(View.GONE); + } else { + viewHolder.noResults.setVisibility(View.GONE); + viewHolder.recyclerView.setVisibility(View.VISIBLE); + } + } + + private void showHistory() { + viewHolder.noResults.setVisibility(View.GONE); + viewHolder.recyclerView.setVisibility(View.VISIBLE); + + adapter.setContent(new ArrayList<>(history)); + setEmptyViewShown(history.isEmpty()); + } + + @Override + public void onItemClicked(ListItem item, int position) { + if (item.getType() == HistoryItem.TYPE) { + CharSequence text = ((HistoryItem) item).getTerm(); + viewHolder.searchView.setText(text); + viewHolder.searchView.setSelection(text.length()); + if (historyClickListener != null) { + historyClickListener.onHistoryEntryClicked(text.toString()); + } + } else { + hideKeyboard(); + + try { + final SearchPreferenceResultListener callback = (SearchPreferenceResultListener) getActivity(); + PreferenceItem r = results.get(position); + addHistoryEntry(r.title); + String screen = null; + if (!r.keyBreadcrumbs.isEmpty()) { + screen = r.keyBreadcrumbs.get(r.keyBreadcrumbs.size() - 1); + } + SearchPreferenceResult result = new SearchPreferenceResult(r.key, r.resId, screen); + assert callback != null; + callback.onSearchResultClicked(result); + } catch (ClassCastException e) { + throw new ClassCastException(requireActivity() + " must implement SearchPreferenceResultListener"); + } + } + } + + public void setHistoryClickListener(HistoryClickListener historyClickListener) { + this.historyClickListener = historyClickListener; + } + + public interface HistoryClickListener { + void onHistoryEntryClicked(String entry); + } + + private static class SearchViewHolder { + private final ImageView clearButton; + private final ImageView moreButton; + private final EditText searchView; + private final RecyclerView recyclerView; + private final TextView noResults; + private final MaterialCardView searchContainer; + private final MaterialToolbar toolbar; + + SearchViewHolder(View root) { + searchView = root.findViewById(R.id.search); + clearButton = root.findViewById(R.id.clear); + recyclerView = root.findViewById(R.id.list); + moreButton = root.findViewById(R.id.more); + noResults = root.findViewById(R.id.no_results); + searchContainer = root.findViewById(R.id.search_card); + toolbar = root.findViewById(R.id.toolbar); + } + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/SearchPreferenceResult.java b/app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/SearchPreferenceResult.java new file mode 100644 index 000000000..4e2b69970 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/SearchPreferenceResult.java @@ -0,0 +1,170 @@ +package com.drdisagree.iconify.ui.preferences.preferencesearch; + +import android.graphics.drawable.Drawable; +import android.graphics.drawable.RippleDrawable; +import android.os.Handler; +import android.os.Looper; +import android.util.Log; +import android.view.View; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.core.view.ViewCompat; +import androidx.fragment.app.FragmentManager; +import androidx.preference.Preference; +import androidx.preference.PreferenceFragmentCompat; +import androidx.preference.PreferenceGroup; +import androidx.recyclerview.widget.RecyclerView; + +import com.drdisagree.iconify.R; +import com.google.android.material.appbar.AppBarLayout; + +import java.util.Objects; + +public class SearchPreferenceResult { + private final String key; + private final int file; + private final String screen; + + SearchPreferenceResult(String key, int file, String screen) { + this.key = key; + this.file = file; + this.screen = screen; + } + + public static void highlight(final PreferenceFragmentCompat prefsFragment, final String key) { + new Handler(Looper.getMainLooper()).post(() -> doHighlight(prefsFragment, key)); + } + + private static void doHighlight(final PreferenceFragmentCompat prefsFragment, final String key) { + final Preference prefResult = prefsFragment.findPreference(key); + + if (prefResult == null) { + Log.w("doHighlight", "Preference with key " + key + " not found on given screen " + prefsFragment.getClass().getSimpleName() + "."); + return; + } + + final RecyclerView recyclerView = prefsFragment.getListView(); + final RecyclerView.Adapter adapter = recyclerView.getAdapter(); + + if (adapter instanceof PreferenceGroup.PreferencePositionCallback callback) { + final int position = callback.getPreferenceAdapterPosition(prefResult); + + if (prefsFragment.getView() != null && prefsFragment.getView().findViewById(R.id.collapsing_toolbar) != null) { + AppBarLayout appBarLayout = (AppBarLayout) prefsFragment.getView().findViewById(R.id.collapsing_toolbar).getParent(); + appBarLayout.setExpanded(false); + } + + if (position != RecyclerView.NO_POSITION) { + recyclerView.post(() -> recyclerView.scrollToPosition(position)); + + recyclerView.postDelayed(() -> { + RecyclerView.ViewHolder holder = recyclerView.findViewHolderForAdapterPosition(position); + if (holder != null) { + Drawable background = holder.itemView.getBackground(); + if (background instanceof RippleDrawable) { + forceRippleAnimation((RippleDrawable) background); + return; + } + } + highlightFallback(prefsFragment, prefResult); + }, 200); + return; + } + } + + highlightFallback(prefsFragment, prefResult); + } + + /** + * Alternative (old) highlight method if ripple does not work + */ + private static void highlightFallback(PreferenceFragmentCompat prefsFragment, final Preference prefResult) { + prefsFragment.scrollToPreference(prefResult); + + new Handler(Looper.getMainLooper()).postDelayed(() -> { + try { + final RecyclerView recyclerView = prefsFragment.getListView(); + final RecyclerView.Adapter adapter = recyclerView.getAdapter(); + + if (adapter instanceof PreferenceGroup.PreferencePositionCallback callback) { + final int position = callback.getPreferenceAdapterPosition(prefResult); + + if (prefsFragment.getView() != null && prefsFragment.getView().findViewById(R.id.collapsing_toolbar) != null) { + AppBarLayout appBarLayout = (AppBarLayout) prefsFragment.getView().findViewById(R.id.collapsing_toolbar).getParent(); + appBarLayout.setExpanded(false); + } + + if (position != RecyclerView.NO_POSITION) { + recyclerView.post(() -> recyclerView.scrollToPosition(position)); + + recyclerView.postDelayed(() -> { + RecyclerView.ViewHolder holder = recyclerView.findViewHolderForAdapterPosition(position); + if (holder != null) { + Drawable background = holder.itemView.getBackground(); + if (background instanceof RippleDrawable) { + forceRippleAnimation((RippleDrawable) background); + } + } + }, 200); + } + } + } catch (Exception e) { + Log.e("highlightFallback", "Failed to highlight preference", e); + } + }, 400); + } + + protected static void forceRippleAnimation(RippleDrawable background) { + final RippleDrawable rippleDrawable = background; + rippleDrawable.setState(new int[]{android.R.attr.state_pressed, android.R.attr.state_enabled}); + new Handler(Looper.getMainLooper()).postDelayed(() -> rippleDrawable.setState(new int[]{}), 300); + } + + /** + * Returns the key of the preference pressed + * + * @return The key + */ + public String getKey() { + return key; + } + + /** + * Returns the file in which the result was found + * + * @return The file in which the result was found + */ + public int getResourceFile() { + return file; + } + + /** + * Returns the screen in which the result was found + * + * @return The screen in which the result was found + */ + public String getScreen() { + return screen; + } + + /** + * Highlight the preference that was found + * + * @param prefsFragment Fragment that contains the preference + */ + @SuppressWarnings("unused") + public void highlight(final PreferenceFragmentCompat prefsFragment) { + new Handler(Looper.getMainLooper()).post(() -> doHighlight(prefsFragment, getKey())); + } + + /** + * Closes the search results page + * + * @param activity The current activity + */ + @SuppressWarnings("unused") + public void closeSearchPage(AppCompatActivity activity) { + FragmentManager fm = activity.getSupportFragmentManager(); + fm.beginTransaction().remove(Objects.requireNonNull(fm.findFragmentByTag(SearchPreferenceFragment.TAG))).commit(); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/SearchPreferenceResultListener.java b/app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/SearchPreferenceResultListener.java new file mode 100644 index 000000000..368360d44 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/preferences/preferencesearch/SearchPreferenceResultListener.java @@ -0,0 +1,7 @@ +package com.drdisagree.iconify.ui.preferences.preferencesearch; + +import androidx.annotation.NonNull; + +public interface SearchPreferenceResultListener { + void onSearchResultClicked(@NonNull SearchPreferenceResult result); +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/utils/FragmentHelper.kt b/app/src/main/java/com/drdisagree/iconify/ui/utils/FragmentHelper.kt new file mode 100644 index 000000000..7d1449184 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/utils/FragmentHelper.kt @@ -0,0 +1,124 @@ +package com.drdisagree.iconify.ui.utils + +import androidx.fragment.app.Fragment +import com.drdisagree.iconify.ui.fragments.home.BrightnessBar +import com.drdisagree.iconify.ui.fragments.home.BrightnessBarPixel +import com.drdisagree.iconify.ui.fragments.home.CellularIcons +import com.drdisagree.iconify.ui.fragments.home.Home +import com.drdisagree.iconify.ui.fragments.home.IconPack +import com.drdisagree.iconify.ui.fragments.home.IconShape +import com.drdisagree.iconify.ui.fragments.home.MediaIcons +import com.drdisagree.iconify.ui.fragments.home.Notification +import com.drdisagree.iconify.ui.fragments.home.NotificationPixel +import com.drdisagree.iconify.ui.fragments.home.ProgressBar +import com.drdisagree.iconify.ui.fragments.home.QsPanelTile +import com.drdisagree.iconify.ui.fragments.home.QsPanelTilePixel +import com.drdisagree.iconify.ui.fragments.home.SettingsIcons +import com.drdisagree.iconify.ui.fragments.home.Switch +import com.drdisagree.iconify.ui.fragments.home.ToastFrame +import com.drdisagree.iconify.ui.fragments.home.WiFiIcons +import com.drdisagree.iconify.ui.fragments.settings.AppUpdates +import com.drdisagree.iconify.ui.fragments.settings.Changelog +import com.drdisagree.iconify.ui.fragments.settings.Credits +import com.drdisagree.iconify.ui.fragments.settings.Experimental +import com.drdisagree.iconify.ui.fragments.settings.Settings +import com.drdisagree.iconify.ui.fragments.tweaks.BasicColors +import com.drdisagree.iconify.ui.fragments.tweaks.ColorEngine +import com.drdisagree.iconify.ui.fragments.tweaks.ColoredBattery +import com.drdisagree.iconify.ui.fragments.tweaks.MediaPlayer +import com.drdisagree.iconify.ui.fragments.tweaks.Miscellaneous +import com.drdisagree.iconify.ui.fragments.tweaks.MonetEngine +import com.drdisagree.iconify.ui.fragments.tweaks.NavigationBar +import com.drdisagree.iconify.ui.fragments.tweaks.QsIconLabel +import com.drdisagree.iconify.ui.fragments.tweaks.QsPanelMargin +import com.drdisagree.iconify.ui.fragments.tweaks.QsRowColumn +import com.drdisagree.iconify.ui.fragments.tweaks.QsTileSize +import com.drdisagree.iconify.ui.fragments.tweaks.Statusbar +import com.drdisagree.iconify.ui.fragments.tweaks.Tweaks +import com.drdisagree.iconify.ui.fragments.tweaks.UiRoundness +import com.drdisagree.iconify.ui.fragments.tweaks.VolumePanel +import com.drdisagree.iconify.ui.fragments.xposed.BackgroundChip +import com.drdisagree.iconify.ui.fragments.xposed.BatteryStyle +import com.drdisagree.iconify.ui.fragments.xposed.DepthWallpaper +import com.drdisagree.iconify.ui.fragments.xposed.HeaderClock +import com.drdisagree.iconify.ui.fragments.xposed.HeaderImage +import com.drdisagree.iconify.ui.fragments.xposed.LockscreenClock +import com.drdisagree.iconify.ui.fragments.xposed.LockscreenWeather +import com.drdisagree.iconify.ui.fragments.xposed.LockscreenWidget +import com.drdisagree.iconify.ui.fragments.xposed.Others +import com.drdisagree.iconify.ui.fragments.xposed.QuickSettings +import com.drdisagree.iconify.ui.fragments.xposed.Themes +import com.drdisagree.iconify.ui.fragments.xposed.TransparencyBlur +import com.drdisagree.iconify.ui.fragments.xposed.Xposed + +object FragmentHelper { + + fun isInGroup(fragment: Fragment, group: Int): Boolean { + return when (group) { + 0 -> { + fragment is Home || + fragment is IconPack || + fragment is ColoredBattery || + fragment is MediaIcons || + fragment is SettingsIcons || + fragment is CellularIcons || + fragment is WiFiIcons || + fragment is BrightnessBar || + fragment is BrightnessBarPixel || + fragment is QsPanelTile || + fragment is QsPanelTilePixel || + fragment is Notification || + fragment is NotificationPixel || + fragment is ProgressBar || + fragment is Switch || + fragment is ToastFrame || + fragment is IconShape + } + + 1 -> { + fragment is Tweaks || + fragment is ColorEngine || + fragment is BasicColors || + fragment is MonetEngine || + fragment is UiRoundness || + fragment is QsRowColumn || + fragment is QsIconLabel || + fragment is QsTileSize || + fragment is QsPanelMargin || + fragment is Statusbar || + fragment is NavigationBar || + fragment is MediaPlayer || + fragment is VolumePanel || + fragment is Miscellaneous + } + + 2 -> { + fragment is Xposed || + fragment is TransparencyBlur || + fragment is QuickSettings || + fragment is Themes || + fragment is BatteryStyle || + fragment is com.drdisagree.iconify.ui.fragments.xposed.Statusbar || + fragment is com.drdisagree.iconify.ui.fragments.xposed.VolumePanel || + fragment is HeaderImage || + fragment is HeaderClock || + fragment is LockscreenClock || + fragment is LockscreenWeather || + fragment is LockscreenWidget || + fragment is DepthWallpaper || + fragment is BackgroundChip || + fragment is Others + } + + 3 -> { + fragment is Settings || + fragment is AppUpdates || + fragment is Changelog || + fragment is Credits || + fragment is Experimental + } + + else -> false + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/ui/utils/SnapOnScrollListener.java b/app/src/main/java/com/drdisagree/iconify/ui/utils/SnapOnScrollListener.java new file mode 100644 index 000000000..d6b1ed4bb --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/ui/utils/SnapOnScrollListener.java @@ -0,0 +1,72 @@ +package com.drdisagree.iconify.ui.utils; + +import android.view.View; + +import androidx.recyclerview.widget.RecyclerView; +import androidx.recyclerview.widget.SnapHelper; + +public class SnapOnScrollListener extends RecyclerView.OnScrollListener { + private final SnapHelper snapHelper; + private Behavior behavior = Behavior.NOTIFY_ON_SCROLL; + private OnSnapPositionChangeListener onSnapPositionChangeListener; + + private int snapPosition = RecyclerView.NO_POSITION; + + public SnapOnScrollListener(SnapHelper snapHelper) { + this.snapHelper = snapHelper; + } + + public SnapOnScrollListener(SnapHelper snapHelper, Behavior behavior, OnSnapPositionChangeListener onSnapPositionChangeListener) { + this.snapHelper = snapHelper; + this.behavior = behavior; + this.onSnapPositionChangeListener = onSnapPositionChangeListener; + } + + @Override + public void onScrolled(RecyclerView recyclerView, int dx, int dy) { + if (behavior == Behavior.NOTIFY_ON_SCROLL) { + maybeNotifySnapPositionChange(recyclerView); + } + } + + @Override + public void onScrollStateChanged(RecyclerView recyclerView, int newState) { + if (behavior == Behavior.NOTIFY_ON_SCROLL_STATE_IDLE + && newState == RecyclerView.SCROLL_STATE_IDLE) { + maybeNotifySnapPositionChange(recyclerView); + } + } + + private void maybeNotifySnapPositionChange(RecyclerView recyclerView) { + int snapPosition = getSnapPosition(recyclerView); + boolean snapPositionChanged = this.snapPosition != snapPosition; + if (snapPositionChanged) { + if (onSnapPositionChangeListener != null) { + onSnapPositionChangeListener.onSnapPositionChange(snapPosition); + } + this.snapPosition = snapPosition; + } + } + + public int getSnapPosition(RecyclerView recyclerView) { + RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager(); + if (layoutManager == null) { + return RecyclerView.NO_POSITION; + } + View snapView = snapHelper.findSnapView(layoutManager); + if (snapView == null) { + return RecyclerView.NO_POSITION; + } + return layoutManager.getPosition(snapView); + } + + + public enum Behavior { + NOTIFY_ON_SCROLL, + NOTIFY_ON_SCROLL_STATE_IDLE + } + + public interface OnSnapPositionChangeListener { + void onSnapPositionChange(int position); + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/ui/utils/ThemeHelper.kt b/app/src/main/java/com/drdisagree/iconify/ui/utils/ThemeHelper.kt index 2fdba8699..e739d6cc7 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/utils/ThemeHelper.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/utils/ThemeHelper.kt @@ -2,13 +2,14 @@ package com.drdisagree.iconify.ui.utils import androidx.appcompat.app.AppCompatDelegate import com.drdisagree.iconify.common.Preferences.APP_THEME -import com.drdisagree.iconify.config.Prefs.getInt +import com.drdisagree.iconify.config.RPrefs object ThemeHelper { val theme: Int get() { - val theme = getInt(APP_THEME, 2) + val theme = RPrefs.getString(APP_THEME, "2")!!.toInt() + return when (theme) { 0 -> AppCompatDelegate.MODE_NIGHT_NO 1 -> AppCompatDelegate.MODE_NIGHT_YES diff --git a/app/src/main/java/com/drdisagree/iconify/ui/utils/ViewHelper.kt b/app/src/main/java/com/drdisagree/iconify/ui/utils/ViewHelper.kt index 9aca64d14..04197e037 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/utils/ViewHelper.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/utils/ViewHelper.kt @@ -76,11 +76,15 @@ object ViewHelper { } } - fun setHeader(context: Context, toolbar: Toolbar, title: Int) { + fun setHeader(context: Context, toolbar: Toolbar, title: Any) { (context as AppCompatActivity).setSupportActionBar(toolbar) context.supportActionBar?.setDisplayHomeAsUpEnabled(true) context.supportActionBar?.setDisplayShowHomeEnabled(true) - toolbar.setTitle(title) + if (title is Int) { + toolbar.setTitle(title) + } else if (title is String) { + toolbar.setTitle(title) + } } fun setHeader( @@ -89,7 +93,21 @@ object ViewHelper { toolbar: Toolbar, title: Int ) { - toolbar.setTitle(context.resources.getString(title)) + setHeader( + context, + fragmentManager, + toolbar, + context.resources.getString(title) + ) + } + + fun setHeader( + context: Context, + fragmentManager: FragmentManager, + toolbar: Toolbar, + title: String + ) { + toolbar.setTitle(title) (context as AppCompatActivity).setSupportActionBar(toolbar) context.supportActionBar?.setDisplayHomeAsUpEnabled(true) context.supportActionBar?.setDisplayShowHomeEnabled(true) @@ -180,6 +198,7 @@ object ViewHelper { batteryDrawables[2] = getRotateDrawable(batteryIcon, -90f) } } + return batteryDrawables } diff --git a/app/src/main/java/com/drdisagree/iconify/ui/views/OnboardingView.kt b/app/src/main/java/com/drdisagree/iconify/ui/views/OnboardingView.kt index 6f8cd4995..36da797a0 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/views/OnboardingView.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/views/OnboardingView.kt @@ -30,13 +30,12 @@ import com.drdisagree.iconify.common.Preferences.UPDATE_DETECTED import com.drdisagree.iconify.common.Preferences.VER_CODE import com.drdisagree.iconify.common.Preferences.XPOSED_ONLY_MODE import com.drdisagree.iconify.common.Resources -import com.drdisagree.iconify.config.Prefs -import com.drdisagree.iconify.config.Prefs.clearPref -import com.drdisagree.iconify.config.Prefs.getBoolean -import com.drdisagree.iconify.config.Prefs.getInt -import com.drdisagree.iconify.config.Prefs.putBoolean -import com.drdisagree.iconify.config.Prefs.putInt import com.drdisagree.iconify.config.RPrefs +import com.drdisagree.iconify.config.RPrefs.clearPref +import com.drdisagree.iconify.config.RPrefs.getBoolean +import com.drdisagree.iconify.config.RPrefs.getInt +import com.drdisagree.iconify.config.RPrefs.putBoolean +import com.drdisagree.iconify.config.RPrefs.putInt import com.drdisagree.iconify.databinding.ViewOnboardingPageBinding import com.drdisagree.iconify.ui.activities.MainActivity import com.drdisagree.iconify.ui.adapters.OnboardingAdapter @@ -213,7 +212,7 @@ class OnboardingView : FrameLayout { if (getInt(VER_CODE) != BuildConfig.VERSION_CODE || !moduleExists || !overlayExists) { if (!moduleExists || !overlayExists) { - Prefs.clearAllPrefs() + RPrefs.clearAllPrefs() RPrefs.clearAllPrefs() } @@ -271,7 +270,7 @@ class OnboardingView : FrameLayout { }, (if (clickedButton) 10 else 1000).toLong()) } else { if (!moduleExists()) { - Prefs.clearAllPrefs() + RPrefs.clearAllPrefs() RPrefs.clearAllPrefs() handleInstallation() diff --git a/app/src/main/java/com/drdisagree/iconify/ui/widgets/ColorPickerWidget.kt b/app/src/main/java/com/drdisagree/iconify/ui/widgets/ColorPickerWidget.kt index 9fa58cef6..3f0e0cedf 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/widgets/ColorPickerWidget.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/widgets/ColorPickerWidget.kt @@ -53,18 +53,18 @@ class ColorPickerWidget : RelativeLayout { private fun init(context: Context, attrs: AttributeSet?) { inflate(context, R.layout.view_widget_colorpicker, this) - + initializeId() - + val typedArray = context.obtainStyledAttributes(attrs, R.styleable.ColorPickerWidget) - + setTitle(typedArray.getString(R.styleable.ColorPickerWidget_titleText)) setSummary(typedArray.getString(R.styleable.ColorPickerWidget_summaryText)) val colorResId = typedArray.getResourceId(R.styleable.ColorPickerWidget_previewColor, -1) selectedColor = typedArray.getColor(R.styleable.ColorPickerWidget_previewColor, Color.WHITE) - + typedArray.recycle() - + if (colorResId != -1) { previewColor = ContextCompat.getColor(getContext(), colorResId) } @@ -80,10 +80,20 @@ class ColorPickerWidget : RelativeLayout { fun setSummary(summaryResId: Int) { summaryTextView.setText(summaryResId) + if (summaryResId == 0) { + summaryTextView.visibility = View.GONE + } else { + summaryTextView.visibility = View.VISIBLE + } } fun setSummary(summary: String?) { summaryTextView.text = summary + if (summary.isNullOrEmpty()) { + summaryTextView.visibility = View.GONE + } else { + summaryTextView.visibility = View.VISIBLE + } } fun setColorPickerListener( diff --git a/app/src/main/java/com/drdisagree/iconify/ui/widgets/RadioDialogWidget.kt b/app/src/main/java/com/drdisagree/iconify/ui/widgets/RadioDialogWidget.kt index 3d8fa94f7..e915a7d4c 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/widgets/RadioDialogWidget.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/widgets/RadioDialogWidget.kt @@ -56,7 +56,14 @@ class RadioDialogWidget : RelativeLayout, RadioDialog.RadioDialogListener { showSelectedPrefix = typedArray.getBoolean(R.styleable.RadioDialogWidget_showSelectedPrefix, true) titleResId = typedArray.getResourceId(R.styleable.RadioDialogWidget_titleText, 0) - setTitle(titleResId) + if (titleResId != 0) { + setTitle(titleResId) + } else { + val title = typedArray.getString(R.styleable.RadioDialogWidget_titleText) + if (title != null) { + setTitle(title) + } + } arrayResId = typedArray.getResourceId(R.styleable.RadioDialogWidget_entries, 0) if (arrayResId != 0) { try { diff --git a/app/src/main/java/com/drdisagree/iconify/ui/widgets/SliderWidget.kt b/app/src/main/java/com/drdisagree/iconify/ui/widgets/SliderWidget.kt index caf3801cf..4b4b9802a 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/widgets/SliderWidget.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/widgets/SliderWidget.kt @@ -9,6 +9,7 @@ import android.widget.LinearLayout import android.widget.RelativeLayout import android.widget.TextView import com.drdisagree.iconify.R +import com.google.android.material.button.MaterialButton import com.google.android.material.slider.Slider import kotlinx.parcelize.Parcelize import kotlinx.parcelize.RawValue @@ -21,7 +22,7 @@ class SliderWidget : RelativeLayout { private lateinit var titleTextView: TextView private lateinit var summaryTextView: TextView private lateinit var materialSlider: Slider - private lateinit var resetIcon: ImageView + private lateinit var resetButton: MaterialButton private var valueFormat: String? = "" private var defaultValue = 0 private var outputScale = 1f @@ -78,7 +79,6 @@ class SliderWidget : RelativeLayout { } setSelectedText() - handleResetVisibility() setOnSliderTouchListener(null) setResetClickListener(null) } @@ -117,7 +117,6 @@ class SliderWidget : RelativeLayout { set(value) { materialSlider.value = value.toFloat() setSelectedText() - handleResetVisibility() } fun setSliderValueFrom(value: Int) { @@ -153,7 +152,6 @@ class SliderWidget : RelativeLayout { override fun onStopTrackingTouch(slider: Slider) { setSelectedText() - handleResetVisibility() notifyOnSliderTouchStopped(slider) } }) @@ -175,21 +173,19 @@ class SliderWidget : RelativeLayout { fun setResetClickListener(listener: OnLongClickListener?) { resetClickListener = listener - resetIcon.setOnLongClickListener { v: View -> + resetButton.setOnClickListener { v: View -> if (defaultValue == Int.MAX_VALUE) { - return@setOnLongClickListener false + return@setOnClickListener } sliderValue = defaultValue - handleResetVisibility() notifyOnResetClicked(v) - true } } fun resetSlider() { - resetIcon.performLongClick() + resetButton.performLongClick() } private fun notifyOnSliderTouchStarted(slider: Slider) { @@ -204,21 +200,13 @@ class SliderWidget : RelativeLayout { resetClickListener?.onLongClick(v) } - private fun handleResetVisibility() { - if (defaultValue != Int.MAX_VALUE && materialSlider.value != defaultValue.toFloat()) { - resetIcon.setVisibility(VISIBLE) - } else { - resetIcon.setVisibility(GONE) - } - } - override fun setEnabled(enabled: Boolean) { super.setEnabled(enabled) container.setEnabled(enabled) titleTextView.setEnabled(enabled) summaryTextView.setEnabled(enabled) - resetIcon.setEnabled(enabled) + resetButton.setEnabled(enabled) materialSlider.isEnabled = enabled } @@ -228,12 +216,12 @@ class SliderWidget : RelativeLayout { titleTextView = findViewById(R.id.title) summaryTextView = findViewById(R.id.summary) materialSlider = findViewById(R.id.slider_widget) - resetIcon = findViewById(R.id.reset) + resetButton = findViewById(R.id.reset_button) container.setId(generateViewId()) titleTextView.setId(generateViewId()) summaryTextView.setId(generateViewId()) materialSlider.setId(generateViewId()) - resetIcon.setId(generateViewId()) + resetButton.setId(generateViewId()) } override fun onSaveInstanceState(): Parcelable { @@ -249,7 +237,6 @@ class SliderWidget : RelativeLayout { super.onRestoreInstanceState(state.superState) materialSlider.value = state.sliderValue setSelectedText() - handleResetVisibility() } @Parcelize diff --git a/app/src/main/java/com/drdisagree/iconify/ui/widgets/SwitchWidget.kt b/app/src/main/java/com/drdisagree/iconify/ui/widgets/SwitchWidget.kt index 1a707bc07..7eee784c7 100644 --- a/app/src/main/java/com/drdisagree/iconify/ui/widgets/SwitchWidget.kt +++ b/app/src/main/java/com/drdisagree/iconify/ui/widgets/SwitchWidget.kt @@ -83,10 +83,20 @@ class SwitchWidget : RelativeLayout { fun setSummary(summaryResId: Int) { summaryTextView.setText(summaryResId) + if (summaryResId == 0) { + summaryTextView.visibility = GONE + } else { + summaryTextView.visibility = VISIBLE + } } fun setSummary(summary: String?) { summaryTextView.text = summary + if (summary.isNullOrEmpty()) { + summaryTextView.visibility = GONE + } else { + summaryTextView.visibility = VISIBLE + } } fun setIcon(icon: Int) { diff --git a/app/src/main/java/com/drdisagree/iconify/utils/FileUtil.kt b/app/src/main/java/com/drdisagree/iconify/utils/FileUtil.kt index 8992e7db2..2c0625f5e 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/FileUtil.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/FileUtil.kt @@ -8,6 +8,8 @@ import android.provider.OpenableColumns import androidx.activity.result.ActivityResultLauncher import com.drdisagree.iconify.Iconify.Companion.appContext import com.drdisagree.iconify.common.Resources +import com.drdisagree.iconify.utils.SystemUtil.hasStoragePermission +import com.drdisagree.iconify.utils.SystemUtil.requestStoragePermission import com.topjohnwu.superuser.Shell import java.io.File import java.io.FileOutputStream @@ -150,6 +152,40 @@ object FileUtil { ).exec().isSuccess } + fun launchFilePicker( + context: Context, + type: String?, + launcher: ActivityResultLauncher + ) { + if (!hasStoragePermission()) { + requestStoragePermission(context) + } else { + var fileType = "*/*" + + if (type.isNullOrEmpty() || type == "all") { + fileType = "*/*" + } else if (type == "image") { + fileType = "image/*" + } else if (type == "font") { + fileType = "font/*" + } else if (type == "video") { + fileType = "video/*" + } else if (type == "audio") { + fileType = "audio/*" + } else if (type == "pdf") { + fileType = "application/pdf" + } else if (type == "text") { + fileType = "text/*" + } else if (type == "zip") { + fileType = "application/zip" + } else if (type == "apk") { + fileType = "application/vnd.android.package-archive" + } + + launchFilePicker(launcher, fileType) + } + } + fun launchFilePicker(launcher: ActivityResultLauncher, type: String?) { val chooseFile = Intent(Intent.ACTION_GET_CONTENT) chooseFile.addCategory(Intent.CATEGORY_OPENABLE) diff --git a/app/src/main/java/com/drdisagree/iconify/utils/MiscUtil.kt b/app/src/main/java/com/drdisagree/iconify/utils/MiscUtil.kt new file mode 100644 index 000000000..82a62af2f --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/utils/MiscUtil.kt @@ -0,0 +1,41 @@ +package com.drdisagree.iconify.utils + +import android.content.Context +import com.drdisagree.iconify.R +import com.google.android.material.dialog.MaterialAlertDialogBuilder + +object MiscUtil { + + @JvmStatic + fun showAlertDialog( + context: Context, + restartSystemUI: Boolean = false, + restartDevice: Boolean = false, + switchTheme: Boolean = false, + rotateDevice: Boolean = false + ) { + val title = when { + restartSystemUI -> R.string.systemui_restart_required_title + restartDevice -> R.string.device_restart_required_title + switchTheme -> R.string.switch_theme_required_title + rotateDevice -> R.string.device_rotation_required_title + else -> R.string.systemui_restart_required_title + } + val message = when { + restartSystemUI -> R.string.systemui_restart_required_desc + restartDevice -> R.string.device_restart_required_desc + switchTheme -> R.string.switch_theme_required_desc + rotateDevice -> R.string.device_rotation_required_desc + else -> R.string.systemui_restart_required_desc + } + + MaterialAlertDialogBuilder(context) + .setTitle(context.getString(title)) + .setMessage(context.getString(message)) + .setPositiveButton(android.R.string.ok) { dialog, _ -> + dialog.dismiss() + } + .setCancelable(true) + .show() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/utils/ModuleUtil.kt b/app/src/main/java/com/drdisagree/iconify/utils/ModuleUtil.kt index a31219fc5..3bc300cc6 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/ModuleUtil.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/ModuleUtil.kt @@ -14,7 +14,7 @@ import com.drdisagree.iconify.common.Preferences.RESTART_SYSUI_AFTER_BOOT import com.drdisagree.iconify.common.References.ICONIFY_COLOR_ACCENT_PRIMARY import com.drdisagree.iconify.common.References.ICONIFY_COLOR_ACCENT_SECONDARY import com.drdisagree.iconify.common.Resources -import com.drdisagree.iconify.config.Prefs +import com.drdisagree.iconify.config.RPrefs import com.drdisagree.iconify.utils.helper.BackupRestore.backupFiles import com.drdisagree.iconify.utils.helper.BinaryInstaller.symLinkBinaries import com.drdisagree.iconify.utils.overlay.FabricatedUtil @@ -78,7 +78,7 @@ object ModuleUtil { "done\n" + "sleep 3\n\n" + "${ - if (Prefs.getBoolean( + if (RPrefs.getBoolean( RESTART_SYSUI_AFTER_BOOT, false ) @@ -149,11 +149,11 @@ object ModuleUtil { if (value is Boolean && value && key.startsWith("fabricated")) { val name = key.replace("fabricated", "") val commands = FabricatedUtil.buildCommands( - Prefs.getString("FOCMDtarget$name")!!, - Prefs.getString("FOCMDname$name")!!, - Prefs.getString("FOCMDtype$name")!!, - Prefs.getString("FOCMDresourceName$name")!!, - Prefs.getString("FOCMDval$name")!! + RPrefs.getString("FOCMDtarget$name")!!, + RPrefs.getString("FOCMDname$name")!!, + RPrefs.getString("FOCMDtype$name")!!, + RPrefs.getString("FOCMDresourceName$name")!!, + RPrefs.getString("FOCMDval$name")!! ) postExec.append(commands[0]).append('\n').append(commands[1]).append('\n') diff --git a/app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.kt b/app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.kt index 51b91043c..72390b6cc 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/OmniJawsClient.kt @@ -49,7 +49,7 @@ class OmniJawsClient(private val mContext: Context) { var temp: String? = null var humidity: String? = null var condition: String? = null - var timeStamp: Long? = null + var timeStamp: Long = 0 var forecasts: List? = null var tempUnits: String? = null var windUnits: String? = null @@ -58,14 +58,14 @@ class OmniJawsClient(private val mContext: Context) { var iconPack: String? = null override fun toString(): String { - return city + ":" + Date(timeStamp!!) + ": " + windSpeed + ":" + windDirection + ":" + conditionCode + ":" + temp + ":" + humidity + ":" + condition + ":" + tempUnits + ":" + windUnits + ": " + forecasts + ": " + iconPack + return city + ":" + Date(timeStamp) + ": " + windSpeed + ":" + windDirection + ":" + conditionCode + ":" + temp + ":" + humidity + ":" + condition + ":" + tempUnits + ":" + windUnits + ": " + forecasts + ": " + iconPack } val lastUpdateTime: String get() { val hourFormat = if (DateFormat.is24HourFormat(mContext)) "HH" else "hh" val sdf = SimpleDateFormat("$hourFormat:mm:ss", Locale.getDefault()) - return sdf.format(Date(timeStamp!!)) + return sdf.format(Date(timeStamp)) } } diff --git a/app/src/main/java/com/drdisagree/iconify/utils/SystemUtil.kt b/app/src/main/java/com/drdisagree/iconify/utils/SystemUtil.kt index d5a630d0b..2967f0ffd 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/SystemUtil.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/SystemUtil.kt @@ -22,9 +22,9 @@ import com.drdisagree.iconify.common.Preferences.RESTART_SYSUI_BEHAVIOR_EXT import com.drdisagree.iconify.common.Preferences.VER_CODE import com.drdisagree.iconify.common.References.DEVICE_BOOT_ID_CMD import com.drdisagree.iconify.common.Resources -import com.drdisagree.iconify.config.Prefs -import com.drdisagree.iconify.config.Prefs.putString import com.drdisagree.iconify.config.RPrefs +import com.drdisagree.iconify.config.RPrefs.getString +import com.drdisagree.iconify.config.RPrefs.putString import com.drdisagree.iconify.xposed.utils.BootLoopProtector.LOAD_TIME_KEY_KEY import com.drdisagree.iconify.xposed.utils.BootLoopProtector.PACKAGE_STRIKE_KEY_KEY import com.topjohnwu.superuser.Shell @@ -68,7 +68,7 @@ object SystemUtil { } fun handleSystemUIRestart() { - val selectedBehavior = RPrefs.getInt(RESTART_SYSUI_BEHAVIOR_EXT, 0) + val selectedBehavior = getString(RESTART_SYSUI_BEHAVIOR_EXT, "0")!!.toInt() when (selectedBehavior) { 0 -> { @@ -203,15 +203,18 @@ object SystemUtil { val saveBootId: Unit // Save unique id of each boot get() { - putString(BOOT_ID, Shell.cmd(DEVICE_BOOT_ID_CMD).exec().out.toString()) + val bootId = Shell.cmd(DEVICE_BOOT_ID_CMD).exec().out.toString() + if (getString(BOOT_ID) != bootId) { + putString(BOOT_ID, bootId) + } } fun saveVersionCode() { - Prefs.putInt(VER_CODE, BuildConfig.VERSION_CODE) + RPrefs.putInt(VER_CODE, BuildConfig.VERSION_CODE) } val savedVersionCode: Int - get() = Prefs.getInt(VER_CODE, -1) + get() = RPrefs.getInt(VER_CODE, -1) fun hasStoragePermission(): Boolean { return Environment.isExternalStorageManager() || Environment.isExternalStorageLegacy() diff --git a/app/src/main/java/com/drdisagree/iconify/utils/helper/ImportExport.kt b/app/src/main/java/com/drdisagree/iconify/utils/helper/ImportExport.kt index 592765bd8..63f71ddb2 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/helper/ImportExport.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/helper/ImportExport.kt @@ -1,7 +1,18 @@ package com.drdisagree.iconify.utils.helper +import android.app.Activity +import android.content.ContentResolver +import android.content.Context +import android.content.Intent import android.content.SharedPreferences +import android.os.Handler +import android.os.Looper import android.util.Log +import android.widget.Toast +import androidx.activity.result.ActivityResult +import androidx.activity.result.ActivityResultLauncher +import androidx.fragment.app.Fragment +import com.drdisagree.iconify.R import com.drdisagree.iconify.common.Const.FRAMEWORK_PACKAGE import com.drdisagree.iconify.common.Preferences.COLOR_ACCENT_PRIMARY import com.drdisagree.iconify.common.Preferences.COLOR_ACCENT_PRIMARY_LIGHT @@ -24,7 +35,11 @@ import com.drdisagree.iconify.common.References.ICONIFY_COLOR_ACCENT_PRIMARY import com.drdisagree.iconify.common.References.ICONIFY_COLOR_ACCENT_SECONDARY import com.drdisagree.iconify.common.Resources import com.drdisagree.iconify.common.Resources.MODULE_DIR +import com.drdisagree.iconify.config.RPrefs +import com.drdisagree.iconify.ui.dialogs.LoadingDialog import com.drdisagree.iconify.utils.SystemUtil +import com.drdisagree.iconify.utils.SystemUtil.hasStoragePermission +import com.drdisagree.iconify.utils.SystemUtil.requestStoragePermission import com.drdisagree.iconify.utils.color.ColorUtil.colorNames import com.drdisagree.iconify.utils.overlay.FabricatedUtil import com.drdisagree.iconify.utils.overlay.compiler.DynamicCompiler @@ -33,6 +48,7 @@ import com.drdisagree.iconify.utils.overlay.compiler.SwitchCompiler import com.drdisagree.iconify.utils.overlay.manager.MonetEngineManager import com.drdisagree.iconify.utils.overlay.manager.RoundnessManager import com.drdisagree.iconify.utils.overlay.manager.SettingsIconResourceManager +import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.topjohnwu.superuser.Shell import java.io.IOException import java.io.InputStream @@ -40,9 +56,142 @@ import java.io.ObjectInputStream import java.io.ObjectOutputStream import java.io.OutputStream import java.util.Objects +import java.util.concurrent.Executors object ImportExport { + fun importSettings( + fragment: Fragment, + activityIntent: ActivityResultLauncher + ) { + importExportSettings( + fragment = fragment, + export = false, + startExportActivityIntent = null, + startImportActivityIntent = activityIntent + ) + } + + fun exportSettings( + fragment: Fragment, + activityIntent: ActivityResultLauncher + ) { + importExportSettings( + fragment = fragment, + export = true, + startExportActivityIntent = activityIntent, + startImportActivityIntent = null + ) + } + + private fun importExportSettings( + fragment: Fragment, + export: Boolean, + startExportActivityIntent: ActivityResultLauncher? = null, + startImportActivityIntent: ActivityResultLauncher? = null + ) { + if (!hasStoragePermission()) { + requestStoragePermission(fragment.requireContext()) + } else { + val fileIntent = Intent().apply { + action = if (export) Intent.ACTION_CREATE_DOCUMENT else Intent.ACTION_GET_CONTENT + type = "*/*" + putExtra(Intent.EXTRA_TITLE, "configs.iconify") + } + + if (export) { + startExportActivityIntent!!.launch(fileIntent) + } else { + startImportActivityIntent!!.launch(fileIntent) + } + } + } + + fun handleExportResult( + result: ActivityResult, + context: Context, + contentResolver: ContentResolver + ) { + if (result.resultCode == Activity.RESULT_OK) { + val data = result.data ?: return + + Executors.newSingleThreadExecutor().execute { + try { + exportSettings( + RPrefs.getPrefs, + contentResolver.openOutputStream(data.data!!)!! + ) + + Handler(Looper.getMainLooper()).post { + Toast.makeText( + context, + context.getString(R.string.toast_export_settings_successfull), + Toast.LENGTH_SHORT + ).show() + } + } catch (exception: Exception) { + Handler(Looper.getMainLooper()).post { + Toast.makeText( + context, + context.getString(R.string.toast_error), + Toast.LENGTH_SHORT + ).show() + Log.e("Settings", "Error exporting settings", exception) + } + } + } + } + } + + fun handleImportResult( + result: ActivityResult, + fragment: Fragment, + loadingDialog: LoadingDialog + ) { + if (result.resultCode == Activity.RESULT_OK) { + val data = result.data ?: return + MaterialAlertDialogBuilder(fragment.requireContext()) + .setTitle(fragment.getString(R.string.import_settings_confirmation_title)) + .setMessage(fragment.getString(R.string.import_settings_confirmation_desc)) + .setPositiveButton(fragment.getString(R.string.btn_positive)) { dialog, _ -> + dialog.dismiss() + loadingDialog.show(fragment.getString(R.string.loading_dialog_wait)) + Executors.newSingleThreadExecutor().execute { + try { + val success = importSettings( + RPrefs.getPrefs, + fragment.requireContext().contentResolver.openInputStream(data.data!!)!!, + true + ) + Handler(Looper.getMainLooper()).post { + loadingDialog.hide() + Toast.makeText( + fragment.requireContext(), + if (success) fragment.getString(R.string.toast_import_settings_successfull) + else fragment.getString(R.string.toast_error), + Toast.LENGTH_SHORT + ).show() + } + } catch (exception: Exception) { + Handler(Looper.getMainLooper()).post { + loadingDialog.hide() + Toast.makeText( + fragment.requireContext(), + fragment.getString(R.string.toast_error), + Toast.LENGTH_SHORT + ).show() + Log.e("Settings", "Error importing settings", exception) + } + } + } + } + .setNegativeButton(fragment.getString(R.string.btn_negative)) { dialog, _ -> + dialog.dismiss() + } + .show() + } + } + fun exportSettings(preferences: SharedPreferences, outputStream: OutputStream) { try { outputStream.use { @@ -264,10 +413,9 @@ object ImportExport { key.contains("IconifyComponentCR") && !cornerRadius -> { // UI Roundness cornerRadius = true try { - val radius = - Objects.requireNonNull(map[UI_CORNER_RADIUS]) as Int + val radius = map[UI_CORNER_RADIUS] as Int? - RoundnessManager.buildOverlay(radius, false) + radius?.let { RoundnessManager.buildOverlay(it, false) } } catch (exception: Exception) { Log.e( "ImportSettings", diff --git a/app/src/main/java/com/drdisagree/iconify/utils/helper/LocaleHelper.kt b/app/src/main/java/com/drdisagree/iconify/utils/helper/LocaleHelper.kt index 952535b17..d75c0de31 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/helper/LocaleHelper.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/helper/LocaleHelper.kt @@ -4,15 +4,15 @@ import android.content.Context import android.os.LocaleList import com.drdisagree.iconify.R import com.drdisagree.iconify.common.Preferences.APP_LANGUAGE -import com.drdisagree.iconify.config.Prefs.getString +import com.drdisagree.iconify.config.RPrefs.getString import java.util.Locale object LocaleHelper { fun setLocale(context: Context): Context { - var localeCode = getString(APP_LANGUAGE, "") + var localeCode = getString(APP_LANGUAGE, "")!! - if (localeCode!!.isEmpty()) { + if (localeCode.isEmpty()) { val locales = context.resources.configuration.getLocales() val localeCodes = listOf(*context.resources.getStringArray(R.array.locale_code)) @@ -27,7 +27,7 @@ object LocaleHelper { } } - if (localeCode!!.isEmpty()) { + if (localeCode.isEmpty()) { localeCode = "en-US" } } diff --git a/app/src/main/java/com/drdisagree/iconify/utils/overlay/FabricatedUtil.kt b/app/src/main/java/com/drdisagree/iconify/utils/overlay/FabricatedUtil.kt index 3ad092a40..333321a25 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/overlay/FabricatedUtil.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/overlay/FabricatedUtil.kt @@ -3,7 +3,7 @@ package com.drdisagree.iconify.utils.overlay import android.os.Build import android.util.TypedValue import com.drdisagree.iconify.common.Resources -import com.drdisagree.iconify.config.Prefs +import com.drdisagree.iconify.config.RPrefs import com.drdisagree.iconify.utils.helper.TypedValueUtil.createComplexDimension import com.topjohnwu.superuser.Shell @@ -36,12 +36,12 @@ object FabricatedUtil { val commands = buildCommands(target, name, type, resourceName, `val`) - Prefs.putBoolean("fabricated$name", true) - Prefs.putString("FOCMDtarget$name", target) - Prefs.putString("FOCMDname$name", name) - Prefs.putString("FOCMDtype$name", type) - Prefs.putString("FOCMDresourceName$name", resourceName) - Prefs.putString("FOCMDval$name", `val`) + RPrefs.putBoolean("fabricated$name", true) + RPrefs.putString("FOCMDtarget$name", target) + RPrefs.putString("FOCMDname$name", name) + RPrefs.putString("FOCMDtype$name", type) + RPrefs.putString("FOCMDresourceName$name", resourceName) + RPrefs.putString("FOCMDval$name", `val`) Shell.cmd( "mv " + Resources.MODULE_DIR + "/post-exec.sh " + Resources.MODULE_DIR + "/post-exec.txt; grep -v \"IconifyComponent" + name + "\" " + Resources.MODULE_DIR + "/post-exec.txt > " + Resources.MODULE_DIR + "/post-exec.txt.tmp && mv " + Resources.MODULE_DIR + "/post-exec.txt.tmp " + Resources.MODULE_DIR + "/post-exec.sh; rm -rf " + Resources.MODULE_DIR + "/post-exec.txt; rm -rf " + Resources.MODULE_DIR + "/post-exec.txt.tmp" @@ -69,12 +69,12 @@ object FabricatedUtil { arg[4] as String ) - Prefs.putBoolean("fabricated" + arg[1], true) - Prefs.putString("FOCMDtarget" + arg[1], arg[0] as String) - Prefs.putString("FOCMDname" + arg[1], arg[1] as String) - Prefs.putString("FOCMDtype" + arg[1], arg[2] as String) - Prefs.putString("FOCMDresourceName" + arg[1], arg[3] as String) - Prefs.putString("FOCMDval" + arg[1], arg[4] as String) + RPrefs.putBoolean("fabricated" + arg[1], true) + RPrefs.putString("FOCMDtarget" + arg[1], arg[0] as String) + RPrefs.putString("FOCMDname" + arg[1], arg[1] as String) + RPrefs.putString("FOCMDtype" + arg[1], arg[2] as String) + RPrefs.putString("FOCMDresourceName" + arg[1], arg[3] as String) + RPrefs.putString("FOCMDval" + arg[1], arg[4] as String) module.add("mv " + Resources.MODULE_DIR + "/post-exec.sh " + Resources.MODULE_DIR + "/post-exec.txt; grep -v \"IconifyComponent" + arg[1] + "\" " + Resources.MODULE_DIR + "/post-exec.txt > " + Resources.MODULE_DIR + "/post-exec.txt.tmp && mv " + Resources.MODULE_DIR + "/post-exec.txt.tmp " + Resources.MODULE_DIR + "/post-exec.sh; rm -rf " + Resources.MODULE_DIR + "/post-exec.txt; rm -rf " + Resources.MODULE_DIR + "/post-exec.txt.tmp") module.add("echo -e \"${tempCommands[0]}\n${tempCommands[1]}\" >> ${Resources.MODULE_DIR}/post-exec.sh") @@ -154,8 +154,8 @@ object FabricatedUtil { } fun disableOverlay(name: String) { - Prefs.putBoolean("fabricated$name", false) - Prefs.clearPrefs( + RPrefs.putBoolean("fabricated$name", false) + RPrefs.clearPrefs( "FOCMDtarget$name", "FOCMDname$name", "FOCMDtype$name", @@ -176,8 +176,8 @@ object FabricatedUtil { val command = StringBuilder() for (name in names) { - Prefs.putBoolean("fabricated$name", false) - Prefs.clearPrefs( + RPrefs.putBoolean("fabricated$name", false) + RPrefs.clearPrefs( "FOCMDtarget$name", "FOCMDname$name", "FOCMDtype$name", diff --git a/app/src/main/java/com/drdisagree/iconify/utils/overlay/OverlayUtil.kt b/app/src/main/java/com/drdisagree/iconify/utils/overlay/OverlayUtil.kt index 3b704c7de..f8701a203 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/overlay/OverlayUtil.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/overlay/OverlayUtil.kt @@ -6,7 +6,7 @@ import android.graphics.drawable.Drawable import android.util.Log import com.drdisagree.iconify.Iconify.Companion.appContext import com.drdisagree.iconify.common.Resources -import com.drdisagree.iconify.config.Prefs +import com.drdisagree.iconify.config.RPrefs import com.topjohnwu.superuser.Shell import java.util.Objects @@ -51,7 +51,7 @@ object OverlayUtil { } fun enableOverlay(pkgName: String) { - Prefs.putBoolean(pkgName, true) + RPrefs.putBoolean(pkgName, true) Shell.cmd( "cmd overlay enable --user current $pkgName", "cmd overlay set-priority $pkgName highest" @@ -59,7 +59,7 @@ object OverlayUtil { } fun enableOverlay(pkgName: String, priority: String) { - Prefs.putBoolean(pkgName, true) + RPrefs.putBoolean(pkgName, true) Shell.cmd( "cmd overlay enable --user current $pkgName", "cmd overlay set-priority $pkgName $priority" @@ -70,7 +70,7 @@ object OverlayUtil { val command = StringBuilder() for (pkgName in pkgNames) { - Prefs.putBoolean(pkgName, true) + RPrefs.putBoolean(pkgName, true) command.append("cmd overlay enable --user current ").append(pkgName) .append("; cmd overlay set-priority ").append(pkgName).append(" highest; ") @@ -80,7 +80,7 @@ object OverlayUtil { } fun enableOverlayExclusiveInCategory(pkgName: String) { - Prefs.putBoolean(pkgName, true) + RPrefs.putBoolean(pkgName, true) Shell.cmd( "cmd overlay enable-exclusive --user current --category $pkgName", "cmd overlay set-priority $pkgName highest" @@ -91,7 +91,7 @@ object OverlayUtil { val command = StringBuilder() for (pkgName in pkgNames) { - Prefs.putBoolean(pkgName, true) + RPrefs.putBoolean(pkgName, true) command.append("cmd overlay enable-exclusive --user current --category ") .append(pkgName).append("; cmd overlay set-priority ").append(pkgName) @@ -102,7 +102,7 @@ object OverlayUtil { } fun disableOverlay(pkgName: String) { - Prefs.putBoolean(pkgName, false) + RPrefs.putBoolean(pkgName, false) Shell.cmd("cmd overlay disable --user current $pkgName").submit() } @@ -110,7 +110,7 @@ object OverlayUtil { val command = StringBuilder() for (pkgName in pkgNames) { - Prefs.putBoolean(pkgName, false) + RPrefs.putBoolean(pkgName, false) command.append("cmd overlay disable --user current ").append(pkgName).append("; ") } @@ -128,7 +128,7 @@ object OverlayUtil { val pkgName = args[i] as String val state = args[i + 1] as Boolean - Prefs.putBoolean(pkgName, state) + RPrefs.putBoolean(pkgName, state) if (state) { command.append("cmd overlay enable --user current ").append(pkgName) diff --git a/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/CompilerUtil.kt b/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/CompilerUtil.kt index 534eda711..674531abd 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/CompilerUtil.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/overlay/compiler/CompilerUtil.kt @@ -156,6 +156,14 @@ object CompilerUtil { "icon_pack_sysui_style" } + "WIFI" -> { + "icon_pack_wifi_icons" + } + + "SGIC" -> { + "icon_pack_signal_icons" + } + else -> { "iconify_component_" + mPackageName.lowercase(Locale.getDefault()) } diff --git a/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/BrightnessBarManager.kt b/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/BrightnessBarManager.kt index 580164bbe..53481a8eb 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/BrightnessBarManager.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/BrightnessBarManager.kt @@ -1,7 +1,7 @@ package com.drdisagree.iconify.utils.overlay.manager import com.drdisagree.iconify.common.Dynamic.TOTAL_BRIGHTNESSBARS -import com.drdisagree.iconify.config.Prefs.putBoolean +import com.drdisagree.iconify.config.RPrefs.putBoolean import com.drdisagree.iconify.utils.overlay.OverlayUtil.disableOverlay import com.drdisagree.iconify.utils.overlay.OverlayUtil.enableOverlayExclusiveInCategory import com.drdisagree.iconify.utils.overlay.OverlayUtil.enableOverlays diff --git a/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/BrightnessBarPixelManager.kt b/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/BrightnessBarPixelManager.kt index af537532a..e63f85cbb 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/BrightnessBarPixelManager.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/BrightnessBarPixelManager.kt @@ -1,7 +1,7 @@ package com.drdisagree.iconify.utils.overlay.manager import com.drdisagree.iconify.common.Dynamic.TOTAL_BRIGHTNESSBARSPIXEL -import com.drdisagree.iconify.config.Prefs.putBoolean +import com.drdisagree.iconify.config.RPrefs.putBoolean import com.drdisagree.iconify.utils.overlay.OverlayUtil.disableOverlay import com.drdisagree.iconify.utils.overlay.OverlayUtil.enableOverlayExclusiveInCategory import com.drdisagree.iconify.utils.overlay.OverlayUtil.enableOverlays diff --git a/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/IconPackManager.kt b/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/IconPackManager.kt index 096622955..f9394a61e 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/IconPackManager.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/IconPackManager.kt @@ -1,28 +1,36 @@ package com.drdisagree.iconify.utils.overlay.manager -import com.drdisagree.iconify.common.Dynamic.TOTAL_ICONPACKS -import com.drdisagree.iconify.config.Prefs.putBoolean +import com.drdisagree.iconify.config.RPrefs.putBoolean import com.drdisagree.iconify.utils.overlay.OverlayUtil.disableOverlays import com.drdisagree.iconify.utils.overlay.OverlayUtil.enableOverlaysExclusiveInCategory +import com.topjohnwu.superuser.Shell object IconPackManager { - fun enableOverlay(n: Int) { - disableOthers(n) + private fun getTotalIconPacks(category: String): Int { + return Shell.cmd("cmd overlay list | grep '....IconifyComponent$category'").exec().out.size + } + + fun enableOverlay(index: Int, vararg categories: String) { + disableOthers(index, *categories) enableOverlaysExclusiveInCategory( - "IconifyComponentIPAS$n.overlay", - "IconifyComponentIPSUI$n.overlay" + *categories.map { "IconifyComponent$it$index.overlay" }.toTypedArray() ) } - fun disableOverlay(n: Int) { - disableOverlays("IconifyComponentIPAS$n.overlay", "IconifyComponentIPSUI$n.overlay") + fun disableOverlay(index: Int, vararg categories: String) { + disableOverlays( + *categories.map { "IconifyComponent$it$index.overlay" }.toTypedArray() + ) } - private fun disableOthers(n: Int) { - for (i in 1..TOTAL_ICONPACKS) { - putBoolean("IconifyComponentIPAS$i.overlay", i == n) - putBoolean("IconifyComponentIPSUI$i.overlay", i == n) + private fun disableOthers(index: Int, vararg categories: String) { + val totalIconPacks = getTotalIconPacks(categories[0]) + + for (i in 1..totalIconPacks) { + categories.forEach { category -> + putBoolean("IconifyComponent$category$i.overlay", i == index) + } } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/MediaPlayerIconManager.kt b/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/MediaPlayerIconManager.kt index 0d417be07..86739138e 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/MediaPlayerIconManager.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/MediaPlayerIconManager.kt @@ -1,6 +1,6 @@ package com.drdisagree.iconify.utils.overlay.manager -import com.drdisagree.iconify.config.Prefs.putBoolean +import com.drdisagree.iconify.config.RPrefs.putBoolean import com.drdisagree.iconify.utils.overlay.OverlayUtil.disableOverlay import com.drdisagree.iconify.utils.overlay.OverlayUtil.enableOverlayExclusiveInCategory diff --git a/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/MonetEngineManager.kt b/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/MonetEngineManager.kt index f591e5f90..c9efd4b69 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/MonetEngineManager.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/MonetEngineManager.kt @@ -1,6 +1,6 @@ package com.drdisagree.iconify.utils.overlay.manager -import com.drdisagree.iconify.config.Prefs +import com.drdisagree.iconify.config.RPrefs import com.drdisagree.iconify.utils.color.ColorUtil.colorNames import com.drdisagree.iconify.utils.color.ColorUtil.colorToHex import com.drdisagree.iconify.utils.overlay.compiler.MonetCompiler @@ -18,8 +18,8 @@ object MonetEngineManager { for (i in colors.indices) { for (j in colors[i].indices) { - Prefs.putString(colors[i][j] + "_day", palette[0][i][j].toString()) - Prefs.putString(colors[i][j] + "_night", palette[1][i][j].toString()) + RPrefs.putString(colors[i][j] + "_day", palette[0][i][j].toString()) + RPrefs.putString(colors[i][j] + "_night", palette[1][i][j].toString()) resources .append(" ${colorToHex(palette[0][i][j] as Int)}\n") diff --git a/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/NotificationManager.kt b/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/NotificationManager.kt index 681dadb00..2a9e4ee60 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/NotificationManager.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/NotificationManager.kt @@ -5,7 +5,6 @@ import com.drdisagree.iconify.common.Dynamic.isAndroid14 import com.drdisagree.iconify.common.Dynamic.isAtleastA14 import com.drdisagree.iconify.common.Preferences.FIX_NOTIFICATION_COLOR import com.drdisagree.iconify.common.Preferences.FIX_NOTIFICATION_FOOTER_BUTTON_COLOR -import com.drdisagree.iconify.config.Prefs import com.drdisagree.iconify.config.RPrefs import com.drdisagree.iconify.utils.SystemUtil import com.drdisagree.iconify.utils.overlay.OverlayUtil.disableOverlay @@ -71,8 +70,8 @@ object NotificationManager { private fun disableOthers(n: Int) { for (i in 1..TOTAL_NOTIFICATIONS) { - Prefs.putBoolean("IconifyComponentNFN$i.overlay", i == n) - Prefs.putBoolean("IconifyComponentNFP$i.overlay", false) + RPrefs.putBoolean("IconifyComponentNFN$i.overlay", i == n) + RPrefs.putBoolean("IconifyComponentNFP$i.overlay", false) } } } \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/NotificationPixelManager.kt b/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/NotificationPixelManager.kt index 4ea4dfe43..db1b71fd7 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/NotificationPixelManager.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/NotificationPixelManager.kt @@ -5,7 +5,6 @@ import com.drdisagree.iconify.common.Dynamic.isAndroid14 import com.drdisagree.iconify.common.Dynamic.isAtleastA14 import com.drdisagree.iconify.common.Preferences.FIX_NOTIFICATION_COLOR import com.drdisagree.iconify.common.Preferences.FIX_NOTIFICATION_FOOTER_BUTTON_COLOR -import com.drdisagree.iconify.config.Prefs import com.drdisagree.iconify.config.RPrefs import com.drdisagree.iconify.utils.SystemUtil import com.drdisagree.iconify.utils.overlay.OverlayUtil.disableOverlay @@ -71,8 +70,8 @@ object NotificationPixelManager { private fun disableOthers(n: Int) { for (i in 1..TOTAL_NOTIFICATIONSPIXEL) { - Prefs.putBoolean("IconifyComponentNFP$i.overlay", i == n) - Prefs.putBoolean("IconifyComponentNFN$i.overlay", false) + RPrefs.putBoolean("IconifyComponentNFP$i.overlay", i == n) + RPrefs.putBoolean("IconifyComponentNFN$i.overlay", false) } } } \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/QsShapeManager.kt b/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/QsShapeManager.kt index 97b44c523..fcfdf5392 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/QsShapeManager.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/QsShapeManager.kt @@ -3,7 +3,6 @@ package com.drdisagree.iconify.utils.overlay.manager import com.drdisagree.iconify.common.Dynamic.TOTAL_QSSHAPES import com.drdisagree.iconify.common.Dynamic.isAtleastA14 import com.drdisagree.iconify.common.Preferences.FIX_QS_TILE_COLOR -import com.drdisagree.iconify.config.Prefs import com.drdisagree.iconify.config.RPrefs import com.drdisagree.iconify.utils.SystemUtil import com.drdisagree.iconify.utils.overlay.OverlayUtil.changeOverlayState @@ -58,8 +57,8 @@ object QsShapeManager { private fun disableOthers(n: Int) { for (i in 1..TOTAL_QSSHAPES) { - Prefs.putBoolean("IconifyComponentQSSN$i.overlay", i == n) - Prefs.putBoolean("IconifyComponentQSSP$i.overlay", false) + RPrefs.putBoolean("IconifyComponentQSSN$i.overlay", i == n) + RPrefs.putBoolean("IconifyComponentQSSP$i.overlay", false) } } } \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/QsShapePixelManager.kt b/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/QsShapePixelManager.kt index 1c21305dd..8bd2e43bf 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/QsShapePixelManager.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/QsShapePixelManager.kt @@ -3,7 +3,6 @@ package com.drdisagree.iconify.utils.overlay.manager import com.drdisagree.iconify.common.Dynamic.TOTAL_QSSHAPESPIXEL import com.drdisagree.iconify.common.Dynamic.isAtleastA14 import com.drdisagree.iconify.common.Preferences.FIX_QS_TILE_COLOR -import com.drdisagree.iconify.config.Prefs import com.drdisagree.iconify.config.RPrefs import com.drdisagree.iconify.utils.SystemUtil import com.drdisagree.iconify.utils.overlay.OverlayUtil.changeOverlayState @@ -57,8 +56,8 @@ object QsShapePixelManager { private fun disableOthers(n: Int) { for (i in 1..TOTAL_QSSHAPESPIXEL) { - Prefs.putBoolean("IconifyComponentQSSP$i.overlay", i == n) - Prefs.putBoolean("IconifyComponentQSSN$i.overlay", false) + RPrefs.putBoolean("IconifyComponentQSSP$i.overlay", i == n) + RPrefs.putBoolean("IconifyComponentQSSN$i.overlay", false) } } } \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/SignalIconManager.kt b/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/SignalIconManager.kt new file mode 100644 index 000000000..92412b30d --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/SignalIconManager.kt @@ -0,0 +1,52 @@ +package com.drdisagree.iconify.utils.overlay.manager + +import com.drdisagree.iconify.config.RPrefs.putBoolean +import com.drdisagree.iconify.utils.overlay.OverlayUtil +import com.drdisagree.iconify.utils.overlay.OverlayUtil.checkEnabledOverlay +import com.drdisagree.iconify.utils.overlay.OverlayUtil.disableOverlays +import com.drdisagree.iconify.utils.overlay.OverlayUtil.enableOverlaysExclusiveInCategory +import com.topjohnwu.superuser.Shell + +object SignalIconManager { + private fun getTotalIconPacks(category: String): Int { + return Shell.cmd("cmd overlay list | grep '....IconifyComponent$category'").exec().out.size + } + + fun enableOverlay(n: Int, category: String) { + disableOthers(n, category) + + val iconPackPkgName = checkEnabledOverlay("IPAS") + if (iconPackPkgName.isNotEmpty()) { + OverlayUtil.disableOverlay(iconPackPkgName) + } + + enableOverlaysExclusiveInCategory("IconifyComponent$category$n.overlay") + + val otherSignalPack = checkEnabledOverlay(if (category == "WIFI") "SGIC" else "WIFI") + if (otherSignalPack.isNotEmpty()) { + enableOverlaysExclusiveInCategory(otherSignalPack) + } + + if (iconPackPkgName.isNotEmpty()) { + OverlayUtil.enableOverlay(iconPackPkgName, "high") + } + + enableOverlaysExclusiveInCategory("IconifyComponent$category$n.overlay") + + if (otherSignalPack.isNotEmpty()) { + enableOverlaysExclusiveInCategory(otherSignalPack) + } + } + + fun disableOverlay(n: Int, category: String) { + disableOverlays("IconifyComponent$category$n.overlay") + } + + private fun disableOthers(n: Int, category: String) { + val totalIconPacks = getTotalIconPacks(category) + + for (i in 1..totalIconPacks) { + putBoolean("IconifyComponent$category$i.overlay", i == n) + } + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/resource/ResourceManager.kt b/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/resource/ResourceManager.kt index b29e098ff..a184ee9c8 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/resource/ResourceManager.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/overlay/manager/resource/ResourceManager.kt @@ -11,8 +11,8 @@ import com.drdisagree.iconify.common.Const import com.drdisagree.iconify.common.Preferences.DYNAMIC_OVERLAY_RESOURCES import com.drdisagree.iconify.common.Preferences.DYNAMIC_OVERLAY_RESOURCES_LAND import com.drdisagree.iconify.common.Preferences.DYNAMIC_OVERLAY_RESOURCES_NIGHT -import com.drdisagree.iconify.config.Prefs.getString -import com.drdisagree.iconify.config.Prefs.putString +import com.drdisagree.iconify.config.RPrefs.getString +import com.drdisagree.iconify.config.RPrefs.putString import com.drdisagree.iconify.utils.SystemUtil.hasStoragePermission import com.drdisagree.iconify.utils.SystemUtil.requestStoragePermission import com.drdisagree.iconify.utils.extension.TaskExecutor diff --git a/app/src/main/java/com/drdisagree/iconify/utils/weather/WeatherConfig.kt b/app/src/main/java/com/drdisagree/iconify/utils/weather/WeatherConfig.kt index 924820cc8..6b98a0d68 100644 --- a/app/src/main/java/com/drdisagree/iconify/utils/weather/WeatherConfig.kt +++ b/app/src/main/java/com/drdisagree/iconify/utils/weather/WeatherConfig.kt @@ -16,7 +16,7 @@ import com.drdisagree.iconify.common.Preferences.WEATHER_SWITCH import com.drdisagree.iconify.common.Preferences.WEATHER_UNITS import com.drdisagree.iconify.common.Preferences.WEATHER_UPDATE_INTERVAL import com.drdisagree.iconify.common.Resources.SHARED_XPREFERENCES -import com.drdisagree.iconify.config.XPrefs.Xprefs +import com.drdisagree.iconify.xposed.utils.XPrefs.Xprefs import com.drdisagree.iconify.utils.weather.providers.OpenMeteoProvider import com.drdisagree.iconify.utils.weather.providers.OpenWeatherMapProvider diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/HookEntry.kt b/app/src/main/java/com/drdisagree/iconify/xposed/HookEntry.kt index 8d89b45e8..bee14a0d9 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/HookEntry.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/HookEntry.kt @@ -12,10 +12,10 @@ import com.drdisagree.iconify.BuildConfig import com.drdisagree.iconify.IRootProviderProxy import com.drdisagree.iconify.R import com.drdisagree.iconify.common.Const.FRAMEWORK_PACKAGE -import com.drdisagree.iconify.config.XPrefs -import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.utils.BootLoopProtector import com.drdisagree.iconify.xposed.utils.SystemUtil +import com.drdisagree.iconify.xposed.utils.XPrefs +import com.drdisagree.iconify.xposed.utils.XPrefs.Xprefs import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge.hookAllMethods import de.robv.android.xposed.XposedBridge.log @@ -71,33 +71,35 @@ class HookEntry : ServiceConnection { } else -> { - findAndHookMethod( - Instrumentation::class.java, - "newApplication", - ClassLoader::class.java, - String::class.java, - Context::class.java, - object : XC_MethodHook() { - override fun afterHookedMethod(param: MethodHookParam) { - try { - if (mContext == null) { - mContext = param.args[2] as Context - - HookRes.modRes = mContext!!.createPackageContext( - BuildConfig.APPLICATION_ID, - Context.CONTEXT_IGNORE_SECURITY - ).resources - - XPrefs.init(mContext!!) - - waitForXprefsLoad(loadPackageParam) + if (!isChildProcess) { + findAndHookMethod( + Instrumentation::class.java, + "newApplication", + ClassLoader::class.java, + String::class.java, + Context::class.java, + object : XC_MethodHook() { + override fun afterHookedMethod(param: MethodHookParam) { + try { + if (mContext == null) { + mContext = param.args[2] as Context + + HookRes.modRes = mContext!!.createPackageContext( + BuildConfig.APPLICATION_ID, + Context.CONTEXT_IGNORE_SECURITY + ).resources + + XPrefs.init(mContext!!) + + waitForXprefsLoad(loadPackageParam) + } + } catch (throwable: Throwable) { + log(throwable) } - } catch (throwable: Throwable) { - log(throwable) } } - } - ) + ) + } } } } @@ -143,7 +145,7 @@ class HookEntry : ServiceConnection { private fun waitForXprefsLoad(loadPackageParam: LoadPackageParam) { while (true) { try { - Xprefs!!.getBoolean("LoadTestBooleanValue", false) + Xprefs.getBoolean("LoadTestBooleanValue", false) break } catch (ignored: Throwable) { SystemUtil.sleep(1000); diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/BackgroundChip.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/BackgroundChip.kt index 545189dde..28834bc4e 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/BackgroundChip.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/BackgroundChip.kt @@ -17,28 +17,66 @@ import android.widget.LinearLayout import android.widget.TextView import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintSet -import androidx.core.content.res.ResourcesCompat -import com.drdisagree.iconify.BuildConfig -import com.drdisagree.iconify.R import com.drdisagree.iconify.common.Const.SYSTEMUI_PACKAGE -import com.drdisagree.iconify.common.Preferences.CHIP_QSSTATUSICONS_STYLE -import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCKBG_STYLE +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_ACCENT +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_END_COLOR +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_GRADIENT_DIRECTION +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_PADDING_BOTTOM +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_PADDING_LEFT +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_PADDING_RIGHT +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_PADDING_TOP +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_RADIUS_BOTTOM_LEFT +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_RADIUS_BOTTOM_RIGHT +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_RADIUS_TOP_LEFT +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_RADIUS_TOP_RIGHT +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_START_COLOR +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_STROKE_ACCENT +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_STROKE_COLOR +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_STROKE_DASH +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_STROKE_DASH_GAP +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_STROKE_DASH_WIDTH +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_STROKE_SWITCH +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_STROKE_WIDTH +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_STYLE_CHANGED +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_SWITCH +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_TEXT_COLOR_CODE +import com.drdisagree.iconify.common.Preferences.CHIP_STATUSBAR_CLOCK_TEXT_COLOR_OPTION +import com.drdisagree.iconify.common.Preferences.CHIP_STATUS_ICONS_ACCENT +import com.drdisagree.iconify.common.Preferences.CHIP_STATUS_ICONS_END_COLOR +import com.drdisagree.iconify.common.Preferences.CHIP_STATUS_ICONS_GRADIENT_DIRECTION +import com.drdisagree.iconify.common.Preferences.CHIP_STATUS_ICONS_PADDING_BOTTOM +import com.drdisagree.iconify.common.Preferences.CHIP_STATUS_ICONS_PADDING_LEFT +import com.drdisagree.iconify.common.Preferences.CHIP_STATUS_ICONS_PADDING_RIGHT +import com.drdisagree.iconify.common.Preferences.CHIP_STATUS_ICONS_PADDING_TOP +import com.drdisagree.iconify.common.Preferences.CHIP_STATUS_ICONS_RADIUS_BOTTOM_LEFT +import com.drdisagree.iconify.common.Preferences.CHIP_STATUS_ICONS_RADIUS_BOTTOM_RIGHT +import com.drdisagree.iconify.common.Preferences.CHIP_STATUS_ICONS_RADIUS_TOP_LEFT +import com.drdisagree.iconify.common.Preferences.CHIP_STATUS_ICONS_RADIUS_TOP_RIGHT +import com.drdisagree.iconify.common.Preferences.CHIP_STATUS_ICONS_START_COLOR +import com.drdisagree.iconify.common.Preferences.CHIP_STATUS_ICONS_STROKE_ACCENT +import com.drdisagree.iconify.common.Preferences.CHIP_STATUS_ICONS_STROKE_COLOR +import com.drdisagree.iconify.common.Preferences.CHIP_STATUS_ICONS_STROKE_DASH +import com.drdisagree.iconify.common.Preferences.CHIP_STATUS_ICONS_STROKE_DASH_GAP +import com.drdisagree.iconify.common.Preferences.CHIP_STATUS_ICONS_STROKE_DASH_WIDTH +import com.drdisagree.iconify.common.Preferences.CHIP_STATUS_ICONS_STROKE_SWITCH +import com.drdisagree.iconify.common.Preferences.CHIP_STATUS_ICONS_STROKE_WIDTH +import com.drdisagree.iconify.common.Preferences.CHIP_STATUS_ICONS_STYLE_CHANGED +import com.drdisagree.iconify.common.Preferences.CHIP_STATUS_ICONS_SWITCH import com.drdisagree.iconify.common.Preferences.FIXED_STATUS_ICONS_SIDEMARGIN import com.drdisagree.iconify.common.Preferences.FIXED_STATUS_ICONS_SWITCH import com.drdisagree.iconify.common.Preferences.FIXED_STATUS_ICONS_TOPMARGIN import com.drdisagree.iconify.common.Preferences.HEADER_CLOCK_SWITCH import com.drdisagree.iconify.common.Preferences.HIDE_STATUS_ICONS_SWITCH -import com.drdisagree.iconify.common.Preferences.QSPANEL_STATUSICONSBG_SWITCH -import com.drdisagree.iconify.common.Preferences.STATUSBAR_CLOCKBG_SWITCH -import com.drdisagree.iconify.common.Preferences.STATUSBAR_CLOCK_COLOR_CODE -import com.drdisagree.iconify.common.Preferences.STATUSBAR_CLOCK_COLOR_OPTION -import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.HookRes.Companion.resParams import com.drdisagree.iconify.xposed.ModPack import com.drdisagree.iconify.xposed.modules.utils.Helpers.findClassInArray import com.drdisagree.iconify.xposed.modules.utils.StatusBarClock import com.drdisagree.iconify.xposed.modules.utils.StatusBarClock.setClockGravity import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.toPx +import com.drdisagree.iconify.xposed.modules.views.ChipDrawable +import com.drdisagree.iconify.xposed.modules.views.ChipDrawable.GradientDirection.Companion.toIndex +import com.drdisagree.iconify.xposed.utils.XPrefs.Xprefs +import com.drdisagree.iconify.xposed.utils.XPrefs.XprefsIsInitialized import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge.hookAllMethods import de.robv.android.xposed.XposedBridge.log @@ -63,8 +101,6 @@ class BackgroundChip(context: Context?) : ModPack(context!!) { private var showHeaderClock = false private var topMarginStatusIcons = 8 private var sideMarginStatusIcons = 0 - private var qsStatusIconsChipStyle = 0 - private var statusBarClockChipStyle = 0 private var statusBarClockColorOption = 0 private var statusBarClockColorCode = Color.WHITE private var fixedStatusIcons = false @@ -76,45 +112,145 @@ class BackgroundChip(context: Context?) : ModPack(context!!) { private var dependencyClass: Class<*>? = null private var darkIconDispatcherClass: Class<*>? = null private var mLoadPackageParam: LoadPackageParam? = null + private var accentFillEnabled: Boolean = true + private var startColor: Int = Color.RED + private var endColor: Int = Color.BLUE + private var gradientDirection: ChipDrawable.GradientDirection = + ChipDrawable.GradientDirection.LEFT_RIGHT + private var padding: IntArray = intArrayOf(8, 4, 8, 4) + private var strokeEnabled: Boolean = false + private var strokeWidth: Int = 2 + private var accentBorderEnabled: Boolean = true + private var strokeColor: Int = Color.GREEN + private var dashedBorderEnabled: Boolean = false + private var strokeDashWidth: Int = 4 + private var strokeDashGap: Int = 4 + private var cornerRadii: FloatArray = floatArrayOf(28f, 28f, 28f, 28f, 28f, 28f, 28f, 28f) + private var accentFillEnabled2: Boolean = true + private var startColor2: Int = Color.RED + private var endColor2: Int = Color.BLUE + private var gradientDirection2: ChipDrawable.GradientDirection = + ChipDrawable.GradientDirection.LEFT_RIGHT + private var padding2: IntArray = intArrayOf(8, 4, 8, 4) + private var strokeEnabled2: Boolean = false + private var strokeWidth2: Int = 2 + private var accentBorderEnabled2: Boolean = true + private var strokeColor2: Int = Color.GREEN + private var dashedBorderEnabled2: Boolean = false + private var strokeDashWidth2: Int = 4 + private var strokeDashGap2: Int = 4 + private var cornerRadii2: FloatArray = floatArrayOf(28f, 28f, 28f, 28f, 28f, 28f, 28f, 28f) override fun updatePrefs(vararg key: String) { - if (Xprefs == null) return - - mShowSBClockBg = Xprefs!!.getBoolean(STATUSBAR_CLOCKBG_SWITCH, false) - mShowQSStatusIconsBg = Xprefs!!.getBoolean(QSPANEL_STATUSICONSBG_SWITCH, false) - qsStatusIconsChipStyle = Xprefs!!.getInt(CHIP_QSSTATUSICONS_STYLE, 0) - statusBarClockChipStyle = Xprefs!!.getInt(CHIP_STATUSBAR_CLOCKBG_STYLE, 0) - statusBarClockColorOption = Xprefs!!.getInt(STATUSBAR_CLOCK_COLOR_OPTION, 0) - statusBarClockColorCode = Xprefs!!.getInt(STATUSBAR_CLOCK_COLOR_CODE, Color.WHITE) - showHeaderClock = Xprefs!!.getBoolean(HEADER_CLOCK_SWITCH, false) - hideStatusIcons = Xprefs!!.getBoolean(HIDE_STATUS_ICONS_SWITCH, false) - fixedStatusIcons = Xprefs!!.getBoolean(FIXED_STATUS_ICONS_SWITCH, false) - topMarginStatusIcons = Xprefs!!.getInt(FIXED_STATUS_ICONS_TOPMARGIN, 8) - sideMarginStatusIcons = Xprefs!!.getInt(FIXED_STATUS_ICONS_SIDEMARGIN, 0) + if (!XprefsIsInitialized) return + + Xprefs.apply { + // Status bar clock chip + mShowSBClockBg = getBoolean(CHIP_STATUSBAR_CLOCK_SWITCH, false) + statusBarClockColorOption = getInt(CHIP_STATUSBAR_CLOCK_TEXT_COLOR_OPTION, 0) + statusBarClockColorCode = getInt(CHIP_STATUSBAR_CLOCK_TEXT_COLOR_CODE, Color.WHITE) + accentFillEnabled = getBoolean(CHIP_STATUSBAR_CLOCK_ACCENT, true) + startColor = getInt(CHIP_STATUSBAR_CLOCK_START_COLOR, Color.RED) + endColor = getInt(CHIP_STATUSBAR_CLOCK_END_COLOR, Color.BLUE) + gradientDirection = + ChipDrawable.GradientDirection.fromIndex( + getInt( + CHIP_STATUSBAR_CLOCK_GRADIENT_DIRECTION, + ChipDrawable.GradientDirection.LEFT_RIGHT.toIndex() + ) + ) + padding = intArrayOf( + getInt(CHIP_STATUSBAR_CLOCK_PADDING_LEFT, 8), + getInt(CHIP_STATUSBAR_CLOCK_PADDING_TOP, 4), + getInt(CHIP_STATUSBAR_CLOCK_PADDING_RIGHT, 8), + getInt(CHIP_STATUSBAR_CLOCK_PADDING_BOTTOM, 4) + ) + strokeEnabled = getBoolean(CHIP_STATUSBAR_CLOCK_STROKE_SWITCH) + strokeWidth = getInt(CHIP_STATUSBAR_CLOCK_STROKE_WIDTH, 2) + accentBorderEnabled = getBoolean(CHIP_STATUSBAR_CLOCK_STROKE_ACCENT, true) + strokeColor = getInt(CHIP_STATUSBAR_CLOCK_STROKE_COLOR, Color.GREEN) + dashedBorderEnabled = getBoolean(CHIP_STATUSBAR_CLOCK_STROKE_DASH) + strokeDashWidth = getInt(CHIP_STATUSBAR_CLOCK_STROKE_DASH_WIDTH, 4) + strokeDashGap = getInt(CHIP_STATUSBAR_CLOCK_STROKE_DASH_GAP, 4) + cornerRadii = floatArrayOf( + getInt(CHIP_STATUSBAR_CLOCK_RADIUS_TOP_LEFT, 28).toFloat(), + getInt(CHIP_STATUSBAR_CLOCK_RADIUS_TOP_LEFT, 28).toFloat(), + getInt(CHIP_STATUSBAR_CLOCK_RADIUS_TOP_RIGHT, 28).toFloat(), + getInt(CHIP_STATUSBAR_CLOCK_RADIUS_TOP_RIGHT, 28).toFloat(), + getInt(CHIP_STATUSBAR_CLOCK_RADIUS_BOTTOM_RIGHT, 28).toFloat(), + getInt(CHIP_STATUSBAR_CLOCK_RADIUS_BOTTOM_RIGHT, 28).toFloat(), + getInt(CHIP_STATUSBAR_CLOCK_RADIUS_BOTTOM_LEFT, 28).toFloat(), + getInt(CHIP_STATUSBAR_CLOCK_RADIUS_BOTTOM_LEFT, 28).toFloat(), + ) + + // Status icons chip + mShowQSStatusIconsBg = getBoolean(CHIP_STATUS_ICONS_SWITCH, false) + accentFillEnabled2 = getBoolean(CHIP_STATUS_ICONS_ACCENT, true) + startColor2 = getInt(CHIP_STATUS_ICONS_START_COLOR, Color.RED) + endColor2 = getInt(CHIP_STATUS_ICONS_END_COLOR, Color.BLUE) + gradientDirection2 = + ChipDrawable.GradientDirection.fromIndex( + getInt( + CHIP_STATUS_ICONS_GRADIENT_DIRECTION, + ChipDrawable.GradientDirection.LEFT_RIGHT.toIndex() + ) + ) + padding2 = intArrayOf( + getInt(CHIP_STATUS_ICONS_PADDING_LEFT, 8), + getInt(CHIP_STATUS_ICONS_PADDING_TOP, 4), + getInt(CHIP_STATUS_ICONS_PADDING_RIGHT, 8), + getInt(CHIP_STATUS_ICONS_PADDING_BOTTOM, 4) + ) + strokeEnabled2 = getBoolean(CHIP_STATUS_ICONS_STROKE_SWITCH) + strokeWidth2 = getInt(CHIP_STATUS_ICONS_STROKE_WIDTH, 2) + accentBorderEnabled2 = getBoolean(CHIP_STATUS_ICONS_STROKE_ACCENT, true) + strokeColor2 = getInt(CHIP_STATUS_ICONS_STROKE_COLOR, Color.GREEN) + dashedBorderEnabled2 = getBoolean(CHIP_STATUS_ICONS_STROKE_DASH) + strokeDashWidth2 = getInt(CHIP_STATUS_ICONS_STROKE_DASH_WIDTH, 4) + strokeDashGap2 = getInt(CHIP_STATUS_ICONS_STROKE_DASH_GAP, 4) + cornerRadii2 = floatArrayOf( + getInt(CHIP_STATUS_ICONS_RADIUS_TOP_LEFT, 28).toFloat(), + getInt(CHIP_STATUS_ICONS_RADIUS_TOP_LEFT, 28).toFloat(), + getInt(CHIP_STATUS_ICONS_RADIUS_TOP_RIGHT, 28).toFloat(), + getInt(CHIP_STATUS_ICONS_RADIUS_TOP_RIGHT, 28).toFloat(), + getInt(CHIP_STATUS_ICONS_RADIUS_BOTTOM_RIGHT, 28).toFloat(), + getInt(CHIP_STATUS_ICONS_RADIUS_BOTTOM_RIGHT, 28).toFloat(), + getInt(CHIP_STATUS_ICONS_RADIUS_BOTTOM_LEFT, 28).toFloat(), + getInt(CHIP_STATUS_ICONS_RADIUS_BOTTOM_LEFT, 28).toFloat(), + ) + + // Others + showHeaderClock = getBoolean(HEADER_CLOCK_SWITCH, false) + hideStatusIcons = getBoolean(HIDE_STATUS_ICONS_SWITCH, false) + fixedStatusIcons = getBoolean(FIXED_STATUS_ICONS_SWITCH, false) + topMarginStatusIcons = getSliderInt(FIXED_STATUS_ICONS_TOPMARGIN, 8) + sideMarginStatusIcons = getSliderInt(FIXED_STATUS_ICONS_SIDEMARGIN, 0) + } if (key.isNotEmpty()) { - if (key[0] == STATUSBAR_CLOCKBG_SWITCH || - key[0] == CHIP_STATUSBAR_CLOCKBG_STYLE || - key[0] == STATUSBAR_CLOCK_COLOR_OPTION || - key[0] == STATUSBAR_CLOCK_COLOR_CODE + if (key[0] == CHIP_STATUSBAR_CLOCK_SWITCH || + key[0] == CHIP_STATUSBAR_CLOCK_STYLE_CHANGED ) { - updateStatusBarClock() + updateStatusBarClock(true) } - if (key[0] == QSPANEL_STATUSICONSBG_SWITCH || - key[0] == CHIP_STATUSBAR_CLOCKBG_STYLE || - key[0] == HEADER_CLOCK_SWITCH || - key[0] == HIDE_STATUS_ICONS_SWITCH || - key[0] == FIXED_STATUS_ICONS_SWITCH - ) { - setQSStatusIconsBgA12() - } + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { + if (key[0] == CHIP_STATUS_ICONS_SWITCH || + key[0] == CHIP_STATUS_ICONS_STYLE_CHANGED || + key[0] == HEADER_CLOCK_SWITCH || + key[0] == HIDE_STATUS_ICONS_SWITCH || + key[0] == FIXED_STATUS_ICONS_SWITCH + ) { + setQSStatusIconsBgA12() + } - if (key[0] == CHIP_QSSTATUSICONS_STYLE || - key[0] == FIXED_STATUS_ICONS_TOPMARGIN || - key[0] == FIXED_STATUS_ICONS_SIDEMARGIN - ) { - updateStatusIcons() + if (key[0] == CHIP_STATUS_ICONS_SWITCH || + key[0] == CHIP_STATUS_ICONS_STYLE_CHANGED || + key[0] == FIXED_STATUS_ICONS_TOPMARGIN || + key[0] == FIXED_STATUS_ICONS_SIDEMARGIN + ) { + updateStatusIcons() + } } } } @@ -122,7 +258,10 @@ class BackgroundChip(context: Context?) : ModPack(context!!) { override fun handleLoadPackage(loadPackageParam: LoadPackageParam) { mLoadPackageParam = loadPackageParam statusBarClockChip(loadPackageParam) - statusIconsChip(loadPackageParam) + + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { + statusIconsChip(loadPackageParam) + } } private fun statusBarClockChip(loadPackageParam: LoadPackageParam) { @@ -156,10 +295,10 @@ class BackgroundChip(context: Context?) : ModPack(context!!) { param.thisObject, "mStatusBar" ) as ViewGroup).addOnLayoutChangeListener { _, _, _, _, _, _, _, _, _ -> - updateStatusBarClock() + updateStatusBarClock(false) } - updateStatusBarClock() + updateStatusBarClock(true) if (mShowSBClockBg) { try { @@ -176,9 +315,12 @@ class BackgroundChip(context: Context?) : ModPack(context!!) { mContext.packageName ) ) - statusBarStartSideContent.layoutParams.height = - FrameLayout.LayoutParams.MATCH_PARENT - statusBarStartSideContent.requestLayout() + + statusBarStartSideContent.post { + statusBarStartSideContent.layoutParams.height = + FrameLayout.LayoutParams.MATCH_PARENT + statusBarStartSideContent.requestLayout() + } val statusBarStartSideExceptHeadsUp = mStatusBar.findViewById( @@ -188,8 +330,12 @@ class BackgroundChip(context: Context?) : ModPack(context!!) { mContext.packageName ) ) - (statusBarStartSideExceptHeadsUp.layoutParams as FrameLayout.LayoutParams).gravity = - Gravity.START or Gravity.CENTER + + statusBarStartSideExceptHeadsUp.post { + (statusBarStartSideExceptHeadsUp.layoutParams as FrameLayout.LayoutParams).gravity = + Gravity.START or Gravity.CENTER + } + statusBarStartSideExceptHeadsUp.gravity = Gravity.START or Gravity.CENTER statusBarStartSideExceptHeadsUp.requestLayout() @@ -207,72 +353,70 @@ class BackgroundChip(context: Context?) : ModPack(context!!) { } @SuppressLint("RtlHardcoded") - private fun updateStatusBarClock() { + private fun updateStatusBarClock(force: Boolean) { if (!mShowSBClockBg) return - val clockPaddingStartEnd: Int = mContext.toPx(8) - val clockPaddingTopBottom: Int = mContext.toPx(2) - - updateClockView( - mClockView, - clockPaddingStartEnd, - clockPaddingTopBottom, - Gravity.LEFT or Gravity.CENTER - ) + if (mClockView != null && mClockView!!.background == null || force) { + updateClockView( + mClockView, + Gravity.LEFT or Gravity.CENTER + ) + } - updateClockView( - mCenterClockView, - clockPaddingStartEnd, - clockPaddingTopBottom, - Gravity.CENTER - ) + if (mCenterClockView != null && mCenterClockView!!.background == null || force) { + updateClockView( + mCenterClockView, + Gravity.CENTER + ) + } - updateClockView( - mRightClockView, - clockPaddingStartEnd, - clockPaddingTopBottom, - Gravity.RIGHT or Gravity.CENTER - ) + if (mRightClockView != null && mRightClockView!!.background == null || force) { + updateClockView( + mRightClockView, + Gravity.RIGHT or Gravity.CENTER + ) + } } private fun updateStatusIcons() { if (mQsStatusIconsContainer.childCount == 0) return - val paddingTopBottom: Int = mContext.toPx(4) - val paddingStartEnd: Int = mContext.toPx(12) - if (mShowQSStatusIconsBg) { setStatusIconsBackgroundChip(mQsStatusIconsContainer) mQsStatusIconsContainer.setPadding( - paddingStartEnd, - paddingTopBottom, - paddingStartEnd, - paddingTopBottom + mContext.toPx(padding2[0]), + mContext.toPx(padding2[1]), + mContext.toPx(padding2[2]), + mContext.toPx(padding2[3]) ) } if (mQsStatusIconsContainer.layoutParams is FrameLayout.LayoutParams) { - (mQsStatusIconsContainer.layoutParams as FrameLayout.LayoutParams).setMargins( - 0, - mContext.toPx(topMarginStatusIcons), - 0, - 0 - ) + mQsStatusIconsContainer.post { + (mQsStatusIconsContainer.layoutParams as FrameLayout.LayoutParams).setMargins( + 0, + mContext.toPx(topMarginStatusIcons), + 0, + 0 + ) - (mQsStatusIconsContainer.layoutParams as FrameLayout.LayoutParams).setMarginEnd( - mContext.toPx(sideMarginStatusIcons) - ) + (mQsStatusIconsContainer.layoutParams as FrameLayout.LayoutParams).setMarginEnd( + mContext.toPx(sideMarginStatusIcons) + ) + } } else if (mQsStatusIconsContainer.layoutParams is LinearLayout.LayoutParams) { - (mQsStatusIconsContainer.layoutParams as LinearLayout.LayoutParams).setMargins( - 0, - mContext.toPx(topMarginStatusIcons), - 0, - 0 - ) + mQsStatusIconsContainer.post { + (mQsStatusIconsContainer.layoutParams as LinearLayout.LayoutParams).setMargins( + 0, + mContext.toPx(topMarginStatusIcons), + 0, + 0 + ) - (mQsStatusIconsContainer.layoutParams as LinearLayout.LayoutParams).setMarginEnd( - mContext.toPx(sideMarginStatusIcons) - ) + (mQsStatusIconsContainer.layoutParams as LinearLayout.LayoutParams).setMarginEnd( + mContext.toPx(sideMarginStatusIcons) + ) + } } else if (mLoadPackageParam != null && header != null && constraintLayoutId != -1) { try { val constraintSetClass = findClass( @@ -336,65 +480,60 @@ class BackgroundChip(context: Context?) : ModPack(context!!) { } private fun setSBClockBackgroundChip(view: View) { - try { - val pc = mContext.createPackageContext( - BuildConfig.APPLICATION_ID, - Context.CONTEXT_IGNORE_SECURITY + if (mShowSBClockBg) { + view.background = ChipDrawable.createChipDrawable( + context = mContext, + accentFill = accentFillEnabled, + startColor = startColor, + endColor = endColor, + gradientDirection = gradientDirection, + padding = intArrayOf(0, 0, 0, 0), + strokeEnabled = strokeEnabled, + accentStroke = accentBorderEnabled, + strokeWidth = strokeWidth, + strokeColor = strokeColor, + dashedBorderEnabled = dashedBorderEnabled, + dashWidth = strokeDashWidth, + dashGap = strokeDashGap, + cornerRadii = cornerRadii ) - - val res = pc.resources - - val bg = when (statusBarClockChipStyle) { - 0 -> ResourcesCompat.getDrawable(res, R.drawable.chip_status_bar_1, pc.theme) - 1 -> ResourcesCompat.getDrawable(res, R.drawable.chip_status_bar_2, pc.theme) - 2 -> ResourcesCompat.getDrawable(res, R.drawable.chip_status_bar_3, pc.theme) - 3 -> ResourcesCompat.getDrawable(res, R.drawable.chip_status_bar_4, pc.theme) - 4 -> ResourcesCompat.getDrawable(res, R.drawable.chip_status_bar_5, pc.theme) - 5 -> ResourcesCompat.getDrawable(res, R.drawable.chip_status_bar_6, pc.theme) - 6 -> ResourcesCompat.getDrawable(res, R.drawable.chip_status_bar_7, pc.theme) - else -> null - } - - if (bg != null) { - view.background = bg - } - } catch (throwable: Throwable) { - log(TAG + throwable) + } else { + view.background = null } } private fun setStatusIconsBackgroundChip(layout: LinearLayout) { - try { - val pc = mContext.createPackageContext( - BuildConfig.APPLICATION_ID, - Context.CONTEXT_IGNORE_SECURITY + if (mShowQSStatusIconsBg) { + layout.background = ChipDrawable.createChipDrawable( + context = mContext, + accentFill = accentFillEnabled2, + startColor = startColor2, + endColor = endColor2, + gradientDirection = gradientDirection2, + padding = intArrayOf(0, 0, 0, 0), + strokeEnabled = strokeEnabled2, + accentStroke = accentBorderEnabled2, + strokeWidth = strokeWidth2, + strokeColor = strokeColor2, + dashedBorderEnabled = dashedBorderEnabled2, + dashWidth = strokeDashWidth2, + dashGap = strokeDashGap2, + cornerRadii = cornerRadii2 ) - - val res = pc.resources - - val bg = when (qsStatusIconsChipStyle) { - 0 -> ResourcesCompat.getDrawable(res, R.drawable.chip_status_icons_1, pc.theme) - 1 -> ResourcesCompat.getDrawable(res, R.drawable.chip_status_icons_2, pc.theme) - 2 -> ResourcesCompat.getDrawable(res, R.drawable.chip_status_icons_3, pc.theme) - 3 -> ResourcesCompat.getDrawable(res, R.drawable.chip_status_icons_4, pc.theme) - 4 -> ResourcesCompat.getDrawable(res, R.drawable.chip_status_icons_5, pc.theme) - 5 -> ResourcesCompat.getDrawable(res, R.drawable.chip_status_icons_6, pc.theme) - else -> null - } - - if (bg != null) { - layout.background = bg - } - } catch (throwable: Throwable) { - log(TAG + throwable) + } else { + layout.background = null } } - @SuppressLint("RtlHardcoded") - private fun updateClockView(clockView: View?, startEnd: Int, topBottom: Int, gravity: Int) { + private fun updateClockView(clockView: View?, gravity: Int) { if (clockView == null) return - clockView.setPadding(startEnd, topBottom, startEnd, topBottom) + clockView.setPadding( + mContext.toPx(padding[0]), + mContext.toPx(padding[1]), + mContext.toPx(padding[2]), + mContext.toPx(padding[3]) + ) setSBClockBackgroundChip(clockView) @@ -480,31 +619,22 @@ class BackgroundChip(context: Context?) : ModPack(context!!) { ) val statusIconContainer = statusIcons.parent as LinearLayout - (statusIconContainer.layoutParams as FrameLayout.LayoutParams).gravity = - Gravity.CENTER_VERTICAL or Gravity.END - statusIconContainer.layoutParams.height = TypedValue.applyDimension( - TypedValue.COMPLEX_UNIT_DIP, - 28f, - mContext.resources.displayMetrics - ).toInt() - statusIconContainer.requestLayout() - - val paddingTopBottom = TypedValue.applyDimension( - TypedValue.COMPLEX_UNIT_DIP, - 2f, - mContext.resources.displayMetrics - ).toInt() - val paddingStartEnd = TypedValue.applyDimension( - TypedValue.COMPLEX_UNIT_DIP, - 8f, - mContext.resources.displayMetrics - ).toInt() + statusIconContainer.post { + (statusIconContainer.layoutParams as FrameLayout.LayoutParams).gravity = + Gravity.CENTER_VERTICAL or Gravity.END + statusIconContainer.layoutParams.height = TypedValue.applyDimension( + TypedValue.COMPLEX_UNIT_DIP, + 28f, + mContext.resources.displayMetrics + ).toInt() + statusIconContainer.requestLayout() + } statusIconContainer.setPadding( - paddingStartEnd, - paddingTopBottom, - paddingStartEnd, - paddingTopBottom + mContext.toPx(padding2[0]), + mContext.toPx(padding2[1]), + mContext.toPx(padding2[2]), + mContext.toPx(padding2[3]) ) setStatusIconsBackgroundChip(statusIconContainer) @@ -533,22 +663,12 @@ class BackgroundChip(context: Context?) : ModPack(context!!) { ) if (statusIcons != null) { val statusIconContainer = statusIcons.parent as LinearLayout - val paddingTopBottom = TypedValue.applyDimension( - TypedValue.COMPLEX_UNIT_DIP, - 2f, - mContext.resources.displayMetrics - ).toInt() - val paddingStartEnd = TypedValue.applyDimension( - TypedValue.COMPLEX_UNIT_DIP, - 8f, - mContext.resources.displayMetrics - ).toInt() statusIconContainer.setPadding( - paddingStartEnd, - paddingTopBottom, - paddingStartEnd, - paddingTopBottom + mContext.toPx(padding2[0]), + mContext.toPx(padding2[1]), + mContext.toPx(padding2[2]), + mContext.toPx(padding2[3]) ) setStatusIconsBackgroundChip(statusIconContainer) @@ -594,7 +714,12 @@ class BackgroundChip(context: Context?) : ModPack(context!!) { ViewGroup.LayoutParams.WRAP_CONTENT ) - mQsStatusIconsContainer.setLayoutParams(layoutParams) + mQsStatusIconsContainer.post { + mQsStatusIconsContainer.setLayoutParams( + layoutParams + ) + } + mQsStatusIconsContainer.gravity = Gravity.CENTER mQsStatusIconsContainer.orientation = LinearLayout.HORIZONTAL @@ -614,11 +739,17 @@ class BackgroundChip(context: Context?) : ModPack(context!!) { ) (mIconContainer.parent as ViewGroup).removeView(mIconContainer) - mIconContainer.setLayoutParams(layoutParams) - mIconContainer.layoutParams.height = mContext.toPx(32) + + mIconContainer.post { + mIconContainer.setLayoutParams(layoutParams) + mIconContainer.layoutParams.height = mContext.toPx(32) + } (mBatteryRemainingIcon.parent as ViewGroup).removeView(mBatteryRemainingIcon) - mBatteryRemainingIcon.layoutParams.height = mContext.toPx(32) + + mBatteryRemainingIcon.post { + mBatteryRemainingIcon.layoutParams.height = mContext.toPx(32) + } mQsStatusIconsContainer.addView(mIconContainer) mQsStatusIconsContainer.addView(mBatteryRemainingIcon) @@ -628,8 +759,10 @@ class BackgroundChip(context: Context?) : ModPack(context!!) { mQuickStatusBarHeader.childCount - 1 ) - (mQsStatusIconsContainer.layoutParams as FrameLayout.LayoutParams).gravity = - Gravity.TOP or Gravity.END + mQsStatusIconsContainer.post { + (mQsStatusIconsContainer.layoutParams as FrameLayout.LayoutParams).gravity = + Gravity.TOP or Gravity.END + } updateStatusIcons() } @@ -675,7 +808,13 @@ class BackgroundChip(context: Context?) : ModPack(context!!) { constraintLayoutId = View.generateViewId() constraintLayoutParams.topToTop = ConstraintLayout.LayoutParams.PARENT_ID constraintLayoutParams.endToEnd = ConstraintLayout.LayoutParams.PARENT_ID - mQsStatusIconsContainer.setLayoutParams(constraintLayoutParams) + + mQsStatusIconsContainer.post { + mQsStatusIconsContainer.setLayoutParams( + constraintLayoutParams + ) + } + mQsStatusIconsContainer.gravity = Gravity.CENTER mQsStatusIconsContainer.orientation = LinearLayout.HORIZONTAL mQsStatusIconsContainer.setId(constraintLayoutId) @@ -696,11 +835,17 @@ class BackgroundChip(context: Context?) : ModPack(context!!) { ) (iconContainer.parent as ViewGroup).removeView(iconContainer) - iconContainer.setLayoutParams(linearLayoutParams) - iconContainer.layoutParams.height = mContext.toPx(32) + + iconContainer.post { + iconContainer.setLayoutParams(linearLayoutParams) + iconContainer.layoutParams.height = mContext.toPx(32) + } (batteryIcon.parent as ViewGroup).removeView(batteryIcon) - batteryIcon.layoutParams.height = mContext.toPx(32) + + batteryIcon.post { + batteryIcon.layoutParams.height = mContext.toPx(32) + } mQsStatusIconsContainer.addView(iconContainer) mQsStatusIconsContainer.addView(batteryIcon) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/BatteryStyleManager.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/BatteryStyleManager.kt index 73127bc49..d8a5e798c 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/BatteryStyleManager.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/BatteryStyleManager.kt @@ -86,7 +86,6 @@ import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_STYLE import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_SWAP_PERCENTAGE import com.drdisagree.iconify.common.Preferences.CUSTOM_BATTERY_WIDTH import com.drdisagree.iconify.common.Preferences.ICONIFY_CHARGING_ICON_TAG -import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.HookRes.Companion.modRes import com.drdisagree.iconify.xposed.HookRes.Companion.resParams import com.drdisagree.iconify.xposed.ModPack @@ -127,6 +126,8 @@ import com.drdisagree.iconify.xposed.modules.batterystyles.RLandscapeBatteryStyl import com.drdisagree.iconify.xposed.modules.batterystyles.RLandscapeBatteryStyleB import com.drdisagree.iconify.xposed.modules.utils.SettingsLibUtils import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.toPx +import com.drdisagree.iconify.xposed.utils.XPrefs.Xprefs +import com.drdisagree.iconify.xposed.utils.XPrefs.XprefsIsInitialized import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XC_MethodHook.MethodHookParam import de.robv.android.xposed.XC_MethodReplacement @@ -176,63 +177,61 @@ class BatteryStyleManager(context: Context?) : ModPack(context!!) { private var mIsCharging = false override fun updatePrefs(vararg key: String) { - if (Xprefs == null) return - - val batteryStyle: Int = Xprefs!!.getInt(CUSTOM_BATTERY_STYLE, 0) - val hidePercentage: Boolean = Xprefs!!.getBoolean(CUSTOM_BATTERY_HIDE_PERCENTAGE, false) - val defaultInsidePercentage = batteryStyle == BATTERY_STYLE_LANDSCAPE_IOS_16 || - batteryStyle == BATTERY_STYLE_LANDSCAPE_BATTERYL || - batteryStyle == BATTERY_STYLE_LANDSCAPE_BATTERYM - val insidePercentage = defaultInsidePercentage || - Xprefs!!.getBoolean(CUSTOM_BATTERY_INSIDE_PERCENTAGE, false) - defaultLandscapeBatteryEnabled = batteryStyle == BATTERY_STYLE_DEFAULT_LANDSCAPE || - batteryStyle == BATTERY_STYLE_DEFAULT_RLANDSCAPE - customBatteryEnabled = batteryStyle != BATTERY_STYLE_DEFAULT && - batteryStyle != BATTERY_STYLE_DEFAULT_LANDSCAPE && - batteryStyle != BATTERY_STYLE_DEFAULT_RLANDSCAPE - - mBatteryRotation = if (defaultLandscapeBatteryEnabled) { - if (batteryStyle == BATTERY_STYLE_DEFAULT_RLANDSCAPE) { - 90 + if (!XprefsIsInitialized) return + + var batteryStyle: Int + + Xprefs.apply { + batteryStyle = getString(CUSTOM_BATTERY_STYLE, "0")!!.toInt() + val hidePercentage: Boolean = getBoolean(CUSTOM_BATTERY_HIDE_PERCENTAGE, false) + val defaultInsidePercentage = batteryStyle == BATTERY_STYLE_LANDSCAPE_IOS_16 || + batteryStyle == BATTERY_STYLE_LANDSCAPE_BATTERYL || + batteryStyle == BATTERY_STYLE_LANDSCAPE_BATTERYM + val insidePercentage = defaultInsidePercentage || + getBoolean(CUSTOM_BATTERY_INSIDE_PERCENTAGE, false) + defaultLandscapeBatteryEnabled = batteryStyle == BATTERY_STYLE_DEFAULT_LANDSCAPE || + batteryStyle == BATTERY_STYLE_DEFAULT_RLANDSCAPE + customBatteryEnabled = batteryStyle != BATTERY_STYLE_DEFAULT && + batteryStyle != BATTERY_STYLE_DEFAULT_LANDSCAPE && + batteryStyle != BATTERY_STYLE_DEFAULT_RLANDSCAPE + + mBatteryRotation = if (defaultLandscapeBatteryEnabled) { + if (batteryStyle == BATTERY_STYLE_DEFAULT_RLANDSCAPE) { + 90 + } else { + 270 + } } else { - 270 + 0 } - } else { - 0 - } - mHidePercentage = hidePercentage || insidePercentage - mShowPercentInside = insidePercentage && (defaultInsidePercentage || !hidePercentage) - mHideBattery = Xprefs!!.getBoolean(CUSTOM_BATTERY_HIDE_BATTERY, false) - mBatteryLayoutReverse = Xprefs!!.getBoolean(CUSTOM_BATTERY_LAYOUT_REVERSE, false) - mBatteryCustomDimension = Xprefs!!.getBoolean(CUSTOM_BATTERY_DIMENSION, false) - mBatteryScaleWidth = Xprefs!!.getInt(CUSTOM_BATTERY_WIDTH, 20) - mBatteryScaleHeight = Xprefs!!.getInt(CUSTOM_BATTERY_HEIGHT, 20) - mScaledPerimeterAlpha = Xprefs!!.getBoolean(CUSTOM_BATTERY_PERIMETER_ALPHA, false) - mScaledFillAlpha = Xprefs!!.getBoolean(CUSTOM_BATTERY_FILL_ALPHA, false) - mRainbowFillColor = Xprefs!!.getBoolean(CUSTOM_BATTERY_RAINBOW_FILL_COLOR, false) - mCustomBlendColor = Xprefs!!.getBoolean(CUSTOM_BATTERY_BLEND_COLOR, false) - mCustomChargingColor = Xprefs!!.getInt(CUSTOM_BATTERY_CHARGING_COLOR, Color.BLACK) - mCustomFillColor = Xprefs!!.getInt(CUSTOM_BATTERY_FILL_COLOR, Color.BLACK) - mCustomFillGradColor = Xprefs!!.getInt(CUSTOM_BATTERY_FILL_GRAD_COLOR, Color.BLACK) - mCustomPowerSaveColor = Xprefs!!.getInt( - CUSTOM_BATTERY_POWERSAVE_INDICATOR_COLOR, - Color.BLACK - ) - mCustomPowerSaveFillColor = Xprefs!!.getInt( - CUSTOM_BATTERY_POWERSAVE_FILL_COLOR, - Color.BLACK - ) - mSwapPercentage = Xprefs!!.getBoolean(CUSTOM_BATTERY_SWAP_PERCENTAGE, false) - mChargingIconSwitch = Xprefs!!.getBoolean(CUSTOM_BATTERY_CHARGING_ICON_SWITCH, false) - mChargingIconStyle = Xprefs!!.getInt(CUSTOM_BATTERY_CHARGING_ICON_STYLE, 0) - mChargingIconML = Xprefs!!.getInt(CUSTOM_BATTERY_CHARGING_ICON_MARGIN_LEFT, 1) - mChargingIconMR = Xprefs!!.getInt(CUSTOM_BATTERY_CHARGING_ICON_MARGIN_RIGHT, 0) - mChargingIconWH = Xprefs!!.getInt(CUSTOM_BATTERY_CHARGING_ICON_WIDTH_HEIGHT, 14) - mBatteryMarginLeft = mContext.toPx(Xprefs!!.getInt(CUSTOM_BATTERY_MARGIN_LEFT, 4)) - mBatteryMarginTop = mContext.toPx(Xprefs!!.getInt(CUSTOM_BATTERY_MARGIN_TOP, 0)) - mBatteryMarginRight = mContext.toPx(Xprefs!!.getInt(CUSTOM_BATTERY_MARGIN_RIGHT, 4)) - mBatteryMarginBottom = mContext.toPx(Xprefs!!.getInt(CUSTOM_BATTERY_MARGIN_BOTTOM, 0)) + mHidePercentage = hidePercentage || insidePercentage + mShowPercentInside = insidePercentage && (defaultInsidePercentage || !hidePercentage) + mHideBattery = getBoolean(CUSTOM_BATTERY_HIDE_BATTERY, false) + mBatteryLayoutReverse = getBoolean(CUSTOM_BATTERY_LAYOUT_REVERSE, false) + mBatteryCustomDimension = getBoolean(CUSTOM_BATTERY_DIMENSION, false) + mBatteryScaleWidth = getSliderInt(CUSTOM_BATTERY_WIDTH, 20) + mBatteryScaleHeight = getSliderInt(CUSTOM_BATTERY_HEIGHT, 20) + mScaledPerimeterAlpha = getBoolean(CUSTOM_BATTERY_PERIMETER_ALPHA, false) + mScaledFillAlpha = getBoolean(CUSTOM_BATTERY_FILL_ALPHA, false) + mRainbowFillColor = getBoolean(CUSTOM_BATTERY_RAINBOW_FILL_COLOR, false) + mCustomBlendColor = getBoolean(CUSTOM_BATTERY_BLEND_COLOR, false) + mCustomChargingColor = getInt(CUSTOM_BATTERY_CHARGING_COLOR, Color.BLACK) + mCustomFillColor = getInt(CUSTOM_BATTERY_FILL_COLOR, Color.BLACK) + mCustomFillGradColor = getInt(CUSTOM_BATTERY_FILL_GRAD_COLOR, Color.BLACK) + mCustomPowerSaveColor = getInt(CUSTOM_BATTERY_POWERSAVE_INDICATOR_COLOR, Color.BLACK) + mCustomPowerSaveFillColor = getInt(CUSTOM_BATTERY_POWERSAVE_FILL_COLOR, Color.BLACK) + mSwapPercentage = getBoolean(CUSTOM_BATTERY_SWAP_PERCENTAGE, false) + mChargingIconSwitch = getBoolean(CUSTOM_BATTERY_CHARGING_ICON_SWITCH, false) + mChargingIconStyle = getString(CUSTOM_BATTERY_CHARGING_ICON_STYLE, "0")!!.toInt() + mChargingIconML = getSliderInt(CUSTOM_BATTERY_CHARGING_ICON_MARGIN_LEFT, 1) + mChargingIconMR = getSliderInt(CUSTOM_BATTERY_CHARGING_ICON_MARGIN_RIGHT, 0) + mChargingIconWH = getSliderInt(CUSTOM_BATTERY_CHARGING_ICON_WIDTH_HEIGHT, 14) + mBatteryMarginLeft = mContext.toPx(getSliderInt(CUSTOM_BATTERY_MARGIN_LEFT, 4)) + mBatteryMarginTop = mContext.toPx(getSliderInt(CUSTOM_BATTERY_MARGIN_TOP, 0)) + mBatteryMarginRight = mContext.toPx(getSliderInt(CUSTOM_BATTERY_MARGIN_RIGHT, 4)) + mBatteryMarginBottom = mContext.toPx(getSliderInt(CUSTOM_BATTERY_MARGIN_BOTTOM, 0)) + } if (mBatteryStyle != batteryStyle) { mBatteryStyle = batteryStyle diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/ControllersProvider.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/ControllersProvider.kt index 4a867310e..4faf4e819 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/ControllersProvider.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/ControllersProvider.kt @@ -3,8 +3,9 @@ package com.drdisagree.iconify.xposed.modules import android.annotation.SuppressLint import android.content.Context import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_ENABLED -import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.ModPack +import com.drdisagree.iconify.xposed.utils.XPrefs.Xprefs +import com.drdisagree.iconify.xposed.utils.XPrefs.XprefsIsInitialized import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge.hookAllConstructors import de.robv.android.xposed.XposedBridge.hookAllMethods @@ -29,10 +30,9 @@ class ControllersProvider(context: Context?) : ModPack(context!!) { private val mDozeChangedListeners = ArrayList() override fun updatePrefs(vararg key: String) { - if (Xprefs == null) return - - mWidgetsEnabled = Xprefs!!.getBoolean(LOCKSCREEN_WIDGETS_ENABLED, false) + if (!XprefsIsInitialized) return + mWidgetsEnabled = Xprefs.getBoolean(LOCKSCREEN_WIDGETS_ENABLED, false) } override fun handleLoadPackage(loadPackageParam: XC_LoadPackage.LoadPackageParam) { @@ -41,7 +41,7 @@ class ControllersProvider(context: Context?) : ModPack(context!!) { instance = this // Network Callbacks - val CallbackHandler = findClass( + val callbackHandler = findClass( "com.android.systemui.statusbar.connectivity.CallbackHandler", loadPackageParam.classLoader ) @@ -49,7 +49,7 @@ class ControllersProvider(context: Context?) : ModPack(context!!) { // Mobile Data hookAllMethods( - CallbackHandler, + callbackHandler, "setMobileDataIndicators", object : XC_MethodHook() { @Throws(Throwable::class) @@ -58,7 +58,7 @@ class ControllersProvider(context: Context?) : ModPack(context!!) { } }) - hookAllMethods(CallbackHandler, "setIsAirplaneMode", object : XC_MethodHook() { + hookAllMethods(callbackHandler, "setIsAirplaneMode", object : XC_MethodHook() { @Throws(Throwable::class) override fun afterHookedMethod(param: MethodHookParam) { //mAirplane = (boolean) param.args[0]; @@ -66,7 +66,7 @@ class ControllersProvider(context: Context?) : ModPack(context!!) { } }) - hookAllMethods(CallbackHandler, "setNoSims", object : XC_MethodHook() { + hookAllMethods(callbackHandler, "setNoSims", object : XC_MethodHook() { @Throws(Throwable::class) override fun afterHookedMethod(param: MethodHookParam) { onSetNoSims(param.args[0] as Boolean, param.args[1] as Boolean) @@ -75,7 +75,7 @@ class ControllersProvider(context: Context?) : ModPack(context!!) { // WiFi - hookAllMethods(CallbackHandler, "setWifiIndicators", object : XC_MethodHook() { + hookAllMethods(callbackHandler, "setWifiIndicators", object : XC_MethodHook() { @Throws(Throwable::class) override fun afterHookedMethod(param: MethodHookParam) { onWifiChanged(param.args[0]) @@ -84,11 +84,11 @@ class ControllersProvider(context: Context?) : ModPack(context!!) { // Network Controller from Internet Tile try { - val InternetTile = findClass( + val internetTile = findClass( "com.android.systemui.qs.tiles.InternetTile", loadPackageParam.classLoader ) - hookAllConstructors(InternetTile, object : XC_MethodHook() { + hookAllConstructors(internetTile, object : XC_MethodHook() { @Throws(Throwable::class) override fun afterHookedMethod(param: MethodHookParam) { mCellularTile = param.thisObject @@ -100,18 +100,18 @@ class ControllersProvider(context: Context?) : ModPack(context!!) { // Bluetooth Controller try { - val BluetoothControllerImpl = findClass( + val bluetoothControllerImpl = findClass( "com.android.systemui.statusbar.policy.BluetoothControllerImpl", loadPackageParam.classLoader ) - hookAllConstructors(BluetoothControllerImpl, object : XC_MethodHook() { + hookAllConstructors(bluetoothControllerImpl, object : XC_MethodHook() { @Throws(Throwable::class) override fun afterHookedMethod(param: MethodHookParam) { mBluetoothController = param.thisObject } }) hookAllMethods( - BluetoothControllerImpl, + bluetoothControllerImpl, "onBluetoothStateChanged", object : XC_MethodHook() { @Throws(Throwable::class) @@ -121,7 +121,7 @@ class ControllersProvider(context: Context?) : ModPack(context!!) { } }) hookAllMethods( - BluetoothControllerImpl, + bluetoothControllerImpl, "onConnectionStateChanged", object : XC_MethodHook() { @Throws(Throwable::class) @@ -133,14 +133,29 @@ class ControllersProvider(context: Context?) : ModPack(context!!) { log(TAG + "BluetoothControllerImpl not found " + t.message) } + // Get Bluetooth Tile for Dialog + try { + val BluetoothTile = findClass( + "com.android.systemui.qs.tiles.BluetoothTile", + loadPackageParam.classLoader + ) + hookAllConstructors(BluetoothTile, object : XC_MethodHook() { + @Throws(Throwable::class) + override fun afterHookedMethod(param: MethodHookParam) { + mBluetoothTile = param.thisObject + } + }) + } catch (t: Throwable) { + log(TAG + "BluetoothTile not found " + t.message) + } // Stole FlashLight Callback try { - val FlashlightControllerImpl = findClass( + val flashlightControllerImpl = findClass( "com.android.systemui.statusbar.policy.FlashlightControllerImpl", loadPackageParam.classLoader ) - hookAllConstructors(FlashlightControllerImpl, object : XC_MethodHook() { + hookAllConstructors(flashlightControllerImpl, object : XC_MethodHook() { @Throws(Throwable::class) override fun afterHookedMethod(param: MethodHookParam) { val mTorchCallback = getObjectField(param.thisObject, "mTorchCallback") @@ -164,12 +179,12 @@ class ControllersProvider(context: Context?) : ModPack(context!!) { // Get an Hotspot Callback try { - val HotspotControllerImpl = findClass( + val hotspotControllerImpl = findClass( "com.android.systemui.statusbar.policy.HotspotControllerImpl", loadPackageParam.classLoader ) hookAllMethods( - HotspotControllerImpl, + hotspotControllerImpl, "fireHotspotChangedCallback", object : XC_MethodHook() { @Throws(Throwable::class) @@ -185,11 +200,11 @@ class ControllersProvider(context: Context?) : ModPack(context!!) { } - // Hostpost Tile - for settings Hotspot + // Hotspot Tile - for settings Hotspot try { - val HotspotTile = + val hotspotTile = findClass("com.android.systemui.qs.tiles.HotspotTile", loadPackageParam.classLoader) - hookAllConstructors(HotspotTile, object : XC_MethodHook() { + hookAllConstructors(hotspotTile, object : XC_MethodHook() { @Throws(Throwable::class) override fun afterHookedMethod(param: MethodHookParam) { mHotspotTile = param.thisObject @@ -197,17 +212,17 @@ class ControllersProvider(context: Context?) : ModPack(context!!) { } }) } catch (t: Throwable) { - log(TAG + "OplusHotspotTile error: " + t.message) + log(TAG + "HotspotTile error: " + t.message) } // Home Controls Tile - for ControlsActivity try { - val DeviceControlsTile = + val deviceControlsTile = findClass( "com.android.systemui.qs.tiles.DeviceControlsTile", loadPackageParam.classLoader ) - hookAllConstructors(DeviceControlsTile, object : XC_MethodHook() { + hookAllConstructors(deviceControlsTile, object : XC_MethodHook() { @Throws(Throwable::class) override fun afterHookedMethod(param: MethodHookParam) { mDeviceControlsTile = param.thisObject @@ -220,11 +235,11 @@ class ControllersProvider(context: Context?) : ModPack(context!!) { // Wallet Tile - for opening wallet try { - val QuickAccessWalletTile = findClass( + val quickAccessWalletTile = findClass( "com.android.systemui.qs.tiles.QuickAccessWalletTile", loadPackageParam.classLoader ) - hookAllConstructors(QuickAccessWalletTile, object : XC_MethodHook() { + hookAllConstructors(quickAccessWalletTile, object : XC_MethodHook() { @Throws(Throwable::class) override fun afterHookedMethod(param: MethodHookParam) { mWalletTile = param.thisObject @@ -236,8 +251,11 @@ class ControllersProvider(context: Context?) : ModPack(context!!) { // Doze Callback try { - val DozeScrimController = findClass("com.android.systemui.statusbar.phone.DozeScrimController", loadPackageParam.classLoader) - hookAllMethods(DozeScrimController, "onDozingChanged", object : XC_MethodHook() { + val dozeScrimController = findClass( + "com.android.systemui.statusbar.phone.DozeScrimController", + loadPackageParam.classLoader + ) + hookAllMethods(dozeScrimController, "onDozingChanged", object : XC_MethodHook() { @Throws(Throwable::class) override fun afterHookedMethod(param: MethodHookParam) { onDozingChanged(param.args[0] as Boolean) @@ -379,10 +397,10 @@ class ControllersProvider(context: Context?) : ModPack(context!!) { } } - private fun onWifiChanged(WifiIndicators: Any) { + private fun onWifiChanged(wifiIndicators: Any) { for (callback in mWifiChangedListeners) { try { - callback.onWifiChanged(WifiIndicators) + callback.onWifiChanged(wifiIndicators) } catch (ignored: Throwable) { } } @@ -434,7 +452,7 @@ class ControllersProvider(context: Context?) : ModPack(context!!) { var mBluetoothController: Any? = null var mHotspotController: Any? = null - val mBluetoothTile: Any? = null + var mBluetoothTile: Any? = null var mHotspotTile: Any? = null var mCellularTile: Any? = null var mDeviceControlsTile: Any? = null diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/DepthWallpaper.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/DepthWallpaper.kt index a1a5aa648..43b0c33c0 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/DepthWallpaper.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/DepthWallpaper.kt @@ -29,10 +29,11 @@ import com.drdisagree.iconify.common.Preferences.DEPTH_WALLPAPER_SWITCH import com.drdisagree.iconify.common.Preferences.ICONIFY_DEPTH_WALLPAPER_TAG import com.drdisagree.iconify.common.Preferences.ICONIFY_LOCKSCREEN_CLOCK_TAG import com.drdisagree.iconify.common.Preferences.UNZOOM_DEPTH_WALLPAPER -import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.ModPack import com.drdisagree.iconify.xposed.modules.utils.ParallaxImageView import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.toPx +import com.drdisagree.iconify.xposed.utils.XPrefs.Xprefs +import com.drdisagree.iconify.xposed.utils.XPrefs.XprefsIsInitialized import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge.hookAllMethods import de.robv.android.xposed.XposedHelpers.findClass @@ -59,15 +60,17 @@ class DepthWallpaper(context: Context?) : ModPack(context!!) { private var foregroundAlpha = 1.0f override fun updatePrefs(vararg key: String) { - if (Xprefs == null) return - - showDepthWallpaper = Xprefs!!.getBoolean(DEPTH_WALLPAPER_SWITCH, false) - showFadingAnimation = Xprefs!!.getBoolean(DEPTH_WALLPAPER_FADE_ANIMATION, false) - enableParallaxEffect = Xprefs!!.getBoolean(DEPTH_WALLPAPER_PARALLAX_EFFECT, false) - backgroundMovement = Xprefs!!.getFloat(DEPTH_WALLPAPER_BACKGROUND_MOVEMENT_MULTIPLIER, 1.0f) - foregroundMovement = Xprefs!!.getFloat(DEPTH_WALLPAPER_FOREGROUND_MOVEMENT_MULTIPLIER, 3.0f) - unzoomWallpaper = Xprefs!!.getBoolean(UNZOOM_DEPTH_WALLPAPER, false) - foregroundAlpha = Xprefs!!.getInt(DEPTH_WALLPAPER_FOREGROUND_ALPHA, 80) / 100.0f + if (!XprefsIsInitialized) return + + Xprefs.apply { + showDepthWallpaper = getBoolean(DEPTH_WALLPAPER_SWITCH, false) + showFadingAnimation = getBoolean(DEPTH_WALLPAPER_FADE_ANIMATION, false) + enableParallaxEffect = getBoolean(DEPTH_WALLPAPER_PARALLAX_EFFECT, false) + backgroundMovement = getFloat(DEPTH_WALLPAPER_BACKGROUND_MOVEMENT_MULTIPLIER, 1.0f) + foregroundMovement = getFloat(DEPTH_WALLPAPER_FOREGROUND_MOVEMENT_MULTIPLIER, 3.0f) + unzoomWallpaper = getBoolean(UNZOOM_DEPTH_WALLPAPER, false) + foregroundAlpha = getSliderInt(DEPTH_WALLPAPER_FOREGROUND_ALPHA, 80) / 100.0f + } if (key.isNotEmpty() && (key[0] == DEPTH_WALLPAPER_SWITCH || diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/DepthWallpaperA14.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/DepthWallpaperA14.kt index 5961b17b6..281b9f784 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/DepthWallpaperA14.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/DepthWallpaperA14.kt @@ -27,10 +27,11 @@ import com.drdisagree.iconify.common.Preferences.DEPTH_WALLPAPER_FOREGROUND_ALPH import com.drdisagree.iconify.common.Preferences.DEPTH_WALLPAPER_FOREGROUND_MOVEMENT_MULTIPLIER import com.drdisagree.iconify.common.Preferences.DEPTH_WALLPAPER_ON_AOD import com.drdisagree.iconify.common.Preferences.DEPTH_WALLPAPER_SWITCH -import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.HookEntry.Companion.enqueueProxyCommand import com.drdisagree.iconify.xposed.ModPack import com.drdisagree.iconify.xposed.modules.utils.Helpers.findClassInArray +import com.drdisagree.iconify.xposed.utils.XPrefs.Xprefs +import com.drdisagree.iconify.xposed.utils.XPrefs.XprefsIsInitialized import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge.hookAllConstructors import de.robv.android.xposed.XposedBridge.hookAllMethods @@ -70,14 +71,16 @@ class DepthWallpaperA14(context: Context?) : ModPack(context!!) { .toString() + "/.iconify_files/depth_wallpaper_bg.png" override fun updatePrefs(vararg key: String) { - if (Xprefs == null) return - - showDepthWallpaper = Xprefs!!.getBoolean(DEPTH_WALLPAPER_SWITCH, false) - showCustomImages = Xprefs!!.getBoolean(CUSTOM_DEPTH_WALLPAPER_SWITCH, false) - backgroundMovement = Xprefs!!.getFloat(DEPTH_WALLPAPER_BACKGROUND_MOVEMENT_MULTIPLIER, 1.0f) - foregroundMovement = Xprefs!!.getFloat(DEPTH_WALLPAPER_FOREGROUND_MOVEMENT_MULTIPLIER, 3.0f) - foregroundAlpha = Xprefs!!.getInt(DEPTH_WALLPAPER_FOREGROUND_ALPHA, 80) / 100.0f - showOnAOD = Xprefs!!.getBoolean(DEPTH_WALLPAPER_ON_AOD, true) + if (!XprefsIsInitialized) return + + Xprefs.apply { + showDepthWallpaper = getBoolean(DEPTH_WALLPAPER_SWITCH, false) + showCustomImages = getBoolean(CUSTOM_DEPTH_WALLPAPER_SWITCH, false) + backgroundMovement = getFloat(DEPTH_WALLPAPER_BACKGROUND_MOVEMENT_MULTIPLIER, 1.0f) + foregroundMovement = getFloat(DEPTH_WALLPAPER_FOREGROUND_MOVEMENT_MULTIPLIER, 3.0f) + foregroundAlpha = getSliderInt(DEPTH_WALLPAPER_FOREGROUND_ALPHA, 80) / 100.0f + showOnAOD = getBoolean(DEPTH_WALLPAPER_ON_AOD, true) + } if (key.isNotEmpty()) { key[0].let { diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/HeaderClock.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/HeaderClock.kt index b82c56a87..55d99b03d 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/HeaderClock.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/HeaderClock.kt @@ -49,7 +49,6 @@ import com.drdisagree.iconify.common.Preferences.HEADER_CLOCK_SWITCH import com.drdisagree.iconify.common.Preferences.HEADER_CLOCK_TOPMARGIN import com.drdisagree.iconify.common.Preferences.ICONIFY_HEADER_CLOCK_TAG import com.drdisagree.iconify.common.Resources -import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.utils.TextUtil import com.drdisagree.iconify.xposed.HookRes.Companion.resParams import com.drdisagree.iconify.xposed.ModPack @@ -59,6 +58,8 @@ import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.applyTextScalingRe import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.findViewContainsTag import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.findViewWithTagAndChangeColor import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.setMargins +import com.drdisagree.iconify.xposed.utils.XPrefs.Xprefs +import com.drdisagree.iconify.xposed.utils.XPrefs.XprefsIsInitialized import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge.hookAllConstructors import de.robv.android.xposed.XposedBridge.hookAllMethods @@ -107,11 +108,13 @@ class HeaderClock(context: Context?) : ModPack(context!!) { } override fun updatePrefs(vararg key: String) { - if (Xprefs == null) return + if (!XprefsIsInitialized) return - showHeaderClock = Xprefs!!.getBoolean(HEADER_CLOCK_SWITCH, false) - centeredClockView = Xprefs!!.getBoolean(HEADER_CLOCK_CENTERED, false) - hideLandscapeHeaderClock = Xprefs!!.getBoolean(HEADER_CLOCK_LANDSCAPE_SWITCH, true) + Xprefs.apply { + showHeaderClock = getBoolean(HEADER_CLOCK_SWITCH, false) + centeredClockView = getBoolean(HEADER_CLOCK_CENTERED, false) + hideLandscapeHeaderClock = getBoolean(HEADER_CLOCK_LANDSCAPE_SWITCH, true) + } if (key.isNotEmpty() && (key[0] == HEADER_CLOCK_SWITCH || @@ -497,10 +500,10 @@ class HeaderClock(context: Context?) : ModPack(context!!) { private val clockView: View? get() { - if (appContext == null || Xprefs == null) return null + if (appContext == null || !XprefsIsInitialized) return null val inflater = LayoutInflater.from(appContext) - val clockStyle: Int = Xprefs!!.getInt(HEADER_CLOCK_STYLE, 0) + val clockStyle: Int = Xprefs.getString(HEADER_CLOCK_STYLE, "0")!!.toInt() return inflater.inflate( appContext!!.resources.getIdentifier( @@ -513,17 +516,17 @@ class HeaderClock(context: Context?) : ModPack(context!!) { } private fun modifyClockView(clockView: View) { - if (Xprefs == null) return + if (!XprefsIsInitialized) return - val clockStyle: Int = Xprefs!!.getInt(HEADER_CLOCK_STYLE, 0) - val customFontEnabled: Boolean = Xprefs!!.getBoolean(HEADER_CLOCK_FONT_SWITCH, false) + val clockStyle: Int = Xprefs.getString(HEADER_CLOCK_STYLE, "0")!!.toInt() + val customFontEnabled: Boolean = Xprefs.getBoolean(HEADER_CLOCK_FONT_SWITCH, false) val clockScale: Float = - (Xprefs!!.getInt(HEADER_CLOCK_FONT_TEXT_SCALING, 10) / 10.0).toFloat() - val sideMargin: Int = Xprefs!!.getInt(HEADER_CLOCK_SIDEMARGIN, 0) - val topMargin: Int = Xprefs!!.getInt(HEADER_CLOCK_TOPMARGIN, 8) + (Xprefs.getSliderInt(HEADER_CLOCK_FONT_TEXT_SCALING, 10) / 10.0).toFloat() + val sideMargin: Int = Xprefs.getSliderInt(HEADER_CLOCK_SIDEMARGIN, 0) + val topMargin: Int = Xprefs.getSliderInt(HEADER_CLOCK_TOPMARGIN, 8) val customFont = Environment.getExternalStorageDirectory().toString() + "/.iconify_files/headerclock_font.ttf" - val accent1: Int = Xprefs!!.getInt( + val accent1: Int = Xprefs.getInt( HEADER_CLOCK_COLOR_CODE_ACCENT1, mContext.resources.getColor( mContext.resources.getIdentifier( @@ -533,7 +536,7 @@ class HeaderClock(context: Context?) : ModPack(context!!) { ), mContext.theme ) ) - val accent2: Int = Xprefs!!.getInt( + val accent2: Int = Xprefs.getInt( HEADER_CLOCK_COLOR_CODE_ACCENT2, mContext.resources.getColor( mContext.resources.getIdentifier( @@ -543,7 +546,7 @@ class HeaderClock(context: Context?) : ModPack(context!!) { ), mContext.theme ) ) - val accent3: Int = Xprefs!!.getInt( + val accent3: Int = Xprefs.getInt( HEADER_CLOCK_COLOR_CODE_ACCENT3, mContext.resources.getColor( mContext.resources.getIdentifier( @@ -553,11 +556,11 @@ class HeaderClock(context: Context?) : ModPack(context!!) { ), mContext.theme ) ) - val textPrimary: Int = Xprefs!!.getInt( + val textPrimary: Int = Xprefs.getInt( HEADER_CLOCK_COLOR_CODE_TEXT1, getColorResCompat(mContext, android.R.attr.textColorPrimary) ) - val textInverse: Int = Xprefs!!.getInt( + val textInverse: Int = Xprefs.getInt( HEADER_CLOCK_COLOR_CODE_TEXT2, getColorResCompat(mContext, android.R.attr.textColorPrimaryInverse) ) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/HeaderImage.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/HeaderImage.kt index d40ee41aa..8aaf1fb39 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/HeaderImage.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/HeaderImage.kt @@ -28,9 +28,10 @@ import com.drdisagree.iconify.common.Preferences.HEADER_IMAGE_LANDSCAPE_SWITCH import com.drdisagree.iconify.common.Preferences.HEADER_IMAGE_OVERLAP import com.drdisagree.iconify.common.Preferences.HEADER_IMAGE_SWITCH import com.drdisagree.iconify.common.Preferences.HEADER_IMAGE_ZOOMTOFIT -import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.ModPack import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.toPx +import com.drdisagree.iconify.xposed.utils.XPrefs.Xprefs +import com.drdisagree.iconify.xposed.utils.XPrefs.XprefsIsInitialized import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge.hookAllMethods import de.robv.android.xposed.XposedBridge.log @@ -67,15 +68,17 @@ class HeaderImage(context: Context?) : ModPack(context!!) { } override fun updatePrefs(vararg key: String) { - if (Xprefs == null) return - - showHeaderImage = Xprefs!!.getBoolean(HEADER_IMAGE_SWITCH, false) - headerImageAlpha = Xprefs!!.getInt(HEADER_IMAGE_ALPHA, 100) - imageHeight = Xprefs!!.getInt(HEADER_IMAGE_HEIGHT, 140) - zoomToFit = Xprefs!!.getBoolean(HEADER_IMAGE_ZOOMTOFIT, false) - headerImageOverlap = Xprefs!!.getBoolean(HEADER_IMAGE_OVERLAP, false) - hideLandscapeHeaderImage = Xprefs!!.getBoolean(HEADER_IMAGE_LANDSCAPE_SWITCH, true) - bottomFadeAmount = mContext.toPx(Xprefs!!.getInt(HEADER_IMAGE_BOTTOM_FADE_AMOUNT, 40)) + if (!XprefsIsInitialized) return + + Xprefs.apply { + showHeaderImage = getBoolean(HEADER_IMAGE_SWITCH, false) + headerImageAlpha = getSliderInt(HEADER_IMAGE_ALPHA, 100) + imageHeight = getSliderInt(HEADER_IMAGE_HEIGHT, 140) + zoomToFit = getBoolean(HEADER_IMAGE_ZOOMTOFIT, false) + headerImageOverlap = getBoolean(HEADER_IMAGE_OVERLAP, false) + hideLandscapeHeaderImage = getBoolean(HEADER_IMAGE_LANDSCAPE_SWITCH, true) + bottomFadeAmount = mContext.toPx(getSliderInt(HEADER_IMAGE_BOTTOM_FADE_AMOUNT, 40)) + } if (key.isNotEmpty() && (key[0] == HEADER_IMAGE_SWITCH || diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenClock.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenClock.kt index 7adb57fc2..4db0e88c8 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenClock.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenClock.kt @@ -56,7 +56,6 @@ import com.drdisagree.iconify.common.Preferences.LSCLOCK_SWITCH import com.drdisagree.iconify.common.Preferences.LSCLOCK_TOPMARGIN import com.drdisagree.iconify.common.Preferences.LSCLOCK_USERNAME import com.drdisagree.iconify.common.Resources.LOCKSCREEN_CLOCK_LAYOUT -import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.utils.TextUtil import com.drdisagree.iconify.xposed.ModPack import com.drdisagree.iconify.xposed.modules.utils.ArcProgressWidget.generateBitmap @@ -67,6 +66,8 @@ import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.applyTextScalingRe import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.findViewContainsTag import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.findViewWithTagAndChangeColor import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.setMargins +import com.drdisagree.iconify.xposed.utils.XPrefs.Xprefs +import com.drdisagree.iconify.xposed.utils.XPrefs.XprefsIsInitialized import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge.hookAllMethods import de.robv.android.xposed.XposedBridge.log @@ -117,13 +118,14 @@ class LockscreenClock(context: Context?) : ModPack(context!!) { } override fun updatePrefs(vararg key: String) { - if (Xprefs == null) return + if (!XprefsIsInitialized) return val isAndroid13OrBelow = Build.VERSION.SDK_INT <= Build.VERSION_CODES.TIRAMISU - showLockscreenClock = Xprefs!!.getBoolean(LSCLOCK_SWITCH, false) - showDepthWallpaper = Xprefs!!.getBoolean(DEPTH_WALLPAPER_SWITCH, false) - && isAndroid13OrBelow + Xprefs.apply { + showLockscreenClock = getBoolean(LSCLOCK_SWITCH, false) + showDepthWallpaper = isAndroid13OrBelow && getBoolean(DEPTH_WALLPAPER_SWITCH, false) + } if (key.isNotEmpty() && (key[0] == LSCLOCK_SWITCH || @@ -387,10 +389,10 @@ class LockscreenClock(context: Context?) : ModPack(context!!) { private val clockView: View? get() { - if (appContext == null || Xprefs == null) return null + if (appContext == null || !XprefsIsInitialized) return null val inflater = LayoutInflater.from(appContext) - val clockStyle: Int = Xprefs!!.getInt(LSCLOCK_STYLE, 0) + val clockStyle: Int = Xprefs.getString(LSCLOCK_STYLE, "0")!!.toInt() val view: View = inflater.inflate( appContext!!.resources.getIdentifier( @@ -405,22 +407,22 @@ class LockscreenClock(context: Context?) : ModPack(context!!) { } private fun modifyClockView(clockView: View) { - if (Xprefs == null) return + if (!XprefsIsInitialized) return - val clockStyle: Int = Xprefs!!.getInt(LSCLOCK_STYLE, 0) - val topMargin: Int = Xprefs!!.getInt(LSCLOCK_TOPMARGIN, 100) - val bottomMargin: Int = Xprefs!!.getInt(LSCLOCK_BOTTOMMARGIN, 40) + val clockStyle: Int = Xprefs.getString(LSCLOCK_STYLE, "0")!!.toInt() + val topMargin: Int = Xprefs.getSliderInt(LSCLOCK_TOPMARGIN, 100) + val bottomMargin: Int = Xprefs.getSliderInt(LSCLOCK_BOTTOMMARGIN, 40) val textScaleFactor: Float = - (Xprefs!!.getInt(LSCLOCK_FONT_TEXT_SCALING, 10) / 10.0).toFloat() + (Xprefs.getSliderInt(LSCLOCK_FONT_TEXT_SCALING, 10) / 10.0).toFloat() val customFont = Environment.getExternalStorageDirectory().toString() + "/.iconify_files/lsclock_font.ttf" - val lineHeight: Int = Xprefs!!.getInt(LSCLOCK_FONT_LINEHEIGHT, 0) - val customFontEnabled: Boolean = Xprefs!!.getBoolean(LSCLOCK_FONT_SWITCH, false) - val customColorEnabled: Boolean = Xprefs!!.getBoolean(LSCLOCK_COLOR_SWITCH, false) - val customUserName: String = Xprefs!!.getString(LSCLOCK_USERNAME, "").toString() - val customDeviceName: String = Xprefs!!.getString(LSCLOCK_DEVICENAME, "").toString() + val lineHeight: Int = Xprefs.getSliderInt(LSCLOCK_FONT_LINEHEIGHT, 0) + val customFontEnabled: Boolean = Xprefs.getBoolean(LSCLOCK_FONT_SWITCH, false) + val customColorEnabled: Boolean = Xprefs.getBoolean(LSCLOCK_COLOR_SWITCH, false) + val customUserName: String = Xprefs.getString(LSCLOCK_USERNAME, "").toString() + val customDeviceName: String = Xprefs.getString(LSCLOCK_DEVICENAME, "").toString() - val accent1: Int = Xprefs!!.getInt( + val accent1: Int = Xprefs.getInt( LSCLOCK_COLOR_CODE_ACCENT1, mContext.resources.getColor( mContext.resources.getIdentifier( @@ -430,7 +432,7 @@ class LockscreenClock(context: Context?) : ModPack(context!!) { ), mContext.theme ) ) - val accent2: Int = Xprefs!!.getInt( + val accent2: Int = Xprefs.getInt( LSCLOCK_COLOR_CODE_ACCENT2, mContext.resources.getColor( mContext.resources.getIdentifier( @@ -440,7 +442,7 @@ class LockscreenClock(context: Context?) : ModPack(context!!) { ), mContext.theme ) ) - val accent3: Int = Xprefs!!.getInt( + val accent3: Int = Xprefs.getInt( LSCLOCK_COLOR_CODE_ACCENT3, mContext.resources.getColor( mContext.resources.getIdentifier( @@ -450,11 +452,11 @@ class LockscreenClock(context: Context?) : ModPack(context!!) { ), mContext.theme ) ) - val text1: Int = Xprefs!!.getInt( + val text1: Int = Xprefs.getInt( LSCLOCK_COLOR_CODE_TEXT1, Color.WHITE ) - val text2: Int = Xprefs!!.getInt( + val text2: Int = Xprefs.getInt( LSCLOCK_COLOR_CODE_TEXT2, Color.BLACK ) @@ -591,7 +593,7 @@ class LockscreenClock(context: Context?) : ModPack(context!!) { val maxVolLevel = mAudioManager!!.getStreamMaxVolume(AudioManager.STREAM_MUSIC) val volPercent = (volLevel.toFloat() / maxVolLevel * 100).toInt() val textScaleFactor: Float = - (Xprefs!!.getInt(LSCLOCK_FONT_TEXT_SCALING, 10) / 10.0).toFloat() + (Xprefs.getSliderInt(LSCLOCK_FONT_TEXT_SCALING, 10) / 10.0).toFloat() val reduceFactor = if (textScaleFactor > 1f) 0.91f else 1f mVolumeProgress?.progress = volPercent @@ -625,7 +627,7 @@ class LockscreenClock(context: Context?) : ModPack(context!!) { val usedMemory = memoryInfo.totalMem - memoryInfo.availMem val usedMemoryPercentage = (usedMemory * 100 / memoryInfo.totalMem).toInt() val textScaleFactor: Float = - (Xprefs!!.getInt(LSCLOCK_FONT_TEXT_SCALING, 10) / 10.0).toFloat() + (Xprefs.getSliderInt(LSCLOCK_FONT_TEXT_SCALING, 10) / 10.0).toFloat() val reduceFactor = if (textScaleFactor > 1f) 0.91f else 1f mRamUsageArcProgress?.setImageBitmap( diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt index 73c4d039a..02fca034b 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWeather.kt @@ -24,10 +24,11 @@ import com.drdisagree.iconify.common.Preferences.WEATHER_SWITCH import com.drdisagree.iconify.common.Preferences.WEATHER_TEXT_COLOR import com.drdisagree.iconify.common.Preferences.WEATHER_TEXT_COLOR_SWITCH import com.drdisagree.iconify.common.Preferences.WEATHER_TEXT_SIZE -import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.ModPack import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.setMargins import com.drdisagree.iconify.xposed.modules.views.CurrentWeatherView +import com.drdisagree.iconify.xposed.utils.XPrefs.Xprefs +import com.drdisagree.iconify.xposed.utils.XPrefs.XprefsIsInitialized import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge.hookAllMethods import de.robv.android.xposed.XposedHelpers.findClass @@ -56,23 +57,25 @@ class LockscreenWeather(context: Context?) : ModPack(context!!) { private var mStatusArea: ViewGroup? = null override fun updatePrefs(vararg key: String) { - if (Xprefs == null) return - - customLockscreenClock = Xprefs!!.getBoolean(LSCLOCK_SWITCH, false) - weatherEnabled = Xprefs!!.getBoolean(WEATHER_SWITCH, false) - weatherShowLocation = Xprefs!!.getBoolean(WEATHER_SHOW_LOCATION, true) - weatherShowCondition = Xprefs!!.getBoolean(WEATHER_SHOW_CONDITION, true) - weatherShowHumidity = Xprefs!!.getBoolean(WEATHER_SHOW_HUMIDITY, false) - weatherShowWind = Xprefs!!.getBoolean(WEATHER_SHOW_WIND, false) - weatherCustomColor = Xprefs!!.getBoolean(WEATHER_TEXT_COLOR_SWITCH, false) - weatherColor = Xprefs!!.getInt(WEATHER_TEXT_COLOR, Color.WHITE) - weatherTextSize = Xprefs!!.getInt(WEATHER_TEXT_SIZE, 16) - weatherImageSize = Xprefs!!.getInt(WEATHER_ICON_SIZE, 18) - mSideMargin = Xprefs!!.getInt(WEATHER_CUSTOM_MARGINS_SIDE, 20) - mTopMargin = Xprefs!!.getInt(WEATHER_CUSTOM_MARGINS_TOP, 20) - mBottomMargin = Xprefs!!.getInt(WEATHER_CUSTOM_MARGINS_BOTTOM, 20) - mWeatherBackground = Xprefs!!.getInt(WEATHER_STYLE, 0) - mCenterWeather = Xprefs!!.getBoolean(WEATHER_CENTER_VIEW, false) + if (!XprefsIsInitialized) return + + Xprefs.apply { + customLockscreenClock = getBoolean(LSCLOCK_SWITCH, false) + weatherEnabled = getBoolean(WEATHER_SWITCH, false) + weatherShowLocation = getBoolean(WEATHER_SHOW_LOCATION, true) + weatherShowCondition = getBoolean(WEATHER_SHOW_CONDITION, true) + weatherShowHumidity = getBoolean(WEATHER_SHOW_HUMIDITY, false) + weatherShowWind = getBoolean(WEATHER_SHOW_WIND, false) + weatherCustomColor = getBoolean(WEATHER_TEXT_COLOR_SWITCH, false) + weatherColor = getInt(WEATHER_TEXT_COLOR, Color.WHITE) + weatherTextSize = getSliderInt(WEATHER_TEXT_SIZE, 16) + weatherImageSize = getSliderInt(WEATHER_ICON_SIZE, 18) + mSideMargin = getSliderInt(WEATHER_CUSTOM_MARGINS_SIDE, 20) + mTopMargin = getSliderInt(WEATHER_CUSTOM_MARGINS_TOP, 20) + mBottomMargin = getSliderInt(WEATHER_CUSTOM_MARGINS_BOTTOM, 20) + mWeatherBackground = getInt(WEATHER_STYLE, 0) + mCenterWeather = getBoolean(WEATHER_CENTER_VIEW, false) + } if (key.isNotEmpty() && (key[0] == WEATHER_SHOW_LOCATION || diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWidgets.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWidgets.kt index 9972bdb05..187d081b2 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWidgets.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/LockscreenWidgets.kt @@ -1,5 +1,6 @@ package com.drdisagree.iconify.xposed.modules +import android.annotation.SuppressLint import android.content.BroadcastReceiver import android.content.Context import android.content.Intent @@ -31,10 +32,11 @@ import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_SMALL_ICON_I import com.drdisagree.iconify.common.Preferences.LOCKSCREEN_WIDGETS_SMALL_INACTIVE import com.drdisagree.iconify.common.Preferences.LSCLOCK_SWITCH import com.drdisagree.iconify.common.Preferences.WEATHER_SWITCH -import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.ModPack import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.setMargins import com.drdisagree.iconify.xposed.modules.views.LockscreenWidgetsView +import com.drdisagree.iconify.xposed.utils.XPrefs.Xprefs +import com.drdisagree.iconify.xposed.utils.XPrefs.XprefsIsInitialized import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge import de.robv.android.xposed.XposedBridge.hookAllMethods @@ -89,7 +91,6 @@ class LockscreenWidgets(context: Context?) : ModPack(context!!) { override fun onReceive(context: Context?, intent: Intent?) { if (intent != null && intent.action != null) { if (intent.action == ACTION_WEATHER_INFLATED && mWidgetsEnabled) { - log(TAG + "Weather inflated") lsWeatherInflated = true placeWidgets() } @@ -98,39 +99,39 @@ class LockscreenWidgets(context: Context?) : ModPack(context!!) { } override fun updatePrefs(vararg key: String) { - if (Xprefs == null) return - - // Ls custom clock - customLockscreenClock = Xprefs!!.getBoolean(LSCLOCK_SWITCH, false) - - // Ls weather - lsWeather = Xprefs!!.getBoolean(WEATHER_SWITCH, false) - - // Widgets - mWidgetsEnabled = Xprefs!!.getBoolean(LOCKSCREEN_WIDGETS_ENABLED, false) - mDeviceWidgetEnabled = Xprefs!!.getBoolean(LOCKSCREEN_WIDGETS_DEVICE_WIDGET, false) - mMainWidgets = Xprefs!!.getString(LOCKSCREEN_WIDGETS, "")!! - mExtraWidgets = Xprefs!!.getString(LOCKSCREEN_WIDGETS_EXTRAS, "")!! - mDeviceCustomColor = - Xprefs!!.getBoolean(LOCKSCREEN_WIDGETS_DEVICE_WIDGET_CUSTOM_COLOR_SWITCH, false) - mDeviceLinearColor = - Xprefs!!.getInt(LOCKSCREEN_WIDGETS_DEVICE_WIDGET_LINEAR_COLOR, Color.WHITE) - mDeviceCircularColor = - Xprefs!!.getInt(LOCKSCREEN_WIDGETS_DEVICE_WIDGET_CIRCULAR_COLOR, Color.WHITE) - mDeviceTextColor = Xprefs!!.getInt(LOCKSCREEN_WIDGETS_DEVICE_WIDGET_TEXT_COLOR, Color.WHITE) - mDeviceName = Xprefs!!.getString(LOCKSCREEN_WIDGETS_DEVICE_WIDGET_DEVICE, "")!! - mWidgetsCustomColor = Xprefs!!.getBoolean(LOCKSCREEN_WIDGETS_CUSTOM_COLOR, false) - mBigInactiveColor = Xprefs!!.getInt(LOCKSCREEN_WIDGETS_BIG_INACTIVE, Color.BLACK) - mBigActiveColor = Xprefs!!.getInt(LOCKSCREEN_WIDGETS_BIG_ACTIVE, Color.WHITE) - mSmallInactiveColor = Xprefs!!.getInt(LOCKSCREEN_WIDGETS_SMALL_INACTIVE, Color.BLACK) - mSmallActiveColor = Xprefs!!.getInt(LOCKSCREEN_WIDGETS_SMALL_ACTIVE, Color.WHITE) - mBigIconActiveColor = Xprefs!!.getInt(LOCKSCREEN_WIDGETS_BIG_ICON_ACTIVE, Color.BLACK) - mBigIconInactiveColor = Xprefs!!.getInt(LOCKSCREEN_WIDGETS_BIG_ICON_INACTIVE, Color.WHITE) - mSmallIconActiveColor = Xprefs!!.getInt(LOCKSCREEN_WIDGETS_SMALL_ICON_ACTIVE, Color.BLACK) - mSmallIconInactiveColor = - Xprefs!!.getInt(LOCKSCREEN_WIDGETS_SMALL_ICON_INACTIVE, Color.WHITE) - mBottomMargin = Xprefs!!.getInt(LOCKSCREEN_WIDGETS_BOTTOM_MARGIN, 0) - + if (!XprefsIsInitialized) return + + Xprefs.apply { + // Ls custom clock + customLockscreenClock = getBoolean(LSCLOCK_SWITCH, false) + + // Ls weather + lsWeather = getBoolean(WEATHER_SWITCH, false) + + // Widgets + mWidgetsEnabled = getBoolean(LOCKSCREEN_WIDGETS_ENABLED, false) + mDeviceWidgetEnabled = getBoolean(LOCKSCREEN_WIDGETS_DEVICE_WIDGET, false) + mMainWidgets = getString(LOCKSCREEN_WIDGETS, "")!! + mExtraWidgets = getString(LOCKSCREEN_WIDGETS_EXTRAS, "")!! + mDeviceCustomColor = + getBoolean(LOCKSCREEN_WIDGETS_DEVICE_WIDGET_CUSTOM_COLOR_SWITCH, false) + mDeviceLinearColor = getInt(LOCKSCREEN_WIDGETS_DEVICE_WIDGET_LINEAR_COLOR, Color.WHITE) + mDeviceCircularColor = + getInt(LOCKSCREEN_WIDGETS_DEVICE_WIDGET_CIRCULAR_COLOR, Color.WHITE) + mDeviceTextColor = getInt(LOCKSCREEN_WIDGETS_DEVICE_WIDGET_TEXT_COLOR, Color.WHITE) + mDeviceName = getString(LOCKSCREEN_WIDGETS_DEVICE_WIDGET_DEVICE, "")!! + mWidgetsCustomColor = getBoolean(LOCKSCREEN_WIDGETS_CUSTOM_COLOR, false) + mBigInactiveColor = getInt(LOCKSCREEN_WIDGETS_BIG_INACTIVE, Color.BLACK) + mBigActiveColor = getInt(LOCKSCREEN_WIDGETS_BIG_ACTIVE, Color.WHITE) + mSmallInactiveColor = getInt(LOCKSCREEN_WIDGETS_SMALL_INACTIVE, Color.BLACK) + mSmallActiveColor = getInt(LOCKSCREEN_WIDGETS_SMALL_ACTIVE, Color.WHITE) + mBigIconActiveColor = getInt(LOCKSCREEN_WIDGETS_BIG_ICON_ACTIVE, Color.BLACK) + mBigIconInactiveColor = getInt(LOCKSCREEN_WIDGETS_BIG_ICON_INACTIVE, Color.WHITE) + mSmallIconActiveColor = getInt(LOCKSCREEN_WIDGETS_SMALL_ICON_ACTIVE, Color.BLACK) + mSmallIconInactiveColor = getInt(LOCKSCREEN_WIDGETS_SMALL_ICON_INACTIVE, Color.WHITE) + mBottomMargin = getSliderInt(LOCKSCREEN_WIDGETS_BOTTOM_MARGIN, 0) + } + if (key.isNotEmpty()) { if (key[0] == LOCKSCREEN_WIDGETS_ENABLED || key[0] == LOCKSCREEN_WIDGETS_DEVICE_WIDGET || @@ -166,6 +167,7 @@ class LockscreenWidgets(context: Context?) : ModPack(context!!) { } + @SuppressLint("UnspecifiedRegisterReceiverFlag") override fun handleLoadPackage(loadPackageParam: XC_LoadPackage.LoadPackageParam) { // Receiver to handle weather inflated @@ -196,24 +198,30 @@ class LockscreenWidgets(context: Context?) : ModPack(context!!) { ) try { - LaunchableImageView = findClass("com.android.systemui.animation.view.LaunchableImageView", loadPackageParam.classLoader) + LaunchableImageView = findClass( + "com.android.systemui.animation.view.LaunchableImageView", + loadPackageParam.classLoader + ) } catch (t: Throwable) { - log(ControllersProvider.TAG + " Error finding LaunchableImageView: " + t.message) + log(TAG + " Error finding LaunchableImageView: " + t.message) } try { - LaunchableLinearLayout = findClass("com.android.systemui.animation.view.LaunchableLinearLayout", loadPackageParam.classLoader) + LaunchableLinearLayout = findClass( + "com.android.systemui.animation.view.LaunchableLinearLayout", + loadPackageParam.classLoader + ) } catch (t: Throwable) { - log(ControllersProvider.TAG + " Error finding LaunchableLinearLayout: " + t.message) + log(TAG + " Error finding LaunchableLinearLayout: " + t.message) } try { - val KeyguardQuickAffordanceInteractor = findClass( + val keyguardQuickAffordanceInteractor = findClass( "com.android.systemui.keyguard.domain.interactor.KeyguardQuickAffordanceInteractor", loadPackageParam.classLoader ) XposedBridge.hookAllConstructors( - KeyguardQuickAffordanceInteractor, + keyguardQuickAffordanceInteractor, object : XC_MethodHook() { @Throws(Throwable::class) override fun afterHookedMethod(param: MethodHookParam) { @@ -224,6 +232,23 @@ class LockscreenWidgets(context: Context?) : ModPack(context!!) { } catch (ignored: Throwable) { } + if (Build.VERSION.SDK_INT == 33) { + try { + val KeyguardBottomAreaView = findClass( + "com.android.systemui.statusbar.phone.KeyguardBottomAreaView", + loadPackageParam.classLoader + ) + hookAllMethods(KeyguardBottomAreaView, "onFinishInflate", object : XC_MethodHook() { + @Throws(Throwable::class) + override fun afterHookedMethod(param: MethodHookParam) { + mActivityStarter = getObjectField(param.thisObject, "mActivityStarter") + setActivityStarter() + } + }) + } catch (ignored: Throwable) { + } + } + val keyguardStatusViewClass = findClass( "com.android.keyguard.KeyguardStatusView", loadPackageParam.classLoader @@ -282,6 +307,7 @@ class LockscreenWidgets(context: Context?) : ModPack(context!!) { } private fun placeWidgets() { + if (!mWidgetsEnabled) return if (mStatusViewContainer == null || mStatusArea == null) return if (lsWeather && !lsWeatherInflated) return try { diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt index 859e84b4a..f839d4153 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/Miscellaneous.kt @@ -18,9 +18,10 @@ import com.drdisagree.iconify.common.Preferences.HIDE_DATA_DISABLED_ICON import com.drdisagree.iconify.common.Preferences.HIDE_LOCKSCREEN_LOCK_ICON import com.drdisagree.iconify.common.Preferences.HIDE_STATUS_ICONS_SWITCH import com.drdisagree.iconify.common.Preferences.QSPANEL_HIDE_CARRIER -import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.HookRes.Companion.resParams import com.drdisagree.iconify.xposed.ModPack +import com.drdisagree.iconify.xposed.utils.XPrefs.Xprefs +import com.drdisagree.iconify.xposed.utils.XPrefs.XprefsIsInitialized import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge.hookAllMethods import de.robv.android.xposed.XposedHelpers.callMethod @@ -47,14 +48,14 @@ class Miscellaneous(context: Context?) : ModPack(context!!) { private var mobileSignalControllerParam: Any? = null override fun updatePrefs(vararg key: String) { - if (Xprefs == null) return + if (!XprefsIsInitialized) return - Xprefs!!.apply { + Xprefs.apply { qsCarrierGroupHidden = getBoolean(QSPANEL_HIDE_CARRIER, false) hideStatusIcons = getBoolean(HIDE_STATUS_ICONS_SWITCH, false) fixedStatusIcons = getBoolean(FIXED_STATUS_ICONS_SWITCH, false) - topMarginStatusIcons = getInt(FIXED_STATUS_ICONS_TOPMARGIN, 8) - sideMarginStatusIcons = getInt(FIXED_STATUS_ICONS_SIDEMARGIN, 0) + topMarginStatusIcons = getSliderInt(FIXED_STATUS_ICONS_TOPMARGIN, 8) + sideMarginStatusIcons = getSliderInt(FIXED_STATUS_ICONS_SIDEMARGIN, 0) hideLockscreenLockIcon = getBoolean(HIDE_LOCKSCREEN_LOCK_ICON, false) hideDataDisabledIcon = getBoolean(HIDE_DATA_DISABLED_ICON, false) } diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/QSTransparency.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/QSTransparency.kt index 80b74f580..75fbc336f 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/QSTransparency.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/QSTransparency.kt @@ -12,8 +12,9 @@ import com.drdisagree.iconify.common.Preferences.NOTIF_TRANSPARENCY_SWITCH import com.drdisagree.iconify.common.Preferences.QSALPHA_LEVEL import com.drdisagree.iconify.common.Preferences.QSPANEL_BLUR_SWITCH import com.drdisagree.iconify.common.Preferences.QS_TRANSPARENCY_SWITCH -import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.ModPack +import com.drdisagree.iconify.xposed.utils.XPrefs.Xprefs +import com.drdisagree.iconify.xposed.utils.XPrefs.XprefsIsInitialized import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge.hookAllMethods import de.robv.android.xposed.XposedBridge.log @@ -34,14 +35,16 @@ class QSTransparency(context: Context?) : ModPack(context!!) { private var blurRadius = 23 override fun updatePrefs(vararg key: String) { - if (Xprefs == null) return - - qsTransparencyActive = Xprefs!!.getBoolean(QS_TRANSPARENCY_SWITCH, false) - onlyNotifTransparencyActive = Xprefs!!.getBoolean(NOTIF_TRANSPARENCY_SWITCH, false) - keepLockScreenShade = Xprefs!!.getBoolean(LOCKSCREEN_SHADE_SWITCH, false) - alpha = (Xprefs!!.getInt(QSALPHA_LEVEL, 60).toFloat() / 100.0).toFloat() - blurEnabled = Xprefs!!.getBoolean(QSPANEL_BLUR_SWITCH, false) - blurRadius = Xprefs!!.getInt(BLUR_RADIUS_VALUE, 23) + if (!XprefsIsInitialized) return + + Xprefs.apply { + qsTransparencyActive = getBoolean(QS_TRANSPARENCY_SWITCH, false) + onlyNotifTransparencyActive = getBoolean(NOTIF_TRANSPARENCY_SWITCH, false) + keepLockScreenShade = getBoolean(LOCKSCREEN_SHADE_SWITCH, false) + alpha = (getSliderInt(QSALPHA_LEVEL, 60).toFloat() / 100.0).toFloat() + blurEnabled = getBoolean(QSPANEL_BLUR_SWITCH, false) + blurRadius = getSliderInt(BLUR_RADIUS_VALUE, 23) + } } override fun handleLoadPackage(loadPackageParam: LoadPackageParam) { diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/QuickSettings.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/QuickSettings.kt index 6837437f0..88aeb87e3 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/QuickSettings.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/QuickSettings.kt @@ -22,6 +22,7 @@ import android.widget.LinearLayout import android.widget.TextView import androidx.annotation.ColorInt import com.drdisagree.iconify.common.Const.SYSTEMUI_PACKAGE +import com.drdisagree.iconify.common.Preferences.CUSTOM_QS_MARGIN import com.drdisagree.iconify.common.Preferences.FIX_NOTIFICATION_COLOR import com.drdisagree.iconify.common.Preferences.FIX_NOTIFICATION_FOOTER_BUTTON_COLOR import com.drdisagree.iconify.common.Preferences.FIX_QS_TILE_COLOR @@ -34,13 +35,14 @@ import com.drdisagree.iconify.common.Preferences.QS_TEXT_ALWAYS_WHITE import com.drdisagree.iconify.common.Preferences.QS_TEXT_FOLLOW_ACCENT import com.drdisagree.iconify.common.Preferences.QS_TOPMARGIN import com.drdisagree.iconify.common.Preferences.VERTICAL_QSTILE_SWITCH -import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.ModPack import com.drdisagree.iconify.xposed.modules.utils.Helpers.findClassInArray import com.drdisagree.iconify.xposed.modules.utils.Helpers.hookAllMethodsMatchPattern import com.drdisagree.iconify.xposed.modules.utils.Helpers.isPixelVariant import com.drdisagree.iconify.xposed.modules.utils.SystemUtils.isSecurityPatchBeforeJune2024 import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.toPx +import com.drdisagree.iconify.xposed.utils.XPrefs.Xprefs +import com.drdisagree.iconify.xposed.utils.XPrefs.XprefsIsInitialized import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XC_MethodHook.MethodHookParam import de.robv.android.xposed.XposedBridge.hookAllConstructors @@ -74,28 +76,34 @@ class QuickSettings(context: Context?) : ModPack(context!!) { private var mSilentTextOnDrawListener: OnDrawListener? = null private var mKeyguardStateController: Any? = null private val isAtLeastAndroid14 = Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE + private var isVerticalQSTileActive = false + private var isHideLabelActive = false + private var customQsMarginsEnabled = false + private var qsTilePrimaryTextSize: Float? = null + private var qsTileSecondaryTextSize: Float? = null override fun updatePrefs(vararg key: String) { - if (Xprefs == null) return - - isVerticalQSTileActive = Xprefs!!.getBoolean(VERTICAL_QSTILE_SWITCH, false) - isHideLabelActive = Xprefs!!.getBoolean(HIDE_QSLABEL_SWITCH, false) - qqsTopMarginEnabled = Xprefs!!.getInt(QQS_TOPMARGIN, -1) != -1 - qsTopMarginEnabled = Xprefs!!.getInt(QS_TOPMARGIN, -1) != -1 - qqsTopMargin = Xprefs!!.getInt(QQS_TOPMARGIN, 100) - qsTopMargin = Xprefs!!.getInt(QS_TOPMARGIN, 100) - fixQsTileColor = isAtLeastAndroid14 && - Xprefs!!.getBoolean(FIX_QS_TILE_COLOR, false) - fixNotificationColor = isAtLeastAndroid14 && - Xprefs!!.getBoolean(FIX_NOTIFICATION_COLOR, false) && - isSecurityPatchBeforeJune2024() - fixNotificationFooterButtonsColor = isAtLeastAndroid14 && - Xprefs!!.getBoolean(FIX_NOTIFICATION_FOOTER_BUTTON_COLOR, false) - qsTextAlwaysWhite = Xprefs!!.getBoolean(QS_TEXT_ALWAYS_WHITE, false) - qsTextFollowAccent = Xprefs!!.getBoolean(QS_TEXT_FOLLOW_ACCENT, false) - hideQsOnLockscreen = Xprefs!!.getBoolean(HIDE_QS_ON_LOCKSCREEN, false) - hideSilentText = Xprefs!!.getBoolean(HIDE_QS_SILENT_TEXT, false) - hideFooterButtons = Xprefs!!.getBoolean(HIDE_QS_FOOTER_BUTTONS, false) + if (!XprefsIsInitialized) return + + Xprefs.apply { + isVerticalQSTileActive = getBoolean(VERTICAL_QSTILE_SWITCH, false) + isHideLabelActive = getBoolean(HIDE_QSLABEL_SWITCH, false) + customQsMarginsEnabled = getBoolean(CUSTOM_QS_MARGIN, false) + qqsTopMargin = getSliderInt(QQS_TOPMARGIN, 100) + qsTopMargin = getSliderInt(QS_TOPMARGIN, 100) + fixQsTileColor = isAtLeastAndroid14 && + getBoolean(FIX_QS_TILE_COLOR, false) + fixNotificationColor = isAtLeastAndroid14 && + getBoolean(FIX_NOTIFICATION_COLOR, false) && + isSecurityPatchBeforeJune2024() + fixNotificationFooterButtonsColor = isAtLeastAndroid14 && + getBoolean(FIX_NOTIFICATION_FOOTER_BUTTON_COLOR, false) + qsTextAlwaysWhite = getBoolean(QS_TEXT_ALWAYS_WHITE, false) + qsTextFollowAccent = getBoolean(QS_TEXT_FOLLOW_ACCENT, false) + hideQsOnLockscreen = getBoolean(HIDE_QS_ON_LOCKSCREEN, false) + hideSilentText = getBoolean(HIDE_QS_SILENT_TEXT, false) + hideFooterButtons = getBoolean(HIDE_QS_FOOTER_BUTTONS, false) + } triggerQsElementVisibility() } @@ -230,52 +238,50 @@ class QuickSettings(context: Context?) : ModPack(context!!) { private fun setQsMargin(loadPackageParam: LoadPackageParam) { hookAllMethods(Resources::class.java, "getDimensionPixelSize", object : XC_MethodHook() { override fun beforeHookedMethod(param: MethodHookParam) { - if (qqsTopMarginEnabled) { - val qqsHeaderResNames = arrayOf( - "qs_header_system_icons_area_height", - "qqs_layout_margin_top", - "qs_header_row_min_height", - "large_screen_shade_header_min_height" - ) + if (!customQsMarginsEnabled) return - for (resName in qqsHeaderResNames) { - try { - val resId = mContext.resources.getIdentifier( - resName, - "dimen", - mContext.packageName - ) + val qqsHeaderResNames = arrayOf( + "qs_header_system_icons_area_height", + "qqs_layout_margin_top", + "qs_header_row_min_height", + "large_screen_shade_header_min_height" + ) - if (param.args[0] == resId) { - param.result = - (qqsTopMargin * mContext.resources.displayMetrics.density).toInt() - } - } catch (ignored: Throwable) { + for (resName in qqsHeaderResNames) { + try { + val resId = mContext.resources.getIdentifier( + resName, + "dimen", + mContext.packageName + ) + + if (param.args[0] == resId) { + param.result = + (qqsTopMargin * mContext.resources.displayMetrics.density).toInt() } + } catch (ignored: Throwable) { } } - if (qsTopMarginEnabled) { - val qsHeaderResNames = arrayOf( - "qs_panel_padding_top", - "qs_panel_padding_top_combined_headers", - "qs_header_height" - ) + val qsHeaderResNames = arrayOf( + "qs_panel_padding_top", + "qs_panel_padding_top_combined_headers", + "qs_header_height" + ) - for (resName in qsHeaderResNames) { - try { - val resId = mContext.resources.getIdentifier( - resName, - "dimen", - mContext.packageName - ) + for (resName in qsHeaderResNames) { + try { + val resId = mContext.resources.getIdentifier( + resName, + "dimen", + mContext.packageName + ) - if (param.args[0] == resId) { - param.result = - (qsTopMargin * mContext.resources.displayMetrics.density).toInt() - } - } catch (ignored: Throwable) { + if (param.args[0] == resId) { + param.result = + (qsTopMargin * mContext.resources.displayMetrics.density).toInt() } + } catch (ignored: Throwable) { } } } @@ -288,9 +294,9 @@ class QuickSettings(context: Context?) : ModPack(context!!) { hookAllMethods(quickStatusBarHeader, "updateResources", object : XC_MethodHook() { override fun afterHookedMethod(param: MethodHookParam) { - if (!qqsTopMarginEnabled) return + if (!customQsMarginsEnabled) return - if (Build.VERSION.SDK_INT >= 33) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { try { val res = mContext.resources @@ -968,11 +974,5 @@ class QuickSettings(context: Context?) : ModPack(context!!) { companion object { private val TAG = "Iconify - ${QuickSettings::class.java.simpleName}: " - private var isVerticalQSTileActive = false - private var isHideLabelActive = false - private var qsTilePrimaryTextSize: Float? = null - private var qsTileSecondaryTextSize: Float? = null - private var qqsTopMarginEnabled = false - private var qsTopMarginEnabled = false } } \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/Statusbar.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/Statusbar.kt index c67ff25bb..ab8f4ece2 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/Statusbar.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/Statusbar.kt @@ -21,7 +21,6 @@ import com.drdisagree.iconify.common.Preferences.HIDE_LOCKSCREEN_CARRIER import com.drdisagree.iconify.common.Preferences.HIDE_LOCKSCREEN_STATUSBAR import com.drdisagree.iconify.common.Preferences.SB_CLOCK_SIZE import com.drdisagree.iconify.common.Preferences.SB_CLOCK_SIZE_SWITCH -import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.HookRes.Companion.resParams import com.drdisagree.iconify.xposed.ModPack import com.drdisagree.iconify.xposed.modules.utils.Helpers.findClassInArray @@ -29,6 +28,8 @@ import com.drdisagree.iconify.xposed.modules.utils.StatusBarClock.getCenterClock import com.drdisagree.iconify.xposed.modules.utils.StatusBarClock.getLeftClockView import com.drdisagree.iconify.xposed.modules.utils.StatusBarClock.getRightClockView import com.drdisagree.iconify.xposed.modules.utils.StatusBarClock.setClockGravity +import com.drdisagree.iconify.xposed.utils.XPrefs.Xprefs +import com.drdisagree.iconify.xposed.utils.XPrefs.XprefsIsInitialized import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XC_MethodReplacement import de.robv.android.xposed.XposedBridge.hookAllMethods @@ -60,12 +61,12 @@ class Statusbar(context: Context?) : ModPack(context!!) { private var hideLockscreenStatusbar = false override fun updatePrefs(vararg key: String) { - if (Xprefs == null) return + if (!XprefsIsInitialized) return - Xprefs!!.apply { + Xprefs.apply { mColoredStatusbarIcon = getBoolean(COLORED_STATUSBAR_ICON, false) sbClockSizeSwitch = getBoolean(SB_CLOCK_SIZE_SWITCH, false) - sbClockSize = getInt(SB_CLOCK_SIZE, 14) + sbClockSize = getSliderInt(SB_CLOCK_SIZE, 14) hideLockscreenCarrier = getBoolean(HIDE_LOCKSCREEN_CARRIER, false) hideLockscreenStatusbar = getBoolean(HIDE_LOCKSCREEN_STATUSBAR, false) } diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/VolumePanel.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/VolumePanel.kt index 8cb603a64..eac2d6a8c 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/VolumePanel.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/VolumePanel.kt @@ -13,10 +13,11 @@ import com.drdisagree.iconify.common.Const.SYSTEMUI_PACKAGE import com.drdisagree.iconify.common.Preferences.VOLUME_COLORED_RINGER_ICON import com.drdisagree.iconify.common.Preferences.VOLUME_PANEL_PERCENTAGE import com.drdisagree.iconify.common.Preferences.VOLUME_PANEL_SAFETY_WARNING -import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.ModPack import com.drdisagree.iconify.xposed.modules.utils.SettingsLibUtils import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.toPx +import com.drdisagree.iconify.xposed.utils.XPrefs.Xprefs +import com.drdisagree.iconify.xposed.utils.XPrefs.XprefsIsInitialized import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge.hookAllMethods import de.robv.android.xposed.XposedHelpers.callMethod @@ -38,11 +39,13 @@ class VolumePanel(context: Context?) : ModPack(context!!) { private var ringerIconTextColor by Delegates.notNull(); override fun updatePrefs(vararg key: String) { - if (Xprefs == null) return + if (!XprefsIsInitialized) return - showPercentage = Xprefs!!.getBoolean(VOLUME_PANEL_PERCENTAGE, false) - showWarning = Xprefs!!.getBoolean(VOLUME_PANEL_SAFETY_WARNING, true) - coloredRingerIcon = Xprefs!!.getBoolean(VOLUME_COLORED_RINGER_ICON, false) + Xprefs.apply { + showPercentage = getBoolean(VOLUME_PANEL_PERCENTAGE, false) + showWarning = getBoolean(VOLUME_PANEL_SAFETY_WARNING, true) + coloredRingerIcon = getBoolean(VOLUME_COLORED_RINGER_ICON, false) + } if (key.isNotEmpty()) { key[0].let { diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/batterystyles/CircleBattery.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/batterystyles/CircleBattery.kt index c0d9a859e..96d607581 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/batterystyles/CircleBattery.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/batterystyles/CircleBattery.kt @@ -22,8 +22,8 @@ import androidx.core.graphics.PathParser import androidx.interpolator.view.animation.FastOutSlowInInterpolator import com.drdisagree.iconify.common.Preferences import com.drdisagree.iconify.config.RPrefs.getBoolean -import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.modules.utils.AlphaRefreshedPaint +import com.drdisagree.iconify.xposed.utils.XPrefs.Xprefs @Suppress("UNUSED_PARAMETER") open class CircleBattery(private val mContext: Context, frameColor: Int) : BatteryDrawable() { @@ -91,7 +91,7 @@ open class CircleBattery(private val mContext: Context, frameColor: Int) : Batte private fun initColors() { customBlendColor = try { - Xprefs?.getBoolean(Preferences.CUSTOM_BATTERY_BLEND_COLOR, false) ?: false + Xprefs.getBoolean(Preferences.CUSTOM_BATTERY_BLEND_COLOR, false) ?: false } catch (ignored: Throwable) { getBoolean(Preferences.CUSTOM_BATTERY_BLEND_COLOR, false) } @@ -319,7 +319,7 @@ open class CircleBattery(private val mContext: Context, frameColor: Int) : Batte mBatteryPaint.style = Paint.Style.STROKE try { - Xprefs?.let { setMeterStyle(it.getInt(Preferences.CUSTOM_BATTERY_STYLE, 0)) } + setMeterStyle(Xprefs.getInt(Preferences.CUSTOM_BATTERY_STYLE, 0)) } catch (ignored: Throwable) { setMeterStyle(Preferences.BATTERY_STYLE_CIRCLE) } diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/batterystyles/CircleFilledBattery.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/batterystyles/CircleFilledBattery.kt index 54fb029b7..19b159d13 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/batterystyles/CircleFilledBattery.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/batterystyles/CircleFilledBattery.kt @@ -15,7 +15,7 @@ import androidx.core.graphics.ColorUtils import androidx.interpolator.view.animation.FastOutSlowInInterpolator import com.drdisagree.iconify.common.Preferences import com.drdisagree.iconify.config.RPrefs -import com.drdisagree.iconify.config.XPrefs +import com.drdisagree.iconify.xposed.utils.XPrefs.Xprefs import kotlin.math.max @Suppress("UNUSED_PARAMETER") @@ -188,7 +188,7 @@ open class CircleFilledBattery(private val mContext: Context, frameColor: Int) : private fun initColors() { customBlendColor = try { - XPrefs.Xprefs?.getBoolean(Preferences.CUSTOM_BATTERY_BLEND_COLOR, false) ?: false + Xprefs.getBoolean(Preferences.CUSTOM_BATTERY_BLEND_COLOR, false) ?: false } catch (ignored: Throwable) { RPrefs.getBoolean(Preferences.CUSTOM_BATTERY_BLEND_COLOR, false) } diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA13.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA13.kt index 40b001a6e..137d1048b 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA13.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA13.kt @@ -12,10 +12,11 @@ import android.widget.TextView import androidx.core.graphics.ColorUtils import com.drdisagree.iconify.common.Const.SYSTEMUI_PACKAGE import com.drdisagree.iconify.common.Preferences -import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.ModPack import com.drdisagree.iconify.xposed.modules.utils.SettingsLibUtils.Companion.getColorAttr import com.drdisagree.iconify.xposed.utils.SystemUtil +import com.drdisagree.iconify.xposed.utils.XPrefs.Xprefs +import com.drdisagree.iconify.xposed.utils.XPrefs.XprefsIsInitialized import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge.hookAllConstructors import de.robv.android.xposed.XposedBridge.hookAllMethods @@ -45,11 +46,13 @@ class QSBlackThemeA13(context: Context?) : ModPack(context!!) { } override fun updatePrefs(vararg key: String) { - if (Xprefs == null) return + if (!XprefsIsInitialized) return - blackQSHeaderEnabled = Xprefs!!.getBoolean(Preferences.BLACK_QSPANEL, false) - qsTextAlwaysWhite = Xprefs!!.getBoolean(Preferences.QS_TEXT_ALWAYS_WHITE, false) - qsTextFollowAccent = Xprefs!!.getBoolean(Preferences.QS_TEXT_FOLLOW_ACCENT, false) + Xprefs.apply { + blackQSHeaderEnabled = getBoolean(Preferences.BLACK_QSPANEL, false) + qsTextAlwaysWhite = getBoolean(Preferences.QS_TEXT_ALWAYS_WHITE, false) + qsTextFollowAccent = getBoolean(Preferences.QS_TEXT_FOLLOW_ACCENT, false) + } initColors(true) } diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA14.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA14.kt index ff527e763..cfbddc691 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA14.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSBlackThemeA14.kt @@ -17,11 +17,12 @@ import com.drdisagree.iconify.common.Const.SYSTEMUI_PACKAGE import com.drdisagree.iconify.common.Preferences.BLACK_QSPANEL import com.drdisagree.iconify.common.Preferences.QS_TEXT_ALWAYS_WHITE import com.drdisagree.iconify.common.Preferences.QS_TEXT_FOLLOW_ACCENT -import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.ModPack import com.drdisagree.iconify.xposed.modules.utils.Helpers.findClassInArray import com.drdisagree.iconify.xposed.modules.utils.SettingsLibUtils.Companion.getColorAttr import com.drdisagree.iconify.xposed.utils.SystemUtil +import com.drdisagree.iconify.xposed.utils.XPrefs.Xprefs +import com.drdisagree.iconify.xposed.utils.XPrefs.XprefsIsInitialized import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge.hookAllConstructors import de.robv.android.xposed.XposedBridge.hookAllMethods @@ -57,11 +58,13 @@ class QSBlackThemeA14(context: Context?) : ModPack(context!!) { } override fun updatePrefs(vararg key: String) { - if (Xprefs == null) return + if (!XprefsIsInitialized) return - blackQSHeaderEnabled = Xprefs!!.getBoolean(BLACK_QSPANEL, false) - qsTextAlwaysWhite = Xprefs!!.getBoolean(QS_TEXT_ALWAYS_WHITE, false) - qsTextFollowAccent = Xprefs!!.getBoolean(QS_TEXT_FOLLOW_ACCENT, false) + Xprefs.apply { + blackQSHeaderEnabled = getBoolean(BLACK_QSPANEL, false) + qsTextAlwaysWhite = getBoolean(QS_TEXT_ALWAYS_WHITE, false) + qsTextFollowAccent = getBoolean(QS_TEXT_FOLLOW_ACCENT, false) + } initColors(true) } diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSFluidThemeA13.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSFluidThemeA13.kt index 77cad8ae9..3c4fc5291 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSFluidThemeA13.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSFluidThemeA13.kt @@ -26,13 +26,14 @@ import com.drdisagree.iconify.common.Const.SYSTEMUI_PACKAGE import com.drdisagree.iconify.common.Preferences.FLUID_NOTIF_TRANSPARENCY import com.drdisagree.iconify.common.Preferences.FLUID_POWERMENU_TRANSPARENCY import com.drdisagree.iconify.common.Preferences.FLUID_QSPANEL -import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.HookRes import com.drdisagree.iconify.xposed.ModPack import com.drdisagree.iconify.xposed.modules.utils.RoundedCornerProgressDrawable import com.drdisagree.iconify.xposed.modules.utils.SettingsLibUtils import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.toPx import com.drdisagree.iconify.xposed.utils.SystemUtil +import com.drdisagree.iconify.xposed.utils.XPrefs.Xprefs +import com.drdisagree.iconify.xposed.utils.XPrefs.XprefsIsInitialized import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge.hookAllConstructors import de.robv.android.xposed.XposedBridge.hookAllMethods @@ -75,13 +76,15 @@ class QSFluidThemeA13(context: Context?) : ModPack(context!!) { private var wasDark: Boolean = SystemUtil.isDarkMode private var mSlider: SeekBar? = null override fun updatePrefs(vararg key: String) { - if (Xprefs == null) return - - fluidQsThemeEnabled = Xprefs!!.getBoolean(FLUID_QSPANEL, false) - fluidNotifEnabled = fluidQsThemeEnabled && - Xprefs!!.getBoolean(FLUID_NOTIF_TRANSPARENCY, false) - fluidPowerMenuEnabled = fluidQsThemeEnabled && - Xprefs!!.getBoolean(FLUID_POWERMENU_TRANSPARENCY, false) + if (!XprefsIsInitialized) return + + Xprefs.apply { + fluidQsThemeEnabled = getBoolean(FLUID_QSPANEL, false) + fluidNotifEnabled = fluidQsThemeEnabled && + getBoolean(FLUID_NOTIF_TRANSPARENCY, false) + fluidPowerMenuEnabled = fluidQsThemeEnabled && + getBoolean(FLUID_POWERMENU_TRANSPARENCY, false) + } initResources() } diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSFluidThemeA14.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSFluidThemeA14.kt index 82b4f5de2..4f697536c 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSFluidThemeA14.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSFluidThemeA14.kt @@ -26,13 +26,14 @@ import com.drdisagree.iconify.common.Const.SYSTEMUI_PACKAGE import com.drdisagree.iconify.common.Preferences.FLUID_NOTIF_TRANSPARENCY import com.drdisagree.iconify.common.Preferences.FLUID_POWERMENU_TRANSPARENCY import com.drdisagree.iconify.common.Preferences.FLUID_QSPANEL -import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.HookRes import com.drdisagree.iconify.xposed.ModPack import com.drdisagree.iconify.xposed.modules.utils.RoundedCornerProgressDrawable import com.drdisagree.iconify.xposed.modules.utils.SettingsLibUtils import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.toPx import com.drdisagree.iconify.xposed.utils.SystemUtil +import com.drdisagree.iconify.xposed.utils.XPrefs.Xprefs +import com.drdisagree.iconify.xposed.utils.XPrefs.XprefsIsInitialized import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge.hookAllConstructors import de.robv.android.xposed.XposedBridge.hookAllMethods @@ -78,13 +79,15 @@ class QSFluidThemeA14(context: Context?) : ModPack(context!!) { ) override fun updatePrefs(vararg key: String) { - if (Xprefs == null) return - - fluidQsThemeEnabled = Xprefs!!.getBoolean(FLUID_QSPANEL, false) - fluidNotifEnabled = fluidQsThemeEnabled && - Xprefs!!.getBoolean(FLUID_NOTIF_TRANSPARENCY, false) - fluidPowerMenuEnabled = fluidQsThemeEnabled && - Xprefs!!.getBoolean(FLUID_POWERMENU_TRANSPARENCY, false) + if (!XprefsIsInitialized) return + + Xprefs.apply { + fluidQsThemeEnabled = getBoolean(FLUID_QSPANEL, false) + fluidNotifEnabled = fluidQsThemeEnabled && + getBoolean(FLUID_NOTIF_TRANSPARENCY, false) + fluidPowerMenuEnabled = fluidQsThemeEnabled && + getBoolean(FLUID_POWERMENU_TRANSPARENCY, false) + } initResources() } diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA12.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA12.kt index b59a3920a..96ebcd54a 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA12.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA12.kt @@ -8,11 +8,12 @@ import androidx.core.graphics.ColorUtils import com.drdisagree.iconify.common.Const.SYSTEMUI_PACKAGE import com.drdisagree.iconify.common.Preferences.DUALTONE_QSPANEL import com.drdisagree.iconify.common.Preferences.LIGHT_QSPANEL -import com.drdisagree.iconify.config.XPrefs.Xprefs -import com.drdisagree.iconify.xposed.ModPack import com.drdisagree.iconify.xposed.HookEntry.Companion.disableOverlays import com.drdisagree.iconify.xposed.HookEntry.Companion.enableOverlay +import com.drdisagree.iconify.xposed.ModPack import com.drdisagree.iconify.xposed.utils.SystemUtil +import com.drdisagree.iconify.xposed.utils.XPrefs.Xprefs +import com.drdisagree.iconify.xposed.utils.XPrefs.XprefsIsInitialized import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge.hookAllConstructors import de.robv.android.xposed.XposedBridge.hookAllMethods @@ -41,11 +42,12 @@ class QSLightThemeA12(context: Context?) : ModPack(context!!) { } override fun updatePrefs(vararg key: String) { - if (Xprefs == null) return + if (!XprefsIsInitialized) return - lightQSHeaderEnabled = Xprefs!!.getBoolean(LIGHT_QSPANEL, false) - dualToneQSEnabled = lightQSHeaderEnabled && - Xprefs!!.getBoolean(DUALTONE_QSPANEL, false) + Xprefs.apply { + lightQSHeaderEnabled = getBoolean(LIGHT_QSPANEL, false) + dualToneQSEnabled = lightQSHeaderEnabled && getBoolean(DUALTONE_QSPANEL, false) + } applyOverlays(true) } diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA13.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA13.kt index 6768117c2..eb60ba038 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA13.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA13.kt @@ -16,13 +16,14 @@ import com.drdisagree.iconify.common.Preferences.DUALTONE_QSPANEL import com.drdisagree.iconify.common.Preferences.LIGHT_QSPANEL import com.drdisagree.iconify.common.Preferences.QS_TEXT_ALWAYS_WHITE import com.drdisagree.iconify.common.Preferences.QS_TEXT_FOLLOW_ACCENT -import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.HookEntry.Companion.disableOverlays import com.drdisagree.iconify.xposed.HookEntry.Companion.enableOverlay import com.drdisagree.iconify.xposed.ModPack import com.drdisagree.iconify.xposed.modules.utils.SettingsLibUtils.Companion.getColorAttr import com.drdisagree.iconify.xposed.modules.utils.SettingsLibUtils.Companion.getColorAttrDefaultColor import com.drdisagree.iconify.xposed.utils.SystemUtil +import com.drdisagree.iconify.xposed.utils.XPrefs.Xprefs +import com.drdisagree.iconify.xposed.utils.XPrefs.XprefsIsInitialized import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge.hookAllConstructors import de.robv.android.xposed.XposedBridge.hookAllMethods @@ -56,13 +57,14 @@ class QSLightThemeA13(context: Context?) : ModPack(context!!) { } override fun updatePrefs(vararg key: String) { - if (Xprefs == null) return + if (!XprefsIsInitialized) return - lightQSHeaderEnabled = Xprefs!!.getBoolean(LIGHT_QSPANEL, false) - dualToneQSEnabled = lightQSHeaderEnabled && - Xprefs!!.getBoolean(DUALTONE_QSPANEL, false) - qsTextAlwaysWhite = Xprefs!!.getBoolean(QS_TEXT_ALWAYS_WHITE, false) - qsTextFollowAccent = Xprefs!!.getBoolean(QS_TEXT_FOLLOW_ACCENT, false) + Xprefs.apply { + lightQSHeaderEnabled = getBoolean(LIGHT_QSPANEL, false) + dualToneQSEnabled = lightQSHeaderEnabled && getBoolean(DUALTONE_QSPANEL, false) + qsTextAlwaysWhite = getBoolean(QS_TEXT_ALWAYS_WHITE, false) + qsTextFollowAccent = getBoolean(QS_TEXT_FOLLOW_ACCENT, false) + } applyOverlays(true) } diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA14.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA14.kt index e9a3ace83..1b2dfe263 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA14.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/themes/QSLightThemeA14.kt @@ -18,7 +18,6 @@ import com.drdisagree.iconify.common.Preferences.DUALTONE_QSPANEL import com.drdisagree.iconify.common.Preferences.LIGHT_QSPANEL import com.drdisagree.iconify.common.Preferences.QS_TEXT_ALWAYS_WHITE import com.drdisagree.iconify.common.Preferences.QS_TEXT_FOLLOW_ACCENT -import com.drdisagree.iconify.config.XPrefs.Xprefs import com.drdisagree.iconify.xposed.HookEntry.Companion.disableOverlays import com.drdisagree.iconify.xposed.HookEntry.Companion.enableOverlay import com.drdisagree.iconify.xposed.ModPack @@ -26,6 +25,8 @@ import com.drdisagree.iconify.xposed.modules.utils.Helpers.findClassInArray import com.drdisagree.iconify.xposed.modules.utils.SettingsLibUtils.Companion.getColorAttr import com.drdisagree.iconify.xposed.modules.utils.SettingsLibUtils.Companion.getColorAttrDefaultColor import com.drdisagree.iconify.xposed.utils.SystemUtil +import com.drdisagree.iconify.xposed.utils.XPrefs.Xprefs +import com.drdisagree.iconify.xposed.utils.XPrefs.XprefsIsInitialized import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XposedBridge.hookAllConstructors import de.robv.android.xposed.XposedBridge.hookAllMethods @@ -63,13 +64,14 @@ class QSLightThemeA14(context: Context?) : ModPack(context!!) { } override fun updatePrefs(vararg key: String) { - if (Xprefs == null) return + if (!XprefsIsInitialized) return - lightQSHeaderEnabled = Xprefs!!.getBoolean(LIGHT_QSPANEL, false) - dualToneQSEnabled = lightQSHeaderEnabled && - Xprefs!!.getBoolean(DUALTONE_QSPANEL, false) - qsTextAlwaysWhite = Xprefs!!.getBoolean(QS_TEXT_ALWAYS_WHITE, false) - qsTextFollowAccent = Xprefs!!.getBoolean(QS_TEXT_FOLLOW_ACCENT, false) + Xprefs.apply { + lightQSHeaderEnabled = getBoolean(LIGHT_QSPANEL, false) + dualToneQSEnabled = lightQSHeaderEnabled && getBoolean(DUALTONE_QSPANEL, false) + qsTextAlwaysWhite = getBoolean(QS_TEXT_ALWAYS_WHITE, false) + qsTextFollowAccent = getBoolean(QS_TEXT_FOLLOW_ACCENT, false) + } applyOverlays(true) } diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/ExtendedFAB.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/ExtendedFAB.kt index a2605e826..0620298ef 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/ExtendedFAB.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/utils/ExtendedFAB.kt @@ -16,6 +16,6 @@ class ExtendedFAB @JvmOverloads constructor( ) : ExtendedFloatingActionButton(ContextThemeWrapper(object : ContextWrapper(context) { override fun getResources(): Resources { - return modRes!! + return modRes } }, R.style.Theme_MaterialComponents_DayNight), attrs, defStyleAttr) \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/views/ChipDrawable.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/views/ChipDrawable.kt new file mode 100644 index 000000000..75184e707 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/views/ChipDrawable.kt @@ -0,0 +1,100 @@ +package com.drdisagree.iconify.xposed.modules.views + +import android.content.Context +import android.graphics.drawable.GradientDrawable +import android.graphics.drawable.LayerDrawable +import androidx.core.content.ContextCompat +import com.drdisagree.iconify.xposed.modules.utils.ViewHelper.toPx + +object ChipDrawable { + + enum class GradientDirection(val index: Int) { + TOP_BOTTOM(0), + BOTTOM_TOP(1), + LEFT_RIGHT(2), + RIGHT_LEFT(3), + TOP_LEFT_BOTTOM_RIGHT(4), + TOP_RIGHT_BOTTOM_LEFT(5), + BOTTOM_LEFT_TOP_RIGHT(6), + BOTTOM_RIGHT_TOP_LEFT(7); + + companion object { + fun fromIndex(index: Int): GradientDirection { + return entries.firstOrNull { it.index == index } ?: TOP_BOTTOM + } + + fun GradientDirection.toIndex(): Int { + return this.index + } + } + } + + + fun createChipDrawable( + context: Context, + accentFill: Boolean = true, + startColor: Int = 0xFF0000, + endColor: Int = 0x00FF00, + gradientDirection: GradientDirection = GradientDirection.LEFT_RIGHT, + padding: IntArray = intArrayOf(0, 0, 0, 0), + strokeEnabled: Boolean = false, + accentStroke: Boolean = true, + strokeWidth: Int = 2, + strokeColor: Int = 0x000000, + dashedBorderEnabled: Boolean = false, + dashWidth: Int = 4, + dashGap: Int = 4, + cornerRadii: FloatArray = floatArrayOf(0f, 0f, 0f, 0f, 0f, 0f, 0f, 0f) + ): LayerDrawable { + val gradientDrawable = GradientDrawable().apply { + colors = if (accentFill) { + val color = ContextCompat.getColor(context, android.R.color.system_accent1_400) + intArrayOf(color, color) + } else { + intArrayOf(startColor, endColor) + } + orientation = when (gradientDirection) { + GradientDirection.TOP_BOTTOM -> GradientDrawable.Orientation.LEFT_RIGHT + GradientDirection.BOTTOM_TOP -> GradientDrawable.Orientation.RIGHT_LEFT + GradientDirection.LEFT_RIGHT -> GradientDrawable.Orientation.TOP_BOTTOM + GradientDirection.RIGHT_LEFT -> GradientDrawable.Orientation.BOTTOM_TOP + GradientDirection.TOP_LEFT_BOTTOM_RIGHT -> GradientDrawable.Orientation.TL_BR + GradientDirection.TOP_RIGHT_BOTTOM_LEFT -> GradientDrawable.Orientation.TR_BL + GradientDirection.BOTTOM_LEFT_TOP_RIGHT -> GradientDrawable.Orientation.BL_TR + GradientDirection.BOTTOM_RIGHT_TOP_LEFT -> GradientDrawable.Orientation.BR_TL + } + shape = GradientDrawable.RECTANGLE + setPadding( + context.toPx(padding[0]), + context.toPx(padding[1]), + context.toPx(padding[2]), + context.toPx(padding[3]) + ) + setCornerRadii( + cornerRadii.map { context.toPx(it.toInt()).toFloat() }.toFloatArray() + ) + if (strokeEnabled) { + val color = if (accentStroke) { + ContextCompat.getColor(context, android.R.color.system_accent3_400) + } else { + strokeColor + } + if (dashedBorderEnabled) { + setStroke( + context.toPx(strokeWidth), + color, + context.toPx(dashWidth).toFloat(), + context.toPx(dashGap).toFloat() + ) + } else { + setStroke( + context.toPx(strokeWidth), + color + ) + } + } + } + + return LayerDrawable(arrayOf(gradientDrawable)) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/modules/views/LockscreenWidgetsView.kt b/app/src/main/java/com/drdisagree/iconify/xposed/modules/views/LockscreenWidgetsView.kt index 6d369d05c..7fc964229 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/modules/views/LockscreenWidgetsView.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/modules/views/LockscreenWidgetsView.kt @@ -1139,8 +1139,8 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : } private fun launchWallet(view: View) { - val WalletTile: Any? = ControllersProvider.mWalletTile - if (WalletTile != null) { + val mWalletTile: Any? = ControllersProvider.mWalletTile + if (mWalletTile != null) { val finalView: View = if (view is ExtendedFAB) { view.parent as View } else { @@ -1148,7 +1148,7 @@ class LockscreenWidgetsView(context: Context, activityStarter: Any?) : } post { callMethod( - WalletTile, + mWalletTile, "handleClick", finalView ) diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/utils/BootLoopProtector.kt b/app/src/main/java/com/drdisagree/iconify/xposed/utils/BootLoopProtector.kt index d305a7471..4cf5b414e 100644 --- a/app/src/main/java/com/drdisagree/iconify/xposed/utils/BootLoopProtector.kt +++ b/app/src/main/java/com/drdisagree/iconify/xposed/utils/BootLoopProtector.kt @@ -1,7 +1,8 @@ package com.drdisagree.iconify.xposed.utils import android.annotation.SuppressLint -import com.drdisagree.iconify.config.XPrefs.Xprefs +import com.drdisagree.iconify.xposed.utils.XPrefs.Xprefs +import com.drdisagree.iconify.xposed.utils.XPrefs.XprefsIsInitialized import java.util.Calendar object BootLoopProtector { @@ -11,23 +12,23 @@ object BootLoopProtector { @SuppressLint("ApplySharedPref") fun isBootLooped(packageName: String): Boolean { - if (Xprefs == null) return false + if (!XprefsIsInitialized) return false val loadTimeKey = "$LOAD_TIME_KEY_KEY$packageName" val strikeKey = "$PACKAGE_STRIKE_KEY_KEY$packageName" val currentTime = Calendar.getInstance().time.time - val lastLoadTime = Xprefs!!.getLong(loadTimeKey, 0) - var strikeCount = Xprefs!!.getInt(strikeKey, 0) + val lastLoadTime = Xprefs.getLong(loadTimeKey, 0) + var strikeCount = Xprefs.getInt(strikeKey, 0) if (currentTime - lastLoadTime > 40000) { - Xprefs!!.edit() + Xprefs.edit() .putLong(loadTimeKey, currentTime) .putInt(strikeKey, 0) .commit() } else if (strikeCount >= 3) { return true } else { - Xprefs!!.edit() + Xprefs.edit() .putInt(strikeKey, ++strikeCount) .commit() } @@ -37,14 +38,14 @@ object BootLoopProtector { @SuppressLint("ApplySharedPref") fun resetCounter(packageName: String) { - if (Xprefs == null) return + if (!XprefsIsInitialized) return try { val loadTimeKey = "$LOAD_TIME_KEY_KEY$packageName" val strikeKey = "$PACKAGE_STRIKE_KEY_KEY$packageName" val currentTime = Calendar.getInstance().time.time - Xprefs!!.edit() + Xprefs.edit() .putLong(loadTimeKey, currentTime) .putInt(strikeKey, 0) .commit() diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/utils/ExtendedRemotePreferences.kt b/app/src/main/java/com/drdisagree/iconify/xposed/utils/ExtendedRemotePreferences.kt new file mode 100644 index 000000000..82e26a80f --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/xposed/utils/ExtendedRemotePreferences.kt @@ -0,0 +1,38 @@ +package com.drdisagree.iconify.xposed.utils + +import android.content.Context +import com.crossbowffs.remotepreferences.RemotePreferences +import com.drdisagree.iconify.ui.preferences.SliderPreference + +@Suppress("unused") +class ExtendedRemotePreferences : RemotePreferences { + + constructor(context: Context, authority: String, prefFileName: String) : super( + context, + authority, + prefFileName + ) + + constructor( + context: Context, + authority: String, + prefFileName: String, + strictMode: Boolean + ) : super(context, authority, prefFileName, strictMode) + + fun getBoolean(key: String?): Boolean { + return getBoolean(key, false) + } + + fun getSliderInt(key: String?, defaultVal: Int): Int { + return SliderPreference.getSingleIntValue(this, key, defaultVal) + } + + fun getSliderFloat(key: String?, defaultVal: Float): Float { + return SliderPreference.getSingleFloatValue(this, key, defaultVal) + } + + fun getSliderValues(key: String?, defaultValue: Float): List { + return SliderPreference.getValues(this, key, defaultValue) + } +} diff --git a/app/src/main/java/com/drdisagree/iconify/xposed/utils/XPrefs.kt b/app/src/main/java/com/drdisagree/iconify/xposed/utils/XPrefs.kt new file mode 100644 index 000000000..50b9e3774 --- /dev/null +++ b/app/src/main/java/com/drdisagree/iconify/xposed/utils/XPrefs.kt @@ -0,0 +1,53 @@ +package com.drdisagree.iconify.xposed.utils + +import android.annotation.SuppressLint +import android.content.Context +import android.content.SharedPreferences +import android.content.SharedPreferences.OnSharedPreferenceChangeListener +import com.crossbowffs.remotepreferences.RemotePreferences +import com.drdisagree.iconify.BuildConfig +import com.drdisagree.iconify.common.Const.PREF_UPDATE_EXCLUSIONS +import com.drdisagree.iconify.common.Resources.SHARED_XPREFERENCES +import com.drdisagree.iconify.xposed.HookEntry +import de.robv.android.xposed.XposedBridge.log + +object XPrefs { + + @SuppressLint("StaticFieldLeak") + lateinit var Xprefs: ExtendedRemotePreferences + private val TAG = "Iconify - ${XPrefs::class.java.simpleName}: " + private val listener = OnSharedPreferenceChangeListener { _: SharedPreferences?, key: String? -> + loadEverything( + key + ) + } + + val XprefsIsInitialized: Boolean + get() = ::Xprefs.isInitialized + + fun init(context: Context) { + Xprefs = ExtendedRemotePreferences( + context, + BuildConfig.APPLICATION_ID, + SHARED_XPREFERENCES, + true + ) + (Xprefs as RemotePreferences).registerOnSharedPreferenceChangeListener(listener) + } + + private fun loadEverything(vararg key: String?) { + if (key.isEmpty() || key[0].isNullOrEmpty() || PREF_UPDATE_EXCLUSIONS.any { exclusion -> + key[0]?.equals(exclusion) == true + }) { + return + } + + HookEntry.runningMods.forEach { thisMod -> + try { + thisMod.updatePrefs(*key.filterNotNull().toTypedArray()) + } catch (throwable: Throwable) { + log(TAG + "${thisMod.javaClass.simpleName} -> " + throwable) + } + } + } +} diff --git a/app/src/main/res/color/color_material_ripple_error.xml b/app/src/main/res/color/color_material_ripple_error.xml new file mode 100644 index 000000000..b055f630c --- /dev/null +++ b/app/src/main/res/color/color_material_ripple_error.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/color/color_surface_semitransparent.xml b/app/src/main/res/color/color_surface_semitransparent.xml new file mode 100644 index 000000000..3ae7ffeb6 --- /dev/null +++ b/app/src/main/res/color/color_surface_semitransparent.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/chip_status_bar_1.xml b/app/src/main/res/drawable-v24/chip_status_bar_1.xml deleted file mode 100644 index a73df5cf6..000000000 --- a/app/src/main/res/drawable-v24/chip_status_bar_1.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/chip_status_bar_2.xml b/app/src/main/res/drawable-v24/chip_status_bar_2.xml deleted file mode 100644 index 5828926d2..000000000 --- a/app/src/main/res/drawable-v24/chip_status_bar_2.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/chip_status_bar_3.xml b/app/src/main/res/drawable-v24/chip_status_bar_3.xml deleted file mode 100644 index 916c112fc..000000000 --- a/app/src/main/res/drawable-v24/chip_status_bar_3.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable-v24/chip_status_bar_4.xml b/app/src/main/res/drawable-v24/chip_status_bar_4.xml deleted file mode 100644 index 2339dcacc..000000000 --- a/app/src/main/res/drawable-v24/chip_status_bar_4.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable-v24/chip_status_bar_5.xml b/app/src/main/res/drawable-v24/chip_status_bar_5.xml deleted file mode 100644 index c4a0e6ce1..000000000 --- a/app/src/main/res/drawable-v24/chip_status_bar_5.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/chip_status_bar_6.xml b/app/src/main/res/drawable-v24/chip_status_bar_6.xml deleted file mode 100644 index 99b72ac9a..000000000 --- a/app/src/main/res/drawable-v24/chip_status_bar_6.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/chip_status_bar_7.xml b/app/src/main/res/drawable-v24/chip_status_bar_7.xml deleted file mode 100644 index fd853dc30..000000000 --- a/app/src/main/res/drawable-v24/chip_status_bar_7.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/chip_status_icons_1.xml b/app/src/main/res/drawable-v24/chip_status_icons_1.xml deleted file mode 100644 index 04f3a3643..000000000 --- a/app/src/main/res/drawable-v24/chip_status_icons_1.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/chip_status_icons_2.xml b/app/src/main/res/drawable-v24/chip_status_icons_2.xml deleted file mode 100644 index c0f203479..000000000 --- a/app/src/main/res/drawable-v24/chip_status_icons_2.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable-v24/chip_status_icons_3.xml b/app/src/main/res/drawable-v24/chip_status_icons_3.xml deleted file mode 100644 index e1b6b8970..000000000 --- a/app/src/main/res/drawable-v24/chip_status_icons_3.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable-v24/chip_status_icons_4.xml b/app/src/main/res/drawable-v24/chip_status_icons_4.xml deleted file mode 100644 index 398d3744b..000000000 --- a/app/src/main/res/drawable-v24/chip_status_icons_4.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable-v24/chip_status_icons_5.xml b/app/src/main/res/drawable-v24/chip_status_icons_5.xml deleted file mode 100644 index 674235ef0..000000000 --- a/app/src/main/res/drawable-v24/chip_status_icons_5.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/chip_status_icons_6.xml b/app/src/main/res/drawable-v24/chip_status_icons_6.xml deleted file mode 100644 index 4401f3bed..000000000 --- a/app/src/main/res/drawable-v24/chip_status_icons_6.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/container_main_no_ripple.xml b/app/src/main/res/drawable-v24/container_main_no_ripple.xml new file mode 100644 index 000000000..dcbd158b7 --- /dev/null +++ b/app/src/main/res/drawable-v24/container_main_no_ripple.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/ic_navbar_tweaks_checked.xml b/app/src/main/res/drawable-v24/ic_navbar_tweaks_checked.xml index bd00a8e3a..ad4306f16 100644 --- a/app/src/main/res/drawable-v24/ic_navbar_tweaks_checked.xml +++ b/app/src/main/res/drawable-v24/ic_navbar_tweaks_checked.xml @@ -1,22 +1,9 @@ - - - - + android:pathData="M16.19,2H7.81C4.17,2 2,4.17 2,7.81V16.18C2,19.83 4.17,22 7.81,22H16.18C19.82,22 21.99,19.83 21.99,16.19V7.81C22,4.17 19.83,2 16.19,2ZM7.67,5.5C7.67,5.09 8.01,4.75 8.42,4.75C8.83,4.75 9.17,5.09 9.17,5.5V9.4C9.17,9.81 8.83,10.15 8.42,10.15C8.01,10.15 7.67,9.81 7.67,9.4V5.5ZM9.523,16.431C9.319,16.522 9.17,16.713 9.17,16.936V18.5C9.17,18.91 8.83,19.25 8.42,19.25C8.01,19.25 7.67,18.91 7.67,18.5V16.936C7.67,16.713 7.521,16.522 7.317,16.431C6.363,16.006 5.7,15.058 5.7,13.95C5.7,12.45 6.92,11.22 8.42,11.22C9.92,11.22 11.15,12.44 11.15,13.95C11.15,15.058 10.479,16.007 9.523,16.431ZM16.33,18.5C16.33,18.91 15.99,19.25 15.58,19.25C15.17,19.25 14.83,18.91 14.83,18.5V14.6C14.83,14.19 15.17,13.85 15.58,13.85C15.99,13.85 16.33,14.19 16.33,14.6V18.5ZM15.58,12.77C14.08,12.77 12.85,11.55 12.85,10.04C12.85,8.932 13.521,7.983 14.477,7.559C14.681,7.468 14.83,7.277 14.83,7.054V5.5C14.83,5.09 15.17,4.75 15.58,4.75C15.99,4.75 16.33,5.09 16.33,5.5V7.064C16.33,7.287 16.479,7.478 16.683,7.569C17.637,7.994 18.3,8.942 18.3,10.05C18.3,11.55 17.08,12.77 15.58,12.77Z" /> diff --git a/app/src/main/res/drawable-v24/ic_navbar_tweaks_unchecked.xml b/app/src/main/res/drawable-v24/ic_navbar_tweaks_unchecked.xml index f65ff0eea..bf95a6b3a 100644 --- a/app/src/main/res/drawable-v24/ic_navbar_tweaks_unchecked.xml +++ b/app/src/main/res/drawable-v24/ic_navbar_tweaks_unchecked.xml @@ -1,22 +1,27 @@ + android:pathData="M15,22.75H9C3.57,22.75 1.25,20.43 1.25,15V9C1.25,3.57 3.57,1.25 9,1.25H15C20.43,1.25 22.75,3.57 22.75,9V15C22.75,20.43 20.43,22.75 15,22.75ZM9,2.75C4.39,2.75 2.75,4.39 2.75,9V15C2.75,19.61 4.39,21.25 9,21.25H15C19.61,21.25 21.25,19.61 21.25,15V9C21.25,4.39 19.61,2.75 15,2.75H9Z" /> + android:pathData="M15.58,19.25C15.17,19.25 14.83,18.91 14.83,18.5V14.6C14.83,14.19 15.17,13.85 15.58,13.85C15.99,13.85 16.33,14.19 16.33,14.6V18.5C16.33,18.91 15.99,19.25 15.58,19.25Z" /> + android:pathData="M15.58,8.2C15.17,8.2 14.83,7.86 14.83,7.45V5.5C14.83,5.09 15.17,4.75 15.58,4.75C15.99,4.75 16.33,5.09 16.33,5.5V7.45C16.33,7.86 15.99,8.2 15.58,8.2Z" /> + android:pathData="M15.58,13.4C13.731,13.4 12.231,11.9 12.231,10.05C12.231,8.2 13.731,6.7 15.58,6.7C17.431,6.7 18.931,8.2 18.931,10.05C18.931,11.9 17.42,13.4 15.58,13.4ZM15.58,8.2C14.561,8.2 13.731,9.03 13.731,10.05C13.731,11.07 14.561,11.9 15.58,11.9C16.601,11.9 17.431,11.07 17.431,10.05C17.431,9.03 16.59,8.2 15.58,8.2Z" /> + android:pathData="M8.42,19.25C8.01,19.25 7.67,18.91 7.67,18.5V16.55C7.67,16.14 8.01,15.8 8.42,15.8C8.83,15.8 9.17,16.14 9.17,16.55V18.5C9.17,18.91 8.84,19.25 8.42,19.25Z" /> + + diff --git a/app/src/main/res/drawable-v24/ic_navbar_xposed.xml b/app/src/main/res/drawable-v24/ic_navbar_xposed.xml new file mode 100644 index 000000000..d3056699d --- /dev/null +++ b/app/src/main/res/drawable-v24/ic_navbar_xposed.xml @@ -0,0 +1,4 @@ + + + + diff --git a/app/src/main/res/drawable-v24/ic_navbar_xposed_checked.xml b/app/src/main/res/drawable-v24/ic_navbar_xposed_checked.xml new file mode 100644 index 000000000..bd00a8e3a --- /dev/null +++ b/app/src/main/res/drawable-v24/ic_navbar_xposed_checked.xml @@ -0,0 +1,22 @@ + + + + + + + diff --git a/app/src/main/res/drawable-v24/ic_navbar_xposed_unchecked.xml b/app/src/main/res/drawable-v24/ic_navbar_xposed_unchecked.xml new file mode 100644 index 000000000..f65ff0eea --- /dev/null +++ b/app/src/main/res/drawable-v24/ic_navbar_xposed_unchecked.xml @@ -0,0 +1,22 @@ + + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_aquarium_ic_signal_cellular_1_4_bar.xml b/app/src/main/res/drawable-v24/preview_aquarium_ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..effcde5d9 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_aquarium_ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,10 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_aquarium_ic_signal_cellular_2_4_bar.xml b/app/src/main/res/drawable-v24/preview_aquarium_ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..504cc95a7 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_aquarium_ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_aquarium_ic_signal_cellular_3_4_bar.xml b/app/src/main/res/drawable-v24/preview_aquarium_ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..e6aad62df --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_aquarium_ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_aquarium_ic_signal_cellular_4_4_bar.xml b/app/src/main/res/drawable-v24/preview_aquarium_ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..62f871e78 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_aquarium_ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_aurora_ic_signal_cellular_1_4_bar.xml b/app/src/main/res/drawable-v24/preview_aurora_ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..add7e5812 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_aurora_ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_aurora_ic_signal_cellular_2_4_bar.xml b/app/src/main/res/drawable-v24/preview_aurora_ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..c4a9923ea --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_aurora_ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,30 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_aurora_ic_signal_cellular_3_4_bar.xml b/app/src/main/res/drawable-v24/preview_aurora_ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..88825e53a --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_aurora_ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,38 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_aurora_ic_signal_cellular_4_4_bar.xml b/app/src/main/res/drawable-v24/preview_aurora_ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..e65bc2f95 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_aurora_ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,38 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_aurora_ic_wifi_signal_1.xml b/app/src/main/res/drawable-v24/preview_aurora_ic_wifi_signal_1.xml new file mode 100644 index 000000000..fec096e70 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_aurora_ic_wifi_signal_1.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_aurora_ic_wifi_signal_2.xml b/app/src/main/res/drawable-v24/preview_aurora_ic_wifi_signal_2.xml new file mode 100644 index 000000000..5dd08b195 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_aurora_ic_wifi_signal_2.xml @@ -0,0 +1,30 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_aurora_ic_wifi_signal_3.xml b/app/src/main/res/drawable-v24/preview_aurora_ic_wifi_signal_3.xml new file mode 100644 index 000000000..1974b4d26 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_aurora_ic_wifi_signal_3.xml @@ -0,0 +1,38 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_aurora_ic_wifi_signal_4.xml b/app/src/main/res/drawable-v24/preview_aurora_ic_wifi_signal_4.xml new file mode 100644 index 000000000..18eec4e44 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_aurora_ic_wifi_signal_4.xml @@ -0,0 +1,38 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_bars_ic_signal_cellular_1_4_bar.xml b/app/src/main/res/drawable-v24/preview_bars_ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..1ecbce706 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_bars_ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_bars_ic_signal_cellular_2_4_bar.xml b/app/src/main/res/drawable-v24/preview_bars_ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..7b7b7ec05 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_bars_ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_bars_ic_signal_cellular_3_4_bar.xml b/app/src/main/res/drawable-v24/preview_bars_ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..28bcab505 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_bars_ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_bars_ic_signal_cellular_4_4_bar.xml b/app/src/main/res/drawable-v24/preview_bars_ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..06c36c0fd --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_bars_ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_bars_ic_wifi_signal_1.xml b/app/src/main/res/drawable-v24/preview_bars_ic_wifi_signal_1.xml new file mode 100644 index 000000000..f05deda6a --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_bars_ic_wifi_signal_1.xml @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_bars_ic_wifi_signal_2.xml b/app/src/main/res/drawable-v24/preview_bars_ic_wifi_signal_2.xml new file mode 100644 index 000000000..a6d1cf1be --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_bars_ic_wifi_signal_2.xml @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_bars_ic_wifi_signal_3.xml b/app/src/main/res/drawable-v24/preview_bars_ic_wifi_signal_3.xml new file mode 100644 index 000000000..b668f00d7 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_bars_ic_wifi_signal_3.xml @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_bars_ic_wifi_signal_4.xml b/app/src/main/res/drawable-v24/preview_bars_ic_wifi_signal_4.xml new file mode 100644 index 000000000..82cf3b616 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_bars_ic_wifi_signal_4.xml @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_butterfly_ic_signal_cellular_1_4_bar.xml b/app/src/main/res/drawable-v24/preview_butterfly_ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..39fa79c91 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_butterfly_ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_butterfly_ic_signal_cellular_2_4_bar.xml b/app/src/main/res/drawable-v24/preview_butterfly_ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..185ee1072 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_butterfly_ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_butterfly_ic_signal_cellular_3_4_bar.xml b/app/src/main/res/drawable-v24/preview_butterfly_ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..b8f1b43b5 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_butterfly_ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_butterfly_ic_signal_cellular_4_4_bar.xml b/app/src/main/res/drawable-v24/preview_butterfly_ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..bf29c73d1 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_butterfly_ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_circle_ic_signal_cellular_1_4_bar.xml b/app/src/main/res/drawable-v24/preview_circle_ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..d1312a6f0 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_circle_ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_circle_ic_signal_cellular_2_4_bar.xml b/app/src/main/res/drawable-v24/preview_circle_ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..36143d3c8 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_circle_ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_circle_ic_signal_cellular_3_4_bar.xml b/app/src/main/res/drawable-v24/preview_circle_ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..554850966 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_circle_ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_circle_ic_signal_cellular_4_4_bar.xml b/app/src/main/res/drawable-v24/preview_circle_ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..725a41460 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_circle_ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_color_picker_border.xml b/app/src/main/res/drawable-v24/preview_color_picker_border.xml new file mode 100644 index 000000000..c23a934ca --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_color_picker_border.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_daun_ic_signal_cellular_1_4_bar.xml b/app/src/main/res/drawable-v24/preview_daun_ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..b10190819 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_daun_ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_daun_ic_signal_cellular_2_4_bar.xml b/app/src/main/res/drawable-v24/preview_daun_ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..ae4b4ad54 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_daun_ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_daun_ic_signal_cellular_3_4_bar.xml b/app/src/main/res/drawable-v24/preview_daun_ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..a9ec0f75e --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_daun_ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_daun_ic_signal_cellular_4_4_bar.xml b/app/src/main/res/drawable-v24/preview_daun_ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..3f6137d42 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_daun_ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_dec_ic_signal_cellular_1_4_bar.xml b/app/src/main/res/drawable-v24/preview_dec_ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..91105c9f4 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_dec_ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_dec_ic_signal_cellular_2_4_bar.xml b/app/src/main/res/drawable-v24/preview_dec_ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..df462a481 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_dec_ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_dec_ic_signal_cellular_3_4_bar.xml b/app/src/main/res/drawable-v24/preview_dec_ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..72af92adb --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_dec_ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_dec_ic_signal_cellular_4_4_bar.xml b/app/src/main/res/drawable-v24/preview_dec_ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..9df8b17db --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_dec_ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_deep_ic_signal_cellular_1_4_bar.xml b/app/src/main/res/drawable-v24/preview_deep_ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..c096b8452 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_deep_ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_deep_ic_signal_cellular_2_4_bar.xml b/app/src/main/res/drawable-v24/preview_deep_ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..f1133a5eb --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_deep_ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_deep_ic_signal_cellular_3_4_bar.xml b/app/src/main/res/drawable-v24/preview_deep_ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..ac4d88565 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_deep_ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_deep_ic_signal_cellular_4_4_bar.xml b/app/src/main/res/drawable-v24/preview_deep_ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..b7e93666c --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_deep_ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_dora_ic_signal_cellular_1_4_bar.xml b/app/src/main/res/drawable-v24/preview_dora_ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..445681baa --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_dora_ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_dora_ic_signal_cellular_2_4_bar.xml b/app/src/main/res/drawable-v24/preview_dora_ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..b2d37469d --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_dora_ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_dora_ic_signal_cellular_3_4_bar.xml b/app/src/main/res/drawable-v24/preview_dora_ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..49d9ecd88 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_dora_ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_dora_ic_signal_cellular_4_4_bar.xml b/app/src/main/res/drawable-v24/preview_dora_ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..11b7d92a9 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_dora_ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_dora_ic_wifi_signal_1.xml b/app/src/main/res/drawable-v24/preview_dora_ic_wifi_signal_1.xml new file mode 100644 index 000000000..361725009 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_dora_ic_wifi_signal_1.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_dora_ic_wifi_signal_2.xml b/app/src/main/res/drawable-v24/preview_dora_ic_wifi_signal_2.xml new file mode 100644 index 000000000..a9c6992e5 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_dora_ic_wifi_signal_2.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_dora_ic_wifi_signal_3.xml b/app/src/main/res/drawable-v24/preview_dora_ic_wifi_signal_3.xml new file mode 100644 index 000000000..d902c2970 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_dora_ic_wifi_signal_3.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_dora_ic_wifi_signal_4.xml b/app/src/main/res/drawable-v24/preview_dora_ic_wifi_signal_4.xml new file mode 100644 index 000000000..f96ae041a --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_dora_ic_wifi_signal_4.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_equal_ic_signal_cellular_1_4_bar.xml b/app/src/main/res/drawable-v24/preview_equal_ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..f625c4edb --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_equal_ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_equal_ic_signal_cellular_2_4_bar.xml b/app/src/main/res/drawable-v24/preview_equal_ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..316b0d3a5 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_equal_ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_equal_ic_signal_cellular_3_4_bar.xml b/app/src/main/res/drawable-v24/preview_equal_ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..4106a2347 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_equal_ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_equal_ic_signal_cellular_4_4_bar.xml b/app/src/main/res/drawable-v24/preview_equal_ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..cf10b0123 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_equal_ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_faint_ui_ic_signal_cellular_1_4_bar.xml b/app/src/main/res/drawable-v24/preview_faint_ui_ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..b4bed1feb --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_faint_ui_ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,60 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_faint_ui_ic_signal_cellular_2_4_bar.xml b/app/src/main/res/drawable-v24/preview_faint_ui_ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..59adc2ab9 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_faint_ui_ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,60 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_faint_ui_ic_signal_cellular_3_4_bar.xml b/app/src/main/res/drawable-v24/preview_faint_ui_ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..b1c402dfc --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_faint_ui_ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,60 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_faint_ui_ic_signal_cellular_4_4_bar.xml b/app/src/main/res/drawable-v24/preview_faint_ui_ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..5836f94f2 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_faint_ui_ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,60 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_faint_ui_ic_wifi_signal_1.xml b/app/src/main/res/drawable-v24/preview_faint_ui_ic_wifi_signal_1.xml new file mode 100644 index 000000000..1ea85488b --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_faint_ui_ic_wifi_signal_1.xml @@ -0,0 +1,30 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_faint_ui_ic_wifi_signal_2.xml b/app/src/main/res/drawable-v24/preview_faint_ui_ic_wifi_signal_2.xml new file mode 100644 index 000000000..b366d77d9 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_faint_ui_ic_wifi_signal_2.xml @@ -0,0 +1,38 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_faint_ui_ic_wifi_signal_3.xml b/app/src/main/res/drawable-v24/preview_faint_ui_ic_wifi_signal_3.xml new file mode 100644 index 000000000..d827bca42 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_faint_ui_ic_wifi_signal_3.xml @@ -0,0 +1,46 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_faint_ui_ic_wifi_signal_4.xml b/app/src/main/res/drawable-v24/preview_faint_ui_ic_wifi_signal_4.xml new file mode 100644 index 000000000..7c0a964be --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_faint_ui_ic_wifi_signal_4.xml @@ -0,0 +1,46 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_fan_ic_signal_cellular_1_4_bar.xml b/app/src/main/res/drawable-v24/preview_fan_ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..70c43f196 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_fan_ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_fan_ic_signal_cellular_2_4_bar.xml b/app/src/main/res/drawable-v24/preview_fan_ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..3ba81ab0c --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_fan_ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_fan_ic_signal_cellular_3_4_bar.xml b/app/src/main/res/drawable-v24/preview_fan_ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..7326f8eeb --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_fan_ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_fan_ic_signal_cellular_4_4_bar.xml b/app/src/main/res/drawable-v24/preview_fan_ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..882677438 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_fan_ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_gradicon_ic_signal_cellular_1_4_bar.xml b/app/src/main/res/drawable-v24/preview_gradicon_ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..531a080a4 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_gradicon_ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_gradicon_ic_signal_cellular_2_4_bar.xml b/app/src/main/res/drawable-v24/preview_gradicon_ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..c9e74bc8d --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_gradicon_ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_gradicon_ic_signal_cellular_3_4_bar.xml b/app/src/main/res/drawable-v24/preview_gradicon_ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..9da5e2d31 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_gradicon_ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_gradicon_ic_signal_cellular_4_4_bar.xml b/app/src/main/res/drawable-v24/preview_gradicon_ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..6c8b26399 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_gradicon_ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_gradicon_ic_wifi_signal_1.xml b/app/src/main/res/drawable-v24/preview_gradicon_ic_wifi_signal_1.xml new file mode 100644 index 000000000..867de6807 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_gradicon_ic_wifi_signal_1.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_gradicon_ic_wifi_signal_2.xml b/app/src/main/res/drawable-v24/preview_gradicon_ic_wifi_signal_2.xml new file mode 100644 index 000000000..e2207408d --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_gradicon_ic_wifi_signal_2.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_gradicon_ic_wifi_signal_3.xml b/app/src/main/res/drawable-v24/preview_gradicon_ic_wifi_signal_3.xml new file mode 100644 index 000000000..eef571d59 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_gradicon_ic_wifi_signal_3.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_gradicon_ic_wifi_signal_4.xml b/app/src/main/res/drawable-v24/preview_gradicon_ic_wifi_signal_4.xml new file mode 100644 index 000000000..eef571d59 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_gradicon_ic_wifi_signal_4.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_huawei_ic_signal_cellular_1_4_bar.xml b/app/src/main/res/drawable-v24/preview_huawei_ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..aceafa1c8 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_huawei_ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,21 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_huawei_ic_signal_cellular_2_4_bar.xml b/app/src/main/res/drawable-v24/preview_huawei_ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..dcfadbe81 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_huawei_ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,21 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_huawei_ic_signal_cellular_3_4_bar.xml b/app/src/main/res/drawable-v24/preview_huawei_ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..8407c90b2 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_huawei_ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,21 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_huawei_ic_signal_cellular_4_4_bar.xml b/app/src/main/res/drawable-v24/preview_huawei_ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..3c485ea27 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_huawei_ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,21 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_inside_ic_signal_cellular_1_4_bar.xml b/app/src/main/res/drawable-v24/preview_inside_ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..785eacb11 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_inside_ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_inside_ic_signal_cellular_2_4_bar.xml b/app/src/main/res/drawable-v24/preview_inside_ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..07de2487d --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_inside_ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_inside_ic_signal_cellular_3_4_bar.xml b/app/src/main/res/drawable-v24/preview_inside_ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..0a24a937d --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_inside_ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_inside_ic_signal_cellular_4_4_bar.xml b/app/src/main/res/drawable-v24/preview_inside_ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..1333943e8 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_inside_ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_inside_ic_wifi_signal_1.xml b/app/src/main/res/drawable-v24/preview_inside_ic_wifi_signal_1.xml new file mode 100644 index 000000000..ece630995 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_inside_ic_wifi_signal_1.xml @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_inside_ic_wifi_signal_2.xml b/app/src/main/res/drawable-v24/preview_inside_ic_wifi_signal_2.xml new file mode 100644 index 000000000..41e4caea8 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_inside_ic_wifi_signal_2.xml @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_inside_ic_wifi_signal_3.xml b/app/src/main/res/drawable-v24/preview_inside_ic_wifi_signal_3.xml new file mode 100644 index 000000000..6e7a27fb8 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_inside_ic_wifi_signal_3.xml @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_inside_ic_wifi_signal_4.xml b/app/src/main/res/drawable-v24/preview_inside_ic_wifi_signal_4.xml new file mode 100644 index 000000000..70e9d7a9e --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_inside_ic_wifi_signal_4.xml @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_ios_ic_signal_cellular_1_4_bar.xml b/app/src/main/res/drawable-v24/preview_ios_ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..579843a31 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_ios_ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_ios_ic_signal_cellular_2_4_bar.xml b/app/src/main/res/drawable-v24/preview_ios_ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..0284f9ea2 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_ios_ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_ios_ic_signal_cellular_3_4_bar.xml b/app/src/main/res/drawable-v24/preview_ios_ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..49dce55ce --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_ios_ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_ios_ic_signal_cellular_4_4_bar.xml b/app/src/main/res/drawable-v24/preview_ios_ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..c6cc45a68 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_ios_ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_lorn_ic_signal_cellular_1_4_bar.xml b/app/src/main/res/drawable-v24/preview_lorn_ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..695c5263e --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_lorn_ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_lorn_ic_signal_cellular_2_4_bar.xml b/app/src/main/res/drawable-v24/preview_lorn_ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..695c5263e --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_lorn_ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_lorn_ic_signal_cellular_3_4_bar.xml b/app/src/main/res/drawable-v24/preview_lorn_ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..83254ff81 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_lorn_ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_lorn_ic_signal_cellular_4_4_bar.xml b/app/src/main/res/drawable-v24/preview_lorn_ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..4f271f0a1 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_lorn_ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_lorn_ic_wifi_signal_1.xml b/app/src/main/res/drawable-v24/preview_lorn_ic_wifi_signal_1.xml new file mode 100644 index 000000000..500617c4b --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_lorn_ic_wifi_signal_1.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_lorn_ic_wifi_signal_2.xml b/app/src/main/res/drawable-v24/preview_lorn_ic_wifi_signal_2.xml new file mode 100644 index 000000000..f0aa6e016 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_lorn_ic_wifi_signal_2.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_lorn_ic_wifi_signal_3.xml b/app/src/main/res/drawable-v24/preview_lorn_ic_wifi_signal_3.xml new file mode 100644 index 000000000..23c0e7f0f --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_lorn_ic_wifi_signal_3.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_lorn_ic_wifi_signal_4.xml b/app/src/main/res/drawable-v24/preview_lorn_ic_wifi_signal_4.xml new file mode 100644 index 000000000..23c0e7f0f --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_lorn_ic_wifi_signal_4.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_mini_ic_signal_cellular_1_4_bar.xml b/app/src/main/res/drawable-v24/preview_mini_ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..57cf89631 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_mini_ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_mini_ic_signal_cellular_2_4_bar.xml b/app/src/main/res/drawable-v24/preview_mini_ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..d609fdc79 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_mini_ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_mini_ic_signal_cellular_3_4_bar.xml b/app/src/main/res/drawable-v24/preview_mini_ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..f291f636e --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_mini_ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_mini_ic_signal_cellular_4_4_bar.xml b/app/src/main/res/drawable-v24/preview_mini_ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..fbe8dbc5c --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_mini_ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_nothing_dot_ic_signal_cellular_1_4_bar.xml b/app/src/main/res/drawable-v24/preview_nothing_dot_ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..4cefd75ae --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_nothing_dot_ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_nothing_dot_ic_signal_cellular_2_4_bar.xml b/app/src/main/res/drawable-v24/preview_nothing_dot_ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..c03935468 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_nothing_dot_ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_nothing_dot_ic_signal_cellular_3_4_bar.xml b/app/src/main/res/drawable-v24/preview_nothing_dot_ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..3bfb02198 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_nothing_dot_ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_nothing_dot_ic_signal_cellular_4_4_bar.xml b/app/src/main/res/drawable-v24/preview_nothing_dot_ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..2f0a9bf75 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_nothing_dot_ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_nothing_dot_ic_wifi_signal_1.xml b/app/src/main/res/drawable-v24/preview_nothing_dot_ic_wifi_signal_1.xml new file mode 100644 index 000000000..a3865f829 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_nothing_dot_ic_wifi_signal_1.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_nothing_dot_ic_wifi_signal_2.xml b/app/src/main/res/drawable-v24/preview_nothing_dot_ic_wifi_signal_2.xml new file mode 100644 index 000000000..eb32dd9a8 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_nothing_dot_ic_wifi_signal_2.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_nothing_dot_ic_wifi_signal_3.xml b/app/src/main/res/drawable-v24/preview_nothing_dot_ic_wifi_signal_3.xml new file mode 100644 index 000000000..aaae51a35 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_nothing_dot_ic_wifi_signal_3.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_nothing_dot_ic_wifi_signal_4.xml b/app/src/main/res/drawable-v24/preview_nothing_dot_ic_wifi_signal_4.xml new file mode 100644 index 000000000..4f2da1a5d --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_nothing_dot_ic_wifi_signal_4.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_odin_ic_signal_cellular_1_4_bar.xml b/app/src/main/res/drawable-v24/preview_odin_ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..1fa47ca92 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_odin_ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_odin_ic_signal_cellular_2_4_bar.xml b/app/src/main/res/drawable-v24/preview_odin_ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..60c215086 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_odin_ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_odin_ic_signal_cellular_3_4_bar.xml b/app/src/main/res/drawable-v24/preview_odin_ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..a11914a63 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_odin_ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_odin_ic_signal_cellular_4_4_bar.xml b/app/src/main/res/drawable-v24/preview_odin_ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..ba2da49b0 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_odin_ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_pills_ic_signal_cellular_1_4_bar.xml b/app/src/main/res/drawable-v24/preview_pills_ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..b9178b2f4 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_pills_ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_pills_ic_signal_cellular_2_4_bar.xml b/app/src/main/res/drawable-v24/preview_pills_ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..3d12a6fd1 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_pills_ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_pills_ic_signal_cellular_3_4_bar.xml b/app/src/main/res/drawable-v24/preview_pills_ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..590dd2c2e --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_pills_ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_pills_ic_signal_cellular_4_4_bar.xml b/app/src/main/res/drawable-v24/preview_pills_ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..74f9d4730 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_pills_ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_plumpy_ic_signal_cellular_1_4_bar.xml b/app/src/main/res/drawable-v24/preview_plumpy_ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..f08da03ca --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_plumpy_ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_plumpy_ic_signal_cellular_2_4_bar.xml b/app/src/main/res/drawable-v24/preview_plumpy_ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..900bbd66d --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_plumpy_ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_plumpy_ic_signal_cellular_3_4_bar.xml b/app/src/main/res/drawable-v24/preview_plumpy_ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..97dc06545 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_plumpy_ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_plumpy_ic_signal_cellular_4_4_bar.xml b/app/src/main/res/drawable-v24/preview_plumpy_ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..5e4c24270 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_plumpy_ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_plumpy_ic_wifi_signal_1.xml b/app/src/main/res/drawable-v24/preview_plumpy_ic_wifi_signal_1.xml new file mode 100644 index 000000000..175ec6658 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_plumpy_ic_wifi_signal_1.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_plumpy_ic_wifi_signal_2.xml b/app/src/main/res/drawable-v24/preview_plumpy_ic_wifi_signal_2.xml new file mode 100644 index 000000000..702a4471f --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_plumpy_ic_wifi_signal_2.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_plumpy_ic_wifi_signal_3.xml b/app/src/main/res/drawable-v24/preview_plumpy_ic_wifi_signal_3.xml new file mode 100644 index 000000000..2b58058e3 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_plumpy_ic_wifi_signal_3.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_plumpy_ic_wifi_signal_4.xml b/app/src/main/res/drawable-v24/preview_plumpy_ic_wifi_signal_4.xml new file mode 100644 index 000000000..f84d7689d --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_plumpy_ic_wifi_signal_4.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_rel_ic_signal_cellular_1_4_bar.xml b/app/src/main/res/drawable-v24/preview_rel_ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..e683bbefd --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_rel_ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,19 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_rel_ic_signal_cellular_2_4_bar.xml b/app/src/main/res/drawable-v24/preview_rel_ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..e75b2a6d5 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_rel_ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,19 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_rel_ic_signal_cellular_3_4_bar.xml b/app/src/main/res/drawable-v24/preview_rel_ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..50f76bd71 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_rel_ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,19 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_rel_ic_signal_cellular_4_4_bar.xml b/app/src/main/res/drawable-v24/preview_rel_ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..4f18862b0 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_rel_ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,19 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_roman_ic_signal_cellular_1_4_bar.xml b/app/src/main/res/drawable-v24/preview_roman_ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..e4eb791c5 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_roman_ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,7 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_roman_ic_signal_cellular_2_4_bar.xml b/app/src/main/res/drawable-v24/preview_roman_ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..2ce739f0c --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_roman_ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_roman_ic_signal_cellular_3_4_bar.xml b/app/src/main/res/drawable-v24/preview_roman_ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..6e33da8da --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_roman_ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_roman_ic_signal_cellular_4_4_bar.xml b/app/src/main/res/drawable-v24/preview_roman_ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..a36c4b048 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_roman_ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_round_ic_signal_cellular_1_4_bar.xml b/app/src/main/res/drawable-v24/preview_round_ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..6ea3f7147 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_round_ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/res/drawable-v24/preview_round_ic_signal_cellular_2_4_bar.xml b/app/src/main/res/drawable-v24/preview_round_ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..7d8ba2f21 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_round_ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/res/drawable-v24/preview_round_ic_signal_cellular_3_4_bar.xml b/app/src/main/res/drawable-v24/preview_round_ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..db5411db2 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_round_ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/res/drawable-v24/preview_round_ic_signal_cellular_4_4_bar.xml b/app/src/main/res/drawable-v24/preview_round_ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..29c3ea284 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_round_ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/res/drawable-v24/preview_round_ic_wifi_signal_1.xml b/app/src/main/res/drawable-v24/preview_round_ic_wifi_signal_1.xml new file mode 100644 index 000000000..f8fbf1e32 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_round_ic_wifi_signal_1.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/res/drawable-v24/preview_round_ic_wifi_signal_2.xml b/app/src/main/res/drawable-v24/preview_round_ic_wifi_signal_2.xml new file mode 100644 index 000000000..226d28263 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_round_ic_wifi_signal_2.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/res/drawable-v24/preview_round_ic_wifi_signal_3.xml b/app/src/main/res/drawable-v24/preview_round_ic_wifi_signal_3.xml new file mode 100644 index 000000000..de80ec9e8 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_round_ic_wifi_signal_3.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/res/drawable-v24/preview_round_ic_wifi_signal_4.xml b/app/src/main/res/drawable-v24/preview_round_ic_wifi_signal_4.xml new file mode 100644 index 000000000..de80ec9e8 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_round_ic_wifi_signal_4.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/res/drawable-v24/preview_scroll_ic_signal_cellular_1_4_bar.xml b/app/src/main/res/drawable-v24/preview_scroll_ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..6164e201b --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_scroll_ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_scroll_ic_signal_cellular_2_4_bar.xml b/app/src/main/res/drawable-v24/preview_scroll_ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..e771017df --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_scroll_ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_scroll_ic_signal_cellular_3_4_bar.xml b/app/src/main/res/drawable-v24/preview_scroll_ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..8934ed54f --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_scroll_ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_scroll_ic_signal_cellular_4_4_bar.xml b/app/src/main/res/drawable-v24/preview_scroll_ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..52285595a --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_scroll_ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_sea_ic_signal_cellular_1_4_bar.xml b/app/src/main/res/drawable-v24/preview_sea_ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..4c767ccba --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_sea_ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_sea_ic_signal_cellular_2_4_bar.xml b/app/src/main/res/drawable-v24/preview_sea_ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..561b1fd55 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_sea_ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_sea_ic_signal_cellular_3_4_bar.xml b/app/src/main/res/drawable-v24/preview_sea_ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..53c8458db --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_sea_ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_sea_ic_signal_cellular_4_4_bar.xml b/app/src/main/res/drawable-v24/preview_sea_ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..9f93ea0b8 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_sea_ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_sneaky_ic_signal_cellular_1_4_bar.xml b/app/src/main/res/drawable-v24/preview_sneaky_ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..2d71803c7 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_sneaky_ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_sneaky_ic_signal_cellular_2_4_bar.xml b/app/src/main/res/drawable-v24/preview_sneaky_ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..72f83cf96 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_sneaky_ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_sneaky_ic_signal_cellular_3_4_bar.xml b/app/src/main/res/drawable-v24/preview_sneaky_ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..c2af388b9 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_sneaky_ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_sneaky_ic_signal_cellular_4_4_bar.xml b/app/src/main/res/drawable-v24/preview_sneaky_ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..04d4d2702 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_sneaky_ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_sneaky_ic_wifi_signal_1.xml b/app/src/main/res/drawable-v24/preview_sneaky_ic_wifi_signal_1.xml new file mode 100644 index 000000000..465a729ab --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_sneaky_ic_wifi_signal_1.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_sneaky_ic_wifi_signal_2.xml b/app/src/main/res/drawable-v24/preview_sneaky_ic_wifi_signal_2.xml new file mode 100644 index 000000000..a4553d7ec --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_sneaky_ic_wifi_signal_2.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_sneaky_ic_wifi_signal_3.xml b/app/src/main/res/drawable-v24/preview_sneaky_ic_wifi_signal_3.xml new file mode 100644 index 000000000..df7b1d63a --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_sneaky_ic_wifi_signal_3.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_sneaky_ic_wifi_signal_4.xml b/app/src/main/res/drawable-v24/preview_sneaky_ic_wifi_signal_4.xml new file mode 100644 index 000000000..abc3a1a1b --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_sneaky_ic_wifi_signal_4.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_stack_ic_signal_cellular_1_4_bar.xml b/app/src/main/res/drawable-v24/preview_stack_ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..016a3a8fc --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_stack_ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_stack_ic_signal_cellular_2_4_bar.xml b/app/src/main/res/drawable-v24/preview_stack_ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..71f52d4bd --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_stack_ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_stack_ic_signal_cellular_3_4_bar.xml b/app/src/main/res/drawable-v24/preview_stack_ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..852c1dac1 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_stack_ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_stack_ic_signal_cellular_4_4_bar.xml b/app/src/main/res/drawable-v24/preview_stack_ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..8f7b90a15 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_stack_ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_stroke_ic_signal_cellular_1_4_bar.xml b/app/src/main/res/drawable-v24/preview_stroke_ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..b149a1d54 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_stroke_ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_stroke_ic_signal_cellular_2_4_bar.xml b/app/src/main/res/drawable-v24/preview_stroke_ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..ceb7d5095 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_stroke_ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_stroke_ic_signal_cellular_3_4_bar.xml b/app/src/main/res/drawable-v24/preview_stroke_ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..d355efa26 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_stroke_ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_stroke_ic_signal_cellular_4_4_bar.xml b/app/src/main/res/drawable-v24/preview_stroke_ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..ffb465530 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_stroke_ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_stroke_ic_wifi_signal_1.xml b/app/src/main/res/drawable-v24/preview_stroke_ic_wifi_signal_1.xml new file mode 100644 index 000000000..d33292b6b --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_stroke_ic_wifi_signal_1.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/res/drawable-v24/preview_stroke_ic_wifi_signal_2.xml b/app/src/main/res/drawable-v24/preview_stroke_ic_wifi_signal_2.xml new file mode 100644 index 000000000..16a2e9902 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_stroke_ic_wifi_signal_2.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/res/drawable-v24/preview_stroke_ic_wifi_signal_3.xml b/app/src/main/res/drawable-v24/preview_stroke_ic_wifi_signal_3.xml new file mode 100644 index 000000000..aa17764ba --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_stroke_ic_wifi_signal_3.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/res/drawable-v24/preview_stroke_ic_wifi_signal_4.xml b/app/src/main/res/drawable-v24/preview_stroke_ic_wifi_signal_4.xml new file mode 100644 index 000000000..894c47966 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_stroke_ic_wifi_signal_4.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/res/drawable-v24/preview_wannui_ic_signal_cellular_1_4_bar.xml b/app/src/main/res/drawable-v24/preview_wannui_ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..052a63233 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_wannui_ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_wannui_ic_signal_cellular_2_4_bar.xml b/app/src/main/res/drawable-v24/preview_wannui_ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..64c1aff54 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_wannui_ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_wannui_ic_signal_cellular_3_4_bar.xml b/app/src/main/res/drawable-v24/preview_wannui_ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..8b6edabe9 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_wannui_ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_wannui_ic_signal_cellular_4_4_bar.xml b/app/src/main/res/drawable-v24/preview_wannui_ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..1aa6aa09a --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_wannui_ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_wavy_ic_signal_cellular_1_4_bar.xml b/app/src/main/res/drawable-v24/preview_wavy_ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..0c9074b83 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_wavy_ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_wavy_ic_signal_cellular_2_4_bar.xml b/app/src/main/res/drawable-v24/preview_wavy_ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..ac81a3de8 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_wavy_ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_wavy_ic_signal_cellular_3_4_bar.xml b/app/src/main/res/drawable-v24/preview_wavy_ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..c2259b10b --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_wavy_ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_wavy_ic_signal_cellular_4_4_bar.xml b/app/src/main/res/drawable-v24/preview_wavy_ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..b71c4c6c7 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_wavy_ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/res/drawable-v24/preview_wavy_ic_wifi_signal_1.xml b/app/src/main/res/drawable-v24/preview_wavy_ic_wifi_signal_1.xml new file mode 100644 index 000000000..6b42ba14a --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_wavy_ic_wifi_signal_1.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/res/drawable-v24/preview_wavy_ic_wifi_signal_2.xml b/app/src/main/res/drawable-v24/preview_wavy_ic_wifi_signal_2.xml new file mode 100644 index 000000000..7617c3fbd --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_wavy_ic_wifi_signal_2.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_wavy_ic_wifi_signal_3.xml b/app/src/main/res/drawable-v24/preview_wavy_ic_wifi_signal_3.xml new file mode 100644 index 000000000..746887bc3 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_wavy_ic_wifi_signal_3.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_wavy_ic_wifi_signal_4.xml b/app/src/main/res/drawable-v24/preview_wavy_ic_wifi_signal_4.xml new file mode 100644 index 000000000..88ae44047 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_wavy_ic_wifi_signal_4.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/res/drawable-v24/preview_weed_ic_wifi_signal_1.xml b/app/src/main/res/drawable-v24/preview_weed_ic_wifi_signal_1.xml new file mode 100644 index 000000000..204e906b2 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_weed_ic_wifi_signal_1.xml @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_weed_ic_wifi_signal_2.xml b/app/src/main/res/drawable-v24/preview_weed_ic_wifi_signal_2.xml new file mode 100644 index 000000000..f5a538cdb --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_weed_ic_wifi_signal_2.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_weed_ic_wifi_signal_3.xml b/app/src/main/res/drawable-v24/preview_weed_ic_wifi_signal_3.xml new file mode 100644 index 000000000..b57747aa4 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_weed_ic_wifi_signal_3.xml @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_weed_ic_wifi_signal_4.xml b/app/src/main/res/drawable-v24/preview_weed_ic_wifi_signal_4.xml new file mode 100644 index 000000000..66fb6e362 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_weed_ic_wifi_signal_4.xml @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_windows_ic_signal_cellular_1_4_bar.xml b/app/src/main/res/drawable-v24/preview_windows_ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..c5b3d1692 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_windows_ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_windows_ic_signal_cellular_2_4_bar.xml b/app/src/main/res/drawable-v24/preview_windows_ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..ecb0f760b --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_windows_ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_windows_ic_signal_cellular_3_4_bar.xml b/app/src/main/res/drawable-v24/preview_windows_ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..407fbdee0 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_windows_ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_windows_ic_signal_cellular_4_4_bar.xml b/app/src/main/res/drawable-v24/preview_windows_ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..0cc865c10 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_windows_ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_wing_ic_signal_cellular_1_4_bar.xml b/app/src/main/res/drawable-v24/preview_wing_ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..3ed9275ee --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_wing_ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_wing_ic_signal_cellular_2_4_bar.xml b/app/src/main/res/drawable-v24/preview_wing_ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..2ef8f395c --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_wing_ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_wing_ic_signal_cellular_3_4_bar.xml b/app/src/main/res/drawable-v24/preview_wing_ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..288ebe57c --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_wing_ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_wing_ic_signal_cellular_4_4_bar.xml b/app/src/main/res/drawable-v24/preview_wing_ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..d341b92d4 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_wing_ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/preview_xperia_ic_signal_cellular_1_4_bar.xml b/app/src/main/res/drawable-v24/preview_xperia_ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..bc74851e3 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_xperia_ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_xperia_ic_signal_cellular_2_4_bar.xml b/app/src/main/res/drawable-v24/preview_xperia_ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..09a9de7dc --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_xperia_ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_xperia_ic_signal_cellular_3_4_bar.xml b/app/src/main/res/drawable-v24/preview_xperia_ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..aebc5b341 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_xperia_ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_xperia_ic_signal_cellular_4_4_bar.xml b/app/src/main/res/drawable-v24/preview_xperia_ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..e6f8c660c --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_xperia_ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_xperia_ic_wifi_signal_1.xml b/app/src/main/res/drawable-v24/preview_xperia_ic_wifi_signal_1.xml new file mode 100644 index 000000000..d1a978fa8 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_xperia_ic_wifi_signal_1.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_xperia_ic_wifi_signal_2.xml b/app/src/main/res/drawable-v24/preview_xperia_ic_wifi_signal_2.xml new file mode 100644 index 000000000..f9e7b669c --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_xperia_ic_wifi_signal_2.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_xperia_ic_wifi_signal_3.xml b/app/src/main/res/drawable-v24/preview_xperia_ic_wifi_signal_3.xml new file mode 100644 index 000000000..056f813de --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_xperia_ic_wifi_signal_3.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_xperia_ic_wifi_signal_4.xml b/app/src/main/res/drawable-v24/preview_xperia_ic_wifi_signal_4.xml new file mode 100644 index 000000000..056f813de --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_xperia_ic_wifi_signal_4.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_zigzag_ic_signal_cellular_1_4_bar.xml b/app/src/main/res/drawable-v24/preview_zigzag_ic_signal_cellular_1_4_bar.xml new file mode 100644 index 000000000..581331608 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_zigzag_ic_signal_cellular_1_4_bar.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/res/drawable-v24/preview_zigzag_ic_signal_cellular_2_4_bar.xml b/app/src/main/res/drawable-v24/preview_zigzag_ic_signal_cellular_2_4_bar.xml new file mode 100644 index 000000000..7765c318e --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_zigzag_ic_signal_cellular_2_4_bar.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/res/drawable-v24/preview_zigzag_ic_signal_cellular_3_4_bar.xml b/app/src/main/res/drawable-v24/preview_zigzag_ic_signal_cellular_3_4_bar.xml new file mode 100644 index 000000000..679d52e93 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_zigzag_ic_signal_cellular_3_4_bar.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/res/drawable-v24/preview_zigzag_ic_signal_cellular_4_4_bar.xml b/app/src/main/res/drawable-v24/preview_zigzag_ic_signal_cellular_4_4_bar.xml new file mode 100644 index 000000000..6876c0799 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_zigzag_ic_signal_cellular_4_4_bar.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/res/drawable-v24/preview_zigzag_ic_wifi_signal_1.xml b/app/src/main/res/drawable-v24/preview_zigzag_ic_wifi_signal_1.xml new file mode 100644 index 000000000..e33ba2644 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_zigzag_ic_wifi_signal_1.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_zigzag_ic_wifi_signal_2.xml b/app/src/main/res/drawable-v24/preview_zigzag_ic_wifi_signal_2.xml new file mode 100644 index 000000000..83908487d --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_zigzag_ic_wifi_signal_2.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_zigzag_ic_wifi_signal_3.xml b/app/src/main/res/drawable-v24/preview_zigzag_ic_wifi_signal_3.xml new file mode 100644 index 000000000..6195b24b0 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_zigzag_ic_wifi_signal_3.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/res/drawable-v24/preview_zigzag_ic_wifi_signal_4.xml b/app/src/main/res/drawable-v24/preview_zigzag_ic_wifi_signal_4.xml new file mode 100644 index 000000000..76c0868a4 --- /dev/null +++ b/app/src/main/res/drawable-v24/preview_zigzag_ic_wifi_signal_4.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/res/drawable/action_bar_item_background_material.xml b/app/src/main/res/drawable/action_bar_item_background_material.xml new file mode 100644 index 000000000..dfb7b4a21 --- /dev/null +++ b/app/src/main/res/drawable/action_bar_item_background_material.xml @@ -0,0 +1,14 @@ + + \ No newline at end of file diff --git a/app/src/main/res/drawable/action_bar_item_background_material_error.xml b/app/src/main/res/drawable/action_bar_item_background_material_error.xml new file mode 100644 index 000000000..6356f2960 --- /dev/null +++ b/app/src/main/res/drawable/action_bar_item_background_material_error.xml @@ -0,0 +1,14 @@ + + \ No newline at end of file diff --git a/app/src/main/res/drawable/container_small.xml b/app/src/main/res/drawable/container_small.xml new file mode 100644 index 000000000..0924231c3 --- /dev/null +++ b/app/src/main/res/drawable/container_small.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_clear.xml b/app/src/main/res/drawable/ic_clear.xml new file mode 100644 index 000000000..46bbe1c1d --- /dev/null +++ b/app/src/main/res/drawable/ic_clear.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_history.xml b/app/src/main/res/drawable/ic_history.xml new file mode 100644 index 000000000..09c1757b2 --- /dev/null +++ b/app/src/main/res/drawable/ic_history.xml @@ -0,0 +1,11 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_info_duotone.xml b/app/src/main/res/drawable/ic_info_duotone.xml new file mode 100644 index 000000000..bca772290 --- /dev/null +++ b/app/src/main/res/drawable/ic_info_duotone.xml @@ -0,0 +1,16 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_search.xml b/app/src/main/res/drawable/ic_search.xml index c9954a055..51f9113b3 100644 --- a/app/src/main/res/drawable/ic_search.xml +++ b/app/src/main/res/drawable/ic_search.xml @@ -1,20 +1,21 @@ - - + + diff --git a/app/src/main/res/drawable/ic_translate.xml b/app/src/main/res/drawable/ic_translate.xml new file mode 100644 index 000000000..98ab722a2 --- /dev/null +++ b/app/src/main/res/drawable/ic_translate.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + diff --git a/app/src/main/res/layout/activity_home_page.xml b/app/src/main/res/layout/activity_home_page.xml deleted file mode 100644 index 0cc470b13..000000000 --- a/app/src/main/res/layout/activity_home_page.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml new file mode 100644 index 000000000..1f46b24ac --- /dev/null +++ b/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,143 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/cpv_preference_circle.xml b/app/src/main/res/layout/cpv_preference_circle.xml new file mode 100644 index 000000000..875109bfe --- /dev/null +++ b/app/src/main/res/layout/cpv_preference_circle.xml @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/app/src/main/res/layout/cpv_preference_circle_large.xml b/app/src/main/res/layout/cpv_preference_circle_large.xml new file mode 100644 index 000000000..4c3579592 --- /dev/null +++ b/app/src/main/res/layout/cpv_preference_circle_large.xml @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/app/src/main/res/layout/cpv_preference_square.xml b/app/src/main/res/layout/cpv_preference_square.xml new file mode 100644 index 000000000..06f8f76d0 --- /dev/null +++ b/app/src/main/res/layout/cpv_preference_square.xml @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/app/src/main/res/layout/cpv_preference_square_large.xml b/app/src/main/res/layout/cpv_preference_square_large.xml new file mode 100644 index 000000000..e8fa81aa6 --- /dev/null +++ b/app/src/main/res/layout/cpv_preference_square_large.xml @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/app/src/main/res/layout/custom_preference_category.xml b/app/src/main/res/layout/custom_preference_category.xml new file mode 100644 index 000000000..33845e2fb --- /dev/null +++ b/app/src/main/res/layout/custom_preference_category.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/custom_preference_color.xml b/app/src/main/res/layout/custom_preference_color.xml new file mode 100644 index 000000000..062a58f93 --- /dev/null +++ b/app/src/main/res/layout/custom_preference_color.xml @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/custom_preference_edit_text.xml b/app/src/main/res/layout/custom_preference_edit_text.xml new file mode 100644 index 000000000..8b9357379 --- /dev/null +++ b/app/src/main/res/layout/custom_preference_edit_text.xml @@ -0,0 +1,49 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/custom_preference_filepicker.xml b/app/src/main/res/layout/custom_preference_filepicker.xml new file mode 100644 index 000000000..be1ef8c7d --- /dev/null +++ b/app/src/main/res/layout/custom_preference_filepicker.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/custom_preference_list.xml b/app/src/main/res/layout/custom_preference_list.xml new file mode 100644 index 000000000..4019f5194 --- /dev/null +++ b/app/src/main/res/layout/custom_preference_list.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/custom_preference_menu.xml b/app/src/main/res/layout/custom_preference_menu.xml new file mode 100644 index 000000000..7707a5ab9 --- /dev/null +++ b/app/src/main/res/layout/custom_preference_menu.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/custom_preference_recyclerview.xml b/app/src/main/res/layout/custom_preference_recyclerview.xml new file mode 100644 index 000000000..ecdf031ff --- /dev/null +++ b/app/src/main/res/layout/custom_preference_recyclerview.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/custom_preference_slider.xml b/app/src/main/res/layout/custom_preference_slider.xml new file mode 100644 index 000000000..a96d75d13 --- /dev/null +++ b/app/src/main/res/layout/custom_preference_slider.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/custom_preference_switch.xml b/app/src/main/res/layout/custom_preference_switch.xml new file mode 100644 index 000000000..a37eae15f --- /dev/null +++ b/app/src/main/res/layout/custom_preference_switch.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/custom_preference_time_picker.xml b/app/src/main/res/layout/custom_preference_time_picker.xml new file mode 100644 index 000000000..9addadb37 --- /dev/null +++ b/app/src/main/res/layout/custom_preference_time_picker.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_app_updates.xml b/app/src/main/res/layout/fragment_app_updates.xml index 0c71550cc..b6f03ad1d 100644 --- a/app/src/main/res/layout/fragment_app_updates.xml +++ b/app/src/main/res/layout/fragment_app_updates.xml @@ -5,7 +5,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:clipChildren="false" - tools:context=".ui.fragments.AppUpdates"> + tools:context=".ui.fragments.settings.AppUpdates"> + tools:context=".ui.fragments.tweaks.BasicColors"> + tools:context=".ui.fragments.home.BrightnessBar"> + tools:context=".ui.fragments.home.BrightnessBarPixel"> + tools:context=".ui.fragments.settings.Changelog"> + tools:context=".ui.fragments.tweaks.ColorEngine"> + tools:context=".ui.fragments.tweaks.ColoredBattery"> + tools:context=".ui.fragments.settings.Credits"> - - - - - + app:layout_behavior="@string/appbar_scrolling_view_behavior" /> + tools:context=".ui.fragments.settings.Experimental"> - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_icon_pack.xml b/app/src/main/res/layout/fragment_icon_pack.xml index 7c646a4f3..92295c878 100644 --- a/app/src/main/res/layout/fragment_icon_pack.xml +++ b/app/src/main/res/layout/fragment_icon_pack.xml @@ -5,7 +5,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:clipChildren="false" - tools:context=".ui.fragments.IconPack"> + tools:context=".ui.fragments.home.IconPack"> + tools:context=".ui.fragments.home.IconShape"> + android:paddingVertical="8dp" + app:layout_behavior="@string/appbar_scrolling_view_behavior" /> + tools:context=".ui.fragments.home.MediaIcons"> + tools:context=".ui.fragments.tweaks.MediaPlayer"> + tools:context=".ui.fragments.tweaks.Miscellaneous"> + tools:context=".ui.fragments.tweaks.MonetEngine"> + tools:context=".ui.fragments.tweaks.NavigationBar"> + tools:context=".ui.fragments.home.Notification"> + tools:context=".ui.fragments.home.NotificationPixel"> + android:fillViewport="true"> - - - - - + app:layout_behavior="@string/appbar_scrolling_view_behavior" /> + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_progress_bar.xml b/app/src/main/res/layout/fragment_progress_bar.xml index 1d8ae4df8..00bb3ff30 100644 --- a/app/src/main/res/layout/fragment_progress_bar.xml +++ b/app/src/main/res/layout/fragment_progress_bar.xml @@ -5,7 +5,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:clipChildren="false" - tools:context=".ui.fragments.ProgressBar"> + tools:context=".ui.fragments.home.ProgressBar"> + tools:context=".ui.fragments.tweaks.QsIconLabel"> + tools:context=".ui.fragments.tweaks.QsPanelMargin"> + tools:context=".ui.fragments.home.QsPanelTile"> + tools:context=".ui.fragments.home.QsPanelTilePixel"> + tools:context=".ui.fragments.tweaks.QsRowColumn"> + tools:context=".ui.fragments.tweaks.QsTileSize"> - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_settings_icons.xml b/app/src/main/res/layout/fragment_settings_icons.xml index 861c29633..b559a8de3 100644 --- a/app/src/main/res/layout/fragment_settings_icons.xml +++ b/app/src/main/res/layout/fragment_settings_icons.xml @@ -5,7 +5,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:clipChildren="false" - tools:context=".ui.fragments.SettingsIcons"> + tools:context=".ui.fragments.home.SettingsIcons"> + tools:context=".ui.fragments.tweaks.Statusbar"> + android:paddingVertical="16dp"> + tools:context=".ui.fragments.home.Switch"> + tools:context=".ui.fragments.home.ToastFrame"> + android:paddingVertical="8dp" + app:layout_behavior="@string/appbar_scrolling_view_behavior" /> + tools:context=".ui.fragments.tweaks.UiRoundness"> + tools:context=".ui.fragments.tweaks.VolumePanel"> + android:paddingVertical="16dp"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_xposed_background_chip.xml b/app/src/main/res/layout/fragment_xposed_background_chip.xml deleted file mode 100644 index f206956db..000000000 --- a/app/src/main/res/layout/fragment_xposed_background_chip.xml +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_xposed_battery_style.xml b/app/src/main/res/layout/fragment_xposed_battery_style.xml deleted file mode 100644 index fe3add1f9..000000000 --- a/app/src/main/res/layout/fragment_xposed_battery_style.xml +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_xposed_clock_chip.xml b/app/src/main/res/layout/fragment_xposed_clock_chip.xml new file mode 100644 index 000000000..c80cabe42 --- /dev/null +++ b/app/src/main/res/layout/fragment_xposed_clock_chip.xml @@ -0,0 +1,284 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_xposed_depth_wallpaper.xml b/app/src/main/res/layout/fragment_xposed_depth_wallpaper.xml deleted file mode 100644 index 63682f59f..000000000 --- a/app/src/main/res/layout/fragment_xposed_depth_wallpaper.xml +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_xposed_header_clock.xml b/app/src/main/res/layout/fragment_xposed_header_clock.xml deleted file mode 100644 index 7a6ae94a7..000000000 --- a/app/src/main/res/layout/fragment_xposed_header_clock.xml +++ /dev/null @@ -1,200 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_xposed_header_image.xml b/app/src/main/res/layout/fragment_xposed_header_image.xml deleted file mode 100644 index 3fe3d6cdf..000000000 --- a/app/src/main/res/layout/fragment_xposed_header_image.xml +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_xposed_lockscreen_clock.xml b/app/src/main/res/layout/fragment_xposed_lockscreen_clock.xml deleted file mode 100644 index 65b59c9fd..000000000 --- a/app/src/main/res/layout/fragment_xposed_lockscreen_clock.xml +++ /dev/null @@ -1,209 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml b/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml deleted file mode 100644 index 44f006d69..000000000 --- a/app/src/main/res/layout/fragment_xposed_lockscreen_weather.xml +++ /dev/null @@ -1,211 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_xposed_lockscreen_widgets.xml b/app/src/main/res/layout/fragment_xposed_lockscreen_widgets.xml deleted file mode 100644 index f15825520..000000000 --- a/app/src/main/res/layout/fragment_xposed_lockscreen_widgets.xml +++ /dev/null @@ -1,244 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_xposed_menu.xml b/app/src/main/res/layout/fragment_xposed_menu.xml deleted file mode 100644 index 11aa30a3b..000000000 --- a/app/src/main/res/layout/fragment_xposed_menu.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/layout/fragment_xposed_others.xml b/app/src/main/res/layout/fragment_xposed_others.xml deleted file mode 100644 index 612f54aa0..000000000 --- a/app/src/main/res/layout/fragment_xposed_others.xml +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_xposed_quick_settings.xml b/app/src/main/res/layout/fragment_xposed_quick_settings.xml deleted file mode 100644 index e73b9d0ae..000000000 --- a/app/src/main/res/layout/fragment_xposed_quick_settings.xml +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_xposed_status_icons_chip.xml b/app/src/main/res/layout/fragment_xposed_status_icons_chip.xml new file mode 100644 index 000000000..bbbc13185 --- /dev/null +++ b/app/src/main/res/layout/fragment_xposed_status_icons_chip.xml @@ -0,0 +1,296 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_xposed_statusbar.xml b/app/src/main/res/layout/fragment_xposed_statusbar.xml deleted file mode 100644 index 4c1e2c145..000000000 --- a/app/src/main/res/layout/fragment_xposed_statusbar.xml +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_xposed_themes.xml b/app/src/main/res/layout/fragment_xposed_themes.xml deleted file mode 100644 index bbb0a587c..000000000 --- a/app/src/main/res/layout/fragment_xposed_themes.xml +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_xposed_transparency_blur.xml b/app/src/main/res/layout/fragment_xposed_transparency_blur.xml deleted file mode 100644 index b8f01bd81..000000000 --- a/app/src/main/res/layout/fragment_xposed_transparency_blur.xml +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_xposed_volume_panel.xml b/app/src/main/res/layout/fragment_xposed_volume_panel.xml deleted file mode 100644 index b1dd50388..000000000 --- a/app/src/main/res/layout/fragment_xposed_volume_panel.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/preference_category.xml b/app/src/main/res/layout/preference_category.xml new file mode 100644 index 000000000..e64d38783 --- /dev/null +++ b/app/src/main/res/layout/preference_category.xml @@ -0,0 +1,8 @@ + + \ No newline at end of file diff --git a/app/src/main/res/layout/preference_footer.xml b/app/src/main/res/layout/preference_footer.xml new file mode 100644 index 000000000..b5c5245c7 --- /dev/null +++ b/app/src/main/res/layout/preference_footer.xml @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/preference_list_item.xml b/app/src/main/res/layout/preference_list_item.xml new file mode 100644 index 000000000..7a8033e0e --- /dev/null +++ b/app/src/main/res/layout/preference_list_item.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/preference_material_switch.xml b/app/src/main/res/layout/preference_material_switch.xml new file mode 100644 index 000000000..86b74bf8c --- /dev/null +++ b/app/src/main/res/layout/preference_material_switch.xml @@ -0,0 +1,8 @@ + + diff --git a/app/src/main/res/layout/preference_selector_with_widget.xml b/app/src/main/res/layout/preference_selector_with_widget.xml new file mode 100644 index 000000000..2c030f839 --- /dev/null +++ b/app/src/main/res/layout/preference_selector_with_widget.xml @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/preference_widget_checkbox.xml b/app/src/main/res/layout/preference_widget_checkbox.xml new file mode 100644 index 000000000..c524adbd4 --- /dev/null +++ b/app/src/main/res/layout/preference_widget_checkbox.xml @@ -0,0 +1,24 @@ + + + + diff --git a/app/src/main/res/layout/preference_widget_radiobutton.xml b/app/src/main/res/layout/preference_widget_radiobutton.xml new file mode 100644 index 000000000..d229bf5f6 --- /dev/null +++ b/app/src/main/res/layout/preference_widget_radiobutton.xml @@ -0,0 +1,9 @@ + + \ No newline at end of file diff --git a/app/src/main/res/layout/preview_lockscreen_clock_5.xml b/app/src/main/res/layout/preview_lockscreen_clock_5.xml index 607098d6f..c912a1b0a 100644 --- a/app/src/main/res/layout/preview_lockscreen_clock_5.xml +++ b/app/src/main/res/layout/preview_lockscreen_clock_5.xml @@ -62,7 +62,7 @@ android:includeFontPadding="false" android:layout_gravity="end" android:format12Hour="h:mm" - android:format24Hour="h:mm" + android:format24Hour="HH:mm" android:singleLine="true" android:tag="text1" android:textAlignment="viewEnd" diff --git a/app/src/main/res/layout/searchpreference_fragment.xml b/app/src/main/res/layout/searchpreference_fragment.xml new file mode 100644 index 000000000..10ec16aa8 --- /dev/null +++ b/app/src/main/res/layout/searchpreference_fragment.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/searchpreference_list_item_history.xml b/app/src/main/res/layout/searchpreference_list_item_history.xml new file mode 100644 index 000000000..dc55be278 --- /dev/null +++ b/app/src/main/res/layout/searchpreference_list_item_history.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/searchpreference_list_item_result.xml b/app/src/main/res/layout/searchpreference_list_item_result.xml new file mode 100644 index 000000000..fd6a9b93b --- /dev/null +++ b/app/src/main/res/layout/searchpreference_list_item_result.xml @@ -0,0 +1,32 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/searchpreference_preference.xml b/app/src/main/res/layout/searchpreference_preference.xml new file mode 100644 index 000000000..73f86ca0c --- /dev/null +++ b/app/src/main/res/layout/searchpreference_preference.xml @@ -0,0 +1,11 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/searchpreference_searchbar.xml b/app/src/main/res/layout/searchpreference_searchbar.xml new file mode 100644 index 000000000..1f957e6c7 --- /dev/null +++ b/app/src/main/res/layout/searchpreference_searchbar.xml @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/view_bottom_sheet_dialog_layout.xml b/app/src/main/res/layout/view_bottom_sheet_dialog_layout.xml new file mode 100644 index 000000000..bfe3f48f1 --- /dev/null +++ b/app/src/main/res/layout/view_bottom_sheet_dialog_layout.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/view_home_card.xml b/app/src/main/res/layout/view_home_card.xml index b74d4d9c9..f5bd13d43 100644 --- a/app/src/main/res/layout/view_home_card.xml +++ b/app/src/main/res/layout/view_home_card.xml @@ -1,12 +1,13 @@ diff --git a/app/src/main/res/layout/view_list_info_item.xml b/app/src/main/res/layout/view_list_info_item.xml index f7730656d..706eea94d 100644 --- a/app/src/main/res/layout/view_list_info_item.xml +++ b/app/src/main/res/layout/view_list_info_item.xml @@ -19,7 +19,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerVertical="true" - android:layout_marginVertical="22dp" + android:layout_marginVertical="16dp" android:layout_marginStart="18dp" android:layout_marginEnd="24dp" android:layout_toEndOf="@id/icon" diff --git a/app/src/main/res/layout/view_list_option_brightnessbar.xml b/app/src/main/res/layout/view_list_option_brightnessbar.xml index e1fbde3a0..6ed679c36 100644 --- a/app/src/main/res/layout/view_list_option_brightnessbar.xml +++ b/app/src/main/res/layout/view_list_option_brightnessbar.xml @@ -8,7 +8,7 @@ android:background="@drawable/item_background_material" android:orientation="vertical" android:paddingHorizontal="24dp" - android:paddingVertical="22dp"> + android:paddingVertical="16dp"> + android:paddingVertical="16dp"> @@ -122,7 +123,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginHorizontal="24dp" - android:layout_marginBottom="24dp" + android:layout_marginBottom="16dp" android:text="@string/btn_apply" android:visibility="gone" /> @@ -132,7 +133,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginHorizontal="24dp" - android:layout_marginBottom="24dp" + android:layout_marginBottom="16dp" android:text="@string/btn_disable" android:visibility="gone" /> diff --git a/app/src/main/res/layout/view_list_option_mediaplayer_icons.xml b/app/src/main/res/layout/view_list_option_mediaplayer_icons.xml index 16d1a09b8..4fc2eb6e2 100644 --- a/app/src/main/res/layout/view_list_option_mediaplayer_icons.xml +++ b/app/src/main/res/layout/view_list_option_mediaplayer_icons.xml @@ -8,7 +8,7 @@ android:clickable="true" android:orientation="vertical" android:paddingHorizontal="24dp" - android:paddingVertical="22dp"> + android:paddingVertical="16dp"> + android:paddingVertical="16dp"> + android:paddingVertical="16dp"> + android:paddingVertical="16dp"> - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/view_status_icons_chip.xml b/app/src/main/res/layout/view_status_icons_chip.xml deleted file mode 100644 index 19de0d898..000000000 --- a/app/src/main/res/layout/view_status_icons_chip.xml +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/view_volume_style.xml b/app/src/main/res/layout/view_volume_style.xml index 39ce2cb5c..134544274 100644 --- a/app/src/main/res/layout/view_volume_style.xml +++ b/app/src/main/res/layout/view_volume_style.xml @@ -24,7 +24,7 @@ android:clickable="true" android:orientation="vertical" android:paddingHorizontal="24dp" - android:paddingTop="22dp"> + android:paddingTop="16dp"> diff --git a/app/src/main/res/layout/view_widget_colorpicker.xml b/app/src/main/res/layout/view_widget_colorpicker.xml index 5005d11d1..eddd2ba20 100644 --- a/app/src/main/res/layout/view_widget_colorpicker.xml +++ b/app/src/main/res/layout/view_widget_colorpicker.xml @@ -11,10 +11,10 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerVertical="true" - android:layout_marginVertical="22dp" + android:layout_marginVertical="16dp" android:layout_marginStart="24dp" android:layout_marginEnd="10dp" - android:layout_toStartOf="@id/color_widget" + android:layout_toStartOf="@id/color_widget_container" android:orientation="vertical"> - + android:background="@drawable/preview_color_picker_border" + android:padding="1dp"> + + + \ No newline at end of file diff --git a/app/src/main/res/layout/view_widget_filepicker.xml b/app/src/main/res/layout/view_widget_filepicker.xml index fc98aac69..4fe0a328d 100644 --- a/app/src/main/res/layout/view_widget_filepicker.xml +++ b/app/src/main/res/layout/view_widget_filepicker.xml @@ -9,7 +9,7 @@ android:clickable="true" android:orientation="vertical" android:paddingHorizontal="24dp" - android:paddingTop="22dp" + android:paddingTop="16dp" android:paddingBottom="16dp"> diff --git a/app/src/main/res/layout/view_widget_slider.xml b/app/src/main/res/layout/view_widget_slider.xml index f912bfe2c..3d1135213 100644 --- a/app/src/main/res/layout/view_widget_slider.xml +++ b/app/src/main/res/layout/view_widget_slider.xml @@ -5,10 +5,10 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/item_background_material" - android:clickable="true" + android:clickable="false" android:orientation="vertical" android:paddingHorizontal="24dp" - android:paddingTop="22dp" + android:paddingTop="16dp" android:paddingBottom="4dp"> - + android:orientation="horizontal"> + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/view_widget_switch.xml b/app/src/main/res/layout/view_widget_switch.xml index 1df25c87c..7bf3575fc 100644 --- a/app/src/main/res/layout/view_widget_switch.xml +++ b/app/src/main/res/layout/view_widget_switch.xml @@ -24,7 +24,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerVertical="true" - android:layout_marginVertical="22dp" + android:layout_marginVertical="16dp" android:layout_marginStart="18dp" android:layout_marginEnd="10dp" android:layout_toStartOf="@id/switch_widget" diff --git a/app/src/main/res/layout/view_widget_title.xml b/app/src/main/res/layout/view_widget_title.xml index 4f6e64546..1ff31b006 100644 --- a/app/src/main/res/layout/view_widget_title.xml +++ b/app/src/main/res/layout/view_widget_title.xml @@ -5,7 +5,7 @@ android:layout_height="wrap_content" android:orientation="vertical" android:paddingHorizontal="24dp" - android:paddingTop="22dp" + android:paddingTop="16dp" android:paddingBottom="8dp"> + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/view_xposed_battery_dimension.xml b/app/src/main/res/layout/view_xposed_battery_dimension.xml index c4233e85c..2fe1f324e 100644 --- a/app/src/main/res/layout/view_xposed_battery_dimension.xml +++ b/app/src/main/res/layout/view_xposed_battery_dimension.xml @@ -11,8 +11,8 @@ android:id="@+id/custom_dimensions" android:layout_width="match_parent" android:layout_height="wrap_content" - app:summaryText="@string/custom_dimensions_desc" - app:titleText="@string/custom_dimensions_title" /> + app:summaryText="@string/custom_margins_desc" + app:titleText="@string/custom_margins_title" /> + + + \ No newline at end of file diff --git a/app/src/main/res/menu/bottom_nav_menu.xml b/app/src/main/res/menu/bottom_nav_menu.xml index 508fc09ae..bc95734d0 100644 --- a/app/src/main/res/menu/bottom_nav_menu.xml +++ b/app/src/main/res/menu/bottom_nav_menu.xml @@ -10,6 +10,11 @@ android:enabled="true" android:icon="@drawable/ic_navbar_tweaks" android:title="@string/navbar_tweaks" /> +

+ android:icon="@drawable/ic_navbar_xposed" + android:title="@string/navbar_xposed" /> + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/menu/home_menu.xml b/app/src/main/res/menu/home_menu.xml new file mode 100644 index 000000000..e2f0f8f73 --- /dev/null +++ b/app/src/main/res/menu/home_menu.xml @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/menu/settings_menu.xml b/app/src/main/res/menu/search_menu.xml similarity index 100% rename from app/src/main/res/menu/settings_menu.xml rename to app/src/main/res/menu/search_menu.xml diff --git a/app/src/main/res/menu/search_more.xml b/app/src/main/res/menu/search_more.xml new file mode 100644 index 000000000..addf17a0f --- /dev/null +++ b/app/src/main/res/menu/search_more.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/navigation/nav_home_page.xml b/app/src/main/res/navigation/nav_home_page.xml deleted file mode 100644 index dd6ac9370..000000000 --- a/app/src/main/res/navigation/nav_home_page.xml +++ /dev/null @@ -1,735 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/navigation/nav_xposed_menu.xml b/app/src/main/res/navigation/nav_xposed_menu.xml deleted file mode 100644 index 71148e2bb..000000000 --- a/app/src/main/res/navigation/nav_xposed_menu.xml +++ /dev/null @@ -1,416 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/values-af-rZA/strings.xml b/app/src/main/res/values-af-rZA/strings.xml index 54ef027ca..2489d591e 100644 --- a/app/src/main/res/values-af-rZA/strings.xml +++ b/app/src/main/res/values-af-rZA/strings.xml @@ -35,8 +35,8 @@ Iconify Icon Pack Change system icon pack - Signal Icons - Change system signal icons + Signal Icons + Change system signal icons WiFi Icons Change system WiFi icons Brightness Bar @@ -427,7 +427,7 @@ Transparency Transparent QS Panel Make QS panel background transparent - Transparency Alpha + Transparency Alpha Transparent Notif Shade Only Make only notification shade transparent Dim Lockscreen Wallpaper @@ -505,8 +505,8 @@ Change color of powersave battery Powersave Indicator Color Change color of powersave indicator - Custom Dimensions - Set custom dimensions for battery icon + Custom Dimensions + Set custom dimensions for battery icon Battery Margin Left Battery Margin Right Battery Margin Top @@ -569,7 +569,7 @@ Add header image on QS panel\nDo not select file from Recent Pick Image Image Height - Image Alpha + Image Alpha Bottom Fade Amount Zoom To Fit Image is stretched to fit by default @@ -658,12 +658,12 @@ Status Bar Statusbar Clock Chip Display chip behind statusbar clock - Statusbar Clock Color + Statusbar Clock Color Follow System Transparent Text Custom Color - Clock Color Picker - Set color of statubsar clock text + Clock Color Picker + Set color of statubsar clock text Status Icons Chip Style Status Icons Chip diff --git a/app/src/main/res/values-ar-rSA/strings.xml b/app/src/main/res/values-ar-rSA/strings.xml index 9ff6fbaf1..00010415e 100644 --- a/app/src/main/res/values-ar-rSA/strings.xml +++ b/app/src/main/res/values-ar-rSA/strings.xml @@ -35,8 +35,8 @@ Iconify حزمة الأيقونات تغيير حزمة ايقونات النظام - أيقونات الإشارة - تغيير أيقونات إشارة النظام + أيقونات الإشارة + تغيير أيقونات إشارة النظام أيقونات WiFi تغيير أيقونات WiFi النظام شريط السطوع @@ -427,7 +427,7 @@ شفافية لوحة QS الشفافة جعل خلفية لوحة QS شفافة - الشفافية ألفا + الشفافية ألفا لون Notif الشفاف فقط اجعل غطاء الإشعارات فقط شفافًا تعتيم خلفية شاشة القفل @@ -505,8 +505,8 @@ تغيير لون بطارية توفير الطاقة لون مؤشر توفير الطاقة تغيير لون مؤشر توفير الطاقة - أبعاد مخصصة - قم بتعيين أبعاد مخصصة لرمز البطارية + أبعاد مخصصة + قم بتعيين أبعاد مخصصة لرمز البطارية هامش البطارية الأيسر هامش البطارية الأيمن هامش البطارية العلوي @@ -569,7 +569,7 @@ أضف صورة العنوان على لوحة QS\nلا تحدد ملفًا من الحالي اختر صورة ارتفاع الصورة - صورة ألفا + صورة ألفا كمية التلاشي السفلي تكبير للتناسب يتم تمديد الصورة لتناسب بشكل افتراضي @@ -658,12 +658,12 @@ شريط الحالة رقاقة ساعة شريط الحالة عرض رقاقة خلف ساعة شريط الحالة - لون ساعة شريط الحالة + لون ساعة شريط الحالة اتبع النظام نص شفاف لون مخصص - منتقي لون الساعة - ضبط لون نص ساعة شريط الحالة + منتقي لون الساعة + ضبط لون نص ساعة شريط الحالة أيقونات الحالة نمط الرقاقة رقاقة أيقونات الحالة diff --git a/app/src/main/res/values-ca-rES/strings.xml b/app/src/main/res/values-ca-rES/strings.xml index 54ef027ca..2489d591e 100644 --- a/app/src/main/res/values-ca-rES/strings.xml +++ b/app/src/main/res/values-ca-rES/strings.xml @@ -35,8 +35,8 @@ Iconify Icon Pack Change system icon pack - Signal Icons - Change system signal icons + Signal Icons + Change system signal icons WiFi Icons Change system WiFi icons Brightness Bar @@ -427,7 +427,7 @@ Transparency Transparent QS Panel Make QS panel background transparent - Transparency Alpha + Transparency Alpha Transparent Notif Shade Only Make only notification shade transparent Dim Lockscreen Wallpaper @@ -505,8 +505,8 @@ Change color of powersave battery Powersave Indicator Color Change color of powersave indicator - Custom Dimensions - Set custom dimensions for battery icon + Custom Dimensions + Set custom dimensions for battery icon Battery Margin Left Battery Margin Right Battery Margin Top @@ -569,7 +569,7 @@ Add header image on QS panel\nDo not select file from Recent Pick Image Image Height - Image Alpha + Image Alpha Bottom Fade Amount Zoom To Fit Image is stretched to fit by default @@ -658,12 +658,12 @@ Status Bar Statusbar Clock Chip Display chip behind statusbar clock - Statusbar Clock Color + Statusbar Clock Color Follow System Transparent Text Custom Color - Clock Color Picker - Set color of statubsar clock text + Clock Color Picker + Set color of statubsar clock text Status Icons Chip Style Status Icons Chip diff --git a/app/src/main/res/values-cs-rCZ/strings.xml b/app/src/main/res/values-cs-rCZ/strings.xml index f0f559eb4..4d769ae4a 100644 --- a/app/src/main/res/values-cs-rCZ/strings.xml +++ b/app/src/main/res/values-cs-rCZ/strings.xml @@ -35,8 +35,8 @@ Iconify Icon Pack Change system icon pack - Signal Icons - Change system signal icons + Signal Icons + Change system signal icons WiFi Icons Change system WiFi icons Brightness Bar @@ -427,7 +427,7 @@ Transparency Transparent QS Panel Make QS panel background transparent - Transparency Alpha + Transparency Alpha Transparent Notif Shade Only Make only notification shade transparent Dim Lockscreen Wallpaper @@ -505,8 +505,8 @@ Change color of powersave battery Powersave Indicator Color Change color of powersave indicator - Custom Dimensions - Set custom dimensions for battery icon + Custom Dimensions + Set custom dimensions for battery icon Battery Margin Left Battery Margin Right Battery Margin Top @@ -569,7 +569,7 @@ Add header image on QS panel\nDo not select file from Recent Pick Image Image Height - Image Alpha + Image Alpha Bottom Fade Amount Zoom To Fit Image is stretched to fit by default @@ -658,12 +658,12 @@ Status Bar Statusbar Clock Chip Display chip behind statusbar clock - Statusbar Clock Color + Statusbar Clock Color Follow System Transparent Text Custom Color - Clock Color Picker - Set color of statubsar clock text + Clock Color Picker + Set color of statubsar clock text Status Icons Chip Style Status Icons Chip diff --git a/app/src/main/res/values-da-rDK/strings.xml b/app/src/main/res/values-da-rDK/strings.xml index 54ef027ca..2489d591e 100644 --- a/app/src/main/res/values-da-rDK/strings.xml +++ b/app/src/main/res/values-da-rDK/strings.xml @@ -35,8 +35,8 @@ Iconify Icon Pack Change system icon pack - Signal Icons - Change system signal icons + Signal Icons + Change system signal icons WiFi Icons Change system WiFi icons Brightness Bar @@ -427,7 +427,7 @@ Transparency Transparent QS Panel Make QS panel background transparent - Transparency Alpha + Transparency Alpha Transparent Notif Shade Only Make only notification shade transparent Dim Lockscreen Wallpaper @@ -505,8 +505,8 @@ Change color of powersave battery Powersave Indicator Color Change color of powersave indicator - Custom Dimensions - Set custom dimensions for battery icon + Custom Dimensions + Set custom dimensions for battery icon Battery Margin Left Battery Margin Right Battery Margin Top @@ -569,7 +569,7 @@ Add header image on QS panel\nDo not select file from Recent Pick Image Image Height - Image Alpha + Image Alpha Bottom Fade Amount Zoom To Fit Image is stretched to fit by default @@ -658,12 +658,12 @@ Status Bar Statusbar Clock Chip Display chip behind statusbar clock - Statusbar Clock Color + Statusbar Clock Color Follow System Transparent Text Custom Color - Clock Color Picker - Set color of statubsar clock text + Clock Color Picker + Set color of statubsar clock text Status Icons Chip Style Status Icons Chip diff --git a/app/src/main/res/values-de-rDE/strings.xml b/app/src/main/res/values-de-rDE/strings.xml index 48f0fc21f..a0f69fda1 100644 --- a/app/src/main/res/values-de-rDE/strings.xml +++ b/app/src/main/res/values-de-rDE/strings.xml @@ -35,8 +35,8 @@ Symbolpaket System Icons verändern - Signal Icons - Change system signal icons + Signal Icons + Change system signal icons WiFi Symbole Ändere System WiFi Symbole Helligkeitsregler @@ -427,7 +427,7 @@ Transparenz Transparentes QS-Panel Macht den QS-Panel-Hintergrund transparent - Transparenz Alpha + Transparenz Alpha Nur transparentes Benachrichtigungsfeld Nur das Feld hinter den Benachrichtigungen transparent machen @@ -506,8 +506,8 @@ transparent machen Ändere Farbe des Energiesparmodus Akkus Energiesparmodus Indikator Farbe Ändere Farbe des Energiesparmodus Indikators - Benutzerdefinierte Größe - Setze benutzerdefinierte Größe für Akkusymbol + Benutzerdefinierte Größe + Setze benutzerdefinierte Größe für Akkusymbol Akku Abstand links Akku Abstand rechts Akku Abstand oben @@ -570,7 +570,7 @@ transparent machen Headerbild aufs QS-Panel hinzufügen\nNicht \"Zuletzt benutzt\" verwenden Bild auswählen Bildhöhe - Bildtransparenz + Bildtransparenz Höhe des unteren Ausblendens Passend vergrößern Bild ist standardmäßig gestreckt um zu passen @@ -659,12 +659,12 @@ transparent machen Statusleiste Statusleiste Uhr-Chip Chip hinter der Statusleisten-Uhr anzeigen - Statusleisten Uhr Farbe + Statusleisten Uhr Farbe Folge System Transparenter Text Benutzerdefinierte Farbe - Uhrfarbwähler - Farbe der Statusbar Uhr setzen + Uhrfarbwähler + Farbe der Statusbar Uhr setzen Statussymbole Chip-Stil Statussymbole Chip diff --git a/app/src/main/res/values-el-rGR/strings.xml b/app/src/main/res/values-el-rGR/strings.xml index 3f55be749..1b8557768 100644 --- a/app/src/main/res/values-el-rGR/strings.xml +++ b/app/src/main/res/values-el-rGR/strings.xml @@ -35,8 +35,8 @@ Iconify Πακέτο Εικονιδίων Αλλαγή πακέτου εικονιδίων συστήματος - Signal Icons - Change system signal icons + Signal Icons + Change system signal icons WiFi Icons Change system WiFi icons Μπάρα Φωτεινότητας @@ -427,7 +427,7 @@ Transparency Transparent QS Panel Make QS panel background transparent - Transparency Alpha + Transparency Alpha Transparent Notif Shade Only Make only notification shade transparent Dim Lockscreen Wallpaper @@ -505,8 +505,8 @@ Change color of powersave battery Powersave Indicator Color Change color of powersave indicator - Custom Dimensions - Set custom dimensions for battery icon + Custom Dimensions + Set custom dimensions for battery icon Battery Margin Left Battery Margin Right Battery Margin Top @@ -569,7 +569,7 @@ Add header image on QS panel\nDo not select file from Recent Pick Image Image Height - Image Alpha + Image Alpha Bottom Fade Amount Zoom To Fit Image is stretched to fit by default @@ -658,12 +658,12 @@ Status Bar Statusbar Clock Chip Display chip behind statusbar clock - Statusbar Clock Color + Statusbar Clock Color Follow System Transparent Text Custom Color - Clock Color Picker - Set color of statubsar clock text + Clock Color Picker + Set color of statubsar clock text Status Icons Chip Style Status Icons Chip diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index 80c4b2869..c7e51997e 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -35,8 +35,8 @@ Iconify Paquete de iconos Cambia el paquete de iconos del sistema - Signal Icons - Change system signal icons + Signal Icons + Change system signal icons WiFi Icons Change system WiFi icons Barra de brillo @@ -427,7 +427,7 @@ Transparencia Panel Ajustes Rápidos transparente Hacer transparente el fondo del panel de Ajustes Rápidos - Transparencia alfa + Transparencia alfa Solo Sombra de Notificaciones Transparente Hace que solo la sombra de las notificaciones sea transparente Atenuar fondo de pantalla de bloqueo @@ -505,8 +505,8 @@ Cambiar el color de la batería de ahorro de energía Color del indicador de ahorro de batería Cambiar el color del indicador de ahorro de batería - Dimensiones personalizadas - Establecer dimensiones personalizadas para el icono de la batería + Dimensiones personalizadas + Establecer dimensiones personalizadas para el icono de la batería Margen izquierdo de la batería Margen derecho de la batería Margen superior de la batería @@ -569,7 +569,7 @@ Añadir imagen de encabezado en el panel de Ajustes Rápidos\nNo selecciones archivos de \"Recientes\" Seleccionar imagen Altura de la imagen - Alfa de la imagen + Alfa de la imagen Cantidad de desvanecimiento inferior Ajustar al zoom La imagen se estira para ajustarse por defecto @@ -658,12 +658,12 @@ Barra de estado Ficha de reloj de la barra de estado Mostrar ficha detrás del reloj de la barra de estado - Color del Reloj de la Barra de Estado + Color del Reloj de la Barra de Estado Seguir el Sistema Texto Transparente Color Personalizado - Selector de Color del Reloj - Establecer el color del texto del reloj de la barra de estado + Selector de Color del Reloj + Establecer el color del texto del reloj de la barra de estado Iconos de estado Estilo de la ficha Ficha de los iconos de estado diff --git a/app/src/main/res/values-fa-rIR/strings.xml b/app/src/main/res/values-fa-rIR/strings.xml index 5af5985d7..438ba3c98 100644 --- a/app/src/main/res/values-fa-rIR/strings.xml +++ b/app/src/main/res/values-fa-rIR/strings.xml @@ -35,8 +35,8 @@ آیکونیفای آیکون‌ها تغییر ظاهر آیکون‌های سیستم - Signal Icons - Change system signal icons + Signal Icons + Change system signal icons WiFi Icons Change system WiFi icons نوار تنظیم نور صفحه @@ -427,7 +427,7 @@ Transparency شفاف کردن پنل نوارابزار با استفاده از این قسمت پیش‌زمینه نوارابزار خود را شفاف (محو) کنید - میزان شفافیت + میزان شفافیت Transparent Notif Shade Only Make only notification shade transparent Dim Lockscreen Wallpaper @@ -505,8 +505,8 @@ Change color of powersave battery Powersave Indicator Color Change color of powersave indicator - Custom Dimensions - Set custom dimensions for battery icon + Custom Dimensions + Set custom dimensions for battery icon حاشیه چپ باتری حاشیه راست باتری حاشیه بالا باتری @@ -569,7 +569,7 @@ اصافه کردن تصویر به هدر نوارابزار\nفایل تصویر را از بخش فایل‌های اخیر انتخاب نکنید انتخاب فایل تصویر ارتفاع تصویر - میزان شفافیت تصویر هدر + میزان شفافیت تصویر هدر Bottom Fade Amount بزرگنمایی تصویر هدر به صورت پیش‌فرض توصیر کشیده می‌شود تا به درستی قرار بگیرد @@ -658,12 +658,12 @@ Status Bar پیش‌زمینه رنگی برای ساعت نوار اعلان نمایش دادن پیش‌زمینه رنگی پشت ساعت نوار اعلان - Statusbar Clock Color + Statusbar Clock Color Follow System Transparent Text Custom Color - Clock Color Picker - Set color of statubsar clock text + Clock Color Picker + Set color of statubsar clock text Status Icons استایل پیش‌زمینه پیش‌زمینه رنگی برای آیکون‌های نوار اعلان diff --git a/app/src/main/res/values-fi-rFI/strings.xml b/app/src/main/res/values-fi-rFI/strings.xml index 54ef027ca..2489d591e 100644 --- a/app/src/main/res/values-fi-rFI/strings.xml +++ b/app/src/main/res/values-fi-rFI/strings.xml @@ -35,8 +35,8 @@ Iconify Icon Pack Change system icon pack - Signal Icons - Change system signal icons + Signal Icons + Change system signal icons WiFi Icons Change system WiFi icons Brightness Bar @@ -427,7 +427,7 @@ Transparency Transparent QS Panel Make QS panel background transparent - Transparency Alpha + Transparency Alpha Transparent Notif Shade Only Make only notification shade transparent Dim Lockscreen Wallpaper @@ -505,8 +505,8 @@ Change color of powersave battery Powersave Indicator Color Change color of powersave indicator - Custom Dimensions - Set custom dimensions for battery icon + Custom Dimensions + Set custom dimensions for battery icon Battery Margin Left Battery Margin Right Battery Margin Top @@ -569,7 +569,7 @@ Add header image on QS panel\nDo not select file from Recent Pick Image Image Height - Image Alpha + Image Alpha Bottom Fade Amount Zoom To Fit Image is stretched to fit by default @@ -658,12 +658,12 @@ Status Bar Statusbar Clock Chip Display chip behind statusbar clock - Statusbar Clock Color + Statusbar Clock Color Follow System Transparent Text Custom Color - Clock Color Picker - Set color of statubsar clock text + Clock Color Picker + Set color of statubsar clock text Status Icons Chip Style Status Icons Chip diff --git a/app/src/main/res/values-fr-rFR/strings.xml b/app/src/main/res/values-fr-rFR/strings.xml index fc9aec56f..a14e79e35 100644 --- a/app/src/main/res/values-fr-rFR/strings.xml +++ b/app/src/main/res/values-fr-rFR/strings.xml @@ -35,8 +35,8 @@ Iconify Pack d\'icônes Modifier le pack d\'icônes système - Signal Icons - Change system signal icons + Signal Icons + Change system signal icons WiFi Icons Change system WiFi icons Barre de luminosité @@ -427,7 +427,7 @@ Transparency Transparent QS Panel Make QS panel background transparent - Transparency Alpha + Transparency Alpha Transparent Notif Shade Only Make only notification shade transparent Dim Lockscreen Wallpaper @@ -505,8 +505,8 @@ Changer la couleur de la batterie en économiseur de batterie Couleur de l’indicateur d’économie d’énergie Changer la couleur de l\'indicateur d\'économie d\'énergie - Dimensions personnalisées - Définir des dimensions personnalisées pour l\'icône de la batterie + Dimensions personnalisées + Définir des dimensions personnalisées pour l\'icône de la batterie Marge gauche de la batterie Marge droite de la batterie Battery Margin Top @@ -569,7 +569,7 @@ Add header image on QS panel\nDo not select file from Recent Pick Image Image Height - Image Alpha + Image Alpha Bottom Fade Amount Zoomer pour s\'adapter L\'image est étirée pour s\'adapter par défaut @@ -658,12 +658,12 @@ Status Bar Statusbar Clock Chip Display chip behind statusbar clock - Statusbar Clock Color + Statusbar Clock Color Follow System Transparent Text Custom Color - Clock Color Picker - Set color of statubsar clock text + Clock Color Picker + Set color of statubsar clock text Status Icons Chip Style Status Icons Chip diff --git a/app/src/main/res/values-hu-rHU/strings.xml b/app/src/main/res/values-hu-rHU/strings.xml index 36704a152..9e3cd2e23 100644 --- a/app/src/main/res/values-hu-rHU/strings.xml +++ b/app/src/main/res/values-hu-rHU/strings.xml @@ -35,8 +35,8 @@ Ikonizáló (Iconify) Ikoncsomag Lecserélheti a rendszerikonokat - Térerő-ikonok - Itt változtathatja meg a rendszer térerő-kijelzését + Térerő-ikonok + Itt változtathatja meg a rendszer térerő-kijelzését Wi-Fi ikonok Itt változtathatja meg a rendszer Wi-Fi kijelzését Fényerőszabályozó-sáv @@ -427,7 +427,7 @@ Átlátszóság Átlátszó Gyorsbeállítások-panel A panel hátterét átlátszóvá teheti - Átlátszósági érték + Átlátszósági érték Csak az értesítés árnyéka Kizárólag az értesítési árnyék lesz átlátszó Homályos Záróképernyő-háttér @@ -505,8 +505,8 @@ Az akkukímélő színének megváltoztatása Az akkukímélő-indikátor színe Az akkukímélő-indikátor színének módosítása - Egyéni méretek - Egyedi akkumulátor-ikon méreteket is beállíthat + Egyéni méretek + Egyedi akkumulátor-ikon méreteket is beállíthat Akku-margó bal Akku-margó jobb Akku-margó felül @@ -569,7 +569,7 @@ Adjon hozzá fejlécképet a panelen\nNe válasszon fájlt az Előzményekből Képválasztó Képmagasság - A kép alfája + A kép alfája Az alsó halványítás erőssége Nagyítás kitöltéssel A kép alapértelmezés szerinti illesztése @@ -658,12 +658,12 @@ Állapotsor Állapotsori óralap Óralap kijelzése az állapotikonok mögött - Az állapotsori óra színe + Az állapotsori óra színe Rendszerkövetés Áttetsző szöveg Egyéni szín - Óraszín-választó - Állítsa be az állapotsor-óra szövegének színét + Óraszín-választó + Állítsa be az állapotsor-óra szövegének színét Állapotikonok A háttér-lap stílusa Állapotikonok háttérlapja diff --git a/app/src/main/res/values-in-rID/strings.xml b/app/src/main/res/values-in-rID/strings.xml index 1efeb75fb..1bcdd4b71 100644 --- a/app/src/main/res/values-in-rID/strings.xml +++ b/app/src/main/res/values-in-rID/strings.xml @@ -35,8 +35,8 @@ Iconify Icon Pack Mengubah sistem ikon pack - Ikon Sinyal - Mengubah ikon sinyal sistem + Ikon Sinyal + Mengubah ikon sinyal sistem Ikon WiFi Mengubah ikon WiFi sistem @@ -427,7 +427,7 @@ Transparency QS Panel Transparan Jadikan latar belakang QS panel transparan - Transparansi Alpha + Transparansi Alpha Transparent Notif Shade Only Make only notification shade transparent Dim Lockscreen Wallpaper @@ -505,8 +505,8 @@ Change color of powersave battery Powersave Indicator Color Change color of powersave indicator - Custom Dimensions - Set custom dimensions for battery icon + Custom Dimensions + Set custom dimensions for battery icon Battery Margin Left Battery Margin Right Battery Margin Top @@ -569,7 +569,7 @@ Tambahkan gambar header pada panel QS\nJangan pilih file dari Terbaru Ambil Gambar Tinggi Gambar - Gambar Alpha + Gambar Alpha Bottom Fade Amount Zoom To Fit Gambar direntangkan agar pas secara default @@ -658,12 +658,12 @@ Status Bar Chip Jam Statusbar Tampilkan chip di belakang jam statusbar - Statusbar Clock Color + Statusbar Clock Color Follow System Transparent Text Custom Color - Clock Color Picker - Set color of statubsar clock text + Clock Color Picker + Set color of statubsar clock text Status Icons Chip Style Status Icons Chip diff --git a/app/src/main/res/values-it-rIT/strings.xml b/app/src/main/res/values-it-rIT/strings.xml index 13dbcfb9d..814d2b7ad 100644 --- a/app/src/main/res/values-it-rIT/strings.xml +++ b/app/src/main/res/values-it-rIT/strings.xml @@ -35,8 +35,8 @@ Iconify Pacchetto Icone Cambia le icone di sistema - Signal Icons - Change system signal icons + Signal Icons + Change system signal icons WiFi Icons Change system WiFi icons Barra Luminosità @@ -427,7 +427,7 @@ Trasparenza Pannello QS Trasparente Rendi trasparente lo sfondo del pannello QS - Trasparenza Alfa + Trasparenza Alfa Solo Area Notifica Trasparente Rendi trasparente solo l\'area notifiche Oscura Sfondo Schermata di Blocco @@ -505,8 +505,8 @@ Cambia il colore della batteria in risparmio energetico Colore Indicatore Risparmio Energetico Cambia il colore dell\'indicatore in risparmio energetico - Dimensioni Personalizzate - Imposta dimensioni personalizzate per l\'icona della batteria + Dimensioni Personalizzate + Imposta dimensioni personalizzate per l\'icona della batteria Margine Sinistro Batteria Margine Destro Batteria Margine Superiore Batteria @@ -569,7 +569,7 @@ Aggiungi immagine intestazione nel pannello QS\nNon selezionare il file dai Recenti Scegli Immagine Altezza Immagine - Immagine Alfa + Immagine Alfa Quantità Dissolvenza Inferiore Zoom Per Adattare L\'immagine è allungata per adattarsi in modo predefinito @@ -658,12 +658,12 @@ Barra di Stato Chip Orologio Barra di Stato Visualizza chip dietro l\'orologio della barra di stato - Colore Orologio Barra Di Stato + Colore Orologio Barra Di Stato Segui Sistema Testo Trasparente Colore Personalizzato - Selettore Colore Orologio - Imposta il colore del testo dell\'orologio nella barra di stato + Selettore Colore Orologio + Imposta il colore del testo dell\'orologio nella barra di stato Icone di Stato Stile Chip Icone di Stato Chip diff --git a/app/src/main/res/values-iw-rIL/strings.xml b/app/src/main/res/values-iw-rIL/strings.xml index 4872d94ef..abcfcfae5 100644 --- a/app/src/main/res/values-iw-rIL/strings.xml +++ b/app/src/main/res/values-iw-rIL/strings.xml @@ -420,7 +420,7 @@ Transparency Transparent QS Panel Make QS panel background transparent - Transparency Alpha + Transparency Alpha Transparent Notif Shade Only Make only notification shade transparent Dim Lockscreen Wallpaper @@ -493,8 +493,8 @@ Change color of powersave battery Powersave Indicator Color Change color of powersave indicator - Custom Dimensions - Set custom dimensions for battery icon + Custom Dimensions + Set custom dimensions for battery icon Battery Margin Left Battery Margin Right Battery Margin Top @@ -549,7 +549,7 @@ Add header image on QS panel\nDo not select file from Recent Pick Image Image Height - Image Alpha + Image Alpha Zoom To Fit Image is stretched to fit by default Hide in Landscape @@ -607,12 +607,12 @@ Status Bar Statusbar Clock Chip Display chip behind statusbar clock - Statusbar Clock Color + Statusbar Clock Color Follow System Transparent Text Custom Color - Clock Color Picker - Set color of statubsar clock text + Clock Color Picker + Set color of statubsar clock text Status Icons Chip Style Status Icons Chip diff --git a/app/src/main/res/values-ja-rJP/strings.xml b/app/src/main/res/values-ja-rJP/strings.xml index c2b2e114e..b85b34d38 100644 --- a/app/src/main/res/values-ja-rJP/strings.xml +++ b/app/src/main/res/values-ja-rJP/strings.xml @@ -35,8 +35,8 @@ Iconify アイコンパック システム アイコンパックを変更 - Signal Icons - Change system signal icons + Signal Icons + Change system signal icons WiFi Icons Change system WiFi icons 明るさ調節バー @@ -427,7 +427,7 @@ 透明効果 クイック設定パネルを透過する クイック設定パネルの背景を透過します - 透明度 + 透明度 通知シェードのみ透過する 通知シェードのみ透過するようにします ロック画面の壁紙を暗くする @@ -505,8 +505,8 @@ バッテリーセーバーの色を変更します バッテリーセーバーのインジケーターの色 バッテリーセーバーのインジケーターの色を変更します - カスタムディメンション - バッテリーアイコンにカスタムディメンションを設定します + カスタムディメンション + バッテリーアイコンにカスタムディメンションを設定します バッテリー左マージン バッテリー右マージン バッテリー上部マージン @@ -569,7 +569,7 @@ クイック設定パネルのヘッダー画像を追加します\n「最近」からファイルを選択しないでください 画像を選択 画像の縦幅 - 画像の透明度 + 画像の透明度 下部のフェード量 画面に合わせる 画像はデフォルトで拡大縮小します @@ -658,12 +658,12 @@ ステータスバー ステータスバー時計チップ ステータスバー時計の後ろにチップを表示します - ステータスバー時計色 + ステータスバー時計色 システムに従う 透過テキスト カスタムカラー - 時計カラーピッカー - ステータスバー時計の色を設定します + 時計カラーピッカー + ステータスバー時計の色を設定します ステータスアイコン チップ スタイル ステータスアイコンチップ diff --git a/app/src/main/res/values-ko-rKR/strings.xml b/app/src/main/res/values-ko-rKR/strings.xml index ce1454b7a..0b35a9eee 100644 --- a/app/src/main/res/values-ko-rKR/strings.xml +++ b/app/src/main/res/values-ko-rKR/strings.xml @@ -35,8 +35,8 @@ Iconify 아이콘 팩 시스템 아이콘 팩 변경 - Signal Icons - Change system signal icons + Signal Icons + Change system signal icons WiFi Icons Change system WiFi icons 밝기 막대 @@ -427,7 +427,7 @@ Transparency Transparent QS Panel Make QS panel background transparent - Transparency Alpha + Transparency Alpha Transparent Notif Shade Only Make only notification shade transparent Dim Lockscreen Wallpaper @@ -505,8 +505,8 @@ Change color of powersave battery Powersave Indicator Color Change color of powersave indicator - Custom Dimensions - Set custom dimensions for battery icon + Custom Dimensions + Set custom dimensions for battery icon Battery Margin Left Battery Margin Right Battery Margin Top @@ -569,7 +569,7 @@ Add header image on QS panel\nDo not select file from Recent Pick Image Image Height - Image Alpha + Image Alpha Bottom Fade Amount Zoom To Fit Image is stretched to fit by default @@ -658,12 +658,12 @@ Status Bar Statusbar Clock Chip Display chip behind statusbar clock - Statusbar Clock Color + Statusbar Clock Color Follow System Transparent Text Custom Color - Clock Color Picker - Set color of statubsar clock text + Clock Color Picker + Set color of statubsar clock text Status Icons Chip Style Status Icons Chip diff --git a/app/src/main/res/values-night/styles.xml b/app/src/main/res/values-night/styles.xml index 5a1083e9d..2737e9011 100644 --- a/app/src/main/res/values-night/styles.xml +++ b/app/src/main/res/values-night/styles.xml @@ -16,7 +16,6 @@ @color/colorAccent @color/colorAccent @color/colorAccent - @color/text_color_primary + + + + +

;wNPXmr(iqJ&sO$mV~;*tW< z#dJX6^)xk@00-cafQ!4Su}(`}czel=T}rc6t2yEIo_W`pKYL$$Aw(_DSJ(00T?#S% z9rN%KKPBxun``|sx_dDwZD(M5y?=OlvELtxIF__eRvZ)d`GQgVy-dQFio-tvN6N=m zrS{-Jo!+dBL)e}i*b)QzyIh@dy$L-n)ca>*RgE!4qn=1WBGkIR}+{b#yS5+7t$z#;b~qHXfT`Y3Ra_KJ;jFMaMxq`_Gk8PnZNmDLiO{9mZwFyPMhRad2uQ2 ztp3sRs4`$s@yRP*VrPy?iczKz{?|f9pN0|lE8uYO#%Qr;Ba-3-8Egdk5NDPusN`6i zwcD}jHFY`{-tpeLT&ZIVlZuZXAWY3>#o2zhd~`#%ggE6oR)kjLqqqGvkBZW5yL(@; z?Caop$y^B`AHVT@7=oxV4Bys^2?I&QK@ChD?Ty5U2|dqQI?eUfcwzjjqw2op1p%_* z9tB^#C+7SOEiy*xd_Wh=_#gjuR_z2wMR=6U>B##qV9W)KOdBVa>$|Bw0TzmN5YG@x z22u*6*Cga}A`OlrG!>#0{bc2K^ilC}8|J5r)or-C-JidRn#4ji|N8s0l^>|c(L}ws zCDPM~OyNcDyT~;>j;N#ttQf8lZei9@8aa0!4LYbWZ;iXJU8@1b8Ws<_z5hM z7oAySwE7`!-y|Glnle!_Y)?dv(Ty>3)OhE+{|XFy-@rDexx=KlHU-+^@u+F53fl%# z7P6AR{vLt}^V>OCUX!Eloj<*Y1d){=AfqnocAbGV)7iP7w#pm$o__pR4uKq|rUu*? zRrrYJrv6L{&UfcdK`9g0i*9_@s7SEhBt(b~Np&xWHkzMI2&>%YWGjKHLA%0-8yJC5d!f^PnP zI{e_b7+-GbmhZ$4Zxt^dP(W}E-8Ra6l*x@ztLdhzemGXcxQiVKR#b>H<5{JdA2P3wWX<`Hp4g;Ddg9WPtwCzurP5og$`7^J?@rH|Zms9uI#0CUS-FjB^Flh|KK97&4artR{PYL32-}Pv)r3}1bP0}aLXyuBc%-X#w zk8N#jwfCItQiSBQpSN4hn}$*x*{a%xK&)q*_C7}&oI~9=2hN!X%yjZKDq-V@*{K%YO-9_;r|<_&e*|Xc%JV^5%@img zXZWmFjxlBg4JdWVcpUEKy%^4hif13qh2pFeh~m(;Ed6bFuN6v%8apSTeDV2kJ$0I3d~1T?XnA$8iGx<{mM2HBLWpv^^|a zH+11XS1m)Fg1xR&T*0}o$-jky!(elU@yp1Us5lwTvo*oB4uUkoKvqWDCP@O}r9SIs zXziit9T_Ec_`r7qd_s19=O@b2!D3cHZ}Zhi!o1_RX?I1j@Bh$Y8e=a7t+~vhd&0)w zHg7O~G=|;9huONMyRwdZ#G9J}Tp_0Wz%$O?&M&vx@xf+b%j@3~a~Rx+a`$3|WNXtg z;c8lsOJzT1VuXm}ce@G7eWi18`eX(#A2+bIL>>fvEy>3M3~p=>+)nbotloEg+U_wS zZYD$5uX|}8d}yJ_dCTdWYoUmSmvD$U4sF9f_3wBHx!&MkG^}0s%vk+jMtzu~;k0x6 WLHTGQnExAClKZSI^;^O;=>Gtj*(Bxw literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_42.png b/app/src/main/res/drawable-nodpi/weather_tapas_42.png new file mode 100644 index 0000000000000000000000000000000000000000..10e13783c965c353e09c97e50a80baea8d1b296b GIT binary patch literal 9067 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%0A-s^(Zl^(G@o}~f!epLoEoZtF8B5X3gPBz87 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 WM!ox5y7PZ55bDZ0N_7ghVgCn`=NY2_ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_47.png b/app/src/main/res/drawable-nodpi/weather_tapas_47.png new file mode 100644 index 0000000000000000000000000000000000000000..6b8b85567151c0e5e4af01aab7afdb767fd73baa GIT binary patch literal 5010 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_1.png b/app/src/main/res/drawable-nodpi/weather_vclouds_1.png new file mode 100644 index 0000000000000000000000000000000000000000..bdd8df6b05bf927ae8db5116ae973f3db88b1b69 GIT binary patch literal 8098 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_10.png b/app/src/main/res/drawable-nodpi/weather_vclouds_10.png new file mode 100644 index 0000000000000000000000000000000000000000..3bafd9be84bc328de91249d6907ba700401f99ea GIT binary patch literal 7734 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 B_gDY` literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_12.png b/app/src/main/res/drawable-nodpi/weather_vclouds_12.png new file mode 100644 index 0000000000000000000000000000000000000000..99c362b9ba8cadeda85d57cb951a833d693da73d GIT binary patch literal 7654 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 U6`r~yNB{r;07*qoM6N<$f|NmG)&Kwi literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_14.png b/app/src/main/res/drawable-nodpi/weather_vclouds_14.png new file mode 100644 index 0000000000000000000000000000000000000000..e9ce659f16d83f0d7a0023f7c08b5e490d9d04ef GIT binary patch literal 5679 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 V?_Z;ZLL>kH002ovPDHLkV1iGx+xGwf literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_15.png b/app/src/main/res/drawable-nodpi/weather_vclouds_15.png new file mode 100644 index 0000000000000000000000000000000000000000..7a02bca3a1fcb58eb019b83b278f5c570068832e GIT binary patch literal 7885 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_18.png b/app/src/main/res/drawable-nodpi/weather_vclouds_18.png new file mode 100644 index 0000000000000000000000000000000000000000..1e140bbd0753ce4e7d37bf197dfa2e686fe0638f GIT binary patch literal 6284 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_20.png b/app/src/main/res/drawable-nodpi/weather_vclouds_20.png new file mode 100644 index 0000000000000000000000000000000000000000..419fdf057bf448ccdf14da50892d9eb07e29c09e GIT binary patch literal 1696 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_23.png b/app/src/main/res/drawable-nodpi/weather_vclouds_23.png new file mode 100644 index 0000000000000000000000000000000000000000..c3f8771d7574c7c23651697f27b9e6a8dd2c6671 GIT binary patch literal 5604 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_26.png b/app/src/main/res/drawable-nodpi/weather_vclouds_26.png new file mode 100644 index 0000000000000000000000000000000000000000..6c7b14fea95f3ae2e738d5b8c2ef29516b09f578 GIT binary patch literal 5084 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�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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_29.png b/app/src/main/res/drawable-nodpi/weather_vclouds_29.png new file mode 100644 index 0000000000000000000000000000000000000000..9d6d56b95b5ab2e49c2b84c2ad6be9048a5245dd GIT binary patch literal 3840 zcmV+b5C8CqP)&^)-0Jc1($v?5iHzy%?5(=Nq^7H_ud>_R-QeTp=<4gDr>*7Z>EPq#n8S#K)DGoSK}V z&e7D6lbF)f*VES7($v?#!p6SA#lFGBz{AI?tg*4QxT>wRi;j}Bw!2_rWZ~lE=H}>h zb#|Mcq)tvxRaRC=NlqOe9(Z|qnVX%lv$o64(7?jRyS>50#>#DNZpX>ZgoTJqOia(w z)S{%OVPRoZR8(48T91*HjE<0$m6)EOqI`aUhl-76W@o0Ts;R54czJuaxVwOYg>!Ut z)YaJM=jcR4MC}C_oB#j-Jake{Qvd=80Sy5a0TurK9|Q(8DMbDvVT@FEGN(_vX+Lk~ z0fN!Dnm^Fc^5mnsj8yN`x#i^z-@x1G9##c1f{FQ2HUIz(Vo5|nRCt{2T8Ua3+tLL^ zut6L_Q3E*7io?m=GY#EM&olb|5Av_tjcD@c-PT&I@cLG2wnU&?zGl0i;5)qI zIF@ZYa&<-AT6=93ii?d-;#i^Xx{+YHf~30+A11Ej@|@C#H(HCY8VfVc-N*rS6!LNE z#C9ml0`G>QAm~mcNXk%AI%}oEt66!yqh-7-SdOQvs^?{~6UhRQ6M^R=J&Y1jmXyY; zMMABSIJPeEfocp)Rn6ioPIVzkv|j*ny&%d91KVSBa3|}))EScEK@zf(j&3oSH_8O`r_$0yLJhDHI7H7!3YE+ z)i5&6@qJ4j1%Z*N1}6*szBpDy$&J>FFHB(hCJjb`VHg90xxfTy5K}SIGBq%QAX7(% zBZ-PARuxImFPC2yzudBekwHL)F@iw`VA{Ty+Ikv50#(J&Oc)OpS&{@Ha(XZ8gtd?% z1_p$O1|tZdsT%LvnWuXoWDtQs^Q<6wFr0 z=H})qmD$-!w@_T;0tl}fDmfny>WK0_&Me2#s0L_i9BMI>Br{Z9sOrXO@Q`i(=7}c+ zijUSUwS4tqfC4m9i9oF37Sen_Ln-zsD`H)ZZQC$ei5Lz1P*T*&e5{rzx!PgdPpZ*OjFy!!}!_fuP0xnH?!owv6?efs)! ze}Dh$C!+AVTlkmlpo2P$*czA!K-{{i<@iVhFNFwJDD;84QXLP641VPieWeOJK04dq z-`neL{RL}*0vP-{Fx*o>IVdd4k%|z921ei+S)ghfZ)q99qa%-$D&X=dg4raDu2a=`pgW=pHivbOe7!Y zH|Y;r0@b(EG{rc=qY0IVW2HZ4kc2wKWI(1UXii}YCMb*$u6}v>;rjaeu=nZXeEsKP zKy_e&>=A#y)D&dRWEBSAfrsN;1kQ)J`O$+it#MYu?dQiP26zbu0+DN3@D=a!*L(Y$ z8>?XO_uyp3ncRR)DO{_yL4Xpgk)Ce zz?0)+I?D-=1c(os8H7-eNDM_hIcl^IR_AZOhkYtKPuf4ix7Qmj&b9a$>F1@s9Ed}y?e}xZ+0XpsA`3+^4?_}XtjH`WkRpAtFUg(G>Gr$T`ESI3Brt&o z0RqS2A%6S({Pb+MgIP3kk$H6Tkibb#g$N9p(}DRc@#yf91U!%$i{q8NCfy@b$u+w> zn;Rd$hc7;QK0iK#Uv9SB?H%BQ0H=pxXkh|}>mv@;AL9@CoEZV;e`kTn0s=;5VJr@j zA}e`)WaVirG6|l+KhHTPJRFbJQ*&)?ef=EghX7Cjs&hKT$Na17dML1vVooJo7K+FR zX_EUnErf<5jzx)8>ftailS4^5+j$~@!!Jx?K0o;)183-sMx)g_+u8+wCvkNbz(gQ) ziAO{_Bn*v#61tq*)IACkv|2?7LWQ9uBTC1(vk-^p?>43ca^ZDyTNX*cP2m~7Oz9p`xnUIt&tX}?)JPI|Dsg$VaJW6KNEUau zrvx7HCsDur?eT#P8{&^B*%bdcIqz#4-9)a=C30Tu*zpsAi*%?%SqevSw6ftH)C}Ij z>P8SSsGyI={b@(il)zkt5h&+jPXwm!pW^4qE%sgCWf;2c`@T)}zzw-1VUp7WhpiQ^ zCkvgTjdVfCM8p`|qY$#_*rK6X(_BiR>gr4;4V>EnhGOBmne(#HYF z01lv`C$ZD31S2~Csbl^V%mX`k3BVYP=XRp=UmML0!AYkWrYQJ3-Bok;KexysDLl_ zZIN?qB5--rJ8y5?KD&&Hlgj@HKOunfOC~4WB?s5hF4$3n6fGDhpdi~`oKD^x;{j2a zxIayq1Q_Gl7o*~7jH>PE+~w8TIU0g*`hl6!w*pKVz;1SLZZ65dKyZCDV;U62^p7B5 zg8Ss|)F%!$dxA-jN5PLCpBKg573K%J>7$Cr^#^ue; zE`6}k#;jK8{-7Bv%uery5)~%u1}<_MyP za8Q|L3?3n>r7ZqFe4s?Qyn#!%K%lu;yZu>1PV+F0v-9XhG1F~cY;W)E>|nMzL{ojO zWo$!9!x=6oPU=gzX9OZZBB%iw?N9MR2C0we`~bVU#PP4r&RVTjV|{t4{P!O(Rr1CJ zgLG*I9r0=n3~~zldxwm{wKu|qh~Aij!J^IpbqQ!`Oltz#-r*~7kv#}o;nD?qZ+{;W z_D<2;G#cy8gIek51PFiHkrM&NfFwA~InbtHKzkCb>*Ews6F8xpgM5I^l4Ep%bdPlq zyjQ*LO`KpGKijzHnoH%MSk~|Ha1pkU7C-H!E*|X z#gpyty`R|Le)|HIquFeumj#Cw77~s1wFCUO_5A(nx$CiZEc~LOU#dS%sN}2LkcChsCe4^d$KJH4f-m8DEf5un+nLVu%%lHhvhQG~}>L36z2L}{yOUU?d z;{A7)_jAPJ|1I%mAD5Zke3e#SURuCEEnuNIzqGh?uvjMG*_Zyvh8^NN%a^aE^0c$|F~RTJ+~E|tlXWk+MKc5=;`gAvDxnM@?d0ao3PyBRdkhjj;PVp*<_8n z)YsdOo3fI!5Ho1VwAkw-r|R!>b$)GW!N-V?nvSBtijbMu+T574>tK0}&Ck@Tz4LN-g>0?ULvWLEv)Qw{$kWx> znw_J~&(g!s__@gV+1=sS+TX#%%F5LElbNHZ!Qzpw)X3QKEIm+su-@V0=7*u-zQ4l8 z$jwxZwPtO2q_xpjmAR#-t+%?tw#VLWd52wNZF72vQI4_N-QkkL=VWMdS6pU@l&6iS z(AC}edx45QUUfl!qDfF%+uh%@w!EFAt5IoyP*q=#p}|>%s8Dy7WNUh2XLeX(ZcI{K z)YaG5*xQDQj?vQ9v$wv*#>;4Jb#{4wZgP2jfQQG)&8@Ju+1uQ@y~D7yxsa2W-QC~H z&C|ZX#NXlLf`o~YmY}%0zhr1{i;k1#=jY?(<<8L4>FVpJsjho{f^v3zz{AN~UuTw? zpY-+iQdVB4thJ(~sa9KKqNlK&pr@Upt?lmb@$&OMK}bSIO-@o;E;BsC!^Ji_LVkpj zB`Gp>e2JBus;jN9MoUvmPgNQoC&bCsXn2kc4;8TF`Ebqk&Ht5m0002MbW%=J009C6 z0|*5M1`7`p2^S3hBN8$G{v22zHU3>?#DEG#?zP$pqaXg1J7o6|(b{xCg= zM}_?TgLAhrLtu${MxUIL2vLpxZLQaLwL)&Eb&>XpYv+~1gw9lVxtQ3*@yg}B>gN5O zvr(t&c(G^Y@w}w!@5H9pY)#P8_z1mEej+Q+K& z>hZC1`ljpN*uLj^_SClK#2UR`)$^4&^~A-M;=+{XN{D3t000}2Nkly5?>)zsM)oPt})Ye)@m+iIdCS;JkAORA> zCM2LJBBJ&7-v4>O0D5n&_x9d@?>+uNM)=Nip7WgNecvyifx&+kIDKIM8~kqqWj4ea z{;$%HLNNI60Kgd<8vSD!{uhhK85)_t8dg^0#*MQwH#apkGr^l+VP ztwEx%49rNrvHyM#3GiwID^EvHM@L6g|BRW%7xr8T2v|mB4G>w(yH3PDVgV#Sa`xS`j7$WRdnWXev-@LgGTb7yB~AB~|pvg~~Eimj8}XV0DM=;(=HI6K=}nHl4Lt%ZLj zKX{Fyp`n$t<6P)FiWPfuCqi^eR79c*05F>Rnw0{HvZ<-5uZh7@(iu%nJI@zq&s#WY zlDoS*h61RtG9NXqvC{u3031qE}VD#>dY%gI`7}_yx&Ko)k!2Y27@MP zM&Cp9-M`<|H?dPmYwE0Cw&wysz%T#=41v)|VjTAGp8~**)DGDVjjZfEXJ6fVeBP4m z6;}d|)Jfr==5fQ(AU>V7t!d|)ytM-AK$ul5^4noV4R); zoSuR)6mQ6n!*WBITiH1~y2IFk_AZ=XR^8kzp(`ayr2vSR(3+bCG{%5JBoZlP14J4_ z&?gy?3Wx)&Bg?WeW0)O0d9sVGwS|e%%ak~DecT(BhpIP10L-n%**Uw+b>BKKd(V+0 z)e@qhN!i@j+>Gk4lc-n{NTy)%h(f+%U|@g&o#|_m2xtIMNjv`z1a%5H6S%X9*;vZa zoy2cv$LWg)^S2vkWjDdobMB{7Xe`;l z01xFN(s&>MfS>|PU^4l`11f=%G3+z|5>fH!N@Wvo1*{dbp$RS%<~mvdqhs5L-v*!; z9v0>kz-Q3v@<+61K5l}e`=o`i?96-j)1B3!)pRLu zK*5vp0D({leE=UoI;;aKR8p8om`S=yMVHD%LY86x=0sAr^XpIFeQ%QcT=#|VEp> z1h9!2rNHntE|0QGee2BWU2Sy@Mi02qKk%6cJXFz5mrj|VRSQ1oeM zcOnwr{rboSU?O+|IO16ULd3$`AKz z@nPFJQ?rrmu=fg{nZ0MHK%i1F!29URi4&WcFaiuoGYq*vLRSgun)~`dg%Uc0RwqzN zS)rkAQkp7x1?L!;C;0s3z z&L4q-7*ZfwrE2P&s3byG<^5&}s#~J$LrXwkQ=LFiS4Wq!WZh5I3TQu521*ergd&hC zU4jt=G<*$BnCoc=0Dj#B_>qx5z1e8?3Bg+f=DbkxXcE+9aC)UgrJUF&xZeqOFQ7Lo zLGpm06CnU&1V2#8oWxwNhR>9-&??QN)1`_w9lUaK;(^+J&+H8yk(~ zhuzQQ8QCJ{oI{|pCb|kFPH%=4u(PwSX<}c~{bpK|l12pH1x=l3ZA1aA$OgHCgIc}} zy&k58N25#I6nv40*`|`p?%q9rA^W(yqaAX1+&^eQFF8S7ro=KSC6Jj>r=-(VV8}EWMl3tp9{?(m{oqu2w~WPONME3;X>_kEa>t8 zI6o2e4(k$DKG=U9tGoB9T;9v%wS_9Mg@K_0W8k$30g_C}dvWM)z&BTeCm0$1T@Uo@ zGiH96{6YLKGqU$AW2yM^r)rT9hx&|`J6r3Z%u~toY5S1lKMx)iq8wWX@A#S5w-XVVqeP9ZOOc69h5&B}!d+wfN zd(^S@PY(e6XU38OxGrojv?xSvESZAIge+}Hdfku_)WvFJ@m#E9lm(>;PHd!?F}4mhnmk6X`jk_moEH&ImWU{nFohu+pD?X9S3Q z`RZW}T&@H1LvGk=4zvlG-GE08gb1}DDQ!0_HB2Fs4_EDmu6I8j92#nY;I?pVdY(P& z;WYF-eAfT?(UT`X|NQflNBvz5Elz5FH@Nbp5xmp5Pfg^RNb( zf_WB;v{i!$B+Aa z8oC}lLdk!|5Ila?#jY1S$%i<9`OBbvuUZ|jb+Vc1D_bB0z{0{B&Oa*(L@XA+L)>T& z45-yka7e`yT?bb{ozRn>{oY216s4AO6PQ>=g!3e!Q#eZa4oKD}Vu>Nav&j-Dos&ZYzh) zZsiUQacc%^#2s=7je58nIi!%U%=u2C?1jl1VsFkM~|`8&z^O)H(=4; zFgSGx#srpzUi-BHEBsANv7_fm{U&(4>+Y~AGqzqitcFYLbULWIhRg2hdib!Xfzw*c zt%o`1wt~L7HH~5&AI49l?bXhi!+ZfO@O5G?AO+nwusNKEP(4;PgiQmxwWYSUmEAC8 z59oXO&^BQ~!II;_004HzM*0H?0C08ia$AtUEnpZ%TwGJrSX1BH@DSShpudaFisHFV|_cz$(96SJR57zrB@P4;kz0x%J!z8~7VG7pAjOTvI|`@?5l02hK|gPegqRAb-UyEdSB z=8P%30RZd+a2NnH6ANq9fv-M0S)kEC`^DT^Xu#tqzx)Ct)c?E(8d=MMXyu}S@`k4B zI_&MA_G(4L_CrH|83f1;BNO<%tE=l_SJ(4)o34J;LG1hI&!2-kHE>#{9zJ|)$F{eo zgnfYkj2r~a%mIL{7h>Q_fm+QU);J*+(PZ`aKLjD$0I&6^FDxFIsIP%NG^88W z*-sq;*KY-a+EJ6*Q9#a-nFLB6Jb2LG-~X%!NU3jp`_{=FMfs#DyY&F{>j3ls18@LD zc%`7=u4ov_YZS{H>p@mEwNN*75!zY{Ee1GHPXA+2$CD?IyJ~A-I0gp??Hf7mhe#Km+`O z&1tD+vp?Lo(f;t^lh=wq`|5x`{|5$o4I&MgTR8XvfRzjKi;8vx6s%pl)=8t)=sFrf zjht3aLv3yQ<44foM-LiW8oC}nK;sE6108za)efqxZE2|oj`XVmXtcJK3qs}8)^s>& zI%+xGsT)7};m038Ke^+l&%XNVt8aJjM)^O$rob56jhk3HczI2kLVf3*ZQHH{96o#) z5P%cvz>J^+P#XLB1CTc?YCr`CGd3`&o}P!mZaW9`QG-ny$ONTFf)R^rxGgneCoysX zv2N|H&p*F*ZO1mqzu-U^+%K8+0XimQ_W}?C6AK4~z<sz=87(f=Q)f<2Oe8;t-qIcdQ zq4XZEvy4X$>4rFCI1mE_yoCkajCXMG4f__{;M(V(eEjD>|M_Fg$hoy2-n@Ae_BS># zVm6>ujwp@utROcWaRd5Cs4M zucyFrJRl%oYTUMM$Bs|-H8#pMTDZ){jc>!JsZZC!;YT|M4jP9-rEuG1ni5VWp@+J` zIR>Xr9o+XJ7C-#(3B(4btYG`S_1m^xiziV@{%!;>7u)fc7A9l&t#Q~Kp!|9O_)!XM zT?kYBQz`M$@065nKSYFkE^T+$Zn(AR*4t|@T{;CWv3$;<(9n-i(Cg?Q9h$QoU`+*x z5c#8KILM(zrT+^N-4%fzU;r%8n?iuVi{R}; zDv2hgCZ9`Rdg3e`(x+WowCLWg?UybUY~Q|p!}e2`F1-)&(dlV*AH9F+)CLrb7A@Ki zAGhw^yM6n1;Hvpc?=KFCSd;orN@n!*={_+DKrS@E@ z?aVD-owlm5?B1rJAONvpeo%V)sZ#);^K^Oo>J35jA%E<;pxD@TiGevei8+C1?o7;0 z&m)t4{K-Dk354mC1jr8xF#Y>`M3@L=0U)g}Of={^7;C1Tf_H4*do=H|Y?dR1Uy z+3naZTjpWqiVaMT$Vm%X+BvavY0&qTDH(+6)4jc7d;kCt zfPW1DJq52c0qX)n001cKlRycpR+s1AKNb?PYgJWX+NQFys@rMzwrq+GNnhHzxO~&? z*r37i_@*V?+HNI`jsx z-j2{P0t5mukdl-V=@WP`{m#S_6}vKk+_d%IeV4f^F|8^sHXU?c9#UACwkh*+(5ke; za}_~n(vKe7dvx*X6EFdrGvf0rlXoEos7a}|7SI6vuK?(EIBEuCUC<){0N#-)Ns&Hl zc5U938T@g9QjvZUP zH!wMHRp9MJi1qW!&jlt&CkK+rl#tW8OABKn3)k3sd%M_9CJ=!AQ36a~bE_6}DK>01c^$ng{kh2)cWtg|$aR9O_CbiFDwK0YHO@mR>-X?ydMk~4D7BE$?I#WgR$ynn<3S7S_^ZU%`rSX16MJc7tAz6{$-ehlUKSIp)l9=%$ z<(nBBzy9sI(RC5yz;v_?cn3c}2WygFIH@EvDm<&=PVUi)U2Dib-jvEOFK=3xmyuX; zG(9Le(w|I@^slOljlQ^_luTV&^ixbo)3H2qcqG9(t|TGqU{S(I{bs*Gz)J)e1T#Ge z2!jVSg5>Ax7F8AHMabHG;!Z_kL=HKUlz;tTd0+<}fsJ?!y{irE%CRlnP0P_F#b1!-!n2xT_CZqEZQ|VwG?icCn7nW7N zcym_#{s=OOy8o}~S-WEYmu_b9sTmk@ZgBDL(`#pF|oIa#EPz;OR)+pLPc>q2gXoXfd!knE7^Ywi2pMK`xE z$(xUDrbLyMP{ZO9d_6|0N9hf5|Li?;gO}r=M*v~G($Cc6%gf(Wqf1NIAN*Tc*+;M{ zWJSk@lh(Tt$mi1L-$*}}m__l9OA510xO_RG=r8L_E3$m^qhb=`68zjeOt9in`hWi5 z6As&`!i!DE7Dxb4^u3|S^@A7vDCdr?J9DG(%o&PLM#lPbO7s>#hwzl7%!8ZK6UpIJ zzxjS1;rsVfzr1{^G|xBg`-JeYFluUohlw#pzOf(?`H zRIR?4x_*69Y0Pe4nEc4i>*7nkh&p({aF(lYm;>I}@Rj$?e|Ny2x<*yH!WVegxc!BG zg&`qJ*ZUpth}&`_CEPpAFLU+v6u*+cU9Y@Y6}>VJqQuW9Co5*lfdfgq4GfL(t|rF+ z`4ev+pvR(s4OhRFfFUn1E2`2r?#t^@;o%7}Wj8YY+%Ep@a^=OO)JV6L2?wh3){uQy zRvj>K9hoeH|F^&y7#n;M6;CE*WtOtl^0{e!>KXUgorf+ z57Sv+%rf|c0`E25m$E-IVfV_Y7*ZrD6;y6It8#xye&zuWUu4SOwr_fn?LQ9_TY_ss zY>KZ(TueMQJTfxe*VSOw7p|_AW#4|_L4a>PO#XnU310>dZ#&);ALeV~8b(PC_qDb4 zaQyOoFs{wxz~Fn-fN_9;soe!L~vl!fW6-QnTBc)ax}-z!TiXBi;BGyX#xV1P40 wDUD%wjfZNDO)T*vgu8zG#mJLV|FZ7?5B50Xq*3-)KmY&$07*qoM6N<$g12D&1poj5 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_30.png b/app/src/main/res/drawable-nodpi/weather_vclouds_30.png new file mode 100644 index 0000000000000000000000000000000000000000..90d642d4cdcb39c82afd1c3fec5429fe0d15304b GIT binary patch literal 5210 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 UgnDAL^8f$<07*qoM6N<$f|wOGaR2}S literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_31.png b/app/src/main/res/drawable-nodpi/weather_vclouds_31.png new file mode 100644 index 0000000000000000000000000000000000000000..b73db1bf425b6285c1f89ef5c92981ac21774691 GIT binary patch literal 2347 zcmV+`3Dow9P)gwt>H8t7U+3M=*)z#I&z`)PX z&(qV>i;IhHZf<91XJKJsR#sM9TU)fWw7k5$rlzLE#Kee*h)_^ac6N4`mzPRPN}r#f zkB^Vc%*@!>*nE6^IXO9kf`aDe=JoaU>llOs0000LbW%=J00b)jGadd45@bQnBA8_m zlDyx#vac;F_y7P1K}keGRCt{2S!+)#ITB592ze*m;AgwtcH7+@hyVZo_LMu^y{q}Q z<1o^Q0)aqC=eVAyipAo`e(cA7?8koW$Nn95IP4yFIGh*XZHL|Ia=rd4cD-IsyTjre z?Yz5Oe~rZkGWveK?7qtl=hO99+ZY={NP&?VX4>&SUQgfQhV$+^06jUEVhq8BNJLT! z&3GTKr>A@2aA{3Q*2c(8il()|wZPPMi(&S>wrfr&GcoKudB~FrukY(3(N^2tE zQqH!CoV$>~WdYo$V~L~8>9f*LqeZy&?p`E z{G((LA=Nu^HOsJFPQ%bU<+URuWSle>lck<({5`zQd-5RyuNzZ$c z1G1ka$izk0p*Xva`(!a6Iw2IAloD}ZvPWgSEbA~hMbU!*y&le=5O-?}0okj`Yt@Ss zgQxzi@kdH$3?=j@rMHy`T%7LK>orCopLjPx{){ao8QjmI%knf~2-&GC0nn%x{D!f_ z*Zpx>B?yQ2gz6*H88wG^2b(gQg6cRaQ|m01zAQBY#|x1h4{=)G_M1usf+qNN4>jNf zk{(&el@Pa%LyY3}!vIC%(V;bU2aT#wDkE?9FI5Qa8mnmp_nmMU{b>JqKc{>^V}>+j z2J^=T)IQL;s6xm>Sld`GXiv#fU}R9twwp}_0w>eX z1kj9-=^6|KcgX#Oax6;J81lk6MDLivrr^^}IEY*3yJmx71#S=qQdN=@5Y{1qQv9BQ%s0Y!(1FsWZq=A~ zQ-Cf74X>d;ShNfj=>0{H8tZ*%W13JmYk1)GwE}?y+N$BI2ZJJnJoS4uMIjw}APF$Y zVPs)@zYom$92yoOlaPe_N(A14lBmllNFp>J6awa=(>!y)TLujTAq*$n?-mOqHWiix z9B|vOst`DT0E1yAK>Y`dV8lK_pVBUXsxxN5^Kq~Mi4le1Nf-t+0wVD8QiH(agw40L z=sB1|(iiSvs3-m&%Z@1g=wF-gdF4=&VgZ>wp!#aS=z~lww z*M#gt5E@G{AP&P2S&P4R5brnSU?mTnKgvxc1mw8vxkV$6U?4aaQ^dZRPZJ) zG+sxGiA1I++Eg(SQ2U=FE@Z%OX)7COEs4;|r3)YebtK91BU_vTTZVCm8q5*Om}a6i z_xt_x^FC4_Mx19TCFz3ZHFbeiH3Ewj&+UjzgVcm1V@O8~JsZdS=e-ym1xC6|AQKtn zid4k`t7;xt9!tpsAfOjm97GsE2fY6CbA$)zR7!#XqX~T*_>UB%B3M+h6`D?DH1W`8 zE%tIY0G9A)AJA0-J&Eq8lc4ukbpY9x7|`@hMTDT~p!0ryJ}3a6&c^USfJ%dgrxIAz zB(QwlYg`3U<0&)JU^M#x{Y3z0S_A>q(1PIp5`b032rQP1)t;6jG-H}Q!~mmbq#6MJ z=SX)M;LqY*xpf_VkVpgLEg!bRvQ@0sNZmw%$|zKPsT||1QV{udD5Tjr~BC zO_-JxoDLPe9t7~YKdv75)gAD~;AM5()0))H2V1%u_Ve`s4me^0&;EY~{uhIp0x_7s z;xozD+~&S)yr@D0-xcZia)o+nZoKXHpADizrQf}qVOk)@?(L2d+xt3|Df<7@i6+i zz&{=TH-(wRZ`%~-e+T?b0UQd6hvBDhgnv*dBp$Z>UiAN^@eg7D*pL1H_8*7XH>B&P RH_ZS5002ovPDHLkV1gDNOa1f%AVUiXT4 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 N002ovPDHLkV1oOHsrUc@ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_34.png b/app/src/main/res/drawable-nodpi/weather_vclouds_34.png new file mode 100644 index 0000000000000000000000000000000000000000..ca3e7a9201072bed84c2b2aebba119ae4e5e138e GIT binary patch literal 4583 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 RNNE57002ovPDHLkV1no-14#e? literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_35.png b/app/src/main/res/drawable-nodpi/weather_vclouds_35.png new file mode 100644 index 0000000000000000000000000000000000000000..bdd8df6b05bf927ae8db5116ae973f3db88b1b69 GIT binary patch literal 8098 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_36.png b/app/src/main/res/drawable-nodpi/weather_vclouds_36.png new file mode 100644 index 0000000000000000000000000000000000000000..59bd2208c74c441fe07242f0f7b4b4e098de0975 GIT binary patch literal 3031 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_40.png b/app/src/main/res/drawable-nodpi/weather_vclouds_40.png new file mode 100644 index 0000000000000000000000000000000000000000..99c362b9ba8cadeda85d57cb951a833d693da73d GIT binary patch literal 7654 zcmVR5V#Rd#vV-QMHp=SgjGT6=y_a(CI>-CKHoOmBDR=;~E;cTaVGkCU5Aa)0aX z@7vzufS8_WZFEd@f?s24cafWinVxKLc3Fj+u(7m)l$%|BhuPfTW{a9fc8uNK-bi?k zRC0M!d56^2+dyb`W{{*>US!bH)<124VS8IaEg*$e~r@B+B|cTO>cQde3*x! zux^W(cZG^wjiXwGm}8Qwz{1C4ld5irkk8WF#mLOY$<0WGr)P+iT#&1RjgnGrd4iUo z-QVMsoTNWrY($2sZI!22bADZUfjW4ds;#qFfs=5aw#UlPvbDLy#>%$2z;=O$a(I1U zm$XGi}pmeSPN zaCv}mlcd_*;AW)7+}_{8!^X?Z&(qb|%FWT+-s0cn>4uM#oS~&%WNY8y-~F1W{+Iv&0HJhJPE!B@0s;jD0|)~Q1_TfZ2NwP!4HF6eDgG1> z{&@Z!s3J2!{!Dn5TuDv-D=%P&SQ=O}W;tb48Y*URi5=~S)tg4!ht?Eh`prIzJ4FFmXpy{b@cRhbLZLUxw+gmdo=g;iw$hq&j=&kuA)EPqn02*>hL_t(|oW)v+L(=*7 zbwkswi2TtXbT)XKG&OIBKDS*BLnVvCjSO-=hgGc_|$P!vQ!luacOM6pO` zntA`v?|ie|Eu)N5Ip`G z0G{4ntNtl`eOGz?g~fY%`38Oxt5>gHvj$%ReSHJNN#JW>pzkXGAQHY_e-41vRIFLE zCM+y0D=TZgD-zTG=88nbepjpu|6K@wq;H<90#~mITN@U(KWjgdBHxZ3hYoGnuwnD& z+}vxqh{J~uU%&qO=NGqZ*}W-d?P~wud8|L88c$#3CsijVx^r*deC;3=6&1%TDo&q1 zO)yXh03c?a&u^#yW5Qh(xF&0*bQFH=V8!uMh~vjk-MMpW1;TX-z^0ggHH7~ZffvS( zX;bANI-HBzPanT?=kb%r9d}xuyzah3aGW~Ta{T!1+`|-v{b6eeLm?KIX59H!zWpan zz`Z?IC#I#P?b=1^zn**i+1+QSS{^@@Y1A^u=y~;wzN4k3<>~AAr;lDdy>t9@?%_i_ zcBCb)U!MioYp4kPxiJ210LbnIw+ln|T_;bTMER%hzJBv&pu4-INL)`4czgbA z{QnYwCrM3(@0zq-hc=%$aq!ya+}lszy?OKQ&5X@9F<~-DZ8p;kx$TO9nGf%j(t&r~ zkMBMM1Q!N30$+DxPwL;l1mNke-OFp0m+$JZv_prlT|4-o;`Hs7r%IE-WSS&3D<@1Q zQ~Zo_AYN*Vx7h{&W#-L0gWMM1-TmZL#kFfL06>rxwkDABZBJJVR#5y-eovB{SUwym zD{TX0_Y868areN0$)=1~PQ=HXfMsC703xVHM@Ll-tITdUyfInzCcQ@UYJYQYw|*cj_-+{`?}PO1N|2O3LMv#BXQ!q>4xK)sQnWfL$AMbB{mi zHX*4}Ez_&*CJKUG79VeyIjlCB+96k|)HajUp|HIHA@R$B0o!c=pb+fePmy4y@4pLx z^xm~_vl7>XKS;mh44_6dkE{-@7lF`m9N*z@!_`txQIt)?;E(Dm`~cSlf-zBw><8)N%b;=U1K(z zor_i(zRRSThSH$7YNUFN-RjVrCX`ZzQ7+S49X1Rh{?tLp5dacTo;a~39+$w>&$fHL)Zwb`nc+K2!Q@kEG|lQx^pFgail{on+KuqJSsexAQ1A7P%)O8Gc@?Z~aT+Z}I`N~M!X zqWth-z#-Fs-taypEYNOJ&b*mH4<;sU2BirMHJc%iNt0fscgW?VqfWJKyOP+(jPmu1 z7hgZ$d@?O-^{<~~2`ro_eO;Mo3 z+#3Kyz#Wi(bUfMtmvC71YAcLU1*#e*D4v*JzW^CPgD?R2dc9Rc)BGJ2h&x z2BF@rehNW6hZ3?pSN+n3srmm?{;a$E{c9Ug+U!_A zCh8FIj>MZ8lR0#0DO4dh+aV0KUadDw>NSfnNQ=g9H>)1sc~)_4Ls}S!w!D^pM!=Q) zBz^9w$2zCQg4x?(HcA6B0f5p(cF%+|-e9+@(E=dv zYOukkR;v`FDzj5HJGLhEru<%!3brTvIdJsZ-}1&3*Ge(C}pFH@wvHKi`r~nTwHX*wBb*1AQcb{nNa^tv8wdiz82V7&uhEZY`QY*rtlFLhgn7rYkG}& zQ8lW=0Gx|d$mKfA-HPjfTOAm<>Jufp?AMEufa}65@!Ho0*qw8B*a!d?8CE-VKyss- zPAnoU1bK9{B073hWyPEglM^u(ZRctQM71qtfXV3Y~@M7|YkJhtGq3X0ug>cB@pQ3ep5}3^U7YlX{C{ zXs~Z=Y{?iss+d(M6ti=~OA-kH8I5yu9k-Xql;$s-RBz;SI(&JqnEF%1LX4O z`tc5(TxD?pu?_$FIgx*qEeWvNSY@Sy&d$7CfMAyGC~RL|WKt>Oz4ypgTX+fv~I{6&(ry zkSox&S;gq06F!EyFFJsqP|C7su~=YH@=+by5DnXLSj;k+Q#VH>fK0<<(-Dy)Q4u2} z5m6(NksIH?f4?zeUa~X?Ij9tKa|)f#X?_L-zMjj+FRxYZ?MJSDueTT#avc}r5Z0RXTLr_UX^=M`p0^th1>52FKxab44d9MwgmD}JPK6H5ft5NkAj=}fC>;pk zRH+;e-Q4il{K&?Q3-8~Pq7iSYACUR|!ovH7NHUKpNxxP*HVk245a+L4bOS&KC=W#b zwK2Odet!CVv{_9QJU$LG8~Y@Z>FItVFlcIMj&K^>2l<_5r(7p@V$E%rS#-0;P;Eq{ z3ju;c@E*4o7B-GV%}-6u&re0n4-PMlh0e|DREnYVEvGMr2U3@wt^;sjU^w!}ZT&p= z_LtE(V#7Gb$Bn~%c+|+qk$H)vzi%+KZ?LalJ1yx89X4X;I?XEGtj+?XbuP+BXN^k| z?X*@qKQ%4UMj}6{8g)lZ%}@7_^^ZxW=f^NZ@M{qo@8~#wa7VZgIT^2Voq&DA!`H=Z z+R971(h>~?7>5yq{Zo;s=l#OSbRQ(%-#yE>U85eu-Njrqov~7-@-#YTo*vTt_H+x z+PyV1JHG?+HV*dn^-Ja>HWC(n|9<0C-{6>bdMYAfB!ZL`1q5@^a&(eRWtPxFB_CA` zOQyBcQ4x~9!J%QeGWv!55mD1iM)h93zFikKR~?e_~C z$&HO0!KElTW9XOXZ**R{zGV{yz;zNM4FG`M0KmN65e>hAEgk32pN9>C z3`2wDA+=Ne{Sjy-Y3F?3{75A1hV&K2v*2b~A7~j0@n9KXQ26XaNZ>o;in;#QvCz70 z_wMa0=WYhH&Esu#RJeV!@FKprmPR zHEa}ZpK%DSn4X`H0;wWMb4Q{i;0JmD)(pDR6T%F^#-KZR`fy#{rSs=s))d6%U%8Ty zk(yc-N1jOa@%F|`03?9G-GSW~uM+^B1ut)Wd9JQ5l#E?M=}rp~E-XZ7CGI-Wmnhf_ z`JC5+S|Dg2nFIMwzzk#Y3=LCT#Q5cxDCfqF8=Z|;uGC-7EZa(+%UYDx zpAZ;v44SZ|EHf!#&)I$3wr%_Dv(Jtk`RuERBmIMe+6XjyY9nG~dW_Twqav1|r96S$ zlJrwdKof?sz6f)0uR#>hT35I2#*LR~e||C(PuNgTr3d&0xi8YaJ^h3HeE=bR-8!<3 zVi^2%Zfbk%%Wa>1_0?CO5fISb5qNsk^pPmC)27Eli4*imsL^NvVXU8uK9_w%F~|)U ziHeAfnuOn8dGa#`g_8TGVK(#RBoz78#;?%AV<6wo zooCLRE#@R6KN&wQz|UvpSyOL+%)p<_AUxdF1R$WtUA}VrcIV5N7zD}w)mQhnZ9CT5 zS~pnNDj5vLW`Xs#tPh7v!JWxpVK{Gy4h)?;YE=t*)-M?%cULsA_2F z+>(Tx5#Yj0lIhmgc`PDq;?^TLc#zJ0Mmm3Q+l|i7&Z?@a*s9D-0WXfEcM)LavdoiG zL6Exz0RdDC(1X&rt-Q-g%&Ls`J!fMJ^79K~fur#Lwr!Wbgg!v5bH=%IRMcI%L~grB zbqvu8sQ2<-78DfJ)O6myQeO`MOdjtduN3LQe+clC%OWy?PY@6Qw49t62BTyvFOyTB zl%1V?;6PPXWB$IqI}7t(=H0(>;~XY)>{#8oOGtm|(idOgu%_UCLBXs1d=6?) z?n=(C&(BB_@X7>a{#!(>6x!P0fbbOwxPmgnAgTp^etrZ15TsBD7?lD55SO}jsgW;P}l$2R9T-Ynd^FE+ODeqljP;ohA)_W?lO&M)rA#-8QmHx~lH z*@R?qb^?UYjNMaQTh8CIB`#eoh#>$1{C)ud5d0}3hL9O755a{Xj>ju1uNHGN4_v5i zOU`B{Bvd6QH$swUQ0$rJf&v1ddEdU~nw?$uV>xHea++&m8;gq*s(TamB&V`7v)dEO z+Xw*m0Z|Md81;qx41kM=-fkg$iXeqfkE`Tu<%%1*nWDC~dQNtBMnZCOaz1D0&a)g2 zn1*@_&zy}dECifyYdNv|&Lnfr7FQ)?Wb`(`Kr&b&5jT?;S4uj-6vR;Z{eA%eJfyVv z2?93{fS`;Q$1iV8%@m0Q<+TY(sTs+|2?@o8&Bd5()5NmdZF9J%gIvW7?>`BPxG&d(CBv&OQClp`hBou>l&B{O3+S&v}MsfzHE4iJ+ z$w=s8W@OX@0MI4GewUicP3EcrLqdL|0Ur?%2m}FX0>J?8 z&;&wyiTFD)pH5FnsHQVm!t``@#?=cAMVYL0Zu_2g;1B{pLv2zz^A-z7x{UU8=7mOD zTu~E`Ui47NE9d)B?FRtl_x{b-D_ukg!eRmym&q6qOcOEbDJ)?bBZEP|`HDej-{dmb z+?)Ss;PQYZH6vBPRpx`q_xAi( zubF#%l!FTaBB-dyC#9i>!!BXaxflM?&~QN*CtwQ?q-55n(;3-9@lCOq#S&EV52VxB zJw0Vje;2I{2u=}-+saDVf=Zensh)KIckBO1MsmG|{pjO{0O~Yxyi=}T=uKh?S^V$5 z?Y;Vt6(=YY-%4jbEJ`U6i+g*-)$9~TS<$T`8tc|ALG#~hLuh{dYTnkk5`m~J#}AK0 zj^Ey%|4x3gnq1dx%NxQwrJ*4uxcXKTkKNluPiGfhZNRCO_3B%p;B-j}tGA)yr|)hG z8AV0qFAk(Icw$~{Pp=0zKzNl!qm}Z|0g~O*|37=%nd|j+7ZMNtg$wE4@U&9))dmJT zU3j4@J%^V5tw{{CVl-X7+VJhGhrR43X8EZ$IwV_02UnX?#1~lJA;G0_F#*JVJ^%1q z-tecvZOmZ&5WcSD)+>H>lkiq`5sSuu_-zx-FNfXm@M^iR`lqh!>T(f_QBun2W#O-i z9&%X+=pNod;p@Wv|Lb?WdHayJMWGu3LN@tJ!egbsDuUG6uect;Ze@A=zlEoVzeh@&5SI{?p%M z=;^^fUCvlrB5Etkp;vAx4e;=z2M0IZO!p4Yi7QA`QZEZ$NcrUsH(32^ripvr2g@p>g(x7Mn>!G>Dt=a?d|OD?(660 z=fJ?h|Lc*jv9r_E)R~!?{_dH+zP`7&w%gp@;^N~?O-=vkiuU*S+}+;N($Vzw^*lU0 zii(Q=<9_n;@!Z|r_V)Jn_V)hlm-_np_4W1t-*Cmnz}?>8_xJer_V)Vv`q0nI&(F*6 z@bJ#g&6=E_qNJzP)z(NzNS&Ubk&~C(+}^^%z}VQ@>+I~Mrm4ut#Q)e*)6~_vy0>(6 zbpG0By1TuIh=~5*c;MmT#l*t?*je!K@c-CZyuQD$uddS4(96rm;Njxz?CrO?y0x~p z-{0W5xwn;vWr(o&V!k|K3dh*+}}+Qp(E9oSvetu(9^`_WS$$`qWdu zzrfz!;H#{vR8&-&o13t)u>RXo!o$VY)z`Yay?}s#ij9%);hz8JTA`z)>FMgu&Bx~E z=a`w9mzkL4&wB3d?%CVj($v@8-r>y6(V?TK;o;+@r>oD<)T^zs*(m|?(Xly#?A8b^RKeGv$eU6kd?f^$N%<`iHnfe z*Vl!IjQ-?_{_(Z`>zV)h!heE?|J5r0{n2`Tg8#e+{oQ@NzQ6vc6UxiWbas6I$q;L9 zbpNpj$H&P3-$BB|!~giJ|L}DE(ro0}zv;7C@V#*Uv?KbtJ^$!l`k);0sXYJ1Ip*Kh z|Ni0p$5&utXX(_Y@YI9r%bMQ7h1bchi^X3Q0001gbW%=J009I81_B5R{tgls4+Iz= zArmSMCH^`I92Y5BkP0mRN-B5|6E-eDSUw>BM@cn!Wi(BQY>cV%^qC(x@M&MIn;w^k z*GDp0<0nD3PII|uy<5cD(XZ36f_6#0*YSAf-Kd(u;pE5Lw}$PDI$fa4@$2zN-T(5( z-|+RdmE!N1dA7*_02I|pL_t(|ob6iqL(^CGg^+}Z2?>cLW`m?G5o9R_kU-fNMUWj? zq;4pl7iT>b?cUtEeIk6k%1WEnHSzH0pPP4bc(!vD--$KQ?{n0q@@rBj112Syb%WL z@~4$Y(kTRZ+qUibi0v8Mwvzw}Mh5QsGQ2r_DnIbIP;>&Fk&{6qCu1842m&Rb4wub- zPT@`A)9xegBjRt*-@c6i7w+3vh}g4lUrr8K z2~ceEjTfW(r;z+J3iot29=&kn{V(Pp-nv8L;rtix9)S+~Q3ztjl$2ywlSkg4 zzxBhN_3^_GcOJffZu5Vt{cGMmNWY>q&DoulzqkeXk6sAE zYRp&IJKo&8Y??-qUpH(xs-}-Vbkr0ci9h z{{G9=kJg~?k@%ASBqaXv1t!D8caI$H+(&&#*2PVkke^$UtJ5L>((=CR*PEJ7n`36P zDPYNTUF_{WJrfRvZ^j-ydUW+FgHOQMf^xX`H5kkvKH6D`MS*nU<`m$hmS~j9YJAmx zxO3;u%#h7!wAsw&aAwF6vxR16X3R#TIp})y^UqhWUcGnkmoLBk5%JyA@4mwgNW6dV zYr^1N_>i_Dxj12Mf&f>nQx+Ew7FRd)?IZ+THkZq0v$?`FX2Rj1IXq*wWd zg%WuB^yydl2NK`?_{ry=e+~xoN6?C78j%ZwO(?+Oi-B*bH8gZx3c6e&n=6EHhg_jx z&=xbAjiK<&OnAm*3faDY^z*+#;710Z24V2sC!c&m7*GlF83kUOKw?sInpCMbwDmPL zT{;~GJk3Akb_H!F%c_4ieRgTpVv2=r7PC1Pi~aWNuTP#le*EpX-+ubdr=NcM*;ilv z^SggB4CcSM&{&v3NhQUAo`LBNw0;s{730_BmBtAct&liftx>9}lC8E8{0mPWi zZ8kehZnJ55#k9N%36_oKW&4ub?J~oYq1AN+2!qck14!@%`e6S)^udE^mt5;m@yXfnB9bcDP}YpJu$P*Y;(X0 zt1D*s15P9i9)rg>&ls#H@Y)LSHPxy*m7(Xli+J8_jDds6Y;%W0E>|!N8&XT)C&qx$ zY_=IqF%!7hT%;MEJoz`Fv7W%!^Y310+@s4CrKVvq{R87A#Ft9GuDGoa<}({@G+m3! z=!k{f;TcRK7y2KLBjLha0<0U4+Tc@k$@kxb!lUmW5e6?2$cYcbSK9vh+ZJ}azVGHu zlA=2ln#qi<7-Q&p%pI4J62LvTjabjWQlJ3K}sHHDcHc*+onw_zvd00z;;`(~j5~x`2Pxoro68+!@WH_Cn~lsy zO~~1UMuiE@M$5FtiHMsvV&VWtRZNlzf^^?NNC5Ehe%^rXjRa*#VVk0kQ?E6e0EfEvwZHu=1M|7^qyaP$HhRF>%| z1b_#OKFrNuA3r7VYZYJyA$AHj>;ev%0g}?bn`Vb2Iy>v1w!qOrx7$Wq&E&zH!4zIy zU0Jc1Fmo{+Jf>-H#OaK9eOQ;l5qzT2sL$lF1Om}%pKsdq{m);1LIMJO9A6CSAl#4u zht0+a5b94uL{oIuABCYYWsT&5$B1Ubua4ya7zCDSiY~X=;*Id^cBdCPlS>2BbOdas zEtY^c8l9d71yk(NFU(?0n=peBVB=uHj>W(%~%J)<$^ zaQIeMRs$;*iz8-sn|&a_<3*y=f#{OgJL|MgS?!To|ExdY!=mM|Ob77SkFLJ|H4$K~ z0@kOUi9*6PK$Mk}%@Yx(>aW;Bqgm-$$$*H9mz0%DlNxlPQW`$(y|~({*GzC-y6U^G@Lhp%34qedh2zP zbP;n4x9{Gbn3^NtKRx*Ar=K3&U6@Q?3V7`(2~6?m>ILSKn7JHEdPxEDUN=!76N)vX zD<01@WCi3(6u?VMOE7xGzZ#eh020_1qJaqlfSA)dv9Nd>Nt3Ma-@gBV+};J5#RZhZ zYM-(?o&La*clGbb_Uy~aXEsUbKGnpcij1E-u8KFzIyKov45%x^$z5T#V7HF|tMS`%S8N z{@L|a-TDKo4olSU_4*_B$p!LaR;!)ov|FusK`RgGfB~9)niv$$ga%f-b;_R3o4b2^ zVQy{?^+4uM9*>BRl38L<>qc++9_)~$Fb@3v9uczwCklW+eD3^>^gnS;URCagUFvcnOG5Nla{J_qc=!xN^`!I*-QUYNA|Ne%r@C#Dh^o;P}X^!xHj z{gdMkc$q+AlB8ZyHGHURc@-rGZQd=3Xi<-+URoUtk(rb~60T=>v zfVECdP1!MVoKEEHC9M^(1OO6=@TLg<{kt$73a~ISfi@%#Bn`O$GgzJe%X_;TYMK?~ zI$&*&>}3K;EIy;ajll8>-ta`6R;0E#M@&F*?RJvk)Z`o#nV7PAu?X;x@f0aKtvr5G zE+p>WMl8-vS$UE4y$1%)47C>tThzGiQZ&+5AW+Q%o#5p?) z5FQGe&a+M|F5X>S1OjBioSB3%oz8T>6MmnX0x@zkIk9l}!GlFYhI~!&{DF%H2F?$4 zHy0`B#W^^?{#NMv+e>-%pxk!r%5I;TIhyba8M6OU2HFtLpogeMp zd->wUiNX(fChW63+6;@N-YD=ST;WVdu?Ph_ez9XD+j;&a_`ia8dGEDr z9}EnfIYjYAY4N?O-=CN~KXQ`D>p`Gq=v2eNz{uXcC(<$Gkv@En)>^=rwWp^u*-kJ4 zf8haMI`gm-x9E@AbRr#mhd9tRaK7PGcXzW?D-@Zl^tWpx z$B)1B&hFj#u5eb6dn9GJk%WDU1Q|~}B9N0TMZ9!!Sp+I}GC?YMCr%u=c5UGNnKMH* z?b0G4-U{)#Y|cgp1?vu7BoYZ9lk>l^Z_ue}MzhXDJAza>>sK7{e63_}T zsIW3YQpd&x1Q&B+_Co+NS@#Dv@jiB^h18DtI`Wna&d1!gB^1%FFeqY8z@w2eF+i7Kw-fxK#f?Cjbg@0;wXgR5eyws%&qsK@2ruH*|D# z^b$5kM|;}Z`mVQK5BIfo^tFv*mvXeLwzd}kV=$;xs$xX7vQ(+m=%hukzlbs5D~~AF z5ug$zOOoSz(%R-4jV6!Tl~x*N%F93O8R#o-Fw~N`-dEdJ+t$(1R@*mv`or3~y1KG5 z)mtRqe*5hmyLRn(dq+WmPFh{9O=TSL$|I8aQcTa>>2^HXji(HRLWMXtx1^*bFRwsT zYB&X1PZ{)sDqyKp9c>0xUB^rZkZare#>&dd*1&h{D#$C?L0A+>%j&dgQ~=f=65u>L z{CI%@-Ixc3+!9@$roG#6U0+&UT}-olYYD6aM&yW9-)@vXkrx7ATL8+8#beeXJdH9C7OVQlG}7kgnsyDTEui}Q$Lj{m z>c&;YW%%taA_IZn1<^Id)l#WcTV1BbpNizIW7RTAGWQiDAbvfNnDG1vHvSm^S^eNx zT|FNRUD8SnQ&qL^nYE)9OR!i`O z!sg+jVYP(I{R8}U8qh;f=4?pT+TV61n@{^OwZ5vqp-Q3Zmx_rYNtW$cGfRt=h{0-& zrh2e?2MV88vg2*&uC4CZhzSE>s!%#McCNcs#(w1tc!>eJkuYG%vRW#$vL$>Bg|syJ zmGRn^Rz*<}DJz_nCzaOKHA{8MT?N=g%+n}~RXR{B5x>~okxEr01(kwbN~u(%#6EsC z*;2*WA;N1h{IzvuW7Uf0ZiC@Umh5$oDcA66HzcX6TGdz>WL4usg6!;;+MOL$ih>;l zxuOC%Jx{DvD8xjH5?!&Xs7Rv&AtBmDi17( zm|a(sC`(MtZXMRwWVN)lof@uELUEC{4rVJsb%kO`Q6f_G@9a?N6bPXx7aO3Wk`hrG zKULn|(cM~wWw^ezGD{%iyyjW?niUcSuz*_K-HkUYs_~YVj-jg7n(<a4oD z?0Rk0xyr1{*4FwfLsjxLtkdZ2=CO8JkusMgE3ZThH)p5jf>&8JmN8vfJv&XPXg!r# zt(7Y~S_L)T34+ZKNLXW#)ml|A$%@>u3fxHK#I@b$*JHtuP|FoUi9paYKGtG* zOHr@t2L%}>gFIWEmDK`sr%^U#=gwSFV{WHO1ZtT~rdDUE)e;eaQKxLVLN4eo%fhiw z!sY^uIjl5MDmzh7*>I?`rdp?{IaH}{N#v%&0R*ISxK)n3GIeDo5YaJg8Q$H?1TA%y zE&Ww8zC%veb#VRAOovpR+3uKomnc; zmT5@FS!gu+8M-8npt5$n@~ojHF^MZG$rJP0ECG##|92z`)Rk>*mDy<$wcza7l>`Ad znGAMRW~eG#(NRj=LO-d;p`Yjww2U)MlPhF~3XJbND;?>s&eX<&)5;6MtBo1LNO=;@J^neFcHg%_-yI^2o^Yin}&CluT z>x+()-rwNX*4W0!$<)=?@$vHZ_V(}Z@UXD6-QM7xo}NujP51Zr+}+>L(9`kp@>W(> z<>u$PyS&B5$oKg8<>ltZ#>w{f_Ri1I(bCkvz{C0a`j?oR%FNE*-{9Wg;qmeE@$vDQ zo1Wp~Ja`ij0r{|NpVGw&UdH(bL!H>FU-J_z4rr+V?&Ck=hyurS~#@yZD!o|t8x4iT7^M;9y`1$#O zgNSc(czAn&Vr6O^R<=U`002{TQchC<0R;jH4;B9W9RB_zDkTa~J2(D%R53?JT|OLM z6B1}`tuF+HM{<3dhKrqzWO6ms%d*6sMdb6Yv$4S9Ay|>*=E}?B+j8FR^X+b>d8#n*}6v0VEK~#90?OJJD8q3y|QBWFaZ01p96p$Ga1dk$$8Z{AU<{30Ox&Qz3 zyLL53O-_b$a^L&h54RFT5qht^_S&netK8W5-}rABvfsXd>^DFDJD-=a3;fPCe(%%k z=o1u7B|Nmz! zvUPZ+G*lRBHNN0mwKUid>mmR5qXB?dk+oW#j^q3$42RXc9#*TB=Pej|y;CXw(Y5|b zk(}RVbv&3`r~&jRFC0 z0RW}^uQ-rBKmA<{awMC{mB@rs|D`*f>4CE^J@bQ#UuMdOej&mv`f#gcVZI zsn?=p(v^Q@7Ju75l^p5KVd8mnXg6KBE!0m7i++Ex5Qp>00e z10-qkb2^Who3LTWcI_*_Pt&0&&YsDa?cFl4Wvel5OI=eI(3g5dJS>L1x?B09!mvi;bmv5iMl zTs$_#=HoVrA|Utx!Uzz44hX&!;Y;d&1As!sQTzZ2{ig8vh+MauO^S#C1drR>+j!tr zkh4uF3WanzCP4rKPN#jQK(_w(w*V;QD$Weu?`AT)yQzM2BK8;kCPintgNx~M+3WR0 z)M3(mT+H#7ej`nF@VQ7094i7*Ap1hXFIPZD4xlxeeevCNy?rUCK1pRd&||RI|8!)d@%1%+M?JvKZ>4283k5yCavmCK&&Eu z0f5#I^V4!<{HQ=moS?Roert-+YKha{u(xQpCwOJq8_wsm(HyuI%K?D27FP|j$9NR| zXyz?C&TdpIm9mZ3MfiF7)tn#ZV{L;^mumFHXm!N#dy=>XdLDFC?+%@@GD6G<1^?M1V>=!-3AP!#+9 z{-n8p6Ob003vsdN!;%(wkUK)9O;l@gRX{fui(#M3<#jmffu5Pp0QX~+_)H4CW%xhKh7Z;NK zb<@4lr<^kj>3X4Xg$t7Gn~T=6-xOOSzDMLqf6<2jNPZ;sCGux)q$jEZ02FR-v!(29 z0oCwXSrL9%^)~<%Tq0h_MJPE$Xg@wS=Y5zxq9Z;r-()T*A!s*QaTtIWDRtPwT-Cp7 zGqj+h7;u?%D)~zIk{pK_-vf&djvdZPKyT?-du*kP?R>SFakFbnP@;M z+KY0dO_N#uv09)HPGxyc=~f0J85> zfaqBM>G@DB-I(`=Q)JmE=A}rF#KnT9B3zz|y)FVP#P*^$Tdh`0T9d#pS__GM5m#xo zdb3`?2Xl7u>K`*e_c|&|C|0gtwMN9IC{7+(Y#ME9aZzN%V&VZcBt!OFSaORd#TD$B zJd(snZ3+HcL`8Gb68opIP*D4m9#m||EzwM&(Gr)KU3&lz**&r)2lEzq5p!bXMO;f7 z-)3A>_|a&F85vQj1n9-#622^wJN1Y7Tsd0R|I7w9)QRHNM4S$3jt2)KHIlUMplc#M zO20=dkYP)jmSH@YnP#JISBg*MgQ+Rrv|LVU*1{MLhs$9h6XoUKor-00wocK-3pC+~ z^X_Pcj}y`4_hj)Rn+5yq(sMuRmcP+E5z)H>5Sm7qnF3)1d00R27$1py3^{(Ox9Z$P@!`KZ(B3_7DZ z#UYY<^X`BE0qP9z?NQax5Uobq=cg6ow+QI&Q?5|*(G=KfiNhr$u+JogWp`hc)YoDr zL#!?-*pSH$09GKN)156L1trI)o4uqe>H!;A%BO!dM)Rx3)Gn@z88;jx}3bTN+R? z!g`Gsk3fLzGB)iuMZgXOC{S5}`x1_G1+!;blH%q*OB{!T=s!-vo zGv3^J+S%ON!Fc-g>GPj|{`na{k4LbT-h2f*dSa^%4!*uu+M^qAH3(Ss&^u%)SmP3J zEg}Knfe0NXQn#;I{ilpmAQ?gdU>svS9&c_T?9O9wL1j>fp@ z`HOd_pmRkR(rh9=Q}Cy)@nF134Na9qMUWIC&zbq7A>ed`x&wr0yd7%$!GO_$7q&JB zR5$2P1K=YP))IFtQM2A{c-d{IJvb*3aB+0XTChv_pFXn|`t#EhQK_K^kgO@~(5)D$ zVK{>}2n|%o8UQsTq?;O|kP3+QWVZ0M#UNat-|R+ly9fX;t5Dp4KLeOkN+`kro&5RF ze=#8=X{zF2Oj@MqWB3XJQ)4d4b;kslG)NIyp`gVbGzG>d4E#iL#AP1N&yU`nB!Wrj z8wTVOfc(W#>J-h6_Cwu38x>J1Iz|3viIS#vs!}15x3}n!)%v)Nk z4*5R*9UdM&JY2rRIHK?@J{AOW*=q(=1b`1F64-@2Iy*bRzCMS<0H8~>qA6)+BNkUo zb4ZXGEZOY3&zMh2;Ry}Z3~fS&_Hc~LogG1YC((=d`8+y+ZQDr-RIE#&ayo&)3<4mE>A)E@M+4Wonr!q)%{27;jFbWUd_ zA3C}@zP!9-0W<(|*gd=i5x}D9j2^D9A5a_3p)@oEjermd9R_lXW(<66(78N5emFip zM*NElDZT}p$Ik?8e5rt9eHue20&3_nn25%pMSPl-;@!LREz9R6@rwr8jyh4`mQG~!*c8Wk#Ldmw z(YtroH>At6Q<05$>O6&kEqnStb^ZWDJVdgW^dIao*&W^N#-g!8EEJ6h zR<1UN zu@#n1mv7GDUT0@Fz;bhQbR->L;4CL1ghKI92;1yDZ(DEQzuC8b1%ME^*N0Nrn{=3k zY($_vwxHD~_(Jh?I<{M{0|Bm&!;*S2Qz(=R_l0yi3k3DXO`~4k%@i{@H;H6&kz6Do z1Oi?=9q#yO=N?B*41h}YWjXpS0O?eWia>`mK`YyBci6mPmn(F8zq{Km9NiRlqp=LK z&P39WY3yI8v)L@R($eLt?Mx(>+usid!uS#nA9%f9qtWQy-#@V1?MAC`z-wPi@L7ak z6@hKfN(XZmi-`>fE@L*wQOh5hU8jlMCWr#Qd zj0nc7!-g2JosQx?_>lh-tGv<6n{|#wFH3!0_;@t zyell2tLYDsgii<`AUXs#Mx)&u2B+A2&E=ix@EUE{VK?(uuZs`((ET{{ zb0$lriu=utxlHzkgf##_aQkZa0XJ&~E$6T#tHn$rXf5S}yu;yutioQSS%6uFYFX&O z7x@suS!Rv27-qT;AJ}aU-du`UjSdStu|ZRXs@3;j0eHPN$`GuZ!QctiLKS!tiU16j zU?Q6d^5$%W=OsZx-JqjdP0-=74~_0J+pw=42%r#lo6TE94IDh5i~J`=4beMR^WY@h@jc3j=5v)Mt0-Q=*A zKHO&`7C_QNr8XmEZ?b!FM5J}teYIM?8WQjUXN7o`f9JI9bwBJGDisepL2z1pLgqsx z8Op|^iDdSJU^IeMtI>{DGr`ofws0xu^=qBUP$rUayPaD6+Gex)wOT*i!lBg}!+~Nk zk_`xUlim$oRXuy(JuQ1-VULEvQ>rEPR#zwxtW@#|Gha!>gBCQjAGPI7xmwWRwA#q$ zbt-qIa(8!^Pr9`Z{A>#E>s7Fil1r(!d40ir_Cv(wuEXsuu(XPtdH_ zb5>s>S*cV&ZiN~H>jkaf#HpQuT7EBopVO1%)NW6udiVZbFd(4UXbG3}SlqewZa1B{ znv+%B3tKF?lEvw%kW z?M^L+Ll8rz-b*0r^ge@ znbB|#ty{7#w5|##gV^s=8uspLaYLv^=Va)G1G^s+i`s3V>TdkXkZmaGuRpYYt;g`b z6ivG9Hl%!)6FhF}bS)N*m@={-d=@@j;td$oxC({Zua>;5QoOHvsyQCBkJg46!jBzt zIg|IV0l=9ZR5KKrM)?D%nfYjypbvx5D>O ze5YEeM$NE0&GzH=_I~y67O;2C7A`Wl!X0b@7e;5?-Jy~38w|+A0Hr#yx#dA!e(f;L$>Hh)i{1%IB?e*dS0000unzLpQ%F2+CklNec)z;a>#mMXI?d|UG+uPjN*Vxn3)R!Y8 zr>U&7wYS2<#TOVD`1$$h>FFF98S(M*)YaGF%PFl+uPl#s;%kj>aB4e=;-O5 zprXda#pC7Yj*yh>?(fde(#y=x+uYse=jh(x;@aHawY9hI@9)CG#mvpm($m$tyuR4j z+Su9K$H~gJw6@gM*O!=@h8!HDE-u8y$BJ4Q-{9iF!NaJjs_N?NxwpBsud*W{A@A_; zu_E!G(s0eo_^hnw+bvtlZt+`T6>9Z*Q};xX;khpPHL;a&o&kIJ>>S*xB2rsH>oy zos*TB85$cD6B6m^>aVJ*dV71w$jN>h8isHpw^{-~*} zy1Tvl`un3{VY|G)pP-|;y1hO;H;IIQl!kg&?f*wE3{ z;^X9tj*{Qt;*gV=)z;agrK#uV=*`d5pQ5IU>V%FeyO$HT|Y!NbSg z-QLN})7RMB!^O#!n4FuRq?wzb?e6ZZueA5~_~qs1w6?n0+u*po!?3Zm+}`4*sH^bs z@ypE4gPV-*!wJr|^E8;LtRZoF-E0002JbW%=J009C7 z0S5{W5)K~(2RAM;7!njD6&R&;1zHMHLLgizU~72(DP<}iVt_0>lx$K*eIJYdbTfrG z^hUdhm+|byE7M&6w0( z{yomK%^}rbn=k(6*BSrvYh7q z@cs7D<^780*Zt(<{#UWd@9>|{_4&-%qp#C!+ws!B2B!q;Jgg_P{77Vd6qYnx=B6&RQ>)+2a??w=q~3+FEbpy}%Alc?d_MD5$nJt)-= z7L$?^m6BrPR~j9zK|lalTiE@vdxGGvL!j#DnLl>F+|4a0H6?1?xN%WsQ6=&5B~d9h zHZ}x8l05+c3VuHcl)p;?RZrjA(8bJ>__w!>CZR`-OP)7xUUG8!>W^YqmqbOC0L`Q* zn^Ic>!E2V3ESsf>33#8mFuL^p^ z$?56oaUaFT#l^0UkFtrjwRdtdaj`Tshg$X2h5~sy5q}MUo|&&Ns836CbhC;7=**dq zVq;liftbY-v+0WKRib(G#EPp|ul6v-f;eC(b$4@hjP#8#a{&xPb8~%^1?9I|cz)9{ zH**Sb_V@R9b@PiqbN%|&>sPB-V)$o?SsgtJC5x%7QkE;Kqzt7%s_2LV4SqrX&dvdm zY7~}0K%;6umHxi~fU4&b;piXg;}_%>ZWD({uOn7gRh5#-Vlt~bI(m9~I>@b~3N$dK zimS2n;>V@<1%;|H_?o#Gn(OJ(hDHWO{qHXUpwRSP(rn#>Vlq=oZA#**m@Fl6UtU#3 zez6qFaxq&fmP*SNV56f)yoIG?#jYNgk{aai<{CgaurwS>f_ijNC{Iv4hj$8EfVG*U zduq%yXfJtQo1&a0R*IEM7K>S>R4U2^Y=*3_zrVk4mPkdX3p!XTwo*)=w>sGdRk_?g z&B?@+6b0&%GVDXC&#M8nKs{^2hyZuLlz6C|MJKVt;G4;03g}{iO4KJ4s`^^{L?RJ` z&1QB~u>?}&hAB`o#{CN=vx|Enp<0<0i?M_ z+l-52DxrE7UBwl0*#eeSMc*P;REfoOhH8tbsi~DO;tH7bR=ErX!rj7#KIfI%+AeoY zLkOfVm60k7-1jqbm|nvYN$YHA|UoY&xCJRjC+Ul~Bco3Y7w`NX4cD zj)>0ctP-@!`&4vUA6v;(ilh8cIgU=ImXSW85r+CS%COWv8vxDREYjH@b0;-(+U3}J zZJlk+Y({gNKne&90TL|`u#{CyrGSB_!~*nbR_Z{L@UWb!kt!&>sNMR^NsIxTa3a$%$Vb z+tv(j%b8+`j>+aSm`bLiqa1+BJ318Qoy4ku0O7+q!3ru!l`>;vF&{QgODx+MH!d^8 z&B;GJ6K%a>!TI@{VL}LZKA11xiH^5R_LD2ufr~ zDs2WiDM$wVtlj9H&3*8TtDz08vh|vHPS3A_Ls7ld8CLlh(v$MRsvrRy+ zYmsrKVgVPDq;nZ`38acw)JclHoRjF|>}#p_EcY}W8dkbAoe`$CC6Z=VGhr0nhxA;r z;(Cv=2Oh6hDLWLHfaOC7z(NliG`odYQ&X$r(gk8nX@OGN#*j8Qv)OE^piMxu5aSK zA)Te{WHyV%&CJd=HbW?paM^8bbO{-dL9S+ckJ3;1T>$E<4IMqNK-;p_G6q)y?Xy?_ z!BnXIE2{92Rj$A^6bnFsQla(^yLz>QDd}zO<<-%p%}g{5b~Dt#YHpT@>Lhf!q-7R2 zdH%j=R}=j|6rno(@UNvaGSD4;m)+7*$3`Wt2HxOmfiCqh^2< zgS4);g~zKUI%VMHHmIhpS&ZIA7YOL|=4QsclF}q6>pxEcm8wM@X&)26n#~gOTIwVW zI-RBH>CtFiQH~MELL){OMjNIJPzDP1YD9qn$c6tFUT=$p&Sr3td@-t$!KkYfa-pNn zsy0b;8{Nh>aHQ6sQh)-~&C1*;kTN8)+Lm4@icP#Ii0WCy!~z6|;j?9nki4cub3he} zrF2y-uc@iGmnUMN6x-B`MTVrV4hdiY4}K()I!Sy?lIfpav1kzhBZD@^GC^W(V^dSD zkSisFw^PY#W2qy8rUh)SP$m+|WI`^|fDTl}l+uN@yhc91u}Q?m;t1-%%#whST1Y}F zsjbBWm_!;^7GVCXb^37kG_q`?QcYr3OX;A#wih{|qk=T4Y$j8PE|lOIx=JPk0?`&A zATOg;G2p+ZhEvlolBpOdJF%1@Y-wz47vz0H_CgTuzJ$*6O;n-x5KtK50}P z!=$Kr668@reAIE91yb}k1~eofjTUnd|L0;7g8>mZV9?nDW~Z22+sm(MZ|Czwb)s5e ztL63btE)LRy*yqEuLXJFVuVZTWOWR7b9_huW&-Uu+Zt5$1-7+)N-`E$T(C?KNZ3+H z3V)5>&OlCu5(er*D&-1QNP|qB2DX^VV${|0`g>cOYGoo`Z%u=|T3%n@Aa9Vjw^wtj z`Te|>T7s2JB5IR1Z}c(K*L^w(6sjGry>(6ek`b6nB_gzm>JT6qD+Gi@SSKQ(NbnGf z63Qg1Ei$wnzym2VR6tWxKd-NsBd_ePsI08O4}NuD8yM)Wtgo)&0V`C&LoVp-_)s(b zr;~uK1sy#-Yx@!?PgW1?S(d#VQQ>~zfy zO`~5IfvG-Te-nBNcorfZs3C40uL-%tLr9uvT2?0nsay$2!Mj@c)eR)xipq-au4^|3 zu2nWvT)TM#zF|MyxiQdP(a_k0Q2|}>dy%IochlhjD5L<5>?{mTol0L{;&8#M(|V70Qk zIu**4E|dweLWHQeG8Cb_QjGu*)V{$2aSh*<4bWplePunrwWg*K8c>OPUoG*=(iy&m zK>#>d1cznW+N_e%8KiRi`gpB1azblGJt-)DV-3HiS}v~!6{JBSc3G_qrQMA83u~MB zKq^;jUtR(K*VOqy+zkyJXrmf;y#&1wX=5a(N2NOH+C6T_SfXqEFIrnPNv6W5wYK)R z@;UX$D4Iiwr83%u6mwaW{DcKy6fQ`1e>;kiRKixCPO`Aym~(R0ILl*YG)V zkcfyXh7h2rB%f5O}sjxh*w=%K{N=)NY3%Ln(E4KNC5BWaO7(E4KLL~(C9DXB7 zn5F`|E7XQR0-ynP2|%9Rq!Q2>-(Iz9*}kHr1dkC8Mp~4|5U>Qa27m%EfIhfIgfawY z>Sltr0u>@;l9zT84KiF=$-&F=_L|zd+NRzblvgzfBCT)euA)L+5X1(q!B7sBa`b@K z!exhY=VoVs004O8o=O0WBmlCDCZ#8KY(D z=Egt;r?C}pA_v)R93!!me5KFuB?VCQRvtoAPC@|$Q0WJHK@Bj-0xje z`1-14yLWF|kz16%U_n8FW*3vH0YD`T;5uMLu!q;!K>H-y@Y3AfiNhAKI5&6mIL8QJ~pI#V+dOCPbEKy4VJ{9_f{kur@pY$kDeJuQ|AG{JQbu>&J{4 zKN}#%Y#Rerb#Ht3^uvdPw50H{wt$TzcAjg$*-(jejcT5dgw~or8meuC4_R1A>>XEXX@F|KPfH>t;8={p|5? zXq;D$-}e6L+qZ8|7&U4X5WIh9U|R(`RK=Y8bMF82)4SEAKejiZ*))tFL;hgfm}<`K zHEZ5}yKv2RjsFa6SD6}G>yx7vas@P$0&*#+1^^liU0ke31bbzLPnvY-(6Tjq_W}U8 zShsify77?Uy?YNI5&*b;v-5|W+Xz4JUbsJJ&YXAmLV^5Nz8s{%-WUV?2l@TWV2c+o z-n6L*+hrMnI99QI3IL9sH0Mt=^>K_Y&O~q=sX=Ircl?C(eMzFk;YxMt0og9q^!itW~Sh)5*qtdOAGAcWJ3jW~yy;S-7oR zkgJJPq$v)WuyZ~n0j*yHcuWB~lER6US(;`TOrOa#>HbdchdH#X~Z)9{CtAGN^*7ccMEV#!^svo z<5Cj<08|R)X#kp1&>V{4aK_9j&CSihLjE&MM;aQdZ*6F>g^ z^WF2~#zn<1`|Q-tpLTxu#`uFhWo4QBwjRh#oH`Y^sUgSDyZQTsggOT}N18YW zn3|hE$^eD(m;nlHH~_t&Q#o=xWNPB;>l+af5$Ww6;JCajr_^S3`hV};K7ZxXtx>18 zUpjFpc3MnI)Z)U~J9mEg;fJTzyq-QOB_$>%cf!3(MKfoHhI+dnIDH^ABr$Q1_sp5j zX^F*Y){isr7yxxR13J1-js?jHnTr_?YRqt05*g|2YVR3cW|MpAz={*7nE?Imy}?UK(J@m)X71VJ?c^F1 zW^Fx8f=||CH0o0b9z$?}0f9+GfKRBsXU>^2+wjoT6-VE?bl~Vwly2U zTCt)O$7U%hnLa)<58Q(d9uJ**;NIZi>5B_IU7el5p@~OASg^H*0P3#*P=3pS`iRn; zC;{g!CO(e#K|cOz8GbqL_5see7gywNT5<8{-0<-5ppe8R#i`-$L3rpBk~pn+>P&9{ zcsTg*-r(+yTL%XRf1JJ|KY@^F=H(F*5C;dxKlQoOtWOgIl-0dvNPVwH=7@EJ%tj+vpeLY2ZMk(P+O9;ISC(9E^<( z3^1K_E&P|bT8tPGmXvdONz%pRpMLuFrlRBb?_SuQ8}4i3nriRwgOoda`-D0=MWW%j z9i4!}gYs`Z`0l&!)F9w~@Z+!3SA5{wyYDSG%|5c$$s2M6Db7<91IIf0y9WAyy>;+MlK%g^{PN2a zaho`C)P!BfrXPE4L56)+%$u7H9PEZG;CIqM$i zUpoKs_UY4)UG&6KXyrrT;1J^ZI`Z0vULkw^y!7W2><)< zfBydG7hymD{Qbf&zV_SW?P85p+y|RiE)DiFb@UHE@-6ZG9T5SM03>ny^W(OTCa%k^ zjKdO_YW?xIo+ytXXu~}KxQBR*G;wrW9%g0b5jJ+guAd+P0C*7))Ck_W^6Bx{@&kMg zM_4Rfy7Gn1#csi-k)g+5)_8}Vn{aEw)`wfqUD=&qFm^2Bu~@oxsg=>6e(Q-cga8zv z8=Dv!M!4GBhKDVE?aEKEy9@7<1R(ks)d&iUR(g220D;5GV$ag+sTSt0Uw-$<{dW&` ze6sc2CnrztSbuoRD=R&+Turk^1{jR{wNKHXS}j9!O?7_MObE1c=YnX{4XC6|NlAv;5*ddC+k1iaroHu!|OLp z`CySpu&I-&g_V!1v61#O&rC@wX!^c5;K2x48a}OHWok&MeZh*0Cl}sTb3lIH0e~-# zytcp-S34OQq%kkgyO@`E@vE;+?l|}0!MSs{c5OI$V*2#MQ>J{7pJZ=3($K|_=+M~c zxxRTu(bB_0Ai_7mDQxB1qU;R!AkPnGZ1@IgxI3B9@cqJ*C%<^-#qme;=jPhvWqT5{ zw|7jlPg?NW;av}Io!hZ%;>iuiN?w~XWAw_bP#Uz2Vs2BwHEfA{`-)6t41zqe!kjvXJKI&ma_Qe2UGFxlJNXJxE~{~fosezIZ5 z8>e<`n6d!HVPWly<%o+ORkIoR+~55poA=m2b}+EoT(own2c~J*QF00L&an@!kh|%y zW5E_v6k&0bqjP_TLPD>J5ivSY^RDeJEs+c0Iu3rnpm$mNcirM_lc@^5_g zkZNS4g+qDrhj-n-zYG3fgMIM9D;gX9%4lLQSdAWSY&CiYsGl+V z1p`Ekg9vgC@Q=TDr>*tMd+SyuG!yx5mfF(9zMjxVY5S z*2>Gws;jH9v9ZR-$g#1qx45~arKYE-sH&^1$;!&W!NR4dsmjdFb#-@OU}2`HtCpCW zouH%6&d!dIlK%ew-rnBT*4F3e=ZJ}ld3t++f`jhv?r(5$Sy@^YZ^_62001I%QchC= z00IRF4H6mtASwMb{r>(`LqBhYYKvCk&Y`rUzvk2g2e5B!0ssIE|4BqaRCt`lT8Vn1 zNEbDViXsqq5SJhkLfjRUXbAB;03~o968w3=aZ8Y?Tt&Q+BOuDZ4 zoI&rW@GR@V$j#8BkphqC{m4);B6tInE1xmw{RH0$d-?l1=<%qvF~1j9jw||u8$bLN zffkPt@ zCxK7o7uU-`*(THJWP%4hXY|S@B8Vqcg?~bzgU{kCIN{D_(An;V;vO-TuM47+M*s=`MGy`SMz?y2v`803_OJ)3W>t+!iZ zu^=@-a4HcwY_s75gZl{Fj-Ml*urY8#U9HzEV{35OK5oeuhzLrI@yHg1za!w_bKZ}{ z_4CC7@Pz%$w!;HYCb5PPV8?FKd~h_lmw+pP!Ix??A?@eeM?v2`v1LztdLa_eEAqv5 z4lm6nT%0;#;7HKBQvfOc8h&F6e2Cwo@Av!EXG`&xNIbI)h{(l^B@hh;A0_DBgHP38 z(@*e0fW%)xa-gSva6FwZVy9ye`Fo`R5f(E|$dT&=D?#rr2bkeY`jh@Ld_s@n^X08$ zms1>(4DiGHaY4a28Ml@B=LBT-=kbpu{U8zpuXYrE41XkJxT8Le@#kO=aU4)8OsOaiKgq;z1u!W%w(;lFFo6-r zz&VP=`gDx+0E3mzkrSR5I||%IVBpybJl|6O6F#BGL?D(ojtLL`@_afbPh6L`Gp88b zOTdYM@z@BkdrFVMkK-T+6*0hjSja!|i++k%Fo^e0>;+p4IzIS@z`)D`8Ub5!KtT9G z7={WPvPJwL3(PkmD4fp-#NCQ>kr~`baF+t&f>r>yKL(n@0XFJd*nSg%!WlL3d8MiN zR|Gf)*adTrz~Fog!pQd>NScV%Xi`=l_@BVwcn` zg}=|pIV{WYkY}C?kCeZTf@4f^xK$Iwr+43lnJF^%f{7B&T26TY3B zOg_cLoE1>RN3M_r5{4QCe;{Dn(0jDHK@&T8kiEWTsfv*Vk?KG@8Km@o5s0WBZbixpusuluG)70dFcNU{QmY4brI`9Yk z;OTk2b@Sj;7j#!*ou$y232++_AOx!`2&Bzhd90iIDg>(LN*-VW})0I)WQ!N zp!9LO|K_el7LO(d(~ModI0#ykh&H`jSrDoA&X%uBXkgxT%cq@Z~%P~~~4FcB%Z4lm|J53m` z0)hUxTyB27B;gS&pES>y!1a0sQc5mpa^ElDfhP0AAS#f9+!rAei1(hF$#ifiIBz>GB`lK@j13wSY z6`YT+ufKi~1v@2qygadGf6y+#M|SLjF5?#h+zR+4w_hO^;O#RA6k+TGHYgn?6!B!kQ?c89)HX9}o8Uh&+DAKg3Q!0r;7Q{KK zPz4X*OMGypyr{4EHqR&u!X$awZMZe#RSF0kS^{puGx(wdPUwvP@=9ugKoAju2=SFx zZ~_sC0b&Jxr#v57=e0-x4eN9h(MH*2M}?7K{-e>0u*=;%QwozG?jgWox|Yw;b7eF*@Ca|t?&Xa z@IoMN706KG{DNeTvmg!2Q;p@K3j6>d4 zp6peOTW#uhqnrS8^q!EQrneD15LJF0ht!|cC`U+EOx2i;vXpz|2w{*U5Me_UrV|kO zZ3)=Wo3jM1{zd`iKrJ`=-3ZZFS7{Vb$RXenj>v(cND*!Lipn9iY*B=gRU`3F6=j0yh62T?QJ2EJ0$H9Btq2OCz4b5hy(cHKs+ueQ8QXnb>iY9ML~} zP4=>X#c?>|7^IavdN7P6#Zd3W@^Y01C_HiXN-YGc%y|o=ZSiMeKUi9%fJ}170mC z8SG{55dfsW&WWB>LNIVPpo|Mz4%qKpOHM+GXE1=0>;v{gWS2&=JhGsfu1_*~v(NX& z|InY8i8>ik58C!V5{eQDGgpdsK0+ddx*C^Il<^A(4ai)UN%9F>&XpL2c(b%kfhE9+ zU`{`WjvOxe9O)nMBvl>HkTKH>BJwP{DbS{>`UT=wR;KB*smDT5YY2b$mD%Oc(9 zi8y(A!JNwY3pz~U+4vg*t`gi8JDpj=TOS&NRs<6XX8dOBAR&B$=kYJv#`HS^o$U$R zn+gMTCb0=ZyE&mOQiIQaBK(cw+wptS7C(HqK`}6n7;Cpc-Qfm-5Kw1g{op!7wkN1k z69Gql##i{mZ>ob2-)vNxC4!z5CyEYM%`uVpxv%D2S!+@VQQj{+BgW?jk*>cpJMnn_w2ciT^BywLBLrk z>yaUeu$a%bOWL#LbdW|_P0+D?qTXx8g;$S_M(q}zyGwi5k&Ruqn5FV`hG}ZW6q4X( zhZ<}`>bssddS0W)X7-|92a#?tOoZV zUf=Fk*zFoRH>M+VoL%tQA?ZLg_@}Hsc!!>gUaP$jIOwYUp5y!8jT7vi!Gw-vX@cP6 zOFlc^i9PS0^#GgC@y)?;=hU>bId$*Rt;=9I!r!H_@$vcNdb_rV=W9miYXo$<-|mlp zIJo`^fzI6_x)4DZRwio z%BQF^xktdaCjh1X$Net3gIF3{-por#>IPDP0s-yxwlJb1ZBqp9x= z{`MYG?}G+%h&ycW(TLL2v+$@998K7M=IBLr ziKL~d0RjS0eUf{ap$H5OOKp2wkg8O7es`3aQhkwFjHpw0fJkwEOoyjfgOxyRecRmM z*V)`ed6ZOpicfKST#u;N+1yo#pG10=NM~>a1qB2J1!aYiik_xSc!@@5aA<{%TYQFN zmasrj2y6=a2xZj6|9fQD;ydAz{HP=lRjkD<}h z)rOj;($&~lh@!K)zeRz*~EUYL%-Y*A%GK4@PH1zLpr})gtw2;;Ha0e)qomUS!Nkzg)n{pJU0-3;)!4$s$vLwqRv!>+9^2l$U{ng`A(G+TGx#sj_-}etv+3l$oG-d3!xSLqkSO zH8(kMa&>%ug7ftBf{2pu@9=YYe`|1fj+CB$gN^z5`Ielf$IaLzC@pOg4ijx)6A5LI9x8k}jCLY50}#(dP8<@woBj@#x+!>)nOu`Y`Vqwg3PY07*naRCt{2 zS@%QJXZH;%ONohzp$Q}eq5&kd$VSD23MfMX2UNuZ?mcU@waePKef!NGWRkrnNgxSi z00~>@|Mb02g0@=QYWuc7^_CKX$T|1ibMJkgj~L9q@o)Sa|Hi-ZH^z}&J9nNud2;8j z9h))#d~Dl!^l{srWVAg#dUD5xzX2mH8OfK|{v>nP(YB{z4u@kl!zT_;_~_2#liU6l z25*AL?0o!`tFs3r3O3tiClc-UkejPCwl)0kDFAfZrq>DVc>F|Xce?^EyWOsX7ll0} zktpOmp}Fm3=3m51+w?Nf*J*F~nGGjzyX_&On<$aEA|WnU=d$Z`8lp?b5tikMUy3CGwPwcjmQ`&}+KQKvSm zMQuC(5`iS@=FQt6jvP6%W5+J|fL`0V^AL(%hxZ*ireiDocBxc5#+Sw|masx6SF6<; ziG)ZD>9`^;_tMEfPXGkiylwY7^r4+Q8yXtUoH%jfbTUqyICG|FrfXBT}gbD`RN-Sm!3Sibi3opv!}O@ z-R$VNdGofL9ZRqyPN%>(>T^1!PH7}yV!ND9K0nTvsNHI_*sK>3J9hjjc+3W<_pY70 z0RPO5+ikZyE1aQfZ9sa+zX$0pA(t z3lwTSM=TU`G{hV4JerduZ}a+SZ#dERY++9I=n+rM6Y|XFi8+q^n@1CKa}yq+*vxe+ zB?XE5=FcL0s%q9Epf|rep8$uJM;GVNqC6NZ95vkcx`RRI-V$1MvqeIH5j~JrB|gi3b|^o znj`iYjH(H)S;^yY{jPw7&5pzsI=3Xo=Ys@bi?Ayac8kp>sc-bkzPA$}gRl{SOw<4k zCvLPoefs4iu@_0MQUL>{*k}-Qxg3sKr{;3SJmZ9F(kPr%D)shAB$$x66yS!qCC&yX zItB5tmd*7N1-@zir*BpJ_1t0dZQiy6DsbZT?JrT{Ml(ORy5tOD+w2k>CNT{}<0+&v2Qzx1V%XXXH)NF?Lx^&GQU z2|5VPdgw(ZgF?;|V>JMzPrF@k~xm8a!qZNW~Lz^=h4j@6^IPfSG7A3D^O_ z?AIS;ZG4;bVgBzr)AsDyBZF{F2(9N8YxE$t0cMXuXyzH98=w~e4z$thd7eq{q+Sdn zh&{q28>JUKW8nEiL2arH_(48cz&HK*)~u}GBCuf#s{Q)z&)n8<6TFY~HYhz4&lfmm zC^j@9;0g^YG=#j99;0`XC+5JR$EXx@#cH`QVzp}2Fb#NmFrf#$DC2VV zfUQUUVl>LbL5#^O!D+Hja<#)*fi=9x!UaID1s)p+)NBRebA1x zK;XUCYk)>?a_*)G965C6<{k0Wl#L_giM;>;8+Ty=EDr$C^&*iN6i}fJgvwwLO*uji z8#qM7m90S^@OWabjH4IHIBPOspy$C_fMX#yWbwgf00lmLFDw1^*_*aLeUk1!bnMPI zVv)mPlZiyaBsdHm*nb`|I$Wyda*^HxHd|PL&FF!2ryQ%R8W{*LN)a5f$z?p_r2;Kd00?Y+WB+Hqz<(y>$ZQUKR3{gK-@(j=Nk|KdDgsOS{eBP_ zMgxSTc@yT)7d$n7qLD=2V|%}#&v z!D|H4UTohKft?*XXd?O46jDHhyp7zADr=J^17)T5Yy9wCju;3yLLnECxV*A7&R^n> zOX2@<-{|PLB{6UJtHDZ83E3J)?6(soQs4CKXCJ>xAa(jk-Tlx2*m2@}hg_$d3We-| z4*@rQ5&Rlp!_mv8rW~4NWo3T9T5eO1IF?r+OeT{>s@3unmT@hNn%UW(ewrQAF3r3B zBM$5QvSUPMHp}6f#vhvo3%o|)X8|&EcfE-~%Q^k*M$-~Qn%qxfYHBK*UR zXKvczG7VsEVn`8Ll8#I3S5~Y6i6mg1H(6bFhfXGfA%SMp8V9VfI=>hPD7X!c0|B4F zIgY?Bk(EeracO>aHR^yu$!u~ii~{~B5@73V1U9W70)W82!yi%Zb@Kx1SlI8h%qB~l@6c1bCOL5C$#2Qru6bgkk zWOLYHKZ1$X_ONplS#Uda;V-x0x&R1&_u-Ek$rmokH6aOmKDa2=PX9DJJthcSp}Ur( zaL0nwVkQYuC)Y%mmsh83&}cIGlq6BVD3z|T7103dzeUT^(xNrwink4((t`BoZ;ykV_Gml3>A51a$zkK&k@2O@Isp zbUJq^U=7C6+?*NpjmMz~Cewfgi`UV`DQ= zITV8N_+r8eWMNvzLH}d{P!FWPI)=7vK_{_XM4*y-?-I;7zdN)VjY_~s;G}vh)Dtcn z!LSq_eelsUh_TV}M93aph8|zGEFpy!Ef%;2#iast;uwWHA;1g97uf+K^i#;R1pb?z zo&N9ktw?~ZR~NyS)FNCb(0uRVB`y$%hKQj+6t0?VlOhzdMq@mj=_Z+?tSnnD1qmYisW?|u+ba43my^@k&7h`T__*{ zMsav-g$R81UxdH?SEr$L6o>&300y4|g9|m)-+j0L{Q2X@>lZEcY<9iHVi5>nxBv#q zH4N`9v2ZvD?@h@%z_$YmSa%_`^N4ns0KfvuGoOfrrCNkP^Evo$y#SauDu5)|4IKR zKkE(nsS@NP{9GhMLD8r89zN{80#yL?TR-gCfBpc}mg0CRpQf^wY00AegByI2)uBw z`NDe4l^)-;eih-MaNf{%^p?q$JpqpP#?Z09&w+Q1lUn(%ekOmo)WV zxKMNIhpvh%doKU@BEeT85vn10T2KU3Xlf1jb)82 zS`W3Sk9MJHpu6~L*QxG`>Z@lf&Q@F*95{QnqM~Bp{#k&pZW*j@Z7nWorqS+qQ;Tcx zcyblBs=TVI9KrwR_u*4M+z0^#vXUAk2_&mf)<~jJm_7YX&7}U`lIrf7?)%lJ5P|N2 zD_vdHSE~mG&Q_eNsc9Ox*4k83LV_O~Vm4j9NFp(ql?*cVKMrwd&UDv(O$_Pjz42Gf-1=x3~onz!#Iq zcxol9_+nFEU2PeT)K349@FDgOvVS=Y-oT)=ww6jGF(|!5%_J6?+)Sc1b#>h>ZmOwi zZ8-}}u3l|DH`rZVbFQT3TyZm=+}VjQAu}4O-dKqUw6wJ1@hmcn+|o}jDXuEMUPW#$`T8Q6g}>fh&Y*(-sqKSI z?BOC@(P3;7KPxLE<1O%08l-1ryf6Zykj=*dyZ-t+l$-iI#QGg@lG%|}=*J*VHbR3CLhpVfr#NWS9Ze-x9@Fgrpd3zdoLpo!6)(4F>e`Ah4o%o??+S$3Kfehq|k9#RxiDP#iHY? zhKI>zI9xdyXfO*aEBmkG>L_Iem5g$F`?rl)N^v87h(@T(&Pw4U0n*-qLHb4*2uTvz zshQADBjgldnZ;O2a{;}-lR&L2q%q3qm6bR~BZJk+WDX1#F>pnMLIwf!#}+`n>TozL z0#D)t0n9rDVvq)2d^r=cAa{CBPVqGy0h`Ad9wcAG72$C01S%6-$7Is3vzWcZ^h#VF z?i#D^TxmuQmU^9rqvMM5lHf@HcMxEmL;5RL$VkJo3i7VqXW{Ay%x{O!4O2=RnSJy^ z8lBM2>bzc9NiQoZq-Ifv`>6ld1G|h_NGUC&lwp(VC-E`wh>zAY{LPFPa|u&-wJxWB zxUiPRq|<0E{dJ{fg~QCgAp)VWvwyIYRe)pm4q?lN3Q6}nv#1g#L4NB#C&QfDoplu}z( z1`1^7VE*($drK@9@II z#3Lgk@$vD{(9x=^tCN$HtgNlk($f+W68HD_-QC{y_V(M{-QVBf`}_Oka^^756Im($eNyuH2o`TB{8iqX;3>gwv*+1i(wny0C(^Yin{ z%gxTu(4wQHQBhID!^G_E?Z3aj&d<`^+})6pmz$lSs;sZW#Kzs;-_p|5jgOSSz`}WY zdbzs1-rwQ0wYTW#>9Ml3_xJbt`ue7)sT>_0$H&PwHa3xyl|n*7OiWB&U0rc;a>T~U z=jiFCsI0)k# zL7q)zPX35+DRxA5{GEteU0+;0i=VSA<-)?#azKQ!ajeMl?!?&L;o!Pb>-62>oX_5e zSnrvt)NQ?v(;Sn6000vkNklou7|fl(;pT|883j{SWt&ZfqF!(E zwOTSV|DA~tizV+&{D|v<&FwcBMWIp1W)&kvnyWSy)oLTIN~PHv`^KgHE_{hZ`o1Zp zQVE5C$h?h%#&a_2@qDw{>GwySPQ8&%HTV{zP@kw`*(MpW|eQHTa9eCP*9{emgDy4zk>j<1!SX9uQ!|R^TD9g z>GLcJw(0Y2hk|SI@u1Kc-Cy5d5BvRor{2rPxhhj_4tmWI!?w5_d-5F&BuWk3egJp+ zmi&$#hht}FZEbC5$4?a2m_fg;8V#@SK>#7>^m-jtYt+8$4f@$$y+I|JKC^#w0F+9t zUM;{oeSlwEr#7>Gcz&?H0~$O2wN!RIt`BZ*z~K7krhU^NWd}W#aIal&#nZ`LvckrX z)Za!xsy3(%CZyWD?TUT&FR(Y`u_gG`N2Ux$rrNqPXDfbGaTNu+wD$I zr5NBZA~0;WDr_#1V;cqkx3y-C$z-z6+wFE=Q?vc18mbJyu~2F+f*sQ`hSHVE9r6E%+GTB&$5_)P)O8thJ|#~JkPTrR+FGo@0o zSSodIuQJ70w+l`Q{CU;Q@r8m48CTU6)k3e=xVye40_~eR&$01%s@m(lG=2jCrP}WF zxLixV&2?bjUUiGHScdFsV%@7QqL9g7b!)jadXcJ${>QY^OkWV>O?x-?y6;=KB7o{ahsfLIO&)!C=sv=Yu}S+WKj+Sk4#AwOXx`tmTmS zA~cXsA_SEjmn>ysIi`_Bv6Ubbj`Cmc^?Qt}0VP6;*XU3EQJl?ohSz_HXF1kogj$>;OK`vj0 zBr7#ECVCBSkd-8tu6EjmY87iE6~oh~zf4WZKScnB+NZ(KqF;JbE}cT_#SFm|y9-w_ zEIYR`)H_5mVL)Msl`5@9JYA_lBl$!rgFGQ52nsS%%GYxF65km&s!X#(i}h0wn4WsP z4g>-iz5p*Z2G>yJBsJ))7`t7#x?Skf?NtVd&{>S|g{A2#!xiFHG$VA1Jo;1y#fp7F zEnlW0P3AJm?5G!SB?}#>@%sKRA|MlgN`UZRB(@msOS?I)QbDQFnisngT+bldhz2B9 zdI-UUK#Ak|7MnmJlo16GD3vgNpjUA?bWw9$y2Yn+W%Q(4nQ9XEatRQjx&)P6Eg5Gz zb*?(@4~O@kA@H!*k(wRnr->SyZlx=^#AMCw3PoQ`pb?@ACUdnC=?o7e$y}?|;(0EY zK;8jPmB3*DDkB}aTn<5~WOAwA-Kfel&71qDpCdr4gjl3oI?q5mX~dOQ+Ab}-sPA$@ zFa(xk*<>wGJt&6G#I>r`YARhp3h+>gRL><*kR1Jn7D|a)Ce|3;4bt&=9RWZenE6x+ zAOJ)_zjI10KaEwc1}P(?)M)Z3s9YkSsIVCEITlM2^}b@6ZB^riLKRbI4Ub@jOjT1Y zwt_{9UPaRaVo_|>@A?f@^XBseX!jwJXnpIHJKs;L+ZZ$RMJna>hX2G;;QK@n7lG?Mai z6wU;-*b2HGo<*7=`FxTi1*BPQ#8g?#LQR!Qg_)?SYNU7yOO8W<*6=Zy7wi3NNZ^l8 z5ugpAQmXf-;U0Y~r7}Uvg4eX!M=&e&3-Fa19;j8Y{m-RSg7FQE#PueIp?YsTy2Ivd zTyGXy$x0;+A}kniTqE0t29bfs35ewqiBhMVUrXnbR9ARgB{y-umP{k0@HmMmlLS#& z#D&czc^U!XFUG)eXWUfO#~qBpm;>9`9Az62LZeVc0P#OgV zP6k>STx+BmUQoc(U!Htig_9XT0{pOd;|Lm~*3u|6d)VuB2H7~k8F&ME)w7CtiiH3K zWuY9x(6I8k_1tow2Km;D?z+$P@w&D%E-mhQ} zNB(99cQ-?ll8SsMw{WAv5e%PBw@CN+Y>;5nI25W6#yxN=P^{?BtSU}Ep!QX9K|NfW z84rQ~`}0W#-ot(u0IAiu5)QmxNB&#XPqKsl@EW7kpiYNPDg_!$Jl<$D;^ZCB*-E<6 zsJ3_{Y5)mR^y>tzs*gv59wmYjh&>t@w;F^$NdN^v{E_=aK=VKVLPHf)SHY(G0+#z*PAv@;Ykw2e1yEI>5m( zyrc4@*pM-W$-yL5PNCI`qk0*JK^df)<2ww4Pv7DHV<3EwfW~IjgTTh?i~aqR6QTd$ zL;)Y7VsQR*HyRJJ)dm_Kv7ksGH)u1c06s;+5CnqJ6H61gr*UA(!}V;IsrPAfh*@xg zk1i;GOaVd!^j>>td((gP^6cc~1UcYSaRe8K4)wvPjsgTBc*zJ^r?MbCw5XI21&Ri` zRjNu=0vQX^!%4vyTXZDg_dlMzO~8j0D0xVM&So>3?SYMr*T217UEL#VzSu*9dGTTo zfvvw#6&gYnFx2G~45|X%fqE> zAR=H<;uzAnvJws-Z@gUn8TJCmOdR+xUMTin^m;E;4S@kehR6tIQ6K`CNstN9QK1l< z)Cd*L`lv(bbUtzY=fr)X0>mHppve)i++vYhG)AM%wi3A52ZKFTb5FtS{k&IT_85i& z60e>hD^MDv*xOU>p*N8JA%m&{psE)=l17$ksu--1)Euxv;dtWDKb}8%{uW>UaTAnG z7yusUp=z~GY14=NM@KIy4=*SZCuc9K{Mp&+YWf7?;H#^9tE*=xXR8e%Q4D24L17YJ z{PQZm$|%r}#-lOe|M{Okp2I$Y|2_elhb$J0a2l-D+k;T!#l>&Gz1+WeeQ|Mi_VVcH zZ2!&4+5RDp2KVWd^6(IM&d#cQVfC%OoY>LJ-}cY&*5CfKaeRFIfIl-c{rDIl{u}=- z10Bvq%=YD|Z+klw+T2EET=@M6%G$vpZq|2qch7fsyZG7NT?46;mq$3WT{}8D^5fw4 z;^M;pdgJ2t#>PhAI3U13pTIx1A9{~~zyRryBBLaOG^&I+PZW&9LwkD0FFe?FSnkN{Y19tbUH(!kPm?i zZ5(fI1)jTM1pk@c*n1%W0Z>2)a6qM|Ga`Y(d@!`RRQCY#zJaR;$$_m5V=dF!Uh>rNBT40$rB?1zeG^+r9n; zN66`1{OKnkd0;L=b`Twe{h4cm4*ccid6RR?Zno2Z?@Ay5e5J7C{xtmGI+VPP0mPtt zxH9sS%j3eQg&e;5xw%EcaXnjJ27_qSF@TfNSFe_$NWX9Sm1oWqjSBd4b91;@ zYPW~%X1&qw)T`B6t<~yU1_7yXsq2#jJ}L#N$ouMY+d4^u))sa|yhhinke)8b&LPRc z?d?rp)CILIN1gM|tu4esKqtu>eNj8EAsGR$HTsqU;Ryk;_>*UY;t$dQlesqo(^ga@ zRw$h{9F453ggj=wfvyMx$Q;@Z+3mp~s02}|L7#J;&<)R?K`}zkR9^(KZ$YfJfQ%IfFXwwjZXkZ0vwSj5^o|^Q&OD7Ic5%W2_X%-=HnN4)2>hU1% zs9pmIKqEn;d3$$x$t#!quLR!BB@Yyc02T(h_i|gTvAX>Wue>%mZ&IsGi;Ey&cAE8c zbsP=Cte>izGH6+0;TP48f?wOBW73b`UUV=|+v}(b-UdUb9}k;@x!1WYRCe ze?JkTm1kkG%woYtY1uIqzKjIIVaHFivj&Y5Vl(NmSb@OetU>FI-d-+a0k^?-gBn>k znbf3R`{icXYc}aDQ`7=KE5U!_Pe_mgbYk|sTS{ZymFx$y>59pBoloRK2Z=&7|3P#H|_9Q zFekgGWK&j~)g5+Qu}tYe!WxZOSDrcHu})*1c27TF@=CR)S%ZGdi5{kRS|u8-(He;Q zj7s~fklY=jG5kv}QM^q9HmZQNSuC>Yjlgu+Y@2ci+#)%OQe&|O0#o7WwhZ?*mZ|Nf z&D#K7Sy0=&D@dD6B$J7iAnvwVEh{0fRqkF6e{l%j3x(Wb(`%)2QTX;CytHhzE}cIQ ztjLAFfEt-bV3fF=Vvz+fa!ku`Wm#zfYdp0wHD$Ewv{s8v3ko)y%)JfjlCS;xfLJ8a zX*CkDd?s-0_6F_7@bS#{v0SRb$Y!A`-3VE=2DMTq$Cx3L3H=Llmx%&Vw>#<;TckS3 zLSxY=Wt2~mNc^<~z<|!|WU^_$W5sANPKjo=HsoTstwB}ErlVUnt8;6GoR-PneYZj6 ze)Y;dv*E^Gn`EJZ{^|T%F8Wr(+o%2hX^X}plg~IdWMavrugj*wUYj-KaN`9JUt$o` zHyT9Gw_aoNhYX-ZwNCmVE75nDY>GBha6~rcCOJ>Oz(I~%r>yQNx%eL@o5uMMa)O5? qScLyOU*M5^l>^`9?GO8ZX8!|%FIY5_jPE1>0000%>SjJ1EB z+Gdlzma^byk-ZEK5&{eq_xSj3imrH^$pZ%pR)(t#7av!Lv8=n;nziZN-r#ti&Wxqd z4-pfLs^(>jwOxm_j;z{so6d%&&H@7ir?}tV;Nr;2(2}+2&CbxDwC|d->5Z+}%FWY> zr`CC!$UjC?S9OxTz{X62t&6JTQiiLGujGrV+iaD>nz!j=m%fdz<4|{)th@MTb&8+3 z>|%$kkg(h{Pj$`E)xW{TrMvC9yTGxty12W-hN9w>rt{X=+)s(IX_UZMiLJZ6!GoB% zv&iv+p2Z#>AAF(8I(MMY(br^`zp1LN+v53jeT$;O>5Q`7WuC&c#rMC;`;Vi+fQXjT z)6-U)!RYS#bDzvsgvPhIyvNAO%-H+v?Co)ryOy%$jhCmrzr(GswY9doTVQEvc#Bbq zt!b*xn6K>E+1g=vi-?!5#LV2P!P{zYdVr0jZN27(pV2TdFjHD-zQDtgm!Pk*x|W}< z+}`46Y<94?$zNn|leyo-&-Xz}U7M%5PIsO}dY#VO_S56_Mn_6LJw4ss-lDO_o1LJr zv$>I>yyfZhzRvAwsnSA1Lr_&;S6yh>+1rAMl3t<9dxe)yQd+UHvznf!*4NpGiHzgq z<;Td$i;R!7xWCcT)KF7cYi@J9zsA|x+*VgxZgF?P!NZS{lB1}y&d+6%1mo_*&pQNmVg@|HjaK_5ecYA_$czpBo^pu#O?(guhv9p($ znU9s9zr)IWeu3xc=v!ZAR$FC!e};2)cz}U|jFFp{oTtOa&CSu+nxCvMGdbGa;F_DA zcYTUHK18^518{=bDo zdRta@n^Tl~m!Pp^yim-6)B{P3+H-|Rh@D)Fk+kC7>eO7jE_t@r@9XB}=E~FP)z`}R zqzTpT%CZ}whfkc2D}k^q4~7)jV+$&yif-}5}+sM^-vzP^9; z1V}!CHSH4^3@kAJ49)a&P{gYQX7OatLB@=qF zQY==jmU8rO$2h(ZvmQd=!1d!Xs~>wr}6DBS%mQ$9gp)f>9%56%_yhx=2GN zXnF@4b!}u5n@c9ENF)hW_+K+{81LZ`G$RP{e&(XZ;P|mstM;$jw{O+kr}usS`RB)u zeZEh{ZEPgiWilCy#?t9TGP>PpBKN{09bLy2N`(TxKp>GG3;Hj>;Wi;?IwT$Z|6tLP zm{($s?b}b{2qXhoPOV_mrcL|5e4EeY4@kM>#x@OIr;~}$2=uB6H9DD2$JWWLLIH`d z;FDC+Bjf)pJlbr=&seZv!LnrwW-gBTvbMJTZFnyM71|xK7H`?lZ>p`W)l(G$flzHE zn+$eMqrH(}C6kTn8WFIei)1pXg394Y1}swRvOnj%qXTk-04!LxVZ(-Hi$4GI_T#2zG`SSYu^73-{QBR~2%kji|ycUb?HIli#T&z|KiLYT50s%+^SILn;HEPL(O;i7b z^NxUy*!Z9Yi#BXHvT*TRo8E3BHZ{rdL?V%iXX2acYs;I;%aITOEk2dVCk?*U&yGo~+F{MNn%J-{+a zR6d^AR8A!Fsd~JCBT+y#D205co}|UsBKaYf*DDDI1D9)}i*#0#sF$lNWEB<`vP4n| zM@B0vJTnF3@CO7?{Bh$P#s?vWRKTLQK3_%EE2#Jc2B?{j#|s1kc{x#!hf?4O2P_i2 zTtA=|GJB{Jpr^M$HE0^!bTTfPpcWMruylnq8ck;vU|9vScV56e`v=l@93|j1J_r^o zqyQFv7qcos!SCdBRW~pg6pBP3Aqkk^EfcM8s(^&=>0u5?2Luu!vx!I~S+rI=ncQaR zg=%OkC;o zS+uR=6H(8^;}y&vyrQeR zy1J`N!K6y4c&Y;GM9vrRNy5(RVu3`-rK2K{>0|^`A;DN!@$oa0=KrSu2)xss(eJTj zam?w{ik`0Ot{%NyF2G9o91@cV&Mneb92z94p|eW?;eamD zBUg0E@dHub>9?6(U3h&DzWjE% zkOTNohx#5SltOuZc@q>KwMXBT(8*}1R`f6#oCZsYO5D(yASV*bfgq9CBN$LOLOUP} zxdff8u&Au4qUgCPlN=rye!zEjb{;pj@{A8!xPSku{XKeomtKzNE1GVX3!nwoH|gPR znZ$Z%fAvjrrk>c7&`Ig2gT)Klfj~IWz@RjML?APGkOS<45{^ZqlWMiSIvJ~=04TgT zWy-UUlpl)kJc{lSH1l)b6$M^TWWpOM*0%tFCH8+ z+q47FjRX?V2#L|aC@yAH^Q$}ge5erpfX1%UVtX~RLRLXpf7y#qPkFcwkj9S?a6#So zn7U-~K5?pNvd^$-qf3?&}+_1izVz>S|H~ z9$(EU;gwK28%lUerIOJ@vf2sK0TNcDV?jAq0D-3`J&FLTe-wY}l0`>e;dJoC=M?+| zaGQvXn|jb26~-`?1X6(L!Xz5SFHhjr*=*g#ot@w~BSE21B=98^3ZsEi!e|g{l@h*1 z%7wL%qi$mr>U8}mfoC5~zk?Ine9)bD>dZG*?Wc-u-Qr>fLs1Uc^+^9$Km!zVghHrr zp@1qU0)u+!hE$2Tvb(O`CWhowiaQgif(C|CtSs(gGJDPypX;OuB~*b5tKo9AcDk$( ziNG^YKUjzkWA%^Xd(4bEEf6Ys-8P#_$)U=jwZRbJBP)Oe2q;x5tp%QE%0cAJ>IO=s zt-XD)y^_KqCGe?ypdm&Q04gYEToH@K)eMQ8Y9ZIywMwj2S5Q{*uZIYXwLc{OKwv`9 z!qfO_A)|Y^z0N}ERP;c<>EeT+iYdhmiA1QCf@zf;0UnR%0Iyp*}R)v+Sv`Pj^fatBnHq>XX8R~#%gdB-b**(-Z)LzNsRd!bb zI&z~lBq)T|8n&v}2#uhk;^U_tCNMgEknnqW%viWjELJjd82 z5L9y*O5}nIp-|k=#jGyr7#tcJYL}`&2gAcdBWyZ*#6TV%9_)~oh#?J1UP&?ZX^E=W zsy4}FMHT(8KmYu%2sqp+0A%-o0$j9D1=UkhiI|wtz=3E$J|VG{JP;)aT`4XpK`20) z8~D|f%8oi)dtGJ6&`4=ZX=zJKRaJ9oGp&Fns%agp6jO?M-MlN}E1d~Q2I#D^oBw+8 zK>~p9INJYRkpLX+?FIl)U5fDgboP$06rk`j1GQSm5Bp0c>4ZpdIV7)%6n zRZCGp6}^R40BOGU^UpuuEMtiXQj4;Cc*xdGVRVutS}vl&ub=xh0f)O0m@r}Dw4fO? zH(`ZJY+ZZ1tquZVu_$5bqo{1{wn}AjvA7#j3mO+IDHJi}SShyk(Mwxk*0#`!`YZZr zRjhs#9lmc>6tURkI*80j-*7iiWwBsQI{2g4pGP#{@T(DcCjem~GnOpcWFbkA%CdFv zv}&lYy1F{s@X&C(x{`-LLakGjz@ZrGt(d~I4Y6CGzxRXJU^n3o9^C9NDuPQiR&#Te zd4%3KJXk5U*(%jsO<`F-WZHmX)ri^L zN-z=H2ML5hb!BA6E+>tqlLc_xXT1yojth9Lq6gt?g5{o-{ zN~~Q+D}x$%>iPQ!pfhN+23=gkeLd$~KKdCfG99+MIc)8hRkMznQh<_N{fnU&4q={&81arGYG@b+BXF1ZBn%N>Kt>#h@+_Bpr9qmx@ zppi;m2aF39wzU)$U{N!j&1Sc?8lVzbrERVDMlV6t);X8VFMBbVSpG)>3xG89fO2M5Fqq`r=Eih{Aw8AnL{oUr;SG7CzVBu zt%Hr;EP`zwzDnEdCW5KeY(`kntH3FGb2GgU%d-vljf}KbLHlWLZh`Jo+T79t3&+iy z6%`fzWo2a`pwc!o0Sc+TrbhigbJb7SURxa&v_LS~4K;KPp%Iq3il1-M z3gHf^^NKR4xF%#tZ>6o7>vhZK9S^a~+nXo%it=9 z2Dt@B(C!;GjV1z@Y_c~tHkvhdgNDE**c-WOD2UcpTL%HMX0kUUi)c~VzrcS4|G{m@ zajXxx00FSyUxDY7B z!*gaQfAj5`m)?2j`0?{}NUzyc^KMHOySacyYi74Xd$HSV+MwKOG+m$gwbj?an;&(s2g@wl?d5|i(VhafBxZxcyt|i8t38y2a#^me0|ry@Xv3~ zy!_6OKmK_9T~S+W-}&RmkH5=?w%Xjx1~0)~0|Lo~gJ89~*9r&I@NKARB@ZM9lie8w0{2~&56#s#J7}bEYvy<~UXOsbQ90?8i-(S4^&O7JNi@;I( zyXVip^wRm7zLE2E=qYNovE8OtSzrSsNl35(Nr8mbXb@G20Gvkqk=DXCkd1>wbl44= zt4f;-SwDXK%?sfEsQ;6medu~*ECnb5hyijS>hr7@(p z-+y1%VMEtEadEW*R#G`Wp#jEG9eJ?b0C?}d3$X&;!&+Wl1K>b0wPuKIN6&Yfp>e)<|>H?GUiz4qzOvu7_{SiKs4yL$D(FTPlJ z=~C3&^?8?o`^vQ0v;C9D2q5r}x*)r!!Usd(?&EWLPiT5*QeaNbjsx|RZ$!m^@kM-8 z)LKB=IdAKht6Oed|LCJFSAoy!)lu>D;^X79Bft(NZkfD0F)1@S`9mNuHw__xz$5Pe z2L5OaoRRB7u=^N9r_NlGo_T0iTx{T)$(y$(MyxxS7{4|?e(l<*d3js6uDQPZ`j)(H zQS+jr;sfVJ1?I$N9GW#NV(XW;Z(PcZ^q%cMd(IsHc_MwVSU-Wvn}x9ltF;ac$JvsNAhr*L+mFCU@RR1U@i!-nQ((h>W;H zvGe{jdGeMt|4eUOFz(uH-1~RopZ%SqvC)Bee-iF82+mp&njW`pOYP>o!2ESYF)bz*G9tn44wW$)P&5x9Nx?b`?DeVCjT>G#3mYstaBzP{n% zVSDHQ?z!05(G1!S@6;li1)u2j;H<33=(v+tzucXBC^aKvR`$UY8zW*969aSC?B1N0 zxGr$r!JUb-E=6RootKxJyW_z1$-8&N<|ilbN%e{L2}lbL0eDvzXU9J}8N8bWR0b%6 zkZIH0qtl~tSu4CwWn{m1`@M`)adC$-R-VbqfK2DC*}Xdt&?6$Ewgv{y%iFQ$y#ogh zytifE?i))(Lvbm=(LPIj4$n<@gHM!PT%4VLp8)1wH@YLli6{ddKAz`G*e0?zp~tOLlD3x`;!8+jHivS(BFwLRgx8an0_nk->3(e$fy2s=%D^qa+ubKJ5(m|o{n6&7!E;}YOxn0HDK#!GXUC4~f%zE`5!th5 z&B{pJdMP7wMMkJs{+jw52XRT4e0-war~3E+`e*?DC9=5No*`zUb5o>LiHXQjqvtX(@dGBPU>hl9UL%=Fr`&1b5Q zUx1$v5`Pr`F$g%^*OKqVz;&X3nxA`cq<3aoaOjTRIr-kWq?1{Z{%L7Tw=WIcynW*j z!KvA&(o^@WJD8TVZe3Dx^3pHYBzgIz&T{v2_y5q}&-E_8<71=%b593j<>=~)TkaPU zjKeKond!B3^OxH}UWd|ylh2$8j7^Q*{$A8q!Cs-EUPi$=)ejfo=@)q5z|!T* z0|GXtgoit$=m@@}Bj&LU-4O2!g0tIP|8N&KXa5g9mmY}4?b>xJA~iN5GA`6BICT5= zjHHb#BI7Tnx(E1#c+d6q#D(VU$j@5o?YVw^nDZTb`~YCauGAdvC;@E>p6=nEE@2;@ z2#DN~Gxy}Sh6u*F#+j4Spu5P;)9=_tE#PsO!fR!hH*z(n`%#0O#wx@)9`r|V5V&|?; z+vST1^YruG>p1p*CYZlw@cNXj^%%_ju<(sv`N!vOiJ!ebEcvyKUhbZAw{1)F-*qu< z#k!=F_3PI!_YRHo-ZeXAc^JkyEX-v-=Ksv*qpPID{FHz>QF{)hE}tEqye%!j50`dw zSIV^?F0M?2;U5riEi2=cpXZ8{XQ%viuYc2?@ecJ0-I%t1_E*bsUfwH~2ZXP`_@A^i ze@`!OZ(M3Rgnh~+%oDY}J|O|~vex_h&kgnp_Qr){!eI4VIS1n&9PH&D=7@RH=HTic z7VeD;3&&;RJbgTU_hR6{@!GE0m@s$ukiAbV@b?jLo3Cc7We*wN4Z=YimY9jyu002ov JPDHLkV1iZ}Obh@3 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_5.png b/app/src/main/res/drawable-nodpi/weather_vclouds_5.png new file mode 100644 index 0000000000000000000000000000000000000000..f6608f0d36c961723b46789d5ac6d09f25cd3892 GIT binary patch literal 7162 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%0DP>QD#_Z;&d&0@Qn{#F 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_8.png b/app/src/main/res/drawable-nodpi/weather_vclouds_8.png new file mode 100644 index 0000000000000000000000000000000000000000..3af9bab220ad4b6b33e77be581cd69517296b7fa GIT binary patch literal 6454 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

p0 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�Xei_~ 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_47.png b/app/src/main/res/drawable-nodpi/weather_sthul_47.png new file mode 100644 index 0000000000000000000000000000000000000000..e662fecb127daeb0f416037a815a385b8c9bf268 GIT binary patch literal 4291 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_5.png b/app/src/main/res/drawable-nodpi/weather_sthul_5.png new file mode 100644 index 0000000000000000000000000000000000000000..7dbec8c62739a861e0626495c22d802d9ccb6440 GIT binary patch literal 5632 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 ubkrIUU=j<3#_}$DNPAxTzY7CUr*G`2PTMp;s6H literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_6.png b/app/src/main/res/drawable-nodpi/weather_sthul_6.png new file mode 100644 index 0000000000000000000000000000000000000000..ee0961d59c5afaa8dad20c1a44d82a887319a7e4 GIT binary patch literal 5347 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 JYD3SY{{d0kv(o?o literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_7.png b/app/src/main/res/drawable-nodpi/weather_sthul_7.png new file mode 100644 index 0000000000000000000000000000000000000000..e313b7ef22b7baea3249755d84234e2681bdc7a6 GIT binary patch literal 5675 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_8.png b/app/src/main/res/drawable-nodpi/weather_sthul_8.png new file mode 100644 index 0000000000000000000000000000000000000000..56b2e45e410ba0e7fb418893cef155b1e2a6d718 GIT binary patch literal 5089 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_9.png b/app/src/main/res/drawable-nodpi/weather_sthul_9.png new file mode 100644 index 0000000000000000000000000000000000000000..2853ac1bc3430955656718c7a2c2be88f413d26d GIT binary patch literal 4718 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_0.png b/app/src/main/res/drawable-nodpi/weather_tapas_0.png new file mode 100644 index 0000000000000000000000000000000000000000..29785012a2535d58ba31a70827d26312c2518321 GIT binary patch literal 8587 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_10.png b/app/src/main/res/drawable-nodpi/weather_tapas_10.png new file mode 100644 index 0000000000000000000000000000000000000000..707d6435e7824a50328ed299c0213a583daed9a0 GIT binary patch literal 6548 zcmZ{JcTCfd6ZWSI$|#hL1)(4!f-FHnW=ol}3IZat3=vd@$dc6-ktO&=HnIvXWFv^+ zUNgt`Ldzls_&tw*_3P9oK)_Fx5 zqbBn%4e(!|dMJei`(Nbwe}e-Hu1U-hN=!2UblX^UME@K4(O-F^41!MS3J2=8fHa0i{*iJxCR-dMxxZJEq!@OpBEU zs{jZlhAh*{PvfLWT{1fG=TETkmIYX!&9q#h+|kQRuxdk~>ES+B0cYwHg$2F={Z4(% zWx4;X2$HFsl#66%RWe(vHa_|y8`Xd;1H?$=C5!{?e9Y=AVlYhVHfa#j33;O1S}Bf^+(JWJ9SMSgMv{&62$lz888RPiWH5;5pNi_ zuvh`->*v?3Xa=d_Dd5H$e`!}c?5<&+3`vBpesGqnhj-n&LyCR6OJ_kxG3o2?O(dQX zU(zkWgH%ZX+y78ZcikuoJr>tgWp~;Xt%aJzNU>u|Tsxx8qjASGsmh{U1)L9Lz$IAz z)}(0TX!9tOqbm;`lKO>j-pELL9*2pMA>|Si8F9z`GdZO~!RkL7(BA)=V+bz zA~M>eRyab|Wu)Y2m-U_k>`W4)?Y^theNkiTahfVSh1zm`JG*&dU6kjSRR%#EhS^{E z=47~`jba;VS72{FSmxvz% zDw|lKS0a@uEKlO?=yJDnz$xz?zZ3yAcLKqdA7y=LC&zzn@G%w^C(ap9 zT(MOAkK4+$WU5Y>wDL-Pq3D-fp#u-I&$c&)$}66A=#T)9a;6J^)M{BjN>;i_=c zc({{!*R}~AmD$G{IuyUvBFNEN9{H&xuHODC;9{i!_aIi=JgM*jf044k50e^|6?gHr zb_)g(PBx(*M9*}Uz3YEgsdBH1>tY>cTLnzJRk8WxutUPpa+WonBnr_v1sD=f`qj!7 z1#h-^a!?2D1+wQh)gpY39V;Mzgn*aKzzw(gyKGsvKy20?w$4toJV$m-lqOheJaKhj zdqXRq+4-+4vlsgdY)#V%xyqOwolcJj1Ci`ZK|!i)O|ICN^*;KuDOn-ar$Auh(9I+> zC#jmZq#gnM<#D^5x!T`FlC4fy%%q2_^P{Oa;yc)UEA&OizeyIeh@wCTg{e-;Y6tOe zt~0a|&8fsP7+hK@6Dp@r8#q_g%+;Ou@MRPDiZObT8P}c${7=?hDaHv zKF7Yifrd_!0+$&9TJuR)l+m+Hx=cEJig89yw}t70)R}#Ff(Ph&$5NJQ$PT^KPbPqo z2p$wG&m=ghK_7*|=7@#=YTXO|QdH_cmYGb@XY66W={7;_lqu)QHzL*!OWA|CN@sOr zcNFKR`oX9*d{iVsA4UM|JswnQGA);dsdU;YaZ8XgpmjgyBP@tll%p_LxD*J*NNg50 zT>}DeH~|uuOewIU$}!6xDXyWW8j#JRPN9G?r^q`R0ApK*9lAnt^1@nLk%Jn+tpNBg zX159b3*3bVP?!KN+9fHLdiHtem{DiI3ut?W=4TYhQ{I3=VI)wj5IO#Pj1)|?06)S) z(B#mAbt~Zb;iEu>kb5bR362;pyW|b@ty6knbjA=d`VPp3?a^Pd`fW(JDt7;Uo305d zM1n-ICERj;&!HDU;i1g6TqWsVI&o%th87EUg{(hV*G&S##ciUpGc_g7fMOh>SG{Rx z905l*G`m({_R>yj9cFdk{|_bzw9O8jnMY$v@8Z3H_V{r;$U!`as!t9ic8x+~xZ0F} z?sC8k@B*_|ve_3&a*RSw?0<&RLiKz_8q{Erk>jV@9Ds%ECBqm&hQdrjaDyRGS<1!OzKMY7U=UQoG8;0_k?W1x8__Gl|#g*&; zlz<|M%n~qR;reCK+c3C1%Q}+87SIaakMF&&Dn~xYPJK!00T<=~zf4tlIVj967!tqXEJT1t~S6-w=g3!l2Tai|X)}?H>3U z5coaC&>!^4r_@bwem+JF>ud7F3!B5;u1AVKIqeB*o=R1q_6>vd`C2(KExZl(tg#MR z?m8#TE_aa+D;D73l`Rr`-QgpzuZy&m=R6n>5UUVq*UkCL&pL^pEfSFaA2;CvJm`wq z@k#j^T`#ER#Ea*}N}YbD=ejq8wz51`dR~=P)f4?SRE}lx*{|r8^{!52taTPKK6rZ7 zo<8xKyJRA@M1`bF_xbp(K|>WI4(;=5WFyFYdwtfF=MQ${os%P^l{@L0SQ^^|>!n;$ z4^VNL@3c6-i{YR;&(fT@?kSH@41sS6JA}2G?hCs9Nja26jnUyZ))@;C?6OEU&Yo3Ph zvLCan{Y1a=j({XcwcE)|%&P&^JS+As#cGmnOnB{ot6%Pa* z!5jsqgM5nI!Nr$~LlkV{XaDYA-sqxD{b~3V7d@ek4ZiwF?Jdh{?9EvXn1j(^5|wiL z-_bJ4Ob)qIj>e=uB=>Td@McKbFj+@#9M1{1il#mU!CiUBgxsRLUs{oT0BRqj&O}dL z1T*bMsU=rj0WJr4v+6FmcBHHeq^HyYZBZ6ExIv6zR_tF_7h z*RUDmmS~&?`Wl()S6k641#Do7#j^<`Mv)ZY9A|84Yq}hI&SzbxuehkTy&aRF*3`g% zYhP_fSqspIIjH)vJawsVYvo?_5r79MWRQtL$vr(R*h8NL;I$ZDIQp9CXC;Zr#>DN8U#DM&u2d7u;Q%{Nu z88T!48r^`JpM$S>aFZCHpNrDJtQS2Z_P|kcBg05&>m zsxCLP0GtHPWWgq++Rh7skM8y>qOkHHDy1C8+M3xoIKL*cd;M@>#`P4| z!8CQj;7(bR%t24Vi~2t@kgUU#Z}yFD8UF1n{`^8|&-%RU{7|dVFD8^O(#CxUp#kgF z)m_^wKPw%r+9;#`adM^aV7a7i_@L8aqP}t|>lx!q$hwe7#ERI)%l40vwOYRW*&|GV zjsg3ze1Avzv=cvIV?z-52x*f8N@EE60#qRq#=m8^#A(%E=)@Y zgfmr%H)XBc{N8g~I}FNxd|!+(6q+tCd9z6Seh97%qpdA-%LK4$PyT*+-?>3PPuKkG zNB&@;Hl1{e3VHd!xg>mL@5lxoGS=++9XIsMZ=m_4n%`vEQu!h+eh=mZtgOZF>}4H# z+>H&lzc1EDF&eopH| ztp5n_j}OlG?NBA$a_Os0jPsqI++u0X0 z+XnI*qjU7 zkZ1cr3+6ZYC_9+rCjUJrx01D0D6dqmC*vLwMq7Ka%^Cqso4nguNy>`ZH(d~SQJ=uc zYt)}^Zg|&B=!_x~eN9I^qQQF3*Bu@x1k0~tTpCKO_nOVCfK*Nw6H7ZeGeb`a?D=%+Z3o z5&hF&k;K*vi(c?Cn`4mU3m15o#uhy#`$Q`7HxLO+S8=~0> z+3BTT4BxoALZ%F(xqQcKPjzH!IX<_ryShrIqK!5%Z#7@Tg=fhYaR!*F!9tBn=V!pp z)c02eL7UVUJyNy7e9`6n6?_urW6J}BrGEz`fqUl@ zrnsERURi?sL(+RU9z1mbsV$!^+nVD8_iSA1N6v~G=f!nD)|YW}TXjR}F+)1Ekrxnm zc2p3>;_g3v;CDlemdSzNAgeVglCzT2E6%7AVNC?+NaY@SEAZD_)lWVIR0%}^9Gh`r z2vU$DR;uV$s}AxW4DnZUL&f|h2P$e)uPtAQdoEEGhAQ!4%RKMf`7ej4vjecrsk|1+ z%1rsqT^nxw9NU9AGAHD-1_IkRCYOjWU@bXNZ8zL@hf$tMSjVe=s#L1|JxfjvKIyCQ z)|>I!9QPqn%-9|(tc|xM?8qTD8Z2n8M%!?VUCGNv; zMqK0A3yH~7&m>|mA)Dcp-m=o>o3FsaF`^r*w5FQqD<`JOKcB=krfE^_eG;J89y}gE zb`_Au;|)kO4&KqjtOh$sOYoW8%f)PMnzMhn()t`0B{AkW{G`I2?y=>5)W?T_JAMO= zaGN8qd}aOq;`|HN(Q~{~H~F3rpGTl4`JEN_>~Qm4sq~%6)zO;}#~)^t6n+|iL0-67x@{ZX6K!?v*^W~-_d3{ zY=hZf=R4_6;go`2K+hOAq6jt?GgjlCm#(>0m3K-F5pIf4*KUAtMfrXot$w zj0FpQzg@t^JyHQ=%VMgy13$erJ!i=h%znE~KxH=bdwq{$6k0xm`0!@J<9;ND6gzdb zZp=@B;el#DjliCaWlJTNPk~U-$L(IU5Ae0CH_oDTe?M zjn1hICak%dY|9KGqj=FB9m& z+&&3)7dw5LMcn7pu@*iFLoP_8FY8o65MKo4{Ux5m-EK(Y;NM-YA>>>v;jlP)Fh2bk z>ZU1Z@GXw7H~{(LX&8mlkNl#V$3`fMYutGuVcgN-s~EVEh^)6ee~3e`I&8 z2b9Ozf9<(_Sw5;=p!76;DYUEa0m1@T@d{PKwB{+rIAc!_S*Ga1`8JD_5r4^Amoh*w zBu8oNVZpTlqys4OgNU9jrfLcll@f+c^twrG*T%bB2>1!Ig{MN;rNRzu&d<1bUe@ro zd%Jomt3{n5|Ix6$HR)v|C^_nU=@|r>9bIt2#Zt0xyZ)9?>DAJUiSwu!j^`srV&G*vWy%5AxQXp(lC6_`M3YNA>_ zeG)!CCz`FB4S^pMhW?nE;5f(JoFH_Tfo?t%YUuMHMJ*7$SVZ(+iqra>l<-P)^cRlHEIJdiN;KFR6P&QP|J><(SNt5g>S@;L2+I~t0;+xZ1HI&N#dZv@ zzmgS7GA6-uJBj3Psmh>)>m4;8Y68GA`lj5UTd_ASYhWk{6B zAX&>&vhQLnnYZ`+Km0$v_ndp5d!F+=-|jj0oaZ6l>=FVl1P1^BVQhpo2LKT9zYT-@ zW1b5dCjJ9;JkG-Kk{|Bh`riV9`Q_BXFLsbFX=|HXEab%xA3lH+#z3KMlT%YvDs_2z z*|UC@!C-)2G9fARpScoB{<%>8=4RIbHXaeh3A5Gu$mf1VH+uhOa0I!HKR?i|R zd*xu`sV_vo8<%6qC=16}@Q!+&_*|j$;yCH3*v(^YL=5Q4SgMvvI^#1~MI)X(^ z2Rhyp6NzHyBt~N6AH<*dd86_5Ic5!~<5 zZ~7x@8Hz?+fB$>)9NtLep`^Tmu~2c>D?%T+q7G((;SR}J@tM%u8_{m-wkRYkMRrzqTx*w*C zg&%*fo4?DAy12dtFFI_U2@$R1=4*xD`cpHwUMHlNtiC*JKDPdJ?XRT-1Hn?z4GmSC z?qP3$&Yfa+PDYj}B((ckMMbBP7>Yir1@w(=nPn9MzY1AcO?=L_@EfZ&zY zaOw4jXgLtMUd>O2>3dsTMu|8xp|?#~Wvh?4M#6d13MOqk0_B;(qr}c5@Y3w|TG-3V zp4*s!!^>yJ@s}?+$%tex1(X~yHFKEWeE8T_3;NcH5?JA*l2`%MbqRa+_1rkH(qD6x z)R!r@OYBUdnf4$L6`O1xjlYlsox2COH?fR}*0s5u_}VvI;l}TM;Ms%h9`9Sn?0N!$ z%;Df;^jPL!@2CjuuEvsb)j^JrJWI(vS<3B_?7lrett$)BDFsKy&3%s#*iA9NTXo8J zGyK{;Fu$1rtJAs;@$pxrXgv{dV^hBD&+OI9jEMWSD0Bcjc5$m-`{o0!J_qpI%-H+V z>EIccw0v@YY#BrJeKpq9K{n@87Sm>$WKQvw})OjDaEonYjeqFF%R1_aqNf{%ns4m33joWPwUX-gq3wbI&~nZ!#* z)tEac(n~*<2)VajNsCbt+&mZe{=-$jDqZs4uTPE9ZBVX1df#~Js(a@C@&<`4MafI~ zz=n6S+2hRK|Dy>`OzoWU3zvcCM+X^dV^%X&9@c?J&e;cEQ4!Hiiub10E6r}+dd<=+ z)?bzBa^$!_*|q#wvAJXA{=(d?yWU+MnDX_qdp(L!2d2%<+l;xipPU`dW4owkrNh$P z9UY0B)Vqm#E(nWVgZE5r9C)nOMp24>8RyPujWcq-}0w-O_p|j?R~^WA$o=dv|YKKQ5lPprRl}o71g>+v42shrhh!%EMG?h>*+l z*$1$k5=n>1GZ7Q>zk~}F6N#O=d^b~s3vV&69EQ>j>+fVTkoxzn5`hG!9$>@7(5HUf zmsh87a%laeypw1Ydl>O3B5(dYpEVqIVtP#Eus^3(lF!x@ah#!sU$4Cry^?U&HXx)~<731K5eMpbI?+;*Pi?C^xnN z@IN7PY|4w@4K%N%dNvwqW5=e*gXW>=#Gi}&2oZzSbBTkT^a>;#O7ZabNn)!Fb~#WZ zq7h&Q*5bw9Q&1ubB;MsfgR1US8W9aP9_YC`@}Pw@iU4J{4!!$v@=+hb`FaoT67A?> z#IP;W4AI>^#}SN|1q&i%BupD9?nHLx1{MAR(X8%w zzQp<$AtjJEG#IS}dI0@lZ6Hm2JY`$+5$eaS%<`O_B5^o&VLzNzwjDuSt?1~0L+~w* zhGy=<)GPxl!j$RO`bDkbFhgQ8Z@b=nd1@m&{j$5ns<7_MJ9(*eX|2-Q!_Q{%R8p<= zE(qi-LiKPsvntF;D+D!O3OV^L9NX!qugqQ9KGr9b48AbGXv$?2pl=~3#JTrV(6&_; z2akrtM65;|k?`xj@u{{9t7DX4;7RbI?|w-`F;ISyMEgnjcT`TO#^If(-Q&k7Wl(7S zp%5ecw%k`fsn!=7b~P?S{>W5felAj!z#Y(M6)@_?cqhqlJU`FIG^r8|V`RY} z^BhuHduc}(80Rzxd@s{hruGcP{a-i`M32~v@i$BM1+eaob6aOWT8&Odg&KlPqeP-$ z%uEr_%E{h`{r8UuTWbW}`Ox2l045o}$42+PjOHs^9G{$=n~big8xq;gTa)!+N>020 zRE5!XO?txZIeU9c8%3>a_l+aN4Z$sv`+-%>M|bSTJv+ZH?NvtMP9V#<>qqDJJITo6 z+1j_Y*$!)zKN%~zqZVShHM;cHR%nSJ?%ZkKJEgsKSuS^*GvAHo)@FDIHCpVDe{hZE z2A^MWTdwN&HBykJ+;0rvwpF(`6^%i<)dcUU)RiHMACoNus$~O`ZOH@YZ`tnY3@WXN zsO_sDTu&7o4=P7y-iX}ybkp+CGHa&5Z^qGTxVPGCPz@7niJ?TVi|S&-ehTovR?=iIm|w~F5QpK{aXW|tPV znADMA<{q`$F8s0nBq`KVevwn&?pL1F#=f;X75lT)ALB}Z_5=; z-SfrO=hziQWJ<@9U$;&Zw7JQ3yz+;=mC{ekc)sDhMopw_e#q7q4^$mnDd4in3Fhuw zzEdh^@>W+65e?Kmr8$e(AFj9xjXga+RyTIsrfD=cXk^G+I<%!UXo?XUV5P0QB_>ES zU820Dpj`L6ax=#00^rAM!}e0$HqT$1Cof!~CX8nF?rc|W>egk4uPIv#SeI9diiN-1 z?nyZ8S=xEeuecxp){=zO7r)?NQ>|9`T)=h4p~g7S^y(;3K;|juIQcd6`sG1c$0I3e z&lj+U!BwkktLA=5w;VBVQeN$Qt-N`HNYf}%NzK{g?vpo%uDzKdc?#6Xa_pC~zu?a@ zHC_2>^D0$cW5oWkm$Ia@kM80-NpBz~%zfzv>uW&zvsCJArmHpE_r9iAS`bW}>eq%y z?WFIv)?Kw-hWt5h;oh5tQW(J*QUx0MW}>IueI-+#U*n_v+RSs^(??Ul(C;A83Z>?-&!a#BdRvQ(D8ytJeCD06E6Fy zA`kPE)E5&eI%G#eIlxUKGXIpnNZ~Sw4G=3R&jaQw&i4uO;uNAye8sQ=7k&1X*kP#Z zPQZ}*AS#Xx)HB$23+cb_39Dm^Trp&|FrY;NYwev2Bpy|w1M-bg+Av!vPac044+_fA z!Y7MAV6A8sQh>!L#lnoDbL3&L4NQ_}JcoiCHZ60miap7BAH z+dAgzKe|-Swl9R`o8IpEmAB7Q0J0D@2|HhccGz#0DiZPXo=27wWbFfmiqGY7O5Ky{Dbp3PMQEKMpYJ+8`X#S9O%1Gn#0;P)mT2e0uWJQu z&TRli_)s?`HpsguHvOsA6F4Vz=to8FnAUqA!my6gXhKSPphqHtGltm9*Xha=>c&h-+Pww*&sv!j3;R(A25WQnTN+TlBdTRctx*AZab-sc z@Z<)Xqcp54E26_duuzMi+A7q-CKQhQMjL9A-Bs>zb95gktW=*tOfNq(1WIE4B%Qm5 z9^xms8neuWoU)Mi$Dl^7f1h7f>7XiijET*2g3s!5Llux5Pn4lKNY+5SM@V<`#}{j{ zm{rQy_TwQ`l5z*t+0iRZfxa`b_AG(T3FHx1sFsy1Se&B9 z$B3}-Ayg)~hIMNaPMB4WWQ+WcXmdz4Fy263{%3rwRK!|E5X!%)wc!6n8TuwNZlNmq zm;_>ajnWHwA&sbRjHO@Z&qQ*~qiaM}G~e^t>3<}0gn#N%X0ix zqIJ8i!o5lI6IdLEt$`(b(^mWVxIh}~ag4YaE>hwL;=CQzpD>#uiGN&Tc9GT!)FWW-sZWdL?~@gdugcikA&8>O%ggWw55(k!Pl~wP%BJ5wt>`qE>mtTKTI2z1 z3X#v5z&AhX% z-XbzDPuHiP!N>;w@C4FDVAm7FTygy&>Mmb;(GEAo`D&#DzbuYu28GA}+Ou1h?;M^E zO}@-#sIt?|B@NG``CGZX^I>wS6}v1*Cf%xLozV#ta?-wGc{9}uf&Nm>ce?hl zywiTX&84kpB|)XKYkgPz`$?Q;Tg?W`Xvy%Fls%tQJs5&luf@g;WTwjRzPzRP!YO1)}-HorhjK{E*MZFid7 z*>ATTb!Swm^#+!)Dqn7!gsAW_zMPqOv z`Dj3Psmh>)>m4;8Y68GA`lj5UTd_ASYhWk{6B zAX&>&vhQLnnYZ`+Km0$v_ndp5d!F+=-|jj0oaZ6l>=FVl1P1^BVQhpo2LKT9zYT-@ zW1b5dCjJ9;JkG-Kk{|Bh`riV9`Q_BXFLsbFX=|HXEab%xA3lH+#z3KMlT%YvDs_2z z*|UC@!C-)2G9fARpScoB{<%>8=4RIbHXaeh3A5Gu$mf1VH+uhOa0I!HKR?i|R zd*xu`sV_vo8<%6qC=16}@Q!+&_*|j$;yCH3*v(^YL=5Q4SgMvvI^#1~MI)X(^ z2Rhyp6NzHyBt~N6AH<*dd86_5Ic5!~<5 zZ~7x@8Hz?+fB$>)9NtLep`^Tmu~2c>D?%T+q7G((;SR}J@tM%u8_{m-wkRYkMRrzqTx*w*C zg&%*fo4?DAy12dtFFI_U2@$R1=4*xD`cpHwUMHlNtiC*JKDPdJ?XRT-1Hn?z4GmSC z?qP3$&Yfa+PDYj}B((ckMMbBP7>Yir1@w(=nPn9MzY1AcO?=L_@EfZ&zY zaOw4jXgLtMUd>O2>3dsTMu|8xp|?#~Wvh?4M#6d13MOqk0_B;(qr}c5@Y3w|TG-3V zp4*s!!^>yJ@s}?+$%tex1(X~yHFKEWeE8T_3;NcH5?JA*l2`%MbqRa+_1rkH(qD6x z)R!r@OYBUdnf4$L6`O1xjlYlsox2COH?fR}*0s5u_}VvI;l}TM;Ms%h9`9Sn?0N!$ z%;Df;^jPL!@2CjuuEvsb)j^JrJWI(vS<3B_?7lrett$)BDFsKy&3%s#*iA9NTXo8J zGyK{;Fu$1rtJAs;@$pxrXgv{dV^hBD&+OI9jEMWSD0Bcjc5$m-`{o0!J_qpI%-H+V z>EIccw0v@YY#BrJeKpq9K{n@87Sm>$WKQvw})OjDaEonYjeqFF%R1_aqNf{%ns4m33joWPwUX-gq3wbI&~nZ!#* z)tEac(n~*<2)VajNsCbt+&mZe{=-$jDqZs4uTPE9ZBVX1df#~Js(a@C@&<`4MafI~ zz=n6S+2hRK|Dy>`OzoWU3zvcCM+X^dV^%X&9@c?J&e;cEQ4!Hiiub10E6r}+dd<=+ z)?bzBa^$!_*|q#wvAJXA{=(d?yWU+MnDX_qdp(L!2d2%<+l;xipPU`dW4owkrNh$P z9UY0B)Vqm#E(nWVgZE5r9C)nOMp24>8RyPujWcq-}0w-O_p|j?R~^WA$o=dv|YKKQ5lPprRl}o71g>+v42shrhh!%EMG?h>*+l z*$1$k5=n>1GZ7Q>zk~}F6N#O=d^b~s3vV&69EQ>j>+fVTkoxzn5`hG!9$>@7(5HUf zmsh87a%laeypw1Ydl>O3B5(dYpEVqIVtP#Eus^3(lF!x@ah#!sU$4Cry^?U&HXx)~<731K5eMpbI?+;*Pi?C^xnN z@IN7PY|4w@4K%N%dNvwqW5=e*gXW>=#Gi}&2oZzSbBTkT^a>;#O7ZabNn)!Fb~#WZ zq7h&Q*5bw9Q&1ubB;MsfgR1US8W9aP9_YC`@}Pw@iU4J{4!!$v@=+hb`FaoT67A?> z#IP;W4AI>^#}SN|1q&i%BupD9?nHLx1{MAR(X8%w zzQp<$AtjJEG#IS}dI0@lZ6Hm2JY`$+5$eaS%<`O_B5^o&VLzNzwjDuSt?1~0L+~w* zhGy=<)GPxl!j$RO`bDkbFhgQ8Z@b=nd1@m&{j$5ns<7_MJ9(*eX|2-Q!_Q{%R8p<= zE(qi-LiKPsvntF;D+D!O3OV^L9NX!qugqQ9KGr9b48AbGXv$?2pl=~3#JTrV(6&_; z2akrtM65;|k?`xj@u{{9t7DX4;7RbI?|w-`F;ISyMEgnjcT`TO#^If(-Q&k7Wl(7S zp%5ecw%k`fsn!=7b~P?S{>W5felAj!z#Y(M6)@_?cqhqlJU`FIG^r8|V`RY} z^BhuHduc}(80Rzxd@s{hruGcP{a-i`M32~v@i$BM1+eaob6aOWT8&Odg&KlPqeP-$ z%uEr_%E{h`{r8UuTWbW}`Ox2l045o}$42+PjOHs^9G{$=n~big8xq;gTa)!+N>020 zRE5!XO?txZIeU9c8%3>a_l+aN4Z$sv`+-%>M|bSTJv+ZH?NvtMP9V#<>qqDJJITo6 z+1j_Y*$!)zKN%~zqZVShHM;cHR%nSJ?%ZkKJEgsKSuS^*GvAHo)@FDIHCpVDe{hZE z2A^MWTdwN&HBykJ+;0rvwpF(`6^%i<)dcUU)RiHMACoNus$~O`ZOH@YZ`tnY3@WXN zsO_sDTu&7o4=P7y-iX}ybkp+CGHa&5Z^qGTxVPGCPz@7niJ?TVi|S&-ehTovR?=iIm|w~F5QpK{aXW|tPV znADMA<{q`$F8s0nBq`KVevwn&?pL1F#=f;X75lT)ALB}Z_5=; z-SfrO=hziQWJ<@9U$;&Zw7JQ3yz+;=mC{ekc)sDhMopw_e#q7q4^$mnDd4in3Fhuw zzEdh^@>W+65e?Kmr8$e(AFj9xjXga+RyTIsrfD=cXk^G+I<%!UXo?XUV5P0QB_>ES zU820Dpj`L6ax=#00^rAM!}e0$HqT$1Cof!~CX8nF?rc|W>egk4uPIv#SeI9diiN-1 z?nyZ8S=xEeuecxp){=zO7r)?NQ>|9`T)=h4p~g7S^y(;3K;|juIQcd6`sG1c$0I3e z&lj+U!BwkktLA=5w;VBVQeN$Qt-N`HNYf}%NzK{g?vpo%uDzKdc?#6Xa_pC~zu?a@ zHC_2>^D0$cW5oWkm$Ia@kM80-NpBz~%zfzv>uW&zvsCJArmHpE_r9iAS`bW}>eq%y z?WFIv)?Kw-hWt5h;oh5tQW(J*QUx0MW}>IueI-+#U*n_v+RSs^(??Ul(C;A83Z>?-&!a#BdRvQ(D8ytJeCD06E6Fy zA`kPE)E5&eI%G#eIlxUKGXIpnNZ~Sw4G=3R&jaQw&i4uO;uNAye8sQ=7k&1X*kP#Z zPQZ}*AS#Xx)HB$23+cb_39Dm^Trp&|FrY;NYwev2Bpy|w1M-bg+Av!vPac044+_fA z!Y7MAV6A8sQh>!L#lnoDbL3&L4NQ_}JcoiCHZ60miap7BAH z+dAgzKe|-Swl9R`o8IpEmAB7Q0J0D@2|HhccGz#0DiZPXo=27wWbFfmiqGY7O5Ky{Dbp3PMQEKMpYJ+8`X#S9O%1Gn#0;P)mT2e0uWJQu z&TRli_)s?`HpsguHvOsA6F4Vz=to8FnAUqA!my6gXhKSPphqHtGltm9*Xha=>c&h-+Pww*&sv!j3;R(A25WQnTN+TlBdTRctx*AZab-sc z@Z<)Xqcp54E26_duuzMi+A7q-CKQhQMjL9A-Bs>zb95gktW=*tOfNq(1WIE4B%Qm5 z9^xms8neuWoU)Mi$Dl^7f1h7f>7XiijET*2g3s!5Llux5Pn4lKNY+5SM@V<`#}{j{ zm{rQy_TwQ`l5z*t+0iRZfxa`b_AG(T3FHx1sFsy1Se&B9 z$B3}-Ayg)~hIMNaPMB4WWQ+WcXmdz4Fy263{%3rwRK!|E5X!%)wc!6n8TuwNZlNmq zm;_>ajnWHwA&sbRjHO@Z&qQ*~qiaM}G~e^t>3<}0gn#N%X0ix zqIJ8i!o5lI6IdLEt$`(b(^mWVxIh}~ag4YaE>hwL;=CQzpD>#uiGN&Tc9GT!)FWW-sZWdL?~@gdugcikA&8>O%ggWw55(k!Pl~wP%BJ5wt>`qE>mtTKTI2z1 z3X#v5z&AhX% z-XbzDPuHiP!N>;w@C4FDVAm7FTygy&>Mmb;(GEAo`D&#DzbuYu28GA}+Ou1h?;M^E zO}@-#sIt?|B@NG``CGZX^I>wS6}v1*Cf%xLozV#ta?-wGc{9}uf&Nm>ce?hl zywiTX&84kpB|)XKYkgPz`$?Q;Tg?W`Xvy%Fls%tQJs5&luf@g;WTwjRzPzRP!YO1)}-HorhjK{E*MZFid7 z*>ATTb!Swm^#+!)Dqn7!gsAW_zMPqOv z`DCY~X{B2lX=JJ0=YG!n z>HYA`Idgt<=FH3=a9tClt*JtQM}r3d00`7n72f~=K*awh4*0)LDz#F=e}HPM>nW*t zs{dF1zwnx##=ybBCm|uAqH-G_cOD$H?dY(qt~Lq{)y>Y9@$k61x*8iBJ3c;MTU)EF zt3x7@9A(a9|1FdIywTJJfbqys41BWt<2A|hUKWS&Z$%c^3hciC0482FMLE5I+`r~A z);V3IVt)OF9|8{1a2K&SaY|a(hDMR{+a3<5oPIhd@t^U2(qS+rVjK+6{{8- znzb92#FrmXICup&I#Hlvl9SAe6FSV)o!NzPWkr}hzT7h03zW)xo;mR%?BUv5%Dlep zC?)w_1KFw^2P*Mg=bz?fA0fKS(-O==N09O%9$aJv!Ww4$KvazOXH5JUiBV*Q_2$B1 z)_)MHMH;$Ds471mrtSI6W?Q0sf^UnHEr9To8xthHh!@55q!L-+ior^*K2V6PKDKe` z`%2W6t;%)4JPwWB$j#4?eYdHfA}AO>dC6Jsz?-nSm5b z2CHT2a+_1b_CCkzc0Xl;(HG6Lt%9dXjoF0j7jut0j&8|7>X78|EMZ9O!e63IpZ!U* z|8LYGrLw@cRcqLz4HqQ}UfZ>-?R~`EpC^5!#=1XSO7H7@3?lhPg^tnCUX{~>)|;TZ zal6@(_E@pjvB;iBtz#E-Fqxj^&wfN<(5}=&dqn|a;#OFY<(|3W(XuL3W^zxOI*add z_zqrsj|(w-hvm0{=)E3uUKlJ|sQv{XK3fo)PC;!k2;QCt-Y`;2hERaP>;zANRi_I- zX?M@gl^~E9v^%b;evct)V+gj;`om=@zB9Wz;-PSS80~jg4he4J)r+URw&Gr)j$119 zA#hnx-@OREgJXhODcB9U4yeyPLp%N4XfL(+FQP~Vjb=T|i--Syobx5Soa&xQvb8EK z-IDrJ`nF=wfGR*9#hW2oGYPO`mrX%fZ)#u64WpATCZq^+gdB2HHDEWa}?qSm6`bG#V1FvQqsd6f0ejb>m@u4P3E;cPs!zOaOcT;Rz7C=VwS%lNF

;wNPXmr(iqJ&sO$mV~;*tW< z#dJX6^)xk@00-cafQ!4Su}(`}czel=T}rc6t2yEIo_W`pKYL$$Aw(_DSJ(00T?#S% z9rN%KKPBxun``|sx_dDwZD(M5y?=OlvELtxIF__eRvZ)d`GQgVy-dQFio-tvN6N=m zrS{-Jo!+dBL)e}i*b)QzyIh@dy$L-n)ca>*RgE!4qn=1WBGkIR}+{b#yS5+7t$z#;b~qHXfT`Y3Ra_KJ;jFMaMxq`_Gk8PnZNmDLiO{9mZwFyPMhRad2uQ2 ztp3sRs4`$s@yRP*VrPy?iczKz{?|f9pN0|lE8uYO#%Qr;Ba-3-8Egdk5NDPusN`6i zwcD}jHFY`{-tpeLT&ZIVlZuZXAWY3>#o2zhd~`#%ggE6oR)kjLqqqGvkBZW5yL(@; z?Caop$y^B`AHVT@7=oxV4Bys^2?I&QK@ChD?Ty5U2|dqQI?eUfcwzjjqw2op1p%_* z9tB^#C+7SOEiy*xd_Wh=_#gjuR_z2wMR=6U>B##qV9W)KOdBVa>$|Bw0TzmN5YG@x z22u*6*Cga}A`OlrG!>#0{bc2K^ilC}8|J5r)or-C-JidRn#4ji|N8s0l^>|c(L}ws zCDPM~OyNcDyT~;>j;N#ttQf8lZei9@8aa0!4LYbWZ;iXJU8@1b8Ws<_z5hM z7oAySwE7`!-y|Glnle!_Y)?dv(Ty>3)OhE+{|XFy-@rDexx=KlHU-+^@u+F53fl%# z7P6AR{vLt}^V>OCUX!Eloj<*Y1d){=AfqnocAbGV)7iP7w#pm$o__pR4uKq|rUu*? zRrrYJrv6L{&UfcdK`9g0i*9_@s7SEhBt(b~Np&xWHkzMI2&>%YWGjKHLA%0-8yJC5d!f^PnP zI{e_b7+-GbmhZ$4Zxt^dP(W}E-8Ra6l*x@ztLdhzemGXcxQiVKR#b>H<5{JdA2P3wWX<`Hp4g;Ddg9WPtwCzurP5og$`7^J?@rH|Zms9uI#0CUS-FjB^Flh|KK97&4artR{PYL32-}Pv)r3}1bP0}aLXyuBc%-X#w zk8N#jwfCItQiSBQpSN4hn}$*x*{a%xK&)q*_C7}&oI~9=2hN!X%yjZKDq-V@*{K%YO-9_;r|<_&e*|Xc%JV^5%@img zXZWmFjxlBg4JdWVcpUEKy%^4hif13qh2pFeh~m(;Ed6bFuN6v%8apSTeDV2kJ$0I3d~1T?XnA$8iGx<{mM2HBLWpv^^|a zH+11XS1m)Fg1xR&T*0}o$-jky!(elU@yp1Us5lwTvo*oB4uUkoKvqWDCP@O}r9SIs zXziit9T_Ec_`r7qd_s19=O@b2!D3cHZ}Zhi!o1_RX?I1j@Bh$Y8e=a7t+~vhd&0)w zHg7O~G=|;9huONMyRwdZ#G9J}Tp_0Wz%$O?&M&vx@xf+b%j@3~a~Rx+a`$3|WNXtg z;c8lsOJzT1VuXm}ce@G7eWi18`eX(#A2+bIL>>fvEy>3M3~p=>+)nbotloEg+U_wS zZYD$5uX|}8d}yJ_dCTdWYoUmSmvD$U4sF9f_3wBHx!&MkG^}0s%vk+jMtzu~;k0x6 WLHTGQnExAClKZSI^;^O;=>Gtj*(Bxw literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_42.png b/app/src/main/res/drawable-nodpi/weather_tapas_42.png new file mode 100644 index 0000000000000000000000000000000000000000..10e13783c965c353e09c97e50a80baea8d1b296b GIT binary patch literal 9067 zcmV-xBb3~UP)QyAzG1Sm5E~ok=iy3eXVTKkT&JcwXJ>Pg zj#rzT^z`UUh={zrvF`5S`1tt#{MY5=#z;G&^8f$<7<5ujQve165Ely|{4LVSS3sVU;G=(KvIDz;EI2vVHsE@j0`P*NBY~{r7W{Vz$CE8 zpF~d(<@I#gkP0LMMuvC%mH6xO`twt6c8P!q;2wXHekM@-ApcF$fbroTf0Diy|Icxo z2$%py{_6OH_%9^>pKF~6m;g%t?eWjD>~bXW|C}z{ZIb`!@XZfepOcdRPnjhG#)oHq z@c3V~_9hoK>m*TK@SWBBm*=meEHX&{J{e&1xWHA4T1cxp8Sti0h0X3L7V?Z z<)0K_e0cJ|1oBS`Fggb1Z$cncfK|c>7_>ib2$U3H6b#EhDZuDJ0^;#Mm7!}QASu9T zXcZtX|DR)?6kt@i21t}0`Rf=oDZp6p96&_=*E+f2QK1OX0qE%`S)hsGI)H8flq}Hb za2>$$XV?O*5}pp%07V=Cl_8P^8V{ZUI>iVmlLZgE zdkAQ|!HIwophKYk5Y!8Tk`I11?ooiBGEaH%Sa1}e&jX|&XiVG=ff4~@!byTJr(Ob5 z6gnDg44U^VKuQC~Lu-Nh%Fvd8REiq|_r#!hd46c7QM+b$pxFcM51 zNZfD%&TM*W$UG6o0@XKMKx#>j0_y@UgIT~&nu-_))&*S3I|)cm;F+)lls8;J>d1@& z+lx8gA|R~?i~)y$>n#FO7&HQG9(+9ABp`X==fmc~Hx(c`fiYkSxTyeXOLYu9L_pfp zem))}AY}qi$3q01k_~z~9wI;wNGBWgL_9`-dtuos;Td?0fMkQ7j>iZ{SH?XZ4-!B& zD5<~`@gM=-y}7G|zvEE?(#5$?#-ju{ZaAsHGw>(@SdOp^BqjJW9wy*)aUUR~o@pLn zm2f{ECg7(OEd#r+7!nH);c)^^7cxRh3E~`R7FG$j@km3aRe`)^V6*EWAYqko1HT~P z-vt@a6hv9rB@XV!BRye|J^gb$5CcfTcGHDVLgHW;4@^b;YyUwNuoQUkSx6Mzh9zKl zFw06GaIFq`%Rz*NZQ|g5IFoVZkoc|i5#`}P6l9tM7cL2jf}3!LbNgmP|M|iv$b+V! zMT`ZXgG50bc04^k9UUJ2RtL)C@p?UZxL%LPvbzHb0%D76}75eilbF8X)GekFX51kV&D3gU3L zBu^dN@8R_Q7)~w+iGn`F_k=sg|55214(cui_cHJqg;l#L?>K=_{@=gHwY=mm1zHJi zzO9exFhuT(2*iK-{u@q5vP6$40g3%nO52VNIz{CFSMh5#a4ERSfR+9yM6WgwrB&?_ z#7`7hEig*3x=Z|T@3w6qnwMGuo-TgG@si)A1V;Y5&&Z+IjuU`5$W45|pNkXj7np8l zk62sr2i={wBfth24gopXpnqeDU)dqw40Rar#7`NtxM8mrD|iR?*$w$+RQaPFQcBR8 zp@0D`|5o~dvTUhZEgx$)xbx8xP#s4VKPf@p$AEME+s0b?^EL$Z3*SCK66*Tp$nw`p z;5mX7N_QQI9}_oG{#-@-*H(*$C;iA611bO#a5!I|9sEQXxP-2F9f)5w)oO@}FPk?Y zz>&TcxHrPEQRPq|;82cx{0Z6@cc<$d@k4F!iu(x0RIQeZwI5e+;!p|z1jzB_4*_Wz zVPI#)4}V(Im`u4{JOQ1+u2t|584*w&zo)>d^rq|V+tcEwj-eRVLJI+2DYvlRN`;vGe7|h0jmYVrZpSu+7Lq2 z^+lm>8|WzidP4al19>>sMQ^S&eWB89A}mq?I)NPty1uv*C08@XF!A}<3^)Uh>TJ|j z{G7L@{apq#UAZfM+{j$80vP#Q@q_dSGOW{aa`^)T z2Rm4oi(od-eSY-f2xv=eyVm%K%W>rV_E)%=0mmjB4n8ee0m9=yQ}Kh|opH$Y&|JFP z38lM@xmp%H`D0cyQ}F|?=SqTO!ak^v)&MP00j&Jh@h`96^TkOOz{B%@s+X$(f&4Eo zaITNQbbulTXo()!bH5Nqx72 zV`>k}usZPr*9UcbXboDs3%D{;mpK>m?YVXrtX} zYCwCX{9Y1Hi<1Ak+h})NO4QxD%s&6}(Qd!ehEl@8o)2=sS^Tcd<|)|0UJ=AHy-v?F#FBC~)OZyF1_S3VkKAv$!+| z3j8r2v8*!xV?ZyQXa4Tk%NYpd|F-6baJ)34UD=q49rEqZI|iRV+PfBicgNi5@_%3R z?{N^NVD$=^n@serlHZ>JebwUDzh3JV6nv)q5!bSQ4bYqCUqk3#uQeqBtpR%H`ok@p?B!0A zGO)IHYG;@4k4BkiFX+=41GJz$i?QGitWTu^t^$0n127CsKQiq^Kp&U^yq*Ea1B*{L zK!mBSkfQ*f9055n3`|16dYwFQ2 zD7oMe*9lZ0S)d`5qpLu&K!b3-z=#B-7^oMcdjb1s&6I`3FuDpP7ch*`a{=Q5-g6W0 z?-n`M9;o6`?z$-AW4YEN{asfRUHx9A{yxCP8&jU4P zrXb)uA&S#Q7#lPS0lP%NFv@yFCy)rZjpLhEk`FHX}}Op#}U17BH#{; zOhAf)ZXpryVjM>-Mx;#m4vb1bss-J~F&i%vO9b43(KR6T1BNjs0jVQ)2aY3G<5Exf z298sdL(^<}FHYsC1f;p3TR4tc3rdr5x1p+`F8Uaj@V{I z0+J0H#&Oi1aI!%+am>f`!K<_*b_=7g2qYUci0inMalQ(qMfonqU(rY^Fo^M&l)TGQ zk_rU4)}t#xx-Df0#|aiylM3`>x@GyK0#O|E2`o^$Gp--gD1d)!;&+0ABa{Xt zzJse@?q|6-A(okfy96-|8n|=I3xxfyhQ$=`Yg$q{PS1H z|1+Pa8kK+hEUU>M=jK1p`BR_gR=Up;oA`l-i2?0@UnKvJdZv6FG=}mz`G*YTpSC*Y zKg;lSk9F3b_|wdgewydYo@g6o;DeOl>Oar+Me=tUAT#tS`+M%gY+ow>fB~f7^8Oc^ zo%G|Jx37Gvyu*OwijjeLrvSvCdk-}KdZqXc1FjN?H>Lo@FEY>kyjuPa1Mg44wZzjO z9RF9#f7Lnyr39@Zs>^rd;B+i&SN!vle^&{J0&#gG4z9=YB2fI^@t=$Q4Fj5jRts{` zl*gr$a5|yzYmw)3J^lj}z?(i)O<7+5ot8zz3B-Oq{ktBI1-mrWAwT%?pV#s4qd+ro zW}FwSJYL~bwKTxb|6Q;60soFG;`m&YWl?ZeFbV%1l=!v$=Mnt(GT>66suOvBE&%*2 zi+}rn8u$VC09O7Lye#+oV$c5mN**LHTAU9Dl7F80wYT}nze9m$;7~F89K7K4vEWC3 zKvr1Qem3%M_ae{eOW=fqzq>gE|94QJ ztJFCOn>6~2KgAyyZ-w@#^tH4QXAUoPs48UOTpgT)`db)c6$S7nxuW&J_uLXNWBKFz zTCe?namDrpuVev+;*7GY6d~sdJ|8=@65HO3Y^!BOiiLW0uJrM*?5o}XdhN>^1}ZK! z0~H;S3d!Yr1|gj@e>h9~Z~kv)Ca6`$8OrAjM!&#Abyh#4-{Qu#!AFA+ckAEnrj-_I z0NVqlKrbt}WT;q`eYwqDucu$tasV$Y_l%A|h@I_8XXPOW0-B;|rW^o$O!gM^Yj=D! z7id>OS_KLoT`!#fJ!@@t8(Q2C%|Js|jYEiquem2(5H?hN5G}7FKkq?FQEessASJvs z*r7AN^`hR6ya@km@qe{26gVs0sMc^;Syd@ffk8TxSyC2T%WHQZ39&^nf<-eYG1V~)JyFlsM=Fx)ja-se$-qe zrTE^!`Wz&2aV9DleV=+>1h`TE&ONNHSyDErkr>;lLxd_#G=O8v53s_OQTvgOG||vx4`m z-z}pYL%sZ52yn&kL=)a=CQ%8r54=#33WV0$72t0bQiPe!Eds1%;;OCH2%&cC%D3sNdl{J`iARrXK4&?(1T5Cav2!lEm4N3ZiA6EFU-RD`H z3v&di6azjBhVtTIl71^7djm$p8%&0|kvzI#@-syZZN&|1#O1i39>I{lnANPu9>)dKCDK?7>3MP6Yos6q|M!5}p}4C^|6-FGZr zbhYJ74I+gA`NId91p%EQ2vJag$uLbd+*O{tsf-1-RsxYg-q@^Jhn+pML z>Y~arI>Q1zHEpAfRRM?@nN)RuNwyTVS+d5du6L<5B{Ea0&RnkXGpxnp0{_96n* z$;N^*0TNPu$TMEZtfK=+fozRxlSOCyI;sUP4U!ZDb zH9D3;a;*dr1|R_7xs*Pkk5_7JA|OcAl(BH-h8dPabM4gOS@0H#xBrT#L16)ve zvp-i9jspQ4PG%N*VvuSB{<;uZBcjtaPC^QzC)LurhIR8KJ-09XE2wIJLhW>q7h zz%oG83c0@8d%<6PsxQX|?e~qYU2#?9U_?M8>TJ>*A^HhWH6CRb5BYiD9+rX}0pF`6 z*QrWaVQm6wIr2BBut5f8jx!JNVrMfFVke?{s!+e5*D;?8zPH4*5#lu*AE0t5hqnNs zwwy;#-n}-lP>CWK9x{>C!&CmM3F^Xuuv}@ayDuzB>(7|~6nn@UAZ>s;gEtcu-s)bI3n) z3W%JwQ4pjpO<&>A3yKT{mH?*+U+A8!8F~11Ez@w`#L0tIGxkg*kVBRZ0l%m=ufO8y_#g#g-Z+zu)Rq7>>`>@oN+LiH zK9DxVhsb*KCtC?sB_@dhXr)L1PW9lqSBtzm1X{;BZGGjt=v2Tw+;95^!&(rCh!SF& zB9qE^G|{U}V;@dapne-`d<^5y0|Y{6cu|fiHdO{1DS}#rp9I`^%kB&T#g&0?jU1A> z6QD{qSgEBmuX`6#kDoN6OF-AcIux`r+Sawidc1b*XPS*gh1fSf0mFG+ul#ZRljoX) z_;oYu{*l+!>*4kTib9v8i2|A*;8?*bXqh1#PzXmJy2FfGvl!Ilu^Xrc60}k=UJnl5 z_DW~%722T345=-rF6Opx=Wf;vn2#eQgR_bwv1EO)BgS+;fY+R7VdXGth`rVT{h=QC z5od`*L|EoN<99IC_^`lw(?a<2&$w+%i@pMX*9Ogrf}kf1?omSN983nZktEkW;Vj#9 zX5Os)b#qJvme|Z%2)zag`h=5Q*c>tYLA$T6j~t8=*Iy=c$yAvGa|@iaVm&REPRzQQ z6$M`57U~0fDx$Dc5qlo_VE)JhNM9CB-FTMR*}lls`U@B|K|@>({B1k*xZ6c1=c2N4 zC%I_y7E~0vEKLJ?#l?WD>S?&Wens0GUTA8)+sV}YFb0csv_s<>lzXY`i2DKl-ADHJ zIW_U4NiFsw6XD2Xt4W*TcCgcLuc5A8aVV|g-VsCPVnyAVbBG149ST;jM5lC~*X9Jogqssr1S}*O5QgL!tAL4de|kXJCu7a5XsLrf{dDzhVl2N46-y6QXCu zoua%(m+g)o8e;2$XSEdB)|0;#e}?g@&}OWc0c(Mz+IqpAM~PK)s&Vs>0QW5jS!X!K z&Dgvc=&WZ5Jg%V5!k@VMii|uo3|g7wvVk?o7$AItEUR`S{GCw(u?X`KTDDy-p{D1{SOYex)@A)rQ% zipSBz?u$B{VcB$@tUF`Z6f)CO3;VWNwvD%JZIu;=?arpiifi3XP~q!bL#s1q;fi)uQWx!5- zQlkeq;Z>0vbL|)bR{oeYpa!UcdeM5DIjBIFf=G!sDh5e2mV2_o=Y#GdVC~M9d7M0J z<0e{K0R&B~fFnOknhDnXi+vZF+b2*{2bHM?2Gp>4f#UQsw+G%AQsDM7s{;Z|JxXE)77HyLFUC3N0_U_T9enwKx3Xgzj&*013dd11bLQT&e8jh_wUNn6Kw8pPe`(F&Ngv@Dx zB-(>$38)L4*`uB*Z5OL?3lZp^%GnrWZDCzcJV`YwR?lZu+c0p?eA?PI1n36zJQo&F z^#*j14h17uwxWi$SF~LyB0G94 zT>@+ek9!d?L#xiXa3(0f%#{(Uxvl2%)c4V&m&MF3ObKPx+ZC~wF{p_vcHr>o3Yt3U z@;ut2Q@ z_>v76LDa)saOvN!qTggjQ|V+Si?h_XcIXR^^6fkcxJi(;#As8YYQ$7FS~YD=axk`V zE&P$1p%}I z1lG4P7qT64)Pd%fVfE(m@XX7@p|Xonc>QIw*On|Kz=`f@t+^?jU0LTLJk|u|_)X|m zFWFA#9dz|*u>{yz3J3?G7LAwIG*y9~kkyU2b;W?Ql_1qnHm$CcaHw@g2D*vQquLxo zUn@d$k4;!y^KV(>YSvh@6(pjrB-sCk3Mdx3g}+(6UIlZbP?1nD*{-ri?DMUGm^OZMA_b{k4J3QKE#OfZ$*CQ!76s1|Q@4vl zS(HT#!5{(pQbWw3X%<-JNUU+&Rj-D zE*Hmu>7jLQ!y5YHFWXyJ_fsg>NSESMK+2>TIGj$&%Ih+$Zd2;D4$(ftdL2!grM`!RZf?cPyg9Zl{E@%a z@({EeAGzVd?G_3>ItqROH|SM!Y;OyC0|lin1?%Xxel10VS0Q0b3L@+vo$IOVC-*h zqJQ%v;Z~NNo273quXGmF)N)VkT=&gfCh==Yt~&<-(e-7LY z#&CLcePdJArg1cJ#U+!`YV3Nbbhr9+bcEwbe_*J{Y)VpJz8(CRL3Y)-xki2ABN^lS zqc5EuXePLewKQ>}F2;rWY43HEx2hJOjA$-BSW5k}H8xI{vR2q{)O*cB^eh(KHFWuz zcr2G*J5^?!LBhv?R_ak6G_c-ZW4>qT@>B7EU~HpHZx-Ni9$m{_(2cNs@W~HJ_GA<(!;KpdZ;w?l5sN9-Fry{i~-Z>ZE!J_Zra4n9DEKa zEotuA{I)LM3eFvC7=Y5Of5qB0DZF$_EOg>_8SwVg=%IK_ZNGE%Yq(+%gMopvkKVCi|e zTNlfK`;kGNUM)sk%9SyN7UDr^)~Grj#=(c=j#^{ff~ zxRp7rzrPo}=R~SId1=@dvSAE^&>0vzfQ^bAJbkd(zt9?|*Mh~A%$L;pS3EGIk}!Bnrr$3fs+P(G`>K;Id`R4*z) zBY2bfcef`3M#H-E6d8Tf=#1`zescuVq3xx}cW-GX{1s-d+T4nqhHj@tY(t~>qS=HI zuHCdLnFC^;wr007NHJ#8}p0EqmbMM3h9 zUQU1dbkRYnX=@9XTYsyw_u7q0<8jpwFfbe@z|^?p=i5c3}Nv@k-#~|D7&^{9p7>pNwhR2u2h<3H%pR z*wBl%3?ws5Jkk1nqGNbX9OfY}Q_ZV12{7^YtpT*?*wQ~FYRV)4F6OlbiW5>mL;ql# z<_Si4j#>az3}rzKs?9KyJtQmUHv=*e2^jKGr3&hQ8AQy1DTrQSa=#GhE$J3|vQcK@ zt5|Jx@E}802_l`4qbqz%x!^D4vMCe@i-<9(1aWCVeIMzbqM< zEO?3R9p~xv9GOG*c2}^z>J5|2grQ3?-wsAeBFA}RZapv4y+BnEipx(QFyeI6e`R`# zBBX(z6`IY#amA;d1>-yhXq9^%7Yeyg6}r-dpf|x9I~vD71qc7gjTDai!?DhS56N#n zDs@cj6tV|&J&Yle_j6&C zwx&WhGRweJhmF&Q_?U9il}Y6EZ8l8um%tbKy!Fnw8C3#;?A?SA_Ts`AEc>dxsc%zv z^AV)&N_G{06C+*(h-piWP3x}@CNE46tN2kXLbj}m*Mc>}K`qATYOjH;(K+|Cg8LHz z@0P4Derh1q&u}-YQb9|};nP?~Cs(u;WPx%hql9IIvA_nrb(k?Eik4J6Rw55-^6^YC052mY()i{mJFT8JrS zBu-t5{brWV)QIn>@=0ETB8hZ?e~&Lq-ELu@pk1gH$!8Os z;%0853643Lh@$c&kM(5+dMv_Gk*M_xg+}rr*TQKC1k8Ha8!jetNwR~`M*>~p1acX; z1r%9Aqw5q1RgHVlS9c-bvy_)qO1&4vglhQlvpL`tce5sGMpGk}wPBHip|}B3!)3Hz zxZNf09we$u^6Vnx-hkpS&>!V1om^q_3l8|pZX7>ZF$;F0L#H(9+UZx8E{(ag*eWGxk$5{Llul|+52!0YdTFZ;Md#4!+UWlo> zSpStj9vjLeiJ?U(^X^MaixPthzS=_wam)MN0^;prApCJs5bo{=|I}X0Z}=BF{$j)v zq$#MVE?L1H{#4S<^%8@Oy$J2)B{TN(^C4Ks?I+wEPsBZd$>#hpJqsRw=Z?l1Qq^?ZxZbVbr8l7M;#c}f7b z^pvMiooiYyMM^YxW{>NI#HnqD&Uz3%b=V<`acmiYt{X)DtfU`-=NU!ZTwh3RhjiFW zIyp`9{K7SUOkFASV8Ui|alU(wo~seat$RGS*E_qW`c2+ zP!KpSD*?Cir7X|slxp+%`9+a^7_yt)j;NS8Nv2gTW2*OXE;7^}j~@w!!YfX}xe-0i zZh<5hjO98gJL$a@Jph#22zECph1sCU*MRo;-|M|3(QfI+PBp1<^B@6!PHUbJatct% z%_?1Q$OJ35Ndp`B3!ZkP7v;}}KUlBu!ag$;WS@6!4drnSt%UpOQitYaOjB z$u~|O`T++$7dFn12E|Rep6x^S<5LFKl}0e8aqM@oT8F8rHz??L?9s(N0=M4h3)eL4 zoqqK8AK%T#=-ywft2A;@x+fVi^`qD`MA_zz*5oWTJ8l*;6n`2pPevNLDoH4Dj%kXT z$pfa`)LHHAf4F~~pnkY}iJk@%)`iw$iUlxH<?Xnd0QTa$_gPPu#GxoagA z$$>*>w)J`^7{9WEcdE2kSL?KXS~DZ}BKU~hB#ov()*GW%pP&056oGSJ$9-@mA|%R9 z%b`APzd6;;P1brPX((`3M*_Bk{&)H@veIR@Q@M!|t=5zqq}q0ofWP$QaA!&a8A+6% zA9AG@F0tGG;Elt(*CS;n3Y`l)SSs2Wp{!*YI5VKQX{8WORQ%Q~_pT)IV%Z@K_E)oEjS^p{xmIkA`8RH7X&koL3{S7R?1 z`*?CR&%)1nyCJ*X3hM(ee*+pyghrKn>4`g<_q!>V?CF2KJf0wX%UqiRsNXp?!~cy5 zzxNiuyhrq@Y=-gqZ{>A4QX^_iruE3`=1D*VX5iyoOKxcX+i+k#A3IZj(DmW=iXisz z-!pzD0C=ncWX zfa`j2&uAR)Wt2aHWZ_7z)Kjx341G-WG4S(zFL+rYy;VjGVE4JIZFLTmwJ<@Mzx9M=qrUt# z1#zPBT34_0+^~h<<`=}2c_SM~Y_spuxT>;JNx&l{=CAaWn90~Ti;F-h>IFP4dz&{T zkoNv)LD;_*_8S7Mg}o#;E5Q&#LuzHf}lQY1(~oagmU2~bVT5mnf4#8nB$ zAF%xuHuc*|NQGpCOPn3CcpCW>iT}HCb9XB4E-T^>_@Z8|^dBBT-h&-yBick+|JZ}= z$-*Z9qdANSAreWV{~jj8BP(4;*+!Ygg?zOugAK>lmk8)j za$!bk4l_VZ4}mpNF{*B#Uh=^UnV|F?E1viHUuXLc>YSo8qST!~y<`M^6hq#rSh4Yx z29uZr%_ulV_v}=;$n?0OuRrIje5Bt?$;t&E$UyWSCP^x#SA&eH3+w|7N9ji*nLw|o zdiZ`Rp1fe!lMF|uwVB7+qWEl3w3l4|@6~Kj8ZH*tIeFnB*o!A!9~nfz971JB7Nrqw zAyfx>jGRwVKSXqdKpoq`AG$^30WCP22K8}0zc+2j`miJLZ6W@4XD#&mr?EV|{L4@% z>=HXP-LJ04#d!_`EhHnIgWk*U&5^=YOoD*j8+8%4Um!~aqE9b}7=StB37J?@2H?Q< zc`n5p^B$@HsP2G-vS+?gIGgZc!AjZE|9XVjG$U9CxqbF6h@Qea@2M&!P=r;^dYBJZ zQI^Bl##fOI(ff@QljR0h@yYAy3PI=N>&MtgKh!0ypGL4(K(nsmz~jR0&=GL=MMl9V zS$+BMM>IzAl@HXUd;~zRXgCB)oQ9TaZK_mS9}Vx%7+wD)8B&Y=JGa_C2Bvuxcok5sH_SaqYZ_{m`WKRcn8$($4@;~!L7P7E9W!DEXLw%>a`TQv4M1f-zI$OaZ zWO}-lR+5|kb?3!AS!SB%KHOKH2dO!n&<&}X+u4A9FawEgPjMU~GQ}+4zW7Uzip;Fw z9-z1sFi25#r(F;n)4#e}rZzSbNRkX3EK#2Vc!C#_W5;lGB~SnEP+R}|ACPjuI@+#a zxvSdZ?LYSk{M226oqNfuMmZh%(@yKgRqu74=bO1XVB-8Ns2SHwx7*ul@~N&xU)ARTcW# zD`m)oa3PkY_s$^SqwuyJ3i7zlo!v`3BRGvgyf|*=8!OsB+}g9k@qn>J}iQSaT91&`pQEaU6MHd>-TYg=bGtyZ!!z)x_mz z*jQ?NKSm?=H@KZZ>buNk`rnt9Ug5MY1-&_`ONWhKeY<&`QVg`usZae5frcb8Zgt@V zJal3W{be+-58CH|Aa4TixFl#8c4-^T{EV*OnGJaD-{x`9LULo%cl;QxIIBQ{m%ir# zv&aj5Y*~w!k~Y1!p=CQM|00HzT8^f^0EwKUQJ?(8vageAF)xq%gT4OA&tTu}PKtm5 z14nUdKfIiN2?B+mKSak!sln^iS0&!FDaIwUNJDHnNp5zGd7Dx$I!7)%)3&(G=w664 zaP65lE1GREHg8}y;71oIP%VK!s4X!?_Y*)2Ec70z$@vjbIAtWY(_Q{qBRxFq`N?}d znBBzTfWX_EAL|w6da@?C4)ISxQcN&>Y_wn$nj0ZjDQp-J8&>G8$rUwcZV^HH*D3#K zPKHU#X{zUgO#We|i138v^_P{_%WshwVn+8iyyEGVs3H-y`22*YbTRy@ke~I&)7Lgk z5zZj)JW#zsaTUKtSdxx3>V7!s{iRx2eLG}cr4UnD>O5VURj z_;t?;KjT=iSnl4=xZ;qzIxY8fvHzSxOu#VILTglW%pSw1VrIK~+#YVntXQMUS|HlM z+FPA4zH@gTu((gE3{_|2s^&ocXHexOr>>*ndjN0S@?QAM(O<=JuGcp4ep$gchViW= z$;Le;*N@s!Qkp1LZl)8-b%*?;Jw`o5TuDq(5+xHE>qswfGZSCtc+AP{IJ>k_U=60s zhSHN;LZuGvL|jbQQ>Ydnui;!v1G>vzqIQzW5#muESdX{3U{`SYsb ziZ~E6fvVs1WSKxdqccl)zf%Ap$x0u)@zJ;qlub8&_8c;6%yuugY)&edGqKUEdFY*# znk11lhO|UR%FS;><-4z>wAR66N|nL6a0N$?>`TYh$lQC$Hb`^nMH+$jPn2ne4Y0$W zbYDvnXq_mm_WK;h6$|zfnx3qo2*4>^ga@WRady-wpwb&=CKIyWTJ~B`JbvENW`$7_ zfgf2z9Yp#~Mh^qCPpwX{C?Sjt^sag zUx7GQ?H)FJ4r`i|RLWNjwSY(ATmP~91u%O*=pLV@sU1{s3;$b-W`K+WTIFxVfJ)p{ zP}q<+AKb)Bci3GQ{ol_~28GcMjUQ%nU*8cq#r=5?JrmS7*_@NaVxiEd5dnde-5qwM ztqL-Izq3W z`IB+jtyy!~oe?Zg4r)Z-fw~{*>jjb{)_4U)w_J$6aQuFcUmvFLD%R`2}oz_cy1;s>aZ#&MeH6}@ziv*nd|Pr063!`*|j zEqL;v`()-2-l{@!ONzU1n73@=TQh!JDL+=I)Vrs+oG2zp!H%5$bs^6x(`Dtd4m@fza@F^SFVo;Jvm#*EPDs5`c@iFUMCH?Lqa~C zoM314Pf|qD2l{?mFWvJ@FRr962CE7!Cyib(Ifpv!e>Da6jvq*d8&9Fg+6ceUu^OHL`(U~K)crt5B#X6-6T5C&V1s12c_RGQat|{X%=7KyEv4Y&>Pd_%wI2hujqMN zTm~re?WC7AT&{n@S8i_1Iz6vVQw92-KJcE~-*Fn-zh9ZdVxS=h&55_g)kExHis-J0 z@AI!+7+pA#9XqmyD&xYHxz5_DPnWotrMow`6mM%~Eq(>0Mt1hBIkTvQ)lV7s_*wS~ zx&63)%xRfA;P16$O(8bf?9Po>(Ydv(!vF0r{Kb<=`w5Ws(d*}(XNBw4V9 zPlK!}s)fHn*OtVIH;Twif8Jg`-$iPvxtQ#`xq@SRQx+n?CMdBeqV`%11%MS9G5d98 zrBvI3TCbe38oP9|$=E=-G#>^h@v7vr)EurrPxK;w6=1w)}kZ zVch$9Ss6;x!O?FoT>27_)O!+Fy3dQ<7OPM8o@X|Hwuy0YOEtrWMof~$yaaTCc?O=t z(tT@pxU=SvQcXh|oL03=lnGn2??`JlEn1Ah;$(;pm&|cw z-TD}dSVk>mX-1&)!=LcL^vlW6`!C^*gqqh9p9Mc`8&KDyre_!KAGam_md0*muG8#3 z%NSN&iC%NbAcZNRWS3{n@;`^lH*E~M)bMp{JKuSyPsThe|GlzOUqAqEO=~hW)@)05EYpv+@6hyBMalgJjE*{6@i3T7L?VrN+>2!zY&;EO>wf16 zzA(4uf2Seg)Z^ACpuuJ~OaXn{!sY#DzGv)guV;W3^vvqqhZ1DI{lS?_OnM`YyS+(` zxx*D4I#`RK2}skJJ%v+vXp@13poQJip4D2te^Ojtq{V0U>Yu=98nHf%AMj}60TsdQE4jJW4`s&mf0gxYqAiky8JdgNWW z{k$NjWpF-HPn-R{7BjTo+lSi&+Dge@UhbRHmK!qpq$aAVz`Rnz^oUAYPD0G(L8sN= zNXev;%K!;Sc=1bWpO6UqoxH(%gZlNrgZS4!rhlul*Pg-=7ue2q{p_MMA=WlCK2eV@w{ZuDTo4-5GwI4kS# z`e8~9x3plNQ0iffg~~G;!4;tu6f1p$>Cxc`rK}LM+|27-{Ma?Af~wVqk2!rt;6~NL z!Q0nQ;z%REjrySqc0ZFUn*xSy^-fcN_}WmhQu)41yIT=c@7Tn=mJr&XsnxA%@Ly4* zBv|&xCAGtj^jGp>9?7uT6YO+xq+^N&O+9L^ynMB;5sFS0@ipgnF=bixY6|*#9dH$J zp9E|Nm*gO#KFajO%t@r1x5_;l>yz6uY$>z!OWJ3E7cLK7K9Hyk)MqEpB)oseC>Y?d zwHcw-`Xzu(3Q95^pH`^xVU51uNwRFx z$n!OibeaD^qY?qxegk#n#&@C?ZN!;jTINDO8C#Dje~r^DS2AHY=>uxE#<{-VKiu`O z%LGI-vfkXyC!~0Xr`HDE^Zw7qi1N8U>|1O0bCutTTn7$AM(hD6-TWLdps?x z6Q@)SA!i#DV_vtKbqz_oUi&s@xz;u~y&rz7;SmAFGbsGC2rBK?JG;F5ehf2iAB zZ#+(Z0{u)@%LPuDv6goRB5vR6HYGV*v(Fq=Xs{r0{E`vk|H}V|`IpfZmuwBmU)6iF z34yG&#ji({UlQDF59te5duYie)$hJ-N6axG**jfz(gHuc=r@wL1KHY?OX=9w*7}l1 zbo=wm7p##$DH6gB>|=GB$@6Q>zgK#Iq_6sDJ!>YCVdm_0iBkbi52)*``{U_R3#Jxc zp4uY*Zi}|oKFz2&DI~7q^>ep?zGPwE?-q)h8q=W}F)#D0qfx`R7L}o}aJY>PLk5H> zVy7eyzzl;Y&Um375#wJd2pNotnreTpn*?cV#^2FdJx?mqP==^p={DMU^01fU-aAbK zk~yXSpn~661UvM;6CE+SCp}?5mT{-_R)AO`rvJ5tRpXebF0zG8ddZ@{VxUezPB>aZ zT@sjOmgoARnF}g9uW0b3)KGVSF_c7XM_Z5N6H)uB$ZEPs%|^4dAXP?Rm#6G&*I}Il zQ;rG!U$OsKu!7cG1)tM(_LSsf|JW^x2Pal-|HnMfj;SpD`l{*CQ$I|tU)zhx46fHh zb-}}3F=6xGF9O+zDZbjT7c^hirtS%p9w5A-a5B2O%WMNG=^_!O&t%a~wXOcSwLRbo zA0UhEzA?z0FbI5>R=j6l5=I5L_oJ=l_~t9}xZ+F*tE}$bxCN|Jpc&-dxKo1@wrh=A zegL5U@lBeN(|XI{ecIs9w-;TF_L4SL`oHqUxl%YAEopw_WHcYj7tVDgsZcby8D^*% z3G8|k9$7g47|EM+Y%r5W74mx9A3}5!m`@gT?hFb2YP64XVlfu!e3;t(-%%>&{mMl8 zW6`hC4xo_gk8bVarOv&ayPw51$$`{-T1wMms)5TbL3#X{b8jN3QFNYdIoLa~b<1!0 zer%pRtrfbHsaSPYO&Y$iL_K9yBbLc>2ZnH{Iu7`nZ+;~v2AAS%MtzzvxPmd{3_`z(}n!P zRIbuJZy(mm$(}ef#|!12fdd)ro6VjU?yF{@L@y?wwRQY|8C`M~G{MhJRl$+3T0Z3- z?^?t>+Nm>W#-x6>v3NopMAtPwLd+W>dm!kK=S%SSy4$bzQ9}Z!?>fodXn?0GOf%Tr!Cu| zh1d`?ndRb(##XVcoyWO1BqT9IpT%ArA$}IfFKcRos9H>DRWw6UTdIF}p-?#bnzq9Y z!tdZXx}(0k(-8SEFpwfI`U0_D@MlBjC*X;Q#s~AWxQpeN2fD(+lA?+ls8d~-MjOWa z_xlZYl8X3%qXS`*^dg?T+A>4IJeBq2&h@1h`rYx#E&WNeXWH63N{$7fT2shWxWMgo2lH^d$pE`Pew((V<9d~j zi+A6+F8lWubr^zp$$t1^0R48!k77F|>kedZd1OTGg-s0gkKRDmJ^cG`(r#5)XSx+mK2e3|5A%KK*eJiN=pB#&Bn=?J_wkJ0|3 zcfa?SuU?SVsYXtREu022)0GdrHUc}cV6^O`;yUdYKeUJ@>?jY-=0#RnDb~Fk>Uj|7 zWI$TH7M@3s;^q&m;amanh3zTScsr_5<(t;LI`@s4SOq*qE}4AmWGjblMys@AKk6mCi9WeMwLw8#eu zmUqz)6zQ!tSpC8mby|bAo~WvE(77LE;>|&Cj>J?V^>glPCV{_)^5@V+-syRVctj~( zkQJ0BOga%u>wM!(BjlLaUA|`Vikzx;WJ}@@{xUwk65J$MV-Wl2j0jm4K;)!Z3Y5<2 zFARu2)b94b%>5t6sEJ(F7UE%`li1zvV#$^;tN zr#x*-3(9^)MvWHQ%9~$PUNFDlFrXlD*UV!Lw%6-2KVe(aEwRtS@jTMY%)|s0Mi!Uw z(~|g29IbHEHJYCYC;dJbB0ONOSd=b$Wr)v|v{`ywfJM}Wgsupkmk3sEKMQ)e_ectI k{r@|Z{@1OvW=fYOSs_*Kq>L}{bqeqV(J$m%$(W6I? z9*iI&)(|3+1`$&j@*~Mu1j29-3&s+VLK^zx*!)+-5k~!E1FjMfMtv-PVaWk}e#^l( zzr+zop!y8e;G0J*C4dSv7^uPRvoA4237Bt=-(S5sOMZy?NkB%R{z|FW+ldhXzfdMp z`jaHt0Y}P=1=Jr$|Mi5Q1Vm)$AE5pu$vp)Uh&Umo-`KCglOa0|f(*#ee;eultcKjY zsI&&W^%&?+PSlW_7lrgwsnG+Ze|A3PX2alti~{|J^e11GVx~cmLJX_}1^kQ}6fpu= zfH8ox#A%QM`WbNm^cw;Elq_fvD-*CGI8`9@L7eEv9NH+*cFMpxgyD!0tOchEWTF`O zAU+}xHUwk}WbzyjS~eQ#76`+hj=_^ z028^04QvdaTQHaat3(v5fYE{g&;%kjfI3X6x5=^zFcJV-!02p&fuC9B5z@GzWdVQ* zFtTB=fWeXgzy$bY(gK6cfKaw0TDws$h&e0&-myTEqZ=4@`xMlAe&6{Io*RWysAOhY^nha!`n$-9An{yupe|Q z$z^~?TNL_1uT~jgb4djgp~ra)aA`>x4cb~Yf#j4)QwTe9IVQj-lgQ5_kO3BPxX1)B z6=ER)FoClI2BPp$Xac|h4;9Kygc3GA2{eJ93K(D#hm|^GECHw{w~`_TqVQ2@!!yGG zgPsJMz$?xYkVQ7^F6;&mkic0H0}LbpHatp-7~s&C%WY{fk^nfNw~Qr#PUsKL5-4;+ z_IM+BF9Z@8oh3zqjDZB=+?EiZTu2r=AuicyQ6|Jk0tM9!ms|+CioX^xz@elpF2@ok zT?tvxQn3t#-xm^vxv0S&ht6C1s4x}6P#pTj-I9tp;c#_YlvKnChdD|amomU$lC@j{;de*n%HZ2F!taij zC8G=i0S4mVN*D;fs00=Iv4nxIp}QfmhJi1E_a*SYXc+^+4-kL^o+jmPD0mxqkg#?` zYZwUJ4WSz?Wgv7nv{nM21Hb#a)&^i2G~jGVto1^{U;JCkK;S#_Vo@H*!mnxKbqrhw zy(CYFwG0Fvi{*L-!d~sMt{zB2Kjo07CVpMcz~``yAYRMBENCN;RZ4&Dku#PlT zGcG%&Oz}0`U32B<#3`-=)}gW+XE$^x3KFvHu0)1=0mrg62Ly8+3Ns(VS?+JwGJrZ1 z=;GiC>1Y!2`gl<#8A>1@3N;jn;>+ucI0-eU#{H0I>lwhDI!rUJ63G%=z#gU%$V!pS zg@O=8P&|mZ3=;~%6oIT32%H&*$U(J0keYFL928Fz-^5OsA`le=fs4igX4RrvAaI_P zDwxrI2q7x^Q6~Z#S1OT*hy-v@`Kl5FC<2Nf3(sT__G#Alcb7##@S{xvBdOkc#l0T4 zt1&QpLb66%N?|x4l|VH&geQJO0ujJVJ+Y+f_KB+L9AF2P$nOUl^?~DfNoS0u5j|eEXH|ol9Az z#h&3*VV`kh4nThfgRQfF&{Y?;tk}8IO?|0-?--t{`hhSpte#Au9itL$sKD;Azgx-m zzhkn;Rq*QKx0M+HJ05Nrkny?EAsnfEp?qmn)Ujf#M8HAqNA84sYYr~>d_SZd5{yd+ zX$q7`*0lqXJ{9)f{2M!@$8K>QD>itkEC;o8SfmCF@9ok)_FAy-wFG;PgE}8ky7!K8 zwJ-5TZV^{3>~EMsjpt4!+OMJC-tPHI+bfo$o)MTYc#bkKmR!x1NSlGG^u663;+HPt zT9E*7XJTbgjSPwYXQ0xz@~D?z)i;79`EKH5us%1HE`c+D;f+mMK2x9l%eYn~K)eJQ z46P;0HJ?9r-`_r1-o#G#xULa64hATLxVTGVs5k$(Sf-!;PP`PgjlglB90yUZ7$j_Y*(b!`gE{@ii4J1w6E|7k zky>@$M-HId5?gIIpIw03xUX;MH+c7G;qMT123F}88#q$?IgcimgEyX9u?&0s#N%raAeK>fO zb(_+!Z*XTiv43b_GZ8_SSNrHtO6T3<-QB~(!-L)3INE(aMIJD85PW~zpnID%f%)ejk1w>t)zQO`sVNAOsD`(Aw-a(K zetx}#W6Ofe1-zs?1wgH+jdT(pFpLVZr)TI{FP>PG}CG?bDRMCWLSXP)>i!f&ZD4$a$c+ z4f?g-Pg|A#94JapY87Zb{aWw&o_=OJMCnPb0IJZhug*yfIq#YD4d|YkU$ZQM)0J>J zu~QblTI3zfkaY9Q&~Ft;SHvlW65%0A-s^(Zl^(G@o}~f!epLoEoZtF8B5X3gPBz87 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 WM!ox5y7PZ55bDZ0N_7ghVgCn`=NY2_ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_47.png b/app/src/main/res/drawable-nodpi/weather_tapas_47.png new file mode 100644 index 0000000000000000000000000000000000000000..6b8b85567151c0e5e4af01aab7afdb767fd73baa GIT binary patch literal 5010 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_1.png b/app/src/main/res/drawable-nodpi/weather_vclouds_1.png new file mode 100644 index 0000000000000000000000000000000000000000..bdd8df6b05bf927ae8db5116ae973f3db88b1b69 GIT binary patch literal 8098 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_10.png b/app/src/main/res/drawable-nodpi/weather_vclouds_10.png new file mode 100644 index 0000000000000000000000000000000000000000..3bafd9be84bc328de91249d6907ba700401f99ea GIT binary patch literal 7734 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 B_gDY` literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_12.png b/app/src/main/res/drawable-nodpi/weather_vclouds_12.png new file mode 100644 index 0000000000000000000000000000000000000000..99c362b9ba8cadeda85d57cb951a833d693da73d GIT binary patch literal 7654 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 U6`r~yNB{r;07*qoM6N<$f|NmG)&Kwi literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_14.png b/app/src/main/res/drawable-nodpi/weather_vclouds_14.png new file mode 100644 index 0000000000000000000000000000000000000000..e9ce659f16d83f0d7a0023f7c08b5e490d9d04ef GIT binary patch literal 5679 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 V?_Z;ZLL>kH002ovPDHLkV1iGx+xGwf literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_15.png b/app/src/main/res/drawable-nodpi/weather_vclouds_15.png new file mode 100644 index 0000000000000000000000000000000000000000..7a02bca3a1fcb58eb019b83b278f5c570068832e GIT binary patch literal 7885 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_18.png b/app/src/main/res/drawable-nodpi/weather_vclouds_18.png new file mode 100644 index 0000000000000000000000000000000000000000..1e140bbd0753ce4e7d37bf197dfa2e686fe0638f GIT binary patch literal 6284 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_20.png b/app/src/main/res/drawable-nodpi/weather_vclouds_20.png new file mode 100644 index 0000000000000000000000000000000000000000..419fdf057bf448ccdf14da50892d9eb07e29c09e GIT binary patch literal 1696 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_23.png b/app/src/main/res/drawable-nodpi/weather_vclouds_23.png new file mode 100644 index 0000000000000000000000000000000000000000..c3f8771d7574c7c23651697f27b9e6a8dd2c6671 GIT binary patch literal 5604 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_26.png b/app/src/main/res/drawable-nodpi/weather_vclouds_26.png new file mode 100644 index 0000000000000000000000000000000000000000..6c7b14fea95f3ae2e738d5b8c2ef29516b09f578 GIT binary patch literal 5084 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�JO%p5_Pu_M)fP*Ecr^#mkm%HkG3t)&0Tqx^AE?F?Hzz*eaO(V${i5 zy~K2(}3zr&$P~20XxifD2*gC=?ppdpGRBx!6?|y`V`-LgY)` zGz``<*}7zbu#+JfYv^^_ zy`<=F9cwCM(92b|SEyBHq74L-W${&cV0HT)z0n@~Z1mQph<^gW6Hqb0GrbT8y99cJ zoTb%eRavBWH)J>=*}L>FOC$tE!&2)@N(cqe=u%DDQ_&c82?S{{EfjYPebd<2Fw>dv z(a!3Za}_n%(+LE?ve@d@5My+nViuKVHLI>krAE2xp<~fi*Cwqqc~=nBq@EH43!C&c zG!s?K9)5bswN;* zWq>frMSM?7x;rI=V7L(pi=jbewaA1EJ6{e~)VZcYfYxMBwoykJHf0=X5Q*Ac%{95? zqG_tC$gbJ7fk}`8R2mx^L2FI?ARe_Wlos2J!v|l;SWaAABZSNGwA!j=2oFuuKLjs*54}r#fBgpe5X^E1y%pJJ~29eX+e|URumuT~FtWONAYExUTM1Xn@r5 zS)*E`@u(km>$DV~xca%Ict9K>8+SAAi`3OLp^3e9DMnTcOW};Lj}3__u}nIXjO^^F zRzS`k83CbiG0l+CxbK#0M2<+9XZjHQh&3k>=~51!eI@cMD*M%Bh4RstGKo4lRLf{q zZZEzbArq>b9X3RA!kXcsfXW-Jpt<7#xR<}EtjJX@cWs1sN7aTEwLV=<6$*(a5lr^8ckz#(KDrqA3O{Iz`zKF$N((EjT()v~7$6yr6gZkq0nh@k zwzkoUXdH|rR+I&YZurUJL6_Yotqy_q$=*M?LIfW_PR%iWT|ESbhs*Qa9%j{2Vks0` zTzo>o(u=5G=#a5T*K;^kZQg*9BLJTG{R@CkUuzOwUjZYu_wTX)!8uOAaJG%^+#lm$ z5|}na>_vD)O9(BM_#LGT-s}m7SuQ03mkUAM`}tdCuJ+GQ%<=x^%PThe=Z824!?Dpi zdeW%e!UV(xlV*eno}XT`C%;4xs|i{9FUw5~2@u>oxBwUg_frfX-Mv2z#uc8)JiLDW z=IvW_`zIUw$#RL~i9ZxE?6<|b}a4^sYlcPfxxghUve_C!1=I28a9!b-0f{rBKmdlz3Ad8|lmQg~i3NZ_k*vy>A?RsvdEV2o^R!v1WQv*c zKCT)TIF85sI3(az*Eg5Qv$K;+Qe2zFcy8z(7BDLhZxE7~mx%qoDhY!pdFTRInS=zs zMZmqeJU_>=CytzPEL%z@a6aRgkc;AsVqVJ653Y~}MRXn*0D{DjD3^J7expEKUP@RF zrdfC|T%hFs{ynqp>gwG)1U#-gaKVttT;Ol+;5@c4l8aw=D3nm3~Txm>yIClcFXUM;3V%QHVIDj=j;S&qtIf%vDRGa}>pDGpI^ zio$~&{ug<71z6W_Pfwpi|F7E#-XR_x6>tO@{QjEs4~uG;;Sr#K?C?g9*E+n{;a=YX zh#YF+GfZjV8Abu5N@L*2_-){f9wS`N@qhI9q zFO*uH`FHpJ|Mee{@O~|@C^wt9-;;aIS5HLlHII&X!z!1&$mYc#|K-JhZwqy~ySggZ zxW9b4+@0PtyBBgi2KD?;8~%|MI7GNt`_X4|ovm)QC)ewXlVix4KSyTWl|2f^;@4^y y1)=9p)BdeJc;7C!KI*S{{s#Fw|5on*L;eM2J)BN=vGh6s0000%UfPx#mUUc%+IH+u&=VU-QM5F%gw8FVpJs;x#y zOSikev$ndZtgmNkZGM4+projvq^F;vrM$nwh>MMzpQD+bpp%xGij0q@sja4|t&)|Q znVg`&!o4;y1ulwyQr(Lprfa(ud|Mjl%=PumzkZ$$jp$(qRPzBf`o@)U|`|me8yz*TV6`?xo+}zjfs>SzeOf>GJaI)Gw@C6L$ar5?4t?K~#90 z?OF+28f&r^6c<1Vf!^Q7DrsrRe(t@@an`X#^Qm;91{w*-Be`cDY-PEXGZnf}W`koNic#l;07i;IiX zf1xGB*%ucgk=YqvW@i@`$qrM0f$-sRcG4b;9SVuX2m|@zC!Z_;nF|D_rULwPVEl)` z9$V&&|!RlX}vg%w!4|x7Frd zGa8LPySTnQBnW@b2!ThLn+yCS5k{C#MSMxE&j+X17iMRcVx&ELQ>ax-)n=0cMDH#x zg%yHRKM|0DssGgi!P&#>!o|h6Z+CZh-!3k0aL7nxW+|LV-q3GJ@w2}}n)uv|ek&BN zeLs-T{)F-=c0U35(W8S4hnFW;HI{0yYOPtTHUR)I=)Kvz zxQww4{_tGE@9ZD+jX&qx|IrOk9yWVjxRPbbv~0_q77HdMcG#{++Co zEK-sm7H(DBFm+egB*T@8x^7vfs$05SE*2}*YOSa$73f0%!a;Ib)hyc?4BSesR==EG z`~v`?KR`*u0_D%YlT?a-mEwq>ow+>MELW2>)9Q`vo@16us->HzB$})~ycFnSd z57#OeOBJizZ}nS^PNQqd)!p>s^zRamVv>#zvp;IzVfow6`0J;%FR?@+?+vYzWZ0vA zzdITYd$v|mp;?sx%hV*LB&oVIZ4JMi$4G`w@&AdMAFc(mQ2Q1Rt|hwSy_pXC7E1HW==G(Z|T~w-DtOA)NX$` zFdSDe$(kzJ1IM);rC5?H#nO3hcWZzDZ2xR;@9Zd-JILS(GRc`V%3ec4z?(PwkpPyd| zIX^!K3LrT-H;1i;=Xg*K1dT?&+ZaM=&r?Tz7-QHSNw9al0tAXG5FD(;GmvBg9-K*| zVlRsVGv!C$JThw?27val`qizYydvM;-d3o>)$i&kwRa5UsyuA9`n_JK-5>y+Rs+#J z^z2Z`=yv+87Q$UqqzeA8STE|*37HOFJOB=c5L*I*6qOeO5M=H^-E%g*M9O{bTl>(j zlu$jOpDQg3zPVEeEhud?aQ5~C`2gYF^9J=y!%vt%@)#N|I*n9Ut)%Uftopae(sznuYHN0zm8~G7~#YTxYUb zfIPl}-EWIUWRVO2jKBwg|Bu$n4ICLk(CLy5I&gv4_bk`xj`UHdLlJ?3)3sE&BB4e~ zw(aJHb||O1SgS^_&@^K+k<_wp0X6{jFT~e5oL-R?oF4j%rBZR?1YwD2rH8~D4haFJ zAW9pgGYVN{Ngq;3A_Q9fhN0QIf~0gtUP!}p*0>X*D>W;GqIrj&7+GJQ3XuLqRMw?% z{2+IzJXHeAt%KVS=2(wrfArPc2vC=J~U zmF0>$8Vq}Gv0AKBN2u4MQMIh9rm0r03WqQO)jxzFO5f7j%I?wL9$KoVnL28zq^fKM z8NpOXAA>0%^&*15?HN=78{Hm-0`zrTje%u(gCQycSKLOc>x^1MHCnS_EW1)NZ5;(# zDOHND;e-YuTUT#00zfcGApi!I%^ja3@L_$4%pfrYg&e{0K($qt>r%h{0PpuH0Q*z{ zDDQ_|^kEM`hF-sChLEL*lVPK8N>LMKI#gD5+p-MTHe5~9bu`d-XGht?Spb;iKsb@P zIXTahB1I+fK}f2^KLU#?l@;0PKRi(N>mvHPy%4&P=QzXu&>Qt(|DM_J84j$2$Y^)k zjwTn8n&_2#+bk%^ko}|FZZ>nBSc)(JP-srVBq2D@QwxDMg<=8GfIepG6Op8D8vqb% z!|nrOf8e6*8_uYUz!*}q?GFu|RKpGU+-|v*a<|bPI%j7{#Up5@s>BruB`F2~!Eq2W zhlUsOc}1L`RKr-7Z9p6YHnuERa$64!0QJAo8i9#vCjLAcwjLTV1RP@M)`+qL%^yFG zJV|yvE7U*R-`d*R*jU{?*rkd{B@qCgix?Q!p=4%dckAeEPa^URbb!=BxEk{y|&!X;jZfoQH`}doh zXh{d$6_STbX~Y26VqtWxON z)(Bl+si;&tl`@Dy5&4U(e^#Xe@a$RhDz~+|`HDJX1|2<#o|I0b6jD2+F>)b-IV!xC zjKA94+<1Ei5}~^g3m9~eNYRhrM30!N$AeDU>D z?TvoJ+*G(sEX5+J*dZv%(^;K12@9ZNFB!orAOM6fK=7NdAMam6r>DB2hA0N{j>g*> z_J*Eg+k^X2NY~0JA=GRDKqx1zP5wf20sjIZ3YXWh!%KfiePm?hg+(HRW*#54A>KZ#2MIWSOQSi&9ThD61B}5KMyGpnwHC6fOYcF!p3j zMjo&UW|o%1oC&KN8*krI7@PvdsSxAq*RR{EJbGvg0BA+S`vHiEZdw|ubx9UOaBU)W z>K*lJy@+-qIx&G`$9%gGHV95)KnSdZLyd&W{zL(d_ zZugf~$yMWHVQrdY4~ zKDxUo5P;1tCy)&Dy)H} zq;NCgZm!Y~+{sHa`vP95QfOS=6_V+Q4!gRzn7?#YurtlRwzubgi}DsC>9WpcPC4c)YQ{T!wHOL@%Sqr z!4|vW-L|U83ef}1z%Dowy0c(zq`l4nd;~Z+Gb;$1I+}!V2suL0WQqd{h3G{x{d_VY zqal*|SPVT0g2^z>7FdP;eGGSJ+j~-p$daOnur3zytoVZHt}s{Q9#AC+vLX*f4Bs;8$fOi;EoJ~Q)}P6&(1?Hm1ry5A+1Vb*8bukIlMIPN7eQC6Vr&xX zt855xY6?3t19esM0)g@UfM=k5DM`g@^*oc_d8~z#C?p#sGw}?~#$)|^$3zxMHH9{- zr(;xqCl!(WC7x)65E!Bt%n@J~3K4?}W^nAU774Nx~9f=Wt*?#{eE7JS|3RREz{aI@@M$ zN)%CJrYvBvCM35QUPO)y8^G#BD8VO@E2c*I2!01niIPR-3g;+M$;_W5eHZuu7QX|) zK3HAF@p($%XEgcwd<0zOilXk&o3J|9Lbc3X8V{!5a}clzuv01frj+H|^Fo5skj+0m zJw0AXQY@fSKdNtqiI0U-VG zfI-Bb#njaNaV`^np7H_k#R`w;Nh$#u(hl`U2mlecLJ32lj8+sewXu34&pbSk0y-uG zVdqO@`!loU2jDyG4z<1GTsE@=0ONZdtRB-bQGtZ|U7BQ$_R5^Ony4nGcxEcCJh_o! zn7f0wdd%D%QX@`EhGuV|aQoDjrW?#SmMO9R#1ajsPtp(h&n4J5Kdm+L*wFxzX7@Z3agNQtUZaH&!p(`;V}lDQUOtgfq?lKY`{aG;5;STV3f)J?$`!n437ZV z?mSKT-=2Pb{rYVC-8L<3b6D10CStSeduVTbVZ5;q zE-s2v6nSC@O2|n^;sN2^Hj1Fgeoe)?~&fXuLvZJMfrXLZ=e_ z2;nVHiQVCB5oG*_tejbxJdJf zB45OZ{Q@U>4x5yTdj9z%Yp3~^E=jNpJ3LGr&MZ#-q=-A(@oPZ1R*JyjQ*^b)AP56ngX`5MojcCTKhYj+2NsK^rhatq z|Nnj&iO5rNtGcuE-MuEASzL8OIks>qx@1m8=6>dt7k}0kbJOB-*S}HT@!$OW<>$-d zzMHT8#Y+zUwXd7;uNnD{d3?M7MCKkZ`~T%yYN>=)Aze z&C$}bwz#*rrn$Pf(bCPNsI0fRw8Fx=g@}gx=Z?k3#-5&;qNSy%s;Q=^sQuk(eSdtL zoSKD(eZRuPv9htgvxt$9iT>t*`q*Hyw6oXP)vBzlq@|v_t#+lTto`73#K*|~>T#Hw zm&Uhz#K+0h*3zM*rlqK>nVg=})zswHvd+-X?A3h3#>kkOnzyWhkdl(Kx4FZ|$<^80 zo1LE7+}z;JgUrms(bCV!x`VQ|x6jbbr>d_0<9oWj!28%;sjRKT#>u(7yxGf>m6w&1 zmX@ZfuEWR6`qom+&B>3FlCrCg`rBLl;bNYmquA8JoS&kdo04;ObETr2)5)QzqmHAU zhv47Um6w>&$DgpNjMdi9hlhdw*i!!7ME}`C)YjME-`>5oko?$6|Jz8ctf{W4my3vi zjgOA}*iM_5h^U~5eSUqzy`iC`r_0RC*3h(sgMYlXo9O81|KLK|)x>{(dFs+}+1l6N z;NWvWvqoJj#uClk3mz%4u zv!<%A&d}4Stg)AxpofZ%$H~mHwz{;py^xcbzrx6VfrhNGwBh38jgXa!jgiUB(CX{# z*Vx*=!Nl9$-?q8D($v+kw79prz=MX0{`Q>z`o;eAzj%9r|NYwV@$&!Rh5p%d|LB?i z?WXDE(f;wW{`s)|=ZgNzO8)%O|HU@`yfpskUe3?V{_=?bu^rpm(Eqn5|G^Lb;&cD2 z6XwjA=H0;m(q{jq6#npc|I{r0oDKiX8S(0|{M1eE>cjusIRCf}>9}n6?3nzmEbH5# z&&syYzKQd%O6JUA@7{@DVP*5gZoIB~?(5~n#JAMFYHDn8+w+{s0001_bW%=J009C6 z1qlZX0t_$`4;CUC6&nvs1a^lm6d+jr2_OX;L?-?{CTR(~Lt2@i4K3(UwK#WE8Ql`t z@^0%hWUe&gW-_Ei!v3Eo+)a(|?1%m8{)UEG;pMGkDRcRDwL#98(>(EamGjWqw{XH< zrp?Tz{rmL&%l;?+ywK(T_4vH?@q^y8p6`&r(Ea!M^OX7f{?+03UHki@<=*+;!q`BJ z&i?NAPSkQL000-bNkl0c|g-w))f*GHraPY5k*iG#Rah{+A4Lc2(_-@hTF92 z6s4Uywbp92wYECr(pJA}t!)-ULKaLy3=)$-BKpltU2xh0>L|2MT{@y-9j8vebKm;~ zsMAjEIRAZzJqbDIoqOMX_r2e*Q>TZ4m)Fm~g5cc&UTyeAZ}j8u{%@WGkvIDgiM&N( z5Ad4^ARVF(QXY`=Nbn3MA(f|dbAKLL>Qh@itfQg-`BtC#2z5)a2 zJBNfMK$lo>;=iT9s}l<~8#NnhpdTU7FAxamOyAj`ep~}L0zx}#cr*csH@BP(+Apwk zKwv;XKxcdebPf%r-va27Kzddp@$>Oy#D7Nt3%Xd$JjOVQDKxY*1O4a`+gU&W_rQ;m zLd;$GiHY%x;?C%q?|6R<7US+5+aokIG&VLg7T^2R@9+WN-~miPPEdx3J(J>51knE> zn3U>1ex1qi&Wx%@{~obDdi02;A0zM;OP{f!^a_N7*&s}bM^iwPb&41h#x_L7pLc$7f2aLg9JHIj~%;kA-?Ey z@WO=)M~ombJz~ims0a>?4F*C&0=b6&NCBUCEciY=_J}+iJP5}Q9yxgMNRCB=2M-=g zf}j9F=^q;#LcGVdNO_CLJ*Ezv|-T(;J}6r+qNxQ z1Q~d6Aq8aN2!H>q6ksBdl9H7L4T0?v9^QLzQAC7T%!g0o52ZYV^J9s9(S~g+R;+lP z;my}qtk`y71606=g@ea}d-v|$GxMj+pFd^O{7tiGreyUZ2|N=Xik;Vc&M#s1!++!+ z0!_YeH~{W9w`|$6kzvoqEnD7v6CyT1!pM;z&(F)xE7-e4U%9!`>D-*SZ}#koy@I6@ z(ZeVJu`dC+8zHPTlz-sIbVJGwUIcouZ`@O~YSqQ;?8}$4v+GywVIoMvfkpW=^i2hu zYh?P$N(gW!I`{9J4HrVBVv!fw@NnZ7M~K9Hxd~*|wnvZt3(5R#px?NsOa0~Ay5pby z0r>0>pB=Ajyu51FMo3t(CN*`&{{8zmZ+1G59{nRwdGwD*D=YWEziB4oAQAJ@{ImR2 zKA8Pdj6bk5_kZD7WZt&dw`?q`Z>&51hX-)HHha~_AAGQE&6>S5XuZACu1|!3#G~vp zv2x$+EGYO_1Af@LAOI2G6n=>q5%7^n*^(2={2x4c(KeXBC%cvp{Xu+o=4|eq50>rS zWpT^(c4*L7k^_)JR#e)S6in>wCw@?XSA@vdmznP68-dtIM05kX5_sRkK;h>`Mn~* z8qt-bUq(hhd}Uv3Cyt-M=W)+pC$3*V-CV4%QJCFw@F4;1 zcDvGQ(v_7RI()d)Xty`a4)*c(`mw09p$p_hJ%l4ZK7Rc8`0@U8=g!6WSG>8g=yKg> z0^7fUD>$z=YRlEy@=}$yw9G1($;-e0{_o%a9r(Un*)VFBRMZ}Wwq=?-AHj#t$$!Hz z>u~_=al1#3JOKVKjYM8ocj65206!kNe&+i1=GzCWUn(uHI#ga>QBiKtsSf>};qb8v zopNead`AHu84*0@{W4vXacFo*6oN*szraN&X=}DnJgYim!{p7P)%KIoI->Zz7fT*9q6>z3^p4eT79nK^pt(&WBT zk%N*V<9fx1^^U+S`#}Qu`gZG=!A$>fz<@D>22EPrcT{rn(xt;7nJ{h*ux!}}9~U)p z`j(R?iTC6KU{X%Dw6s9N)w{WKmeK#MNgg%oiN%YflH$U9`u7S7A%4KCLjw4c02cBO zKOFGvvrkW2{KTkaVxN$fHg)RMy;Jw@-AnWzBmaoMf-0ZB-OiBb8Hk#XS(>Cy2q{kmd~M_}4{azCOsK>Qza`lly7@x-X5g>J`^B};ZS ztS1x~7w0tPep!@Vcf7W?vGHv7S%yFT2-p+ZEseExbuFuMKSotd9z}sn&5Md851=5U zAC(zF01963u#n*3py>1gZ17+o_}p{gcPmjn8ft3n_Vee@7w6>U<`#9S#qb-k@?7+g ze@gfg9}I08E@n59g3GJm!Hyj}l9R^)1qCza=jF%s^bhKu0T+CIdAAWEk%k2M_Y99q z8WhE>p9k;LmdM;Pi`>|t*FymWH0Rs`e|BA6V zWDBo{9i)H$^3NXNcP@e?)RThRv)}%6-MX~2UF&O{HFlK6N_&lS>b_00vw~s}hEBZM z4-4+)pRznZb;h^}X-jq)g&%c@UT6@B^THIRP( z`4{c@{Bt~V?b@}XqE#2W)Yn5nOYT2g*X`P6$D)u}iB+jmPSv?`^KAd1n6BMAv6ibh zDo^@=L4A|wP0w^`v{tJ@rE$xYFhJ>m2Mx%A8kU0BkO7UCLH|ur(KSv^>=(YcaN*nq zfJ^X*=)x4V+?~^UTW_hM6+z$NbegqhlS*ZhPu-Lf(yv=5U)nu00ezxIfnRGd=ya+Q zwL#-DS3`u72`Fx8xP7|`0xlu|82>ll{PnMYC3Z%C;oP}%H_zR~=ectvf*!x}XT0K@ zF7?@sEiH3ejWSh*TBp*vm2ykTk*Y(7kCmy-OY%v87ZgNDV}hc4#^uczmWIT4%iJ1` z#%k5LOr~lX<$+v&8(7yg=i8#j+Q#~NMt=n);J?7=FI~DxxO9mWkOXo-P|(tn+j`KX zE-NpqC@nius?(LIOUg@DkDiy85|q)c6IzZ4o`d0$spBRT7GltDv&n2WnOqtxG%yth z58fw!L;wbK0soaNME@5y`b(F-`s%AoH!s}0i60ku9v~S%MUQmPoKVi_3EuTz&b1oJFpxiC#R{tAw>+|M@~}d)nGav9Q>j$ylG3uW7lD`l@sEFgTXY!_=+e&r zx4&`zufP8K=A9c&O-(oM+`ETVxrJpQk+q^nkA4RU&9`!M=TJ462l`Q|sd;&M`H@M> z!~HY5@lCIoTM(BNmHOO*(bF~6CKu>SN)fgrhmIXScI;5q_TQ0!Mjipi|2F{iod4^u z?%c>}Zf+v}Tg|7x^SnKYP*5I_p54jnpFb%Y7ycq0v?d!h*#^z@TY{_2I%lXbeut4j%F1B(F(Sk*xQ8PI|M#*I6m zZq8}SLBXMsCsrZ|Y(sL?X;1v_baQj_+Rc0S70jRV{`>ji>9gX8#Gnp!6IyT)#JtXNZ3Y#;L z&x?=VpP3aL*4q;Tnu*wavAHPBgy$A4K*^dsd2(jvCkJmA7dJQGx^=SUOkM5Six;sD z(L!|Z21jdCgOOSW+JiW2Y;t{#)9Fy!Dk{{flD8B#GN49YEtAU~ZU-}jHcB5&ndl!B zDDo8qFn*efmFG94%^Jh-d4_(^1zPMo;fa`x`sPjfM?TU(pf<>VCK zF1|05vF1TedoP&`gVihWM>$R3a+3q?gx)AKnH>tH+hId{VYA6?`ppPJREV#X(V?hL}3i_3O{CrSv8Zq~aE#Y2E$e+xLrW8X6j~=`(4ld8l^CTn3X|;c{7B zZdB0nvhq@0wL-2?nl-L!tTELtmrQ8^A{I9wG{TvAahL*Ct>s zBybgLn+e7Du}EvwTDjgPmxEHRktwTX7Du&9Cc`RXvTAfCsN^MTwZY_en_X6|M$1ZT zIcZWVEk^zRO)0@)T|FT{Qy3iFt5;T5%EaZ%BlGj7%%1@PD<@1qN4|bD30RAsXzf}j z{WxFTaR2^&g{h=er!XoMN-SSi4cHY5bWjcqwA!WBYO#)#l<3rItI36R&7j5(?MT(J z!-o%7m8w)ajoUIIZ&rp!0ClBEL86~IbN1{hQ*g9WP_S|(<6pntF61#aW;G4+`wmC7 zLS|K~F&2lz?Q&ZbN{g*Qj{wV|$6albigEYMW#GLQl$p+v1xLk2d8Y=PqfG-eqDB*bTU>VU6LNUxNM;Lqm*5CJX#9r7-E zTZcnQ?U@|ZMx(w#4HpEZ_sasbT}fSo`5D| zN?a1{%Xuj(tVVO~0dOeg>fhk_d+w+K)$ z$SD^|gVIe6EuyW(=uH>`94M`*Kv_agA{R_cBBB(H!Zrax z)M}|QrOg7S9im7w92lq^^hyRe!+vG{zzm11T4NBVArin~z`v_XD~=qgAO&QA%waLg z9fjkPgdE^o^ayN_p}?Otha@0*DHlNeP@rNn%AnOk0mkeZy+tWwmYb=6r&MKih)n^I zo9H=A3XKYN2*tUy#9%ey{~Z>^k_j`y%K$`C zYbM7`?!xIa@)M{Mdhu%!I17zot@&~`2U3xO^RQLSz1D@-ko%-ft1+2PF0;9CSaRRU^o)L-AM`OH-Qz*eM$d*n zkM#o-1WF|An6;ExY8r!;-h{S~TCI-Lqj$$LbL?0Zz=eQJ$D(1S>_K~9!KQ%<&LE9t zg~P_BM#e?=>&knPun>fQR&;topFT-6126}lTL1&5Pp3T+>Huw0t7$%2Sxy@e2%1~i zXwuGs)Bi8~Jba9H5sZwa>S%LQ#^^~{DJ3SV@RGD)GxCzcXVLipE)6!NJ%+IIIu^@mQk&%J~1OW;r@wRm5&e4-s zL&0h?j_M~f0V^G^?WMGJ@Zd1T0x3alVHK#Wj#O2l!Kc(vWrBagN}N;m4C+Ux zwcacTn1E>1fCSbQA_%N8-nnxp`tsFkokp1cSnQ#pnwA$eTib;kct8W^CwB6lrNAps zJq163={R{ES1^C}ME~Hf?B)z#Yz#w!5j$vuQuu+pH4N8db zm(hJzdU~`!T|&jxL(k^aHv$(Y8M^ky)ry$z@$s|Rln4)}a~ocmXi`7}KewS4`%v5T zCkf2^BM^bUx8x=4=7FuF>41Dn(@cpK6GUJi`%zvfBEH?cmDR(=lk}Z zv2t(0{P~eEKALW0@ai2uD;`%)#Xh)({G-<`eK{ZkQGpp$A`?1DfCd~~@c6%b`0(#L z;9cPDx8LUUzXkpCZw!x0E!ejSDTiT8MeNGCq_;@8PSNS7u9>oLxO_#|3u9Q5fHS-w zNPq}-asj%x-+lLg1Tgxy-+9bKKYaK!TxCMW&z>0T6DAdl#lkh~pSx%*M8wy-T|;zF zYEw|4p5z*a4y6+m;I+qI>i|6PGSR<^y&g`ljz}ZpJ=-|4cBf- zL`VpgYD^=n6i>6cDO3nS2gfrnzdZD}7(AH|{@rnLbLaN&k(CwN*^l_WfBD@LOa(6A zi`ms%>KUTb=i&+;l}dJ!Ln?*}0QC!uoUsod9v3&b=lJe1fnk0=xcChI|Lpb=&qZ{x zgj7Jn_{Selp9>XZo@HJ<3BrM}eBkqp`Hd*zo;GbRAtfk;=zV-T`2Vvh@Dn!h+s7oR zSlux*#*>N!SOGJ}j2S+B(4gVN$4uj3)Q>+te*E~Lpuj+OOIiCJJe~eSwB5TW7W;&; zSU?6YCy#&phrk2l8A9=b0BLU@x{HdFcY0*7bYOQAp@|Ihp*|9Y0+-dPa(3@N9+d1) zJQxrY5Edqtvitc&qF)^KpMHjR5F#&rFCV|J1!=)scc literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_29.png b/app/src/main/res/drawable-nodpi/weather_vclouds_29.png new file mode 100644 index 0000000000000000000000000000000000000000..9d6d56b95b5ab2e49c2b84c2ad6be9048a5245dd GIT binary patch literal 3840 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_30.png b/app/src/main/res/drawable-nodpi/weather_vclouds_30.png new file mode 100644 index 0000000000000000000000000000000000000000..90d642d4cdcb39c82afd1c3fec5429fe0d15304b GIT binary patch literal 5210 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 UgnDAL^8f$<07*qoM6N<$f|wOGaR2}S literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_31.png b/app/src/main/res/drawable-nodpi/weather_vclouds_31.png new file mode 100644 index 0000000000000000000000000000000000000000..b73db1bf425b6285c1f89ef5c92981ac21774691 GIT binary patch literal 2347 zcmV+`3Dow9P)gwt>H8t7U+3M=*)z#I&z`)PX z&(qV>i;IhHZf<91XJKJsR#sM9TU)fWw7k5$rlzLE#Kee*h)_^ac6N4`mzPRPN}r#f zkB^Vc%*@!>*nE6^IXO9kf`aDe=JoaU>llOs0000LbW%=J00b)jGadd45@bQnBA8_m zlDyx#vac;F_y7P1K}keGRCt{2S!+)#ITB592ze*m;AgwtcH7+@hyVZo_LMu^y{q}Q z<1o^Q0)aqC=eVAyipAo`e(cA7?8koW$Nn95IP4yFIGh*XZHL|Ia=rd4cD-IsyTjre z?Yz5Oe~rZkGWveK?7qtl=hO99+ZY={NP&?VX4>&SUQgfQhV$+^06jUEVhq8BNJLT! z&3GTKr>A@2aA{3Q*2c(8il()|wZPPMi(&S>wrfr&GcoKudB~FrukY(3(N^2tE zQqH!CoV$>~WdYo$V~L~8>9f*LqeZy&?p`E z{G((LA=Nu^HOsJFPQ%bU<+URuWSle>lck<({5`zQd-5RyuNzZ$c z1G1ka$izk0p*Xva`(!a6Iw2IAloD}ZvPWgSEbA~hMbU!*y&le=5O-?}0okj`Yt@Ss zgQxzi@kdH$3?=j@rMHy`T%7LK>orCopLjPx{){ao8QjmI%knf~2-&GC0nn%x{D!f_ z*Zpx>B?yQ2gz6*H88wG^2b(gQg6cRaQ|m01zAQBY#|x1h4{=)G_M1usf+qNN4>jNf zk{(&el@Pa%LyY3}!vIC%(V;bU2aT#wDkE?9FI5Qa8mnmp_nmMU{b>JqKc{>^V}>+j z2J^=T)IQL;s6xm>Sld`GXiv#fU}R9twwp}_0w>eX z1kj9-=^6|KcgX#Oax6;J81lk6MDLivrr^^}IEY*3yJmx71#S=qQdN=@5Y{1qQv9BQ%s0Y!(1FsWZq=A~ zQ-Cf74X>d;ShNfj=>0{H8tZ*%W13JmYk1)GwE}?y+N$BI2ZJJnJoS4uMIjw}APF$Y zVPs)@zYom$92yoOlaPe_N(A14lBmllNFp>J6awa=(>!y)TLujTAq*$n?-mOqHWiix z9B|vOst`DT0E1yAK>Y`dV8lK_pVBUXsxxN5^Kq~Mi4le1Nf-t+0wVD8QiH(agw40L z=sB1|(iiSvs3-m&%Z@1g=wF-gdF4=&VgZ>wp!#aS=z~lww z*M#gt5E@G{AP&P2S&P4R5brnSU?mTnKgvxc1mw8vxkV$6U?4aaQ^dZRPZJ) zG+sxGiA1I++Eg(SQ2U=FE@Z%OX)7COEs4;|r3)YebtK91BU_vTTZVCm8q5*Om}a6i z_xt_x^FC4_Mx19TCFz3ZHFbeiH3Ewj&+UjzgVcm1V@O8~JsZdS=e-ym1xC6|AQKtn zid4k`t7;xt9!tpsAfOjm97GsE2fY6CbA$)zR7!#XqX~T*_>UB%B3M+h6`D?DH1W`8 zE%tIY0G9A)AJA0-J&Eq8lc4ukbpY9x7|`@hMTDT~p!0ryJ}3a6&c^USfJ%dgrxIAz zB(QwlYg`3U<0&)JU^M#x{Y3z0S_A>q(1PIp5`b032rQP1)t;6jG-H}Q!~mmbq#6MJ z=SX)M;LqY*xpf_VkVpgLEg!bRvQ@0sNZmw%$|zKPsT||1QV{udD5Tjr~BC zO_-JxoDLPe9t7~YKdv75)gAD~;AM5()0))H2V1%u_Ve`s4me^0&;EY~{uhIp0x_7s z;xozD+~&S)yr@D0-xcZia)o+nZoKXHpADizrQf}qVOk)@?(L2d+xt3|Df<7@i6+i zz&{=TH-(wRZ`%~-e+T?b0UQd6hvBDhgnv*dBp$Z>UiAN^@eg7D*pL1H_8*7XH>B&P RH_ZS5002ovPDHLkV1gDNOa1f%AVUiXT4 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 N002ovPDHLkV1oOHsrUc@ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_34.png b/app/src/main/res/drawable-nodpi/weather_vclouds_34.png new file mode 100644 index 0000000000000000000000000000000000000000..ca3e7a9201072bed84c2b2aebba119ae4e5e138e GIT binary patch literal 4583 zcmV3D`t!B>^RfQ&qW+R;>;M)J(X#VMt-`~{!=#&52W8dK0{p5@2<-q^gRp8#y z{pFDV*oc{|KWH4>R{pF+yCNH{@709;n)A=dgI~Q|JhLC-p1nK+5gv5{^@Y| z>V^K=R^#2s@Z*{P+DGHot^MS1-_^F`;@a8N!Q|DY|KUsN*qh|tzwOqwej_^UR6s-GK7Yp7H6Y^}lcUvQ97hAM5}C084aIPE!B@ z0|W*F2n`Su78wf(9U&$#B}4v69yu3HRVidHV_87{if=Y=eTF;zdHkoCGOD!x%9;E9 z!rT4Isp*rtfxqd|?&sG5-rD_C0l7RS^8f%3=}AOERCt`NS_?x`*%nUD;dwY<6s01B ziiT;#1emYX@|8(G#~0~Ur>4+pFthpp_xsk~2M#p%iq--Y(fYo<-g~co=T6(w(JEeu z$LldXB8Fkqzww<{q~)L7xxM^|?Nz`Y(-1&|;xSCq6cXw~&yOU21wPj8d|8o1%!*h_6oUW>n6_!On&DQ<7xlyP_>ZY)tQBaHXfhU!#$xi!C8E)2BuYM^ z5Pc%Zun33Ex-;IAfMb3Jo-(~9@IZ?tGPy(|nM~x8iDWjHNG1}ASS%Ka&=e6ksEw!D z@WmT3a3w!Ux{~VP;V?ax3HTU5lj(FOn@wlac*e7tOfHv8CZQGhL^Q$>3Hli{jNO|u zX!SoIt&i2i@WBW*o=9eZ9q) z6tMdXg~I6QXdcgeq0rwCKB;&*o6BYsQ7amQ5=g<<&_TNdn)096AO1(@w_>qmGRL(K z4gotqHZd`=pk!hqpC2t0h6Z7ao^&!A%OEoZRa%nV?5<5WP=KNR-_O{?s&bihx(9j( zI>3ln4c(f*+n)R0Sp10xdANF5kAQb8Txko@Bl{2*g5mdJAX z{e)kd8yP;U?QLk;tDF_*<`yRMFvVa`Hl9W}M3|MRgF1t@RNyjzUcTT{|5!hk-#Av#kq;G z!VnoG6EP4V1L>Mrn%W@X_CU5BTz?2TKAOy?Q&|7l(#SsHH}Kpz=Hr-OwSd+}X=DMO zFxZ2DOwbLaS7GyHn%=evc)h9tVaJ2gXCe3HME?_W!!-?dT$c^~RsW(^T!JGYATuaY zmP!Yx;XYR&w4(rJ0s5bX%L+5J^zvExP5k}z$3`PjT!7n{~+XRTuO3DfV1)$uf z<0*{~gj%h(by%0HLzm!JqyQb{;fZlp$XqTK^0!9fwIQH7P%3}~a*Y4N*wQfZfxfkM zC{M_?yvF7IAwR2CD#BnP42 z$jHhD{+kd`TTq*2fG&_u^)mv1KRi4#A`Arj?>{KJc!>NhJosC531CnuA{oF2F-eF1 zurww*6a4=mU?CDz$p9))1n2|eg|_b+0*i~-zZlLDkYCbpQY^3_ z7Wn88sN?@tmj(m=fvA8sm?$_^SrPbG6TE%>maNXIBnR!72k1#h7*7Q zvN1A&w1#HG1YERRyyE>7_90;hKY>mhg?O&gqydS(h6n!h`5z_U|M-qDKp=eif@DzK zuWiu@7>8m4(`+_D3j@devJpiQkV2Tbw=#e{JXNdI3G6l){8N|jl&>NmzDkz9JlHOg zKmjJ;rakDlU8%4+?mJu?QE3CatOpM|JMZ3ocyFb5V0!Y^a;esAg5BLFXaWAFUte`; zx-6DzS5wQQLo40syLagY>IhHDK?}SJeY!sLe^-}6e|WF^QSZRxr?ao-w~lKn4@nXd z`L5(E(Z4zJ=Gz;{2^H|+^0IVwHNHGMJ+QKJ@8R9f2VJTn$?m{ic=ZlEthV4?Tze`dgR$WpqlY!u0&A*x? z0i}U1Y*LVpI~)Se+8J^Lze{Wf9BT*qlP8bG1mnjS$F(c=VVB!)M4)Ygt+m1*34ZzL zXdL+G=SQz*CuatFA1Mm3LfG^;8t_WQ$>O`z!W-bd8XWLXpS^rBe|2$je24{&i@bRQ zq;-whw0KbfDXgy_ou8jyoUhN%K70E3@e_wam)}+nRC(d+OE{VC9&J$w25 z#p}L{i;MGfFgSv&^0ivWhXU60JAq#-3xU2q{-eIvFJ3+ag(m}KKt~Ka1Ps-86W(#V z?z-g%90E@p1dh*%KQ0s+>(}CNP#z!*gaQaWf37Gz>Q*W+>jcF3bUleW#h^+5E)ATE z3XZNs0gbgcq^^Huf^vCh{Wr*K5_tadB^V4my4ONL6&$4j?SM)HZU$Nf>%<2G3RYiU z`$60>P_CADAcC(6JbU`2R|o`r9wD&kaS_nr=Xe1L%sf^u_;m8w?CguzWoYyKd|hO9 zz07606!10F=(h@T2uf6$_@L@`_?syRjr115cz^{ zRen&W6IK;|Ljxqx+x@V!^FhG&s4(>M{DH?mT`nCorJyG>(8ILoK)K;X9Ulw;w5E|E z-}Lut724;6_HEhYf4!)xUhk``Iz|73d^dwTzx&&2Uox#rf z>dsmfked*EsZ*&|cd9#d!9KSFp27vX;RBsrLEGyPFvHpd9C-SnssW4!;Q$sh(_}yu zxbRokcLbmCoA>YIr72XE60`+gxMDzOBJBfg2UO*CD?m}uTF_ZR>EP9TdHpwGK>u3Z zQSgeueJw&}Q`y0BK_?3!8{fM}7jVLm;!)+d*$te6;3$GB5CZe%K4_IXkPxe@|GrB$ z6$zTbNdf}zO2tkllx|RZ08{nAsvbH9Y1Ac9U_qRHMK|bEDk$%)?NqB;{Y?ynKy_0z zu!Hr#crIzUSL4G413tsmld3+LvjnFdmVuz|NF+0Klfd*O{jf|1M@Nh@idMj8s|GZF zb#s&JpPZg?;dce>h64U|XCgH0a3evoD?@RTNGKnXz)|@Gq72Zoe(eS%uv5K1J3Bi$ zJw4-8V`TvI8UoxLc%=BKm*F^-oVv%kt~~ul6P0YmbT-wL@}D zswPF97?iA}I4PJPzhYy;zUcDuq=g0Eoe&-d5d9;AIQUTu@dx$^p zZh0Ao0A^*cR>4CFwhdFuV;q)ne2GzZ#OhKkJiwP~J zmU(#NRH?MZm4m@Pc1=^u3uB`No=@XsF3Af8a+N^OE!&^mHtm-=`&NTHoS0dm#N8y0 z-{YLyf&%ma79z`2dTfc+$2qc#L_GQjTV za|mx_grCiEV5!c>12QZ#Z;szOy*K365)S-Bn8`c^Z!7hagoQMQJIx^cMU;KRfOQ~98d=Xyt%_` zK60rI+P7QouH3nm)K3s`n&MU0d3<3>3%t+8ZUF|zSe9?CU|4~xyE{JPr_q~ec;rHb zIHVz0%2*?KwZtD*i^f}@Pv5Jg?zQdj{1VZYP)FIy9Hz__8J+TyOO@(Qr|Dei^mP0x ze20P)869$YRkbYYf+bPaXckq+qYj=syuT3NWeepL9bV^#t$Hclc-yZy{{>f@@o5#^ RNNE57002ovPDHLkV1no-14#e? literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_35.png b/app/src/main/res/drawable-nodpi/weather_vclouds_35.png new file mode 100644 index 0000000000000000000000000000000000000000..bdd8df6b05bf927ae8db5116ae973f3db88b1b69 GIT binary patch literal 8098 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_36.png b/app/src/main/res/drawable-nodpi/weather_vclouds_36.png new file mode 100644 index 0000000000000000000000000000000000000000..59bd2208c74c441fe07242f0f7b4b4e098de0975 GIT binary patch literal 3031 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_40.png b/app/src/main/res/drawable-nodpi/weather_vclouds_40.png new file mode 100644 index 0000000000000000000000000000000000000000..99c362b9ba8cadeda85d57cb951a833d693da73d GIT binary patch literal 7654 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 JPDHLkV1iZ}Obh@3 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_5.png b/app/src/main/res/drawable-nodpi/weather_vclouds_5.png new file mode 100644 index 0000000000000000000000000000000000000000..f6608f0d36c961723b46789d5ac6d09f25cd3892 GIT binary patch literal 7162 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%0DP>QD#_Z;&d&0@Qn{#F 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_8.png b/app/src/main/res/drawable-nodpi/weather_vclouds_8.png new file mode 100644 index 0000000000000000000000000000000000000000..3af9bab220ad4b6b33e77be581cd69517296b7fa GIT binary patch literal 6454 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

p0 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�Xei_~ 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_47.png b/app/src/main/res/drawable-nodpi/weather_sthul_47.png new file mode 100644 index 0000000000000000000000000000000000000000..e662fecb127daeb0f416037a815a385b8c9bf268 GIT binary patch literal 4291 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_5.png b/app/src/main/res/drawable-nodpi/weather_sthul_5.png new file mode 100644 index 0000000000000000000000000000000000000000..7dbec8c62739a861e0626495c22d802d9ccb6440 GIT binary patch literal 5632 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 ubkrIUU=j<3#_}$DNPAxTzY7CUr*G`2PTMp;s6H literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_6.png b/app/src/main/res/drawable-nodpi/weather_sthul_6.png new file mode 100644 index 0000000000000000000000000000000000000000..ee0961d59c5afaa8dad20c1a44d82a887319a7e4 GIT binary patch literal 5347 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 JYD3SY{{d0kv(o?o literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_7.png b/app/src/main/res/drawable-nodpi/weather_sthul_7.png new file mode 100644 index 0000000000000000000000000000000000000000..e313b7ef22b7baea3249755d84234e2681bdc7a6 GIT binary patch literal 5675 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_8.png b/app/src/main/res/drawable-nodpi/weather_sthul_8.png new file mode 100644 index 0000000000000000000000000000000000000000..56b2e45e410ba0e7fb418893cef155b1e2a6d718 GIT binary patch literal 5089 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_9.png b/app/src/main/res/drawable-nodpi/weather_sthul_9.png new file mode 100644 index 0000000000000000000000000000000000000000..2853ac1bc3430955656718c7a2c2be88f413d26d GIT binary patch literal 4718 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_0.png b/app/src/main/res/drawable-nodpi/weather_tapas_0.png new file mode 100644 index 0000000000000000000000000000000000000000..29785012a2535d58ba31a70827d26312c2518321 GIT binary patch literal 8587 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_10.png b/app/src/main/res/drawable-nodpi/weather_tapas_10.png new file mode 100644 index 0000000000000000000000000000000000000000..707d6435e7824a50328ed299c0213a583daed9a0 GIT binary patch literal 6548 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