Merge remote-tracking branch 'origin/master'
53
OsmAnd/assets/article_style.css
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
body {
|
||||||
|
display: block;
|
||||||
|
margin: 5%;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-size: 2em;
|
||||||
|
letter-spacing: 0.05em;
|
||||||
|
color: #727272;
|
||||||
|
font-family: serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
font-size: 2em;
|
||||||
|
font-family: sans-serif;
|
||||||
|
padding-top: 5%;
|
||||||
|
}
|
||||||
|
|
||||||
|
p, li {
|
||||||
|
font-family: sans-serif;
|
||||||
|
font-size: 1em;
|
||||||
|
line-height: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: #237bff;
|
||||||
|
text-decoration-color: #a3c8ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.external-free {
|
||||||
|
background-color: #f44336;
|
||||||
|
color: white;
|
||||||
|
padding: 14px 25px;
|
||||||
|
text-align: center;
|
||||||
|
text-decoration: none;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.thumb-tright, .thumbinner {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.thumbcaption {
|
||||||
|
width: 100%;
|
||||||
|
font-size: 1em;
|
||||||
|
color: #727272;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
BIN
OsmAnd/res/drawable-hdpi/ic_action_explore_part1.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
OsmAnd/res/drawable-hdpi/ic_action_explore_part2.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
OsmAnd/res/drawable-hdpi/ic_action_placeholder_city.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
BIN
OsmAnd/res/drawable-mdpi/ic_action_explore_part1.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
OsmAnd/res/drawable-mdpi/ic_action_explore_part2.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
OsmAnd/res/drawable-mdpi/ic_action_placeholder_city.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.3 KiB |
BIN
OsmAnd/res/drawable-xhdpi/ic_action_explore_part1.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
OsmAnd/res/drawable-xhdpi/ic_action_explore_part2.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
OsmAnd/res/drawable-xhdpi/ic_action_placeholder_city.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
BIN
OsmAnd/res/drawable-xxhdpi/ic_action_explore_part1.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
OsmAnd/res/drawable-xxhdpi/ic_action_explore_part2.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
OsmAnd/res/drawable-xxhdpi/ic_action_placeholder_city.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 2 KiB After Width: | Height: | Size: 2.1 KiB |
|
@ -721,6 +721,7 @@ public class OsmandSettings {
|
||||||
|
|
||||||
public final CommonPreference<Boolean> COORDS_INPUT_USE_RIGHT_SIDE = new BooleanPreference("coords_input_use_right_side", true).makeGlobal();
|
public final CommonPreference<Boolean> COORDS_INPUT_USE_RIGHT_SIDE = new BooleanPreference("coords_input_use_right_side", true).makeGlobal();
|
||||||
public final CommonPreference<Integer> COORDS_INPUT_FORMAT = new IntPreference("coords_input_format", CoordinateInputFormats.DD_MM_MMM);
|
public final CommonPreference<Integer> COORDS_INPUT_FORMAT = new IntPreference("coords_input_format", CoordinateInputFormats.DD_MM_MMM);
|
||||||
|
public final CommonPreference<Boolean> COORDS_INPUT_USE_OSMAND_KEYBOARD = new BooleanPreference("coords_input_use_osmand_keyboard", true).makeGlobal();
|
||||||
|
|
||||||
public final CommonPreference<Boolean> USE_MAPILLARY_FILTER = new BooleanPreference("use_mapillary_filters", false).makeGlobal();
|
public final CommonPreference<Boolean> USE_MAPILLARY_FILTER = new BooleanPreference("use_mapillary_filters", false).makeGlobal();
|
||||||
public final CommonPreference<String> MAPILLARY_FILTER_USER_KEY = new StringPreference("mapillary_filter_user_key", "").makeGlobal();
|
public final CommonPreference<String> MAPILLARY_FILTER_USER_KEY = new StringPreference("mapillary_filter_user_key", "").makeGlobal();
|
||||||
|
|
|
@ -20,39 +20,23 @@ import net.osmand.plus.base.bottomsheetmenu.simpleitems.TitleItem;
|
||||||
import net.osmand.plus.helpers.AndroidUiHelper;
|
import net.osmand.plus.helpers.AndroidUiHelper;
|
||||||
import net.osmand.plus.mapmarkers.CoordinateInputFormats.CoordinateInputFormatDef;
|
import net.osmand.plus.mapmarkers.CoordinateInputFormats.CoordinateInputFormatDef;
|
||||||
|
|
||||||
import static net.osmand.plus.mapmarkers.CoordinateInputDialogFragment.USE_OSMAND_KEYBOARD;
|
|
||||||
|
|
||||||
public class CoordinateInputBottomSheetDialogFragment extends MenuBottomSheetDialogFragment {
|
public class CoordinateInputBottomSheetDialogFragment extends MenuBottomSheetDialogFragment {
|
||||||
|
|
||||||
public final static String TAG = "CoordinateInputBottomSheetDialogFragment";
|
public final static String TAG = "CoordinateInputBottomSheetDialogFragment";
|
||||||
|
|
||||||
private CoordinateInputFormatChangeListener listener;
|
private CoordinateInputFormatChangeListener listener;
|
||||||
|
|
||||||
private boolean useOsmandKeyboard;
|
|
||||||
|
|
||||||
public void setListener(CoordinateInputFormatChangeListener listener) {
|
public void setListener(CoordinateInputFormatChangeListener listener) {
|
||||||
this.listener = listener;
|
this.listener = listener;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
if (savedInstanceState == null) {
|
|
||||||
Bundle args = getArguments();
|
|
||||||
if (args != null) {
|
|
||||||
useOsmandKeyboard = args.getBoolean(USE_OSMAND_KEYBOARD);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
useOsmandKeyboard = savedInstanceState.getBoolean(USE_OSMAND_KEYBOARD);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void createMenuItems(Bundle savedInstanceState) {
|
public void createMenuItems(Bundle savedInstanceState) {
|
||||||
final Context context = getContext();
|
final Context context = getContext();
|
||||||
final OsmandSettings settings = getMyApplication().getSettings();
|
final OsmandSettings settings = getMyApplication().getSettings();
|
||||||
|
|
||||||
items.add(new TitleItem(getString(R.string.shared_string_options)));
|
items.add(new TitleItem(getString(R.string.shared_string_options)));
|
||||||
|
boolean useOsmandKeyboard = settings.COORDS_INPUT_USE_OSMAND_KEYBOARD.get();
|
||||||
|
|
||||||
BaseBottomSheetItem useSystemKeyboardItem = new BottomSheetItemWithCompoundButton.Builder()
|
BaseBottomSheetItem useSystemKeyboardItem = new BottomSheetItemWithCompoundButton.Builder()
|
||||||
.setChecked(!useOsmandKeyboard)
|
.setChecked(!useOsmandKeyboard)
|
||||||
|
@ -63,7 +47,7 @@ public class CoordinateInputBottomSheetDialogFragment extends MenuBottomSheetDia
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
if (listener != null) {
|
if (listener != null) {
|
||||||
listener.onKeyboardChanged(!useOsmandKeyboard);
|
listener.onKeyboardChanged();
|
||||||
}
|
}
|
||||||
dismiss();
|
dismiss();
|
||||||
}
|
}
|
||||||
|
@ -134,12 +118,6 @@ public class CoordinateInputBottomSheetDialogFragment extends MenuBottomSheetDia
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onSaveInstanceState(Bundle outState) {
|
|
||||||
outState.putBoolean(USE_OSMAND_KEYBOARD, useOsmandKeyboard);
|
|
||||||
super.onSaveInstanceState(outState);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected int getDismissButtonTextId() {
|
protected int getDismissButtonTextId() {
|
||||||
return R.string.shared_string_close;
|
return R.string.shared_string_close;
|
||||||
|
@ -152,7 +130,7 @@ public class CoordinateInputBottomSheetDialogFragment extends MenuBottomSheetDia
|
||||||
|
|
||||||
interface CoordinateInputFormatChangeListener {
|
interface CoordinateInputFormatChangeListener {
|
||||||
|
|
||||||
void onKeyboardChanged(boolean useOsmandKeyboard);
|
void onKeyboardChanged();
|
||||||
|
|
||||||
void onHandChanged();
|
void onHandChanged();
|
||||||
|
|
||||||
|
|
|
@ -54,6 +54,7 @@ import net.osmand.plus.MapMarkersHelper.MapMarker;
|
||||||
import net.osmand.plus.OsmAndLocationProvider.OsmAndCompassListener;
|
import net.osmand.plus.OsmAndLocationProvider.OsmAndCompassListener;
|
||||||
import net.osmand.plus.OsmAndLocationProvider.OsmAndLocationListener;
|
import net.osmand.plus.OsmAndLocationProvider.OsmAndLocationListener;
|
||||||
import net.osmand.plus.OsmandApplication;
|
import net.osmand.plus.OsmandApplication;
|
||||||
|
import net.osmand.plus.OsmandSettings;
|
||||||
import net.osmand.plus.R;
|
import net.osmand.plus.R;
|
||||||
import net.osmand.plus.activities.MapActivity;
|
import net.osmand.plus.activities.MapActivity;
|
||||||
import net.osmand.plus.base.MapViewTrackingUtilities;
|
import net.osmand.plus.base.MapViewTrackingUtilities;
|
||||||
|
@ -76,8 +77,6 @@ public class CoordinateInputDialogFragment extends DialogFragment implements Osm
|
||||||
|
|
||||||
public static final String TAG = "CoordinateInputDialogFragment";
|
public static final String TAG = "CoordinateInputDialogFragment";
|
||||||
|
|
||||||
public static final String USE_OSMAND_KEYBOARD = "use_osmand_keyboard";
|
|
||||||
|
|
||||||
private final List<MapMarker> mapMarkers = new ArrayList<>();
|
private final List<MapMarker> mapMarkers = new ArrayList<>();
|
||||||
private OnMapMarkersSavedListener listener;
|
private OnMapMarkersSavedListener listener;
|
||||||
|
|
||||||
|
@ -89,7 +88,6 @@ public class CoordinateInputDialogFragment extends DialogFragment implements Osm
|
||||||
private boolean lightTheme;
|
private boolean lightTheme;
|
||||||
private boolean orientationPortrait;
|
private boolean orientationPortrait;
|
||||||
|
|
||||||
private boolean useOsmandKeyboard = true;
|
|
||||||
private boolean north = true;
|
private boolean north = true;
|
||||||
private boolean east = true;
|
private boolean east = true;
|
||||||
|
|
||||||
|
@ -170,12 +168,8 @@ public class CoordinateInputDialogFragment extends DialogFragment implements Osm
|
||||||
mainView.findViewById(R.id.options_button).setOnClickListener(new View.OnClickListener() {
|
mainView.findViewById(R.id.options_button).setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
Bundle args = new Bundle();
|
|
||||||
args.putBoolean(USE_OSMAND_KEYBOARD, useOsmandKeyboard);
|
|
||||||
|
|
||||||
CoordinateInputBottomSheetDialogFragment fragment = new CoordinateInputBottomSheetDialogFragment();
|
CoordinateInputBottomSheetDialogFragment fragment = new CoordinateInputBottomSheetDialogFragment();
|
||||||
fragment.setUsedOnMap(false);
|
fragment.setUsedOnMap(false);
|
||||||
fragment.setArguments(args);
|
|
||||||
fragment.setListener(createCoordinateInputFormatChangeListener());
|
fragment.setListener(createCoordinateInputFormatChangeListener());
|
||||||
fragment.show(getChildFragmentManager(), CoordinateInputBottomSheetDialogFragment.TAG);
|
fragment.show(getChildFragmentManager(), CoordinateInputBottomSheetDialogFragment.TAG);
|
||||||
}
|
}
|
||||||
|
@ -253,8 +247,8 @@ public class CoordinateInputDialogFragment extends DialogFragment implements Osm
|
||||||
pointNameKeyboardBtn.setOnClickListener(new View.OnClickListener() {
|
pointNameKeyboardBtn.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
if (useOsmandKeyboard) {
|
if (isOsmandKeyboardOn()) {
|
||||||
changeKeyboard(false);
|
changeKeyboard();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -294,7 +288,7 @@ public class CoordinateInputDialogFragment extends DialogFragment implements Osm
|
||||||
View.OnClickListener onClickListener = new View.OnClickListener() {
|
View.OnClickListener onClickListener = new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
if (useOsmandKeyboard) {
|
if (isOsmandKeyboardOn()) {
|
||||||
View focusedView = getDialog().getCurrentFocus();
|
View focusedView = getDialog().getCurrentFocus();
|
||||||
if (focusedView != null && focusedView instanceof EditText) {
|
if (focusedView != null && focusedView instanceof EditText) {
|
||||||
EditText focusedEditText = (EditText) focusedView;
|
EditText focusedEditText = (EditText) focusedView;
|
||||||
|
@ -340,7 +334,7 @@ public class CoordinateInputDialogFragment extends DialogFragment implements Osm
|
||||||
R.id.keyboard_item_next_field,
|
R.id.keyboard_item_next_field,
|
||||||
R.id.keyboard_item_backspace);
|
R.id.keyboard_item_backspace);
|
||||||
|
|
||||||
if (!useOsmandKeyboard && isOsmandKeyboardCurrentlyVisible()) {
|
if (!isOsmandKeyboardOn() && isOsmandKeyboardCurrentlyVisible()) {
|
||||||
changeOsmandKeyboardVisibility(false);
|
changeOsmandKeyboardVisibility(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -349,8 +343,8 @@ public class CoordinateInputDialogFragment extends DialogFragment implements Osm
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
boolean isCurrentlyVisible = isOsmandKeyboardCurrentlyVisible();
|
boolean isCurrentlyVisible = isOsmandKeyboardCurrentlyVisible();
|
||||||
if (!isCurrentlyVisible && !useOsmandKeyboard) {
|
if (!isCurrentlyVisible && !isOsmandKeyboardOn()) {
|
||||||
changeKeyboard(true);
|
changeKeyboard();
|
||||||
} else {
|
} else {
|
||||||
changeOsmandKeyboardVisibility(!isCurrentlyVisible);
|
changeOsmandKeyboardVisibility(!isCurrentlyVisible);
|
||||||
}
|
}
|
||||||
|
@ -589,7 +583,7 @@ public class CoordinateInputDialogFragment extends DialogFragment implements Osm
|
||||||
View.OnTouchListener inputEditTextOnTouchListener = new View.OnTouchListener() {
|
View.OnTouchListener inputEditTextOnTouchListener = new View.OnTouchListener() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onTouch(View view, MotionEvent motionEvent) {
|
public boolean onTouch(View view, MotionEvent motionEvent) {
|
||||||
if (useOsmandKeyboard) {
|
if (isOsmandKeyboardOn()) {
|
||||||
if (!isOsmandKeyboardCurrentlyVisible()) {
|
if (!isOsmandKeyboardCurrentlyVisible()) {
|
||||||
changeOsmandKeyboardVisibility(true);
|
changeOsmandKeyboardVisibility(true);
|
||||||
}
|
}
|
||||||
|
@ -615,7 +609,7 @@ public class CoordinateInputDialogFragment extends DialogFragment implements Osm
|
||||||
View.OnLongClickListener inputEditTextOnLongClickListener = new View.OnLongClickListener() {
|
View.OnLongClickListener inputEditTextOnLongClickListener = new View.OnLongClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onLongClick(final View view) {
|
public boolean onLongClick(final View view) {
|
||||||
if (useOsmandKeyboard) {
|
if (isOsmandKeyboardOn()) {
|
||||||
final EditText inputEditText = (EditText) view;
|
final EditText inputEditText = (EditText) view;
|
||||||
PopupMenu popupMenu = new PopupMenu(getContext(), inputEditText);
|
PopupMenu popupMenu = new PopupMenu(getContext(), inputEditText);
|
||||||
Menu menu = popupMenu.getMenu();
|
Menu menu = popupMenu.getMenu();
|
||||||
|
@ -738,8 +732,18 @@ public class CoordinateInputDialogFragment extends DialogFragment implements Osm
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void changeKeyboard(boolean useOsmandKeyboard) {
|
private boolean isOsmandKeyboardOn() {
|
||||||
this.useOsmandKeyboard = useOsmandKeyboard;
|
return getMyApplication().getSettings().COORDS_INPUT_USE_OSMAND_KEYBOARD.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void changeOsmandKeyboardSetting() {
|
||||||
|
OsmandSettings.OsmandPreference<Boolean> pref = getMyApplication().getSettings().COORDS_INPUT_USE_OSMAND_KEYBOARD;
|
||||||
|
pref.set(!pref.get());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void changeKeyboard() {
|
||||||
|
changeOsmandKeyboardSetting();
|
||||||
|
boolean useOsmandKeyboard = isOsmandKeyboardOn();
|
||||||
changeOsmandKeyboardVisibility(useOsmandKeyboard);
|
changeOsmandKeyboardVisibility(useOsmandKeyboard);
|
||||||
final View focusedView = getDialog().getCurrentFocus();
|
final View focusedView = getDialog().getCurrentFocus();
|
||||||
if (focusedView != null) {
|
if (focusedView != null) {
|
||||||
|
@ -761,8 +765,8 @@ public class CoordinateInputDialogFragment extends DialogFragment implements Osm
|
||||||
return new CoordinateInputFormatChangeListener() {
|
return new CoordinateInputFormatChangeListener() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onKeyboardChanged(boolean useOsmandKeyboard) {
|
public void onKeyboardChanged() {
|
||||||
changeKeyboard(useOsmandKeyboard);
|
changeKeyboard();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -20,10 +20,13 @@ import android.webkit.WebView;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import net.osmand.AndroidUtils;
|
import net.osmand.AndroidUtils;
|
||||||
|
import net.osmand.IndexConstants;
|
||||||
import net.osmand.plus.R;
|
import net.osmand.plus.R;
|
||||||
import net.osmand.plus.wikivoyage.data.WikivoyageArticle;
|
import net.osmand.plus.wikivoyage.data.WikivoyageArticle;
|
||||||
import net.osmand.plus.wikivoyage.data.WikivoyageSearchResult;
|
import net.osmand.plus.wikivoyage.data.WikivoyageSearchResult;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
|
||||||
public class WikivoyageArticleDialogFragment extends WikivoyageBaseDialogFragment {
|
public class WikivoyageArticleDialogFragment extends WikivoyageBaseDialogFragment {
|
||||||
|
|
||||||
public static final String TAG = "WikivoyageArticleDialogFragment";
|
public static final String TAG = "WikivoyageArticleDialogFragment";
|
||||||
|
@ -31,6 +34,14 @@ public class WikivoyageArticleDialogFragment extends WikivoyageBaseDialogFragmen
|
||||||
private static final String SEARCH_RESULT_KEY = "search_result_key";
|
private static final String SEARCH_RESULT_KEY = "search_result_key";
|
||||||
private static final String SELECTED_LANG_KEY = "selected_lang_key";
|
private static final String SELECTED_LANG_KEY = "selected_lang_key";
|
||||||
|
|
||||||
|
private static final String HEADER_INNER = "<html><head>\n" +
|
||||||
|
"<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n" +
|
||||||
|
"<meta http-equiv=\"cleartype\" content=\"on\" />\n" +
|
||||||
|
"<link href=\"article_style.css\" type=\"text/css\" rel=\"stylesheet\"/>\n" +
|
||||||
|
"</head><body>\n" +
|
||||||
|
"<div class=\"main\">\n";
|
||||||
|
private static final String FOOTER_INNER = "</div></body></html>";
|
||||||
|
|
||||||
private WikivoyageSearchResult searchResult;
|
private WikivoyageSearchResult searchResult;
|
||||||
private String selectedLang;
|
private String selectedLang;
|
||||||
|
|
||||||
|
@ -143,9 +154,20 @@ public class WikivoyageArticleDialogFragment extends WikivoyageBaseDialogFragmen
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
contentWebView.loadData(article.getContent(), "text/html", "UTF-8");
|
String content = HEADER_INNER + article.getContent() + FOOTER_INNER;
|
||||||
|
contentWebView.loadDataWithBaseURL(getBaseUrl(), content, "text/html", "UTF-8", null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
private String getBaseUrl() {
|
||||||
|
File wikivoyageDir = getMyApplication().getAppPath(IndexConstants.WIKIVOYAGE_INDEX_DIR);
|
||||||
|
if (new File(wikivoyageDir, "article_style.css").exists()) {
|
||||||
|
return "file://" + wikivoyageDir.getAbsolutePath() + "/";
|
||||||
|
}
|
||||||
|
return "file:///android_asset/";
|
||||||
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
private Drawable getSelectedLangIcon() {
|
private Drawable getSelectedLangIcon() {
|
||||||
Drawable normal = getContentIcon(R.drawable.ic_action_map_language);
|
Drawable normal = getContentIcon(R.drawable.ic_action_map_language);
|
||||||
if (Build.VERSION.SDK_INT >= 21) {
|
if (Build.VERSION.SDK_INT >= 21) {
|
||||||
|
|
|
@ -82,21 +82,21 @@ public class WikivoyageDbHelper {
|
||||||
SQLiteConnection conn = openConnection();
|
SQLiteConnection conn = openConnection();
|
||||||
if (conn != null) {
|
if (conn != null) {
|
||||||
try {
|
try {
|
||||||
String dbQuery = SEARCH_TABLE_SELECT + " WHERE " + SEARCH_COL_SEARCH_TERM + " LIKE ?";
|
String dbQuery = SEARCH_TABLE_SELECT + " WHERE " + SEARCH_COL_CITY_ID +
|
||||||
|
" IN (SELECT " + SEARCH_COL_CITY_ID + " FROM " + SEARCH_TABLE_NAME +
|
||||||
|
" WHERE " + SEARCH_COL_SEARCH_TERM + " LIKE ?)";
|
||||||
SQLiteCursor cursor = conn.rawQuery(dbQuery, new String[]{searchQuery + "%"});
|
SQLiteCursor cursor = conn.rawQuery(dbQuery, new String[]{searchQuery + "%"});
|
||||||
if (cursor.moveToFirst()) {
|
if (cursor.moveToFirst()) {
|
||||||
do {
|
do {
|
||||||
res.add(readSearchResult(cursor));
|
res.add(readSearchResult(cursor));
|
||||||
} while (cursor.moveToNext());
|
} while (cursor.moveToNext());
|
||||||
}
|
}
|
||||||
cursor.close();
|
|
||||||
} finally {
|
} finally {
|
||||||
conn.close();
|
conn.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
List<WikivoyageSearchResult> list = new ArrayList<>(groupSearchResultsByCityId(res));
|
List<WikivoyageSearchResult> list = new ArrayList<>(groupSearchResultsByCityId(res));
|
||||||
|
|
||||||
Collections.sort(list, new Comparator<WikivoyageSearchResult>() {
|
Collections.sort(list, new Comparator<WikivoyageSearchResult>() {
|
||||||
@Override
|
@Override
|
||||||
public int compare(WikivoyageSearchResult o1, WikivoyageSearchResult o2) {
|
public int compare(WikivoyageSearchResult o1, WikivoyageSearchResult o2) {
|
||||||
|
|