From f35018a4b06805b8528b56297f7953f4d490e843 Mon Sep 17 00:00:00 2001 From: iyasuwatts Date: Fri, 23 Jun 2017 14:02:54 -0400 Subject: [PATCH 1/4] Created WeatherFragment --- .../MainActivity.java | 7 ++ .../WeatherFragment.java | 68 +++++++++++++++++++ app/src/main/res/layout/activity_main.xml | 24 +++---- app/src/main/res/layout/fragment_weather.xml | 58 ++++++++++++++++ 4 files changed, 144 insertions(+), 13 deletions(-) create mode 100755 app/src/main/java/com/zipcoder/androidweatherapplication/WeatherFragment.java create mode 100755 app/src/main/res/layout/fragment_weather.xml diff --git a/app/src/main/java/com/zipcoder/androidweatherapplication/MainActivity.java b/app/src/main/java/com/zipcoder/androidweatherapplication/MainActivity.java index 3a5fd85..bbdebff 100644 --- a/app/src/main/java/com/zipcoder/androidweatherapplication/MainActivity.java +++ b/app/src/main/java/com/zipcoder/androidweatherapplication/MainActivity.java @@ -9,5 +9,12 @@ public class MainActivity extends AppCompatActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); + + } + + private void update(Bundle savedInstanceSate){ + getSupportFragmentManager().beginTransaction() + .replace(R.id.weather, new WeatherFragment()) + .commit(); } } diff --git a/app/src/main/java/com/zipcoder/androidweatherapplication/WeatherFragment.java b/app/src/main/java/com/zipcoder/androidweatherapplication/WeatherFragment.java new file mode 100755 index 0000000..1de23c3 --- /dev/null +++ b/app/src/main/java/com/zipcoder/androidweatherapplication/WeatherFragment.java @@ -0,0 +1,68 @@ +package com.zipcoder.androidweatherapplication; + + +import android.graphics.Typeface; +import android.os.Bundle; +import android.os.Handler; +import android.support.v4.app.Fragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ListView; +import android.widget.SearchView; +import android.widget.TextView; +import android.widget.Toast; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.ArrayList; +import java.util.Date; +import java.util.Locale; + + +/** + * A simple {@link Fragment} subclass. + */ +public class WeatherFragment extends Fragment implements View.OnClickListener { + + TextView cityField; + TextView updatedField; + TextView detailsField; + TextView currentTempField; + TextView weatherIcon; + Typeface weatherFont; + ListView listView; + SearchView searchView; + + String selectedCity = "wilmington"; + + Handler handler; + + + public WeatherFragment() { + // Required empty public constructor + handler = new Handler(); + + } + + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + // Inflate the layout for this fragment + View rootView = inflater.inflate(R.layout.fragment_weather, container, false); + return rootView; + } + + + @Override + public void onClick(View v) { + + } +} diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index aef1d24..e48581a 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,18 +1,16 @@ - + android:orientation="vertical"> - - + + + + diff --git a/app/src/main/res/layout/fragment_weather.xml b/app/src/main/res/layout/fragment_weather.xml new file mode 100755 index 0000000..fc26f15 --- /dev/null +++ b/app/src/main/res/layout/fragment_weather.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + From fc1569a0d795ffc78e0b5f1ee0745a5fbb1dbcba Mon Sep 17 00:00:00 2001 From: iyasuwatts Date: Fri, 23 Jun 2017 14:08:40 -0400 Subject: [PATCH 2/4] Created WeatherFragment --- .../MainActivity.java | 4 ++-- .../WeatherFragment.java | 21 ------------------- app/src/main/res/layout/fragment_weather.xml | 3 ++- 3 files changed, 4 insertions(+), 24 deletions(-) diff --git a/app/src/main/java/com/zipcoder/androidweatherapplication/MainActivity.java b/app/src/main/java/com/zipcoder/androidweatherapplication/MainActivity.java index bbdebff..043d0b4 100644 --- a/app/src/main/java/com/zipcoder/androidweatherapplication/MainActivity.java +++ b/app/src/main/java/com/zipcoder/androidweatherapplication/MainActivity.java @@ -9,10 +9,10 @@ public class MainActivity extends AppCompatActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); - + update(); } - private void update(Bundle savedInstanceSate){ + private void update(){ getSupportFragmentManager().beginTransaction() .replace(R.id.weather, new WeatherFragment()) .commit(); diff --git a/app/src/main/java/com/zipcoder/androidweatherapplication/WeatherFragment.java b/app/src/main/java/com/zipcoder/androidweatherapplication/WeatherFragment.java index 1de23c3..66ffcbf 100755 --- a/app/src/main/java/com/zipcoder/androidweatherapplication/WeatherFragment.java +++ b/app/src/main/java/com/zipcoder/androidweatherapplication/WeatherFragment.java @@ -1,24 +1,13 @@ package com.zipcoder.androidweatherapplication; -import android.graphics.Typeface; import android.os.Bundle; import android.os.Handler; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.ListView; -import android.widget.SearchView; -import android.widget.TextView; -import android.widget.Toast; -import org.json.JSONException; -import org.json.JSONObject; - -import java.util.ArrayList; -import java.util.Date; -import java.util.Locale; /** @@ -26,16 +15,6 @@ */ public class WeatherFragment extends Fragment implements View.OnClickListener { - TextView cityField; - TextView updatedField; - TextView detailsField; - TextView currentTempField; - TextView weatherIcon; - Typeface weatherFont; - ListView listView; - SearchView searchView; - - String selectedCity = "wilmington"; Handler handler; diff --git a/app/src/main/res/layout/fragment_weather.xml b/app/src/main/res/layout/fragment_weather.xml index fc26f15..427409e 100755 --- a/app/src/main/res/layout/fragment_weather.xml +++ b/app/src/main/res/layout/fragment_weather.xml @@ -16,7 +16,8 @@ android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:textAppearance="?android:attr/textAppearanceLarge" - android:paddingTop="50sp"/> + android:paddingTop="50sp" + android:text="HELLO!"/> Date: Fri, 23 Jun 2017 14:23:23 -0400 Subject: [PATCH 3/4] Get current weather --- app/src/main/AndroidManifest.xml | 2 + .../androidweatherapplication/Helper.java | 21 ++++++++ .../RemoteFetch.java | 48 +++++++++++++++++++ .../WeatherFragment.java | 30 +++++++++++- 4 files changed, 100 insertions(+), 1 deletion(-) create mode 100644 app/src/main/java/com/zipcoder/androidweatherapplication/Helper.java create mode 100755 app/src/main/java/com/zipcoder/androidweatherapplication/RemoteFetch.java diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5c0ffbe..238aaa3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,6 +2,8 @@ + + Date: Fri, 23 Jun 2017 14:33:02 -0400 Subject: [PATCH 4/4] Added weather model --- .../JSONToModel.java | 48 ++++++ .../WeatherFragment.java | 2 + .../WeatherModel.java | 138 ++++++++++++++++++ 3 files changed, 188 insertions(+) create mode 100644 app/src/main/java/com/zipcoder/androidweatherapplication/JSONToModel.java create mode 100644 app/src/main/java/com/zipcoder/androidweatherapplication/WeatherModel.java diff --git a/app/src/main/java/com/zipcoder/androidweatherapplication/JSONToModel.java b/app/src/main/java/com/zipcoder/androidweatherapplication/JSONToModel.java new file mode 100644 index 0000000..14fe8a8 --- /dev/null +++ b/app/src/main/java/com/zipcoder/androidweatherapplication/JSONToModel.java @@ -0,0 +1,48 @@ +package com.zipcoder.androidweatherapplication; + +import android.util.Log; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.text.DateFormat; +import java.util.Date; + +/** + * Created by iyasuwatts on 6/22/17. + */ + +public class JSONToModel { + + + + + public static WeatherModel currentToModel(JSONObject jsonObject){ + WeatherModel weatherModel = new WeatherModel(); + DateFormat df = DateFormat.getDateInstance(); + try { + JSONObject details = jsonObject.getJSONArray("weather").getJSONObject(0); + JSONObject main = jsonObject.getJSONObject("main"); + JSONObject sys = jsonObject.getJSONObject("sys"); + + weatherModel.setDescription(details.getString("description")); + weatherModel.setLastUpdate(df.format(new Date(jsonObject.getLong("dt")*1000))); + weatherModel.setTemp(main.getString("temp")); + weatherModel.setTempHigh(main.getString("temp_max")); + weatherModel.setTempLow(main.getString("temp_min")); + weatherModel.setHumidity(main.getString("humidity")); + weatherModel.setCity(jsonObject.getString("name")); + weatherModel.setCountry(sys.getString("country")); + weatherModel.setPressure(main.getString("pressure")); + weatherModel.setWeatherIconId(details.getInt("id")); + weatherModel.setSunrise(sys.getLong("sunrise")*1000); + weatherModel.setSunset(sys.getLong("sunset")*1000); + + }catch (JSONException e) { + e.printStackTrace(); + } + + return weatherModel; + } + +} diff --git a/app/src/main/java/com/zipcoder/androidweatherapplication/WeatherFragment.java b/app/src/main/java/com/zipcoder/androidweatherapplication/WeatherFragment.java index 224cef6..3dc4382 100755 --- a/app/src/main/java/com/zipcoder/androidweatherapplication/WeatherFragment.java +++ b/app/src/main/java/com/zipcoder/androidweatherapplication/WeatherFragment.java @@ -18,6 +18,7 @@ */ public class WeatherFragment extends Fragment implements View.OnClickListener { + String selectedCity = "philalphia"; Handler handler; @@ -56,6 +57,7 @@ public void run() { toast.show(); }else { Log.i("Current Weather Data ", String.valueOf(current)); + Log.i("Weather Model", String.valueOf(JSONToModel.currentToModel(current))); } diff --git a/app/src/main/java/com/zipcoder/androidweatherapplication/WeatherModel.java b/app/src/main/java/com/zipcoder/androidweatherapplication/WeatherModel.java new file mode 100644 index 0000000..610b83d --- /dev/null +++ b/app/src/main/java/com/zipcoder/androidweatherapplication/WeatherModel.java @@ -0,0 +1,138 @@ +package com.zipcoder.androidweatherapplication; + + +/** + * Created by iyasuwatts on 6/21/17. + */ + +public class WeatherModel { + + + + String temp; + String tempHigh; + String tempLow; + String humidity; + String pressure; + String city; + String country; + String description; + String lastUpdate; + String time; + int weatherIconId; + long sunrise; + long sunset; + + + + + public WeatherModel(){ + + } + + + + public void setTemp(String temp) { + this.temp = temp; + } + + public void setTempHigh(String tempHigh) { + this.tempHigh = tempHigh; + } + + public void setTempLow(String tempLow) { + this.tempLow = tempLow; + } + + public void setHumidity(String humidity) { + this.humidity = humidity; + } + + public void setPressure(String pressure) { + this.pressure = pressure; + } + + public void setCity(String city) { + this.city = city; + } + + public void setCountry(String country) { + this.country = country; + } + + public void setDescription(String description) { + this.description = description; + } + + public void setLastUpdate(String lastUpdate) { + this.lastUpdate = lastUpdate; + } + + public void setWeatherIconId(int weatherIconId) { + this.weatherIconId = weatherIconId; + } + + public void setSunrise(long sunrise) { + this.sunrise = sunrise; + } + + public void setSunset(long sunset) { + this.sunset = sunset; + } + + public void setTime(String time) { + this.time = time; + } + + public String getTime() { + return time; + } + + public String getPressure() { + return pressure + "hPa"; + } + + public String getCity() { + return city; + } + + public String getHumidity() { + return humidity + "%"; + } + + public String getCountry() { + return country; + } + + public String getDescription() { + return description; + } + + public String getTemp() { + return temp + "F"; + } + + public int getWeatherIconId() { + return weatherIconId; + } + + public long getSunrise() { + return sunrise; + } + + public long getSunset() { + return sunset; + } + + public String getLastUpdate() { + return lastUpdate; + } + + public String getTempHigh() { + return tempHigh; + } + + public String getTempLow() { + return tempLow; + } +}