diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/apk/app-debug.apk b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/apk/app-debug.apk new file mode 100644 index 000000000..d14efd0ac Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/apk/app-debug.apk differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/build.gradle b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/build.gradle new file mode 100644 index 000000000..497aa8cdf --- /dev/null +++ b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/build.gradle @@ -0,0 +1,58 @@ +plugins { + id 'com.android.application' +} + +android { + compileSdk 33 + + defaultConfig { + applicationId "com.aniketjain.weatherapp" + minSdk 19 + targetSdk 33 + versionCode 5 + versionName "1.0.5" + multiDexEnabled true + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + minifyEnabled true + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + buildFeatures { viewBinding true } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } +} + +dependencies { + implementation 'androidx.appcompat:appcompat:1.6.1' + implementation 'com.google.android.material:material:1.9.0' + implementation 'androidx.constraintlayout:constraintlayout:2.1.4' + testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test.ext:junit:1.1.5' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' + + //for getting json data + implementation 'com.android.volley:volley:1.2.1' + //location - lat, lon + implementation 'com.google.android.gms:play-services-location:21.0.1' + //custom toast + implementation 'com.github.dev-aniketj:roasted-toast:1.0.2' + //custom progress + implementation 'com.github.ybq:Android-SpinKit:1.4.0' + //swipe refresh + implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0' + //App Auto Update Feature + implementation 'com.google.android.play:core:1.10.3' + //For Responsive screen size + implementation 'com.intuit.sdp:sdp-android:1.1.0' + //Lotti files + implementation 'com.airbnb.android:lottie:5.2.0' + // Multi Dex Enable + implementation 'androidx.multidex:multidex:2.0.1' +} \ No newline at end of file diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/proguard-rules.pro b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/proguard-rules.pro new file mode 100644 index 000000000..481bb4348 --- /dev/null +++ b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/release/app-release.aab b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/release/app-release.aab new file mode 100644 index 000000000..9b3481411 Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/release/app-release.aab differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/androidTest/java/com/aniketjain/weatherapp/ExampleInstrumentedTest.java b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/androidTest/java/com/aniketjain/weatherapp/ExampleInstrumentedTest.java new file mode 100644 index 000000000..f3a3bf02e --- /dev/null +++ b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/androidTest/java/com/aniketjain/weatherapp/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package com.aniketjain.weatherapp; + +import android.content.Context; + +import androidx.test.platform.app.InstrumentationRegistry; +import androidx.test.ext.junit.runners.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import static org.junit.Assert.*; + +/** + * Instrumented test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + @Test + public void useAppContext() { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); + assertEquals("com.aniketjain.weatherapp", appContext.getPackageName()); + } +} \ No newline at end of file diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/AndroidManifest.xml b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/AndroidManifest.xml new file mode 100644 index 000000000..a3adb7eee --- /dev/null +++ b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/AndroidManifest.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/ic_launcher-playstore.png b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/ic_launcher-playstore.png new file mode 100644 index 000000000..4080b5112 Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/ic_launcher-playstore.png differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/ic_main-playstore.png b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/ic_main-playstore.png new file mode 100644 index 000000000..aa497c290 Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/ic_main-playstore.png differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/java/com/aniketjain/weatherapp/HomeActivity.java b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/java/com/aniketjain/weatherapp/HomeActivity.java new file mode 100644 index 000000000..4c5d32dd9 --- /dev/null +++ b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/java/com/aniketjain/weatherapp/HomeActivity.java @@ -0,0 +1,331 @@ +package com.aniketjain.weatherapp; + +import static com.aniketjain.weatherapp.location.CityFinder.getCityNameUsingNetwork; +import static com.aniketjain.weatherapp.location.CityFinder.setLongitudeLatitude; +import static com.aniketjain.weatherapp.network.InternetConnectivity.isInternetConnected; + +import android.Manifest; +import android.annotation.SuppressLint; +import android.app.Activity; +import android.content.Intent; +import android.content.IntentSender; +import android.content.pm.PackageManager; +import android.os.Build; +import android.os.Bundle; +import android.speech.RecognizerIntent; +import android.util.Log; +import android.view.View; +import android.view.inputmethod.EditorInfo; +import android.view.inputmethod.InputMethodManager; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; +import androidx.core.app.ActivityCompat; +import androidx.recyclerview.widget.LinearLayoutManager; + +import com.android.volley.Request; +import com.android.volley.RequestQueue; +import com.android.volley.toolbox.JsonObjectRequest; +import com.android.volley.toolbox.Volley; +import com.aniketjain.weatherapp.adapter.DaysAdapter; +import com.aniketjain.weatherapp.databinding.ActivityHomeBinding; +import com.aniketjain.weatherapp.location.LocationCord; +import com.aniketjain.weatherapp.toast.Toaster; +import com.aniketjain.weatherapp.update.UpdateUI; +import com.aniketjain.weatherapp.url.URL; +import com.google.android.gms.location.FusedLocationProviderClient; +import com.google.android.gms.location.LocationServices; +import com.google.android.play.core.appupdate.AppUpdateInfo; +import com.google.android.play.core.appupdate.AppUpdateManager; +import com.google.android.play.core.appupdate.AppUpdateManagerFactory; +import com.google.android.play.core.install.model.AppUpdateType; +import com.google.android.play.core.install.model.UpdateAvailability; +import com.google.android.play.core.tasks.Task; + +import org.json.JSONException; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.Locale; +import java.util.Objects; + +public class HomeActivity extends AppCompatActivity { + + private final int WEATHER_FORECAST_APP_UPDATE_REQ_CODE = 101; // for app update + private static final int PERMISSION_CODE = 1; // for user location permission + private String name, updated_at, description, temperature, min_temperature, max_temperature, pressure, wind_speed, humidity; + private int condition; + private long update_time, sunset, sunrise; + private String city = ""; + private final int REQUEST_CODE_EXTRA_INPUT = 101; + private ActivityHomeBinding binding; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + // binding + binding = ActivityHomeBinding.inflate(getLayoutInflater()); + View view = binding.getRoot(); + setContentView(view); + + // set navigation bar color + setNavigationBarColor(); + + //check for new app update + checkUpdate(); + + // set refresh color schemes + setRefreshLayoutColor(); + + // when user do search and refresh + listeners(); + + // getting data using internet connection + getDataUsingNetwork(); + + } + + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (requestCode == REQUEST_CODE_EXTRA_INPUT) { + if (resultCode == RESULT_OK && data != null) { + ArrayList arrayList = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS); + binding.layout.cityEt.setText(Objects.requireNonNull(arrayList).get(0).toUpperCase()); + searchCity(binding.layout.cityEt.getText().toString()); + } + } + } + + + private void setNavigationBarColor() { + if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + getWindow().setNavigationBarColor(getResources().getColor(R.color.navBarColor)); + } + } + + private void setUpDaysRecyclerView() { + DaysAdapter daysAdapter = new DaysAdapter(this); + binding.dayRv.setLayoutManager( + new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false) + ); + binding.dayRv.setAdapter(daysAdapter); + } + + @SuppressLint("ClickableViewAccessibility") + private void listeners() { + binding.layout.mainLayout.setOnTouchListener((view, motionEvent) -> { + hideKeyboard(view); + return false; + }); + binding.layout.searchBarIv.setOnClickListener(view -> searchCity(binding.layout.cityEt.getText().toString())); + binding.layout.searchBarIv.setOnTouchListener((view, motionEvent) -> { + hideKeyboard(view); + return false; + }); + binding.layout.cityEt.setOnEditorActionListener((textView, i, keyEvent) -> { + if (i == EditorInfo.IME_ACTION_GO) { + searchCity(binding.layout.cityEt.getText().toString()); + hideKeyboard(textView); + return true; + } + return false; + }); + binding.layout.cityEt.setOnFocusChangeListener((view, b) -> { + if (!b) { + hideKeyboard(view); + } + }); + binding.mainRefreshLayout.setOnRefreshListener(() -> { + checkConnection(); + Log.i("refresh", "Refresh Done."); + binding.mainRefreshLayout.setRefreshing(false); //for the next time + }); + //Mic Search + binding.layout.micSearchId.setOnClickListener(view -> { + Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); + intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); + intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, Locale.getDefault()); + intent.putExtra(RecognizerIntent.EXTRA_PROMPT, REQUEST_CODE_EXTRA_INPUT); + try { + //it was deprecated but still work + startActivityForResult(intent, REQUEST_CODE_EXTRA_INPUT); + } catch (Exception e) { + Log.d("Error Voice", "Mic Error: " + e); + } + }); + } + + private void setRefreshLayoutColor() { + binding.mainRefreshLayout.setProgressBackgroundColorSchemeColor( + getResources().getColor(R.color.textColor) + ); + binding.mainRefreshLayout.setColorSchemeColors( + getResources().getColor(R.color.navBarColor) + ); + } + + private void searchCity(String cityName) { + if (cityName == null || cityName.isEmpty()) { + Toaster.errorToast(this, "Please enter the city name"); + } else { + setLatitudeLongitudeUsingCity(cityName); + } + } + + private void getDataUsingNetwork() { + FusedLocationProviderClient client = LocationServices.getFusedLocationProviderClient(this); + //check permission + if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, + Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { + ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION}, PERMISSION_CODE); + } else { + client.getLastLocation().addOnSuccessListener(location -> { + setLongitudeLatitude(location); + city = getCityNameUsingNetwork(this, location); + getTodayWeatherInfo(city); + }); + } + } + + private void setLatitudeLongitudeUsingCity(String cityName) { + URL.setCity_url(cityName); + RequestQueue requestQueue = Volley.newRequestQueue(HomeActivity.this); + JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, URL.getCity_url(), null, response -> { + try { + LocationCord.lat = response.getJSONObject("coord").getString("lat"); + LocationCord.lon = response.getJSONObject("coord").getString("lon"); + getTodayWeatherInfo(cityName); + // After the successfully city search the cityEt(editText) is Empty. + binding.layout.cityEt.setText(""); + } catch (JSONException e) { + e.printStackTrace(); + } + }, error -> Toaster.errorToast(this, "Please enter the correct city name")); + requestQueue.add(jsonObjectRequest); + } + + @SuppressLint("DefaultLocale") + private void getTodayWeatherInfo(String name) { + URL url = new URL(); + RequestQueue requestQueue = Volley.newRequestQueue(this); + JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url.getLink(), null, response -> { + try { + this.name = name; + update_time = response.getJSONObject("current").getLong("dt"); + updated_at = new SimpleDateFormat("EEEE hh:mm a", Locale.ENGLISH).format(new Date(update_time * 1000)); + + condition = response.getJSONArray("daily").getJSONObject(0).getJSONArray("weather").getJSONObject(0).getInt("id"); + sunrise = response.getJSONArray("daily").getJSONObject(0).getLong("sunrise"); + sunset = response.getJSONArray("daily").getJSONObject(0).getLong("sunset"); + description = response.getJSONObject("current").getJSONArray("weather").getJSONObject(0).getString("main"); + + temperature = String.valueOf(Math.round(response.getJSONObject("current").getDouble("temp") - 273.15)); + min_temperature = String.format("%.0f", response.getJSONArray("daily").getJSONObject(0).getJSONObject("temp").getDouble("min") - 273.15); + max_temperature = String.format("%.0f", response.getJSONArray("daily").getJSONObject(0).getJSONObject("temp").getDouble("max") - 273.15); + pressure = response.getJSONArray("daily").getJSONObject(0).getString("pressure"); + wind_speed = response.getJSONArray("daily").getJSONObject(0).getString("wind_speed"); + humidity = response.getJSONArray("daily").getJSONObject(0).getString("humidity"); + + updateUI(); + hideProgressBar(); + setUpDaysRecyclerView(); + } catch (JSONException e) { + e.printStackTrace(); + } + }, null); + requestQueue.add(jsonObjectRequest); + Log.i("json_req", "Day 0"); + } + + @SuppressLint("SetTextI18n") + private void updateUI() { + binding.layout.nameTv.setText(name); + updated_at = translate(updated_at); + binding.layout.updatedAtTv.setText(updated_at); + binding.layout.conditionIv.setImageResource( + getResources().getIdentifier( + UpdateUI.getIconID(condition, update_time, sunrise, sunset), + "drawable", + getPackageName() + )); + binding.layout.conditionDescTv.setText(description); + binding.layout.tempTv.setText(temperature + "°C"); + binding.layout.minTempTv.setText(min_temperature + "°C"); + binding.layout.maxTempTv.setText(max_temperature + "°C"); + binding.layout.pressureTv.setText(pressure + " mb"); + binding.layout.windTv.setText(wind_speed + " km/h"); + binding.layout.humidityTv.setText(humidity + "%"); + } + + private String translate(String dayToTranslate) { + String[] dayToTranslateSplit = dayToTranslate.split(" "); + dayToTranslateSplit[0] = UpdateUI.TranslateDay(dayToTranslateSplit[0].trim(), getApplicationContext()); + return dayToTranslateSplit[0].concat(" " + dayToTranslateSplit[1]); + } + + private void hideProgressBar() { + binding.progress.setVisibility(View.GONE); + binding.layout.mainLayout.setVisibility(View.VISIBLE); + } + + private void hideMainLayout() { + binding.progress.setVisibility(View.VISIBLE); + binding.layout.mainLayout.setVisibility(View.GONE); + } + + private void hideKeyboard(View view) { + InputMethodManager inputMethodManager = (InputMethodManager) view.getContext().getSystemService(Activity.INPUT_METHOD_SERVICE); + inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0); + } + + private void checkConnection() { + if (!isInternetConnected(this)) { + hideMainLayout(); + Toaster.errorToast(this, "Please check your internet connection"); + } else { + hideProgressBar(); + getDataUsingNetwork(); + } + } + + @Override + public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { + super.onRequestPermissionsResult(requestCode, permissions, grantResults); + if (requestCode == PERMISSION_CODE) { + if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { + Toaster.successToast(this, "Permission Granted"); + getDataUsingNetwork(); + } else { + Toaster.errorToast(this, "Permission Denied"); + finish(); + } + } + } + + @Override + protected void onResume() { + super.onResume(); + checkConnection(); + } + + private void checkUpdate() { + AppUpdateManager appUpdateManager = AppUpdateManagerFactory.create(HomeActivity.this); + Task appUpdateInfoTask = appUpdateManager.getAppUpdateInfo(); + appUpdateInfoTask.addOnSuccessListener(appUpdateInfo -> { + if (appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE + && appUpdateInfo.isUpdateTypeAllowed(AppUpdateType.IMMEDIATE)) { + try { + appUpdateManager.startUpdateFlowForResult(appUpdateInfo, AppUpdateType.IMMEDIATE, HomeActivity.this, WEATHER_FORECAST_APP_UPDATE_REQ_CODE); + } catch (IntentSender.SendIntentException exception) { + Toaster.errorToast(this, "Update Failed"); + } + } + }); + } + +} \ No newline at end of file diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/java/com/aniketjain/weatherapp/SplashScreen.java b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/java/com/aniketjain/weatherapp/SplashScreen.java new file mode 100644 index 000000000..1dbf019a8 --- /dev/null +++ b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/java/com/aniketjain/weatherapp/SplashScreen.java @@ -0,0 +1,35 @@ +package com.aniketjain.weatherapp; + +import android.annotation.SuppressLint; +import android.content.Intent; +import android.os.Bundle; +import android.os.Handler; +import android.view.WindowManager; + +import androidx.appcompat.app.AppCompatActivity; + +import com.aniketjain.weatherapp.databinding.ActivitySplashScreenBinding; + +@SuppressLint("CustomSplashScreen") +public class SplashScreen extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + ActivitySplashScreenBinding binding = ActivitySplashScreenBinding.inflate(getLayoutInflater()); + setContentView(binding.getRoot()); + //Removing status bar + getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); + //Setting Splash + splashScreen(); + } + + private void splashScreen() { + int SPLASH_TIME = 4000; + new Handler().postDelayed(() -> { + Intent intent = new Intent(getApplicationContext(), HomeActivity.class); + startActivity(intent); + finish(); + }, SPLASH_TIME); + } +} \ No newline at end of file diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/java/com/aniketjain/weatherapp/adapter/DaysAdapter.java b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/java/com/aniketjain/weatherapp/adapter/DaysAdapter.java new file mode 100644 index 000000000..a39c1546a --- /dev/null +++ b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/java/com/aniketjain/weatherapp/adapter/DaysAdapter.java @@ -0,0 +1,129 @@ +package com.aniketjain.weatherapp.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.android.volley.Request; +import com.android.volley.RequestQueue; +import com.android.volley.toolbox.JsonObjectRequest; +import com.android.volley.toolbox.Volley; +import com.aniketjain.weatherapp.R; +import com.aniketjain.weatherapp.update.UpdateUI; +import com.aniketjain.weatherapp.url.URL; +import com.github.ybq.android.spinkit.SpinKitView; + +import org.json.JSONException; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.Locale; + +public class DaysAdapter extends RecyclerView.Adapter { + private final Context context; + + public DaysAdapter(Context context) { + this.context = context; + } + + private String updated_at, min, max, pressure, wind_speed, humidity; + private int condition; + private long update_time, sunset, sunrise; + + @NonNull + @Override + public DayViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = LayoutInflater.from(context).inflate(R.layout.day_item_layout, parent, false); + return new DayViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull DayViewHolder holder, int position) { + getDailyWeatherInfo(position + 1, holder); + } + + @Override + public int getItemCount() { + return 6; + } + + @SuppressLint("DefaultLocale") + private void getDailyWeatherInfo(int i, DayViewHolder holder) { + URL url = new URL(); + RequestQueue requestQueue = Volley.newRequestQueue(context); + JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url.getLink(), null, response -> { + try { + update_time = response.getJSONObject("current").getLong("dt"); + updated_at = new SimpleDateFormat("EEEE", Locale.ENGLISH).format(new Date((update_time * 1000) + (i * 864_000_00L))); // i=0 + + condition = response.getJSONArray("daily").getJSONObject(i).getJSONArray("weather").getJSONObject(0).getInt("id"); + sunrise = response.getJSONArray("daily").getJSONObject(i).getLong("sunrise"); + sunset = response.getJSONArray("daily").getJSONObject(i).getLong("sunset"); + + min = String.format("%.0f", response.getJSONArray("daily").getJSONObject(i).getJSONObject("temp").getDouble("min") - 273.15); + max = String.format("%.0f", response.getJSONArray("daily").getJSONObject(i).getJSONObject("temp").getDouble("max") - 273.15); + pressure = response.getJSONArray("daily").getJSONObject(i).getString("pressure"); + wind_speed = response.getJSONArray("daily").getJSONObject(i).getString("wind_speed"); + humidity = response.getJSONArray("daily").getJSONObject(i).getString("humidity"); + + updateUI(holder); + hideProgressBar(holder); + } catch (JSONException e) { + e.printStackTrace(); + } + }, null); + requestQueue.add(jsonObjectRequest); + Log.i("json_req", "Day " + i); + } + + @SuppressLint("SetTextI18n") + private void updateUI(DayViewHolder holder) { + String day = UpdateUI.TranslateDay(updated_at, context); + holder.dTime.setText(day); + holder.temp_min.setText(min + "°C"); + holder.temp_max.setText(max + "°C"); + holder.pressure.setText(pressure + " mb"); + holder.wind.setText(wind_speed + " km/h"); + holder.humidity.setText(humidity + "%"); + holder.icon.setImageResource( + context.getResources().getIdentifier( + UpdateUI.getIconID(condition, update_time, sunrise, sunset), + "drawable", + context.getPackageName() + )); + } + + private void hideProgressBar(DayViewHolder holder) { + holder.progress.setVisibility(View.GONE); + holder.layout.setVisibility(View.VISIBLE); + } + + static class DayViewHolder extends RecyclerView.ViewHolder { + SpinKitView progress; + RelativeLayout layout; + TextView dTime, temp_min, temp_max, pressure, wind, humidity; + ImageView icon; + + public DayViewHolder(@NonNull View itemView) { + super(itemView); + progress = itemView.findViewById(R.id.day_progress_bar); + layout = itemView.findViewById(R.id.day_relative_layout); + dTime = itemView.findViewById(R.id.day_time); + temp_min = itemView.findViewById(R.id.day_min_temp); + temp_max = itemView.findViewById(R.id.day_max_temp); + pressure = itemView.findViewById(R.id.day_pressure); + wind = itemView.findViewById(R.id.day_wind); + humidity = itemView.findViewById(R.id.day_humidity); + icon = itemView.findViewById(R.id.day_icon); + } + } +} diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/java/com/aniketjain/weatherapp/location/CityFinder.java b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/java/com/aniketjain/weatherapp/location/CityFinder.java new file mode 100644 index 000000000..d454f50db --- /dev/null +++ b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/java/com/aniketjain/weatherapp/location/CityFinder.java @@ -0,0 +1,37 @@ +package com.aniketjain.weatherapp.location; + +import android.content.Context; +import android.location.Address; +import android.location.Geocoder; +import android.location.Location; +import android.util.Log; + +import java.util.List; +import java.util.Locale; + +public class CityFinder { + + public static void setLongitudeLatitude(Location location) { + try { + LocationCord.lat = String.valueOf(location.getLatitude()); + LocationCord.lon = String.valueOf(location.getLongitude()); + Log.d("location_lat", LocationCord.lat); + Log.d("location_lon", LocationCord.lon); + } catch (NullPointerException e) { + e.printStackTrace(); + } + } + + public static String getCityNameUsingNetwork(Context context, Location location) { + String city = ""; + try { + Geocoder geocoder = new Geocoder(context, Locale.getDefault()); + List
addresses = geocoder.getFromLocation(location.getLatitude(), location.getLongitude(), 1); + city = addresses.get(0).getLocality(); + Log.d("city", city); + } catch (Exception e) { + Log.d("city", "Error to find the city."); + } + return city; + } +} diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/java/com/aniketjain/weatherapp/location/LocationCord.java b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/java/com/aniketjain/weatherapp/location/LocationCord.java new file mode 100644 index 000000000..73665f966 --- /dev/null +++ b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/java/com/aniketjain/weatherapp/location/LocationCord.java @@ -0,0 +1,9 @@ +package com.aniketjain.weatherapp.location; + +public class LocationCord { + public static String lat = ""; + public static String lon = ""; + public final static String API_KEY = "0bc14881636d2234e8c17736a470535f"; +// public final static String API_KEY = "eeb8b40367eee691683e5a079e2fa695"; +} + diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/java/com/aniketjain/weatherapp/network/InternetConnectivity.java b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/java/com/aniketjain/weatherapp/network/InternetConnectivity.java new file mode 100644 index 000000000..97ea74835 --- /dev/null +++ b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/java/com/aniketjain/weatherapp/network/InternetConnectivity.java @@ -0,0 +1,13 @@ +package com.aniketjain.weatherapp.network; + +import android.content.Context; +import android.net.ConnectivityManager; +import android.net.NetworkInfo; + +public class InternetConnectivity { + public static boolean isInternetConnected(Context context) { + ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); + return connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED || + connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED; + } +} diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/java/com/aniketjain/weatherapp/toast/Toaster.java b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/java/com/aniketjain/weatherapp/toast/Toaster.java new file mode 100644 index 000000000..820955411 --- /dev/null +++ b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/java/com/aniketjain/weatherapp/toast/Toaster.java @@ -0,0 +1,28 @@ +package com.aniketjain.weatherapp.toast; + +import android.content.Context; + +import com.aniketjain.roastedtoast.Toasty; +import com.aniketjain.weatherapp.R; + +public class Toaster { + public static void successToast(Context context, String msg) { + Toasty.custom( + context, + msg, + R.drawable.ic_baseline_check_24, + "#454B54", + 14, + "#EEEEEE"); + } + + public static void errorToast(Context context, String msg) { + Toasty.custom( + context, + msg, + R.drawable.ic_baseline_error_outline_24, + "#454B54", + 14, + "#EEEEEE"); + } +} diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/java/com/aniketjain/weatherapp/update/UpdateUI.java b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/java/com/aniketjain/weatherapp/update/UpdateUI.java new file mode 100644 index 000000000..1337c4646 --- /dev/null +++ b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/java/com/aniketjain/weatherapp/update/UpdateUI.java @@ -0,0 +1,56 @@ +package com.aniketjain.weatherapp.update; + +import android.content.Context; + +import com.aniketjain.weatherapp.R; + +public class UpdateUI { + + public static String getIconID(int condition, long update_time, long sunrise, long sunset) { + if (condition >= 200 && condition <= 232) + return "thunderstorm"; + else if (condition >= 300 && condition <= 321) + return "drizzle"; + else if (condition >= 500 && condition <= 531) + return "rain"; + else if (condition >= 600 && condition <= 622) + return "snow"; + else if (condition >= 701 && condition <= 781) + return "wind"; + else if (condition == 800) { + if (update_time >= sunrise && update_time <= sunset) + return "clear_day"; + else + return "clear_night"; + } else if (condition == 801) { + if (update_time >= sunrise && update_time <= sunset) + return "few_clouds_day"; + else + return "few_clouds_night"; + } else if (condition == 802) + return "scattered_clouds"; + else if (condition == 803 || condition == 804) + return "broken_clouds"; + return null; + } + + public static String TranslateDay(String dayToBeTranslated, Context context) { + switch (dayToBeTranslated.trim()) { + case "Monday": + return context.getResources().getString(R.string.monday); + case "Tuesday": + return context.getResources().getString(R.string.tuesday); + case "Wednesday": + return context.getResources().getString(R.string.wednesday); + case "Thursday": + return context.getResources().getString(R.string.thursday); + case "Friday": + return context.getResources().getString(R.string.friday); + case "Saturday": + return context.getResources().getString(R.string.saturday); + case "Sunday": + return context.getResources().getString(R.string.sunday); + } + return dayToBeTranslated; + } +} diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/java/com/aniketjain/weatherapp/url/URL.java b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/java/com/aniketjain/weatherapp/url/URL.java new file mode 100644 index 000000000..a6356a8ea --- /dev/null +++ b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/java/com/aniketjain/weatherapp/url/URL.java @@ -0,0 +1,27 @@ +package com.aniketjain.weatherapp.url; + +import com.aniketjain.weatherapp.location.LocationCord; + +public class URL { + private String link; + private static String city_url; + + public URL() { + link = "https://api.openweathermap.org/data/2.5/onecall?exclude=minutely&lat=" + + LocationCord.lat + "&lon=" + LocationCord.lon + "&appid=" + LocationCord.API_KEY; + } + + public String getLink() { + return link; + } + + + public static void setCity_url(String cityName) { + city_url = "https://api.openweathermap.org/data/2.5/weather?&q=" + cityName + "&appid=" + LocationCord.API_KEY; + } + + public static String getCity_url() { + return city_url; + } + +} \ No newline at end of file diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/broken_clouds.png b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/broken_clouds.png new file mode 100644 index 000000000..1c25e59ec Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/broken_clouds.png differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/center_block_bg.png b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/center_block_bg.png new file mode 100644 index 000000000..02f3e79c5 Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/center_block_bg.png differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/clear_day.png b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/clear_day.png new file mode 100644 index 000000000..ada32c081 Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/clear_day.png differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/clear_night.png b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/clear_night.png new file mode 100644 index 000000000..6b342d8d6 Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/clear_night.png differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/day_block_bg.9.png b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/day_block_bg.9.png new file mode 100644 index 000000000..033bb5f53 Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/day_block_bg.9.png differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/drizzle.png b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/drizzle.png new file mode 100644 index 000000000..165d08712 Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/drizzle.png differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/edittext_bg.png b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/edittext_bg.png new file mode 100644 index 000000000..ec3ba8eee Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/edittext_bg.png differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/few_clouds_day.png b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/few_clouds_day.png new file mode 100644 index 000000000..fc229fb4d Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/few_clouds_day.png differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/few_clouds_night.png b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/few_clouds_night.png new file mode 100644 index 000000000..b0352e670 Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/few_clouds_night.png differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/humidity_icon.png b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/humidity_icon.png new file mode 100644 index 000000000..840786908 Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/humidity_icon.png differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/ic_baseline_check_24.xml b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/ic_baseline_check_24.xml new file mode 100644 index 000000000..c1ddb9dde --- /dev/null +++ b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/ic_baseline_check_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/ic_baseline_error_outline_24.xml b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/ic_baseline_error_outline_24.xml new file mode 100644 index 000000000..f4795cd65 --- /dev/null +++ b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/ic_baseline_error_outline_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/ic_launcher_background.xml b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 000000000..07d5da9cb --- /dev/null +++ b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/ic_launcher_foreground.xml b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/ic_launcher_foreground.xml new file mode 100644 index 000000000..2b068d114 --- /dev/null +++ b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/ic_main_background.xml b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/ic_main_background.xml new file mode 100644 index 000000000..ca3826a46 --- /dev/null +++ b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/ic_main_background.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/max_temp_icon.png b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/max_temp_icon.png new file mode 100644 index 000000000..a08f09911 Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/max_temp_icon.png differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/min_temp_icon.png b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/min_temp_icon.png new file mode 100644 index 000000000..635c3ff4c Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/min_temp_icon.png differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/nion_mic_icon.png b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/nion_mic_icon.png new file mode 100644 index 000000000..1a8a3fddc Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/nion_mic_icon.png differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/pressure_icon.png b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/pressure_icon.png new file mode 100644 index 000000000..b661bdee4 Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/pressure_icon.png differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/rain.png b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/rain.png new file mode 100644 index 000000000..994efd5ca Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/rain.png differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/scattered_clouds.png b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/scattered_clouds.png new file mode 100644 index 000000000..705d911c4 Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/scattered_clouds.png differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/search_bar.png b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/search_bar.png new file mode 100644 index 000000000..de2ee035c Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/search_bar.png differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/snow.png b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/snow.png new file mode 100644 index 000000000..12c393dc2 Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/snow.png differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/thunderstorm.png b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/thunderstorm.png new file mode 100644 index 000000000..10bbe4f05 Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/thunderstorm.png differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/wind.png b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/wind.png new file mode 100644 index 000000000..c312e51ae Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/wind.png differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/wind_icon.png b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/wind_icon.png new file mode 100644 index 000000000..08a014c23 Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/drawable/wind_icon.png differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/font/koho_regular.ttf b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/font/koho_regular.ttf new file mode 100644 index 000000000..d12175c51 Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/font/koho_regular.ttf differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/img.png b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/img.png new file mode 100644 index 000000000..08a014c23 Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/img.png differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/layout/activity_home.xml b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/layout/activity_home.xml new file mode 100644 index 000000000..f763f1c63 --- /dev/null +++ b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/layout/activity_home.xml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/layout/activity_splash_screen.xml b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/layout/activity_splash_screen.xml new file mode 100644 index 000000000..d6342d72c --- /dev/null +++ b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/layout/activity_splash_screen.xml @@ -0,0 +1,23 @@ + + + + + + + \ No newline at end of file diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/layout/day_item_layout.xml b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/layout/day_item_layout.xml new file mode 100644 index 000000000..619d8d7e1 --- /dev/null +++ b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/layout/day_item_layout.xml @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/layout/main_layout.xml b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/layout/main_layout.xml new file mode 100644 index 000000000..706ee8195 --- /dev/null +++ b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/layout/main_layout.xml @@ -0,0 +1,346 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 000000000..eca70cfe5 --- /dev/null +++ b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 000000000..eca70cfe5 --- /dev/null +++ b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-anydpi-v26/ic_main.xml b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-anydpi-v26/ic_main.xml new file mode 100644 index 000000000..7c7c2d208 --- /dev/null +++ b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-anydpi-v26/ic_main.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-anydpi-v26/ic_main_round.xml b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-anydpi-v26/ic_main_round.xml new file mode 100644 index 000000000..7c7c2d208 --- /dev/null +++ b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-anydpi-v26/ic_main_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-hdpi/ic_launcher.webp new file mode 100644 index 000000000..c209e78ec Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-hdpi/ic_launcher.webp differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp new file mode 100644 index 000000000..b2dfe3d1b Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-hdpi/ic_main.png b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-hdpi/ic_main.png new file mode 100644 index 000000000..f6109ff75 Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-hdpi/ic_main.png differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-hdpi/ic_main_foreground.png b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-hdpi/ic_main_foreground.png new file mode 100644 index 000000000..8f59cee4c Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-hdpi/ic_main_foreground.png differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-hdpi/ic_main_round.png b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-hdpi/ic_main_round.png new file mode 100644 index 000000000..1d76aace6 Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-hdpi/ic_main_round.png differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-mdpi/ic_launcher.webp new file mode 100644 index 000000000..4f0f1d64e Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-mdpi/ic_launcher.webp differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp new file mode 100644 index 000000000..62b611da0 Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-mdpi/ic_main.png b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-mdpi/ic_main.png new file mode 100644 index 000000000..547559937 Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-mdpi/ic_main.png differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-mdpi/ic_main_foreground.png b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-mdpi/ic_main_foreground.png new file mode 100644 index 000000000..ec4f8ebae Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-mdpi/ic_main_foreground.png differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-mdpi/ic_main_round.png b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-mdpi/ic_main_round.png new file mode 100644 index 000000000..17e3e7834 Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-mdpi/ic_main_round.png differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xhdpi/ic_launcher.webp new file mode 100644 index 000000000..948a3070f Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xhdpi/ic_launcher.webp differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp new file mode 100644 index 000000000..1b9a6956b Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xhdpi/ic_main.png b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xhdpi/ic_main.png new file mode 100644 index 000000000..4f821a144 Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xhdpi/ic_main.png differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xhdpi/ic_main_foreground.png b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xhdpi/ic_main_foreground.png new file mode 100644 index 000000000..371ad2d3e Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xhdpi/ic_main_foreground.png differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xhdpi/ic_main_round.png b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xhdpi/ic_main_round.png new file mode 100644 index 000000000..35ac905e5 Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xhdpi/ic_main_round.png differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp new file mode 100644 index 000000000..28d4b77f9 Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp new file mode 100644 index 000000000..9287f5083 Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xxhdpi/ic_main.png b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xxhdpi/ic_main.png new file mode 100644 index 000000000..78c365d2c Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xxhdpi/ic_main.png differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xxhdpi/ic_main_foreground.png b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xxhdpi/ic_main_foreground.png new file mode 100644 index 000000000..22854a462 Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xxhdpi/ic_main_foreground.png differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xxhdpi/ic_main_round.png b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xxhdpi/ic_main_round.png new file mode 100644 index 000000000..4ca7b0918 Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xxhdpi/ic_main_round.png differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp new file mode 100644 index 000000000..aa7d6427e Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp new file mode 100644 index 000000000..9126ae37c Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xxxhdpi/ic_main.png b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xxxhdpi/ic_main.png new file mode 100644 index 000000000..9c7b15470 Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xxxhdpi/ic_main.png differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xxxhdpi/ic_main_foreground.png b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xxxhdpi/ic_main_foreground.png new file mode 100644 index 000000000..ab5e96ed7 Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xxxhdpi/ic_main_foreground.png differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xxxhdpi/ic_main_round.png b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xxxhdpi/ic_main_round.png new file mode 100644 index 000000000..298dd6e36 Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/mipmap-xxxhdpi/ic_main_round.png differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/raw/cloud_cycle_lottie.json b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/raw/cloud_cycle_lottie.json new file mode 100644 index 000000000..c63b63bca --- /dev/null +++ b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/raw/cloud_cycle_lottie.json @@ -0,0 +1,7506 @@ +{ + "v": "5.5.7", + "meta": { + "g": "LottieFiles AE 0.1.21", + "a": "", + "k": "", + "d": "", + "tc": "" + }, + "fr": 29.9700012207031, + "ip": 0, + "op": 120.0000048877, + "w": 1920, + "h": 1920, + "nm": "Comp 1", + "ddd": 0, + "assets": [], + "layers": [ + { + "ddd": 0, + "ind": 1, + "ty": 4, + "nm": "Shape Layer 3", + "parent": 4, + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 50, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 1, + "k": [ + { + "i": { + "x": 0.667, + "y": 1 + }, + "o": { + "x": 0.749, + "y": 0 + }, + "t": 0, + "s": [ + 349.022, + 459.471, + 0 + ], + "to": [ + 0, + -29.5, + 0 + ], + "ti": [ + 0, + -44.572, + 0 + ] + }, + { + "i": { + "x": 0.319, + "y": 1 + }, + "o": { + "x": 0.333, + "y": 0 + }, + "t": 30, + "s": [ + 349.022, + 282.471, + 0 + ], + "to": [ + 0, + 44.572, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0.667, + "y": 1 + }, + "o": { + "x": 0.668, + "y": 0 + }, + "t": 60, + "s": [ + 349.022, + 726.903, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 44.572, + 0 + ] + }, + { + "i": { + "x": 0.667, + "y": 1 + }, + "o": { + "x": 0.333, + "y": 0 + }, + "t": 90, + "s": [ + 349.022, + 282.471, + 0 + ], + "to": [ + 0, + -44.572, + 0 + ], + "ti": [ + 0, + -29.5, + 0 + ] + }, + { + "t": 120.0000048877, + "s": [ + 349.022, + 459.471, + 0 + ] + } + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + -204, + -16, + 0 + ], + "ix": 1 + }, + "s": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.667, + 0.667, + 0.667 + ], + "y": [ + 1, + 1, + 1 + ] + }, + "o": { + "x": [ + 0.333, + 0.333, + 0.333 + ], + "y": [ + 0, + 0, + 0 + ] + }, + "t": 30, + "s": [ + 149.254, + 149.254, + 100 + ] + }, + { + "i": { + "x": [ + 0.667, + 0.667, + 0.667 + ], + "y": [ + 1, + 1, + 1 + ] + }, + "o": { + "x": [ + 0.333, + 0.333, + 0.333 + ], + "y": [ + 0, + 0, + 0 + ] + }, + "t": 60, + "s": [ + 122.254, + 122.254, + 100 + ] + }, + { + "t": 90.0000036657751, + "s": [ + 149.254, + 149.254, + 100 + ] + } + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "d": 1, + "ty": "el", + "s": { + "a": 0, + "k": [ + 244, + 244 + ], + "ix": 2 + }, + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 3 + }, + "nm": "Ellipse Path 1", + "mn": "ADBE Vector Shape - Ellipse", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 0.847058883368, + 0, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + -204, + -16 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Ellipse 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 90.0000036657751, + "op": 120.0000048877, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 2, + "ty": 4, + "nm": "Shape Layer 1", + "parent": 4, + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 50, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 1, + "k": [ + { + "i": { + "x": 0.667, + "y": 1 + }, + "o": { + "x": 0.749, + "y": 0 + }, + "t": 0, + "s": [ + 349.022, + 459.471, + 0 + ], + "to": [ + 0, + -29.5, + 0 + ], + "ti": [ + 0, + -44.572, + 0 + ] + }, + { + "i": { + "x": 0.319, + "y": 1 + }, + "o": { + "x": 0.333, + "y": 0 + }, + "t": 30, + "s": [ + 349.022, + 282.471, + 0 + ], + "to": [ + 0, + 44.572, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0.667, + "y": 1 + }, + "o": { + "x": 0.668, + "y": 0 + }, + "t": 60, + "s": [ + 349.022, + 726.903, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 44.572, + 0 + ] + }, + { + "i": { + "x": 0.667, + "y": 1 + }, + "o": { + "x": 0.333, + "y": 0 + }, + "t": 90, + "s": [ + 349.022, + 282.471, + 0 + ], + "to": [ + 0, + -44.572, + 0 + ], + "ti": [ + 0, + -29.5, + 0 + ] + }, + { + "t": 120.0000048877, + "s": [ + 349.022, + 459.471, + 0 + ] + } + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + -204, + -16, + 0 + ], + "ix": 1 + }, + "s": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.667, + 0.667, + 0.667 + ], + "y": [ + 1, + 1, + 1 + ] + }, + "o": { + "x": [ + 0.333, + 0.333, + 0.333 + ], + "y": [ + 0, + 0, + 0 + ] + }, + "t": 30, + "s": [ + 149.254, + 149.254, + 100 + ] + }, + { + "i": { + "x": [ + 0.667, + 0.667, + 0.667 + ], + "y": [ + 1, + 1, + 1 + ] + }, + "o": { + "x": [ + 0.333, + 0.333, + 0.333 + ], + "y": [ + 0, + 0, + 0 + ] + }, + "t": 60, + "s": [ + 122.254, + 122.254, + 100 + ] + }, + { + "t": 90.0000036657751, + "s": [ + 149.254, + 149.254, + 100 + ] + } + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "d": 1, + "ty": "el", + "s": { + "a": 0, + "k": [ + 244, + 244 + ], + "ix": 2 + }, + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 3 + }, + "nm": "Ellipse Path 1", + "mn": "ADBE Vector Shape - Ellipse", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 0.847058883368, + 0, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + -204, + -16 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Ellipse 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 30.0000012219251, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 3, + "ty": 4, + "nm": "cloud1 Outlines 3", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 1, + "k": [ + { + "i": { + "x": 0.667, + "y": 1 + }, + "o": { + "x": 0.621, + "y": 0 + }, + "t": 0, + "s": [ + 960, + 1074, + 0 + ], + "to": [ + -65.5, + 0, + 0 + ], + "ti": [ + 0, + 12.667, + 0 + ] + }, + { + "i": { + "x": 0.359, + "y": 1 + }, + "o": { + "x": 0.333, + "y": 0 + }, + "t": 30, + "s": [ + 567, + 1074, + 0 + ], + "to": [ + 0, + -12.667, + 0 + ], + "ti": [ + -127.333, + 0, + 0 + ] + }, + { + "i": { + "x": 0.667, + "y": 1 + }, + "o": { + "x": 0.333, + "y": 0 + }, + "t": 60, + "s": [ + 960, + 998, + 0 + ], + "to": [ + 127.333, + 0, + 0 + ], + "ti": [ + 0, + -12.667, + 0 + ] + }, + { + "i": { + "x": 0.667, + "y": 1 + }, + "o": { + "x": 0.333, + "y": 0 + }, + "t": 90, + "s": [ + 1331, + 1074, + 0 + ], + "to": [ + 0, + 12.667, + 0 + ], + "ti": [ + 61.833, + 0, + 0 + ] + }, + { + "t": 120.0000048877, + "s": [ + 960, + 1074, + 0 + ] + } + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 653.5, + 653.5, + 0 + ], + "ix": 1 + }, + "s": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.833, + 0.833, + 0.833 + ], + "y": [ + 0.833, + 0.833, + 0.833 + ] + }, + "o": { + "x": [ + 0.167, + 0.167, + 0.167 + ], + "y": [ + 0.167, + 0.167, + 0.167 + ] + }, + "t": 13, + "s": [ + 67, + 67, + 100 + ] + }, + { + "i": { + "x": [ + 0.833, + 0.833, + 0.833 + ], + "y": [ + 0.833, + 0.833, + 0.833 + ] + }, + "o": { + "x": [ + 0.167, + 0.167, + 0.167 + ], + "y": [ + 0.167, + 0.167, + 0.167 + ] + }, + "t": 40, + "s": [ + 46, + 46, + 100 + ] + }, + { + "i": { + "x": [ + 0.833, + 0.833, + 0.833 + ], + "y": [ + 0.833, + 0.833, + 0.833 + ] + }, + "o": { + "x": [ + 0.167, + 0.167, + 0.167 + ], + "y": [ + 0.167, + 0.167, + 0.167 + ] + }, + "t": 79, + "s": [ + 46, + 46, + 100 + ] + }, + { + "t": 107.000004358199, + "s": [ + 67, + 67, + 100 + ] + } + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 86.242 + ], + [ + -91.882, + 0 + ], + [ + -17.991, + -6.313 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -94.627, + 0 + ], + [ + -33.591, + -23.967 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -63.994, + 0 + ], + [ + 0, + -108.507 + ], + [ + 0.195, + -2.771 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + -69.688 + ], + [ + 88.079, + -5.014 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + -85.748, + -8.281 + ], + [ + 0, + -91.882 + ], + [ + 18.539, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 17.365, + -92.96 + ], + [ + 41.034, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 36.883, + -52.589 + ], + [ + 108.507, + 0 + ], + [ + 0, + 2.824 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 65.635, + 23.889 + ], + [ + 0, + 88.15 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + -351.402, + 267.575 + ], + [ + -353.733, + 266.754 + ], + [ + -504.138, + 100.944 + ], + [ + -337.499, + -65.695 + ], + [ + -282.438, + -56.187 + ], + [ + -278.457, + -54.783 + ], + [ + -277.679, + -58.933 + ], + [ + -84.397, + -219.365 + ], + [ + 29.68, + -182.73 + ], + [ + 32.647, + -180.611 + ], + [ + 34.739, + -183.594 + ], + [ + 195.842, + -267.575 + ], + [ + 392.62, + -70.797 + ], + [ + 392.242, + -62.421 + ], + [ + 391.87, + -56.425 + ], + [ + 394.406, + -55.507 + ], + [ + 504.138, + 100.944 + ], + [ + 347.059, + 267.089 + ], + [ + 343.644, + 267.284 + ], + [ + 343.644, + 267.575 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 0.800000059838, + 0.800000059838, + 0.800000059838, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 674.803, + 625.448 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 1", + "np": 2, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 90.0000036657751, + "op": 120.0000048877, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 4, + "ty": 4, + "nm": "cloud1 Outlines", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 1, + "k": [ + { + "i": { + "x": 0.667, + "y": 1 + }, + "o": { + "x": 0.621, + "y": 0 + }, + "t": 0, + "s": [ + 960, + 1074, + 0 + ], + "to": [ + -65.5, + 0, + 0 + ], + "ti": [ + 0, + 12.667, + 0 + ] + }, + { + "i": { + "x": 0.359, + "y": 1 + }, + "o": { + "x": 0.333, + "y": 0 + }, + "t": 30, + "s": [ + 567, + 1074, + 0 + ], + "to": [ + 0, + -12.667, + 0 + ], + "ti": [ + -127.333, + 0, + 0 + ] + }, + { + "i": { + "x": 0.667, + "y": 1 + }, + "o": { + "x": 0.333, + "y": 0 + }, + "t": 60, + "s": [ + 960, + 998, + 0 + ], + "to": [ + 127.333, + 0, + 0 + ], + "ti": [ + 0, + -12.667, + 0 + ] + }, + { + "i": { + "x": 0.667, + "y": 1 + }, + "o": { + "x": 0.333, + "y": 0 + }, + "t": 90, + "s": [ + 1331, + 1074, + 0 + ], + "to": [ + 0, + 12.667, + 0 + ], + "ti": [ + 61.833, + 0, + 0 + ] + }, + { + "t": 120.0000048877, + "s": [ + 960, + 1074, + 0 + ] + } + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 653.5, + 653.5, + 0 + ], + "ix": 1 + }, + "s": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.833, + 0.833, + 0.833 + ], + "y": [ + 0.833, + 0.833, + 0.833 + ] + }, + "o": { + "x": [ + 0.167, + 0.167, + 0.167 + ], + "y": [ + 0.167, + 0.167, + 0.167 + ] + }, + "t": 13, + "s": [ + 67, + 67, + 100 + ] + }, + { + "i": { + "x": [ + 0.833, + 0.833, + 0.833 + ], + "y": [ + 0.833, + 0.833, + 0.833 + ] + }, + "o": { + "x": [ + 0.167, + 0.167, + 0.167 + ], + "y": [ + 0.167, + 0.167, + 0.167 + ] + }, + "t": 40, + "s": [ + 46, + 46, + 100 + ] + }, + { + "i": { + "x": [ + 0.833, + 0.833, + 0.833 + ], + "y": [ + 0.833, + 0.833, + 0.833 + ] + }, + "o": { + "x": [ + 0.167, + 0.167, + 0.167 + ], + "y": [ + 0.167, + 0.167, + 0.167 + ] + }, + "t": 79, + "s": [ + 46, + 46, + 100 + ] + }, + { + "t": 107.000004358199, + "s": [ + 67, + 67, + 100 + ] + } + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 86.242 + ], + [ + -91.882, + 0 + ], + [ + -17.991, + -6.313 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -94.627, + 0 + ], + [ + -33.591, + -23.967 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -63.994, + 0 + ], + [ + 0, + -108.507 + ], + [ + 0.195, + -2.771 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + -69.688 + ], + [ + 88.079, + -5.014 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + -85.748, + -8.281 + ], + [ + 0, + -91.882 + ], + [ + 18.539, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 17.365, + -92.96 + ], + [ + 41.034, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 36.883, + -52.589 + ], + [ + 108.507, + 0 + ], + [ + 0, + 2.824 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 65.635, + 23.889 + ], + [ + 0, + 88.15 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + -351.402, + 267.575 + ], + [ + -353.733, + 266.754 + ], + [ + -504.138, + 100.944 + ], + [ + -337.499, + -65.695 + ], + [ + -282.438, + -56.187 + ], + [ + -278.457, + -54.783 + ], + [ + -277.679, + -58.933 + ], + [ + -84.397, + -219.365 + ], + [ + 29.68, + -182.73 + ], + [ + 32.647, + -180.611 + ], + [ + 34.739, + -183.594 + ], + [ + 195.842, + -267.575 + ], + [ + 392.62, + -70.797 + ], + [ + 392.242, + -62.421 + ], + [ + 391.87, + -56.425 + ], + [ + 394.406, + -55.507 + ], + [ + 504.138, + 100.944 + ], + [ + 347.059, + 267.089 + ], + [ + 343.644, + 267.284 + ], + [ + 343.644, + 267.575 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 0.800000059838, + 0.800000059838, + 0.800000059838, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 674.803, + 625.448 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 1", + "np": 2, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 30.0000012219251, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 5, + "ty": 4, + "nm": "Layer 1/flash Outlines 4", + "parent": 13, + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 50, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 662.482, + 1013.707, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 653.5, + 653.5, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 59.836, + 59.836, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + 51.551, + -375.434 + ], + [ + -196.308, + 51.55 + ], + [ + -51.55, + 51.55 + ], + [ + -51.55, + 375.434 + ], + [ + 196.309, + -51.551 + ], + [ + 51.551, + -51.551 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 0.800000059838, + 0, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 635.544, + 590.937 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 1", + "np": 2, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 60.0000024438501, + "op": 63.0000025660426, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 6, + "ty": 4, + "nm": "Layer 1/flash Outlines 3", + "parent": 13, + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 50, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 986.028, + 1051.638, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 653.5, + 653.5, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 69.16, + 69.16, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + 51.551, + -375.434 + ], + [ + -196.308, + 51.55 + ], + [ + -51.55, + 51.55 + ], + [ + -51.55, + 375.434 + ], + [ + 196.309, + -51.551 + ], + [ + 51.551, + -51.551 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 0.800000059838, + 0, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 635.544, + 590.937 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 1", + "np": 2, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 55.0000022401959, + "op": 57.0000023216576, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 7, + "ty": 4, + "nm": "Layer 1/flash Outlines 2", + "parent": 13, + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 50, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 466.758, + 1023.563, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 653.5, + 653.5, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 59.574, + 59.574, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + 51.551, + -375.434 + ], + [ + -196.308, + 51.55 + ], + [ + -51.55, + 51.55 + ], + [ + -51.55, + 375.434 + ], + [ + 196.309, + -51.551 + ], + [ + 51.551, + -51.551 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 0.800000059838, + 0, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 635.544, + 590.937 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 1", + "np": 2, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 50.0000020365418, + "op": 52.0000021180034, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 8, + "ty": 4, + "nm": "Layer 1/flash Outlines", + "parent": 13, + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 50, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 0, + "k": [ + 692.74, + 1053.257, + 0 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 653.5, + 653.5, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 64.615, + 64.615, + 100 + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + 51.551, + -375.434 + ], + [ + -196.308, + 51.55 + ], + [ + -51.55, + 51.55 + ], + [ + -51.55, + 375.434 + ], + [ + 196.309, + -51.551 + ], + [ + 51.551, + -51.551 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 0.800000059838, + 0, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 635.544, + 590.937 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 1", + "np": 2, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 43.0000017514259, + "op": 46.0000018736184, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 9, + "ty": 4, + "nm": "cloud2 Outlines 5", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 1, + "k": [ + { + "i": { + "x": 0.667, + "y": 1 + }, + "o": { + "x": 0.621, + "y": 0 + }, + "t": 0, + "s": [ + 960, + 1071, + 0 + ], + "to": [ + 65.167, + -12.833, + 0 + ], + "ti": [ + 0, + 12.833, + 0 + ] + }, + { + "i": { + "x": 0.359, + "y": 1 + }, + "o": { + "x": 0.333, + "y": 0 + }, + "t": 30, + "s": [ + 1351, + 994, + 0 + ], + "to": [ + 0, + -12.833, + 0 + ], + "ti": [ + 129.333, + 0, + 0 + ] + }, + { + "i": { + "x": 0.667, + "y": 1 + }, + "o": { + "x": 0.333, + "y": 0 + }, + "t": 60, + "s": [ + 960, + 994, + 0 + ], + "to": [ + -129.333, + 0, + 0 + ], + "ti": [ + 0, + -12.333, + 0 + ] + }, + { + "i": { + "x": 0.667, + "y": 1 + }, + "o": { + "x": 0.333, + "y": 0 + }, + "t": 90, + "s": [ + 575, + 994, + 0 + ], + "to": [ + 0, + 12.333, + 0 + ], + "ti": [ + -64.167, + -12.333, + 0 + ] + }, + { + "t": 120.0000048877, + "s": [ + 960, + 1068, + 0 + ] + } + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 653.5, + 596.5, + 0 + ], + "ix": 1 + }, + "s": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.833, + 0.833, + 0.833 + ], + "y": [ + 0.833, + 0.833, + 0.833 + ] + }, + "o": { + "x": [ + 0.167, + 0.167, + 0.167 + ], + "y": [ + 0.167, + 0.167, + 0.167 + ] + }, + "t": 13, + "s": [ + 46, + 46, + 100 + ] + }, + { + "i": { + "x": [ + 0.833, + 0.833, + 0.833 + ], + "y": [ + 0.833, + 0.833, + 0.833 + ] + }, + "o": { + "x": [ + 0.167, + 0.167, + 0.167 + ], + "y": [ + 0.167, + 0.167, + 0.167 + ] + }, + "t": 40, + "s": [ + 65, + 65, + 100 + ] + }, + { + "i": { + "x": [ + 0.833, + 0.833, + 0.833 + ], + "y": [ + 0.833, + 0.833, + 0.833 + ] + }, + "o": { + "x": [ + 0.167, + 0.167, + 0.167 + ], + "y": [ + 0.167, + 0.167, + 0.167 + ] + }, + "t": 79, + "s": [ + 65, + 65, + 100 + ] + }, + { + "t": 107.000004358199, + "s": [ + 46, + 46, + 100 + ] + } + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 34.37, + -93.356 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 11.127, + 0 + ], + [ + 0, + -78.711 + ], + [ + -0.144, + -2.121 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + -53.28 + ], + [ + -69.354, + 0 + ], + [ + -22.269, + 17.24 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -80.869, + 0 + ], + [ + -38.234, + 24.2 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -50.931, + 0 + ], + [ + -30.886, + 63.729 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -3.088, + 0 + ], + [ + 0, + 86.34 + ], + [ + 65.851, + 20.453 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 83.515, + 0 + ], + [ + 16.851, + -5.959 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 76.622, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -11.574, + -2.863 + ], + [ + -78.708, + 0 + ], + [ + 0, + 2.165 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -50.372, + 17.646 + ], + [ + 0, + 69.346 + ], + [ + 27.986, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 44.241, + 68.063 + ], + [ + 44.927, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 35.038, + 37.386 + ], + [ + 70.548, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 3.034, + 0.217 + ], + [ + 86.349, + 0 + ], + [ + 0, + -69.013 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -1.895, + -83.56 + ], + [ + -17.391, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -44.755, + -62.664 + ], + [ + -99.264, + 0 + ] + ], + "v": [ + [ + -236.581, + -173.12 + ], + [ + -237.719, + -170.003 + ], + [ + -240.936, + -170.799 + ], + [ + -275.152, + -175.105 + ], + [ + -417.886, + -32.368 + ], + [ + -417.598, + -25.94 + ], + [ + -417.273, + -20.909 + ], + [ + -419.919, + -19.979 + ], + [ + -504.138, + 98.609 + ], + [ + -378.37, + 224.369 + ], + [ + -301.556, + 198.016 + ], + [ + -298.377, + 195.561 + ], + [ + -296.193, + 198.93 + ], + [ + -96.382, + 307.621 + ], + [ + 30.739, + 270.633 + ], + [ + 33.34, + 268.997 + ], + [ + 35.418, + 271.229 + ], + [ + 168.725, + 329.203 + ], + [ + 333.155, + 225.893 + ], + [ + 335.899, + 223.764 + ], + [ + 338.392, + 223.936 + ], + [ + 347.53, + 224.369 + ], + [ + 504.139, + 67.789 + ], + [ + 394.036, + -81.784 + ], + [ + 391.508, + -82.57 + ], + [ + 391.436, + -85.234 + ], + [ + 236.544, + -236.766 + ], + [ + 184.944, + -227.792 + ], + [ + 182.326, + -226.862 + ], + [ + 180.701, + -229.125 + ], + [ + -13.156, + -329.203 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 2", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "mm", + "mm": 4, + "nm": "Merge Paths 1", + "mn": "ADBE Vector Filter - Merge", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 0.807843137255, + 0.807843137255, + 0.807843137255, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 674.803, + 625.448 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 60.0000024438501, + "op": 63.0000025660426, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 10, + "ty": 4, + "nm": "cloud2 Outlines 4", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 1, + "k": [ + { + "i": { + "x": 0.667, + "y": 1 + }, + "o": { + "x": 0.621, + "y": 0 + }, + "t": 0, + "s": [ + 960, + 1071, + 0 + ], + "to": [ + 65.167, + -12.833, + 0 + ], + "ti": [ + 0, + 12.833, + 0 + ] + }, + { + "i": { + "x": 0.359, + "y": 1 + }, + "o": { + "x": 0.333, + "y": 0 + }, + "t": 30, + "s": [ + 1351, + 994, + 0 + ], + "to": [ + 0, + -12.833, + 0 + ], + "ti": [ + 129.333, + 0, + 0 + ] + }, + { + "i": { + "x": 0.667, + "y": 1 + }, + "o": { + "x": 0.333, + "y": 0 + }, + "t": 60, + "s": [ + 960, + 994, + 0 + ], + "to": [ + -129.333, + 0, + 0 + ], + "ti": [ + 0, + -12.333, + 0 + ] + }, + { + "i": { + "x": 0.667, + "y": 1 + }, + "o": { + "x": 0.333, + "y": 0 + }, + "t": 90, + "s": [ + 575, + 994, + 0 + ], + "to": [ + 0, + 12.333, + 0 + ], + "ti": [ + -64.167, + -12.333, + 0 + ] + }, + { + "t": 120.0000048877, + "s": [ + 960, + 1068, + 0 + ] + } + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 653.5, + 596.5, + 0 + ], + "ix": 1 + }, + "s": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.833, + 0.833, + 0.833 + ], + "y": [ + 0.833, + 0.833, + 0.833 + ] + }, + "o": { + "x": [ + 0.167, + 0.167, + 0.167 + ], + "y": [ + 0.167, + 0.167, + 0.167 + ] + }, + "t": 13, + "s": [ + 46, + 46, + 100 + ] + }, + { + "i": { + "x": [ + 0.833, + 0.833, + 0.833 + ], + "y": [ + 0.833, + 0.833, + 0.833 + ] + }, + "o": { + "x": [ + 0.167, + 0.167, + 0.167 + ], + "y": [ + 0.167, + 0.167, + 0.167 + ] + }, + "t": 40, + "s": [ + 65, + 65, + 100 + ] + }, + { + "i": { + "x": [ + 0.833, + 0.833, + 0.833 + ], + "y": [ + 0.833, + 0.833, + 0.833 + ] + }, + "o": { + "x": [ + 0.167, + 0.167, + 0.167 + ], + "y": [ + 0.167, + 0.167, + 0.167 + ] + }, + "t": 79, + "s": [ + 65, + 65, + 100 + ] + }, + { + "t": 107.000004358199, + "s": [ + 46, + 46, + 100 + ] + } + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 34.37, + -93.356 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 11.127, + 0 + ], + [ + 0, + -78.711 + ], + [ + -0.144, + -2.121 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + -53.28 + ], + [ + -69.354, + 0 + ], + [ + -22.269, + 17.24 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -80.869, + 0 + ], + [ + -38.234, + 24.2 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -50.931, + 0 + ], + [ + -30.886, + 63.729 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -3.088, + 0 + ], + [ + 0, + 86.34 + ], + [ + 65.851, + 20.453 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 83.515, + 0 + ], + [ + 16.851, + -5.959 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 76.622, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -11.574, + -2.863 + ], + [ + -78.708, + 0 + ], + [ + 0, + 2.165 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -50.372, + 17.646 + ], + [ + 0, + 69.346 + ], + [ + 27.986, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 44.241, + 68.063 + ], + [ + 44.927, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 35.038, + 37.386 + ], + [ + 70.548, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 3.034, + 0.217 + ], + [ + 86.349, + 0 + ], + [ + 0, + -69.013 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -1.895, + -83.56 + ], + [ + -17.391, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -44.755, + -62.664 + ], + [ + -99.264, + 0 + ] + ], + "v": [ + [ + -236.581, + -173.12 + ], + [ + -237.719, + -170.003 + ], + [ + -240.936, + -170.799 + ], + [ + -275.152, + -175.105 + ], + [ + -417.886, + -32.368 + ], + [ + -417.598, + -25.94 + ], + [ + -417.273, + -20.909 + ], + [ + -419.919, + -19.979 + ], + [ + -504.138, + 98.609 + ], + [ + -378.37, + 224.369 + ], + [ + -301.556, + 198.016 + ], + [ + -298.377, + 195.561 + ], + [ + -296.193, + 198.93 + ], + [ + -96.382, + 307.621 + ], + [ + 30.739, + 270.633 + ], + [ + 33.34, + 268.997 + ], + [ + 35.418, + 271.229 + ], + [ + 168.725, + 329.203 + ], + [ + 333.155, + 225.893 + ], + [ + 335.899, + 223.764 + ], + [ + 338.392, + 223.936 + ], + [ + 347.53, + 224.369 + ], + [ + 504.139, + 67.789 + ], + [ + 394.036, + -81.784 + ], + [ + 391.508, + -82.57 + ], + [ + 391.436, + -85.234 + ], + [ + 236.544, + -236.766 + ], + [ + 184.944, + -227.792 + ], + [ + 182.326, + -226.862 + ], + [ + 180.701, + -229.125 + ], + [ + -13.156, + -329.203 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 2", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "mm", + "mm": 4, + "nm": "Merge Paths 1", + "mn": "ADBE Vector Filter - Merge", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 0.807843137255, + 0.807843137255, + 0.807843137255, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 674.803, + 625.448 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 55.0000022401959, + "op": 57.0000023216576, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 11, + "ty": 4, + "nm": "cloud2 Outlines 3", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 1, + "k": [ + { + "i": { + "x": 0.667, + "y": 1 + }, + "o": { + "x": 0.621, + "y": 0 + }, + "t": 0, + "s": [ + 960, + 1071, + 0 + ], + "to": [ + 65.167, + -12.833, + 0 + ], + "ti": [ + 0, + 12.833, + 0 + ] + }, + { + "i": { + "x": 0.359, + "y": 1 + }, + "o": { + "x": 0.333, + "y": 0 + }, + "t": 30, + "s": [ + 1351, + 994, + 0 + ], + "to": [ + 0, + -12.833, + 0 + ], + "ti": [ + 129.333, + 0, + 0 + ] + }, + { + "i": { + "x": 0.667, + "y": 1 + }, + "o": { + "x": 0.333, + "y": 0 + }, + "t": 60, + "s": [ + 960, + 994, + 0 + ], + "to": [ + -129.333, + 0, + 0 + ], + "ti": [ + 0, + -12.333, + 0 + ] + }, + { + "i": { + "x": 0.667, + "y": 1 + }, + "o": { + "x": 0.333, + "y": 0 + }, + "t": 90, + "s": [ + 575, + 994, + 0 + ], + "to": [ + 0, + 12.333, + 0 + ], + "ti": [ + -64.167, + -12.333, + 0 + ] + }, + { + "t": 120.0000048877, + "s": [ + 960, + 1068, + 0 + ] + } + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 653.5, + 596.5, + 0 + ], + "ix": 1 + }, + "s": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.833, + 0.833, + 0.833 + ], + "y": [ + 0.833, + 0.833, + 0.833 + ] + }, + "o": { + "x": [ + 0.167, + 0.167, + 0.167 + ], + "y": [ + 0.167, + 0.167, + 0.167 + ] + }, + "t": 13, + "s": [ + 46, + 46, + 100 + ] + }, + { + "i": { + "x": [ + 0.833, + 0.833, + 0.833 + ], + "y": [ + 0.833, + 0.833, + 0.833 + ] + }, + "o": { + "x": [ + 0.167, + 0.167, + 0.167 + ], + "y": [ + 0.167, + 0.167, + 0.167 + ] + }, + "t": 40, + "s": [ + 65, + 65, + 100 + ] + }, + { + "i": { + "x": [ + 0.833, + 0.833, + 0.833 + ], + "y": [ + 0.833, + 0.833, + 0.833 + ] + }, + "o": { + "x": [ + 0.167, + 0.167, + 0.167 + ], + "y": [ + 0.167, + 0.167, + 0.167 + ] + }, + "t": 79, + "s": [ + 65, + 65, + 100 + ] + }, + { + "t": 107.000004358199, + "s": [ + 46, + 46, + 100 + ] + } + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 34.37, + -93.356 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 11.127, + 0 + ], + [ + 0, + -78.711 + ], + [ + -0.144, + -2.121 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + -53.28 + ], + [ + -69.354, + 0 + ], + [ + -22.269, + 17.24 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -80.869, + 0 + ], + [ + -38.234, + 24.2 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -50.931, + 0 + ], + [ + -30.886, + 63.729 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -3.088, + 0 + ], + [ + 0, + 86.34 + ], + [ + 65.851, + 20.453 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 83.515, + 0 + ], + [ + 16.851, + -5.959 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 76.622, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -11.574, + -2.863 + ], + [ + -78.708, + 0 + ], + [ + 0, + 2.165 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -50.372, + 17.646 + ], + [ + 0, + 69.346 + ], + [ + 27.986, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 44.241, + 68.063 + ], + [ + 44.927, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 35.038, + 37.386 + ], + [ + 70.548, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 3.034, + 0.217 + ], + [ + 86.349, + 0 + ], + [ + 0, + -69.013 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -1.895, + -83.56 + ], + [ + -17.391, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -44.755, + -62.664 + ], + [ + -99.264, + 0 + ] + ], + "v": [ + [ + -236.581, + -173.12 + ], + [ + -237.719, + -170.003 + ], + [ + -240.936, + -170.799 + ], + [ + -275.152, + -175.105 + ], + [ + -417.886, + -32.368 + ], + [ + -417.598, + -25.94 + ], + [ + -417.273, + -20.909 + ], + [ + -419.919, + -19.979 + ], + [ + -504.138, + 98.609 + ], + [ + -378.37, + 224.369 + ], + [ + -301.556, + 198.016 + ], + [ + -298.377, + 195.561 + ], + [ + -296.193, + 198.93 + ], + [ + -96.382, + 307.621 + ], + [ + 30.739, + 270.633 + ], + [ + 33.34, + 268.997 + ], + [ + 35.418, + 271.229 + ], + [ + 168.725, + 329.203 + ], + [ + 333.155, + 225.893 + ], + [ + 335.899, + 223.764 + ], + [ + 338.392, + 223.936 + ], + [ + 347.53, + 224.369 + ], + [ + 504.139, + 67.789 + ], + [ + 394.036, + -81.784 + ], + [ + 391.508, + -82.57 + ], + [ + 391.436, + -85.234 + ], + [ + 236.544, + -236.766 + ], + [ + 184.944, + -227.792 + ], + [ + 182.326, + -226.862 + ], + [ + 180.701, + -229.125 + ], + [ + -13.156, + -329.203 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 2", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "mm", + "mm": 4, + "nm": "Merge Paths 1", + "mn": "ADBE Vector Filter - Merge", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 0.807843137255, + 0.807843137255, + 0.807843137255, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 674.803, + 625.448 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 50.0000020365418, + "op": 52.0000021180034, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 12, + "ty": 4, + "nm": "cloud2 Outlines 2", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 1, + "k": [ + { + "i": { + "x": 0.667, + "y": 1 + }, + "o": { + "x": 0.621, + "y": 0 + }, + "t": 0, + "s": [ + 960, + 1071, + 0 + ], + "to": [ + 65.167, + -12.833, + 0 + ], + "ti": [ + 0, + 12.833, + 0 + ] + }, + { + "i": { + "x": 0.359, + "y": 1 + }, + "o": { + "x": 0.333, + "y": 0 + }, + "t": 30, + "s": [ + 1351, + 994, + 0 + ], + "to": [ + 0, + -12.833, + 0 + ], + "ti": [ + 129.333, + 0, + 0 + ] + }, + { + "i": { + "x": 0.667, + "y": 1 + }, + "o": { + "x": 0.333, + "y": 0 + }, + "t": 60, + "s": [ + 960, + 994, + 0 + ], + "to": [ + -129.333, + 0, + 0 + ], + "ti": [ + 0, + -12.333, + 0 + ] + }, + { + "i": { + "x": 0.667, + "y": 1 + }, + "o": { + "x": 0.333, + "y": 0 + }, + "t": 90, + "s": [ + 575, + 994, + 0 + ], + "to": [ + 0, + 12.333, + 0 + ], + "ti": [ + -64.167, + -12.333, + 0 + ] + }, + { + "t": 120.0000048877, + "s": [ + 960, + 1068, + 0 + ] + } + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 653.5, + 596.5, + 0 + ], + "ix": 1 + }, + "s": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.833, + 0.833, + 0.833 + ], + "y": [ + 0.833, + 0.833, + 0.833 + ] + }, + "o": { + "x": [ + 0.167, + 0.167, + 0.167 + ], + "y": [ + 0.167, + 0.167, + 0.167 + ] + }, + "t": 13, + "s": [ + 46, + 46, + 100 + ] + }, + { + "i": { + "x": [ + 0.833, + 0.833, + 0.833 + ], + "y": [ + 0.833, + 0.833, + 0.833 + ] + }, + "o": { + "x": [ + 0.167, + 0.167, + 0.167 + ], + "y": [ + 0.167, + 0.167, + 0.167 + ] + }, + "t": 40, + "s": [ + 65, + 65, + 100 + ] + }, + { + "i": { + "x": [ + 0.833, + 0.833, + 0.833 + ], + "y": [ + 0.833, + 0.833, + 0.833 + ] + }, + "o": { + "x": [ + 0.167, + 0.167, + 0.167 + ], + "y": [ + 0.167, + 0.167, + 0.167 + ] + }, + "t": 79, + "s": [ + 65, + 65, + 100 + ] + }, + { + "t": 107.000004358199, + "s": [ + 46, + 46, + 100 + ] + } + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 34.37, + -93.356 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 11.127, + 0 + ], + [ + 0, + -78.711 + ], + [ + -0.144, + -2.121 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + -53.28 + ], + [ + -69.354, + 0 + ], + [ + -22.269, + 17.24 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -80.869, + 0 + ], + [ + -38.234, + 24.2 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -50.931, + 0 + ], + [ + -30.886, + 63.729 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -3.088, + 0 + ], + [ + 0, + 86.34 + ], + [ + 65.851, + 20.453 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 83.515, + 0 + ], + [ + 16.851, + -5.959 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 76.622, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -11.574, + -2.863 + ], + [ + -78.708, + 0 + ], + [ + 0, + 2.165 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -50.372, + 17.646 + ], + [ + 0, + 69.346 + ], + [ + 27.986, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 44.241, + 68.063 + ], + [ + 44.927, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 35.038, + 37.386 + ], + [ + 70.548, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 3.034, + 0.217 + ], + [ + 86.349, + 0 + ], + [ + 0, + -69.013 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -1.895, + -83.56 + ], + [ + -17.391, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -44.755, + -62.664 + ], + [ + -99.264, + 0 + ] + ], + "v": [ + [ + -236.581, + -173.12 + ], + [ + -237.719, + -170.003 + ], + [ + -240.936, + -170.799 + ], + [ + -275.152, + -175.105 + ], + [ + -417.886, + -32.368 + ], + [ + -417.598, + -25.94 + ], + [ + -417.273, + -20.909 + ], + [ + -419.919, + -19.979 + ], + [ + -504.138, + 98.609 + ], + [ + -378.37, + 224.369 + ], + [ + -301.556, + 198.016 + ], + [ + -298.377, + 195.561 + ], + [ + -296.193, + 198.93 + ], + [ + -96.382, + 307.621 + ], + [ + 30.739, + 270.633 + ], + [ + 33.34, + 268.997 + ], + [ + 35.418, + 271.229 + ], + [ + 168.725, + 329.203 + ], + [ + 333.155, + 225.893 + ], + [ + 335.899, + 223.764 + ], + [ + 338.392, + 223.936 + ], + [ + 347.53, + 224.369 + ], + [ + 504.139, + 67.789 + ], + [ + 394.036, + -81.784 + ], + [ + 391.508, + -82.57 + ], + [ + 391.436, + -85.234 + ], + [ + 236.544, + -236.766 + ], + [ + 184.944, + -227.792 + ], + [ + 182.326, + -226.862 + ], + [ + 180.701, + -229.125 + ], + [ + -13.156, + -329.203 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 2", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "mm", + "mm": 4, + "nm": "Merge Paths 1", + "mn": "ADBE Vector Filter - Merge", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 0.807843137255, + 0.807843137255, + 0.807843137255, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 674.803, + 625.448 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 43.0000017514259, + "op": 46.0000018736184, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 13, + "ty": 4, + "nm": "cloud2 Outlines", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 1, + "k": [ + { + "i": { + "x": 0.667, + "y": 1 + }, + "o": { + "x": 0.621, + "y": 0 + }, + "t": 0, + "s": [ + 960, + 1071, + 0 + ], + "to": [ + 65.167, + -12.833, + 0 + ], + "ti": [ + 0, + 12.833, + 0 + ] + }, + { + "i": { + "x": 0.359, + "y": 1 + }, + "o": { + "x": 0.333, + "y": 0 + }, + "t": 30, + "s": [ + 1351, + 994, + 0 + ], + "to": [ + 0, + -12.833, + 0 + ], + "ti": [ + 129.333, + 0, + 0 + ] + }, + { + "i": { + "x": 0.667, + "y": 1 + }, + "o": { + "x": 0.333, + "y": 0 + }, + "t": 60, + "s": [ + 960, + 994, + 0 + ], + "to": [ + -129.333, + 0, + 0 + ], + "ti": [ + 0, + -12.333, + 0 + ] + }, + { + "i": { + "x": 0.667, + "y": 1 + }, + "o": { + "x": 0.333, + "y": 0 + }, + "t": 90, + "s": [ + 575, + 994, + 0 + ], + "to": [ + 0, + 12.333, + 0 + ], + "ti": [ + -64.167, + -12.333, + 0 + ] + }, + { + "t": 120.0000048877, + "s": [ + 960, + 1068, + 0 + ] + } + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 653.5, + 596.5, + 0 + ], + "ix": 1 + }, + "s": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.833, + 0.833, + 0.833 + ], + "y": [ + 0.833, + 0.833, + 0.833 + ] + }, + "o": { + "x": [ + 0.167, + 0.167, + 0.167 + ], + "y": [ + 0.167, + 0.167, + 0.167 + ] + }, + "t": 13, + "s": [ + 46, + 46, + 100 + ] + }, + { + "i": { + "x": [ + 0.833, + 0.833, + 0.833 + ], + "y": [ + 0.833, + 0.833, + 0.833 + ] + }, + "o": { + "x": [ + 0.167, + 0.167, + 0.167 + ], + "y": [ + 0.167, + 0.167, + 0.167 + ] + }, + "t": 40, + "s": [ + 65, + 65, + 100 + ] + }, + { + "i": { + "x": [ + 0.833, + 0.833, + 0.833 + ], + "y": [ + 0.833, + 0.833, + 0.833 + ] + }, + "o": { + "x": [ + 0.167, + 0.167, + 0.167 + ], + "y": [ + 0.167, + 0.167, + 0.167 + ] + }, + "t": 79, + "s": [ + 65, + 65, + 100 + ] + }, + { + "t": 107.000004358199, + "s": [ + 46, + 46, + 100 + ] + } + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 34.37, + -93.356 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 11.127, + 0 + ], + [ + 0, + -78.711 + ], + [ + -0.144, + -2.121 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + -53.28 + ], + [ + -69.354, + 0 + ], + [ + -22.269, + 17.24 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -80.869, + 0 + ], + [ + -38.234, + 24.2 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -50.931, + 0 + ], + [ + -30.886, + 63.729 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -3.088, + 0 + ], + [ + 0, + 86.34 + ], + [ + 65.851, + 20.453 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 83.515, + 0 + ], + [ + 16.851, + -5.959 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 76.622, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -11.574, + -2.863 + ], + [ + -78.708, + 0 + ], + [ + 0, + 2.165 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -50.372, + 17.646 + ], + [ + 0, + 69.346 + ], + [ + 27.986, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 44.241, + 68.063 + ], + [ + 44.927, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 35.038, + 37.386 + ], + [ + 70.548, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 3.034, + 0.217 + ], + [ + 86.349, + 0 + ], + [ + 0, + -69.013 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -1.895, + -83.56 + ], + [ + -17.391, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -44.755, + -62.664 + ], + [ + -99.264, + 0 + ] + ], + "v": [ + [ + -236.581, + -173.12 + ], + [ + -237.719, + -170.003 + ], + [ + -240.936, + -170.799 + ], + [ + -275.152, + -175.105 + ], + [ + -417.886, + -32.368 + ], + [ + -417.598, + -25.94 + ], + [ + -417.273, + -20.909 + ], + [ + -419.919, + -19.979 + ], + [ + -504.138, + 98.609 + ], + [ + -378.37, + 224.369 + ], + [ + -301.556, + 198.016 + ], + [ + -298.377, + 195.561 + ], + [ + -296.193, + 198.93 + ], + [ + -96.382, + 307.621 + ], + [ + 30.739, + 270.633 + ], + [ + 33.34, + 268.997 + ], + [ + 35.418, + 271.229 + ], + [ + 168.725, + 329.203 + ], + [ + 333.155, + 225.893 + ], + [ + 335.899, + 223.764 + ], + [ + 338.392, + 223.936 + ], + [ + 347.53, + 224.369 + ], + [ + 504.139, + 67.789 + ], + [ + 394.036, + -81.784 + ], + [ + 391.508, + -82.57 + ], + [ + 391.436, + -85.234 + ], + [ + 236.544, + -236.766 + ], + [ + 184.944, + -227.792 + ], + [ + 182.326, + -226.862 + ], + [ + 180.701, + -229.125 + ], + [ + -13.156, + -329.203 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 2", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "mm", + "mm": 4, + "nm": "Merge Paths 1", + "mn": "ADBE Vector Filter - Merge", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 0.5, + 0.5, + 0.5, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 674.803, + 625.448 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 120.0000048877, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 14, + "ty": 4, + "nm": "cloud1 Outlines 2", + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 100, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 1, + "k": [ + { + "i": { + "x": 0.667, + "y": 1 + }, + "o": { + "x": 0.621, + "y": 0 + }, + "t": 0, + "s": [ + 960, + 1074, + 0 + ], + "to": [ + -65.5, + 0, + 0 + ], + "ti": [ + 0, + 12.667, + 0 + ] + }, + { + "i": { + "x": 0.359, + "y": 1 + }, + "o": { + "x": 0.333, + "y": 0 + }, + "t": 30, + "s": [ + 567, + 1074, + 0 + ], + "to": [ + 0, + -12.667, + 0 + ], + "ti": [ + -127.333, + 0, + 0 + ] + }, + { + "i": { + "x": 0.667, + "y": 1 + }, + "o": { + "x": 0.333, + "y": 0 + }, + "t": 60, + "s": [ + 960, + 998, + 0 + ], + "to": [ + 127.333, + 0, + 0 + ], + "ti": [ + 0, + -12.667, + 0 + ] + }, + { + "i": { + "x": 0.667, + "y": 1 + }, + "o": { + "x": 0.333, + "y": 0 + }, + "t": 90, + "s": [ + 1331, + 1074, + 0 + ], + "to": [ + 0, + 12.667, + 0 + ], + "ti": [ + 61.833, + 0, + 0 + ] + }, + { + "t": 120.0000048877, + "s": [ + 960, + 1074, + 0 + ] + } + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 653.5, + 653.5, + 0 + ], + "ix": 1 + }, + "s": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.833, + 0.833, + 0.833 + ], + "y": [ + 0.833, + 0.833, + 0.833 + ] + }, + "o": { + "x": [ + 0.167, + 0.167, + 0.167 + ], + "y": [ + 0.167, + 0.167, + 0.167 + ] + }, + "t": 13, + "s": [ + 67, + 67, + 100 + ] + }, + { + "i": { + "x": [ + 0.833, + 0.833, + 0.833 + ], + "y": [ + 0.833, + 0.833, + 0.833 + ] + }, + "o": { + "x": [ + 0.167, + 0.167, + 0.167 + ], + "y": [ + 0.167, + 0.167, + 0.167 + ] + }, + "t": 40, + "s": [ + 46, + 46, + 100 + ] + }, + { + "i": { + "x": [ + 0.833, + 0.833, + 0.833 + ], + "y": [ + 0.833, + 0.833, + 0.833 + ] + }, + "o": { + "x": [ + 0.167, + 0.167, + 0.167 + ], + "y": [ + 0.167, + 0.167, + 0.167 + ] + }, + "t": 79, + "s": [ + 46, + 46, + 100 + ] + }, + { + "t": 107.000004358199, + "s": [ + 67, + 67, + 100 + ] + } + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 86.242 + ], + [ + -91.882, + 0 + ], + [ + -17.991, + -6.313 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -94.627, + 0 + ], + [ + -33.591, + -23.967 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + -63.994, + 0 + ], + [ + 0, + -108.507 + ], + [ + 0.195, + -2.771 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + -69.688 + ], + [ + 88.079, + -5.014 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "o": [ + [ + 0, + 0 + ], + [ + -85.748, + -8.281 + ], + [ + 0, + -91.882 + ], + [ + 18.539, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 17.365, + -92.96 + ], + [ + 41.034, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 36.883, + -52.589 + ], + [ + 108.507, + 0 + ], + [ + 0, + 2.824 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 65.635, + 23.889 + ], + [ + 0, + 88.15 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + 0 + ] + ], + "v": [ + [ + -351.402, + 267.575 + ], + [ + -353.733, + 266.754 + ], + [ + -504.138, + 100.944 + ], + [ + -337.499, + -65.695 + ], + [ + -282.438, + -56.187 + ], + [ + -278.457, + -54.783 + ], + [ + -277.679, + -58.933 + ], + [ + -84.397, + -219.365 + ], + [ + 29.68, + -182.73 + ], + [ + 32.647, + -180.611 + ], + [ + 34.739, + -183.594 + ], + [ + 195.842, + -267.575 + ], + [ + 392.62, + -70.797 + ], + [ + 392.242, + -62.421 + ], + [ + 391.87, + -56.425 + ], + [ + 394.406, + -55.507 + ], + [ + 504.138, + 100.944 + ], + [ + 347.059, + 267.089 + ], + [ + 343.644, + 267.284 + ], + [ + 343.644, + 267.575 + ] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 0.800000059838, + 0.800000059838, + 0.800000059838, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + 674.803, + 625.448 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Group 1", + "np": 2, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 30.0000012219251, + "op": 90.0000036657752, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 15, + "ty": 4, + "nm": "Shape Layer 2", + "parent": 4, + "sr": 1, + "ks": { + "o": { + "a": 0, + "k": 50, + "ix": 11 + }, + "r": { + "a": 0, + "k": 0, + "ix": 10 + }, + "p": { + "a": 1, + "k": [ + { + "i": { + "x": 0.667, + "y": 1 + }, + "o": { + "x": 0.749, + "y": 0 + }, + "t": 0, + "s": [ + 349.022, + 459.471, + 0 + ], + "to": [ + 0, + -29.5, + 0 + ], + "ti": [ + 0, + -44.572, + 0 + ] + }, + { + "i": { + "x": 0.319, + "y": 1 + }, + "o": { + "x": 0.333, + "y": 0 + }, + "t": 30, + "s": [ + 349.022, + 282.471, + 0 + ], + "to": [ + 0, + 44.572, + 0 + ], + "ti": [ + 0, + 0, + 0 + ] + }, + { + "i": { + "x": 0.667, + "y": 1 + }, + "o": { + "x": 0.668, + "y": 0 + }, + "t": 60, + "s": [ + 349.022, + 726.903, + 0 + ], + "to": [ + 0, + 0, + 0 + ], + "ti": [ + 0, + 44.572, + 0 + ] + }, + { + "i": { + "x": 0.667, + "y": 1 + }, + "o": { + "x": 0.333, + "y": 0 + }, + "t": 90, + "s": [ + 349.022, + 282.471, + 0 + ], + "to": [ + 0, + -44.572, + 0 + ], + "ti": [ + 0, + -29.5, + 0 + ] + }, + { + "t": 120.0000048877, + "s": [ + 349.022, + 459.471, + 0 + ] + } + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + -204, + -16, + 0 + ], + "ix": 1 + }, + "s": { + "a": 1, + "k": [ + { + "i": { + "x": [ + 0.667, + 0.667, + 0.667 + ], + "y": [ + 1, + 1, + 1 + ] + }, + "o": { + "x": [ + 0.333, + 0.333, + 0.333 + ], + "y": [ + 0, + 0, + 0 + ] + }, + "t": 30, + "s": [ + 149.254, + 149.254, + 100 + ] + }, + { + "i": { + "x": [ + 0.667, + 0.667, + 0.667 + ], + "y": [ + 1, + 1, + 1 + ] + }, + "o": { + "x": [ + 0.333, + 0.333, + 0.333 + ], + "y": [ + 0, + 0, + 0 + ] + }, + "t": 60, + "s": [ + 122.254, + 122.254, + 100 + ] + }, + { + "t": 90.0000036657751, + "s": [ + 149.254, + 149.254, + 100 + ] + } + ], + "ix": 6 + } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "d": 1, + "ty": "el", + "s": { + "a": 0, + "k": [ + 244, + 244 + ], + "ix": 2 + }, + "p": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 3 + }, + "nm": "Ellipse Path 1", + "mn": "ADBE Vector Shape - Ellipse", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [ + 1, + 0.847058883368, + 0, + 1 + ], + "ix": 4 + }, + "o": { + "a": 0, + "k": 100, + "ix": 5 + }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { + "a": 0, + "k": [ + -204, + -16 + ], + "ix": 2 + }, + "a": { + "a": 0, + "k": [ + 0, + 0 + ], + "ix": 1 + }, + "s": { + "a": 0, + "k": [ + 100, + 100 + ], + "ix": 3 + }, + "r": { + "a": 0, + "k": 0, + "ix": 6 + }, + "o": { + "a": 0, + "k": 100, + "ix": 7 + }, + "sk": { + "a": 0, + "k": 0, + "ix": 4 + }, + "sa": { + "a": 0, + "k": 0, + "ix": 5 + }, + "nm": "Transform" + } + ], + "nm": "Ellipse 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 30.0000012219251, + "op": 90.0000036657752, + "st": 0, + "bm": 0 + } + ], + "markers": [] +} \ No newline at end of file diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/values-de/strings.xml b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/values-de/strings.xml new file mode 100644 index 000000000..c0c52e0a9 --- /dev/null +++ b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/values-de/strings.xml @@ -0,0 +1,17 @@ + + + Wettervorhersage + FEUCHTIGKEIT + WIND + DRUCK + TAG + NAMEN DER STADT EINGEBEN + AKTUALISIERT AM + Montag + Dienstag + Der Mittwoch + Donnerstag + Freitag + Samstag + Sonntag + \ No newline at end of file diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/values-es/strings.xml b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/values-es/strings.xml new file mode 100644 index 000000000..e7dbfa976 --- /dev/null +++ b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/values-es/strings.xml @@ -0,0 +1,17 @@ + + + Pronóstico del tiempo + HUMEDAD + VIENTO + PRESIÓN + DÍA + INGRESE EL NOMBRE DE LA CIUDAD + ACTUALIZADO EN + Lunes + Martes + Miércoles + Jueves + Viernes + Sábado + Domingo + \ No newline at end of file diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/values-fr/strings.xml b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/values-fr/strings.xml new file mode 100644 index 000000000..b9021443e --- /dev/null +++ b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/values-fr/strings.xml @@ -0,0 +1,17 @@ + + + Prévisions météorologiques + HUMIDITÉ + VENT + PRESSION + JOURNÉE + ENTRER LE NOM DE LA VILLE + MISE À JOUR À + Lundi + Mardi + Mercredi + Jeudi + Vendredi + Samedi + Dimanche + \ No newline at end of file diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/values-night/strings.xml b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/values-night/strings.xml new file mode 100644 index 000000000..6edfb46f0 --- /dev/null +++ b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/values-night/strings.xml @@ -0,0 +1,9 @@ + + + day + PRESSURE + WIND + HUMIDITY + ENTER CITY NAME + UPDATED AT + \ No newline at end of file diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/values-night/themes.xml b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/values-night/themes.xml new file mode 100644 index 000000000..0ee092543 --- /dev/null +++ b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/values-night/themes.xml @@ -0,0 +1,16 @@ + + + + \ No newline at end of file diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/values/colors.xml b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/values/colors.xml new file mode 100644 index 000000000..8a2954104 --- /dev/null +++ b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/values/colors.xml @@ -0,0 +1,18 @@ + + + #80f9ff + #00dae6 + #00ADB5 + #FF03DAC5 + #FF018786 + #FF000000 + #FFFFFFFF + + + #00ADB5 + #222831 + #454B54 + #EEEEEE + #80EEEEEE + + \ No newline at end of file diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/values/strings.xml b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/values/strings.xml new file mode 100644 index 000000000..333ab640a --- /dev/null +++ b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/values/strings.xml @@ -0,0 +1,17 @@ + + Weather Forecast + mic for search + day + PRESSURE + WIND + HUMIDITY + ENTER CITY NAME + UPDATED AT + Monday + Tuesday + Wednesday + Thursday + Friday + Saturday + Sunday + \ No newline at end of file diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/values/themes.xml b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/values/themes.xml new file mode 100644 index 000000000..6ad5d73a2 --- /dev/null +++ b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/main/res/values/themes.xml @@ -0,0 +1,16 @@ + + + + \ No newline at end of file diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/test/java/com/aniketjain/weatherapp/ExampleUnitTest.java b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/test/java/com/aniketjain/weatherapp/ExampleUnitTest.java new file mode 100644 index 000000000..24338c538 --- /dev/null +++ b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/app/src/test/java/com/aniketjain/weatherapp/ExampleUnitTest.java @@ -0,0 +1,17 @@ +package com.aniketjain.weatherapp; + +import org.junit.Test; + +import static org.junit.Assert.*; + +/** + * Example local unit test, which will execute on the development machine (host). + * + * @see Testing documentation + */ +public class ExampleUnitTest { + @Test + public void addition_isCorrect() { + assertEquals(4, 2 + 2); + } +} \ No newline at end of file diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/build.gradle b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/build.gradle new file mode 100644 index 000000000..4a0042b4f --- /dev/null +++ b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/build.gradle @@ -0,0 +1,9 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. +plugins { + id 'com.android.application' version '7.4.2' apply false + id 'com.android.library' version '7.4.2' apply false +} + +task clean(type: Delete) { + delete rootProject.buildDir +} \ No newline at end of file diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/gradle.properties b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/gradle.properties new file mode 100644 index 000000000..dab7c28bf --- /dev/null +++ b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/gradle.properties @@ -0,0 +1,21 @@ +# Project-wide Gradle settings. +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app"s APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true +# Enables namespacing of each library's R class so that its R class includes only the +# resources declared in the library itself and none from the library's dependencies, +# thereby reducing the size of the R class for that library +android.nonTransitiveRClass=true \ No newline at end of file diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/gradle/wrapper/gradle-wrapper.jar b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 000000000..e708b1c02 Binary files /dev/null and b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/gradle/wrapper/gradle-wrapper.jar differ diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/gradle/wrapper/gradle-wrapper.properties b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 000000000..6350da03e --- /dev/null +++ b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Sat Jul 08 02:25:06 IST 2023 +distributionBase=GRADLE_USER_HOME +distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip +distributionPath=wrapper/dists +zipStorePath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/gradlew b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/gradlew new file mode 100644 index 000000000..4f906e0c8 --- /dev/null +++ b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/gradlew @@ -0,0 +1,185 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/gradlew.bat b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/gradlew.bat new file mode 100644 index 000000000..107acd32c --- /dev/null +++ b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/index.html b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/index.html new file mode 100644 index 000000000..3dedc0179 --- /dev/null +++ b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/index.html @@ -0,0 +1,5 @@ + + + Weather App Android + + diff --git a/4]. Projects/Mobile Development/Android Application - Java/Weather Application/settings.gradle b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/settings.gradle new file mode 100644 index 000000000..e47cede14 --- /dev/null +++ b/4]. Projects/Mobile Development/Android Application - Java/Weather Application/settings.gradle @@ -0,0 +1,18 @@ +pluginManagement { + repositories { + gradlePluginPortal() + google() + mavenCentral() + maven { url "https://jitpack.io" } + } +} +dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) + repositories { + google() + mavenCentral() + maven { url "https://jitpack.io" } + } +} +rootProject.name = "Weather App" +include ':app'