updated 1.7.4
No files matched your search
@@ -1,17 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="deploymentTargetDropDown">
|
||||
<runningDeviceTargetSelectedWithDropDown>
|
||||
<Target>
|
||||
<type value="RUNNING_DEVICE_TARGET" />
|
||||
<deviceKey>
|
||||
<Key>
|
||||
<type value="VIRTUAL_DEVICE_PATH" />
|
||||
<value value="C:\Users\hukam\.android\avd\Pixel_7_Pro_API_VanillaIceCream.avd" />
|
||||
</Key>
|
||||
</deviceKey>
|
||||
</Target>
|
||||
</runningDeviceTargetSelectedWithDropDown>
|
||||
<timeTargetWasSelectedWithDropDown value="2024-10-23T04:04:46.862488800Z" />
|
||||
</component>
|
||||
</project>
|
||||
@@ -10,8 +10,8 @@ android {
|
||||
applicationId "com.example.weathermaster"
|
||||
minSdk 22
|
||||
targetSdk 33
|
||||
versionCode 65
|
||||
versionName "1.7.3 (W)"
|
||||
versionCode 66
|
||||
versionName "1.7.4 (W)"
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
|
||||
|
||||
@@ -11,8 +11,8 @@
|
||||
"type": "SINGLE",
|
||||
"filters": [],
|
||||
"attributes": [],
|
||||
"versionCode": 65,
|
||||
"versionName": "1.7.3 (W)",
|
||||
"versionCode": 66,
|
||||
"versionName": "1.7.4 (W)",
|
||||
"outputFile": "app-release.apk"
|
||||
}
|
||||
],
|
||||
|
||||
@@ -1,27 +1,26 @@
|
||||
const apiKeysDaily = [
|
||||
KEYS
|
||||
|
||||
YOUR_KEY
|
||||
];
|
||||
|
||||
|
||||
const apiKeysAlerts = [
|
||||
KEYS
|
||||
YOUR_KEY
|
||||
];
|
||||
|
||||
const apiKeysCityName = [
|
||||
KEYS
|
||||
YOUR_KEY
|
||||
|
||||
];
|
||||
|
||||
const apiKeysGeo = [
|
||||
KEYS
|
||||
YOUR_KEY
|
||||
];
|
||||
|
||||
const apiKeysVisual = [
|
||||
KEYS
|
||||
YOUR_KEY
|
||||
];
|
||||
|
||||
|
||||
const astronomyApiKeys = [
|
||||
KEYS
|
||||
YOUR_KEY
|
||||
];
|
||||
@@ -83,6 +83,11 @@ if(DefaultLocation.name === 'CurrentDeviceLocation'){
|
||||
} else if(DefaultLocation.lat && DefaultLocation.lon){
|
||||
DecodeWeather(DefaultLocation.lat, DefaultLocation.lon)
|
||||
document.querySelector('.currentLocationdiv').hidden = true;
|
||||
|
||||
document.getElementById('city-name').innerHTML = DefaultLocation.name;
|
||||
document.getElementById('SelectedLocationText').innerHTML = DefaultLocation.name;
|
||||
localStorage.setItem('CurrentLocationName', DefaultLocation.name)
|
||||
document.getElementById('currentLocationName').textContent = DefaultLocation.name
|
||||
}
|
||||
}
|
||||
else{
|
||||
@@ -287,6 +292,7 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
cityList.innerHTML = '';
|
||||
cityInput.value = '';
|
||||
document.getElementById('city-name').innerHTML = suggestionText;
|
||||
document.getElementById('currentLocationName').innerHTML = suggestionText;
|
||||
document.querySelector('.focus-input').blur();
|
||||
document.getElementById('forecast').scrollLeft = 0;
|
||||
document.getElementById('weather_wrap').scrollTop = 0;
|
||||
@@ -403,6 +409,7 @@ function loadSavedLocations() {
|
||||
savelocationtouch.addEventListener('click', () => {
|
||||
DecodeWeather(savedLocationItemLat, savedLocationItemLon)
|
||||
document.getElementById('city-name').innerHTML = location.locationName
|
||||
document.getElementById('currentLocationName').innerHTML = location.locationName;
|
||||
document.getElementById('forecast').scrollLeft = 0;
|
||||
document.getElementById('weather_wrap').scrollTop = 0;
|
||||
window.history.back();
|
||||
@@ -600,7 +607,7 @@ function RenderSearhMap() {
|
||||
|
||||
DecodeWeather(lat, lon);
|
||||
|
||||
document.getElementById('city-name').innerHTML = '<md-circular-progress indeterminate style="--md-circular-progress-size: 30px;"></md-circular-progress>';
|
||||
|
||||
document.getElementById('forecast').scrollLeft = 0;
|
||||
document.getElementById('weather_wrap').scrollTop = 0;
|
||||
});
|
||||
@@ -637,7 +644,7 @@ function checkNoInternet(){
|
||||
|
||||
document.addEventListener('DOMContentLoaded', async function() {
|
||||
|
||||
const currentVersion = 'v1.7.2';
|
||||
const currentVersion = 'v1.7.4';
|
||||
const githubRepo = 'PranshulGG/WeatherMaster';
|
||||
const releasesUrl = `https://api.github.com/repos/${githubRepo}/releases/latest`;
|
||||
|
||||
@@ -681,6 +688,18 @@ const scrollView = document.querySelector('.insights');
|
||||
|
||||
const scrollIndicators = document.getElementById('scroll-indicators');
|
||||
|
||||
function saveScrollPosition() {
|
||||
const scrollPosition = scrollView.scrollLeft;
|
||||
localStorage.setItem('scrollPosition', scrollPosition);
|
||||
}
|
||||
|
||||
function restoreScrollPosition() {
|
||||
const savedScrollPosition = localStorage.getItem('scrollPosition');
|
||||
if (savedScrollPosition) {
|
||||
scrollView.scrollLeft = savedScrollPosition;
|
||||
}
|
||||
}
|
||||
|
||||
function createScrollDots(){
|
||||
const sections = document.querySelectorAll('.insights_item');
|
||||
|
||||
@@ -712,13 +731,14 @@ const updateActiveIndicator = () => {
|
||||
};
|
||||
|
||||
|
||||
window.addEventListener('beforeunload', saveScrollPosition);
|
||||
|
||||
scrollView.addEventListener('scroll', updateActiveIndicator);
|
||||
|
||||
document.addEventListener('DOMContentLoaded', ()=>{
|
||||
createScrollDots()
|
||||
updateActiveIndicator();
|
||||
|
||||
restoreScrollPosition();
|
||||
});
|
||||
|
||||
|
||||
|
||||
@@ -882,7 +882,6 @@ function displayStars(){
|
||||
var anim1fog
|
||||
|
||||
function displayFog(){
|
||||
fogAnimation.startAnimation()
|
||||
|
||||
var animationContainer1 = document.getElementById('background_animation');
|
||||
var animationContainer2 = document.getElementById('foreground_animation');
|
||||
@@ -894,7 +893,7 @@ function displayFog(){
|
||||
animationContainer1.innerHTML = ''
|
||||
animationContainer2.innerHTML = ''
|
||||
|
||||
var animationData1 = 'lottie_animations/mostly_cloudy_background.json';
|
||||
var animationData1 = 'lottie_animations/haze_smoke_foreground.json';
|
||||
|
||||
|
||||
anim1fog = bodymovin.loadAnimation({
|
||||
@@ -951,6 +950,52 @@ function displayLeaves() {
|
||||
});
|
||||
}
|
||||
|
||||
var anim1CloudFull
|
||||
var anim2CloudFull
|
||||
|
||||
function displayCloudsFull(){
|
||||
var animationContainer1 = document.getElementById('background_animation');
|
||||
var animationContainer2 = document.getElementById('foreground_animation');
|
||||
|
||||
|
||||
if (anim1CloudFull) {
|
||||
anim1CloudFull.destroy();
|
||||
}
|
||||
|
||||
|
||||
|
||||
animationContainer1.innerHTML = ''
|
||||
animationContainer2.innerHTML = ''
|
||||
|
||||
var animationData1 = 'lottie_animations/mostly_cloudy_background.json';
|
||||
var animationData2 = 'lottie_animations/mostly_cloudy_background.json';
|
||||
|
||||
|
||||
|
||||
anim1CloudFull = bodymovin.loadAnimation({
|
||||
container: animationContainer1,
|
||||
renderer: 'svg',
|
||||
loop: true,
|
||||
autoplay: true,
|
||||
path: animationData1,
|
||||
rendererSettings: {
|
||||
preserveAspectRatio: 'xMidYMid slice'
|
||||
}
|
||||
});
|
||||
|
||||
anim2CloudFull = bodymovin.loadAnimation({
|
||||
container: animationContainer2,
|
||||
renderer: 'svg',
|
||||
loop: true,
|
||||
autoplay: true,
|
||||
path: animationData2,
|
||||
rendererSettings: {
|
||||
preserveAspectRatio: 'xMidYMid slice'
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
// remove animations
|
||||
|
||||
|
||||
@@ -971,7 +1016,6 @@ function removeStars(){
|
||||
}
|
||||
|
||||
function removeFog(){
|
||||
fogAnimation.clearCanvas()
|
||||
if (anim1fog) anim1fog.destroy();
|
||||
}
|
||||
|
||||
@@ -992,3 +1036,7 @@ function removeLeaves(){
|
||||
if (anim2) anim2.destroy();
|
||||
}
|
||||
|
||||
function removeCloudsFull(){
|
||||
if (anim1CloudFull) anim1CloudFull.destroy();
|
||||
if (anim2CloudFull) anim2CloudFull.destroy();
|
||||
}
|
||||
@@ -16,8 +16,8 @@ function ReportFromdaily(data) {
|
||||
}
|
||||
|
||||
function GenerateSummary(data) {
|
||||
let hourlyWeather = getWeatherLabelInLangNoAnimText(data.hourlyData,1 , localStorage.getItem('AppLanguageCode'));
|
||||
let dailyWeather = getWeatherLabelInLangNoAnim(data.dailyData, 1, localStorage.getItem('AppLanguageCode'));
|
||||
let hourlyWeather = getWeatherLabelInLangNoAnimText(data.hourlyData, 1, 'en');
|
||||
let dailyWeather = getWeatherLabelInLangNoAnim(data.dailyData, 1, 'en');
|
||||
|
||||
let weatherComment = '';
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ function getCountryName(code) {
|
||||
|
||||
|
||||
async function DecodeWeather(lat, lon) {
|
||||
const apiKey = 'KEYS';
|
||||
const apiKey = ' YOUR_KEY';
|
||||
const url = `https://api.timezonedb.com/v2.1/get-time-zone?key=${apiKey}&format=json&by=position&lat=${lat}&lng=${lon}`;
|
||||
|
||||
try {
|
||||
|
||||
@@ -1040,7 +1040,7 @@ function UvIndex(uvIndexValue) {
|
||||
|
||||
|
||||
function MoreDetails(latSum, lonSum) {
|
||||
fetch(`https://api.weatherapi.com/v1/forecast.json?key=ef2cb48d90984d828a8140518240209&q=${latSum},${lonSum}`)
|
||||
fetch(`https://api.weatherapi.com/v1/forecast.json?key= YOUR_KEY&q=${latSum},${lonSum}`)
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
|
||||
@@ -1193,7 +1193,7 @@ function MoreDetails(latSum, lonSum) {
|
||||
}
|
||||
|
||||
function astronomyData(latSum, lonSum) {
|
||||
fetch(`https://api.weatherapi.com/v1/astronomy.json?key=ef2cb48d90984d828a8140518240209&q=${latSum},${lonSum}`)
|
||||
fetch(`https://api.weatherapi.com/v1/astronomy.json?key= YOUR_KEY&q=${latSum},${lonSum}`)
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
|
||||
@@ -1262,7 +1262,7 @@ function astronomyData(latSum, lonSum) {
|
||||
|
||||
|
||||
function FetchAlert(lat, lon){
|
||||
fetch(`https://api.weatherapi.com/v1/alerts.json?key=10baabdf43ea48d191075955241810&q=${lat},${lon}`)
|
||||
fetch(`https://api.weatherapi.com/v1/alerts.json?key= YOUR_KEY&q=${lat},${lon}`)
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
|
||||
|
||||
@@ -3161,4 +3161,4 @@ function applyTranslations(langCode) {
|
||||
const translationKey = el.getAttribute("data-translate");
|
||||
el.textContent = getTranslationByLang(langCode, translationKey);
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -209,6 +209,7 @@ function GetWeatherLabel(iconCode, isDay) {
|
||||
if (iconCode === 0) {
|
||||
if(localStorage.getItem('UseBackgroundAnimations') && localStorage.getItem('UseBackgroundAnimations') === 'false'){
|
||||
}else{
|
||||
removeCloudsFull()
|
||||
removeDrizzle()
|
||||
removeClouds()
|
||||
removeRain()
|
||||
@@ -223,6 +224,7 @@ function GetWeatherLabel(iconCode, isDay) {
|
||||
} else if (iconCode === 1) {
|
||||
if(localStorage.getItem('UseBackgroundAnimations') && localStorage.getItem('UseBackgroundAnimations') === 'false'){
|
||||
}else{
|
||||
removeCloudsFull()
|
||||
removeDrizzle()
|
||||
displayClouds()
|
||||
removeRain()
|
||||
@@ -238,6 +240,7 @@ function GetWeatherLabel(iconCode, isDay) {
|
||||
}else{
|
||||
removeDrizzle()
|
||||
displayClouds()
|
||||
removeCloudsFull()
|
||||
removeRain()
|
||||
removeFog()
|
||||
removeSnow()
|
||||
@@ -250,7 +253,8 @@ function GetWeatherLabel(iconCode, isDay) {
|
||||
if(localStorage.getItem('UseBackgroundAnimations') && localStorage.getItem('UseBackgroundAnimations') === 'false'){
|
||||
}else{
|
||||
removeDrizzle()
|
||||
displayClouds()
|
||||
removeClouds()
|
||||
displayCloudsFull()
|
||||
removeRain()
|
||||
removeLeaves()
|
||||
removeFog()
|
||||
@@ -262,6 +266,7 @@ function GetWeatherLabel(iconCode, isDay) {
|
||||
} else if (iconCode === 45 || iconCode === 48) {
|
||||
if(localStorage.getItem('UseBackgroundAnimations') && localStorage.getItem('UseBackgroundAnimations') === 'false'){
|
||||
}else{
|
||||
removeCloudsFull()
|
||||
removeDrizzle()
|
||||
removeClouds()
|
||||
removeRain()
|
||||
@@ -275,6 +280,7 @@ function GetWeatherLabel(iconCode, isDay) {
|
||||
} else if (iconCode === 51 || iconCode === 53 || iconCode === 55) {
|
||||
if(localStorage.getItem('UseBackgroundAnimations') && localStorage.getItem('UseBackgroundAnimations') === 'false'){
|
||||
}else{
|
||||
removeCloudsFull()
|
||||
displayDrizzle()
|
||||
removeClouds()
|
||||
removeRain()
|
||||
@@ -288,6 +294,7 @@ function GetWeatherLabel(iconCode, isDay) {
|
||||
} else if (iconCode === 56 || iconCode === 57) {
|
||||
if(localStorage.getItem('UseBackgroundAnimations') && localStorage.getItem('UseBackgroundAnimations') === 'false'){
|
||||
}else{
|
||||
removeCloudsFull()
|
||||
displayDrizzle()
|
||||
removeClouds()
|
||||
removeRain()
|
||||
@@ -301,6 +308,7 @@ function GetWeatherLabel(iconCode, isDay) {
|
||||
} else if (iconCode === 61 || iconCode === 63) {
|
||||
if(localStorage.getItem('UseBackgroundAnimations') && localStorage.getItem('UseBackgroundAnimations') === 'false'){
|
||||
}else{
|
||||
removeCloudsFull()
|
||||
removeDrizzle()
|
||||
removeClouds()
|
||||
displayRain()
|
||||
@@ -314,6 +322,7 @@ function GetWeatherLabel(iconCode, isDay) {
|
||||
} else if (iconCode === 65) {
|
||||
if(localStorage.getItem('UseBackgroundAnimations') && localStorage.getItem('UseBackgroundAnimations') === 'false'){
|
||||
}else{
|
||||
removeCloudsFull()
|
||||
removeDrizzle()
|
||||
removeClouds()
|
||||
displayRain()
|
||||
@@ -327,6 +336,7 @@ function GetWeatherLabel(iconCode, isDay) {
|
||||
} else if (iconCode === 66 || iconCode === 67) {
|
||||
if(localStorage.getItem('UseBackgroundAnimations') && localStorage.getItem('UseBackgroundAnimations') === 'false'){
|
||||
}else{
|
||||
removeCloudsFull()
|
||||
removeDrizzle()
|
||||
removeClouds()
|
||||
displayRain()
|
||||
@@ -340,6 +350,7 @@ function GetWeatherLabel(iconCode, isDay) {
|
||||
} else if (iconCode === 71) {
|
||||
if(localStorage.getItem('UseBackgroundAnimations') && localStorage.getItem('UseBackgroundAnimations') === 'false'){
|
||||
}else{
|
||||
removeCloudsFull()
|
||||
removeDrizzle()
|
||||
removeClouds()
|
||||
removeRain()
|
||||
@@ -353,6 +364,7 @@ function GetWeatherLabel(iconCode, isDay) {
|
||||
} else if (iconCode === 73) {
|
||||
if(localStorage.getItem('UseBackgroundAnimations') && localStorage.getItem('UseBackgroundAnimations') === 'false'){
|
||||
}else{
|
||||
removeCloudsFull()
|
||||
removeDrizzle()
|
||||
removeClouds()
|
||||
removeRain()
|
||||
@@ -366,6 +378,7 @@ function GetWeatherLabel(iconCode, isDay) {
|
||||
} else if (iconCode === 75) {
|
||||
if(localStorage.getItem('UseBackgroundAnimations') && localStorage.getItem('UseBackgroundAnimations') === 'false'){
|
||||
}else{
|
||||
removeCloudsFull()
|
||||
removeDrizzle()
|
||||
removeClouds()
|
||||
removeRain()
|
||||
@@ -379,6 +392,7 @@ function GetWeatherLabel(iconCode, isDay) {
|
||||
} else if (iconCode === 77) {
|
||||
if(localStorage.getItem('UseBackgroundAnimations') && localStorage.getItem('UseBackgroundAnimations') === 'false'){
|
||||
}else{
|
||||
removeCloudsFull()
|
||||
removeDrizzle()
|
||||
removeClouds()
|
||||
removeRain()
|
||||
@@ -392,6 +406,7 @@ function GetWeatherLabel(iconCode, isDay) {
|
||||
} else if (iconCode === 80 || iconCode === 81) {
|
||||
if(localStorage.getItem('UseBackgroundAnimations') && localStorage.getItem('UseBackgroundAnimations') === 'false'){
|
||||
}else{
|
||||
removeCloudsFull()
|
||||
removeDrizzle()
|
||||
removeClouds()
|
||||
displayRain()
|
||||
@@ -405,6 +420,7 @@ function GetWeatherLabel(iconCode, isDay) {
|
||||
} else if (iconCode === 82) {
|
||||
if(localStorage.getItem('UseBackgroundAnimations') && localStorage.getItem('UseBackgroundAnimations') === 'false'){
|
||||
}else{
|
||||
removeCloudsFull()
|
||||
removeDrizzle()
|
||||
removeClouds()
|
||||
displayRain()
|
||||
@@ -418,6 +434,7 @@ function GetWeatherLabel(iconCode, isDay) {
|
||||
} else if (iconCode === 85) {
|
||||
if(localStorage.getItem('UseBackgroundAnimations') && localStorage.getItem('UseBackgroundAnimations') === 'false'){
|
||||
}else{
|
||||
removeCloudsFull()
|
||||
removeDrizzle()
|
||||
removeClouds()
|
||||
removeRain()
|
||||
@@ -431,6 +448,7 @@ function GetWeatherLabel(iconCode, isDay) {
|
||||
} else if (iconCode === 86) {
|
||||
if(localStorage.getItem('UseBackgroundAnimations') && localStorage.getItem('UseBackgroundAnimations') === 'false'){
|
||||
}else{
|
||||
removeCloudsFull()
|
||||
removeDrizzle()
|
||||
removeClouds()
|
||||
removeRain()
|
||||
@@ -444,6 +462,7 @@ function GetWeatherLabel(iconCode, isDay) {
|
||||
} else if (iconCode === 95) {
|
||||
if(localStorage.getItem('UseBackgroundAnimations') && localStorage.getItem('UseBackgroundAnimations') === 'false'){
|
||||
}else{
|
||||
removeCloudsFull()
|
||||
removeDrizzle()
|
||||
removeClouds()
|
||||
displayRain()
|
||||
@@ -457,6 +476,7 @@ function GetWeatherLabel(iconCode, isDay) {
|
||||
} else if (iconCode === 96 || iconCode === 99) {
|
||||
if(localStorage.getItem('UseBackgroundAnimations') && localStorage.getItem('UseBackgroundAnimations') === 'false'){
|
||||
}else{
|
||||
removeCloudsFull()
|
||||
removeDrizzle()
|
||||
removeClouds()
|
||||
displayRain()
|
||||
@@ -472,6 +492,7 @@ function GetWeatherLabel(iconCode, isDay) {
|
||||
if (iconCode === 0) {
|
||||
if(localStorage.getItem('UseBackgroundAnimations') && localStorage.getItem('UseBackgroundAnimations') === 'false'){
|
||||
}else{
|
||||
removeCloudsFull()
|
||||
removeDrizzle()
|
||||
removeClouds()
|
||||
removeRain()
|
||||
@@ -500,6 +521,7 @@ function GetWeatherLabel(iconCode, isDay) {
|
||||
}else{
|
||||
removeDrizzle()
|
||||
displayClouds()
|
||||
removeCloudsFull()
|
||||
removeRain()
|
||||
removeFog()
|
||||
removeSnow()
|
||||
@@ -512,7 +534,8 @@ function GetWeatherLabel(iconCode, isDay) {
|
||||
if(localStorage.getItem('UseBackgroundAnimations') && localStorage.getItem('UseBackgroundAnimations') === 'false'){
|
||||
}else{
|
||||
removeDrizzle()
|
||||
displayClouds()
|
||||
removeClouds()
|
||||
displayCloudsFull()
|
||||
removeRain()
|
||||
removeFog()
|
||||
removeLeaves()
|
||||
@@ -524,6 +547,7 @@ function GetWeatherLabel(iconCode, isDay) {
|
||||
} else if (iconCode === 45 || iconCode === 48) {
|
||||
if(localStorage.getItem('UseBackgroundAnimations') && localStorage.getItem('UseBackgroundAnimations') === 'false'){
|
||||
}else{
|
||||
removeCloudsFull()
|
||||
removeDrizzle()
|
||||
removeClouds()
|
||||
removeLeaves()
|
||||
@@ -537,6 +561,7 @@ function GetWeatherLabel(iconCode, isDay) {
|
||||
} else if (iconCode === 51 || iconCode === 53 || iconCode === 55) {
|
||||
if(localStorage.getItem('UseBackgroundAnimations') && localStorage.getItem('UseBackgroundAnimations') === 'false'){
|
||||
}else{
|
||||
removeCloudsFull()
|
||||
displayDrizzle()
|
||||
removeClouds()
|
||||
removeLeaves()
|
||||
@@ -550,6 +575,7 @@ function GetWeatherLabel(iconCode, isDay) {
|
||||
} else if (iconCode === 56 || iconCode === 57) {
|
||||
if(localStorage.getItem('UseBackgroundAnimations') && localStorage.getItem('UseBackgroundAnimations') === 'false'){
|
||||
}else{
|
||||
removeCloudsFull()
|
||||
displayDrizzle()
|
||||
removeClouds()
|
||||
removeRain()
|
||||
@@ -563,6 +589,7 @@ function GetWeatherLabel(iconCode, isDay) {
|
||||
} else if (iconCode === 61 || iconCode === 63) {
|
||||
if(localStorage.getItem('UseBackgroundAnimations') && localStorage.getItem('UseBackgroundAnimations') === 'false'){
|
||||
}else{
|
||||
removeCloudsFull()
|
||||
removeDrizzle()
|
||||
removeClouds()
|
||||
displayRain()
|
||||
@@ -576,6 +603,7 @@ function GetWeatherLabel(iconCode, isDay) {
|
||||
} else if (iconCode === 65) {
|
||||
if(localStorage.getItem('UseBackgroundAnimations') && localStorage.getItem('UseBackgroundAnimations') === 'false'){
|
||||
}else{
|
||||
removeCloudsFull()
|
||||
removeDrizzle()
|
||||
removeClouds()
|
||||
displayRain()
|
||||
@@ -589,6 +617,7 @@ function GetWeatherLabel(iconCode, isDay) {
|
||||
} else if (iconCode === 66 || iconCode === 67) {
|
||||
if(localStorage.getItem('UseBackgroundAnimations') && localStorage.getItem('UseBackgroundAnimations') === 'false'){
|
||||
}else{
|
||||
removeCloudsFull()
|
||||
removeDrizzle()
|
||||
removeClouds()
|
||||
removeLeaves()
|
||||
@@ -602,6 +631,7 @@ function GetWeatherLabel(iconCode, isDay) {
|
||||
} else if (iconCode === 71) {
|
||||
if(localStorage.getItem('UseBackgroundAnimations') && localStorage.getItem('UseBackgroundAnimations') === 'false'){
|
||||
}else{
|
||||
removeCloudsFull()
|
||||
removeDrizzle()
|
||||
removeClouds()
|
||||
removeRain()
|
||||
@@ -615,6 +645,7 @@ function GetWeatherLabel(iconCode, isDay) {
|
||||
} else if (iconCode === 73) {
|
||||
if(localStorage.getItem('UseBackgroundAnimations') && localStorage.getItem('UseBackgroundAnimations') === 'false'){
|
||||
}else{
|
||||
removeCloudsFull()
|
||||
removeDrizzle()
|
||||
removeClouds()
|
||||
removeRain()
|
||||
@@ -628,6 +659,7 @@ function GetWeatherLabel(iconCode, isDay) {
|
||||
} else if (iconCode === 75) {
|
||||
if(localStorage.getItem('UseBackgroundAnimations') && localStorage.getItem('UseBackgroundAnimations') === 'false'){
|
||||
}else{
|
||||
removeCloudsFull()
|
||||
removeDrizzle()
|
||||
removeClouds()
|
||||
removeRain()
|
||||
@@ -641,6 +673,7 @@ function GetWeatherLabel(iconCode, isDay) {
|
||||
} else if (iconCode === 77) {
|
||||
if(localStorage.getItem('UseBackgroundAnimations') && localStorage.getItem('UseBackgroundAnimations') === 'false'){
|
||||
}else{
|
||||
removeCloudsFull()
|
||||
removeDrizzle()
|
||||
removeClouds()
|
||||
removeRain()
|
||||
@@ -654,6 +687,7 @@ function GetWeatherLabel(iconCode, isDay) {
|
||||
} else if (iconCode === 80 || iconCode === 81) {
|
||||
if(localStorage.getItem('UseBackgroundAnimations') && localStorage.getItem('UseBackgroundAnimations') === 'false'){
|
||||
}else{
|
||||
removeCloudsFull()
|
||||
removeDrizzle()
|
||||
removeClouds()
|
||||
displayRain()
|
||||
@@ -667,6 +701,7 @@ function GetWeatherLabel(iconCode, isDay) {
|
||||
} else if (iconCode === 82) {
|
||||
if(localStorage.getItem('UseBackgroundAnimations') && localStorage.getItem('UseBackgroundAnimations') === 'false'){
|
||||
}else{
|
||||
removeCloudsFull()
|
||||
removeDrizzle()
|
||||
removeClouds()
|
||||
displayRain()
|
||||
@@ -680,6 +715,7 @@ function GetWeatherLabel(iconCode, isDay) {
|
||||
} else if (iconCode === 85) {
|
||||
if(localStorage.getItem('UseBackgroundAnimations') && localStorage.getItem('UseBackgroundAnimations') === 'false'){
|
||||
}else{
|
||||
removeCloudsFull()
|
||||
removeDrizzle()
|
||||
removeClouds()
|
||||
removeRain()
|
||||
@@ -693,6 +729,7 @@ function GetWeatherLabel(iconCode, isDay) {
|
||||
} else if (iconCode === 86) {
|
||||
if(localStorage.getItem('UseBackgroundAnimations') && localStorage.getItem('UseBackgroundAnimations') === 'false'){
|
||||
}else{
|
||||
removeCloudsFull()
|
||||
removeDrizzle()
|
||||
removeClouds()
|
||||
removeRain()
|
||||
@@ -706,6 +743,7 @@ function GetWeatherLabel(iconCode, isDay) {
|
||||
} else if (iconCode === 95) {
|
||||
if(localStorage.getItem('UseBackgroundAnimations') && localStorage.getItem('UseBackgroundAnimations') === 'false'){
|
||||
}else{
|
||||
removeCloudsFull()
|
||||
removeDrizzle()
|
||||
removeClouds()
|
||||
displayRain()
|
||||
@@ -719,6 +757,7 @@ function GetWeatherLabel(iconCode, isDay) {
|
||||
} else if (iconCode === 96 || iconCode === 99) {
|
||||
if(localStorage.getItem('UseBackgroundAnimations') && localStorage.getItem('UseBackgroundAnimations') === 'false'){
|
||||
}else{
|
||||
removeCloudsFull()
|
||||
removeDrizzle()
|
||||
removeClouds()
|
||||
displayRain()
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" Theme="about_page" data-theme="dark">
|
||||
<html lang="en" Theme="about_page" data-theme="dark" >
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0">
|
||||
@@ -11,18 +12,179 @@
|
||||
<link rel="stylesheet" href="../components/components.css">
|
||||
<link rel="stylesheet" href="../ripple-files/ripple.css">
|
||||
<link rel="stylesheet" href="../components/md-buttons.css">
|
||||
<script src="../modules/lottie.js"></script>
|
||||
<style>
|
||||
#updateMessageDiv{
|
||||
animation: opacity 0.3s ease-out;
|
||||
transition: opacity 0.2s ease-in;
|
||||
.top_header_area_app_about {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-around;
|
||||
padding-top: 20px;
|
||||
|
||||
}
|
||||
|
||||
.top_header_area_app_about .app_icon_holder_about {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
color: var(--On-Surface);
|
||||
margin: 0;
|
||||
margin-bottom: 5px;
|
||||
background-color: var(--Surface-Container);
|
||||
border-radius: 20px;
|
||||
padding: 15px;
|
||||
}
|
||||
|
||||
test {
|
||||
width: 100px;
|
||||
height: 0;
|
||||
display: flex;
|
||||
opacity: 0;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background-color: var(--Surface-Container);
|
||||
border-radius: 20px;
|
||||
padding: 15px;
|
||||
}
|
||||
|
||||
.top_header_area_app_about .app_icon_holder_about img {
|
||||
width: 90px;
|
||||
}
|
||||
|
||||
|
||||
.top_header_area_app_about .app_label_about p {
|
||||
margin: 0;
|
||||
font-size: 40px;
|
||||
font-family: var(--outfit-mid);
|
||||
color: var(--On-Surface);
|
||||
margin-bottom: 10px;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.top_header_area_app_about .app_label_about span {
|
||||
border: 1.4px solid var(--Outline-Variant);
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
padding-top: 2px;
|
||||
padding-bottom: 2px;
|
||||
color: var(--On-Surface-Variant);
|
||||
font-size: 15px;
|
||||
font-family: var(--google-normal);
|
||||
border-radius: 50px;
|
||||
}
|
||||
|
||||
.top_header_area_app_about .app_label_about {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
.check_update_btn_about_holder {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-around;
|
||||
padding-top: 20px;
|
||||
}
|
||||
|
||||
#version_check_loader {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.about_actions_main {
|
||||
position: absolute;
|
||||
bottom: 15px;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
gap: 5px;
|
||||
width: calc(100% - 20px);
|
||||
gap: 10px;
|
||||
padding: 10px;
|
||||
align-content: center;
|
||||
justify-items: center;
|
||||
}
|
||||
|
||||
.about_actions_main .bottom_action_btn_about div {
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
border-radius: 50px;
|
||||
background-color: var(--Primary-Container);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
color: var(--On-Primary-Container);
|
||||
}
|
||||
|
||||
.about_actions_main .bottom_action_btn_about {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-direction: column;
|
||||
position: relative;
|
||||
padding: 10px;
|
||||
background-color: var(--Surface-Container-Low);
|
||||
justify-content: center;
|
||||
gap: 5px;
|
||||
border-radius: 20px;
|
||||
max-width: 200px;
|
||||
width: calc(100% - 20px);
|
||||
}
|
||||
|
||||
.about_actions_main .bottom_action_btn_about p {
|
||||
margin: 0;
|
||||
color: var(--On-Surface);
|
||||
font-family: var(--google-mid);
|
||||
font-size: 15px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.about_actions_main .bottom_action_btn_about md-ripple {
|
||||
--md-ripple-pressed-opacity: 0.1;
|
||||
}
|
||||
|
||||
.top_animation_about{
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
@media screen and (min-width: 600px){
|
||||
.all_about_wrap{
|
||||
width:600px;
|
||||
}
|
||||
|
||||
.about_actions_main{
|
||||
width: 600px;
|
||||
}
|
||||
|
||||
.center_all{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.top_animation_about{
|
||||
width: 600px;
|
||||
}
|
||||
|
||||
#version_check_loader{
|
||||
width: 600px;
|
||||
}
|
||||
}
|
||||
|
||||
#updateMessageDiv {
|
||||
position: absolute;
|
||||
bottom: 220px;
|
||||
left: 0;
|
||||
color: var(--On-Surface-Variant);
|
||||
animation: opacity 0.3s ease-out;
|
||||
transition: opacity 0.2s ease-in;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
|
||||
@keyframes opacity {
|
||||
0%{
|
||||
opacity: 0;
|
||||
@@ -31,344 +193,231 @@
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
#updateMessage{
|
||||
background-color: var(--Secondary-Container);
|
||||
color: var(--On-Secondary-Container);
|
||||
padding: 5px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.about_app_icon{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-top: 30px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.about_app_icon > div{
|
||||
width: 150px;
|
||||
height: 150px;
|
||||
background-color: var(--Surface-Container);
|
||||
border-radius: 9999px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 10px;
|
||||
|
||||
}
|
||||
|
||||
.about_app_icon > div > img{
|
||||
height: 130px;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.about_app_icon > md-circular-progress{
|
||||
position: absolute;
|
||||
width: 170px;
|
||||
height: 170px;
|
||||
}
|
||||
|
||||
.app_label_about_name{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex-direction: column;
|
||||
padding-top: 10px;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.app_label_about_name > p{
|
||||
margin: 0;
|
||||
font-family: var(--outfit-mid);
|
||||
font-size: 30px;
|
||||
color: var(--Secondary);
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.app_label_about_name > span{
|
||||
color: var(--On-Surface-Variant);
|
||||
font-family: var(--google-mid);
|
||||
z-index: 1;
|
||||
display: flex;
|
||||
border: 1.3px solid var(--Outline-Variant);
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding-left: 8px;
|
||||
padding-right: 8px;
|
||||
border-radius: 50px;
|
||||
height: 25px;
|
||||
}
|
||||
|
||||
.other_about_actions{
|
||||
display: grid;
|
||||
grid-template-columns: repeat(1, 1fr);
|
||||
gap: 5px;
|
||||
padding: 10px;
|
||||
position: absolute;
|
||||
bottom: 5px;
|
||||
width: calc(100% - 20px);
|
||||
}
|
||||
|
||||
|
||||
.other_about_actions > md-list-item{
|
||||
background-color: var(--Surface-Container-Low);
|
||||
border-radius: 50px;
|
||||
}
|
||||
|
||||
.heart {
|
||||
position: absolute;
|
||||
width: 5px;
|
||||
height: 5px;
|
||||
background-color: transparent !important;
|
||||
opacity: 1;
|
||||
z-index: 200;
|
||||
animation: ripple 0.8s ease-out forwards;
|
||||
font-family: 'Material symbols';
|
||||
font-weight: normal !important;
|
||||
font-style: normal !important;
|
||||
font-variation-settings: 'FILL' 1;
|
||||
|
||||
line-height: 1;
|
||||
color: rgb(243, 125, 125);
|
||||
font-size: 40px;
|
||||
}
|
||||
|
||||
@keyframes ripple {
|
||||
0% {
|
||||
transform: scale(0);
|
||||
opacity: 1;
|
||||
}
|
||||
100% {
|
||||
transform: scale(4);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body style="--md-list-item-label-text-size: 1.15rem; --md-list-item-pressed-state-layer-opacity: 0.15; --md-ref-typeface-plain: var(--google-normal); background-color: var(--Surface);">
|
||||
<body class="center_all" style="--md-list-item-label-text-size: 1.15rem; --md-list-item-pressed-state-layer-opacity: 0.15; --md-ref-typeface-plain: var(--google-normal); background-color: var(--Surface);">
|
||||
|
||||
<div class="about_app_icon" onclick="createRipple(event)">
|
||||
<div>
|
||||
<img src="../weather-icons/mostly_clear_day.svg" alt=""></div>
|
||||
<md-circular-progress indeterminate hidden id="version_check_loader"></md-circular-progress>
|
||||
</div>
|
||||
<div class="all_about_wrap">
|
||||
<div class="top_header_area_app_about">
|
||||
|
||||
<div class="app_label_about_name" style="position: relative;">
|
||||
<p>WeatherMaster</p>
|
||||
<span>1.7.3 (W)</span>
|
||||
<img src="https://gitlab.com/bignutty/google-weather-icons/-/raw/main/froggie/v2/mobile/26-haze-fog-dust-smoke/26-haze-fog-dust-smoke-fruit-stand.png?ref_type=heads" alt="" style="width: 100%; position: absolute; opacity: 0.4; bottom:30px;" >
|
||||
<div class="app_label_about">
|
||||
<p>Weather <br>Master</p>
|
||||
|
||||
<md-elevated-button trailing-icon style="margin-top: 15px;" id="checkUpdatesBtn" ><span data-translate="latest_version">Latest version</span> <md-icon icon-outlined slot="icon" style="font-size: 20px;">refresh</md-icon></md-elevated-button>
|
||||
</div>
|
||||
<span>1.7.4 (W)</span>
|
||||
</div>
|
||||
|
||||
<div class="app_icon_holder_about">
|
||||
<img src="../weather-icons/mostly_clear_day.svg" alt="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="check_update_btn_about_holder">
|
||||
<md-elevated-button trailing-icon id="checkUpdatesBtn"><span data-translate="latest_version">Latest
|
||||
version</span> <md-icon icon-outlined slot="icon"
|
||||
style="font-size: 22px;">refresh</md-icon></md-elevated-button>
|
||||
|
||||
<test></test>
|
||||
</div>
|
||||
|
||||
<div class="check_update_btn_about_holder" onclick="window.location.href='https://github.com/PranshulGG/WeatherMaster/issues/new'">
|
||||
<md-elevated-button trailing-icon><span>Create an issue</span> <md-icon
|
||||
icon-outlined slot="icon" style="font-size: 22px;">bug_report</md-icon></md-elevated-button>
|
||||
|
||||
<test></test>
|
||||
</div>
|
||||
|
||||
<div class="about_actions_main">
|
||||
|
||||
<div class="bottom_action_btn_about" onclick="window.location.href='https://github.com/PranshulGG/WeatherMaster'">
|
||||
<div>
|
||||
<md-icon icon-filled>code</md-icon>
|
||||
</div>
|
||||
<p>Source code</p>
|
||||
|
||||
<md-ripple></md-ripple>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="other_about_actions">
|
||||
<div class="bottom_action_btn_about" onclick="sendThemeToAndroid('OpenTermsConditions')">
|
||||
<div>
|
||||
<md-icon icon-filled>privacy_tip</md-icon>
|
||||
</div>
|
||||
<p>Terms & Conditions</p>
|
||||
|
||||
<md-ripple></md-ripple>
|
||||
</div>
|
||||
|
||||
<div class="bottom_action_btn_about" onclick="sendThemeToAndroid('OpenPrivacyPolicy')">
|
||||
<div>
|
||||
<md-icon icon-filled>policy</md-icon>
|
||||
</div>
|
||||
<p>Privacy Policy</p>
|
||||
|
||||
<md-ripple></md-ripple>
|
||||
</div>
|
||||
|
||||
<div class="bottom_action_btn_about" onclick="sendThemeToAndroid('OpenLicenses')">
|
||||
<div>
|
||||
<md-icon icon-filled>copyright</md-icon>
|
||||
</div>
|
||||
<p>Licenses</p>
|
||||
|
||||
<md-ripple></md-ripple>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<p id="updateMessageDiv" hidden>
|
||||
<span id="updateMessage">New version available!</span>
|
||||
</p>
|
||||
<div id="version_check_loader" hidden>
|
||||
<md-linear-progress indeterminate></md-linear-progress>
|
||||
</div>
|
||||
|
||||
<md-list-item type="button" onclick="sendThemeToAndroid('OpenTermsConditions')">
|
||||
<md-icon slot="start" icon-filled>privacy_tip</md-icon>
|
||||
<div slot="headline" data-translate="terms_conditions">Terms and Conditions</div>
|
||||
</md-list-item>
|
||||
<div id="updateMessageDiv" hidden>
|
||||
<p id="updateMessage">New version available!</p>
|
||||
</div>
|
||||
|
||||
<md-list-item type="button" onclick="sendThemeToAndroid('OpenPrivacyPolicy')">
|
||||
<md-icon slot="start" icon-filled>policy</md-icon>
|
||||
<div slot="headline" data-translate="privacy_policy">Privacy Policy</div>
|
||||
</md-list-item>
|
||||
<div class="top_animation_about">
|
||||
|
||||
<md-list-item type="button" onclick="window.location.href='https://github.com/PranshulGG/WeatherMaster'">
|
||||
<md-icon slot="start" icon-filled>code</md-icon>
|
||||
<div slot="headline" data-translate="view_source_code">View source code</div>
|
||||
</md-list-item>
|
||||
<div id="animation_main_about"></div>
|
||||
|
||||
<md-list-item type="button" onclick="sendThemeToAndroid('OpenLicenses')">
|
||||
<md-icon slot="start" icon-filled>copyright</md-icon>
|
||||
<div slot="headline" data-translate="third_party_licenses">Third party licenses</div>
|
||||
</div>
|
||||
|
||||
</md-list-item>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="toast_version" hidden>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
|
||||
|
||||
const AppLanguageCodeValue = localStorage.getItem('AppLanguageCode');
|
||||
const AppLanguageCodeValue = localStorage.getItem('AppLanguageCode');
|
||||
if (AppLanguageCodeValue) {
|
||||
applyTranslations(AppLanguageCodeValue);
|
||||
|
||||
}
|
||||
|
||||
|
||||
const user6 = document.getElementById('headUser-6')
|
||||
const user6 = document.getElementById('headUser-6')
|
||||
|
||||
|
||||
|
||||
function changeColorOnScroll6() {
|
||||
var container = document.getElementById('headUser-6');
|
||||
var scrollY = container.scrollTop;
|
||||
function changeColorOnScroll6() {
|
||||
var container = document.getElementById('headUser-6');
|
||||
var scrollY = container.scrollTop;
|
||||
|
||||
if (scrollY >= 50) {
|
||||
document.getElementById('head-6').style.backgroundColor = 'var(--Surface-Container)';
|
||||
document.getElementById('head-6').style.transition = '';
|
||||
if (scrollY >= 50) {
|
||||
document.getElementById('head-6').style.backgroundColor = 'var(--Surface-Container)';
|
||||
document.getElementById('head-6').style.transition = '';
|
||||
|
||||
document.getElementById('headUser-6').style.scrollSnapType = 'unset';
|
||||
container.removeEventListener('scroll', changeColorOnScroll6);
|
||||
sendThemeToAndroid('Scrolled')
|
||||
document.getElementById('headUser-6').style.scrollSnapType = 'unset';
|
||||
container.removeEventListener('scroll', changeColorOnScroll6);
|
||||
sendThemeToAndroid('Scrolled')
|
||||
|
||||
} else {
|
||||
} else {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if(user6){
|
||||
document.getElementById('headUser-6').addEventListener('scroll', changeColorOnScroll6);
|
||||
}
|
||||
|
||||
|
||||
|
||||
function changeColorOnScroll6A() {
|
||||
var container = document.getElementById('headUser-6');
|
||||
var scrollY = container.scrollTop;
|
||||
|
||||
if (scrollY <= 1) {
|
||||
document.getElementById('head-6').style.backgroundColor = '';
|
||||
document.getElementById('head-6').style.transition = 'background-color 0.2s ease-in';
|
||||
|
||||
sendThemeToAndroid('ScrollFalse')
|
||||
|
||||
container.addEventListener('scroll', changeColorOnScroll6);
|
||||
if(scrollY <= 20); {
|
||||
document.getElementById('headUser-6').style.scrollSnapType = '';
|
||||
|
||||
}
|
||||
|
||||
} else{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if(user6){
|
||||
document.getElementById('headUser-6').addEventListener('scroll', changeColorOnScroll6A);
|
||||
}
|
||||
|
||||
function sendThemeToAndroid(theme) {
|
||||
|
||||
AndroidInterface.updateStatusBarColor(theme);
|
||||
};
|
||||
|
||||
|
||||
|
||||
document.getElementById('checkUpdatesBtn').addEventListener('click', async function() {
|
||||
const currentVersion = 'v1.7.3';
|
||||
const githubRepo = 'PranshulGG/WeatherMaster';
|
||||
const releasesUrl = `https://api.github.com/repos/${githubRepo}/releases/latest`;
|
||||
|
||||
try {
|
||||
const response = await fetch(releasesUrl);
|
||||
if (!response.ok) throw new Error('Network response was not ok.');
|
||||
|
||||
const data = await response.json();
|
||||
const latestVersion = data.tag_name;
|
||||
|
||||
document.getElementById('version_check_loader').hidden = false;
|
||||
document.getElementById('checkUpdatesBtn').disabled = true;
|
||||
|
||||
setTimeout(()=>{
|
||||
if (latestVersion !== currentVersion) {
|
||||
document.getElementById('updateMessage').innerText = 'New version available!';
|
||||
document.getElementById('version_check_loader').hidden = true;
|
||||
document.getElementById('checkUpdatesBtn').disabled = false;
|
||||
document.querySelector('#updateMessageDiv').hidden = false;
|
||||
|
||||
setTimeout(()=>{
|
||||
window.location.href = 'https://github.com/PranshulGG/WeatherMaster/releases';
|
||||
}, 1000);
|
||||
|
||||
|
||||
} else {
|
||||
document.getElementById('updateMessage').innerText = 'You are using the latest version!';
|
||||
document.getElementById('version_check_loader').hidden = true;
|
||||
document.getElementById('checkUpdatesBtn').disabled = false;
|
||||
document.querySelector('#updateMessageDiv').hidden = false;
|
||||
}
|
||||
}
|
||||
|
||||
}, 2000);
|
||||
if (user6) {
|
||||
document.getElementById('headUser-6').addEventListener('scroll', changeColorOnScroll6);
|
||||
}
|
||||
|
||||
|
||||
setTimeout(()=>{
|
||||
document.querySelector('#updateMessageDiv').style.opacity = '0';
|
||||
}, 3800);
|
||||
|
||||
setTimeout(()=>{
|
||||
document.querySelector('#updateMessageDiv').hidden = true;
|
||||
document.querySelector('#updateMessageDiv').style.opacity = '';
|
||||
}, 4000);
|
||||
}catch (error) {
|
||||
document.getElementById('updateMessage').innerText = 'Error checking for updates.';
|
||||
console.error('Error:', error);
|
||||
}
|
||||
});
|
||||
function changeColorOnScroll6A() {
|
||||
var container = document.getElementById('headUser-6');
|
||||
var scrollY = container.scrollTop;
|
||||
|
||||
if (scrollY <= 1) {
|
||||
document.getElementById('head-6').style.backgroundColor = '';
|
||||
document.getElementById('head-6').style.transition = 'background-color 0.2s ease-in';
|
||||
|
||||
sendThemeToAndroid('ScrollFalse')
|
||||
|
||||
container.addEventListener('scroll', changeColorOnScroll6);
|
||||
if (scrollY <= 20); {
|
||||
document.getElementById('headUser-6').style.scrollSnapType = '';
|
||||
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if (user6) {
|
||||
document.getElementById('headUser-6').addEventListener('scroll', changeColorOnScroll6A);
|
||||
}
|
||||
|
||||
function sendThemeToAndroid(theme) {
|
||||
|
||||
AndroidInterface.updateStatusBarColor(theme);
|
||||
};
|
||||
|
||||
|
||||
|
||||
document.getElementById('checkUpdatesBtn').addEventListener('click', async function () {
|
||||
const currentVersion = 'v1.7.4';
|
||||
const githubRepo = 'PranshulGG/WeatherMaster';
|
||||
const releasesUrl = `https://api.github.com/repos/${githubRepo}/releases/latest`;
|
||||
|
||||
try {
|
||||
const response = await fetch(releasesUrl);
|
||||
if (!response.ok) throw new Error('Network response was not ok.');
|
||||
|
||||
const data = await response.json();
|
||||
const latestVersion = data.tag_name;
|
||||
|
||||
document.getElementById('version_check_loader').hidden = false;
|
||||
document.getElementById('checkUpdatesBtn').disabled = true;
|
||||
|
||||
setTimeout(() => {
|
||||
if (latestVersion !== currentVersion) {
|
||||
document.getElementById('updateMessage').innerText = 'New version available!';
|
||||
document.getElementById('version_check_loader').hidden = true;
|
||||
document.getElementById('checkUpdatesBtn').disabled = false;
|
||||
document.querySelector('#updateMessageDiv').hidden = false;
|
||||
|
||||
setTimeout(() => {
|
||||
window.location.href = 'https://github.com/PranshulGG/WeatherMaster/releases';
|
||||
}, 1000);
|
||||
|
||||
|
||||
} else {
|
||||
document.getElementById('updateMessage').innerText = 'You are using the latest version!';
|
||||
document.getElementById('version_check_loader').hidden = true;
|
||||
document.getElementById('checkUpdatesBtn').disabled = false;
|
||||
document.querySelector('#updateMessageDiv').hidden = false;
|
||||
}
|
||||
|
||||
}, 2000);
|
||||
|
||||
|
||||
setTimeout(() => {
|
||||
document.querySelector('#updateMessageDiv').style.opacity = '0';
|
||||
}, 3800);
|
||||
|
||||
setTimeout(() => {
|
||||
document.querySelector('#updateMessageDiv').hidden = true;
|
||||
document.querySelector('#updateMessageDiv').style.opacity = '';
|
||||
}, 4000);
|
||||
} catch (error) {
|
||||
document.getElementById('updateMessage').innerText = 'Error checking for updates.';
|
||||
console.error('Error:', error);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
var animationContainer = document.getElementById('animation_main_about');
|
||||
var animationData = '../lottie_animations/haze_smoke_foreground.json';
|
||||
|
||||
function createRipple(event) {
|
||||
const container = event.currentTarget;
|
||||
const heart = document.createElement('div');
|
||||
heart.classList.add('heart');
|
||||
|
||||
const colors = ['orange', 'yellow', 'red', 'var(--Primary)', '#ff0077'];
|
||||
const icons = ['cloud', 'sunny', 'rainy', 'favorite', 'thunderstorm', 'cloudy_snowing', 'foggy', 'dark_mode']
|
||||
const randomColor = colors[Math.floor(Math.random() * colors.length)];
|
||||
const RandomIcon = icons[Math.floor(Math.random() * icons.length)];
|
||||
|
||||
|
||||
heart.style.color = randomColor;
|
||||
|
||||
// Get click position relative to the container
|
||||
const rect = container.getBoundingClientRect();
|
||||
const x = event.clientX - rect.left;
|
||||
const y = event.clientY - rect.top;
|
||||
|
||||
// Position the heart at the click location
|
||||
heart.style.left = `${x}px`;
|
||||
heart.style.top = `${y}px`;
|
||||
|
||||
heart.innerHTML = RandomIcon
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
container.appendChild(heart);
|
||||
|
||||
heart.addEventListener('animationend', () => {
|
||||
heart.remove();
|
||||
anim = bodymovin.loadAnimation({
|
||||
container: animationContainer,
|
||||
renderer: 'svg',
|
||||
loop: true,
|
||||
autoplay: true,
|
||||
path: animationData
|
||||
});
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
@@ -276,6 +276,14 @@
|
||||
<md-ripple></md-ripple>
|
||||
</label>
|
||||
|
||||
<label class="language_item">
|
||||
<input name="app_language_radios" value="Persian" lang="fa" onclick="updateImgAreas()" type="radio">
|
||||
<img_area>
|
||||
<i class="fas fi-ir"></i>
|
||||
</img_area>
|
||||
Persian
|
||||
<md-ripple></md-ripple>
|
||||
</label>
|
||||
|
||||
</md-list>
|
||||
|
||||
|
||||
@@ -211,7 +211,7 @@ touch_search{
|
||||
.left_current_weather .temp_img p{
|
||||
color: var(--Primary);
|
||||
font-size: 60px;
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
font-family: var(--google-mid);
|
||||
margin: 0;
|
||||
font-weight: 500;
|
||||
}
|
||||
@@ -2508,4 +2508,28 @@ max-width: 150px;
|
||||
margin: 0;
|
||||
font-family: var(--outfit-mid);
|
||||
|
||||
}
|
||||
|
||||
@media screen and (min-width: 600px){
|
||||
.weather {
|
||||
max-width: 50%;
|
||||
margin-left: auto;
|
||||
|
||||
}
|
||||
|
||||
#search-container{
|
||||
display: block;
|
||||
max-width: 50%;
|
||||
height: calc(100% - 65px);
|
||||
top: 65px;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
touch_search{
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.close_search{
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
@@ -217,6 +217,7 @@ public class AboutPage extends AppCompatActivity {
|
||||
url.startsWith("https://app-privacy-policy-generator.nisrulz.com/") ||
|
||||
url.startsWith("https://github.com/PranshulGG/WeatherMaster") ||
|
||||
url.startsWith("mailto:pranshul.devmain@gmail.com")||
|
||||
url.startsWith("https://github.com/PranshulGG/WeatherMaster/issues/new") ||
|
||||
url.startsWith("https://github.com/PranshulGG/WeatherMaster/releases");
|
||||
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
<p><i>WeatherMaster</i> is developed with pure HTML, CSS, JavaScript, and Java. Designed to mimic the look and feel of a native Android app.</p><p><br><b>Features:</b></p><ul><li><b>🌤️ Current Weather:</b> Get real-time updates on weather conditions in your area.</li><li><b>📢 Government Weather Alerts:</b> Receive official alerts and warnings to stay safe.</li><li><b>⏳ 48-Hour Forecast:</b> Plan your short-term activities with accurate forecasts for the next two days.</li><li><b>📅 8-Day Forecast:</b> View detailed weather predictions for the upcoming week.</li><li><b>🌙 Moon Phases:</b> Track the phases of the moon and plan accordingly.</li><li><b>🌑 Moonrise & Moonset:</b> Know the exact times for moonrise and moonset each day.</li><li><b>🌅 Sunrise & Sunset:</b> Stay informed about sunrise and sunset times to optimize your day.</li><li><b>📏 Day Length:</b> Check how long the daylight lasts each day.</li><li><b>📝 Day Description:</b> Get a brief summary of the day’s weather conditions.</li><li><b>🌧️ Rain Bar:</b> See a visual representation of expected rainfall.</li><li><b>👁️ Visibility:</b> Monitor how far you can see clearly based on weather conditions.</li><li><b>💧 Humidity:</b> Check the current humidity levels to stay comfortable.</li><li><b>🧭 Pressure:</b> Track atmospheric pressure to understand weather changes.</li><li><b>🌬️ Wind Direction & Speed:</b> Stay aware of wind patterns and strength.</li><li><b>❄️ Snow Amount:</b> Know the expected snowfall for winter planning.</li><li><b>☁️ Cloudiness:</b> See how much of the sky is covered by clouds.</li><li><b>🌡️ Min-Max Temperature:</b> View the range of temperatures for the day.</li><li><b>🌬️ Feels Like Temperature:</b> Understand how the temperature feels based on wind and humidity.</li><li><b>🌧️ Precipitation Type & Area Coverage:</b> Get details on what kind of precipitation is expected and its coverage area.</li><li><b>🌞 UV Index:</b> Stay protected from harmful UV rays with UV index updates.</li><li><b>🌿 Air Quality:</b> Monitor air quality to stay informed about pollution levels.</li><li><b>🗺️ Live Map:</b> Access a real-time map to track weather conditions in different areas.</li><li><b>📍 Location Picker:</b> Easily select and view weather information for different locations.</li><li><b>⭐ Save Favorite Locations:</b> Save your preferred locations for quick access to their weather updates.</li><li><b>👗 Clothing Recommendations:</b> Get suggestions on what to wear based on the current weather conditions.</li></ul>
|
||||
<p><i>WeatherMaster</i> inspired by the Google Pixel weather app, but with more features</p> <p><br><b>Features:</b></p> <ul> <li><b>🌤️ Current Weather:</b> Get real-time updates on weather conditions in your area.</li> <li><b>📢 Government Weather Alerts:</b> Receive official alerts and warnings to stay safe.</li> <li><b>⏳ 24-Hour Forecast:</b> Plan your short-term activities with accurate forecasts for the next two days.</li> <li><b>📅 14-Day Forecast:</b> View detailed weather predictions for the upcoming week.</li> <li><b>🌙 Moon Phases:</b> Track the phases of the moon and plan accordingly.</li> <li><b>🌑 Moonrise & Moonset:</b> Know the exact times for moonrise and moonset each day.</li> <li><b>🌅 Sunrise & Sunset:</b> Stay informed about sunrise and sunset times to optimize your day.</li> <li><b>📏 Day Length:</b> Check how long the daylight lasts each day.</li> <li><b>📝 Day Description:</b> Get a brief summary of the day’s weather conditions.</li> <li><b>🌧️ Rain Bar:</b> See a visual representation of expected rainfall.</li> <li><b>👁️ Visibility:</b> Monitor how far you can see clearly based on weather conditions.</li> <li><b>💧 Humidity:</b> Check the current humidity levels to stay comfortable.</li> <li><b>🧭 Pressure:</b> Track atmospheric pressure to understand weather changes.</li> <li><b>🌬️ Wind Direction & Speed:</b> Stay aware of wind patterns and strength.</li> <li><b>❄️ Snow Amount:</b> Know the expected snowfall for winter planning.</li> <li><b>☁️ Cloudiness:</b> See how much of the sky is covered by clouds.</li> <li><b>🌡️ Min-Max Temperature:</b> View the range of temperatures for the day.</li> <li><b>🌬️ Feels Like Temperature:</b> Understand how the temperature feels based on wind and humidity.</li> <li><b>🌧️ Precipitation Type & Area Coverage:</b> Get details on what kind of precipitation is expected and its coverage area.</li> <li><b>🌞 UV Index:</b> Stay protected from harmful UV rays with UV index updates.</li> <li><b>🌿 Air Quality:</b> Monitor air quality to stay informed about pollution levels.</li> <li><b>🗺️ Live Map:</b> Access a real-time map to track weather conditions in different areas.</li> <li><b>📍 Location Picker:</b> Easily select and view weather information for different locations.</li> <li><b>⭐ Save Favorite Locations:</b> Save your preferred locations for quick access to their weather updates.</li> <li><b>👗 Clothing Recommendations:</b> Get suggestions on what to wear based on the current weather conditions. </li> <li><b>🌾 Pollen Data (Europe Only)</b> View pollen levels for grass, trees, and weeds in your area.</li> </ul>
|
||||
|
Before Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 44 KiB |
|
Before Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 629 KiB |
|
After Width: | Height: | Size: 596 KiB |
|
After Width: | Height: | Size: 607 KiB |
|
After Width: | Height: | Size: 565 KiB |
|
After Width: | Height: | Size: 581 KiB |
|
After Width: | Height: | Size: 458 KiB |
|
After Width: | Height: | Size: 517 KiB |
|
After Width: | Height: | Size: 576 KiB |
|
After Width: | Height: | Size: 528 KiB |
@@ -1 +1 @@
|
||||
Weather, Forecast, Moon Phases and more
|
||||
Weather, Forecasts, Moon Phases, and More
|
||||