Restore OsmAnd on custom header click
This commit is contained in:
parent
284fd9a469
commit
1501e447d1
3 changed files with 39 additions and 7 deletions
|
@ -108,6 +108,26 @@ public class OsmAndAppCustomization {
|
|||
notifySettingsCustomized();
|
||||
}
|
||||
|
||||
private void restoreOsmandSetting() {
|
||||
app.setOsmandSettings(osmandSettings);
|
||||
notifySettingsCustomized();
|
||||
}
|
||||
|
||||
public void restoreOsmand() {
|
||||
navDrawerLogo = null;
|
||||
featuresCustomized = false;
|
||||
widgetsCustomized = false;
|
||||
customOsmandSettings = null;
|
||||
restoreOsmandSetting();
|
||||
|
||||
featuresEnabledIds.clear();
|
||||
featuresDisabledIds.clear();
|
||||
featuresEnabledPatterns.clear();
|
||||
featuresDisabledPatterns.clear();
|
||||
widgetsVisibilityMap.clear();
|
||||
widgetsAvailabilityMap.clear();
|
||||
}
|
||||
|
||||
// Activities
|
||||
public Class<? extends Activity> getSettingsActivity() {
|
||||
return SettingsActivity.class;
|
||||
|
|
|
@ -209,6 +209,7 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven
|
|||
private boolean pendingPause = false;
|
||||
private Timer splashScreenTimer;
|
||||
private boolean activityRestartNeeded = false;
|
||||
private boolean stopped = false;
|
||||
|
||||
private ExecutorService singleThreadExecutor = Executors.newSingleThreadExecutor();
|
||||
|
||||
|
@ -1221,6 +1222,7 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven
|
|||
@Override
|
||||
protected void onStart() {
|
||||
super.onStart();
|
||||
stopped = false;
|
||||
wakeLockHelper.onStart(this);
|
||||
getMyApplication().getNotificationHelper().showNotifications();
|
||||
}
|
||||
|
@ -1240,6 +1242,7 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven
|
|||
if(pendingPause) {
|
||||
onPauseActivity();
|
||||
}
|
||||
stopped = true;
|
||||
super.onStop();
|
||||
}
|
||||
|
||||
|
@ -1958,7 +1961,11 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven
|
|||
|
||||
@Override
|
||||
public void onOsmAndSettingsCustomized() {
|
||||
if (stopped) {
|
||||
activityRestartNeeded = true;
|
||||
} else {
|
||||
recreate();
|
||||
}
|
||||
}
|
||||
|
||||
public enum ShowQuickSearchMode {
|
||||
|
|
|
@ -998,7 +998,7 @@ public class MapActivityActions implements DialogProvider {
|
|||
menuItemsListView.setBackgroundColor(ContextCompat.getColor(mapActivity, R.color.bg_color_light));
|
||||
}
|
||||
menuItemsListView.removeHeaderView(navDrawerLogoHeader);
|
||||
Bitmap navDrawerLogo = getMyApplication().getAppCustomization().getNavDrawerLogo();
|
||||
final Bitmap navDrawerLogo = getMyApplication().getAppCustomization().getNavDrawerLogo();
|
||||
if (navDrawerLogo != null) {
|
||||
navDrawerLogoHeader.setImageBitmap(navDrawerLogo);
|
||||
menuItemsListView.addHeaderView(navDrawerLogoHeader);
|
||||
|
@ -1013,6 +1013,10 @@ public class MapActivityActions implements DialogProvider {
|
|||
@Override
|
||||
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
||||
mapActivity.dismissCardDialog();
|
||||
if (position == 0 && navDrawerLogo != null) {
|
||||
getMyApplication().getAppCustomization().restoreOsmand();
|
||||
mapActivity.closeDrawer();
|
||||
} else {
|
||||
position -= menuItemsListView.getHeaderViewsCount();
|
||||
ContextMenuItem item = contextMenuAdapter.getItem(position);
|
||||
ContextMenuAdapter.ItemClickListener click = item.getItemClickListener();
|
||||
|
@ -1021,6 +1025,7 @@ public class MapActivityActions implements DialogProvider {
|
|||
mapActivity.closeDrawer();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue