favourites update handler moved to main

fix/get-all-stations-hangout
Mateusz Lubecki 2022-01-05 21:28:47 +01:00
rodzic 31135df0c9
commit 660390391a
8 zmienionych plików z 98 dodań i 45 usunięć

Wyświetl plik

@ -5,6 +5,8 @@ import android.content.Context;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.os.Build;
import android.os.Handler;
import android.os.Looper;
import android.os.StrictMode;
import android.os.strictmode.Violation;
@ -22,11 +24,13 @@ import java.util.List;
import java.util.Locale;
import cc.pogoda.mobile.meteosystem.activity.handler.MainActImageButtonFavouritesClickEvent;
import cc.pogoda.mobile.meteosystem.activity.updater.FavouritesStationDetailsUpdater;
import cc.pogoda.mobile.meteosystem.config.AppConfiguration;
import cc.pogoda.mobile.meteosystem.dao.AllStationsDao;
import cc.pogoda.mobile.meteosystem.file.ConfigurationFile;
import cc.pogoda.mobile.meteosystem.file.FavouritiesFile;
import cc.pogoda.mobile.meteosystem.file.FileNames;
import cc.pogoda.mobile.meteosystem.type.ParceableFavsCallReason;
import cc.pogoda.mobile.meteosystem.type.ParceableStationsList;
import cc.pogoda.mobile.meteosystem.type.WeatherStation;
import cc.pogoda.mobile.meteosystem.type.WeatherStationListEvent;
@ -57,6 +61,10 @@ public class Main extends Application {
private List<WeatherStation> favs;
private Handler handler = null;
private FavouritesStationDetailsUpdater favsUpdater = null;
public File getDirectory() {
return directory;
}
@ -99,6 +107,10 @@ public class Main extends Application {
confFile.restoreFromFile();
handler = new Handler(Looper.getMainLooper());
favsUpdater = new FavouritesStationDetailsUpdater(handler);
fileNames = new FileNames(ctx);
favouritiesFile = new FavouritiesFile(fileNames);
@ -214,4 +226,43 @@ public class Main extends Application {
//Toast.makeText(this, intentServiceResult.getResultValue(), Toast.LENGTH_SHORT).show();
}
public boolean listOfAllStationsReady() {
if (listOfAllStations != null && listOfAllStations.size() > 0) {
return true;
}
else {
return false;
}
}
public boolean listOfFavsReady() {
if (favs != null && favs.size() > 0) {
return true;
}
else {
return false;
}
}
public void createAndStartUpdater() {
// check if there is previous instance of updater
if (favsUpdater != null && favsUpdater.isEnabled()) {
stopUpdater();
}
handler = new Handler(Looper.getMainLooper());
favsUpdater = new FavouritesStationDetailsUpdater(handler);
handler.postDelayed(favsUpdater, 300);
favsUpdater.setEnabled(true);
}
public void stopUpdater() {
if (reason.equals(ParceableFavsCallReason.Reason.FAVOURITES)) {
handler.removeCallbacks(favsUpdater);
favsUpdater.setEnabled(false);
}
}
}

Wyświetl plik

@ -8,7 +8,6 @@ import cc.pogoda.mobile.meteosystem.Main;
import cc.pogoda.mobile.meteosystem.R;
import cc.pogoda.mobile.meteosystem.adapter.WeatherStationRecyclerViewAdapter;
import cc.pogoda.mobile.meteosystem.type.ParceableFavsCallReason;
import cc.pogoda.mobile.meteosystem.type.ParceableStationsList;
import cc.pogoda.mobile.meteosystem.type.WeatherStation;
import cc.pogoda.mobile.meteosystem.type.web.Summary;

Wyświetl plik

@ -75,7 +75,6 @@ public class MainActivity extends AppCompatActivity {
@Override
protected void onResume() {
super.onResume();
//recreateListOfFavs();
}
@Override
@ -147,4 +146,22 @@ public class MainActivity extends AppCompatActivity {
return true;
}
public boolean listOfAllStationsReady() {
if (main != null) {
return main.listOfAllStationsReady();
}
else {
return false;
}
}
public boolean listOfAllFavsReady() {
if (main != null) {
return main.listOfFavsReady();
}
else {
return false;
}
}
}

Wyświetl plik

@ -6,15 +6,16 @@ import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
import cc.pogoda.mobile.meteosystem.activity.AllStationsActivity;
import cc.pogoda.mobile.meteosystem.activity.MainActivity;
import cc.pogoda.mobile.meteosystem.type.ParceableStationsList;
public class MainActImageButtonAllStationsClickEvent implements View.OnClickListener {
AppCompatActivity parent;
MainActivity parent;
Intent intent;
public MainActImageButtonAllStationsClickEvent(AppCompatActivity parent) {
public MainActImageButtonAllStationsClickEvent(MainActivity parent) {
this.parent = parent;
intent = new Intent(this.parent, AllStationsActivity.class);
@ -24,7 +25,9 @@ public class MainActImageButtonAllStationsClickEvent implements View.OnClickList
@Override
public void onClick(View v) {
launchActivity();
if (parent.listOfAllStationsReady()) {
launchActivity();
}
return;
}

Wyświetl plik

@ -6,16 +6,17 @@ import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
import cc.pogoda.mobile.meteosystem.activity.FavouritesActivity;
import cc.pogoda.mobile.meteosystem.activity.MainActivity;
import cc.pogoda.mobile.meteosystem.type.ParceableFavsCallReason;
import cc.pogoda.mobile.meteosystem.type.ParceableStationsList;
public class MainActImageButtonFavouritesClickEvent implements View.OnClickListener{
AppCompatActivity parent;
MainActivity parent;
Intent intent;
public MainActImageButtonFavouritesClickEvent(AppCompatActivity parent) {
public MainActImageButtonFavouritesClickEvent(MainActivity parent) {
this.parent = parent;
intent = new Intent(this.parent, FavouritesActivity.class);
@ -26,7 +27,9 @@ public class MainActImageButtonFavouritesClickEvent implements View.OnClickListe
@Override
public void onClick(View view) {
if (parent.listOfAllFavsReady()) {
parent.startActivity(intent);
parent.startActivity(intent);
}
}
}

Wyświetl plik

@ -37,7 +37,6 @@ public class WeatherStationRecyclerViewAdapter extends RecyclerView.Adapter<AllS
FavouritesStationDetailsUpdater favsUpdater = null;
Handler handler = null;
public WeatherStationRecyclerViewAdapter(List<WeatherStation> stations, AppCompatActivity parentActivity, ParceableFavsCallReason.Reason callReason) {
this.stations = stations;
@ -49,30 +48,6 @@ public class WeatherStationRecyclerViewAdapter extends RecyclerView.Adapter<AllS
}
public void createAndStartUpdater() {
if (reason.equals(ParceableFavsCallReason.Reason.FAVOURITES)) {
// check if there is previous instance of updater
if (favsUpdater != null && favsUpdater.isEnabled()) {
stopUpdater();
}
handler = new Handler();
favsUpdater = new FavouritesStationDetailsUpdater(handler);
handler.postDelayed(favsUpdater, 300);
favsUpdater.setEnabled(true);
}
}
public void stopUpdater() {
if (reason.equals(ParceableFavsCallReason.Reason.FAVOURITES)) {
handler.removeCallbacks(favsUpdater);
favsUpdater.setEnabled(false);
}
}
@NonNull
@Override
public AllStationsActRecyclerViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

Wyświetl plik

@ -1,27 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/linearLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:paddingBottom="10dp"
>
android:layout_height="wrap_content">
<TextView
android:id="@+id/station_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginStart="16dp"
android:fontFamily="@font/alegreya_sans_sc_medium"
android:textSize="20sp" />
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/station_button"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/station_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:textSize="10sp"
/>
</LinearLayout>
app:layout_constraintBaseline_toBaselineOf="@+id/station_name"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/station_name" />
</androidx.constraintlayout.widget.ConstraintLayout>

Wyświetl plik

@ -22,7 +22,7 @@
<string name="station_not_comm">Uwaga! Ta stacja nie wysyła żadnych danych dłużej niż od 2 godzin</string>
<string name="station_disabled">Uwaga! Stacja została tymczasowo wyłączona bądź nie pracuje od dłuższego czasu</string>
<string name="archive_data">Dane Archiwalne</string>
<string name="export_from">Exportuj do</string>
<string name="export_from">Exportuj od</string>
<string name="time_scale">Skala czasu</string>
<string name="mean_value">Średnia</string>
<string name="max_value">Wartość maksymalna</string>