Compare commits

..

No commits in common. "main" and "v.2.6" have entirely different histories.
main ... v.2.6

295 changed files with 16420 additions and 35482 deletions

View file

@ -1,38 +0,0 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Desktop (please complete the following information):**
- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Version [e.g. 22]
**Smartphone (please complete the following information):**
- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- Browser [e.g. stock browser, safari]
- Version [e.g. 22]
**Additional context**
Add any other context about the problem here.

View file

@ -1,20 +0,0 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

3
.gitignore vendored
View file

@ -15,7 +15,6 @@ migrate_working_dir/
*.ipr *.ipr
*.iws *.iws
.idea/ .idea/
.cxx/
# The .vscode folder contains launch configuration and tasks you configure in # The .vscode folder contains launch configuration and tasks you configure in
# VS Code which you may wish to be included in version control, so this line # VS Code which you may wish to be included in version control, so this line
@ -43,3 +42,5 @@ app.*.map.json
/android/app/debug /android/app/debug
/android/app/profile /android/app/profile
/android/app/release /android/app/release
/lib/api_key.dart

View file

@ -1,11 +1,11 @@
# This file tracks properties of this Flutter project. # This file tracks properties of this Flutter project.
# Used by Flutter tool to assess capabilities and perform upgrades etc. # Used by Flutter tool to assess capabilities and perform upgrades etc.
# #
# This file should be version controlled and should not be manually edited. # This file should be version controlled.
version: version:
revision: "2663184aa79047d0a33a14a3b607954f8fdd8730" revision: 135454af32477f815a7525073027a3ff9eff1bfd
channel: "stable" channel: stable
project_type: app project_type: app
@ -13,26 +13,26 @@ project_type: app
migration: migration:
platforms: platforms:
- platform: root - platform: root
create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730 create_revision: 135454af32477f815a7525073027a3ff9eff1bfd
base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730 base_revision: 135454af32477f815a7525073027a3ff9eff1bfd
- platform: android - platform: android
create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730 create_revision: 135454af32477f815a7525073027a3ff9eff1bfd
base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730 base_revision: 135454af32477f815a7525073027a3ff9eff1bfd
- platform: ios - platform: ios
create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730 create_revision: 135454af32477f815a7525073027a3ff9eff1bfd
base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730 base_revision: 135454af32477f815a7525073027a3ff9eff1bfd
- platform: linux - platform: linux
create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730 create_revision: 135454af32477f815a7525073027a3ff9eff1bfd
base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730 base_revision: 135454af32477f815a7525073027a3ff9eff1bfd
- platform: macos - platform: macos
create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730 create_revision: 135454af32477f815a7525073027a3ff9eff1bfd
base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730 base_revision: 135454af32477f815a7525073027a3ff9eff1bfd
- platform: web - platform: web
create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730 create_revision: 135454af32477f815a7525073027a3ff9eff1bfd
base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730 base_revision: 135454af32477f815a7525073027a3ff9eff1bfd
- platform: windows - platform: windows
create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730 create_revision: 135454af32477f815a7525073027a3ff9eff1bfd
base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730 base_revision: 135454af32477f815a7525073027a3ff9eff1bfd
# User provided section # User provided section

View file

@ -1,43 +0,0 @@
# Code of Conduct
## Our Commitment
In the interest of fostering an open and friendly community, we, as contributors and maintainers, pledge to make participation in our project and our community a harassment-free experience for everyone.
## Standards of Behavior
1. **Respect**: Be respectful and considerate of different viewpoints and experiences.
2. **Collaboration**: Collaborate with community members, uphold principles of openness, and assist each other.
3. **Friendliness**: Remember that diversity of opinions and experiences is valuable for our community. Be friendly and supportive.
4. **Responsibility**: Be mindful of your words and actions. If you make a commitment, strive to fulfill it.
## Unacceptable Behavior
Unacceptable behavior includes but is not limited to:
1. **Discrimination**: No forms of discrimination or harassment based on race, gender, sexual orientation, nationality, religion, or other characteristics.
2. **Insults and Threats**: No offensive comments, threats, or bullying.
3. **Hostile Conduct**: No actions intended to create a hostile atmosphere in the community.
## Reporting Procedure
If you believe you're experiencing a violation of the code of conduct, please report it by sending an email to darkmoonight2022@gmail.com.
## Conclusion
We encourage all participants to adhere to this code of conduct. Violation of these principles may result in temporary or permanent exclusion from the community.
Thank you for your contribution and cooperation in creating an open and friendly community!
## Changes
This code of conduct may be revised from time to time. The most current version will always be available in this file.
## Attribution
This code of conduct is adapted from [Contributor Covenant](https://www.contributor-covenant.org/).

View file

@ -1,37 +0,0 @@
# Contribution Guidelines
Thank you for considering contributing to our project! We welcome your input and appreciate your efforts. To ensure a smooth collaboration, please take a moment to review the following guidelines.
## Code of Conduct
This project and everyone participating in it are governed by our [Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to [project email].
## How to Contribute
1. Fork the repository and clone it locally.
2. Create a new branch for your feature or bug fix.
3. Make your changes and commit them.
4. Push your changes to your fork on GitHub.
5. Open a pull request in the original repository. Provide a clear title and description of your changes.
## Coding Standards
Follow the coding standards and style guide used in the project. If there's no specific guide, stick to the existing code style.
## Testing
Ensure that your code changes do not break existing functionality. Write tests for new features or bug fixes if applicable.
## Documentation
Update the documentation if your changes affect it. This includes the README.md file and any additional documentation files.
## Issues
Before starting work on a new feature or bug fix, check the issue tracker for related discussions or known issues.
## License
By contributing, you agree that your contributions will be licensed under the project's license.
Thank you for your contribution!

View file

@ -1,66 +1,58 @@
<div align='center'> <div align="center">
<img src='/readme/icon.png' width='150'/> <img src="/assets/icons/icon.png" width="150"/>
<h2>🌦️ Rain</h2> <h2>Rain</h2>
</div> </div>
<p align='center'> ### Short Description:
<p align='center'>
<a href='https://github.com/darkmoonight/Rain/stargazers'><img alt='Stars' src='https://img.shields.io/github/stars/darkmoonight/Rain?color=abc0d3'/></a>
<a href='https://github.com/darkmoonight/Rain/forks'><img alt='Forks' src='https://img.shields.io/github/forks/darkmoonight/Rain?color=abc0d3'/></a>
<a href='https://github.com/darkmoonight/Rain/releases'><img alt='GitHub release' src='https://img.shields.io/github/v/release/darkmoonight/Rain?color=abc0d3'/></a>
<a href='https://github.com/darkmoonight/Rain/blob/main/LICENSE'><img alt='License' src='https://img.shields.io/github/license/darkmoonight/Rain?color=abc0d3'/></a>
</p>
</p>
<p align='center'> Tired of unpredictable weather? Rain's got you covered! Get ready for any forecast. 🌦️ </p> <!-- Приложение для просмотра погоды в вашем городе -->
### 🌍 Be aware of the weather An application for viewing the weather in your city
With Rain, you can explore the weather in your city and beyond. We offer an array of features to keep you informed and prepared: ### Description:
- 🌟 **View Current Weather:** Stay up-to-date with real-time weather conditions in your area. <!-- Данное приложение позволяет смотреть погоду в вашем городе.
- 🌅 **View Weather by Hour:** Plan your day effectively with hourly forecasts. Предоставлены следующие возможности:
- 📆 **View the Weather for the Week:** Get a week-long weather outlook at your fingertips. - Просмотр погоды на данный момент
- 🌡️ **View Detailed Weather Data:** Dive deep into weather statistics for a comprehensive understanding. - Просмотр погоды по часам
- 🌐 **Localization:** Choose your preferred language from a wide range of options. - Просмотр погоды на неделю
- 🏙️ **Data Caching:** Access weather information even when you're offline. - Просмотр подробных данных о погоде
- 🌆 **Choose Your City:** Set your location or add other cities to your list. - Локализация (ru/en/it/de/fr/tr)
- 🧮 **Metric or Imperial:** Customize your measurement system for temperature and more. - Кэширование данных
- 🌡️ **Celsius or Fahrenheit:** Pick your preferred temperature unit. - Выбор города самостоятельно
- 🕰️ **12-Hour or 24-Hour Time Formats:** Adjust the time display to your liking. - Добавление карточек других городов
- 🔔 **Notifications:** Receive weather alerts and stay informed. - Выбор между метрической системой мер и имперской
- 🧩 **Widget:** Add a weather widget to your home screen for quick updates. - Выбор между градусами Цельсия и Фаренгейта
- 🎨 **Beautiful Design** Также мы постарались сделать дизайн максимально удобным и красивым. -->
Our application not only offers functionality but also boasts an aesthetically pleasing design. We have meticulously crafted Rain with your user experience as our top priority, guaranteeing both convenience and elegance in a single package. This application allows you to view the weather in your city.
The following options are provided:
### 🌐 Reliable Data Sources - View current weather
- View weather by hour
- View the weather for the week
- View detailed weather data
- Localization (ru/en/it/de/fr/tr)
- Data caching
- Choose the city yourself
- Adding cards of other cities
- The choice between the metric system of measures and the imperial
- Choose between Celsius and Fahrenheit
We fetch weather data from [Open-Meteo](https://open-meteo.com/en/docs) and use [Open-Meteo's Geocoding API](https://open-meteo.com/en/docs/geocoding-api) to help you find cities easily. We also tried to make the design as convenient and beautiful as possible.
### 📸 Screenshots ### Services used:
<img src='/readme/1.png' width='200'/> <img src='/readme/2.png' width='200'/> <img src='/readme/3.png' width='200'/> <img src='/readme/4.png' width='200'/> <img src='/readme/5.png' width='200'/> <img src='/readme/6.png' width='200'/> <img src='/readme/7.png' width='200'/> <img src='/readme/8.png' width='200'/> - The app receives weather data from [Open-Meteo](https://open-meteo.com/)
- Cities are searched using [Geoapify](https://www.geoapify.com/)
### 💰 Support Us ### Screenshots:
If you find Rain valuable and worthy for future innovation, consider supporting us through donations: <img src="/readme/1.jpg" width="200"/> <img src="/readme/2.jpg" width="200"/> <img src="/readme/3.jpg" width="200"/>
[![DonationAlerts](https://img.shields.io/badge/DonationAlerts-orange?style=for-the-badge)](https://www.donationalerts.com/r/darkmoonight) ### Download:
[![ЮMoney](https://img.shields.io/badge/ЮMoney-violet?style=for-the-badge)](https://yoomoney.ru/to/4100117672775961)
### 📥 Get Rain Now
[![Play Store](https://img.shields.io/badge/Google_Play-414141?style=for-the-badge&logo=google-play&logoColor=white)](https://play.google.com/store/apps/details?id=com.yoshi.rain) [![Play Store](https://img.shields.io/badge/Google_Play-414141?style=for-the-badge&logo=google-play&logoColor=white)](https://play.google.com/store/apps/details?id=com.yoshi.rain)
[![RuStore](https://img.shields.io/badge/RuStore-blue?style=for-the-badge&logo=vk&logoColor=white)](https://apps.rustore.ru/app/com.yoshi.rain)
Or get the latest APK from the [Releases Section](https://github.com/DarkMooNight/Rain/releases/latest). You can also find the app on IzzyOnDroid via a F-Droid client [here](https://apt.izzysoft.de/fdroid/index/apk/com.yoshi.rain). Or get the latest APK from the [Releases Section](https://github.com/DarkMooNight/Rain/releases/latest). You can also find the app on IzzyOnDroid via a F-Droid client [here](https://apt.izzysoft.de/fdroid/index/apk/com.yoshi.rain).
### 📃 License
This project is licensed under the [MIT License](./LICENSE).
### 👨‍💻 Our Contributors
<a href='https://github.com/darkmoonight/Rain/graphs/contributors'>
<img src='https://contrib.rocks/image?repo=darkmoonight/Rain'/>
</a>

View file

@ -1,9 +1,30 @@
plugins { def localProperties = new Properties()
id "com.android.application" def localPropertiesFile = rootProject.file('local.properties')
id "kotlin-android" if (localPropertiesFile.exists()) {
id "dev.flutter.flutter-gradle-plugin" localPropertiesFile.withReader('UTF-8') { reader ->
localProperties.load(reader)
}
} }
def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}
def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
flutterVersionCode = '1'
}
def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
flutterVersionName = '1.0'
}
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
def keystoreProperties = new Properties() def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties') def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) { if (keystorePropertiesFile.exists()) {
@ -11,76 +32,49 @@ if (keystorePropertiesFile.exists()) {
} }
android { android {
namespace = 'com.yoshi.rain' compileSdkVersion flutter.compileSdkVersion
compileSdk = 35 ndkVersion flutter.ndkVersion
ndkVersion = '29.0.13113456'
compileOptions { compileOptions {
sourceCompatibility = JavaVersion.VERSION_17 sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_1_8
coreLibraryDesugaringEnabled = true
} }
kotlinOptions { kotlinOptions {
jvmTarget = JavaVersion.VERSION_17 jvmTarget = '1.8'
} }
sourceSets { sourceSets {
main.java.srcDirs += 'src/main/kotlin' main.java.srcDirs += 'src/main/kotlin'
} }
dependenciesInfo {
// Disables dependency metadata when building APKs.
includeInApk = false
// Disables dependency metadata when building Android App Bundles.
includeInBundle = false
}
defaultConfig { defaultConfig {
applicationId = 'com.yoshi.rain' applicationId "com.yoshi.rain"
minSdk = 23 minSdkVersion 21
targetSdk = flutter.targetSdkVersion targetSdkVersion flutter.targetSdkVersion
versionCode = flutter.versionCode versionCode flutterVersionCode.toInteger()
versionName = flutter.versionName versionName flutterVersionName
} }
signingConfigs { signingConfigs {
release { release {
keyAlias = keystoreProperties['keyAlias'] keyAlias keystoreProperties['keyAlias']
keyPassword = keystoreProperties['keyPassword'] keyPassword keystoreProperties['keyPassword']
storeFile = keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
storePassword = keystoreProperties['storePassword'] storePassword keystoreProperties['storePassword']
} }
} }
buildTypes {
buildTypes { release {
release { signingConfig signingConfigs.release
signingConfig = signingConfigs.release }
} }
debug {
signingConfig = signingConfigs.debug
minifyEnabled = true
}
}
buildFeatures {
viewBinding = true
}
} }
flutter { flutter {
source = "../.." source '../..'
} }
dependencies { dependencies {
implementation("androidx.core:core-remoteviews:1.1.0") implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation("com.google.android.material:material:1.12.0")
implementation('androidx.work:work-runtime-ktx:2.10.0')
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.5")
} }
// Remove this for FLOSS version
// configurations.all {
// exclude group: 'com.google.android.gms'
// }

View file

@ -1,4 +1,5 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"> <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.rain">
<!-- The INTERNET permission is required for development. Specifically, <!-- The INTERNET permission is required for development. Specifically,
the Flutter tool needs it to communicate with the running application the Flutter tool needs it to communicate with the running application
to allow setting breakpoints, to provide hot reload, etc. to allow setting breakpoints, to provide hot reload, etc.

View file

@ -1,16 +1,14 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"> <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.rain">
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
<application <application
android:label="Rain" android:label="Rain"
android:name="${applicationName}" android:name="${applicationName}"
android:icon="@mipmap/ic_launcher" android:icon="@mipmap/ic_launcher">
android:extractNativeLibs="true">
<activity <activity
android:name=".MainActivity" android:name=".MainActivity"
android:exported="true" android:exported="true"
@ -18,54 +16,19 @@
android:theme="@style/LaunchTheme" android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated="true" android:hardwareAccelerated="true"
android:enableOnBackInvokedCallback="true" android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize"> android:windowSoftInputMode="adjustResize">
<meta-data <meta-data
android:name="io.flutter.embedding.android.NormalTheme" android:name="io.flutter.embedding.android.NormalTheme"
android:resource="@style/NormalTheme" /> android:resource="@style/NormalTheme"
/>
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<intent-filter>
<action android:name="es.antonborri.home_widget.action.LAUNCH" />
</intent-filter> </intent-filter>
</activity> </activity>
<receiver
android:name=".OreoWidget"
android:exported="true">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/oreo_widget_info" />
</receiver>
<receiver android:name="es.antonborri.home_widget.HomeWidgetBackgroundReceiver"
android:exported="true">
<intent-filter>
<action android:name="es.antonborri.home_widget.action.BACKGROUND" />
</intent-filter>
</receiver>
<service android:name="es.antonborri.home_widget.HomeWidgetBackgroundService"
android:permission="android.permission.BIND_JOB_SERVICE"
android:exported="true" />
<meta-data <meta-data
android:name="flutterEmbedding" android:name="flutterEmbedding"
android:value="2" /> android:value="2" />
<receiver android:exported="false"
android:name="com.dexterous.flutterlocalnotifications.ScheduledNotificationReceiver" />
<receiver android:exported="false"
android:name="com.dexterous.flutterlocalnotifications.ScheduledNotificationBootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
<action android:name="com.htc.intent.action.QUICKBOOT_POWERON" />
</intent-filter>
</receiver>
</application> </application>
</manifest> </manifest>

View file

@ -1,65 +0,0 @@
package com.yoshi.rain
import android.appwidget.AppWidgetManager
import android.content.Context
import android.content.SharedPreferences
import android.graphics.BitmapFactory
import android.graphics.Color
import android.widget.RemoteViews
import androidx.core.util.SizeFCompat
import androidx.core.widget.updateAppWidget
import es.antonborri.home_widget.HomeWidgetLaunchIntent
import es.antonborri.home_widget.HomeWidgetProvider
/**
* Implementation of App Widget functionality.
*/
class OreoWidget : HomeWidgetProvider() {
override fun onUpdate(
context: Context,
appWidgetManager: AppWidgetManager,
appWidgetIds: IntArray,
widgetData: SharedPreferences
) {
for (appWidgetId in appWidgetIds) {
val supportedSizes = listOf(
SizeFCompat(50.0f, 0.0f),
SizeFCompat(100.0f, 0.0f),
SizeFCompat(250.0f, 0.0f),
SizeFCompat(300.0f, 0.0f),
)
appWidgetManager.updateAppWidget(appWidgetId, supportedSizes) {
val layoutId = when (it) {
supportedSizes[0] -> R.layout.oreo_widget_mini
supportedSizes[1] -> R.layout.oreo_widget_small
supportedSizes[2] -> R.layout.oreo_widget_medium
else -> R.layout.oreo_widget_big
}
RemoteViews(context.packageName, layoutId).apply {
val pendingIntent = HomeWidgetLaunchIntent.getActivity(
context,
MainActivity::class.java
)
setOnClickPendingIntent(R.id.widget_day_oreo, pendingIntent)
val image = widgetData.getString("weather_icon", null)
setImageViewBitmap(R.id.widget_day_icon, BitmapFactory.decodeFile(image))
val degree = widgetData.getString("weather_degree", null)
setTextViewText(R.id.widget_day_title, degree)
val backgroundColor = widgetData.getString("background_color", null)
if (backgroundColor != null) {
setInt(R.id.widget_day_oreo, "setBackgroundColor", Color.parseColor(backgroundColor))
}
val textColor = widgetData.getString("text_color", null)
if (textColor != null) {
setTextColor(R.id.widget_day_title,Color.parseColor(textColor))
setTextColor(R.id.widget_day_time,Color.parseColor(textColor))
}
}
}
}
}
}

View file

@ -1,4 +1,4 @@
package com.yoshi.rain package com.example.rain
import io.flutter.embedding.android.FlutterActivity import io.flutter.embedding.android.FlutterActivity

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Before After
Before After

View file

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="utf-8"?><!--
Background for widgets to make the rounded corners based on the
appWidgetRadius attribute value
-->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="?attr/appWidgetRadius" />
<solid android:color="?android:attr/colorBackground" />
</shape>

View file

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="utf-8"?><!--
Background for views inside widgets to make the rounded corners based on the
appWidgetInnerRadius attribute value
-->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="?attr/appWidgetInnerRadius" />
<solid android:color="?android:attr/colorAccent" />
</shape>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 B

After

Width:  |  Height:  |  Size: 70 B

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 80 KiB

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7 KiB

After

Width:  |  Height:  |  Size: 116 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 B

After

Width:  |  Height:  |  Size: 70 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

View file

@ -1,55 +0,0 @@
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
style="@style/Widget.Android.AppWidget.Container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/colorSecondaryContainer"
android:theme="@style/Theme.Android.AppWidgetContainer"
android:id="@+id/widget_day_oreo">
<LinearLayout
android:id="@+id/widget_day_weather"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:orientation="horizontal"
android:gravity="center_vertical">
<TextClock
android:id="@+id/widget_day_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:fontFamily="@font/ubuntu"
android:format12Hour="@string/date_format_widget_oreo_big_style"
android:format24Hour="@string/date_format_widget_oreo_big_style"
android:shadowDx="1"
android:shadowDy="1"
android:shadowRadius="1"
android:textSize="@dimen/widget_large_title_text_size"
tools:ignore="ObsoleteLayoutParam"
tools:text="Saturday, September 30 " />
<ImageView
android:id="@+id/widget_day_icon"
android:layout_width="@dimen/widget_mini_weather_icon_size"
android:layout_height="@dimen/widget_mini_weather_icon_size"
android:src="@drawable/cloud"
tools:ignore="ContentDescription,ImageContrastCheck" />
<TextView
android:id="@+id/widget_day_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/little_margin"
android:fontFamily="@font/ubuntu"
android:shadowDx="1"
android:shadowDy="1"
android:shadowRadius="1"
android:textAppearance="@android:style/TextAppearance.Material.Large"
android:textSize="@dimen/widget_large_title_text_size"
tools:text="28°" />
</LinearLayout>
</RelativeLayout>

View file

@ -1,55 +0,0 @@
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
style="@style/Widget.Android.AppWidget.Container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/colorSecondaryContainer"
android:theme="@style/Theme.Android.AppWidgetContainer"
android:id="@+id/widget_day_oreo">
<LinearLayout
android:id="@+id/widget_day_weather"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:orientation="horizontal"
android:gravity="center_vertical">
<TextClock
android:id="@+id/widget_day_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:fontFamily="@font/ubuntu"
android:format12Hour="@string/date_format_widget_oreo_style"
android:format24Hour="@string/date_format_widget_oreo_style"
android:shadowDx="1"
android:shadowDy="1"
android:shadowRadius="1"
android:textSize="@dimen/widget_large_title_text_size"
tools:ignore="ObsoleteLayoutParam"
tools:text="Saturday, September 30 " />
<ImageView
android:id="@+id/widget_day_icon"
android:layout_width="@dimen/widget_mini_weather_icon_size"
android:layout_height="@dimen/widget_mini_weather_icon_size"
android:src="@drawable/cloud"
tools:ignore="ContentDescription,ImageContrastCheck" />
<TextView
android:id="@+id/widget_day_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/little_margin"
android:fontFamily="@font/ubuntu"
android:shadowDx="1"
android:shadowDy="1"
android:shadowRadius="1"
android:textAppearance="@android:style/TextAppearance.Material.Large"
android:textSize="@dimen/widget_large_title_text_size"
tools:text="28°" />
</LinearLayout>
</RelativeLayout>

View file

@ -1,41 +0,0 @@
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
style="@style/Widget.Android.AppWidget.Container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/colorSecondaryContainer"
android:theme="@style/Theme.Android.AppWidgetContainer"
android:id="@+id/widget_day_oreo">
<LinearLayout
android:id="@+id/widget_day_weather"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:gravity="center_horizontal"
android:orientation="vertical"
tools:ignore="UseCompoundDrawables">
<ImageView
android:id="@+id/widget_day_icon"
android:layout_width="@dimen/widget_little_weather_icon_size"
android:layout_height="@dimen/widget_little_weather_icon_size"
android:src="@drawable/cloud"
tools:ignore="ContentDescription,ImageContrastCheck" />
<TextView
android:id="@+id/widget_day_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/ubuntu"
android:shadowDx="1"
android:shadowDy="1"
android:shadowRadius="1"
android:textAppearance="@android:style/TextAppearance.Material.Large"
android:textSize="@dimen/widget_title_text_size"
tools:ignore="ObsoleteLayoutParam"
tools:text="21°" />
</LinearLayout>
</RelativeLayout>

View file

@ -1,42 +0,0 @@
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
style="@style/Widget.Android.AppWidget.Container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/colorSecondaryContainer"
android:theme="@style/Theme.Android.AppWidgetContainer"
android:id="@+id/widget_day_oreo">
<LinearLayout
android:id="@+id/widget_day_weather"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:orientation="horizontal"
android:gravity="center_vertical"
tools:ignore="UseCompoundDrawables">
<ImageView
android:id="@+id/widget_day_icon"
android:layout_width="@dimen/widget_little_weather_icon_size"
android:layout_height="@dimen/widget_little_weather_icon_size"
android:src="@drawable/cloud"
tools:ignore="ContentDescription,ImageContrastCheck" />
<TextView
android:id="@+id/widget_day_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/little_margin"
android:fontFamily="@font/ubuntu"
android:maxLines="1"
android:shadowDx="1"
android:shadowDy="1"
android:shadowRadius="1"
android:textAppearance="@android:style/TextAppearance.Material.Large"
android:textSize="@dimen/widget_design_title_text_size"
tools:text="28°" />
</LinearLayout>
</RelativeLayout>

View file

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> <adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@mipmap/ic_launcher_background"/> <background android:drawable="@color/ic_launcher_background"/>
<foreground android:drawable="@mipmap/ic_launcher_foreground"/> <foreground android:drawable="@drawable/ic_launcher_foreground"/>
<monochrome android:drawable="@mipmap/ic_launcher_monochrome"/> </adaptive-icon>
</adaptive-icon>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 854 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 461 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

After

Width:  |  Height:  |  Size: 9.4 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

View file

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off -->
<style name="LaunchTheme" parent="@style/Theme.Material3.DynamicColors.Dark.NoActionBar">
<item name="android:forceDarkAllowed">false</item>
<item name="android:windowFullscreen">false</item>
<item name="android:windowDrawsSystemBarBackgrounds">false</item>
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
<item name="android:windowSplashScreenBackground">#181818</item>
</style>
<!-- Theme applied to the Android Window as soon as the process has started.
This theme determines the color of the Android Window while your
Flutter UI initializes, as well as behind your Flutter UI while its
running.
This Theme is only used starting with V2 of Flutter's Android embedding. -->
<style name="NormalTheme" parent="@style/Theme.Material3.DynamicColors.Dark.NoActionBar">
<item name="android:windowBackground">?android:colorBackground</item>
</style>
</resources>

View file

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!--
Having themes.xml for night-v31 because of the priority order of the resource qualifiers.
-->
<style name="Theme.Android.AppWidgetContainerParent" parent="@style/Theme.Material3.DynamicColors.DayNight">
<item name="appWidgetRadius">@android:dimen/system_app_widget_background_radius</item>
<item name="appWidgetInnerRadius">@android:dimen/system_app_widget_inner_radius</item>
</style>
</resources>

View file

@ -1,14 +1,10 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"> <resources>
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is on --> <!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is on -->
<style name="LaunchTheme" parent="@style/Theme.Material3.DynamicColors.Dark.NoActionBar"> <style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
<!-- Show a splash screen on the activity. Automatically removed when <!-- Show a splash screen on the activity. Automatically removed when
the Flutter engine draws its first frame --> the Flutter engine draws its first frame -->
<item name="android:windowBackground">@drawable/launch_background</item> <item name="android:windowBackground">@drawable/launch_background</item>
<item name="android:forceDarkAllowed" tools:targetApi="q">false</item>
<item name="android:windowFullscreen">false</item>
<item name="android:windowDrawsSystemBarBackgrounds" >false</item>
<item name="android:windowLayoutInDisplayCutoutMode" tools:targetApi="o_mr1">shortEdges</item>
</style> </style>
<!-- Theme applied to the Android Window as soon as the process has started. <!-- Theme applied to the Android Window as soon as the process has started.
This theme determines the color of the Android Window while your This theme determines the color of the Android Window while your
@ -16,7 +12,7 @@
running. running.
This Theme is only used starting with V2 of Flutter's Android embedding. --> This Theme is only used starting with V2 of Flutter's Android embedding. -->
<style name="NormalTheme" parent="@style/Theme.Material3.DynamicColors.Dark.NoActionBar"> <style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
<item name="android:windowBackground">?android:colorBackground</item> <item name="android:windowBackground">?android:colorBackground</item>
</style> </style>
</resources> </resources>

View file

@ -1,13 +0,0 @@
<resources>
<style name="Widget.Android.AppWidget.Container" parent="android:Widget">
<item name="android:id">@android:id/background</item>
<item name="android:padding">?attr/appWidgetPadding</item>
<item name="android:background">@drawable/app_widget_background</item>
</style>
<style name="Widget.Android.AppWidget.InnerView" parent="android:Widget">
<item name="android:padding">?attr/appWidgetPadding</item>
<item name="android:background">@drawable/app_widget_inner_view_background</item>
<item name="android:textColor">?android:attr/textColorPrimary</item>
</style>
</resources>

View file

@ -1,32 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off -->
<style name="LaunchTheme" parent="@style/Theme.Material3.DynamicColors.DayNight.NoActionBar">
<item name="android:forceDarkAllowed">false</item>
<item name="android:windowFullscreen">false</item>
<item name="android:windowDrawsSystemBarBackgrounds">false</item>
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
<item name="android:windowSplashScreenBackground">#181818</item>
</style>
<!-- Theme applied to the Android Window as soon as the process has started.
This theme determines the color of the Android Window while your
Flutter UI initializes, as well as behind your Flutter UI while its
running.
This Theme is only used starting with V2 of Flutter's Android embedding. -->
<style name="NormalTheme" parent="@style/Theme.Material3.DynamicColors.DayNight.NoActionBar">
<item name="android:windowBackground">?android:colorBackground</item>
</style>
<style name="Widget.Android.AppWidget.Container" parent="android:Widget">
<item name="android:id">@android:id/background</item>
<item name="android:padding">?attr/appWidgetPadding</item>
<item name="android:background">@drawable/app_widget_background</item>
<item name="android:clipToOutline">true</item>
</style>
<style name="Widget.Android.AppWidget.InnerView" parent="android:Widget">
<item name="android:padding">?attr/appWidgetPadding</item>
<item name="android:background">@drawable/app_widget_inner_view_background</item>
<item name="android:textColor">?android:attr/textColorPrimary</item>
<item name="android:clipToOutline">true</item>
</style>
</resources>

View file

@ -1,12 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!--
Having themes.xml for v31 variant because @android:dimen/system_app_widget_background_radius
and @android:dimen/system_app_widget_internal_padding requires API level 31
-->
<style name="Theme.Android.AppWidgetContainerParent"
parent="@style/Theme.Material3.DynamicColors.DayNight">
<item name="appWidgetRadius">@android:dimen/system_app_widget_background_radius</item>
<item name="appWidgetInnerRadius">@android:dimen/system_app_widget_inner_radius</item>
</style>
</resources>

View file

@ -1,7 +0,0 @@
<resources>
<declare-styleable name="AppWidgetAttrs">
<attr name="appWidgetPadding" format="dimension" />
<attr name="appWidgetInnerRadius" format="dimension" />
<attr name="appWidgetRadius" format="dimension" />
</declare-styleable>
</resources>

View file

@ -1,63 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- margin. -->
<dimen name="large_margin">20dp</dimen>
<dimen name="normal_margin">16dp</dimen>
<dimen name="little_margin">8dp</dimen>
<!-- elevator. -->
<dimen name="touch_rise_z">10dp</dimen>
<!-- image. -->
<dimen name="current_weather_icon_container_size">128dp</dimen>
<dimen name="current_weather_icon_size">80dp</dimen>
<dimen name="standard_weather_icon_container_size">88dp</dimen>
<dimen name="little_weather_icon_container_size">74dp</dimen>
<dimen name="standard_weather_icon_size">56dp</dimen>
<dimen name="little_weather_icon_size">42dp</dimen>
<dimen name="material_icon_size">24dp</dimen>
<!-- view. -->
<dimen name="material3_card_list_item_corner_radius">16dp</dimen>
<dimen name="material3_card_list_item_inner_radius">12dp</dimen>
<dimen name="material3_widget_corner_radius">16dp</dimen>
<dimen name="material3_widget_inner_radius">12dp</dimen>
<dimen name="spinner_drop_width">150dp</dimen>
<dimen name="share_view_height">260dp</dimen>
<dimen name="progress_view_size">36dp</dimen>
<dimen name="trend_item_width">56dp</dimen>
<dimen name="daily_trend_item_height">298dp</dimen>
<dimen name="hourly_trend_item_height">256dp</dimen>
<dimen name="action_bar_height">64dp</dimen>
<!-- text. -->
<dimen name="main_title_text_size">96sp</dimen>
<dimen name="design_title_text_size">48sp</dimen>
<dimen name="large_title_text_size">22sp</dimen>
<dimen name="title_text_size">18sp</dimen>
<dimen name="content_text_size">14sp</dimen>
<dimen name="subtitle_text_size">12sp</dimen>
<!-- widget. -->
<dimen name="widget_grid_1">40dp</dimen>
<dimen name="widget_grid_2">110dp</dimen>
<dimen name="widget_grid_3">180dp</dimen>
<dimen name="widget_grid_4">250dp</dimen>
<dimen name="widget_current_weather_icon_size">@dimen/standard_weather_icon_size</dimen> <!--
56dp. -->
<dimen name="widget_standard_weather_icon_size">48dp</dimen>
<dimen name="widget_little_weather_icon_size">36dp</dimen>
<dimen name="widget_mini_weather_icon_size">28dp</dimen>
<dimen name="widget_design_title_text_size">24sp</dimen>
<dimen name="widget_large_title_text_size">@dimen/large_title_text_size</dimen> <!-- 20sp. -->
<dimen name="widget_title_text_size">@dimen/title_text_size</dimen> <!-- 16sp. -->
<dimen name="widget_subtitle_text_size">@dimen/subtitle_text_size</dimen> <!-- 12sp. -->
<dimen name="widget_content_text_size">@dimen/content_text_size</dimen> <!-- 14sp. -->
<dimen name="widget_time_text_size">10sp</dimen>
<dimen name="widget_aa_text_size">14dp</dimen>
<dimen name="widget_margin">0dp</dimen>
</resources>

View file

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_widget_description">Rain Widget</string>
<string name="date_format_widget_oreo_style">EEE, d MMM │</string>
<string name="date_format_widget_oreo_big_style">EEEE, d MMM │</string>
</resources>

View file

@ -1,15 +1,13 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"> <resources>
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode <!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off -->
setting is off --> <style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar">
<style name="LaunchTheme" parent="@style/Theme.Material3.DynamicColors.DayNight.NoActionBar">
<!-- Show a splash screen on the activity. Automatically removed when <!-- Show a splash screen on the activity. Automatically removed when
the Flutter engine draws its first frame --> the Flutter engine draws its first frame -->
<item name="android:windowBackground">@drawable/launch_background</item> <item name="android:windowBackground">@drawable/launch_background</item>
<item name="android:forceDarkAllowed" tools:targetApi="q">false</item> <item name="android:forceDarkAllowed">false</item>
<item name="android:windowFullscreen">false</item> <item name="android:windowFullscreen">false</item>
<item name="android:windowDrawsSystemBarBackgrounds">false</item> <item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
<item name="android:windowLayoutInDisplayCutoutMode" tools:targetApi="o_mr1">shortEdges</item>
</style> </style>
<!-- Theme applied to the Android Window as soon as the process has started. <!-- Theme applied to the Android Window as soon as the process has started.
This theme determines the color of the Android Window while your This theme determines the color of the Android Window while your
@ -17,15 +15,7 @@
running. running.
This Theme is only used starting with V2 of Flutter's Android embedding. --> This Theme is only used starting with V2 of Flutter's Android embedding. -->
<style name="NormalTheme" parent="@style/Theme.Material3.DynamicColors.DayNight.NoActionBar"> <style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar">
<item name="android:windowBackground">?android:colorBackground</item> <item name="android:windowBackground">?android:colorBackground</item>
</style> </style>
<style name="Widget.Android.AppWidget.Container" parent="android:Widget">
<item name="android:id">@android:id/background</item>
<item name="android:background">?attr/colorSurface</item>
</style>
<style name="Widget.Android.AppWidget.InnerView" parent="android:Widget">
<item name="android:background">?attr/colorSurface</item>
<item name="android:textColor">?attr/itemTextColor</item>
</style>
</resources> </resources>

View file

@ -1,16 +0,0 @@
<resources>
<style name="Theme.Android.AppWidgetContainerParent" parent="@style/Theme.Material3.DynamicColors.DayNight">
<!-- Radius of the outer bound of widgets to make the rounded corners -->
<item name="appWidgetRadius">16dp</item>
<!--
Radius of the inner view's bound of widgets to make the rounded corners.
It needs to be 8dp or less than the value of appWidgetRadius
-->
<item name="appWidgetInnerRadius">8dp</item>
</style>
<style name="Theme.Android.AppWidgetContainer" parent="Theme.Android.AppWidgetContainerParent">
<!-- Apply padding to avoid the content of the widget colliding with the rounded corners -->
<item name="appWidgetPadding">8dp</item>
</style>
</resources>

View file

@ -1,13 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:description="@string/app_widget_description"
android:initialKeyguardLayout="@layout/oreo_widget_medium"
android:initialLayout="@layout/oreo_widget_medium"
android:previewLayout="@layout/oreo_widget_medium"
android:resizeMode="horizontal|vertical"
android:targetCellWidth="5"
android:targetCellHeight="1"
android:updatePeriodMillis="0"
android:widgetCategory="home_screen"
tools:ignore="UnusedAttribute" />

View file

@ -1,4 +1,5 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"> <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.rain">
<!-- The INTERNET permission is required for development. Specifically, <!-- The INTERNET permission is required for development. Specifically,
the Flutter tool needs it to communicate with the running application the Flutter tool needs it to communicate with the running application
to allow setting breakpoints, to provide hot reload, etc. to allow setting breakpoints, to provide hot reload, etc.

View file

@ -1,3 +1,16 @@
buildscript {
ext.kotlin_version = '1.7.10'
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.2.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
allprojects { allprojects {
repositories { repositories {
google() google()
@ -13,6 +26,6 @@ subprojects {
project.evaluationDependsOn(':app') project.evaluationDependsOn(':app')
} }
tasks.register("clean", Delete) { task clean(type: Delete) {
delete rootProject.buildDir delete rootProject.buildDir
} }

View file

@ -1,4 +1,3 @@
org.gradle.jvmargs=-Xmx4G org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true android.useAndroidX=true
android.enableJetifier=true android.enableJetifier=true
android.enableR8.fullMode = false

View file

@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip

View file

@ -1,25 +1,11 @@
pluginManagement { include ':app'
def flutterSdkPath = {
def properties = new Properties()
file("local.properties").withInputStream { properties.load(it) }
def flutterSdkPath = properties.getProperty("flutter.sdk")
assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
return flutterSdkPath
}()
includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") def localPropertiesFile = new File(rootProject.projectDir, "local.properties")
def properties = new Properties()
repositories { assert localPropertiesFile.exists()
google() localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }
mavenCentral()
gradlePluginPortal()
}
}
plugins { def flutterSdkPath = properties.getProperty("flutter.sdk")
id "dev.flutter.flutter-plugin-loader" version "1.0.0" assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
id "com.android.application" version "8.9.0" apply false apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle"
id "org.jetbrains.kotlin.android" version "2.1.10" apply false
}
include ":app"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 49 KiB

Before After
Before After

BIN
assets/icons/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

BIN
assets/icons/splash.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

BIN
assets/images/01d.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

BIN
assets/images/01n.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

BIN
assets/images/02d.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
assets/images/02n.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

BIN
assets/images/10d.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

BIN
assets/images/10n.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
assets/images/11d.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

BIN
assets/images/11n.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

BIN
assets/images/13d.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

BIN
assets/images/13n.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

BIN
assets/images/50d.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
assets/images/50n.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 452 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Before After
Before After

Some files were not shown because too many files have changed in this diff Show more