various ux tweaks

fix/get-all-stations-hangout
Mateusz Lubecki 2021-11-27 00:20:53 +01:00
rodzic 6423966f9f
commit a4dd0b9972
52 zmienionych plików z 485 dodań i 491 usunięć

Wyświetl plik

@ -6,18 +6,21 @@
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MANAGE_DOCUMENTS"
<uses-permission
android:name="android.permission.MANAGE_DOCUMENTS"
tools:ignore="ProtectedPermissions" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:icon="@mipmap/ic_launcher_icon"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:networkSecurityConfig="@xml/network_security_config"
android:roundIcon="@mipmap/ic_launcher_icon_foreground"
android:supportsRtl="true"
android:theme="@style/Theme.Pogodacc">
<activity
android:name=".activity.SettingsActivity"
android:exported="true" />
<activity
android:name=".activity.ExportDataActivity"
android:exported="true" />

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 39 KiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 39 KiB

Wyświetl plik

@ -68,14 +68,6 @@ public class ExportDataActivity extends AppCompatActivity {
}
public void openDirectory(String fn, int outputFormat) {
// // Choose a directory using the system's file picker.
// Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
//
// // Optionally, specify a URI for the directory that should be opened in
// // the system file picker when it loads.
// //intent.putExtra(DocumentsContract.EXTRA_INITIAL_URI, uriToLoad);
//
// act.startActivityForResult(intent, 123);
Intent intent = new Intent(Intent.ACTION_CREATE_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
@ -154,23 +146,6 @@ public class ExportDataActivity extends AppCompatActivity {
exportUri = uri;
// try {
//
// OutputStream out = getContentResolver().openOutputStream(uri);
//
// PrintWriter writer = new PrintWriter(out);
//
// writer.write("dupajasia");
//
// writer.flush();
// writer.close();
// out.close();
// } catch (FileNotFoundException e) {
// e.printStackTrace();
// } catch (IOException e) {
// e.printStackTrace();
// }
}
super.onActivityResult(requestCode, resultCode, data);
@ -203,7 +178,7 @@ public class ExportDataActivity extends AppCompatActivity {
String fn;
if (stationToExport != null) {
fn = stationToExport.getSystemName() + "_" + datePicker.getDayOfMonth() + String.format("%02d", datePicker.getMonth()) + "_ln_" + act.getExportLnInHours() + "hrs";
fn = stationToExport.getSystemName() + "_" + datePicker.getDayOfMonth() + "-" + String.format("%02d", datePicker.getMonth()) + "-" + datePicker.getYear() +"_" + act.getExportLnInHours() + "hrs";
}
else {
fn = "export";
@ -250,7 +225,15 @@ public class ExportDataActivity extends AppCompatActivity {
if (format == 2) {
try {
ExcelExport.exportToExcel(stationData, toExport, act.getApplicationContext(), getContentResolver().openOutputStream(exportUri));
if (ExcelExport.exportToExcel(stationData, toExport, act.getApplicationContext(), getContentResolver().openOutputStream(exportUri))) {
AlertDialog.Builder builder = new AlertDialog.Builder(act);
builder.setMessage(R.string.success);
builder.setPositiveButton(R.string.ok, (DialogInterface var1, int var2) -> {
var1.dismiss();
});
builder.create();
builder.show();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}

Wyświetl plik

@ -1,5 +1,7 @@
package cc.pogoda.mobile.pogodacc.activity;
// https://www.softicons.com/web-icons/vector-stylish-weather-icons-by-bartosz-kaszubowski/sun-rays-cloud-icon#google_vignette
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
@ -21,12 +23,12 @@ import org.greenrobot.eventbus.ThreadMode;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import cc.pogoda.mobile.pogodacc.R;
import cc.pogoda.mobile.pogodacc.activity.handler.MainActImageButtonAllStationsClickEvent;
import cc.pogoda.mobile.pogodacc.activity.handler.MainActImageButtonExportClickEvent;
import cc.pogoda.mobile.pogodacc.activity.handler.MainActImageButtonFavouritesClickEvent;
import cc.pogoda.mobile.pogodacc.activity.handler.MainActImageButtonSettingsClickEvent;
import cc.pogoda.mobile.pogodacc.dao.AllStationsDao;
import cc.pogoda.mobile.pogodacc.file.FavouritiesFile;
import cc.pogoda.mobile.pogodacc.file.FileNames;
@ -56,6 +58,8 @@ public class MainActivity extends AppCompatActivity {
private ImageButton exportButton;
private ImageButton settingsButton;
public MainActivity() {
}
@ -186,6 +190,11 @@ public class MainActivity extends AppCompatActivity {
exportButton.setOnClickListener(new MainActImageButtonExportClickEvent(this, parceableListOfFavStations));
}
settingsButton = (ImageButton) findViewById(R.id.imageButtonSettings);
if (settingsButton != null) {
settingsButton.setOnClickListener(new MainActImageButtonSettingsClickEvent(this));
}
}
@Override

Wyświetl plik

@ -0,0 +1,51 @@
package cc.pogoda.mobile.pogodacc.activity;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.CompoundButton;
import android.widget.Switch;
import android.widget.TextView;
import cc.pogoda.mobile.pogodacc.R;
import cc.pogoda.mobile.pogodacc.config.AppConfiguration;
public class SettingsActivity extends AppCompatActivity {
Switch windspdUnitSwitch;
TextView windspdUnitDisplayTv;
private void updateWindspdUnitTv(boolean b) {
if (windspdUnitDisplayTv != null) {
if (b) {
windspdUnitDisplayTv.setText(R.string.knots);
}
else {
windspdUnitDisplayTv.setText(R.string.meters_per_second);
}
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
windspdUnitDisplayTv = (TextView) findViewById(R.id.textViewSettingsWindspeedUnitDisp);
updateWindspdUnitTv(AppConfiguration.replaceMsWithKnots);
windspdUnitSwitch = (Switch) findViewById(R.id.switchKnots);
if (windspdUnitSwitch != null) {
windspdUnitSwitch.setChecked(AppConfiguration.replaceMsWithKnots);
windspdUnitSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
AppConfiguration.replaceMsWithKnots = b;
updateWindspdUnitTv(b);
}
});
}
}
}

Wyświetl plik

@ -4,6 +4,7 @@ import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.os.Handler;
import android.util.TypedValue;
import cc.pogoda.mobile.pogodacc.R;
import cc.pogoda.mobile.pogodacc.activity.updater.StationDetailsValuesUpdater;
@ -38,6 +39,13 @@ public class StationDetailsSummaryActivity extends AppCompatActivity {
elems.title = findViewById(R.id.textViewStationDetailsSummaryTitle);
elems.title.setText(station.getDisplayedName());
if (station.getDisplayedName().length() < 18) {
elems.title.setTextSize(TypedValue.COMPLEX_UNIT_SP, 38);
}
else {
elems.title.setTextSize(TypedValue.COMPLEX_UNIT_SP, 30);
}
elems.wind_dir_val = findViewById(R.id.textViewWinddirValue);
elems.wind_gusts_val = findViewById(R.id.textViewWindGustsValue);
elems.wind_speed_val = findViewById(R.id.textViewWindSpeedValue);

Wyświetl plik

@ -0,0 +1,27 @@
package cc.pogoda.mobile.pogodacc.activity.handler;
import android.content.Intent;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
import cc.pogoda.mobile.pogodacc.activity.SettingsActivity;
public class MainActImageButtonSettingsClickEvent implements View.OnClickListener {
AppCompatActivity parent;
Intent intent;
public MainActImageButtonSettingsClickEvent(AppCompatActivity _parent) {
parent = _parent;
intent = new Intent(parent, SettingsActivity.class);
}
@Override
public void onClick(View view) {
parent.startActivity(intent);
}
}

Wyświetl plik

@ -51,11 +51,11 @@ public class PressureTrendViewModel extends ViewModel {
stationName.postValue(trend.displayed_name);
if (!trend.current_qnh_qf.equals("NOT_AVALIABLE") && !trend.current_qnh_qf.equals("NO_DATA")) {
currentValue.postValue(String.format("%shPa", trend.pressure_trend.getCurrentVal(true, false)));
twoHoursValue.postValue(String.format("%shPa", trend.pressure_trend.getTwoHoursVal(true, false)));
fourHoursValue.postValue(String.format("%shPa", trend.pressure_trend.getFourHoursVal(true, false)));
sixHoursValue.postValue(String.format("%shPa", trend.pressure_trend.getSixHoursVal(true, false)));
eightHoursValue.postValue(String.format("%shPa", trend.pressure_trend.getEightHoursVal(true, false)));
currentValue.postValue(String.format("%shPa", trend.pressure_trend.getCurrentVal(true, true)));
twoHoursValue.postValue(String.format("%shPa", trend.pressure_trend.getTwoHoursVal(true, true)));
fourHoursValue.postValue(String.format("%shPa", trend.pressure_trend.getFourHoursVal(true, true)));
sixHoursValue.postValue(String.format("%shPa", trend.pressure_trend.getSixHoursVal(true, true)));
eightHoursValue.postValue(String.format("%shPa", trend.pressure_trend.getEightHoursVal(true, true)));
}
else {
currentValue.postValue("-- hPa");

Wyświetl plik

@ -1,170 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<path
android:fillColor="#3DDC84"
android:pathData="M0,0h108v108h-108z" />
<path
android:fillColor="#00000000"
android:pathData="M9,0L9,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,0L19,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M29,0L29,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M39,0L39,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M49,0L49,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M59,0L59,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M69,0L69,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M79,0L79,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M89,0L89,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M99,0L99,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,9L108,9"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,19L108,19"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,29L108,29"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,39L108,39"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,49L108,49"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,59L108,59"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,69L108,69"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,79L108,79"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,89L108,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,99L108,99"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,29L89,29"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,39L89,39"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,49L89,49"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,59L89,59"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,69L89,69"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,79L89,79"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M29,19L29,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M39,19L39,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M49,19L49,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M59,19L59,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M69,19L69,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M79,19L79,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
</vector>

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 11 KiB

Wyświetl plik

@ -8,133 +8,139 @@
tools:context=".activity.ExportDataActivity">
<Button
android:id="@+id/buttonSelectStationExport"
android:layout_width="362dp"
android:layout_height="47dp"
android:layout_marginTop="32dp"
android:backgroundTint="#56039BE5"
android:text="@string/select_station_export"
app:layout_constraintEnd_toEndOf="parent"
<androidx.core.widget.NestedScrollView
android:id="@+id/nestedScrollViewExport"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/textViewStationToExport"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:fontFamily="@font/alegreya_sans_sc_medium"
android:text="@string/dash"
android:textAllCaps="true"
android:textSize="34sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/buttonSelectStationExport" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Spinner
android:id="@+id/spinnerOutputFormat"
android:layout_width="247dp"
android:layout_height="29dp"
android:layout_marginTop="8dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView" />
<Button
android:id="@+id/buttonExportTarget"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:text="@string/output_fn"
app:iconTint="#56039BE5"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/editTextNumberExport" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
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/textViewStationToExport" />
<TextView
android:id="@+id/textViewStationToExport"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:fontFamily="@font/alegreya_sans_sc_medium"
android:text="@string/dash"
android:textAllCaps="true"
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="247dp"
android:layout_height="29dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView" />
<DatePicker
android:id="@+id/datePickerExportStartDate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:calendarViewShown="false"
android:datePickerMode="spinner"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView2" />
<DatePicker
android:id="@+id/datePickerExportStartDate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:calendarViewShown="false"
android:datePickerMode="spinner"
app:layout_constraintEnd_toEndOf="parent"
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="16dp"
android:fontFamily="@font/alegreya_sans_sc_medium"
android:text="@string/export_from"
android:textSize="20sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/spinnerOutputFormat" />
<Button
android:id="@+id/buttonExportStart"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/start_export"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/buttonExportTarget" />
<EditText
android:id="@+id/editTextNumberExport"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
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/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:fontFamily="@font/alegreya_sans_sc_medium"
android:text="@string/export_from"
android:textSize="20sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/spinnerOutputFormat" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
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/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
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" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:fontFamily="@font/alegreya_sans_sc_medium"
android:text="@string/output_export_format"
android:textSize="20sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textViewStationToExport" />
<Button
android:id="@+id/buttonExportStart"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:backgroundTint="#56039BE5"
android:text="@string/start_export"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/buttonExportTarget" />
<EditText
android:id="@+id/editTextNumberExport"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:ems="10"
android:inputType="number"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView4" />
<Button
android:id="@+id/buttonExportTarget"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:backgroundTint="#56039BE5"
android:text="@string/output_fn"
app:iconTint="#56039BE5"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/editTextNumberExport" />
<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/buttonSelectStationExport"
android:layout_width="362dp"
android:layout_height="47dp"
android:layout_marginTop="32dp"
android:text="@string/select_station_export"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.core.widget.NestedScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>

Wyświetl plik

@ -37,7 +37,7 @@
android:id="@+id/imageButtonFavourites"
android:layout_width="176dp"
android:layout_height="180dp"
android:backgroundTint="#56039BE5"
android:backgroundTint="@color/blue"
android:paddingLeft="100px"
android:paddingTop="100px"
android:paddingRight="100px"
@ -83,7 +83,7 @@
android:id="@+id/imageButtonAllStations"
android:layout_width="175dp"
android:layout_height="183dp"
android:backgroundTint="#56039BE5"
android:backgroundTint="@color/blue"
android:backgroundTintMode="src_in"
android:paddingLeft="100px"
android:paddingTop="100px"
@ -133,7 +133,7 @@
android:id="@+id/imageButtonExport"
android:layout_width="175dp"
android:layout_height="183dp"
android:backgroundTint="#56039BE5"
android:backgroundTint="@color/blue"
android:backgroundTintMode="src_in"
android:paddingLeft="100px"
android:paddingTop="100px"
@ -183,7 +183,7 @@
android:id="@+id/imageButtonSettings"
android:layout_width="176dp"
android:layout_height="180dp"
android:backgroundTint="#56039BE5"
android:backgroundTint="@color/blue"
android:paddingLeft="100px"
android:paddingTop="100px"
android:paddingRight="100px"

Wyświetl plik

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".activity.SettingsActivity">
<Switch
android:id="@+id/switchKnots"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="32dp"
android:layout_marginTop="16dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textViewSettingsLabelWindspeedUnit" />
<TextView
android:id="@+id/textViewSettingsLabelWindspeedUnit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="32dp"
android:layout_marginTop="32dp"
android:text="@string/wind_unit_of_measure"
android:textColorLink="#000000"
android:textSize="24sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textViewSettingsWindspeedUnitDisp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="16dp"
android:text="..."
android:textSize="20sp"
app:layout_constraintStart_toEndOf="@+id/switchKnots"
app:layout_constraintTop_toBottomOf="@+id/textViewSettingsLabelWindspeedUnit" />
</androidx.constraintlayout.widget.ConstraintLayout>

Wyświetl plik

@ -1,180 +1,204 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
<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/relativeLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".activity.StationDetailsSummaryActivity">
<TableLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textViewStationDetailsSummaryTitle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="TextView"
android:textAlignment="center"
android:textSize="36sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textViewStationDetailsSummaryTitle"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_span="2"
android:text="TextView"
android:textAlignment="center"
android:textSize="36sp" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textViewTemperatureCaption"
android:layout_width="0dp"
android:layout_height="0dp"
android:paddingTop="30dp"
android:text="@string/temperature"
android:textSize="18sp" />
<TextView
android:id="@+id/textViewTemperatureCaption"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="30dp"
android:text="@string/temperature"
android:textSize="18sp" />
<TextView
android:id="@+id/textViewTemperatureValue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
android:textAlignment="center"
android:textSize="50sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textViewStationDetailsSummaryTitle" />
<TextView
android:id="@+id/textViewTemperatureValue"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="TextView"
android:textAlignment="center"
android:textSize="50sp" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textViewWinddirCaption"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:paddingTop="30dp"
android:scrollHorizontally="true"
android:text="@string/wind_direction"
android:textAlignment="center"
android:textSize="18sp"
app:layout_constraintEnd_toStartOf="@+id/textViewWinddirValue"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="@+id/textViewTemperatureCaption"
app:layout_constraintTop_toTopOf="@+id/textViewWinddirValue" />
<TextView
android:id="@+id/textViewWinddirCaption"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="30dp"
android:scrollHorizontally="true"
android:text="@string/wind_direction"
android:textSize="18sp" />
<TextView
android:id="@+id/textViewWinddirValue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="24dp"
android:text="TextView"
android:textAlignment="center"
android:textSize="50sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textViewTemperatureValue" />
<TextView
android:id="@+id/textViewWinddirValue"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="TextView"
android:textAlignment="center"
android:textSize="50sp" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textViewWindSpeedCaption"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="30dp"
android:scrollHorizontally="true"
android:text="@string/wind_speed"
android:textSize="18sp"
app:layout_constraintEnd_toStartOf="@+id/textViewWindSpeedValue"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/textViewWindSpeedValue" />
<TextView
android:id="@+id/textViewWindSpeedCaption"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="30dp"
android:scrollHorizontally="true"
android:text="@string/wind_speed"
android:textSize="18sp" />
<TextView
android:id="@+id/textViewWindSpeedValue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="24dp"
android:text="TextView"
android:textAlignment="center"
android:textSize="50sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toEndOf="@+id/textViewWindSpeedCaption"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textViewWinddirValue" />
<TextView
android:id="@+id/textViewWindSpeedValue"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="TextView"
android:textAlignment="center"
android:textSize="50sp" />
</TableRow>
<TextView
android:id="@+id/textViewWindGusts"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="30dp"
android:scrollHorizontally="true"
android:text="@string/wind_gusts"
android:textSize="18sp"
app:layout_constraintEnd_toStartOf="@+id/textViewWindGustsValue"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/textViewWindGustsValue" />
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textViewWindGustsValue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="24dp"
android:text="TextView"
android:textAlignment="center"
android:textSize="50sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textViewWindSpeedValue" />
<TextView
android:id="@+id/textViewWindGusts"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="30dp"
android:scrollHorizontally="true"
android:text="@string/wind_gusts"
android:textSize="18sp" />
<TextView
android:id="@+id/textViewWindGustsValue"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="TextView"
android:textAlignment="center"
android:textSize="50sp" />
</TableRow>
<TextView
android:id="@+id/textViewQnh"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="30dp"
android:text="@string/qnh"
android:textSize="18sp"
app:layout_constraintEnd_toStartOf="@+id/textViewQnhVaue"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/textViewQnhVaue" />
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textViewQnhVaue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="24dp"
android:text="TextView"
android:textAlignment="center"
android:textSize="50sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textViewWindGustsValue" />
<TextView
android:id="@+id/textViewQnh"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="30dp"
android:text="@string/qnh"
android:textSize="18sp" />
<TextView
android:id="@+id/textViewQnhVaue"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="TextView"
android:textAlignment="center"
android:textSize="50sp" />
</TableRow>
<TextView
android:id="@+id/textViewHumidity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="30dp"
android:text="@string/humidity"
android:textSize="18sp"
app:layout_constraintEnd_toStartOf="@+id/textViewHumidityValue"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/textViewHumidityValue" />
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textViewHumidityValue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="24dp"
android:text="TextView"
android:textAlignment="center"
android:textSize="50sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textViewQnhVaue" />
<TextView
android:id="@+id/textViewHumidity"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="30dp"
android:text="@string/humidity"
android:textSize="18sp" />
<TextView
android:id="@+id/textViewHumidityValue"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="TextView"
android:textAlignment="center"
android:textSize="50sp" />
</TableRow>
<TextView
android:id="@+id/textViewSummaryMessage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:scrollIndicators="right"
android:scrollHorizontally="true"
android:text="@string/auto_refresh"
android:textAlignment="center"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textViewHumidityValue" />
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintLayout"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="66dp"
app:layout_constraintEnd_toEndOf="@+id/textViewHumidityValue"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/textViewHumidity">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_span="2">
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:id="@+id/textViewSummaryMessage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scrollIndicators="right"
android:scrollHorizontally="true"
android:text="@string/auto_refresh"
android:textAlignment="center"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</TableRow>
</TableLayout>
</RelativeLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

Wyświetl plik

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon>

Wyświetl plik

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_icon_background"/>
<foreground android:drawable="@mipmap/ic_launcher_icon_foreground"/>
</adaptive-icon>

Wyświetl plik

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_icon_background"/>
<foreground android:drawable="@mipmap/ic_launcher_icon_foreground"/>
</adaptive-icon>

Wyświetl plik

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon>

Plik binarny nie jest wyświetlany.

Przed

Szerokość:  |  Wysokość:  |  Rozmiar: 3.5 KiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 2.6 KiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 4.2 KiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 4.6 KiB

Plik binarny nie jest wyświetlany.

Przed

Szerokość:  |  Wysokość:  |  Rozmiar: 5.2 KiB

Plik binarny nie jest wyświetlany.

Przed

Szerokość:  |  Wysokość:  |  Rozmiar: 2.6 KiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 1.6 KiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 2.6 KiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 2.8 KiB

Plik binarny nie jest wyświetlany.

Przed

Szerokość:  |  Wysokość:  |  Rozmiar: 3.3 KiB

Plik binarny nie jest wyświetlany.

Przed

Szerokość:  |  Wysokość:  |  Rozmiar: 4.8 KiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 3.7 KiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 5.9 KiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 6.8 KiB

Plik binarny nie jest wyświetlany.

Przed

Szerokość:  |  Wysokość:  |  Rozmiar: 7.3 KiB

Plik binarny nie jest wyświetlany.

Przed

Szerokość:  |  Wysokość:  |  Rozmiar: 7.7 KiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 5.9 KiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 10 KiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 11 KiB

Plik binarny nie jest wyświetlany.

Przed

Szerokość:  |  Wysokość:  |  Rozmiar: 12 KiB

Plik binarny nie jest wyświetlany.

Przed

Szerokość:  |  Wysokość:  |  Rozmiar: 10 KiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 8.4 KiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 15 KiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 16 KiB

Plik binarny nie jest wyświetlany.

Przed

Szerokość:  |  Wysokość:  |  Rozmiar: 16 KiB

Wyświetl plik

@ -108,4 +108,5 @@
<string name="data_sources">Data sources</string>
<string name="callsign">APRS callsign</string>
<string name="select_output_file">Select output file</string>
<string name="success">Operation successed</string>
</resources>

Wyświetl plik

@ -108,4 +108,5 @@
<string name="data_sources">Datu avoti</string>
<string name="callsign">APRS izsaukuma signāls</string>
<string name="select_output_file">Atlasīt izejas fails</string>
<string name="success">"Operācija izdevusies "</string>
</resources>

Wyświetl plik

@ -108,4 +108,5 @@
<string name="data_sources">Datu avoti</string>
<string name="callsign">APRS izsaukuma signāls</string>
<string name="select_output_file">Atlasīt izejas fails</string>
<string name="success">"Operācija izdevusies "</string>
</resources>

Wyświetl plik

@ -108,4 +108,5 @@
<string name="data_sources">Źródła danych</string>
<string name="callsign">Znak wywoławczy w APRS</string>
<string name="select_output_file">Wybierz plik wyjściowy</string>
<string name="success">Zakończono z powodzeniem</string>
</resources>

Wyświetl plik

@ -108,4 +108,5 @@
<string name="data_sources">Źródła danych</string>
<string name="callsign">Znak wywoławczy w APRS</string>
<string name="select_output_file">Wybierz plik wyjściowy</string>
<string name="success">Zakończono z powodzeniem</string>
</resources>

Wyświetl plik

@ -7,4 +7,9 @@
<color name="teal_700">#FF018786</color>
<color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color>
<color name="yellow_1">#FDD835</color>
<color name="orange_1">#FFB300</color>
<color name="blue">#56039BE5</color>
<color name="dark_blue">#1E88E5</color>
<color name="ic_launcher_icon_background">#FFFFFFFF</color>
</resources>

Wyświetl plik

@ -123,8 +123,9 @@
<string name="csv" translatable="false">CSV</string>
<string name="xlsx" translatable="false">MS Excel XLS</string>
<string-array name="export_formats">
<item>@string/csv</item>
<item>@string/xlsx</item>
<item>@string/csv</item>
</string-array>
<string name="select_output_file">Select output file</string>
<string name="success">Operation successed</string>
</resources>

Wyświetl plik

@ -2,15 +2,15 @@
<!-- Base application theme. -->
<style name="Theme.Pogodacc" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
<!-- Primary brand color. -->
<item name="colorPrimary">@color/purple_500</item>
<item name="colorPrimaryVariant">@color/purple_700</item>
<item name="colorPrimary">@color/dark_blue</item>
<item name="colorPrimaryVariant">@color/blue</item>
<item name="colorOnPrimary">@color/white</item>
<!-- Secondary brand color. -->
<item name="colorSecondary">@color/teal_200</item>
<item name="colorSecondaryVariant">@color/teal_700</item>
<item name="colorOnSecondary">@color/black</item>
<!-- Status bar color. -->
<item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
<item name="android:statusBarColor" tools:targetApi="l">@color/black</item>
<!-- Customize your theme here. -->
</style>
</resources>