fix/get-all-stations-hangout
Mateusz Lubecki 2021-10-14 22:00:47 +02:00
rodzic 32ada27816
commit 1907b88bbd
8 zmienionych plików z 285 dodań i 15 usunięć

Wyświetl plik

@ -5,7 +5,7 @@
<map>
<entry key="app/src/main/res/layout/activity_all_stations.xml" value="0.3651041666666667" />
<entry key="app/src/main/res/layout/activity_all_stations_linear_layout.xml" value="0.3651041666666667" />
<entry key="app/src/main/res/layout/activity_export_data.xml" value="0.33" />
<entry key="app/src/main/res/layout/activity_export_data.xml" value="0.67" />
<entry key="app/src/main/res/layout/activity_favourites.xml" value="0.3651041666666667" />
<entry key="app/src/main/res/layout/activity_favourites_empty.xml" value="0.3651041666666667" />
<entry key="app/src/main/res/layout/activity_favourites_linear_layout.xml" value="0.3651041666666667" />

Wyświetl plik

@ -2,27 +2,153 @@ package cc.pogoda.mobile.pogodacc.activity;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import org.threeten.bp.ZoneId;
import org.threeten.bp.ZonedDateTime;
import cc.pogoda.mobile.pogodacc.R;
import cc.pogoda.mobile.pogodacc.activity.handler.ExportDataActStartButtonClickEvent;
import cc.pogoda.mobile.pogodacc.type.ParceableFavsCallReason;
import cc.pogoda.mobile.pogodacc.type.ParceableStationsList;
import cc.pogoda.mobile.pogodacc.type.WeatherStation;
public class ExportDataActivity extends AppCompatActivity {
Spinner formatSpinner;
private Spinner formatSpinner;
private Button selectStationButton;
private Button startExportButton;
private Spinner outputFormat;
AppCompatActivity act;
TextView stationNameToExport;
EditText exportLn;
DatePicker datePicker;
WeatherStation stationToExport = null;
ExportDataActStartButtonClickEvent exportEvent;
public WeatherStation getStationToExport() {
return stationToExport;
}
public int getExportLnInHours() {
int out = 0;
Editable text = exportLn.getText();
try {
Integer ln = Integer.valueOf(text.toString());
if (ln > 100) {
out = 100;
}
else {
out = ln;
}
}
catch (NumberFormatException ee) {
out = -1;
}
return out;
}
public long getStartTimestamp() {
long out = 0;
int year = datePicker.getYear();
int month = datePicker.getMonth();
int day = datePicker.getDayOfMonth();
ZonedDateTime dateTime = ZonedDateTime.of(year, month, day, 0, 0, 0, 0, ZoneId.systemDefault());
ZonedDateTime utc = dateTime.withZoneSameInstant(ZoneId.of("UTC"));
out = utc.toEpochSecond();
return out;
}
public int getOutputFormat() {
return -1;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_export_data);
EventBus.getDefault().register(this);
act = this;
ParceableStationsList favs = getIntent().getParcelableExtra("favs");
formatSpinner = findViewById(R.id.spinnerOutputFormat);
selectStationButton = findViewById(R.id.buttonSelectStationExport);
stationNameToExport = findViewById(R.id.textViewStationToExport);
startExportButton = findViewById(R.id.buttonExportStart);
exportLn = findViewById(R.id.editTextNumberExport);
datePicker = findViewById(R.id.datePickerExportStartDate);
outputFormat = findViewById(R.id.spinnerOutputFormat);
selectStationButton.setOnClickListener(new View.OnClickListener() {
Intent intent;
@Override
public void onClick(View view) {
intent = new Intent(act, FavouritesActivity.class);
intent.putExtra("favs", favs);
ParceableFavsCallReason callReason = new ParceableFavsCallReason(ParceableFavsCallReason.Reason.EXPORT_SELECT);
intent.putExtra("callReason", callReason);
act.startActivity(intent);
}
});
startExportButton.setOnClickListener(new ExportDataActStartButtonClickEvent(this));
ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.export_formats, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
formatSpinner.setAdapter(adapter);
}
@Override
protected void onDestroy() {
super.onDestroy();
EventBus.getDefault().unregister(this);
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void stationToExportEvent(WeatherStation wx) {
stationNameToExport.setText(wx.getDisplayedName());
stationToExport = wx;
}
}

Wyświetl plik

@ -159,6 +159,9 @@ public class MainActivity extends AppCompatActivity {
// convert this to parceable to exchange across intents
parceableListOfAllStations = ParceableStationsList.createFromStdList(listOfAllStations);
// recreate list of favorites
recreateListOfFavs();
ImageButton imageButtonAllStations = (ImageButton)findViewById(R.id.imageButtonAllStations);
if (imageButtonAllStations != null)
imageButtonAllStations.setOnClickListener(new MainActImageButtonAllStationsClickEvent(this, parceableListOfAllStations));
@ -168,11 +171,9 @@ public class MainActivity extends AppCompatActivity {
// set an action for clicking on export data button
exportButton = (ImageButton)findViewById(R.id.imageButtonExport);
if (exportButton != null) {
exportButton.setOnClickListener(new MainActImageButtonExportClickEvent(this));
exportButton.setOnClickListener(new MainActImageButtonExportClickEvent(this, parceableListOfFavStations));
}
// recreate list of favorites
recreateListOfFavs();
}
@Override

Wyświetl plik

@ -1,10 +1,13 @@
package cc.pogoda.mobile.pogodacc.activity.handler;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
import org.greenrobot.eventbus.EventBus;
import cc.pogoda.mobile.pogodacc.activity.StationDetailsActivity;
import cc.pogoda.mobile.pogodacc.type.ParceableFavsCallReason;
import cc.pogoda.mobile.pogodacc.type.WeatherStation;
@ -33,6 +36,16 @@ public class AllStationsActRecyclerViewButtonClickEvent implements View.OnClickL
p.startActivity(intent);
return;
}
else if (reason == ParceableFavsCallReason.Reason.EXPORT_SELECT) {
EventBus.getDefault().post(station);
p.setResult(Activity.RESULT_OK);
p.finish();
return;
}
}

Wyświetl plik

@ -0,0 +1,36 @@
package cc.pogoda.mobile.pogodacc.activity.handler;
import android.view.View;
import cc.pogoda.mobile.pogodacc.activity.ExportDataActivity;
import cc.pogoda.mobile.pogodacc.dao.StationDataDao;
import cc.pogoda.mobile.pogodacc.type.WeatherStation;
import cc.pogoda.mobile.pogodacc.type.web.ListOfStationData;
public class ExportDataActStartButtonClickEvent implements View.OnClickListener{
ExportDataActivity activity;
public ExportDataActStartButtonClickEvent(ExportDataActivity act) {
activity = act;
}
@Override
public void onClick(View view) {
StationDataDao stationDataDao;
WeatherStation toExport = activity.getStationToExport();
if (toExport != null) {
long timestampStart = activity.getStartTimestamp();
long timestampStop = timestampStart + activity.getExportLnInHours() * 3600;
stationDataDao = new StationDataDao();
ListOfStationData stationData = stationDataDao.getLastStationData(toExport.getSystemName(), timestampStart, timestampStop);
}
}
}

Wyświetl plik

@ -7,6 +7,8 @@ import androidx.appcompat.app.AppCompatActivity;
import cc.pogoda.mobile.pogodacc.activity.AllStationsActivity;
import cc.pogoda.mobile.pogodacc.activity.ExportDataActivity;
import cc.pogoda.mobile.pogodacc.activity.FavouritesActivity;
import cc.pogoda.mobile.pogodacc.type.ParceableStationsList;
public class MainActImageButtonExportClickEvent implements View.OnClickListener{
@ -14,10 +16,11 @@ public class MainActImageButtonExportClickEvent implements View.OnClickListener{
Intent intent;
public MainActImageButtonExportClickEvent(AppCompatActivity p) {
public MainActImageButtonExportClickEvent(AppCompatActivity p, ParceableStationsList favs) {
parent = p;
intent = new Intent(this.parent, ExportDataActivity.class);
intent.putExtra("favs", favs);
}
@Override

Wyświetl plik

@ -24,8 +24,8 @@ public class ParceableFavsCallReason implements Parcelable {
int reasonInt = in.readInt();
switch (reasonInt) {
case 1: reason = Reason.FAVOURITES;
case 2: reason = Reason.EXPORT_SELECT;
case 1: reason = Reason.FAVOURITES; break;
case 2: reason = Reason.EXPORT_SELECT; break;
default: reason = null;
}
}

Wyświetl plik

@ -22,24 +22,115 @@
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView"
android:id="@+id/textViewStationToExport"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="175dp"
android:layout_marginTop="14dp"
android:layout_marginEnd="178dp"
android:text="TextView"
android:fontFamily="@font/alegreya_sans_sc_medium"
android:text="@string/dash"
android:textAllCaps="true"
android:textSize="24sp"
android:textSize="34sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/buttonSelectStationExport" />
<Spinner
android:id="@+id/spinnerOutputFormat"
android:layout_width="409dp"
android:layout_width="247dp"
android:layout_height="29dp"
android:layout_marginTop="52dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textViewStationToExport" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="19dp"
app:layout_constraintTop_toBottomOf="@+id/textView"
tools:layout_editor_absoluteX="1dp" />
android:layout_marginTop="64dp"
android:fontFamily="@font/alegreya_sans_sc_medium"
android:text="@string/output_export_format"
android:textSize="20sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/buttonSelectStationExport" />
<DatePicker
android:id="@+id/datePickerExportStartDate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="81dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="82dp"
android:calendarViewShown="false"
android:datePickerMode="spinner"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView2" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:fontFamily="@font/alegreya_sans_sc_medium"
android:text="@string/start_data"
android:textSize="20sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.497"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/spinnerOutputFormat" />
<EditText
android:id="@+id/editTextNumberExport"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:ems="10"
android:inputType="number"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.497"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView4" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="22dp"
android:fontFamily="@font/alegreya_sans_sc_medium"
android:text="@string/export_ln"
android:textSize="20sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/datePickerExportStartDate" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="@string/max_100_hours"
android:textSize="12sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView3" />
<Button
android:id="@+id/buttonExportStart"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="9dp"
android:backgroundTint="#56039BE5"
android:text="@string/start_export"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/editTextNumberExport" />
</androidx.constraintlayout.widget.ConstraintLayout>