Compare commits

..

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

278 changed files with 5851 additions and 20922 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.

1
.gitignore vendored
View file

@ -15,7 +15,6 @@ migrate_working_dir/
*.ipr
*.iws
.idea/
.cxx/
# 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

View file

@ -1,11 +1,11 @@
# This file tracks properties of this Flutter project.
# 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:
revision: "2663184aa79047d0a33a14a3b607954f8fdd8730"
channel: "stable"
revision: 135454af32477f815a7525073027a3ff9eff1bfd
channel: stable
project_type: app
@ -13,26 +13,26 @@ project_type: app
migration:
platforms:
- platform: root
create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
create_revision: 135454af32477f815a7525073027a3ff9eff1bfd
base_revision: 135454af32477f815a7525073027a3ff9eff1bfd
- platform: android
create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
create_revision: 135454af32477f815a7525073027a3ff9eff1bfd
base_revision: 135454af32477f815a7525073027a3ff9eff1bfd
- platform: ios
create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
create_revision: 135454af32477f815a7525073027a3ff9eff1bfd
base_revision: 135454af32477f815a7525073027a3ff9eff1bfd
- platform: linux
create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
create_revision: 135454af32477f815a7525073027a3ff9eff1bfd
base_revision: 135454af32477f815a7525073027a3ff9eff1bfd
- platform: macos
create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
create_revision: 135454af32477f815a7525073027a3ff9eff1bfd
base_revision: 135454af32477f815a7525073027a3ff9eff1bfd
- platform: web
create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
create_revision: 135454af32477f815a7525073027a3ff9eff1bfd
base_revision: 135454af32477f815a7525073027a3ff9eff1bfd
- platform: windows
create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
create_revision: 135454af32477f815a7525073027a3ff9eff1bfd
base_revision: 135454af32477f815a7525073027a3ff9eff1bfd
# 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,60 @@
<div align='center'>
<img src='/readme/icon.png' width='150'/>
<h2>🌦️ Rain</h2>
<div align="center">
<img src="/assets/icons/icon.png" width="150"/>
<h2>Rain</h2>
</div>
<p align='center'>
<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>
### Short Description:
<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.
- 🧮 **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**
<!-- Данное приложение позволяет смотреть погоду в вашем городе.
Предоставлены следующие возможности:
- Просмотр погоды на данный момент
- Просмотр погоды по часам
- Просмотр погоды на неделю
- Просмотр подробных данных о погоде
- Локализация (ru/en/it/de/fr/tr/pt/es/sk/nl)
- Кэширование данных
- Выбор города самостоятельно
- Добавление карточек других городов
- Выбор между метрической системой мер и имперской
- Выбор между градусами Цельсия и Фаренгейта
- Выбор между форматом времени 12 и 24-часовым
Также мы постарались сделать дизайн максимально удобным и красивым. -->
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/pt/es/sk/nl)
- 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
- Choosing between 12-hour and 24-hour time formats
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/en/docs)
- Cities are searched using [Open-Meteo](https://open-meteo.com/en/docs/geocoding-api)
### 💰 Support Us
### Screenshots:
If you find Rain valuable and worthy for future innovation, consider supporting us through donations:
<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"/>
[![DonationAlerts](https://img.shields.io/badge/DonationAlerts-orange?style=for-the-badge)](https://www.donationalerts.com/r/darkmoonight)
[![ЮMoney](https://img.shields.io/badge/ЮMoney-violet?style=for-the-badge)](https://yoomoney.ru/to/4100117672775961)
### 📥 Get Rain Now
### Download:
[![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).
### 📃 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 {
id "com.android.application"
id "kotlin-android"
id "dev.flutter.flutter-gradle-plugin"
def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
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 keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
@ -11,76 +32,49 @@ if (keystorePropertiesFile.exists()) {
}
android {
namespace = 'com.yoshi.rain'
compileSdk = 35
ndkVersion = '29.0.13113456'
compileSdkVersion flutter.compileSdkVersion
ndkVersion flutter.ndkVersion
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
coreLibraryDesugaringEnabled = true
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_17
jvmTarget = '1.8'
}
sourceSets {
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 {
applicationId = 'com.yoshi.rain'
minSdk = 23
targetSdk = flutter.targetSdkVersion
versionCode = flutter.versionCode
versionName = flutter.versionName
applicationId "com.yoshi.rain"
minSdkVersion 21
targetSdkVersion flutter.targetSdkVersion
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}
signingConfigs {
release {
keyAlias = keystoreProperties['keyAlias']
keyPassword = keystoreProperties['keyPassword']
storeFile = keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
storePassword = keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig = signingConfigs.release
}
debug {
signingConfig = signingConfigs.debug
minifyEnabled = true
}
}
buildFeatures {
viewBinding = true
}
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
}
flutter {
source = "../.."
source '../..'
}
dependencies {
implementation("androidx.core:core-remoteviews:1.1.0")
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")
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
}
// 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 Flutter tool needs it to communicate with the running application
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.ACCESS_FINE_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" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<application
android:label="Rain"
android:name="${applicationName}"
android:icon="@mipmap/ic_launcher"
android:extractNativeLibs="true">
android:icon="@mipmap/ic_launcher">
<activity
android:name=".MainActivity"
android:exported="true"
@ -18,54 +16,19 @@
android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated="true"
android:enableOnBackInvokedCallback="true"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize">
<meta-data
android:name="io.flutter.embedding.android.NormalTheme"
android:resource="@style/NormalTheme" />
android:resource="@style/NormalTheme"
/>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="es.antonborri.home_widget.action.LAUNCH" />
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</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
android:name="flutterEmbedding"
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>
android:value="2"/>
</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

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: 29 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: 69 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: 87 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: 69 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>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 854 B

After

Width:  |  Height:  |  Size: 857 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 8 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 8 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 461 B

After

Width:  |  Height:  |  Size: 463 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 9.6 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Before After
Before After

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: 7.6 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Before After
Before After

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"?>
<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 -->
<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
the Flutter engine draws its first frame -->
<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>
<!-- Theme applied to the Android Window as soon as the process has started.
This theme determines the color of the Android Window while your
@ -16,7 +12,7 @@
running.
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>
</style>
</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,14 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- 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">
<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="@android:style/Theme.Light.NoTitleBar">
<!-- Show a splash screen on the activity. Automatically removed when
the Flutter engine draws its first frame -->
<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:windowDrawsSystemBarBackgrounds">false</item>
<item name="android:windowLayoutInDisplayCutoutMode" tools:targetApi="o_mr1">shortEdges</item>
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</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
@ -17,15 +16,7 @@
running.
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>
</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>

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 Flutter tool needs it to communicate with the running application
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 {
repositories {
google()
@ -13,6 +26,6 @@ subprojects {
project.evaluationDependsOn(':app')
}
tasks.register("clean", Delete) {
task clean(type: Delete) {
delete rootProject.buildDir
}

View file

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

View file

@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
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 {
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
}()
include ':app'
includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")
def localPropertiesFile = new File(rootProject.projectDir, "local.properties")
def properties = new Properties()
repositories {
google()
mavenCentral()
gradlePluginPortal()
}
}
assert localPropertiesFile.exists()
localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }
plugins {
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
id "com.android.application" version "8.9.0" apply false
id "org.jetbrains.kotlin.android" version "2.1.10" apply false
}
include ":app"
def flutterSdkPath = properties.getProperty("flutter.sdk")
assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle"

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: 110 KiB

BIN
assets/icons/splash.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 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: 37 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

Before After
Before After

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

After

Width:  |  Height:  |  Size: 21 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Before After
Before After

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: 23 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Before After
Before After

BIN
assets/images/github.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 3 KiB

Before After
Before After

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