kopia lustrzana https://github.com/SP8EBC/MeteoSystem
data exoirt
rodzic
32ada27816
commit
1907b88bbd
|
@ -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" />
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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>
|
Ładowanie…
Reference in New Issue