· 5 years ago · Feb 28, 2021, 07:22 PM
1package com.example.szakdogabeta;
2
3///BOTTOM NAV::: https://www.youtube.com/watch?v=JjfSjMs0ImQ&ab_channel=AndroidCoding
4//Idojaras: https://www.youtube.com/watch?v=TJQzlm5A3xQ&ab_channel=PhucVR
5// api : openweather
6//http://openweathermap.org/img/wn/10d@2x.png
7import androidx.annotation.NonNull;
8import androidx.appcompat.app.AppCompatActivity;
9
10import android.content.Intent;
11import android.graphics.drawable.Drawable;
12import android.os.AsyncTask;
13import android.os.Bundle;
14import android.util.Log;
15import android.view.Menu;
16import android.view.MenuInflater;
17import android.view.MenuItem;
18import android.view.View;
19import android.view.contentcapture.DataShareRequest;
20import android.widget.ArrayAdapter;
21import android.widget.ImageView;
22import android.widget.ListView;
23import android.widget.TextView;
24
25import com.google.android.material.bottomnavigation.BottomNavigationView;
26import com.google.firebase.auth.FirebaseAuth;
27import com.google.firebase.auth.FirebaseUser;
28import com.google.firebase.database.DataSnapshot;
29import com.google.firebase.database.DatabaseError;
30import com.google.firebase.database.DatabaseReference;
31import com.google.firebase.database.FirebaseDatabase;
32import com.google.firebase.database.ValueEventListener;
33
34import org.json.JSONArray;
35import org.json.JSONObject;
36import org.w3c.dom.Text;
37
38import java.io.IOException;
39import java.io.InputStream;
40import java.io.InputStreamReader;
41import java.math.BigDecimal;
42import java.math.RoundingMode;
43import java.net.HttpURLConnection;
44import java.net.MalformedURLException;
45import java.net.URL;
46import java.util.ArrayList;
47import java.util.HashMap;
48import java.util.Map;
49import java.util.TreeMap;
50import java.util.concurrent.ExecutionException;
51
52public class Secret extends AppCompatActivity {
53 String Key = "de34845943ecce3f341c05a8b4b57200";
54 String City ="Szentes";
55 String url="https://api.openweathermap.org/data/2.5/weather?q="+City+"&units=metric&lang=hu&appid="+Key;
56 String timestamp;
57 String iconType="";
58 String iconUrl = "https://openweathermap.org/img/wn/"+iconType+".png";
59
60 FirebaseAuth fAuth;
61 FirebaseDatabase firebaseDatabase;
62 DatabaseReference databaseReference;
63
64 //Idojaras
65 Double temperature=0.0;
66 Double feelLikeTemperature=0.0;
67 Double humidity=0.0;
68 Double windSpeed=0.0;
69 Double windDeg=0.0;
70 Double pressure=0.0;
71 String cloudDesc;
72
73
74
75 TextView temperatureText;
76 TextView cityText;
77 TextView ValueFeelLikeText;
78 TextView TitleHumidityText;
79 TextView TitleCloudyText;
80
81 ImageView weatherImg;
82
83
84 ListView listView;
85 TreeMap <String,Double> ertek = new TreeMap<String,Double>();
86
87 Double lastValue=0.0;
88
89
90 /////////////////////////////////////////////////////////////////////////////////////////
91 //VERTICAL MENU
92 //https://www.youtube.com/watch?v=oh4YOj9VkVE&ab_channel=CodinginFlow
93 @Override
94 public boolean onCreateOptionsMenu(Menu menu) {
95 MenuInflater inflater = getMenuInflater();
96 inflater.inflate(R.menu.vertical_menu,menu);
97 return true;
98 }
99
100 @Override
101 public boolean onOptionsItemSelected(@NonNull MenuItem item) {
102 switch (item.getItemId()){
103 case R.id.logoutButtonVertical:
104 FirebaseAuth.getInstance().signOut();
105 startActivity(new Intent(getApplicationContext(),Login.class));
106 finish();
107 }
108 return super.onOptionsItemSelected(item);
109 }
110/////////////////////////////////////////////////////////////////////////////////////////
111
112 @Override
113 protected void onCreate(Bundle savedInstanceState) {
114 super.onCreate(savedInstanceState);
115 setContentView(R.layout.activity_secret);
116
117 fAuth = FirebaseAuth.getInstance();
118
119 if(fAuth.getCurrentUser() == null){
120 startActivity(new Intent(getApplicationContext(), Login.class)); //ez nem tudom mire jo
121 finish();
122 }
123 getDataFrom(url);
124
125
126 //textDeklaralas
127 temperatureText = (TextView) findViewById(R.id.txtValue);
128 cityText = (TextView) findViewById(R.id.txtCity);
129 ValueFeelLikeText = (TextView) findViewById(R.id.txtValueFeelLike);
130 TitleHumidityText = (TextView) findViewById(R.id.txtValueHumidity);
131 TitleCloudyText = (TextView) findViewById(R.id.txtCloudy);
132 weatherImg = (ImageView) findViewById(R.id.imgIcon);
133
134 BigDecimal temperaturebd = new BigDecimal(temperature).setScale(1, RoundingMode.HALF_UP);
135 BigDecimal feelLikeTemperaturebd = new BigDecimal(feelLikeTemperature).setScale(1, RoundingMode.HALF_UP);
136
137
138 temperatureText.setText(String.valueOf(temperaturebd) + "°");
139 cityText.setText(City);
140 ValueFeelLikeText.setText(String.valueOf(feelLikeTemperaturebd)+ "°");
141 TitleHumidityText.setText(humidity + " %");
142 TitleCloudyText.setText(cloudDesc);
143
144//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
145 //MENU BOTTOM
146 BottomNavigationView bottomNavigationView = findViewById(R.id.bottom_navigation);
147
148 //set slected
149 bottomNavigationView.setSelectedItemId(R.id.home);
150
151 //Item listener
152 bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
153 @Override
154 public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
155 switch (menuItem.getItemId()){
156 case R.id.home:
157 return true;
158 case R.id.sensors:
159 startActivity(new Intent(getApplicationContext(),
160 Sensors.class));
161 overridePendingTransition(0,0);
162 return true;
163 case R.id.datas:
164 startActivity(new Intent(getApplicationContext(),
165 Datas.class));
166 overridePendingTransition(0,0);
167 return true;
168
169 }
170 return false;
171 }
172 });
173
174//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
175 //valtozok
176 final String TAG = Secret.class.getSimpleName();
177//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
178 // Idojaras
179
180
181 }
182 private String getDataFrom(String url) {
183 try {
184 HtmlDownloader downloader = new HtmlDownloader();
185 // System.out.println(downloader.execute(url).get());
186 JSONObject obj = new JSONObject(downloader.execute(url).get());
187 JSONObject datas = obj.getJSONObject("main");
188
189 JSONArray jArr = obj.getJSONArray("weather");
190 JSONObject windDatas = obj.getJSONObject("wind");
191
192 temperature = datas.getDouble("temp");
193 feelLikeTemperature = datas.getDouble("feels_like");
194 humidity = datas.getDouble("humidity");
195 pressure = datas.getDouble("pressure");
196
197 windSpeed = windDatas.getDouble("speed");
198 windDeg = windDatas.getDouble("deg");
199 for(int i=0;i<jArr.length();i++)
200 {
201 JSONObject wether=jArr.getJSONObject(i);
202 cloudDesc = wether.getString("description");
203 iconType = wether.getString("icon");
204 weatherImg.setImageDrawable(LoadImageFromWebOperations(iconUrl));
205
206 }
207 //LoadImageFromWebOperations(iconUrl);
208
209 System.out.println(cloudDesc);
210//
211 System.out.println(temperature);
212// System.out.println(temperature);
213
214 return downloader.execute(url).get();
215 } catch (Exception e) {
216 e.printStackTrace();
217 return null;
218 }
219 }
220
221 public void loggingOut(View view) {
222 FirebaseAuth.getInstance().signOut();
223 startActivity(new Intent(getApplicationContext(),Login.class));
224 finish();
225 }
226 private void Traillistners(DatabaseReference databaseReference){
227 firebaseDatabase.getInstance();
228 databaseReference=firebaseDatabase.getInstance().getReference("DSM501A/PPM25");
229
230 ValueEventListener postListener = new ValueEventListener() {
231
232 // databaseReference.addListenerForSingleValueEvent(new ValueEventListener() {
233 @Override
234 public void onDataChange(DataSnapshot dataSnapshot) {
235 Log.d("checksnap","ADAT!!: " + "+ " + dataSnapshot);
236 for(DataSnapshot objects:dataSnapshot.getChildren()){
237 Log.d("KEY:: ",""+objects.getKey());
238 ertek.put(objects.getKey(), objects.getValue(Double.class));
239 }
240 // Egesz map bejaras
241 for (Map.Entry<String,Double> entry : ertek.entrySet())
242 System.out.println("Key = " + entry.getKey() +
243 ", Value = " + entry.getValue());
244 // TimeStamptol bejaras
245 for(Map.Entry<String, Double> entry : ertek.tailMap("1613261411").entrySet()){
246 System.out.println("UJKey = " + entry.getKey() +
247 ", Value = " + entry.getValue()); }
248 lastValue=ertek.lastEntry().getValue();
249 // textElement.setText("Utolso ertek: DÁtuma: "+ lastValue);
250
251
252 }
253 @Override
254 public void onCancelled(DatabaseError databaseError) {
255
256 }
257 };
258 databaseReference.addValueEventListener(postListener);
259
260 //);
261
262 }
263
264 public Drawable LoadImageFromWebOperations(String url) {
265 try {
266 InputStream is = (InputStream) new URL(url).getContent();
267 Drawable d = Drawable.createFromStream(is, "src name");
268 return d;
269 } catch (Exception e) {
270 return null;
271 }
272 }
273
274}
275
276
277
278
279
280
281
282
283