Merge branch 'r3.7'

This commit is contained in:
Vitaliy 2020-06-05 14:22:11 +03:00
commit dfc3197d47
5 changed files with 59 additions and 40 deletions

View file

@ -248,6 +248,8 @@ public class ImportHelper {
}
} catch (FileNotFoundException e) {
//
} catch (SecurityException e) {
log.error(e.getMessage(), e);
} finally {
if (is != null) try {
is.close();
@ -314,6 +316,8 @@ public class ImportHelper {
}
} catch (FileNotFoundException e) {
//
} catch (SecurityException e) {
log.error(e.getMessage(), e);
} finally {
if (is != null) try {
is.close();
@ -410,7 +414,7 @@ public class ImportHelper {
}
}
} catch (Exception e) {
e.printStackTrace();
log.error(e.getMessage(), e);
} finally {
try {
if (is != null) {
@ -463,6 +467,8 @@ public class ImportHelper {
}
} catch (FileNotFoundException e) {
//
} catch (SecurityException e) {
log.error(e.getMessage(), e);
} finally {
if (is != null) try {
is.close();
@ -549,7 +555,10 @@ public class ImportHelper {
} catch (IOException e) {
e.printStackTrace();
error = e.getMessage();
} finally {
} catch (SecurityException e) {
e.printStackTrace();
error = e.getMessage();
} finally {
if (in != null) {
try {
in.close();
@ -918,6 +927,8 @@ public class ImportHelper {
log.error(e);
} catch (IOException e) {
log.error(e);
} catch (SecurityException e) {
log.error(e.getMessage(), e);
} finally {
if (is != null) try {
is.close();

View file

@ -35,7 +35,6 @@ import androidx.fragment.app.FragmentManager;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.settings.backend.OsmandSettings;
import net.osmand.plus.R;
import net.osmand.plus.Version;
import net.osmand.plus.activities.LocalIndexHelper;
@ -50,6 +49,7 @@ import net.osmand.plus.inapp.InAppPurchaseHelper.InAppPurchaseListener;
import net.osmand.plus.inapp.InAppPurchaseHelper.InAppPurchaseTaskType;
import net.osmand.plus.inapp.InAppPurchases.InAppSubscription;
import net.osmand.plus.resources.IncrementalChangesManager;
import net.osmand.plus.settings.backend.OsmandSettings;
import net.osmand.util.Algorithms;
import java.io.File;
@ -82,6 +82,8 @@ public class LiveUpdatesFragment extends BaseOsmAndFragment implements InAppPurc
return lhs.getName().compareTo(rhs.getName());
}
};
private OsmandApplication app;
private View subscriptionHeader;
private ExpandableListView listView;
private LocalIndexesAdapter adapter;
@ -109,6 +111,7 @@ public class LiveUpdatesFragment extends BaseOsmAndFragment implements InAppPurc
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
app = getMyApplication();
if (getActivity() instanceof OsmLiveActivity) {
showSettingsOnly = ((OsmLiveActivity) getActivity()).isShowSettingOnly();
}
@ -120,7 +123,6 @@ public class LiveUpdatesFragment extends BaseOsmAndFragment implements InAppPurc
View view = inflater.inflate(R.layout.fragment_live_updates, container, false);
listView = (ExpandableListView) view.findViewById(android.R.id.list);
final OsmandApplication app = getMyApplication();
boolean nightMode = !app.getSettings().isLightContent();
final SwipeRefreshLayout swipeRefresh = view.findViewById(R.id.swipe_refresh);
int swipeColor = ContextCompat.getColor(app, nightMode ? R.color.osmand_orange_dark : R.color.osmand_orange);
@ -141,7 +143,7 @@ public class LiveUpdatesFragment extends BaseOsmAndFragment implements InAppPurc
listView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
if (!processing && InAppPurchaseHelper.isSubscribedToLiveUpdates(getMyApplication())) {
if (!processing && InAppPurchaseHelper.isSubscribedToLiveUpdates(app)) {
final FragmentManager fragmentManager = getChildFragmentManager();
LiveUpdatesSettingsDialogFragment
.createInstance(adapter.getChild(groupPosition, childPosition).getFileName())
@ -155,7 +157,7 @@ public class LiveUpdatesFragment extends BaseOsmAndFragment implements InAppPurc
progressBar = (ProgressBar) view.findViewById(R.id.progress);
if (!Version.isDeveloperVersion(getMyApplication())) {
if (!Version.isDeveloperVersion(app)) {
subscriptionHeader = inflater.inflate(R.layout.live_updates_header, listView, false);
updateSubscriptionHeader();
listView.addHeaderView(subscriptionHeader, "subscriptionHeader", false);
@ -172,22 +174,22 @@ public class LiveUpdatesFragment extends BaseOsmAndFragment implements InAppPurc
if (getActivity() instanceof OsmLiveActivity && subscriptionHeader != null) {
View subscriptionBanner = subscriptionHeader.findViewById(R.id.subscription_banner);
View subscriptionInfo = subscriptionHeader.findViewById(R.id.subscription_info);
if (InAppPurchaseHelper.isSubscribedToLiveUpdates(getMyApplication())) {
if (InAppPurchaseHelper.isSubscribedToLiveUpdates(app)) {
ImageView statusIcon = (ImageView) subscriptionHeader.findViewById(R.id.statusIcon);
TextView statusTextView = (TextView) subscriptionHeader.findViewById(R.id.statusTextView);
TextView regionNameHeaderTextView = (TextView) subscriptionHeader.findViewById(R.id.regionHeaderTextView);
TextView regionNameTextView = (TextView) subscriptionHeader.findViewById(R.id.regionTextView);
statusTextView.setText(getString(R.string.osm_live_active));
statusIcon.setImageDrawable(getMyApplication().getUIUtilities().getThemedIcon(R.drawable.ic_action_done));
statusIcon.setImageDrawable(app.getUIUtilities().getThemedIcon(R.drawable.ic_action_done));
regionNameHeaderTextView.setText(R.string.osm_live_support_region);
String countryName = getSettings().BILLING_USER_COUNTRY.get();
String countryName = app.getSettings().BILLING_USER_COUNTRY.get();
InAppPurchaseHelper purchaseHelper = getInAppPurchaseHelper();
if (purchaseHelper != null) {
InAppSubscription monthlyPurchased = purchaseHelper.getPurchasedMonthlyLiveUpdates();
if (monthlyPurchased != null && monthlyPurchased.isDonationSupported()) {
if (Algorithms.isEmpty(countryName)) {
if (getSettings().BILLING_USER_COUNTRY_DOWNLOAD_NAME.get().equals(OsmandSettings.BILLING_USER_DONATION_NONE_PARAMETER)) {
if (app.getSettings().BILLING_USER_COUNTRY_DOWNLOAD_NAME.get().equals(OsmandSettings.BILLING_USER_DONATION_NONE_PARAMETER)) {
regionNameHeaderTextView.setText(R.string.default_buttons_support);
countryName = getString(R.string.osmand_team);
} else {
@ -277,10 +279,8 @@ public class LiveUpdatesFragment extends BaseOsmAndFragment implements InAppPurc
}
public void notifyLiveUpdatesChanged() {
if (getActivity() != null) {
if (adapter != null && getMyApplication() != null) {
adapter.notifyLiveUpdatesChanged();
}
if (getActivity() != null && adapter != null) {
adapter.notifyLiveUpdatesChanged();
}
}
@ -313,7 +313,7 @@ public class LiveUpdatesFragment extends BaseOsmAndFragment implements InAppPurc
public void add(LocalIndexInfo info) {
OsmandSettings.CommonPreference<Boolean> preference = preferenceLiveUpdatesOn(
info.getFileName(), getSettings());
info.getFileName(), app.getSettings());
if (preference.get()) {
dataShouldUpdate.add(info);
} else {
@ -325,7 +325,7 @@ public class LiveUpdatesFragment extends BaseOsmAndFragment implements InAppPurc
Set<LocalIndexInfo> changedSet = new HashSet<>();
for (LocalIndexInfo localIndexInfo : dataShouldUpdate) {
OsmandSettings.CommonPreference<Boolean> preference =
preferenceLiveUpdatesOn(localIndexInfo.getFileName(), getSettings());
preferenceLiveUpdatesOn(localIndexInfo.getFileName(), app.getSettings());
if (!preference.get()) {
changedSet.add(localIndexInfo);
}
@ -335,7 +335,7 @@ public class LiveUpdatesFragment extends BaseOsmAndFragment implements InAppPurc
changedSet.clear();
for (LocalIndexInfo localIndexInfo : dataShouldNotUpdate) {
OsmandSettings.CommonPreference<Boolean> preference =
preferenceLiveUpdatesOn(localIndexInfo.getFileName(), getSettings());
preferenceLiveUpdatesOn(localIndexInfo.getFileName(), app.getSettings());
if (preference.get()) {
changedSet.add(localIndexInfo);
}
@ -410,11 +410,11 @@ public class LiveUpdatesFragment extends BaseOsmAndFragment implements InAppPurc
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
if (InAppPurchaseHelper.isSubscribedToLiveUpdates(getMyApplication())) {
if (InAppPurchaseHelper.isSubscribedToLiveUpdates(app)) {
switchOnLiveUpdates(settings);
} else {
liveUpdatesSwitch.setChecked(false);
getMyApplication().showToastMessage(getString(R.string.osm_live_ask_for_purchase));
app.showToastMessage(getString(R.string.osm_live_ask_for_purchase));
}
} else {
settings.IS_LIVE_UPDATES_ON.set(false);
@ -447,16 +447,16 @@ public class LiveUpdatesFragment extends BaseOsmAndFragment implements InAppPurc
private void showUpdateDialog() {
if(dataShouldUpdate.size() > 0) {
if (dataShouldUpdate.size() == 1) {
runLiveUpdate(getMyApplication(), dataShouldUpdate.get(0).getFileName(), false);
runLiveUpdate(app, dataShouldUpdate.get(0).getFileName(), false);
} else {
Builder bld = new AlertDialog.Builder(getActivity());
Builder bld = new AlertDialog.Builder(ctx);
bld.setMessage(R.string.update_all_maps_now);
bld.setPositiveButton(R.string.shared_string_yes, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
for (LocalIndexInfo li : dataShouldUpdate) {
runLiveUpdate(getMyApplication(), li.getFileName(), false);
runLiveUpdate(app, li.getFileName(), false);
}
notifyDataSetChanged();
}
@ -468,17 +468,15 @@ public class LiveUpdatesFragment extends BaseOsmAndFragment implements InAppPurc
}
private void enableLiveUpdates(boolean enable) {
AlarmManager alarmMgr = (AlarmManager) getActivity()
.getSystemService(Context.ALARM_SERVICE);
AlarmManager alarmMgr = (AlarmManager) ctx.getSystemService(Context.ALARM_SERVICE);
for (LocalIndexInfo li : dataShouldUpdate) {
String fileName = li.getFileName();
PendingIntent alarmIntent = getPendingIntent(getActivity(),
fileName);
PendingIntent alarmIntent = getPendingIntent(ctx, fileName);
if (enable) {
final OsmandSettings.CommonPreference<Integer> updateFrequencyPreference =
preferenceUpdateFrequency(fileName, getSettings());
preferenceUpdateFrequency(fileName, app.getSettings());
final OsmandSettings.CommonPreference<Integer> timeOfDayPreference =
preferenceTimeOfDayToUpdate(fileName, getSettings());
preferenceTimeOfDayToUpdate(fileName, app.getSettings());
UpdateFrequency updateFrequency = UpdateFrequency.values()[updateFrequencyPreference.get()];
TimeOfDay timeOfDayToUpdate = TimeOfDay.values()[timeOfDayPreference.get()];
setAlarmForPendingIntent(alarmIntent, alarmMgr, updateFrequency, timeOfDayToUpdate);
@ -713,8 +711,8 @@ public class LiveUpdatesFragment extends BaseOsmAndFragment implements InAppPurc
@Override
public void onGetItems() {
if (!InAppPurchaseHelper.isSubscribedToLiveUpdates(getMyApplication())) {
getSettings().IS_LIVE_UPDATES_ON.set(false);
if (!InAppPurchaseHelper.isSubscribedToLiveUpdates(app)) {
app.getSettings().IS_LIVE_UPDATES_ON.set(false);
adapter.enableLiveUpdates(false);
}
disableProgress();

View file

@ -559,7 +559,7 @@ public class EditPoiDialogFragment extends BaseOsmAndDialogFragment {
if (getActivity() instanceof MapActivity) {
((MapActivity) getActivity()).getMapView().refreshMap(true);
}
dismiss();
dismissAllowingStateLoss();
} else {
OsmEditingPlugin plugin = OsmandPlugin.getPlugin(OsmEditingPlugin.class);
mOpenstreetmapUtil = plugin.getPoiModificationLocalUtil();

View file

@ -10,7 +10,7 @@ import net.osmand.plus.settings.bottomsheets.VehicleSizeAssets;
public class SizePreference extends DialogPreference {
private String[] entries;
private Object[] entryValues;
private String[] entryValues;
private String description;
private VehicleSizeAssets assets;
@ -40,11 +40,11 @@ public class SizePreference extends DialogPreference {
this.entries = entries;
}
public Object[] getEntryValues() {
public String[] getEntryValues() {
return entryValues;
}
public void setEntryValues(Object[] entryValues) {
public void setEntryValues(String[] entryValues) {
this.entryValues = entryValues;
}
@ -69,7 +69,11 @@ public class SizePreference extends DialogPreference {
String[] entries = getEntries();
for (int i = 0; i < entries.length; i++) {
if (entries[i].equals(item)) {
return Float.parseFloat(getEntryValues()[i].toString());
try {
return Float.parseFloat(entryValues[i]);
} catch (NumberFormatException e) {
return 0.0f;
}
}
}
return 0.0f;
@ -77,12 +81,18 @@ public class SizePreference extends DialogPreference {
@Override
public CharSequence getSummary() {
String summary = "-";
String persistedString = getValue();
if (!persistedString.equals(defaultValue)) {
persistedString = String.valueOf(Float.parseFloat(persistedString) + 0.01f);
return String.format(getContext().getString(R.string.ltr_or_rtl_combine_via_space), persistedString, getContext().getString(assets.getMetricShortRes()));
try {
persistedString = String.valueOf(Float.parseFloat(persistedString) + 0.01f);
summary = String.format(getContext().getString(R.string.ltr_or_rtl_combine_via_space),
persistedString, getContext().getString(assets.getMetricShortRes()));
} catch (NumberFormatException e) {
summary = "-";
}
}
return "-";
return summary;
}
public String getValue() {

View file

@ -236,9 +236,9 @@ public class SRTMPlugin extends OsmandPlugin {
if (contourLinesProp != null) {
final OsmandSettings.CommonPreference<String> pref = app.getSettings().getCustomRenderProperty(contourLinesProp.getAttrName());
if (!Algorithms.isEmpty(pref.get())) {
contourLinesEnabled = !pref.get().equals(CONTOUR_LINES_DISABLED_VALUE);
contourLinesEnabled = !CONTOUR_LINES_DISABLED_VALUE.equals(pref.get());
} else {
contourLinesEnabled = !contourLinesProp.getDefaultValueDescription().equals(CONTOUR_LINES_DISABLED_VALUE);
contourLinesEnabled = !CONTOUR_LINES_DISABLED_VALUE.equals(contourLinesProp.getDefaultValueDescription());
}
}
return contourLinesEnabled;