mirror of
https://gitlab.com/oeffi/oeffi.git
synced 2025-07-07 23:18:47 +00:00
Organize imports.
This commit is contained in:
parent
3151671439
commit
4a6b23d2f8
72 changed files with 855 additions and 1029 deletions
|
@ -17,24 +17,6 @@
|
|||
|
||||
package de.schildbach.oeffi;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FilenameFilter;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import org.osmdroid.config.Configuration;
|
||||
import org.osmdroid.config.IConfigurationProvider;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.google.common.base.Stopwatch;
|
||||
|
||||
import de.schildbach.oeffi.directions.QueryHistoryProvider;
|
||||
import de.schildbach.oeffi.stations.FavoriteStationsProvider;
|
||||
import de.schildbach.oeffi.stations.NearestFavoriteStationWidgetService;
|
||||
import de.schildbach.oeffi.util.ErrorReporter;
|
||||
import de.schildbach.pte.NetworkId;
|
||||
|
||||
import android.app.NotificationChannel;
|
||||
import android.app.NotificationManager;
|
||||
import android.content.Context;
|
||||
|
@ -50,8 +32,23 @@ import ch.qos.logback.classic.encoder.PatternLayoutEncoder;
|
|||
import ch.qos.logback.classic.spi.ILoggingEvent;
|
||||
import ch.qos.logback.core.rolling.RollingFileAppender;
|
||||
import ch.qos.logback.core.rolling.TimeBasedRollingPolicy;
|
||||
import com.google.common.base.Stopwatch;
|
||||
import de.schildbach.oeffi.directions.QueryHistoryProvider;
|
||||
import de.schildbach.oeffi.stations.FavoriteStationsProvider;
|
||||
import de.schildbach.oeffi.stations.NearestFavoriteStationWidgetService;
|
||||
import de.schildbach.oeffi.util.ErrorReporter;
|
||||
import de.schildbach.pte.NetworkId;
|
||||
import okhttp3.OkHttpClient;
|
||||
import okhttp3.logging.HttpLoggingInterceptor;
|
||||
import org.osmdroid.config.Configuration;
|
||||
import org.osmdroid.config.IConfigurationProvider;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FilenameFilter;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
public class Application extends android.app.Application {
|
||||
private PackageInfo packageInfo;
|
||||
|
|
|
@ -17,13 +17,13 @@
|
|||
|
||||
package de.schildbach.oeffi;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.os.Build;
|
||||
import android.text.format.DateUtils;
|
||||
import okhttp3.HttpUrl;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
public class Constants {
|
||||
public static final HttpUrl OEFFI_BASE_URL = HttpUrl.parse("https://oeffi.schildbach.de/");
|
||||
public static final HttpUrl PLANS_BASE_URL = OEFFI_BASE_URL.newBuilder().addPathSegment("plans").build();
|
||||
|
|
|
@ -17,9 +17,6 @@
|
|||
|
||||
package de.schildbach.oeffi;
|
||||
|
||||
import de.schildbach.oeffi.util.CheatSheet;
|
||||
import de.schildbach.oeffi.util.ToggleImageButton;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.os.Handler;
|
||||
|
@ -36,6 +33,8 @@ import android.widget.ImageView.ScaleType;
|
|||
import android.widget.LinearLayout;
|
||||
import android.widget.PopupMenu;
|
||||
import android.widget.TextView;
|
||||
import de.schildbach.oeffi.util.CheatSheet;
|
||||
import de.schildbach.oeffi.util.ToggleImageButton;
|
||||
|
||||
public class MyActionBar extends LinearLayout {
|
||||
private final Context context;
|
||||
|
|
|
@ -17,14 +17,6 @@
|
|||
|
||||
package de.schildbach.oeffi;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import de.schildbach.oeffi.network.NetworkResources;
|
||||
import de.schildbach.oeffi.util.ErrorReporter;
|
||||
import de.schildbach.pte.NetworkId;
|
||||
import de.schildbach.pte.dto.ResultHeader;
|
||||
|
||||
import android.annotation.TargetApi;
|
||||
import android.app.Activity;
|
||||
import android.app.ActivityManager.TaskDescription;
|
||||
|
@ -39,6 +31,12 @@ import android.view.View;
|
|||
import android.view.ViewGroup;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
import de.schildbach.oeffi.network.NetworkResources;
|
||||
import de.schildbach.oeffi.util.ErrorReporter;
|
||||
import de.schildbach.pte.NetworkId;
|
||||
import de.schildbach.pte.dto.ResultHeader;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
public abstract class OeffiActivity extends Activity {
|
||||
protected Application application;
|
||||
|
|
|
@ -17,49 +17,6 @@
|
|||
|
||||
package de.schildbach.oeffi;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import de.schildbach.oeffi.preference.AboutFragment;
|
||||
import de.schildbach.oeffi.preference.DonateFragment;
|
||||
import de.schildbach.oeffi.preference.PreferenceActivity;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.google.common.base.Charsets;
|
||||
import com.google.common.base.Splitter;
|
||||
import com.google.common.base.Strings;
|
||||
import com.google.common.util.concurrent.FutureCallback;
|
||||
import com.google.common.util.concurrent.Futures;
|
||||
import com.google.common.util.concurrent.ListenableFuture;
|
||||
|
||||
import de.schildbach.oeffi.directions.DirectionsActivity;
|
||||
import de.schildbach.oeffi.network.NetworkPickerActivity;
|
||||
import de.schildbach.oeffi.network.NetworkResources;
|
||||
import de.schildbach.oeffi.plans.PlansPickerActivity;
|
||||
import de.schildbach.oeffi.stations.StationsActivity;
|
||||
import de.schildbach.oeffi.util.ChangelogDialogBuilder;
|
||||
import de.schildbach.oeffi.util.DialogBuilder;
|
||||
import de.schildbach.oeffi.util.DividerItemDecoration;
|
||||
import de.schildbach.oeffi.util.Downloader;
|
||||
import de.schildbach.oeffi.util.ErrorReporter;
|
||||
import de.schildbach.oeffi.util.Installer;
|
||||
import de.schildbach.oeffi.util.NavigationMenuAdapter;
|
||||
import de.schildbach.oeffi.util.UiThreadExecutor;
|
||||
import de.schildbach.pte.NetworkId;
|
||||
|
||||
import android.animation.AnimatorInflater;
|
||||
import android.animation.AnimatorSet;
|
||||
import android.app.Dialog;
|
||||
|
@ -79,16 +36,55 @@ import android.view.KeyEvent;
|
|||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.drawerlayout.widget.DrawerLayout;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import com.google.common.base.Charsets;
|
||||
import com.google.common.base.Splitter;
|
||||
import com.google.common.base.Strings;
|
||||
import com.google.common.util.concurrent.FutureCallback;
|
||||
import com.google.common.util.concurrent.Futures;
|
||||
import com.google.common.util.concurrent.ListenableFuture;
|
||||
import de.schildbach.oeffi.directions.DirectionsActivity;
|
||||
import de.schildbach.oeffi.network.NetworkPickerActivity;
|
||||
import de.schildbach.oeffi.network.NetworkResources;
|
||||
import de.schildbach.oeffi.plans.PlansPickerActivity;
|
||||
import de.schildbach.oeffi.preference.AboutFragment;
|
||||
import de.schildbach.oeffi.preference.DonateFragment;
|
||||
import de.schildbach.oeffi.preference.PreferenceActivity;
|
||||
import de.schildbach.oeffi.stations.StationsActivity;
|
||||
import de.schildbach.oeffi.util.ChangelogDialogBuilder;
|
||||
import de.schildbach.oeffi.util.DialogBuilder;
|
||||
import de.schildbach.oeffi.util.DividerItemDecoration;
|
||||
import de.schildbach.oeffi.util.Downloader;
|
||||
import de.schildbach.oeffi.util.ErrorReporter;
|
||||
import de.schildbach.oeffi.util.Installer;
|
||||
import de.schildbach.oeffi.util.NavigationMenuAdapter;
|
||||
import de.schildbach.oeffi.util.UiThreadExecutor;
|
||||
import de.schildbach.pte.NetworkId;
|
||||
import okhttp3.Call;
|
||||
import okhttp3.Callback;
|
||||
import okhttp3.HttpUrl;
|
||||
import okhttp3.Request;
|
||||
import okhttp3.Response;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
public abstract class OeffiMainActivity extends OeffiActivity {
|
||||
protected NetworkId network;
|
||||
|
|
|
@ -17,28 +17,6 @@
|
|||
|
||||
package de.schildbach.oeffi;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
import org.osmdroid.api.IGeoPoint;
|
||||
import org.osmdroid.util.BoundingBox;
|
||||
import org.osmdroid.util.GeoPoint;
|
||||
import org.osmdroid.views.MapView;
|
||||
import org.osmdroid.views.Projection;
|
||||
import org.osmdroid.views.overlay.Overlay;
|
||||
|
||||
import de.schildbach.oeffi.stations.LineView;
|
||||
import de.schildbach.oeffi.stations.Station;
|
||||
import de.schildbach.oeffi.util.ZoomControls;
|
||||
import de.schildbach.pte.dto.Location;
|
||||
import de.schildbach.pte.dto.Point;
|
||||
import de.schildbach.pte.dto.Product;
|
||||
import de.schildbach.pte.dto.Trip;
|
||||
import de.schildbach.pte.dto.Trip.Leg;
|
||||
import de.schildbach.pte.dto.Trip.Public;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.Canvas;
|
||||
|
@ -52,10 +30,29 @@ import android.util.AttributeSet;
|
|||
import android.util.TypedValue;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
import android.view.animation.Animation;
|
||||
import android.view.animation.AnimationUtils;
|
||||
import android.widget.TextView;
|
||||
import de.schildbach.oeffi.stations.LineView;
|
||||
import de.schildbach.oeffi.stations.Station;
|
||||
import de.schildbach.oeffi.util.ZoomControls;
|
||||
import de.schildbach.pte.dto.Location;
|
||||
import de.schildbach.pte.dto.Point;
|
||||
import de.schildbach.pte.dto.Product;
|
||||
import de.schildbach.pte.dto.Trip;
|
||||
import de.schildbach.pte.dto.Trip.Leg;
|
||||
import de.schildbach.pte.dto.Trip.Public;
|
||||
import org.osmdroid.api.IGeoPoint;
|
||||
import org.osmdroid.util.BoundingBox;
|
||||
import org.osmdroid.util.GeoPoint;
|
||||
import org.osmdroid.views.MapView;
|
||||
import org.osmdroid.views.Projection;
|
||||
import org.osmdroid.views.overlay.Overlay;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
public class OeffiMapView extends MapView {
|
||||
private ZoomControls zoomControls = null;
|
||||
|
|
|
@ -17,10 +17,10 @@
|
|||
|
||||
package de.schildbach.oeffi;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import de.schildbach.oeffi.stations.Station;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface StationsAware {
|
||||
List<Station> getStations();
|
||||
|
||||
|
|
|
@ -17,33 +17,56 @@
|
|||
|
||||
package de.schildbach.oeffi.directions;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InvalidClassException;
|
||||
import java.io.ObjectInputStream;
|
||||
import java.io.StreamCorruptedException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Collection;
|
||||
import java.util.EnumSet;
|
||||
import java.util.GregorianCalendar;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.net.ssl.SSLException;
|
||||
|
||||
import org.osmdroid.api.IGeoPoint;
|
||||
import org.osmdroid.api.IMapController;
|
||||
import org.osmdroid.views.MapView;
|
||||
import org.osmdroid.views.overlay.Overlay;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import android.Manifest;
|
||||
import android.animation.LayoutTransition;
|
||||
import android.app.Activity;
|
||||
import android.app.DatePickerDialog;
|
||||
import android.app.Dialog;
|
||||
import android.app.ProgressDialog;
|
||||
import android.app.TimePickerDialog;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.res.Configuration;
|
||||
import android.database.Cursor;
|
||||
import android.graphics.Canvas;
|
||||
import android.location.Address;
|
||||
import android.location.LocationManager;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.HandlerThread;
|
||||
import android.os.Process;
|
||||
import android.provider.ContactsContract.CommonDataKinds;
|
||||
import android.text.format.DateFormat;
|
||||
import android.text.format.DateUtils;
|
||||
import android.view.MenuItem;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.view.View.OnLongClickListener;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.inputmethod.EditorInfo;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.BaseAdapter;
|
||||
import android.widget.Button;
|
||||
import android.widget.CheckBox;
|
||||
import android.widget.Filter;
|
||||
import android.widget.Filterable;
|
||||
import android.widget.PopupMenu;
|
||||
import android.widget.TextView;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
||||
import androidx.core.app.ActivityCompat;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.core.view.ViewCompat;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import com.google.common.base.Throwables;
|
||||
import com.google.common.primitives.Floats;
|
||||
|
||||
import de.schildbach.oeffi.Constants;
|
||||
import de.schildbach.oeffi.FromViaToAware;
|
||||
import de.schildbach.oeffi.MyActionBar;
|
||||
|
@ -69,7 +92,6 @@ import de.schildbach.oeffi.util.GeocoderThread;
|
|||
import de.schildbach.oeffi.util.LocationUriParser;
|
||||
import de.schildbach.oeffi.util.Toast;
|
||||
import de.schildbach.oeffi.util.ToggleImageButton;
|
||||
import de.schildbach.oeffi.util.ToggleImageButton.OnCheckedChangeListener;
|
||||
import de.schildbach.oeffi.util.ZoomControls;
|
||||
import de.schildbach.pte.NetworkId;
|
||||
import de.schildbach.pte.NetworkProvider;
|
||||
|
@ -86,63 +108,29 @@ import de.schildbach.pte.dto.QueryTripsResult;
|
|||
import de.schildbach.pte.dto.SuggestLocationsResult;
|
||||
import de.schildbach.pte.dto.Trip;
|
||||
import de.schildbach.pte.dto.TripOptions;
|
||||
|
||||
import android.Manifest;
|
||||
import android.animation.LayoutTransition;
|
||||
import android.app.Activity;
|
||||
import android.app.DatePickerDialog;
|
||||
import android.app.DatePickerDialog.OnDateSetListener;
|
||||
import android.app.Dialog;
|
||||
import android.app.ProgressDialog;
|
||||
import android.app.TimePickerDialog;
|
||||
import android.app.TimePickerDialog.OnTimeSetListener;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.DialogInterface.OnCancelListener;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.res.Configuration;
|
||||
import android.database.Cursor;
|
||||
import android.graphics.Canvas;
|
||||
import android.location.Address;
|
||||
import android.location.LocationManager;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.HandlerThread;
|
||||
import android.os.Process;
|
||||
import android.provider.ContactsContract.CommonDataKinds;
|
||||
import android.text.format.DateFormat;
|
||||
import android.text.format.DateUtils;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.MenuItem;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.view.View.OnLongClickListener;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.inputmethod.EditorInfo;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.BaseAdapter;
|
||||
import android.widget.Button;
|
||||
import android.widget.CheckBox;
|
||||
import android.widget.DatePicker;
|
||||
import android.widget.Filter;
|
||||
import android.widget.Filterable;
|
||||
import android.widget.PopupMenu;
|
||||
import android.widget.TextView;
|
||||
import android.widget.TimePicker;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
||||
import androidx.core.app.ActivityCompat;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.core.view.ViewCompat;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import okhttp3.HttpUrl;
|
||||
import org.osmdroid.api.IGeoPoint;
|
||||
import org.osmdroid.api.IMapController;
|
||||
import org.osmdroid.views.MapView;
|
||||
import org.osmdroid.views.overlay.Overlay;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import javax.net.ssl.SSLException;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InvalidClassException;
|
||||
import java.io.ObjectInputStream;
|
||||
import java.io.StreamCorruptedException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Collection;
|
||||
import java.util.EnumSet;
|
||||
import java.util.GregorianCalendar;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
public class DirectionsActivity extends OeffiMainActivity implements ActivityCompat.OnRequestPermissionsResultCallback,
|
||||
QueryHistoryClickListener, QueryHistoryContextMenuItemListener {
|
||||
|
|
|
@ -17,15 +17,22 @@
|
|||
|
||||
package de.schildbach.oeffi.directions;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import javax.net.ssl.SSLException;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.ProgressDialog;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.location.Address;
|
||||
import android.location.Criteria;
|
||||
import android.location.LocationManager;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.HandlerThread;
|
||||
import android.os.Process;
|
||||
import androidx.core.app.ActivityCompat;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import com.google.common.base.Throwables;
|
||||
|
||||
import de.schildbach.oeffi.Constants;
|
||||
import de.schildbach.oeffi.OeffiActivity;
|
||||
import de.schildbach.oeffi.R;
|
||||
|
@ -44,26 +51,12 @@ import de.schildbach.pte.dto.Point;
|
|||
import de.schildbach.pte.dto.Product;
|
||||
import de.schildbach.pte.dto.QueryTripsResult;
|
||||
import de.schildbach.pte.dto.TripOptions;
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.ProgressDialog;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.DialogInterface.OnCancelListener;
|
||||
import android.content.DialogInterface.OnClickListener;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.location.Address;
|
||||
import android.location.Criteria;
|
||||
import android.location.LocationManager;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.HandlerThread;
|
||||
import android.os.Process;
|
||||
import androidx.core.app.ActivityCompat;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import okhttp3.HttpUrl;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import javax.net.ssl.SSLException;
|
||||
import java.util.Set;
|
||||
|
||||
public class DirectionsShortcutActivity extends OeffiActivity
|
||||
implements ActivityCompat.OnRequestPermissionsResultCallback, LocationHelper.Callback {
|
||||
|
|
|
@ -17,15 +17,14 @@
|
|||
|
||||
package de.schildbach.oeffi.directions;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.pte.dto.Location;
|
||||
|
||||
import android.content.Context;
|
||||
import android.text.Html;
|
||||
import android.util.AttributeSet;
|
||||
import android.widget.TextView;
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.pte.dto.Location;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
public class LocationTextView extends TextView {
|
||||
private String label = null;
|
||||
|
|
|
@ -17,20 +17,6 @@
|
|||
|
||||
package de.schildbach.oeffi.directions;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
import com.google.common.base.Strings;
|
||||
|
||||
import de.schildbach.oeffi.Constants;
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.oeffi.util.GeocoderThread;
|
||||
import de.schildbach.oeffi.util.LocationHelper;
|
||||
import de.schildbach.oeffi.util.MultiDrawable;
|
||||
import de.schildbach.oeffi.util.PopupHelper;
|
||||
import de.schildbach.pte.dto.Location;
|
||||
import de.schildbach.pte.dto.LocationType;
|
||||
import de.schildbach.pte.dto.Point;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.content.res.TypedArray;
|
||||
|
@ -49,8 +35,6 @@ import android.util.TypedValue;
|
|||
import android.view.Gravity;
|
||||
import android.view.View;
|
||||
import android.view.inputmethod.EditorInfo;
|
||||
import android.widget.AdapterView;
|
||||
import android.widget.AdapterView.OnItemClickListener;
|
||||
import android.widget.AutoCompleteTextView;
|
||||
import android.widget.Filterable;
|
||||
import android.widget.FrameLayout;
|
||||
|
@ -58,6 +42,18 @@ import android.widget.ListAdapter;
|
|||
import android.widget.PopupMenu;
|
||||
import android.widget.TextView.OnEditorActionListener;
|
||||
import androidx.annotation.Nullable;
|
||||
import com.google.common.base.Strings;
|
||||
import de.schildbach.oeffi.Constants;
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.oeffi.util.GeocoderThread;
|
||||
import de.schildbach.oeffi.util.LocationHelper;
|
||||
import de.schildbach.oeffi.util.MultiDrawable;
|
||||
import de.schildbach.oeffi.util.PopupHelper;
|
||||
import de.schildbach.pte.dto.Location;
|
||||
import de.schildbach.pte.dto.LocationType;
|
||||
import de.schildbach.pte.dto.Point;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
public class LocationView extends FrameLayout implements LocationHelper.Callback {
|
||||
public static interface Listener {
|
||||
|
|
|
@ -17,9 +17,6 @@
|
|||
|
||||
package de.schildbach.oeffi.directions;
|
||||
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.pte.dto.Style;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.Canvas;
|
||||
|
@ -28,6 +25,8 @@ import android.graphics.Paint;
|
|||
import android.graphics.Paint.FontMetrics;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.View;
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.pte.dto.Style;
|
||||
|
||||
public class PearlView extends View {
|
||||
private Type type = null;
|
||||
|
|
|
@ -17,15 +17,6 @@
|
|||
|
||||
package de.schildbach.oeffi.directions;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import de.schildbach.oeffi.Application;
|
||||
import de.schildbach.oeffi.Constants;
|
||||
import de.schildbach.pte.NetworkId;
|
||||
import de.schildbach.pte.dto.Location;
|
||||
import de.schildbach.pte.dto.LocationType;
|
||||
|
||||
import android.content.ContentProvider;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.ContentValues;
|
||||
|
@ -35,6 +26,14 @@ import android.database.sqlite.SQLiteDatabase;
|
|||
import android.database.sqlite.SQLiteOpenHelper;
|
||||
import android.database.sqlite.SQLiteQueryBuilder;
|
||||
import android.net.Uri;
|
||||
import de.schildbach.oeffi.Application;
|
||||
import de.schildbach.oeffi.Constants;
|
||||
import de.schildbach.pte.NetworkId;
|
||||
import de.schildbach.pte.dto.Location;
|
||||
import de.schildbach.pte.dto.LocationType;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class QueryHistoryProvider extends ContentProvider {
|
||||
private static final String DATABASE_TABLE = "query_history";
|
||||
|
|
|
@ -17,21 +17,13 @@
|
|||
|
||||
package de.schildbach.oeffi.directions;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.SocketException;
|
||||
import java.net.SocketTimeoutException;
|
||||
import java.net.UnknownHostException;
|
||||
import java.util.Date;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
||||
import javax.net.ssl.SSLException;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import android.app.ProgressDialog;
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.Typeface;
|
||||
import android.os.Handler;
|
||||
import android.text.SpannableStringBuilder;
|
||||
import android.text.style.StyleSpan;
|
||||
import com.google.common.util.concurrent.Uninterruptibles;
|
||||
|
||||
import de.schildbach.oeffi.Constants;
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.pte.NetworkProvider;
|
||||
|
@ -44,14 +36,18 @@ import de.schildbach.pte.exception.BlockedException;
|
|||
import de.schildbach.pte.exception.InternalErrorException;
|
||||
import de.schildbach.pte.exception.NotFoundException;
|
||||
import de.schildbach.pte.exception.UnexpectedRedirectException;
|
||||
|
||||
import android.app.ProgressDialog;
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.Typeface;
|
||||
import android.os.Handler;
|
||||
import android.text.SpannableStringBuilder;
|
||||
import android.text.style.StyleSpan;
|
||||
import okhttp3.HttpUrl;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import javax.net.ssl.SSLException;
|
||||
import java.io.IOException;
|
||||
import java.net.SocketException;
|
||||
import java.net.SocketTimeoutException;
|
||||
import java.net.UnknownHostException;
|
||||
import java.util.Date;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
||||
public abstract class QueryTripsRunnable implements Runnable {
|
||||
private final Resources res;
|
||||
|
|
|
@ -17,11 +17,11 @@
|
|||
|
||||
package de.schildbach.oeffi.directions;
|
||||
|
||||
import android.text.format.DateUtils;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Locale;
|
||||
|
||||
import android.text.format.DateUtils;
|
||||
|
||||
public abstract class TimeSpec implements Serializable {
|
||||
public enum DepArr {
|
||||
DEPART, ARRIVE
|
||||
|
|
|
@ -17,51 +17,6 @@
|
|||
|
||||
package de.schildbach.oeffi.directions;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.GregorianCalendar;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.google.common.base.MoreObjects;
|
||||
|
||||
import de.schildbach.oeffi.Constants;
|
||||
import de.schildbach.oeffi.LocationAware;
|
||||
import de.schildbach.oeffi.MyActionBar;
|
||||
import de.schildbach.oeffi.OeffiActivity;
|
||||
import de.schildbach.oeffi.OeffiMapView;
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.oeffi.TripAware;
|
||||
import de.schildbach.oeffi.directions.TimeSpec.DepArr;
|
||||
import de.schildbach.oeffi.stations.LineView;
|
||||
import de.schildbach.oeffi.stations.StationContextMenu;
|
||||
import de.schildbach.oeffi.stations.StationDetailsActivity;
|
||||
import de.schildbach.oeffi.util.Formats;
|
||||
import de.schildbach.oeffi.util.LocationHelper;
|
||||
import de.schildbach.oeffi.util.Toast;
|
||||
import de.schildbach.oeffi.util.ToggleImageButton;
|
||||
import de.schildbach.oeffi.util.ToggleImageButton.OnCheckedChangeListener;
|
||||
import de.schildbach.pte.NetworkId;
|
||||
import de.schildbach.pte.dto.Fare;
|
||||
import de.schildbach.pte.dto.Line;
|
||||
import de.schildbach.pte.dto.Location;
|
||||
import de.schildbach.pte.dto.Point;
|
||||
import de.schildbach.pte.dto.Position;
|
||||
import de.schildbach.pte.dto.Stop;
|
||||
import de.schildbach.pte.dto.Style;
|
||||
import de.schildbach.pte.dto.Trip;
|
||||
import de.schildbach.pte.dto.Trip.Individual;
|
||||
import de.schildbach.pte.dto.Trip.Leg;
|
||||
import de.schildbach.pte.dto.Trip.Public;
|
||||
|
||||
import android.Manifest;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
|
@ -87,9 +42,7 @@ import android.text.format.DateUtils;
|
|||
import android.text.style.RelativeSizeSpan;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.ImageButton;
|
||||
|
@ -98,6 +51,47 @@ import android.widget.PopupMenu;
|
|||
import android.widget.TableLayout;
|
||||
import android.widget.TextView;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import com.google.common.base.MoreObjects;
|
||||
import de.schildbach.oeffi.Constants;
|
||||
import de.schildbach.oeffi.LocationAware;
|
||||
import de.schildbach.oeffi.MyActionBar;
|
||||
import de.schildbach.oeffi.OeffiActivity;
|
||||
import de.schildbach.oeffi.OeffiMapView;
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.oeffi.TripAware;
|
||||
import de.schildbach.oeffi.directions.TimeSpec.DepArr;
|
||||
import de.schildbach.oeffi.stations.LineView;
|
||||
import de.schildbach.oeffi.stations.StationContextMenu;
|
||||
import de.schildbach.oeffi.stations.StationDetailsActivity;
|
||||
import de.schildbach.oeffi.util.Formats;
|
||||
import de.schildbach.oeffi.util.LocationHelper;
|
||||
import de.schildbach.oeffi.util.Toast;
|
||||
import de.schildbach.oeffi.util.ToggleImageButton;
|
||||
import de.schildbach.pte.NetworkId;
|
||||
import de.schildbach.pte.dto.Fare;
|
||||
import de.schildbach.pte.dto.Line;
|
||||
import de.schildbach.pte.dto.Location;
|
||||
import de.schildbach.pte.dto.Point;
|
||||
import de.schildbach.pte.dto.Position;
|
||||
import de.schildbach.pte.dto.Stop;
|
||||
import de.schildbach.pte.dto.Style;
|
||||
import de.schildbach.pte.dto.Trip;
|
||||
import de.schildbach.pte.dto.Trip.Individual;
|
||||
import de.schildbach.pte.dto.Trip.Leg;
|
||||
import de.schildbach.pte.dto.Trip.Public;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.GregorianCalendar;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
public class TripDetailsActivity extends OeffiActivity implements LocationListener, LocationAware {
|
||||
private static final String INTENT_EXTRA_NETWORK = TripDetailsActivity.class.getName() + ".network";
|
||||
|
|
|
@ -17,17 +17,6 @@
|
|||
|
||||
package de.schildbach.oeffi.directions;
|
||||
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.GregorianCalendar;
|
||||
import java.util.List;
|
||||
|
||||
import com.google.common.math.LongMath;
|
||||
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.oeffi.util.Formats;
|
||||
import de.schildbach.pte.dto.Trip;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.Canvas;
|
||||
|
@ -44,6 +33,15 @@ import android.text.format.DateUtils;
|
|||
import android.util.AttributeSet;
|
||||
import android.view.View;
|
||||
import android.widget.Gallery;
|
||||
import com.google.common.math.LongMath;
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.oeffi.util.Formats;
|
||||
import de.schildbach.pte.dto.Trip;
|
||||
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.GregorianCalendar;
|
||||
import java.util.List;
|
||||
|
||||
public class TripsGallery extends Gallery {
|
||||
private OnScrollListener onScrollListener;
|
||||
|
|
|
@ -17,24 +17,6 @@
|
|||
|
||||
package de.schildbach.oeffi.directions;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import com.google.common.base.Preconditions;
|
||||
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.pte.dto.Line;
|
||||
import de.schildbach.pte.dto.Stop;
|
||||
import de.schildbach.pte.dto.Style;
|
||||
import de.schildbach.pte.dto.Style.Shape;
|
||||
import de.schildbach.pte.dto.Trip;
|
||||
import de.schildbach.pte.dto.Trip.Individual;
|
||||
import de.schildbach.pte.dto.Trip.Leg;
|
||||
import de.schildbach.pte.dto.Trip.Public;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.content.res.TypedArray;
|
||||
|
@ -58,6 +40,22 @@ import android.view.ViewGroup;
|
|||
import android.widget.Adapter;
|
||||
import android.widget.BaseAdapter;
|
||||
import androidx.annotation.Nullable;
|
||||
import com.google.common.base.Preconditions;
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.pte.dto.Line;
|
||||
import de.schildbach.pte.dto.Stop;
|
||||
import de.schildbach.pte.dto.Style;
|
||||
import de.schildbach.pte.dto.Style.Shape;
|
||||
import de.schildbach.pte.dto.Trip;
|
||||
import de.schildbach.pte.dto.Trip.Individual;
|
||||
import de.schildbach.pte.dto.Trip.Leg;
|
||||
import de.schildbach.pte.dto.Trip.Public;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
public final class TripsGalleryAdapter extends BaseAdapter {
|
||||
private List<Trip> trips = Collections.emptyList();
|
||||
|
|
|
@ -17,49 +17,6 @@
|
|||
|
||||
package de.schildbach.oeffi.directions;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.ObjectOutputStream;
|
||||
import java.net.SocketException;
|
||||
import java.net.SocketTimeoutException;
|
||||
import java.net.UnknownHostException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.Date;
|
||||
import java.util.Iterator;
|
||||
import java.util.NavigableSet;
|
||||
import java.util.TreeSet;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import javax.net.ssl.SSLException;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.google.common.collect.ComparisonChain;
|
||||
import com.google.common.collect.Ordering;
|
||||
import com.google.common.util.concurrent.Uninterruptibles;
|
||||
|
||||
import de.schildbach.oeffi.Constants;
|
||||
import de.schildbach.oeffi.MyActionBar;
|
||||
import de.schildbach.oeffi.OeffiActivity;
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.oeffi.directions.TripsGallery.OnScrollListener;
|
||||
import de.schildbach.oeffi.network.NetworkProviderFactory;
|
||||
import de.schildbach.oeffi.util.Toast;
|
||||
import de.schildbach.pte.NetworkId;
|
||||
import de.schildbach.pte.NetworkProvider;
|
||||
import de.schildbach.pte.dto.Location;
|
||||
import de.schildbach.pte.dto.QueryTripsContext;
|
||||
import de.schildbach.pte.dto.QueryTripsResult;
|
||||
import de.schildbach.pte.dto.Trip;
|
||||
import de.schildbach.pte.exception.InternalErrorException;
|
||||
import de.schildbach.pte.exception.InvalidDataException;
|
||||
import de.schildbach.pte.exception.NotFoundException;
|
||||
import de.schildbach.pte.exception.SessionExpiredException;
|
||||
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.ContentValues;
|
||||
import android.content.Context;
|
||||
|
@ -72,11 +29,46 @@ import android.os.HandlerThread;
|
|||
import android.os.Process;
|
||||
import android.text.format.DateUtils;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.widget.AdapterView;
|
||||
import android.widget.AdapterView.OnItemClickListener;
|
||||
import android.widget.TextView;
|
||||
import androidx.annotation.Nullable;
|
||||
import com.google.common.collect.ComparisonChain;
|
||||
import com.google.common.collect.Ordering;
|
||||
import com.google.common.util.concurrent.Uninterruptibles;
|
||||
import de.schildbach.oeffi.Constants;
|
||||
import de.schildbach.oeffi.MyActionBar;
|
||||
import de.schildbach.oeffi.OeffiActivity;
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.oeffi.network.NetworkProviderFactory;
|
||||
import de.schildbach.oeffi.util.Toast;
|
||||
import de.schildbach.pte.NetworkId;
|
||||
import de.schildbach.pte.NetworkProvider;
|
||||
import de.schildbach.pte.dto.Location;
|
||||
import de.schildbach.pte.dto.QueryTripsContext;
|
||||
import de.schildbach.pte.dto.QueryTripsResult;
|
||||
import de.schildbach.pte.dto.Trip;
|
||||
import de.schildbach.pte.exception.InternalErrorException;
|
||||
import de.schildbach.pte.exception.InvalidDataException;
|
||||
import de.schildbach.pte.exception.NotFoundException;
|
||||
import de.schildbach.pte.exception.SessionExpiredException;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import javax.net.ssl.SSLException;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.ObjectOutputStream;
|
||||
import java.net.SocketException;
|
||||
import java.net.SocketTimeoutException;
|
||||
import java.net.UnknownHostException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.Iterator;
|
||||
import java.util.NavigableSet;
|
||||
import java.util.TreeSet;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
public class TripsOverviewActivity extends OeffiActivity {
|
||||
private static final String INTENT_EXTRA_NETWORK = TripsOverviewActivity.class.getName() + ".network";
|
||||
|
|
|
@ -17,14 +17,6 @@
|
|||
|
||||
package de.schildbach.oeffi.directions.list;
|
||||
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.oeffi.directions.QueryHistoryProvider;
|
||||
import de.schildbach.oeffi.stations.FavoriteStationsProvider;
|
||||
import de.schildbach.pte.NetworkId;
|
||||
import de.schildbach.pte.dto.Location;
|
||||
import de.schildbach.pte.dto.LocationType;
|
||||
import de.schildbach.pte.dto.Point;
|
||||
|
||||
import android.content.ContentResolver;
|
||||
import android.content.ContentValues;
|
||||
import android.content.Context;
|
||||
|
@ -36,6 +28,13 @@ import android.provider.BaseColumns;
|
|||
import android.view.LayoutInflater;
|
||||
import android.view.ViewGroup;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.oeffi.directions.QueryHistoryProvider;
|
||||
import de.schildbach.oeffi.stations.FavoriteStationsProvider;
|
||||
import de.schildbach.pte.NetworkId;
|
||||
import de.schildbach.pte.dto.Location;
|
||||
import de.schildbach.pte.dto.LocationType;
|
||||
import de.schildbach.pte.dto.Point;
|
||||
|
||||
public class QueryHistoryAdapter extends RecyclerView.Adapter<QueryHistoryViewHolder> {
|
||||
private final Context context;
|
||||
|
|
|
@ -17,9 +17,8 @@
|
|||
|
||||
package de.schildbach.oeffi.directions.list;
|
||||
|
||||
import de.schildbach.pte.dto.Location;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import de.schildbach.pte.dto.Location;
|
||||
|
||||
public interface QueryHistoryContextMenuItemListener {
|
||||
boolean onQueryHistoryContextMenuItemClick(int adapterPosition, Location from, Location to,
|
||||
|
|
|
@ -17,6 +17,15 @@
|
|||
|
||||
package de.schildbach.oeffi.directions.list;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.SubMenu;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.PopupMenu;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.oeffi.directions.LocationTextView;
|
||||
import de.schildbach.oeffi.stations.FavoriteStationsProvider;
|
||||
|
@ -26,18 +35,6 @@ import de.schildbach.pte.NetworkId;
|
|||
import de.schildbach.pte.dto.Location;
|
||||
import de.schildbach.pte.dto.LocationType;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.SubMenu;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.widget.Button;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.PopupMenu;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
public class QueryHistoryViewHolder extends RecyclerView.ViewHolder {
|
||||
private final Context context;
|
||||
private final NetworkId network;
|
||||
|
|
|
@ -17,6 +17,16 @@
|
|||
|
||||
package de.schildbach.oeffi.network;
|
||||
|
||||
import android.os.Handler;
|
||||
import com.google.common.util.concurrent.Uninterruptibles;
|
||||
import de.schildbach.oeffi.Constants;
|
||||
import de.schildbach.pte.NetworkProvider;
|
||||
import de.schildbach.pte.dto.Point;
|
||||
import de.schildbach.pte.exception.NotFoundException;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import javax.net.ssl.SSLException;
|
||||
import java.io.IOException;
|
||||
import java.net.SocketException;
|
||||
import java.net.SocketTimeoutException;
|
||||
|
@ -24,20 +34,6 @@ import java.net.UnknownHostException;
|
|||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
||||
import javax.net.ssl.SSLException;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.google.common.util.concurrent.Uninterruptibles;
|
||||
|
||||
import de.schildbach.oeffi.Constants;
|
||||
import de.schildbach.pte.NetworkProvider;
|
||||
import de.schildbach.pte.dto.Point;
|
||||
import de.schildbach.pte.exception.NotFoundException;
|
||||
|
||||
import android.os.Handler;
|
||||
|
||||
public abstract class GetAreaRunnable implements Runnable {
|
||||
private final NetworkProvider networkProvider;
|
||||
private final Handler handler;
|
||||
|
|
|
@ -17,38 +17,6 @@
|
|||
|
||||
package de.schildbach.oeffi.network;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import de.schildbach.oeffi.AreaAware;
|
||||
import de.schildbach.oeffi.Constants;
|
||||
import de.schildbach.oeffi.LocationAware;
|
||||
import de.schildbach.oeffi.MyActionBar;
|
||||
import de.schildbach.oeffi.OeffiMapView;
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.oeffi.network.list.NetworkClickListener;
|
||||
import de.schildbach.oeffi.network.list.NetworkContextMenuItemListener;
|
||||
import de.schildbach.oeffi.network.list.NetworkListEntry;
|
||||
import de.schildbach.oeffi.network.list.NetworksAdapter;
|
||||
import de.schildbach.oeffi.util.DividerItemDecoration;
|
||||
import de.schildbach.oeffi.util.GeocoderThread;
|
||||
import de.schildbach.oeffi.util.LocationHelper;
|
||||
import de.schildbach.pte.AbstractNavitiaProvider;
|
||||
import de.schildbach.pte.NetworkId;
|
||||
import de.schildbach.pte.NetworkProvider;
|
||||
import de.schildbach.pte.dto.Location;
|
||||
import de.schildbach.pte.dto.Point;
|
||||
|
||||
import android.Manifest;
|
||||
import android.annotation.TargetApi;
|
||||
import android.app.Activity;
|
||||
|
@ -70,13 +38,42 @@ import android.os.Process;
|
|||
import android.preference.PreferenceManager;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.View;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
import androidx.core.app.ActivityCompat;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import de.schildbach.oeffi.AreaAware;
|
||||
import de.schildbach.oeffi.Constants;
|
||||
import de.schildbach.oeffi.LocationAware;
|
||||
import de.schildbach.oeffi.MyActionBar;
|
||||
import de.schildbach.oeffi.OeffiMapView;
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.oeffi.network.list.NetworkClickListener;
|
||||
import de.schildbach.oeffi.network.list.NetworkContextMenuItemListener;
|
||||
import de.schildbach.oeffi.network.list.NetworkListEntry;
|
||||
import de.schildbach.oeffi.network.list.NetworksAdapter;
|
||||
import de.schildbach.oeffi.util.DividerItemDecoration;
|
||||
import de.schildbach.oeffi.util.GeocoderThread;
|
||||
import de.schildbach.oeffi.util.LocationHelper;
|
||||
import de.schildbach.pte.AbstractNavitiaProvider;
|
||||
import de.schildbach.pte.NetworkId;
|
||||
import de.schildbach.pte.NetworkProvider;
|
||||
import de.schildbach.pte.dto.Location;
|
||||
import de.schildbach.pte.dto.Point;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
|
||||
public class NetworkPickerActivity extends Activity implements ActivityCompat.OnRequestPermissionsResultCallback,
|
||||
LocationHelper.Callback, NetworkClickListener, NetworkContextMenuItemListener {
|
||||
|
|
|
@ -17,11 +17,8 @@
|
|||
|
||||
package de.schildbach.oeffi.network;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import android.os.Build;
|
||||
import com.google.common.base.Charsets;
|
||||
|
||||
import de.schildbach.pte.AbstractNetworkProvider;
|
||||
import de.schildbach.pte.AvvAachenProvider;
|
||||
import de.schildbach.pte.AvvProvider;
|
||||
|
@ -82,10 +79,11 @@ import de.schildbach.pte.VvsProvider;
|
|||
import de.schildbach.pte.VvvProvider;
|
||||
import de.schildbach.pte.WienProvider;
|
||||
import de.schildbach.pte.ZvvProvider;
|
||||
|
||||
import android.os.Build;
|
||||
import okhttp3.HttpUrl;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public final class NetworkProviderFactory {
|
||||
private static Map<NetworkId, NetworkProvider> providerCache = new HashMap<>();
|
||||
|
||||
|
|
|
@ -17,15 +17,15 @@
|
|||
|
||||
package de.schildbach.oeffi.network;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
public class NetworkResources {
|
||||
public final @Nullable Drawable icon;
|
||||
public final boolean isLogo;
|
||||
|
|
|
@ -17,12 +17,8 @@
|
|||
|
||||
package de.schildbach.oeffi.network.list;
|
||||
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.oeffi.network.NetworkResources;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.ImageView;
|
||||
|
@ -30,6 +26,8 @@ import android.widget.PopupMenu;
|
|||
import android.widget.TextView;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.oeffi.network.NetworkResources;
|
||||
|
||||
public class NetworkViewHolder extends RecyclerView.ViewHolder {
|
||||
private final Context context;
|
||||
|
|
|
@ -17,15 +17,14 @@
|
|||
|
||||
package de.schildbach.oeffi.network.list;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
import de.schildbach.oeffi.R;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.ViewGroup;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import de.schildbach.oeffi.R;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
public class NetworksAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||
private final Context context;
|
||||
|
|
|
@ -17,30 +17,35 @@
|
|||
|
||||
package de.schildbach.oeffi.plans;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Set;
|
||||
import java.util.TreeSet;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.SearchManager;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.database.Cursor;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.HandlerThread;
|
||||
import android.os.Process;
|
||||
import android.view.View;
|
||||
import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
import android.view.animation.Animation;
|
||||
import android.view.animation.AnimationUtils;
|
||||
import android.widget.PopupMenu;
|
||||
import android.widget.TextView;
|
||||
import android.widget.ViewAnimator;
|
||||
import androidx.annotation.Nullable;
|
||||
import com.google.common.util.concurrent.FutureCallback;
|
||||
import com.google.common.util.concurrent.Futures;
|
||||
import com.google.common.util.concurrent.ListenableFuture;
|
||||
|
||||
import de.schildbach.oeffi.Application;
|
||||
import de.schildbach.oeffi.Constants;
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.oeffi.StationsAware;
|
||||
import de.schildbach.oeffi.network.NetworkProviderFactory;
|
||||
import de.schildbach.oeffi.plans.ScrollImageView.OnMoveListener;
|
||||
import de.schildbach.oeffi.stations.LineView;
|
||||
import de.schildbach.oeffi.stations.QueryDeparturesRunnable;
|
||||
import de.schildbach.oeffi.stations.Station;
|
||||
|
@ -60,31 +65,20 @@ import de.schildbach.pte.dto.LocationType;
|
|||
import de.schildbach.pte.dto.Point;
|
||||
import de.schildbach.pte.dto.QueryDeparturesResult;
|
||||
import de.schildbach.pte.dto.StationDepartures;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.SearchManager;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.database.Cursor;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.HandlerThread;
|
||||
import android.os.Process;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
import android.view.animation.Animation;
|
||||
import android.view.animation.AnimationUtils;
|
||||
import android.widget.PopupMenu;
|
||||
import android.widget.TextView;
|
||||
import android.widget.ViewAnimator;
|
||||
import androidx.annotation.Nullable;
|
||||
import okhttp3.HttpUrl;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Set;
|
||||
import java.util.TreeSet;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
public class PlanActivity extends Activity {
|
||||
public static final String INTENT_EXTRA_PLAN_ID = "plan_id"; // Used in launcher shortcuts
|
||||
|
|
|
@ -17,7 +17,30 @@
|
|||
|
||||
package de.schildbach.oeffi.plans;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
import android.app.SearchManager;
|
||||
import android.content.ContentProvider;
|
||||
import android.content.ContentValues;
|
||||
import android.database.Cursor;
|
||||
import android.database.CursorWrapper;
|
||||
import android.database.MatrixCursor;
|
||||
import android.net.Uri;
|
||||
import android.provider.BaseColumns;
|
||||
import androidx.annotation.Nullable;
|
||||
import com.google.common.base.Objects;
|
||||
import com.google.common.base.Splitter;
|
||||
import com.google.common.base.Strings;
|
||||
import com.google.common.util.concurrent.FutureCallback;
|
||||
import com.google.common.util.concurrent.Futures;
|
||||
import com.google.common.util.concurrent.ListenableFuture;
|
||||
import com.google.common.util.concurrent.MoreExecutors;
|
||||
import de.schildbach.oeffi.Application;
|
||||
import de.schildbach.oeffi.Constants;
|
||||
import de.schildbach.oeffi.util.Downloader;
|
||||
import de.schildbach.pte.NetworkId;
|
||||
import de.schildbach.pte.dto.Point;
|
||||
import okhttp3.HttpUrl;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
|
@ -37,33 +60,7 @@ import java.util.LinkedList;
|
|||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.google.common.base.Objects;
|
||||
import com.google.common.base.Splitter;
|
||||
import com.google.common.base.Strings;
|
||||
import com.google.common.util.concurrent.FutureCallback;
|
||||
import com.google.common.util.concurrent.Futures;
|
||||
import com.google.common.util.concurrent.ListenableFuture;
|
||||
import com.google.common.util.concurrent.MoreExecutors;
|
||||
|
||||
import de.schildbach.oeffi.Application;
|
||||
import de.schildbach.oeffi.Constants;
|
||||
import de.schildbach.oeffi.util.Downloader;
|
||||
import de.schildbach.pte.NetworkId;
|
||||
import de.schildbach.pte.dto.Point;
|
||||
|
||||
import android.app.SearchManager;
|
||||
import android.content.ContentProvider;
|
||||
import android.content.ContentValues;
|
||||
import android.database.Cursor;
|
||||
import android.database.CursorWrapper;
|
||||
import android.database.MatrixCursor;
|
||||
import android.net.Uri;
|
||||
import android.provider.BaseColumns;
|
||||
import androidx.annotation.Nullable;
|
||||
import okhttp3.HttpUrl;
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
public class PlanContentProvider extends ContentProvider {
|
||||
public static final Uri CONTENT_URI = Uri.parse("content://de.schildbach.oeffi.plans");
|
||||
|
|
|
@ -17,31 +17,6 @@
|
|||
|
||||
package de.schildbach.oeffi.plans;
|
||||
|
||||
import java.io.File;
|
||||
import java.net.HttpURLConnection;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.google.common.util.concurrent.FutureCallback;
|
||||
import com.google.common.util.concurrent.Futures;
|
||||
import com.google.common.util.concurrent.ListenableFuture;
|
||||
|
||||
import de.schildbach.oeffi.Constants;
|
||||
import de.schildbach.oeffi.MyActionBar;
|
||||
import de.schildbach.oeffi.OeffiMainActivity;
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.oeffi.plans.list.PlanClickListener;
|
||||
import de.schildbach.oeffi.plans.list.PlanContextMenuItemListener;
|
||||
import de.schildbach.oeffi.plans.list.PlansAdapter;
|
||||
import de.schildbach.oeffi.util.ConnectivityBroadcastReceiver;
|
||||
import de.schildbach.oeffi.util.DividerItemDecoration;
|
||||
import de.schildbach.oeffi.util.Downloader;
|
||||
import de.schildbach.oeffi.util.LocationHelper;
|
||||
import de.schildbach.oeffi.util.Toast;
|
||||
import de.schildbach.oeffi.util.UiThreadExecutor;
|
||||
import de.schildbach.pte.dto.Point;
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.SearchManager;
|
||||
import android.content.BroadcastReceiver;
|
||||
|
@ -57,7 +32,6 @@ import android.net.ConnectivityManager;
|
|||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.widget.TextView;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.core.app.ActivityCompat;
|
||||
|
@ -67,8 +41,30 @@ import androidx.core.content.pm.ShortcutManagerCompat;
|
|||
import androidx.core.graphics.drawable.IconCompat;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import com.google.common.util.concurrent.FutureCallback;
|
||||
import com.google.common.util.concurrent.Futures;
|
||||
import com.google.common.util.concurrent.ListenableFuture;
|
||||
import de.schildbach.oeffi.Constants;
|
||||
import de.schildbach.oeffi.MyActionBar;
|
||||
import de.schildbach.oeffi.OeffiMainActivity;
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.oeffi.plans.list.PlanClickListener;
|
||||
import de.schildbach.oeffi.plans.list.PlanContextMenuItemListener;
|
||||
import de.schildbach.oeffi.plans.list.PlansAdapter;
|
||||
import de.schildbach.oeffi.util.ConnectivityBroadcastReceiver;
|
||||
import de.schildbach.oeffi.util.DividerItemDecoration;
|
||||
import de.schildbach.oeffi.util.Downloader;
|
||||
import de.schildbach.oeffi.util.LocationHelper;
|
||||
import de.schildbach.oeffi.util.Toast;
|
||||
import de.schildbach.oeffi.util.UiThreadExecutor;
|
||||
import de.schildbach.pte.dto.Point;
|
||||
import okhttp3.Cache;
|
||||
import okhttp3.HttpUrl;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.io.File;
|
||||
import java.net.HttpURLConnection;
|
||||
|
||||
public class PlansPickerActivity extends OeffiMainActivity implements ActivityCompat.OnRequestPermissionsResultCallback,
|
||||
LocationHelper.Callback, PlanClickListener, PlanContextMenuItemListener {
|
||||
|
|
|
@ -17,12 +17,6 @@
|
|||
|
||||
package de.schildbach.oeffi.plans;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import de.schildbach.oeffi.StationsAware;
|
||||
import de.schildbach.oeffi.stations.Station;
|
||||
import de.schildbach.oeffi.util.UpGestureDetector;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Matrix;
|
||||
import android.graphics.drawable.Drawable;
|
||||
|
@ -35,6 +29,11 @@ import android.view.ScaleGestureDetector;
|
|||
import android.view.animation.DecelerateInterpolator;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.Scroller;
|
||||
import de.schildbach.oeffi.StationsAware;
|
||||
import de.schildbach.oeffi.stations.Station;
|
||||
import de.schildbach.oeffi.util.UpGestureDetector;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class ScrollImageView extends ImageView implements Runnable {
|
||||
private OnMoveListener onMoveListener;
|
||||
|
|
|
@ -17,15 +17,9 @@
|
|||
|
||||
package de.schildbach.oeffi.plans.list;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.oeffi.network.NetworkResources;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.text.format.DateFormat;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.animation.Animation;
|
||||
import android.view.animation.Animation.AnimationListener;
|
||||
|
@ -37,8 +31,12 @@ import android.widget.ProgressBar;
|
|||
import android.widget.TextView;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.oeffi.network.NetworkResources;
|
||||
import okhttp3.Call;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
public class PlanViewHolder extends RecyclerView.ViewHolder {
|
||||
private final Context context;
|
||||
private final java.text.DateFormat dateFormat;
|
||||
|
|
|
@ -17,18 +17,6 @@
|
|||
|
||||
package de.schildbach.oeffi.plans.list;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import de.schildbach.oeffi.Application;
|
||||
import de.schildbach.oeffi.Constants;
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.oeffi.plans.PlanContentProvider;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.database.Cursor;
|
||||
|
@ -40,6 +28,9 @@ import android.view.LayoutInflater;
|
|||
import android.view.ViewGroup;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import de.schildbach.oeffi.Constants;
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.oeffi.plans.PlanContentProvider;
|
||||
import okhttp3.Cache;
|
||||
import okhttp3.Call;
|
||||
import okhttp3.Callback;
|
||||
|
@ -48,6 +39,13 @@ import okhttp3.OkHttpClient;
|
|||
import okhttp3.Request;
|
||||
import okhttp3.Response;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
public class PlansAdapter extends RecyclerView.Adapter<PlanViewHolder> {
|
||||
private final Context context;
|
||||
private final Resources res;
|
||||
|
|
|
@ -21,7 +21,6 @@ import android.app.Activity;
|
|||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.preference.Preference;
|
||||
import android.preference.PreferenceFragment;
|
||||
import androidx.annotation.Nullable;
|
||||
import de.schildbach.oeffi.Application;
|
||||
|
|
|
@ -17,14 +17,11 @@
|
|||
|
||||
package de.schildbach.oeffi.preference;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.preference.PreferenceFragment;
|
||||
import android.provider.Settings;
|
||||
import androidx.annotation.Nullable;
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.oeffi.network.NetworkPickerActivity;
|
||||
|
||||
public class CommonFragment extends PreferenceFragment {
|
||||
private static final String KEY_BATTERY_OPTIMIZATIONS = "battery_optimizations";
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
package de.schildbach.oeffi.preference;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.preference.Preference;
|
||||
import android.preference.PreferenceFragment;
|
||||
import androidx.annotation.Nullable;
|
||||
import de.schildbach.oeffi.Constants;
|
||||
|
|
|
@ -17,8 +17,6 @@
|
|||
|
||||
package de.schildbach.oeffi.stations;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkArgument;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Color;
|
||||
|
@ -28,6 +26,8 @@ import android.util.AttributeSet;
|
|||
import android.view.Surface;
|
||||
import android.view.View;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkArgument;
|
||||
|
||||
public final class CompassNeedleView extends View {
|
||||
public interface Callback {
|
||||
Float getDeviceBearing();
|
||||
|
|
|
@ -17,31 +17,27 @@
|
|||
|
||||
package de.schildbach.oeffi.stations;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.ProgressDialog;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import de.schildbach.oeffi.Application;
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.oeffi.util.DialogBuilder;
|
||||
import de.schildbach.pte.NetworkId;
|
||||
import de.schildbach.pte.dto.Location;
|
||||
import de.schildbach.pte.dto.LocationType;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.ProgressDialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.DialogInterface.OnCancelListener;
|
||||
import android.content.DialogInterface.OnClickListener;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import okhttp3.Call;
|
||||
import okhttp3.Callback;
|
||||
import okhttp3.HttpUrl;
|
||||
import okhttp3.Request;
|
||||
import okhttp3.Response;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
public class DecodeForeignActivity extends Activity {
|
||||
private static final Pattern PATTERN_META_REFRESH = Pattern
|
||||
.compile("<meta\\s+http-equiv=\"refresh\"\\s+content=\"0;\\s+URL=([^\"]*)\"");
|
||||
|
|
|
@ -17,10 +17,15 @@
|
|||
|
||||
package de.schildbach.oeffi.stations;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.widget.ViewAnimator;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import de.schildbach.oeffi.MyActionBar;
|
||||
import de.schildbach.oeffi.OeffiActivity;
|
||||
import de.schildbach.oeffi.R;
|
||||
|
@ -32,17 +37,9 @@ import de.schildbach.pte.NetworkId;
|
|||
import de.schildbach.pte.dto.Departure;
|
||||
import de.schildbach.pte.dto.Location;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.widget.ViewAnimator;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import java.util.List;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
public class FavoriteStationsActivity extends OeffiActivity
|
||||
implements StationClickListener, StationContextMenuItemListener {
|
||||
|
|
|
@ -17,16 +17,6 @@
|
|||
|
||||
package de.schildbach.oeffi.stations;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import de.schildbach.oeffi.Application;
|
||||
import de.schildbach.pte.NetworkId;
|
||||
import de.schildbach.pte.dto.Location;
|
||||
import de.schildbach.pte.dto.LocationType;
|
||||
import de.schildbach.pte.dto.Point;
|
||||
|
||||
import android.content.ContentProvider;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.ContentUris;
|
||||
|
@ -37,6 +27,15 @@ import android.database.sqlite.SQLiteDatabase;
|
|||
import android.database.sqlite.SQLiteOpenHelper;
|
||||
import android.database.sqlite.SQLiteQueryBuilder;
|
||||
import android.net.Uri;
|
||||
import de.schildbach.oeffi.Application;
|
||||
import de.schildbach.pte.NetworkId;
|
||||
import de.schildbach.pte.dto.Location;
|
||||
import de.schildbach.pte.dto.LocationType;
|
||||
import de.schildbach.pte.dto.Point;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class FavoriteStationsProvider extends ContentProvider {
|
||||
private static final String DATABASE_TABLE = "favorites";
|
||||
|
|
|
@ -17,12 +17,6 @@
|
|||
|
||||
package de.schildbach.oeffi.stations;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import de.schildbach.pte.NetworkId;
|
||||
import de.schildbach.pte.dto.Location;
|
||||
|
||||
import android.appwidget.AppWidgetManager;
|
||||
import android.appwidget.AppWidgetProviderInfo;
|
||||
import android.content.ContentResolver;
|
||||
|
@ -31,6 +25,11 @@ import android.content.Context;
|
|||
import android.content.Intent;
|
||||
import android.database.Cursor;
|
||||
import android.net.Uri;
|
||||
import de.schildbach.pte.NetworkId;
|
||||
import de.schildbach.pte.dto.Location;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class FavoriteUtils {
|
||||
public static Uri persist(final ContentResolver contentResolver, final int type, final NetworkId networkId,
|
||||
|
|
|
@ -17,29 +17,6 @@
|
|||
|
||||
package de.schildbach.oeffi.stations;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import com.google.common.base.Joiner;
|
||||
import com.google.common.base.Strings;
|
||||
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.oeffi.util.CheatSheet;
|
||||
import de.schildbach.pte.Standard;
|
||||
import de.schildbach.pte.dto.Line;
|
||||
import de.schildbach.pte.dto.Line.Attr;
|
||||
import de.schildbach.pte.dto.Product;
|
||||
import de.schildbach.pte.dto.Style;
|
||||
import de.schildbach.pte.dto.Style.Shape;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.Canvas;
|
||||
|
@ -56,6 +33,26 @@ import android.text.SpannableStringBuilder;
|
|||
import android.text.style.ReplacementSpan;
|
||||
import android.util.AttributeSet;
|
||||
import android.widget.TextView;
|
||||
import com.google.common.base.Joiner;
|
||||
import com.google.common.base.Strings;
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.oeffi.util.CheatSheet;
|
||||
import de.schildbach.pte.Standard;
|
||||
import de.schildbach.pte.dto.Line;
|
||||
import de.schildbach.pte.dto.Line.Attr;
|
||||
import de.schildbach.pte.dto.Product;
|
||||
import de.schildbach.pte.dto.Style;
|
||||
import de.schildbach.pte.dto.Style.Shape;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
public class LineView extends TextView {
|
||||
private Collection<Line> lines = null;
|
||||
|
|
|
@ -17,18 +17,6 @@
|
|||
|
||||
package de.schildbach.oeffi.stations;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import de.schildbach.oeffi.Constants;
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.oeffi.util.Objects;
|
||||
import de.schildbach.pte.dto.Departure;
|
||||
import de.schildbach.pte.dto.Line;
|
||||
import de.schildbach.pte.dto.Position;
|
||||
import de.schildbach.pte.dto.Style;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Typeface;
|
||||
|
@ -40,6 +28,17 @@ import android.text.style.StyleSpan;
|
|||
import android.view.View;
|
||||
import android.widget.RemoteViews;
|
||||
import android.widget.RemoteViewsService;
|
||||
import de.schildbach.oeffi.Constants;
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.oeffi.util.Objects;
|
||||
import de.schildbach.pte.dto.Departure;
|
||||
import de.schildbach.pte.dto.Line;
|
||||
import de.schildbach.pte.dto.Position;
|
||||
import de.schildbach.pte.dto.Style;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
public class NearestFavoriteStationWidgetListService extends RemoteViewsService {
|
||||
public static final String INTENT_EXTRA_DEPARTURES = RemoteViewsFactory.class.getName() + ".departures";
|
||||
|
|
|
@ -17,37 +17,6 @@
|
|||
|
||||
package de.schildbach.oeffi.stations;
|
||||
|
||||
import java.net.ConnectException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.TimeoutException;
|
||||
|
||||
import javax.net.ssl.SSLException;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.google.common.base.Throwables;
|
||||
import com.google.common.util.concurrent.SettableFuture;
|
||||
|
||||
import de.schildbach.oeffi.Constants;
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.oeffi.network.NetworkProviderFactory;
|
||||
import de.schildbach.oeffi.util.Formats;
|
||||
import de.schildbach.oeffi.util.Objects;
|
||||
import de.schildbach.pte.NetworkId;
|
||||
import de.schildbach.pte.NetworkProvider;
|
||||
import de.schildbach.pte.dto.Departure;
|
||||
import de.schildbach.pte.dto.Point;
|
||||
import de.schildbach.pte.dto.QueryDeparturesResult;
|
||||
import de.schildbach.pte.dto.StationDepartures;
|
||||
import de.schildbach.pte.exception.BlockedException;
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.PendingIntent;
|
||||
import android.appwidget.AppWidgetManager;
|
||||
|
@ -74,6 +43,33 @@ import android.widget.RemoteViews;
|
|||
import androidx.core.app.JobIntentService;
|
||||
import androidx.core.app.NotificationCompat;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import com.google.common.base.Throwables;
|
||||
import com.google.common.util.concurrent.SettableFuture;
|
||||
import de.schildbach.oeffi.Constants;
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.oeffi.network.NetworkProviderFactory;
|
||||
import de.schildbach.oeffi.util.Formats;
|
||||
import de.schildbach.oeffi.util.Objects;
|
||||
import de.schildbach.pte.NetworkId;
|
||||
import de.schildbach.pte.NetworkProvider;
|
||||
import de.schildbach.pte.dto.Departure;
|
||||
import de.schildbach.pte.dto.Point;
|
||||
import de.schildbach.pte.dto.QueryDeparturesResult;
|
||||
import de.schildbach.pte.dto.StationDepartures;
|
||||
import de.schildbach.pte.exception.BlockedException;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import javax.net.ssl.SSLException;
|
||||
import java.net.ConnectException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.TimeoutException;
|
||||
|
||||
public class NearestFavoriteStationWidgetService extends JobIntentService {
|
||||
private AppWidgetManager appWidgetManager;
|
||||
|
|
|
@ -17,20 +17,8 @@
|
|||
|
||||
package de.schildbach.oeffi.stations;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.SocketException;
|
||||
import java.net.SocketTimeoutException;
|
||||
import java.net.UnknownHostException;
|
||||
import java.util.Date;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import javax.net.ssl.SSLException;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import android.os.Handler;
|
||||
import com.google.common.util.concurrent.Uninterruptibles;
|
||||
|
||||
import de.schildbach.oeffi.Constants;
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.pte.NetworkProvider;
|
||||
|
@ -40,9 +28,17 @@ import de.schildbach.pte.exception.InternalErrorException;
|
|||
import de.schildbach.pte.exception.NotFoundException;
|
||||
import de.schildbach.pte.exception.ParserException;
|
||||
import de.schildbach.pte.exception.UnexpectedRedirectException;
|
||||
|
||||
import android.os.Handler;
|
||||
import okhttp3.HttpUrl;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import javax.net.ssl.SSLException;
|
||||
import java.io.IOException;
|
||||
import java.net.SocketException;
|
||||
import java.net.SocketTimeoutException;
|
||||
import java.net.UnknownHostException;
|
||||
import java.util.Date;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
public abstract class QueryDeparturesRunnable implements Runnable {
|
||||
private final Handler handler;
|
||||
|
|
|
@ -17,12 +17,7 @@
|
|||
|
||||
package de.schildbach.oeffi.stations;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.EnumSet;
|
||||
import java.util.List;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import de.schildbach.pte.NetworkId;
|
||||
import de.schildbach.pte.dto.Departure;
|
||||
import de.schildbach.pte.dto.LineDestination;
|
||||
|
@ -30,7 +25,11 @@ import de.schildbach.pte.dto.Location;
|
|||
import de.schildbach.pte.dto.Product;
|
||||
import de.schildbach.pte.dto.QueryDeparturesResult;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import java.util.Date;
|
||||
import java.util.EnumSet;
|
||||
import java.util.List;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
public class Station {
|
||||
public final NetworkId network;
|
||||
|
|
|
@ -17,26 +17,10 @@
|
|||
|
||||
package de.schildbach.oeffi.stations;
|
||||
|
||||
import java.net.URLEncoder;
|
||||
import java.util.Locale;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.oeffi.directions.DirectionsActivity;
|
||||
import de.schildbach.oeffi.directions.DirectionsShortcutActivity;
|
||||
import de.schildbach.oeffi.plans.PlanActivity;
|
||||
import de.schildbach.oeffi.plans.PlanContentProvider;
|
||||
import de.schildbach.oeffi.util.DialogBuilder;
|
||||
import de.schildbach.pte.NetworkId;
|
||||
import de.schildbach.pte.dto.Location;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.content.ComponentName;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.database.Cursor;
|
||||
|
@ -51,6 +35,19 @@ import android.widget.PopupMenu;
|
|||
import androidx.core.content.pm.ShortcutInfoCompat;
|
||||
import androidx.core.content.pm.ShortcutManagerCompat;
|
||||
import androidx.core.graphics.drawable.IconCompat;
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.oeffi.directions.DirectionsActivity;
|
||||
import de.schildbach.oeffi.directions.DirectionsShortcutActivity;
|
||||
import de.schildbach.oeffi.plans.PlanActivity;
|
||||
import de.schildbach.oeffi.plans.PlanContentProvider;
|
||||
import de.schildbach.oeffi.util.DialogBuilder;
|
||||
import de.schildbach.pte.NetworkId;
|
||||
import de.schildbach.pte.dto.Location;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.net.URLEncoder;
|
||||
import java.util.Locale;
|
||||
|
||||
public class StationContextMenu extends PopupMenu {
|
||||
private static final Logger log = LoggerFactory.getLogger(StationContextMenu.class);
|
||||
|
|
|
@ -17,47 +17,6 @@
|
|||
|
||||
package de.schildbach.oeffi.stations;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkArgument;
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import org.osmdroid.util.GeoPoint;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.google.common.base.Joiner;
|
||||
|
||||
import de.schildbach.oeffi.Constants;
|
||||
import de.schildbach.oeffi.MyActionBar;
|
||||
import de.schildbach.oeffi.OeffiActivity;
|
||||
import de.schildbach.oeffi.OeffiMapView;
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.oeffi.StationsAware;
|
||||
import de.schildbach.oeffi.network.NetworkProviderFactory;
|
||||
import de.schildbach.oeffi.util.DividerItemDecoration;
|
||||
import de.schildbach.oeffi.util.Formats;
|
||||
import de.schildbach.oeffi.util.ToggleImageButton;
|
||||
import de.schildbach.oeffi.util.ToggleImageButton.OnCheckedChangeListener;
|
||||
import de.schildbach.pte.NetworkId;
|
||||
import de.schildbach.pte.NetworkProvider;
|
||||
import de.schildbach.pte.dto.Departure;
|
||||
import de.schildbach.pte.dto.Line;
|
||||
import de.schildbach.pte.dto.LineDestination;
|
||||
import de.schildbach.pte.dto.Location;
|
||||
import de.schildbach.pte.dto.LocationType;
|
||||
import de.schildbach.pte.dto.QueryDeparturesResult;
|
||||
import de.schildbach.pte.dto.StationDepartures;
|
||||
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
|
@ -74,7 +33,6 @@ import android.text.format.DateFormat;
|
|||
import android.text.format.DateUtils;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.LinearLayout;
|
||||
|
@ -83,6 +41,43 @@ import android.widget.ViewAnimator;
|
|||
import androidx.annotation.Nullable;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import com.google.common.base.Joiner;
|
||||
import de.schildbach.oeffi.Constants;
|
||||
import de.schildbach.oeffi.MyActionBar;
|
||||
import de.schildbach.oeffi.OeffiActivity;
|
||||
import de.schildbach.oeffi.OeffiMapView;
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.oeffi.StationsAware;
|
||||
import de.schildbach.oeffi.network.NetworkProviderFactory;
|
||||
import de.schildbach.oeffi.util.DividerItemDecoration;
|
||||
import de.schildbach.oeffi.util.Formats;
|
||||
import de.schildbach.oeffi.util.ToggleImageButton;
|
||||
import de.schildbach.pte.NetworkId;
|
||||
import de.schildbach.pte.NetworkProvider;
|
||||
import de.schildbach.pte.dto.Departure;
|
||||
import de.schildbach.pte.dto.Line;
|
||||
import de.schildbach.pte.dto.LineDestination;
|
||||
import de.schildbach.pte.dto.Location;
|
||||
import de.schildbach.pte.dto.LocationType;
|
||||
import de.schildbach.pte.dto.QueryDeparturesResult;
|
||||
import de.schildbach.pte.dto.StationDepartures;
|
||||
import org.osmdroid.util.GeoPoint;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkArgument;
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
public class StationDetailsActivity extends OeffiActivity implements StationsAware {
|
||||
private static final String INTENT_EXTRA_NETWORK = StationDetailsActivity.class.getName() + ".network";
|
||||
|
|
|
@ -17,32 +17,51 @@
|
|||
|
||||
package de.schildbach.oeffi.stations;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.Date;
|
||||
import java.util.EnumSet;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.osmdroid.util.BoundingBox;
|
||||
import org.osmdroid.util.GeoPoint;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.Dialog;
|
||||
import android.app.SearchManager;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.res.Configuration;
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Typeface;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.hardware.Sensor;
|
||||
import android.hardware.SensorEvent;
|
||||
import android.hardware.SensorEventListener;
|
||||
import android.hardware.SensorManager;
|
||||
import android.location.Criteria;
|
||||
import android.location.LocationListener;
|
||||
import android.location.LocationManager;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.NetworkInfo;
|
||||
import android.net.Uri;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.HandlerThread;
|
||||
import android.os.Process;
|
||||
import android.provider.Settings;
|
||||
import android.text.format.DateUtils;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.TextView;
|
||||
import android.widget.ViewAnimator;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.core.app.ActivityCompat;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.recyclerview.widget.ItemTouchHelper;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import com.google.common.collect.ComparisonChain;
|
||||
import com.google.common.collect.Ordering;
|
||||
import com.google.common.primitives.Ints;
|
||||
|
||||
import de.schildbach.oeffi.Constants;
|
||||
import de.schildbach.oeffi.LocationAware;
|
||||
import de.schildbach.oeffi.MyActionBar;
|
||||
|
@ -75,53 +94,26 @@ import de.schildbach.pte.dto.Product;
|
|||
import de.schildbach.pte.dto.QueryDeparturesResult;
|
||||
import de.schildbach.pte.dto.StationDepartures;
|
||||
import de.schildbach.pte.dto.SuggestLocationsResult;
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.Dialog;
|
||||
import android.app.SearchManager;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.res.Configuration;
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Typeface;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.hardware.Sensor;
|
||||
import android.hardware.SensorEvent;
|
||||
import android.hardware.SensorEventListener;
|
||||
import android.hardware.SensorManager;
|
||||
import android.location.Criteria;
|
||||
import android.location.LocationListener;
|
||||
import android.location.LocationManager;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.NetworkInfo;
|
||||
import android.net.Uri;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.HandlerThread;
|
||||
import android.os.Process;
|
||||
import android.provider.Settings;
|
||||
import android.text.format.DateUtils;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.PopupMenu;
|
||||
import android.widget.TextView;
|
||||
import android.widget.ViewAnimator;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.core.app.ActivityCompat;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.recyclerview.widget.ItemTouchHelper;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import okhttp3.HttpUrl;
|
||||
import org.osmdroid.util.GeoPoint;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.EnumSet;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
public class StationsActivity extends OeffiMainActivity implements StationsAware, LocationAware,
|
||||
ActivityCompat.OnRequestPermissionsResultCallback, StationContextMenuItemListener {
|
||||
|
|
|
@ -17,12 +17,6 @@
|
|||
|
||||
package de.schildbach.oeffi.stations;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.pte.dto.Product;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
|
@ -31,6 +25,11 @@ import android.view.ViewGroup;
|
|||
import android.widget.CheckBox;
|
||||
import android.widget.CompoundButton;
|
||||
import android.widget.PopupWindow;
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.pte.dto.Product;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
public class StationsFilterPopup extends PopupWindow
|
||||
implements CompoundButton.OnCheckedChangeListener, OnLongClickListener {
|
||||
|
|
|
@ -17,6 +17,13 @@
|
|||
|
||||
package de.schildbach.oeffi.stations.list;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.view.View;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.PopupMenu;
|
||||
import android.widget.TextView;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.oeffi.network.NetworkResources;
|
||||
import de.schildbach.oeffi.stations.FavoriteStationsProvider;
|
||||
|
@ -24,16 +31,6 @@ import de.schildbach.oeffi.stations.StationContextMenu;
|
|||
import de.schildbach.pte.NetworkId;
|
||||
import de.schildbach.pte.dto.Location;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.PopupMenu;
|
||||
import android.widget.PopupMenu.OnMenuItemClickListener;
|
||||
import android.widget.TextView;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
public class FavoriteStationViewHolder extends RecyclerView.ViewHolder {
|
||||
private final Context context;
|
||||
private final StationClickListener clickListener;
|
||||
|
|
|
@ -17,11 +17,6 @@
|
|||
|
||||
package de.schildbach.oeffi.stations.list;
|
||||
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.oeffi.stations.FavoriteStationsProvider;
|
||||
import de.schildbach.pte.NetworkId;
|
||||
import de.schildbach.pte.dto.Location;
|
||||
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.database.Cursor;
|
||||
|
@ -31,6 +26,10 @@ import android.view.LayoutInflater;
|
|||
import android.view.ViewGroup;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.oeffi.stations.FavoriteStationsProvider;
|
||||
import de.schildbach.pte.NetworkId;
|
||||
import de.schildbach.pte.dto.Location;
|
||||
|
||||
public class FavoriteStationsAdapter extends RecyclerView.Adapter<FavoriteStationViewHolder> {
|
||||
private final Context context;
|
||||
|
|
|
@ -17,13 +17,12 @@
|
|||
|
||||
package de.schildbach.oeffi.stations.list;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import de.schildbach.pte.NetworkId;
|
||||
import de.schildbach.pte.dto.Departure;
|
||||
import de.schildbach.pte.dto.Location;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import java.util.List;
|
||||
|
||||
public interface StationContextMenuItemListener {
|
||||
boolean onStationContextMenuItemClick(int adapterPosition, NetworkId network, Location station,
|
||||
|
|
|
@ -17,16 +17,22 @@
|
|||
|
||||
package de.schildbach.oeffi.stations.list;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.TreeSet;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.Typeface;
|
||||
import android.text.format.DateUtils;
|
||||
import android.view.Display;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.PopupMenu;
|
||||
import android.widget.TextView;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import com.google.common.base.Joiner;
|
||||
|
||||
import de.schildbach.oeffi.Constants;
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.oeffi.stations.CompassNeedleView;
|
||||
|
@ -44,23 +50,13 @@ import de.schildbach.pte.dto.Location;
|
|||
import de.schildbach.pte.dto.Product;
|
||||
import de.schildbach.pte.dto.QueryDeparturesResult;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.Typeface;
|
||||
import android.text.format.DateUtils;
|
||||
import android.view.Display;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.PopupMenu;
|
||||
import android.widget.PopupMenu.OnMenuItemClickListener;
|
||||
import android.widget.TextView;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import java.util.Date;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.TreeSet;
|
||||
|
||||
public class StationViewHolder extends RecyclerView.ViewHolder {
|
||||
public final View favoriteView;
|
||||
|
|
|
@ -17,22 +17,20 @@
|
|||
|
||||
package de.schildbach.oeffi.stations.list;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkArgument;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.ViewGroup;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.oeffi.StationsAware;
|
||||
import de.schildbach.oeffi.stations.CompassNeedleView;
|
||||
import de.schildbach.oeffi.stations.Station;
|
||||
import de.schildbach.pte.dto.Product;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkArgument;
|
||||
|
||||
public class StationsAdapter extends RecyclerView.Adapter<StationViewHolder> implements CompassNeedleView.Callback {
|
||||
private final Context context;
|
||||
|
|
|
@ -17,12 +17,8 @@
|
|||
|
||||
package de.schildbach.oeffi.util;
|
||||
|
||||
import de.schildbach.oeffi.Constants;
|
||||
import de.schildbach.oeffi.R;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.os.Build;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
|
@ -30,6 +26,8 @@ import android.webkit.WebChromeClient;
|
|||
import android.webkit.WebSettings;
|
||||
import android.webkit.WebView;
|
||||
import androidx.annotation.Nullable;
|
||||
import de.schildbach.oeffi.Constants;
|
||||
import de.schildbach.oeffi.R;
|
||||
import okhttp3.HttpUrl;
|
||||
|
||||
public class ChangelogDialogBuilder extends AlertDialog.Builder {
|
||||
|
|
|
@ -17,14 +17,13 @@
|
|||
|
||||
package de.schildbach.oeffi.util;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.NetworkInfo;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
public abstract class ConnectivityBroadcastReceiver extends BroadcastReceiver {
|
||||
|
||||
|
|
|
@ -17,11 +17,10 @@
|
|||
|
||||
package de.schildbach.oeffi.util;
|
||||
|
||||
import de.schildbach.oeffi.Constants;
|
||||
import de.schildbach.oeffi.R;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.content.Context;
|
||||
import de.schildbach.oeffi.Constants;
|
||||
import de.schildbach.oeffi.R;
|
||||
|
||||
public class DialogBuilder extends AlertDialog.Builder {
|
||||
public static DialogBuilder get(final Context context) {
|
||||
|
|
|
@ -17,7 +17,21 @@
|
|||
|
||||
package de.schildbach.oeffi.util;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkState;
|
||||
import androidx.annotation.Nullable;
|
||||
import com.google.common.util.concurrent.ListenableFuture;
|
||||
import com.google.common.util.concurrent.SettableFuture;
|
||||
import com.google.common.util.concurrent.Striped;
|
||||
import de.schildbach.oeffi.util.bzip2.BZip2CompressorInputStream;
|
||||
import okhttp3.Call;
|
||||
import okhttp3.Callback;
|
||||
import okhttp3.Headers;
|
||||
import okhttp3.HttpUrl;
|
||||
import okhttp3.OkHttpClient;
|
||||
import okhttp3.Request;
|
||||
import okhttp3.Response;
|
||||
import okhttp3.ResponseBody;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
|
@ -32,24 +46,7 @@ import java.util.Date;
|
|||
import java.util.Random;
|
||||
import java.util.concurrent.Semaphore;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.google.common.util.concurrent.ListenableFuture;
|
||||
import com.google.common.util.concurrent.SettableFuture;
|
||||
import com.google.common.util.concurrent.Striped;
|
||||
|
||||
import de.schildbach.oeffi.util.bzip2.BZip2CompressorInputStream;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import okhttp3.Call;
|
||||
import okhttp3.Callback;
|
||||
import okhttp3.Headers;
|
||||
import okhttp3.HttpUrl;
|
||||
import okhttp3.OkHttpClient;
|
||||
import okhttp3.Request;
|
||||
import okhttp3.Response;
|
||||
import okhttp3.ResponseBody;
|
||||
import static com.google.common.base.Preconditions.checkState;
|
||||
|
||||
public class Downloader {
|
||||
private final File cacheDir;
|
||||
|
|
|
@ -17,36 +17,8 @@
|
|||
|
||||
package de.schildbach.oeffi.util;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.FileReader;
|
||||
import java.io.IOException;
|
||||
import java.io.PrintWriter;
|
||||
import java.io.StringWriter;
|
||||
import java.io.Writer;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.Formatter;
|
||||
import java.util.Locale;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.google.common.base.Joiner;
|
||||
import com.google.common.base.Strings;
|
||||
|
||||
import de.schildbach.oeffi.Constants;
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.pte.NetworkId;
|
||||
|
||||
import android.app.ActivityManager;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.DialogInterface.OnCancelListener;
|
||||
import android.content.DialogInterface.OnClickListener;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
|
@ -61,12 +33,34 @@ import android.os.Looper;
|
|||
import android.os.StatFs;
|
||||
import androidx.core.app.ActivityManagerCompat;
|
||||
import androidx.core.content.FileProvider;
|
||||
import com.google.common.base.Joiner;
|
||||
import com.google.common.base.Strings;
|
||||
import de.schildbach.oeffi.Constants;
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.pte.NetworkId;
|
||||
import okhttp3.Call;
|
||||
import okhttp3.Callback;
|
||||
import okhttp3.HttpUrl;
|
||||
import okhttp3.OkHttpClient;
|
||||
import okhttp3.Request;
|
||||
import okhttp3.Response;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.FileReader;
|
||||
import java.io.IOException;
|
||||
import java.io.PrintWriter;
|
||||
import java.io.StringWriter;
|
||||
import java.io.Writer;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.Formatter;
|
||||
import java.util.Locale;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
public class ErrorReporter implements Thread.UncaughtExceptionHandler {
|
||||
private static final String STACKTRACE_FILENAME = ".stacktrace";
|
||||
|
|
|
@ -17,15 +17,14 @@
|
|||
|
||||
package de.schildbach.oeffi.util;
|
||||
|
||||
import java.util.Calendar;
|
||||
import java.util.GregorianCalendar;
|
||||
|
||||
import de.schildbach.oeffi.Constants;
|
||||
import de.schildbach.oeffi.R;
|
||||
|
||||
import android.content.Context;
|
||||
import android.text.format.DateFormat;
|
||||
import android.text.format.DateUtils;
|
||||
import de.schildbach.oeffi.Constants;
|
||||
import de.schildbach.oeffi.R;
|
||||
|
||||
import java.util.Calendar;
|
||||
import java.util.GregorianCalendar;
|
||||
|
||||
public final class Formats {
|
||||
public static String formatDate(final Context context, final long time) {
|
||||
|
|
|
@ -17,28 +17,25 @@
|
|||
|
||||
package de.schildbach.oeffi.util;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkArgument;
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.google.common.base.Joiner;
|
||||
import com.google.common.base.Strings;
|
||||
|
||||
import de.schildbach.pte.dto.Location;
|
||||
import de.schildbach.pte.dto.LocationType;
|
||||
import de.schildbach.pte.dto.Point;
|
||||
|
||||
import android.content.Context;
|
||||
import android.location.Address;
|
||||
import android.location.Geocoder;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import com.google.common.base.Joiner;
|
||||
import com.google.common.base.Strings;
|
||||
import de.schildbach.pte.dto.Location;
|
||||
import de.schildbach.pte.dto.LocationType;
|
||||
import de.schildbach.pte.dto.Point;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkArgument;
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
public class GeocoderThread extends Thread {
|
||||
public interface Callback {
|
||||
|
|
|
@ -17,17 +17,15 @@
|
|||
|
||||
package de.schildbach.oeffi.util;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import de.schildbach.pte.dto.Point;
|
||||
|
||||
import android.location.Criteria;
|
||||
import android.location.Location;
|
||||
import android.location.LocationListener;
|
||||
import android.location.LocationManager;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import de.schildbach.pte.dto.Point;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
public final class LocationHelper {
|
||||
public interface Callback {
|
||||
|
|
|
@ -17,16 +17,16 @@
|
|||
|
||||
package de.schildbach.oeffi.util;
|
||||
|
||||
import de.schildbach.pte.dto.Location;
|
||||
import de.schildbach.pte.dto.LocationType;
|
||||
import de.schildbach.pte.dto.Point;
|
||||
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import java.net.URLDecoder;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import de.schildbach.pte.dto.Location;
|
||||
import de.schildbach.pte.dto.LocationType;
|
||||
import de.schildbach.pte.dto.Point;
|
||||
|
||||
public class LocationUriParser {
|
||||
public static final Location[] parseLocations(final String encodedUriString) {
|
||||
URI uri = null;
|
||||
|
|
|
@ -17,16 +17,16 @@
|
|||
|
||||
package de.schildbach.oeffi.util;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.drawable.AnimationDrawable;
|
||||
import android.graphics.drawable.Drawable;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
public class MultiDrawable extends AnimationDrawable {
|
||||
private final Resources res;
|
||||
private final Map<Integer, Integer> drawableIndexes = new HashMap<>();
|
||||
|
|
|
@ -17,12 +17,6 @@
|
|||
|
||||
package de.schildbach.oeffi.util;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
import de.schildbach.oeffi.R;
|
||||
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
|
@ -42,6 +36,11 @@ import android.view.ViewGroup;
|
|||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import de.schildbach.oeffi.R;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
public class NavigationMenuAdapter extends RecyclerView.Adapter<NavigationMenuAdapter.ViewHolder> {
|
||||
private final Resources res;
|
||||
|
|
|
@ -17,11 +17,11 @@
|
|||
|
||||
package de.schildbach.oeffi.util;
|
||||
|
||||
import android.widget.PopupMenu;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
import android.widget.PopupMenu;
|
||||
|
||||
public class PopupHelper {
|
||||
public static void setForceShowIcon(final PopupMenu popupMenu) {
|
||||
try {
|
||||
|
|
|
@ -17,11 +17,10 @@
|
|||
|
||||
package de.schildbach.oeffi.util;
|
||||
|
||||
import de.schildbach.oeffi.R;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.PorterDuff;
|
||||
import android.widget.TextView;
|
||||
import de.schildbach.oeffi.R;
|
||||
|
||||
public class Toast {
|
||||
private final Context context;
|
||||
|
|
|
@ -17,11 +17,11 @@
|
|||
|
||||
package de.schildbach.oeffi.util;
|
||||
|
||||
import java.util.concurrent.Executor;
|
||||
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
|
||||
import java.util.concurrent.Executor;
|
||||
|
||||
public class UiThreadExecutor implements Executor {
|
||||
private final Handler handler = new Handler(Looper.getMainLooper());
|
||||
|
||||
|
|
|
@ -17,8 +17,6 @@
|
|||
|
||||
package de.schildbach.oeffi.util;
|
||||
|
||||
import de.schildbach.oeffi.R;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.LayoutInflater;
|
||||
|
@ -27,6 +25,7 @@ import android.view.View;
|
|||
import android.view.animation.AlphaAnimation;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.ZoomButton;
|
||||
import de.schildbach.oeffi.R;
|
||||
|
||||
public class ZoomControls extends LinearLayout {
|
||||
private final ZoomButton mZoomIn;
|
||||
|
|
|
@ -17,11 +17,10 @@
|
|||
|
||||
package de.schildbach.oeffi.util;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
import de.schildbach.pte.dto.Location;
|
||||
import de.schildbach.pte.dto.LocationType;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
public class LocationUriParserTest {
|
||||
@Test
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue