mirror of
https://codeberg.org/comaps/comaps
synced 2026-01-02 11:03:44 +00:00
Compare commits
10 Commits
jb_alert_d
...
zyphlar-pa
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
766a4fb2a3 | ||
|
|
6dc3036fcf | ||
|
|
36a65945ba | ||
|
|
5c53a3cad6 | ||
|
|
3bea0b32a2 | ||
|
|
925ce544bc | ||
|
|
599b3b81ec | ||
|
|
2d981cde05 | ||
|
|
8670cb7b43 | ||
|
|
a73ffe96c5 |
@@ -1,13 +1,17 @@
|
|||||||
name: process_subways
|
name: compare_subways
|
||||||
on:
|
on:
|
||||||
workflow_dispatch: # Manual trigger
|
workflow_dispatch: # Manual trigger
|
||||||
|
schedule:
|
||||||
|
# Run daily at 00:00 UTC
|
||||||
|
- cron: '0 0 * * *'
|
||||||
|
|
||||||
env:
|
env:
|
||||||
PLANET: /home/planet/planet/planet.o5m
|
#PLANET: /home/planet/planet/planet-latest.pbf
|
||||||
TMPDIR: /tmp
|
#TMPDIR: /tmp
|
||||||
HTML_DIR: "/mnt/4tbexternal/osm-planet/subway/validator"
|
HTML_DIR: "/mnt/4tbexternal/osm-planet/subway/validator"
|
||||||
DUMP: "$HTML_DIR"
|
#DUMP: "$HTML_DIR"
|
||||||
SKIP_PLANET_UPDATE: "1"
|
#SKIP_PLANET_UPDATE: "1"
|
||||||
|
SPREADSHEET_ID: "1SEW1-NiNOnA2qDwievcxYV1FOaQl1mb1fdeyqAxHu3k"
|
||||||
DEBIAN_FRONTEND: nonnteractive
|
DEBIAN_FRONTEND: nonnteractive
|
||||||
TZ: Etc/UTC
|
TZ: Etc/UTC
|
||||||
|
|
||||||
@@ -22,20 +26,68 @@ jobs:
|
|||||||
volumes:
|
volumes:
|
||||||
- /mnt/4tbexternal:/mnt/4tbexternal
|
- /mnt/4tbexternal:/mnt/4tbexternal
|
||||||
concurrency:
|
concurrency:
|
||||||
group: ${{ github.workflow }}-process-subways-${{ github.event.pull_request.number || github.ref }}
|
group: ${{ github.workflow }}-compare-subways-${{ github.event.pull_request.number || github.ref }}
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/cache@v4
|
- uses: actions/cache@v4
|
||||||
with:
|
with:
|
||||||
path: "~"
|
path: "~"
|
||||||
key: cache-${{ github.run_id }}-${{ github.run_attempt }}
|
key: cache-${{ github.run_id }}-${{ github.run_attempt }}}
|
||||||
- name: Checkout subways repo
|
- name: Checkout main repo
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
echo "Cloning $FORGEJO_SERVER_URL/$FORGEJO_REPOSITORY branch $FORGEJO_REF_NAME"
|
||||||
|
cd ~
|
||||||
|
git clone --depth 1 --recurse-submodules --shallow-submodules -b $FORGEJO_REF_NAME --single-branch $FORGEJO_SERVER_URL/$FORGEJO_REPOSITORY.git comaps
|
||||||
|
- name: Checkout subways repo (TODO zy-fix-validation)
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
cd ~
|
cd ~
|
||||||
git clone --depth 1 --single-branch https://codeberg.org/comaps/subways.git
|
git clone --depth 1 --single-branch https://codeberg.org/comaps/subways.git
|
||||||
|
|
||||||
|
update-planet-pbf:
|
||||||
|
name: Update PBF Planet
|
||||||
|
runs-on: mapfilemaker
|
||||||
|
container:
|
||||||
|
image: codeberg.org/comaps/maps_generator:f6d53d54f794
|
||||||
|
volumes:
|
||||||
|
- /mnt/4tbexternal/:/mnt/4tbexternal/
|
||||||
|
- /mnt/4tbexternal/osm-planet:/home/planet
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-compare-subways-${{ github.event.pull_request.number || github.ref }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
steps:
|
||||||
|
- name: Download Planet File if Absent
|
||||||
|
shell: bash
|
||||||
|
# TODO: replace wget2 with curl -Z
|
||||||
|
run: |
|
||||||
|
if [ ! -d /home/planet/planet/ ]; then
|
||||||
|
mkdir -p /home/planet/planet/
|
||||||
|
fi
|
||||||
|
if [ ! -f /home/planet/planet/planet-latest.osm.pbf ]; then
|
||||||
|
cd /home/planet/planet/
|
||||||
|
wget2 --verbose --progress=bar --continue https://ftpmirror.your.org/pub/openstreetmap/pbf/planet-latest.osm.pbf
|
||||||
|
else
|
||||||
|
echo "planet-latest.osm.pbf was found, raw download not required."
|
||||||
|
fi
|
||||||
|
- name: Update PBF Planet
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
cd /home/planet/planet/
|
||||||
|
rm -f planet-latest-new.osm.pbf
|
||||||
|
pyosmium-up-to-date planet-latest.osm.pbf -o planet-latest-new.osm.pbf -v --size 16384
|
||||||
|
mv planet-latest-new.osm.pbf planet-latest.osm.pbf
|
||||||
|
- name: Notify Zulip
|
||||||
|
run: |
|
||||||
|
curl -X POST https://comaps.zulipchat.com/api/v1/messages \
|
||||||
|
-u $ZULIP_BOT_EMAIL:$ZULIP_API_KEY \
|
||||||
|
--data-urlencode type=stream \
|
||||||
|
--data-urlencode 'to="DevOps"' \
|
||||||
|
--data-urlencode topic=codeberg-bot \
|
||||||
|
--data-urlencode 'content=PBF planet update is done!'
|
||||||
|
|
||||||
update-planet-o5m:
|
update-planet-o5m:
|
||||||
|
if: false
|
||||||
name: Update O5M Planet
|
name: Update O5M Planet
|
||||||
runs-on: mapfilemaker
|
runs-on: mapfilemaker
|
||||||
container:
|
container:
|
||||||
@@ -44,7 +96,7 @@ jobs:
|
|||||||
- /mnt/4tbexternal/:/mnt/4tbexternal/
|
- /mnt/4tbexternal/:/mnt/4tbexternal/
|
||||||
- /mnt/4tbexternal/osm-planet:/home/planet
|
- /mnt/4tbexternal/osm-planet:/home/planet
|
||||||
concurrency:
|
concurrency:
|
||||||
group: ${{ github.workflow }}-process-subways-${{ github.event.pull_request.number || github.ref }}
|
group: ${{ github.workflow }}-compare-subways-${{ github.event.pull_request.number || github.ref }}
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
steps:
|
steps:
|
||||||
- name: Check for O5M Planet File
|
- name: Check for O5M Planet File
|
||||||
@@ -82,9 +134,8 @@ jobs:
|
|||||||
--data-urlencode topic=codeberg-bot \
|
--data-urlencode topic=codeberg-bot \
|
||||||
--data-urlencode 'content=O5M planet update is done!'
|
--data-urlencode 'content=O5M planet update is done!'
|
||||||
|
|
||||||
update-subways:
|
compare-subways:
|
||||||
if: inputs.run-subways
|
name: Compare Subways
|
||||||
name: Update Subways
|
|
||||||
runs-on: mapfilemaker
|
runs-on: mapfilemaker
|
||||||
needs:
|
needs:
|
||||||
- clone-repos
|
- clone-repos
|
||||||
@@ -94,31 +145,19 @@ jobs:
|
|||||||
- /mnt/4tbexternal/:/mnt/4tbexternal/
|
- /mnt/4tbexternal/:/mnt/4tbexternal/
|
||||||
- /mnt/4tbexternal/osm-planet:/home/planet
|
- /mnt/4tbexternal/osm-planet:/home/planet
|
||||||
concurrency:
|
concurrency:
|
||||||
group: ${{ github.workflow }}-map-generator-${{ github.event.pull_request.number || github.ref }}
|
group: ${{ github.workflow }}-compare-subways-${{ github.event.pull_request.number || github.ref }}
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/cache@v4
|
- uses: actions/cache@v4
|
||||||
with:
|
with:
|
||||||
path: "~"
|
path: "~"
|
||||||
key: cache-${{ github.run_id }}-${{ github.run_attempt }}
|
key: cache-${{ github.run_id }}-${{ github.run_attempt }}
|
||||||
- name: Update Subways
|
- name: Compare Subways
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
cd ~/comaps/
|
cd ~/comaps/
|
||||||
cp tools/unix/maps/settings.sh.prod tools/unix/maps/settings.sh
|
cp tools/unix/maps/settings.sh.prod tools/unix/maps/settings.sh
|
||||||
./tools/unix/maps/generate_subways.sh
|
./tools/unix/maps/generate_subways.sh
|
||||||
- name: Compare with VK validation
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
cd ~/subways
|
|
||||||
if [ -f "$HTML_DIR/index.html" ]; then
|
|
||||||
echo "Comparing local validation with VK's validation..."
|
|
||||||
python3 ./scripts/compare_html_validation.py "$HTML_DIR/index.html" \
|
|
||||||
--vk-url "https://maps.vk.com/osm/tools/subways/latest/index.html"
|
|
||||||
else
|
|
||||||
echo "Local index.html not found at $HTML_DIR/index.html"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
- name: Notify Zulip
|
- name: Notify Zulip
|
||||||
run: |
|
run: |
|
||||||
curl -X POST https://comaps.zulipchat.com/api/v1/messages \
|
curl -X POST https://comaps.zulipchat.com/api/v1/messages \
|
||||||
@@ -127,3 +166,46 @@ jobs:
|
|||||||
--data-urlencode 'to="DevOps"' \
|
--data-urlencode 'to="DevOps"' \
|
||||||
--data-urlencode topic=codeberg-bot \
|
--data-urlencode topic=codeberg-bot \
|
||||||
--data-urlencode 'content=Subways are done!'
|
--data-urlencode 'content=Subways are done!'
|
||||||
|
- name: Compare with VK validation
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
cd ~/subways
|
||||||
|
if [ -f "$HTML_DIR/cities.txt" ]; then
|
||||||
|
echo "Comparing local validation with VK's validation..."
|
||||||
|
python3 ./scripts/compare_html_validation.py "$HTML_DIR/cities.txt" \
|
||||||
|
--remote-url "https://maps.vk.com/osm/tools/subways/latest/cities.txt"
|
||||||
|
else
|
||||||
|
echo "Local cities.txt not found at $HTML_DIR/cities.txt"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
- name: Compare Google Sheets Data
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Download the Google Sheets data
|
||||||
|
GOOGLE_SHEETS_URL="https://docs.google.com/spreadsheets/d/${SPREADSHEET_ID}/export?format=csv"
|
||||||
|
echo "Downloading Google Sheets data from: $GOOGLE_SHEETS_URL"
|
||||||
|
curl -sL "$GOOGLE_SHEETS_URL" -o /tmp/google_sheets.csv
|
||||||
|
|
||||||
|
# Normalize line endings to avoid spurious diffs
|
||||||
|
sed 's/\r$//' source_data/Rapid.csv > /tmp/local_normalized.csv
|
||||||
|
sed 's/\r$//' /tmp/google_sheets.csv > /tmp/google_normalized.csv
|
||||||
|
|
||||||
|
# Generate unified diff
|
||||||
|
echo ""
|
||||||
|
echo "Differences between local Rapid.csv and Google Sheets:"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
if diff -u /tmp/local_normalized.csv /tmp/google_normalized.csv > /tmp/full_diff.txt; then
|
||||||
|
echo "No differences found! Local Rapid.csv is in sync with Google Sheets."
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
cat /tmp/full_diff.txt
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "The above diff can be saved as a patch and applied with:"
|
||||||
|
echo " patch source_data/Rapid.csv < patch-file"
|
||||||
|
echo "or by manually reviewing and applying the changes."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|||||||
@@ -116,6 +116,20 @@ endif()
|
|||||||
|
|
||||||
message(STATUS "Build type: " ${CMAKE_BUILD_TYPE})
|
message(STATUS "Build type: " ${CMAKE_BUILD_TYPE})
|
||||||
|
|
||||||
|
if (PLATFORM_LINUX OR PLATFORM_ANDROID)
|
||||||
|
find_program(LLD_FOUND ld.lld)
|
||||||
|
if (LLD_FOUND)
|
||||||
|
message(STATUS "Using ld.lld linker")
|
||||||
|
set(CMAKE_EXE_LINKER_FLAGS "-fuse-ld=lld")
|
||||||
|
else()
|
||||||
|
find_program(GOLD_FOUND ld.gold)
|
||||||
|
if (GOLD_FOUND)
|
||||||
|
message(STATUS "Using ld.gold")
|
||||||
|
set(CMAKE_EXE_LINKER_FLAGS "-fuse-ld=gold")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
if (NOT SKIP_TESTS)
|
if (NOT SKIP_TESTS)
|
||||||
enable_testing()
|
enable_testing()
|
||||||
# Enables ctest -T memcheck with valgrind
|
# Enables ctest -T memcheck with valgrind
|
||||||
|
|||||||
2
NOTICE
2
NOTICE
@@ -1,6 +1,6 @@
|
|||||||
Copyright 2020 My.com B.V. (Mail.Ru Group)
|
Copyright 2020 My.com B.V. (Mail.Ru Group)
|
||||||
Copyright 2025 Organic Maps Contributors
|
Copyright 2025 Organic Maps Contributors
|
||||||
Copyright 2026 CoMaps Contributors
|
Copyright 2025 CoMaps Contributors
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
|
|||||||
@@ -351,7 +351,6 @@ dependencies {
|
|||||||
implementation libs.androidx.recyclerview
|
implementation libs.androidx.recyclerview
|
||||||
implementation libs.androidx.work.runtime
|
implementation libs.androidx.work.runtime
|
||||||
implementation libs.androidx.lifecycle.process
|
implementation libs.androidx.lifecycle.process
|
||||||
implementation libs.androidx.documentfile
|
|
||||||
implementation libs.android.material
|
implementation libs.android.material
|
||||||
// Fix for app/organicmaps/util/FileUploadWorker.java:14: error: cannot access ListenableFuture
|
// Fix for app/organicmaps/util/FileUploadWorker.java:14: error: cannot access ListenableFuture
|
||||||
// https://github.com/organicmaps/organicmaps/issues/6106
|
// https://github.com/organicmaps/organicmaps/issues/6106
|
||||||
|
|||||||
@@ -446,7 +446,7 @@ public class DownloadResourcesLegacyActivity extends BaseMwmFragmentActivity
|
|||||||
default -> throw new AssertionError("Unexpected result code = " + result);
|
default -> throw new AssertionError("Unexpected result code = " + result);
|
||||||
};
|
};
|
||||||
|
|
||||||
mAlertDialog = new MaterialAlertDialogBuilder(this)
|
mAlertDialog = new MaterialAlertDialogBuilder(this, R.style.MwmTheme_AlertDialog)
|
||||||
.setTitle(titleId)
|
.setTitle(titleId)
|
||||||
.setMessage(messageId)
|
.setMessage(messageId)
|
||||||
.setCancelable(true)
|
.setCancelable(true)
|
||||||
|
|||||||
@@ -432,7 +432,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
|
|||||||
}
|
}
|
||||||
|
|
||||||
dismissLocationErrorDialog();
|
dismissLocationErrorDialog();
|
||||||
mLocationErrorDialog = new MaterialAlertDialogBuilder(MwmActivity.this)
|
mLocationErrorDialog = new MaterialAlertDialogBuilder(MwmActivity.this, R.style.MwmTheme_AlertDialog)
|
||||||
.setMessage(R.string.unknown_current_position)
|
.setMessage(R.string.unknown_current_position)
|
||||||
.setCancelable(true)
|
.setCancelable(true)
|
||||||
.setPositiveButton(R.string.ok, null)
|
.setPositiveButton(R.string.ok, null)
|
||||||
@@ -655,7 +655,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
dismissAlertDialog();
|
dismissAlertDialog();
|
||||||
mAlertDialog = new MaterialAlertDialogBuilder(this)
|
mAlertDialog = new MaterialAlertDialogBuilder(this, R.style.MwmTheme_AlertDialog)
|
||||||
.setTitle(R.string.message_invalid_feature_position)
|
.setTitle(R.string.message_invalid_feature_position)
|
||||||
.setPositiveButton(R.string.ok, null)
|
.setPositiveButton(R.string.ok, null)
|
||||||
.setOnDismissListener(dialog -> mAlertDialog = null)
|
.setOnDismissListener(dialog -> mAlertDialog = null)
|
||||||
@@ -1155,7 +1155,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
|
|||||||
|
|
||||||
if (type == IsolinesState.EXPIREDDATA)
|
if (type == IsolinesState.EXPIREDDATA)
|
||||||
{
|
{
|
||||||
mAlertDialog = new MaterialAlertDialogBuilder(this)
|
mAlertDialog = new MaterialAlertDialogBuilder(this, R.style.MwmTheme_AlertDialog)
|
||||||
.setTitle(R.string.downloader_update_maps)
|
.setTitle(R.string.downloader_update_maps)
|
||||||
.setMessage(R.string.isolines_activation_error_dialog)
|
.setMessage(R.string.isolines_activation_error_dialog)
|
||||||
.setPositiveButton(
|
.setPositiveButton(
|
||||||
@@ -1774,7 +1774,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
|
|||||||
{
|
{
|
||||||
dismissAlertDialog();
|
dismissAlertDialog();
|
||||||
mAlertDialog =
|
mAlertDialog =
|
||||||
new MaterialAlertDialogBuilder(this)
|
new MaterialAlertDialogBuilder(this, R.style.MwmTheme_AlertDialog)
|
||||||
.setTitle(R.string.unable_to_calc_alert_title)
|
.setTitle(R.string.unable_to_calc_alert_title)
|
||||||
.setMessage(R.string.unable_to_calc_alert_subtitle)
|
.setMessage(R.string.unable_to_calc_alert_subtitle)
|
||||||
.setPositiveButton(R.string.settings,
|
.setPositiveButton(R.string.settings,
|
||||||
@@ -1797,7 +1797,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
|
|||||||
builder.append(getString(resId)).append("\n\n");
|
builder.append(getString(resId)).append("\n\n");
|
||||||
|
|
||||||
dismissAlertDialog();
|
dismissAlertDialog();
|
||||||
mAlertDialog = new MaterialAlertDialogBuilder(this)
|
mAlertDialog = new MaterialAlertDialogBuilder(this, R.style.MwmTheme_AlertDialog)
|
||||||
.setTitle(R.string.dialog_routing_disclaimer_title)
|
.setTitle(R.string.dialog_routing_disclaimer_title)
|
||||||
.setMessage(builder.toString())
|
.setMessage(builder.toString())
|
||||||
.setCancelable(false)
|
.setCancelable(false)
|
||||||
@@ -1846,7 +1846,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
|
|||||||
return true;
|
return true;
|
||||||
|
|
||||||
final MapObject endPoint = Objects.requireNonNull(controller.getEndPoint());
|
final MapObject endPoint = Objects.requireNonNull(controller.getEndPoint());
|
||||||
final MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this)
|
final MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this, R.style.MwmTheme_AlertDialog)
|
||||||
.setTitle(R.string.p2p_only_from_current)
|
.setTitle(R.string.p2p_only_from_current)
|
||||||
.setMessage(R.string.p2p_reroute_from_current)
|
.setMessage(R.string.p2p_reroute_from_current)
|
||||||
.setCancelable(false)
|
.setCancelable(false)
|
||||||
@@ -2040,7 +2040,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
|
|||||||
{
|
{
|
||||||
mPreciseLocationDialogShown = true;
|
mPreciseLocationDialogShown = true;
|
||||||
final MaterialAlertDialogBuilder builder =
|
final MaterialAlertDialogBuilder builder =
|
||||||
new MaterialAlertDialogBuilder(this)
|
new MaterialAlertDialogBuilder(this, R.style.MwmTheme_AlertDialog)
|
||||||
.setTitle("⚠ " + getString(R.string.limited_accuracy))
|
.setTitle("⚠ " + getString(R.string.limited_accuracy))
|
||||||
.setMessage(R.string.precise_location_is_disabled_long_text)
|
.setMessage(R.string.precise_location_is_disabled_long_text)
|
||||||
.setNegativeButton(R.string.close, (dialog, which) -> dialog.dismiss())
|
.setNegativeButton(R.string.close, (dialog, which) -> dialog.dismiss())
|
||||||
@@ -2074,7 +2074,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
mLocationErrorDialog = new MaterialAlertDialogBuilder(this)
|
mLocationErrorDialog = new MaterialAlertDialogBuilder(this, R.style.MwmTheme_AlertDialog)
|
||||||
.setTitle(R.string.enable_location_services)
|
.setTitle(R.string.enable_location_services)
|
||||||
.setMessage(R.string.location_is_disabled_long_text)
|
.setMessage(R.string.location_is_disabled_long_text)
|
||||||
.setOnDismissListener(dialog -> mLocationErrorDialog = null)
|
.setOnDismissListener(dialog -> mLocationErrorDialog = null)
|
||||||
@@ -2167,7 +2167,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this)
|
final MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this, R.style.MwmTheme_AlertDialog)
|
||||||
.setTitle(R.string.enable_location_services)
|
.setTitle(R.string.enable_location_services)
|
||||||
.setMessage(R.string.location_is_disabled_long_text)
|
.setMessage(R.string.location_is_disabled_long_text)
|
||||||
.setOnDismissListener(dialog -> mLocationErrorDialog = null)
|
.setOnDismissListener(dialog -> mLocationErrorDialog = null)
|
||||||
@@ -2253,7 +2253,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
|
|||||||
|
|
||||||
dismissAlertDialog();
|
dismissAlertDialog();
|
||||||
final MaterialAlertDialogBuilder builder =
|
final MaterialAlertDialogBuilder builder =
|
||||||
new MaterialAlertDialogBuilder(this)
|
new MaterialAlertDialogBuilder(this, R.style.MwmTheme_AlertDialog)
|
||||||
.setTitle(R.string.current_location_unknown_error_title)
|
.setTitle(R.string.current_location_unknown_error_title)
|
||||||
.setCancelable(true)
|
.setCancelable(true)
|
||||||
.setMessage(R.string.power_save_dialog_summary)
|
.setMessage(R.string.power_save_dialog_summary)
|
||||||
@@ -2278,7 +2278,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
|
|||||||
{
|
{
|
||||||
dismissAlertDialog();
|
dismissAlertDialog();
|
||||||
mAlertDialog =
|
mAlertDialog =
|
||||||
new MaterialAlertDialogBuilder(this)
|
new MaterialAlertDialogBuilder(this, R.style.MwmTheme_AlertDialog)
|
||||||
.setTitle(R.string.load_kmz_title)
|
.setTitle(R.string.load_kmz_title)
|
||||||
.setMessage(getString(R.string.unknown_file_type, uri))
|
.setMessage(getString(R.string.unknown_file_type, uri))
|
||||||
.setPositiveButton(R.string.ok, null)
|
.setPositiveButton(R.string.ok, null)
|
||||||
@@ -2295,7 +2295,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
|
|||||||
{
|
{
|
||||||
dismissAlertDialog();
|
dismissAlertDialog();
|
||||||
mAlertDialog =
|
mAlertDialog =
|
||||||
new MaterialAlertDialogBuilder(this)
|
new MaterialAlertDialogBuilder(this, R.style.MwmTheme_AlertDialog)
|
||||||
.setTitle(R.string.load_kmz_title)
|
.setTitle(R.string.load_kmz_title)
|
||||||
.setMessage(getString(R.string.failed_to_open_file, uri, error))
|
.setMessage(getString(R.string.failed_to_open_file, uri, error))
|
||||||
.setPositiveButton(R.string.ok, null)
|
.setPositiveButton(R.string.ok, null)
|
||||||
@@ -2317,7 +2317,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
|
|||||||
public void onBookmarksFileImportFailed()
|
public void onBookmarksFileImportFailed()
|
||||||
{
|
{
|
||||||
dismissAlertDialog();
|
dismissAlertDialog();
|
||||||
mAlertDialog = new MaterialAlertDialogBuilder(this)
|
mAlertDialog = new MaterialAlertDialogBuilder(this, R.style.MwmTheme_AlertDialog)
|
||||||
.setTitle(R.string.load_kmz_title)
|
.setTitle(R.string.load_kmz_title)
|
||||||
.setMessage(R.string.load_kmz_failed)
|
.setMessage(R.string.load_kmz_failed)
|
||||||
.setPositiveButton(R.string.ok, null)
|
.setPositiveButton(R.string.ok, null)
|
||||||
@@ -2578,7 +2578,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
|
|||||||
|
|
||||||
private void reportUnsupported()
|
private void reportUnsupported()
|
||||||
{
|
{
|
||||||
new MaterialAlertDialogBuilder(this)
|
new MaterialAlertDialogBuilder(this, R.style.MwmTheme_AlertDialog)
|
||||||
.setMessage(R.string.unsupported_phone)
|
.setMessage(R.string.unsupported_phone)
|
||||||
.setCancelable(false)
|
.setCancelable(false)
|
||||||
.setPositiveButton(R.string.close, (dlg, which) -> this.moveTaskToBack(true))
|
.setPositiveButton(R.string.close, (dlg, which) -> this.moveTaskToBack(true))
|
||||||
|
|||||||
@@ -120,7 +120,7 @@ public class SplashActivity extends AppCompatActivity
|
|||||||
private void showFatalErrorDialog(@StringRes int titleId, @StringRes int messageId, Exception error)
|
private void showFatalErrorDialog(@StringRes int titleId, @StringRes int messageId, Exception error)
|
||||||
{
|
{
|
||||||
mCanceled = true;
|
mCanceled = true;
|
||||||
new MaterialAlertDialogBuilder(this)
|
new MaterialAlertDialogBuilder(this, R.style.MwmTheme_AlertDialog)
|
||||||
.setTitle(titleId)
|
.setTitle(titleId)
|
||||||
.setMessage(messageId)
|
.setMessage(messageId)
|
||||||
.setPositiveButton(
|
.setPositiveButton(
|
||||||
|
|||||||
@@ -60,14 +60,14 @@ public enum BookmarksSharingHelper
|
|||||||
case BookmarkSharingResult.SUCCESS ->
|
case BookmarkSharingResult.SUCCESS ->
|
||||||
SharingUtils.shareBookmarkFile(context, launcher, result.getSharingPath(), result.getMimeType());
|
SharingUtils.shareBookmarkFile(context, launcher, result.getSharingPath(), result.getMimeType());
|
||||||
case BookmarkSharingResult.EMPTY_CATEGORY ->
|
case BookmarkSharingResult.EMPTY_CATEGORY ->
|
||||||
new MaterialAlertDialogBuilder(context)
|
new MaterialAlertDialogBuilder(context, R.style.MwmTheme_AlertDialog)
|
||||||
.setTitle(R.string.bookmarks_error_title_share_empty)
|
.setTitle(R.string.bookmarks_error_title_share_empty)
|
||||||
.setMessage(R.string.bookmarks_error_message_share_empty)
|
.setMessage(R.string.bookmarks_error_message_share_empty)
|
||||||
.setPositiveButton(R.string.ok, null)
|
.setPositiveButton(R.string.ok, null)
|
||||||
.show();
|
.show();
|
||||||
case BookmarkSharingResult.ARCHIVE_ERROR, BookmarkSharingResult.FILE_ERROR ->
|
case BookmarkSharingResult.ARCHIVE_ERROR, BookmarkSharingResult.FILE_ERROR ->
|
||||||
{
|
{
|
||||||
new MaterialAlertDialogBuilder(context)
|
new MaterialAlertDialogBuilder(context, R.style.MwmTheme_AlertDialog)
|
||||||
.setTitle(R.string.dialog_routing_system_error)
|
.setTitle(R.string.dialog_routing_system_error)
|
||||||
.setMessage(R.string.bookmarks_error_message_share_general)
|
.setMessage(R.string.bookmarks_error_message_share_general)
|
||||||
.setPositiveButton(R.string.ok, null)
|
.setPositiveButton(R.string.ok, null)
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ public final class CustomMapServerDialog
|
|||||||
edit.setText(current);
|
edit.setText(current);
|
||||||
|
|
||||||
MaterialAlertDialogBuilder builder =
|
MaterialAlertDialogBuilder builder =
|
||||||
new MaterialAlertDialogBuilder(context)
|
new MaterialAlertDialogBuilder(context, R.style.MwmTheme_AlertDialog)
|
||||||
.setTitle(R.string.download_resources_custom_url_title)
|
.setTitle(R.string.download_resources_custom_url_title)
|
||||||
.setMessage(R.string.download_resources_custom_url_message)
|
.setMessage(R.string.download_resources_custom_url_message)
|
||||||
.setView(dialogView)
|
.setView(dialogView)
|
||||||
|
|||||||
@@ -113,7 +113,7 @@ public class EditTextDialogFragment extends BaseMwmDialogFragment
|
|||||||
negativeButtonText = args.getString(ARG_NEGATIVE_BUTTON);
|
negativeButtonText = args.getString(ARG_NEGATIVE_BUTTON);
|
||||||
}
|
}
|
||||||
|
|
||||||
AlertDialog editTextDialog = new MaterialAlertDialogBuilder(requireActivity())
|
AlertDialog editTextDialog = new MaterialAlertDialogBuilder(requireActivity(), R.style.MwmTheme_AlertDialog)
|
||||||
.setView(buildView())
|
.setView(buildView())
|
||||||
.setNegativeButton(negativeButtonText, null)
|
.setNegativeButton(negativeButtonText, null)
|
||||||
.setPositiveButton(positiveButtonText, null)
|
.setPositiveButton(positiveButtonText, null)
|
||||||
|
|||||||
@@ -119,7 +119,7 @@ class DownloaderAdapter extends RecyclerView.Adapter<DownloaderAdapter.ViewHolde
|
|||||||
{
|
{
|
||||||
if (RoutingController.get().isNavigating())
|
if (RoutingController.get().isNavigating())
|
||||||
{
|
{
|
||||||
new MaterialAlertDialogBuilder(adapter.mActivity)
|
new MaterialAlertDialogBuilder(adapter.mActivity, R.style.MwmTheme_AlertDialog)
|
||||||
.setTitle(R.string.downloader_delete_map)
|
.setTitle(R.string.downloader_delete_map)
|
||||||
.setMessage(R.string.downloader_delete_map_while_routing_dialog)
|
.setMessage(R.string.downloader_delete_map_while_routing_dialog)
|
||||||
.setPositiveButton(R.string.ok, null)
|
.setPositiveButton(R.string.ok, null)
|
||||||
@@ -133,7 +133,7 @@ class DownloaderAdapter extends RecyclerView.Adapter<DownloaderAdapter.ViewHolde
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
new MaterialAlertDialogBuilder(adapter.mActivity)
|
new MaterialAlertDialogBuilder(adapter.mActivity, R.style.MwmTheme_AlertDialog)
|
||||||
.setTitle(R.string.downloader_delete_map)
|
.setTitle(R.string.downloader_delete_map)
|
||||||
.setMessage(R.string.downloader_delete_map_dialog)
|
.setMessage(R.string.downloader_delete_map_dialog)
|
||||||
.setNegativeButton(R.string.cancel, null)
|
.setNegativeButton(R.string.cancel, null)
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ public class MapManagerHelper
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final AlertDialog dlg = new MaterialAlertDialogBuilder(activity)
|
final AlertDialog dlg = new MaterialAlertDialogBuilder(activity, R.style.MwmTheme_AlertDialog)
|
||||||
.setTitle(R.string.country_status_download_failed)
|
.setTitle(R.string.country_status_download_failed)
|
||||||
.setMessage(getErrorCodeStrRes(errorData.errorCode))
|
.setMessage(getErrorCodeStrRes(errorData.errorCode))
|
||||||
.setNegativeButton(R.string.cancel,
|
.setNegativeButton(R.string.cancel,
|
||||||
@@ -72,7 +72,7 @@ public class MapManagerHelper
|
|||||||
|
|
||||||
private static void notifyNoSpaceInternal(Activity activity)
|
private static void notifyNoSpaceInternal(Activity activity)
|
||||||
{
|
{
|
||||||
new MaterialAlertDialogBuilder(activity)
|
new MaterialAlertDialogBuilder(activity, R.style.MwmTheme_AlertDialog)
|
||||||
.setTitle(R.string.downloader_no_space_title)
|
.setTitle(R.string.downloader_no_space_title)
|
||||||
.setMessage(R.string.downloader_no_space_message)
|
.setMessage(R.string.downloader_no_space_message)
|
||||||
.setPositiveButton(android.R.string.ok, null)
|
.setPositiveButton(android.R.string.ok, null)
|
||||||
@@ -123,7 +123,7 @@ public class MapManagerHelper
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
new MaterialAlertDialogBuilder(activity)
|
new MaterialAlertDialogBuilder(activity, R.style.MwmTheme_AlertDialog)
|
||||||
.setTitle(R.string.download_over_mobile_header)
|
.setTitle(R.string.download_over_mobile_header)
|
||||||
.setMessage(R.string.download_over_mobile_message)
|
.setMessage(R.string.download_over_mobile_message)
|
||||||
.setNegativeButton(R.string.cancel, null)
|
.setNegativeButton(R.string.cancel, null)
|
||||||
|
|||||||
@@ -493,7 +493,7 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
return new MaterialAlertDialogBuilder(requireActivity())
|
return new MaterialAlertDialogBuilder(requireActivity(), R.style.MwmTheme_AlertDialog)
|
||||||
.setTitle(R.string.editor_socket)
|
.setTitle(R.string.editor_socket)
|
||||||
.setView(dialogView)
|
.setView(dialogView)
|
||||||
.setPositiveButton(R.string.save,
|
.setPositiveButton(R.string.save,
|
||||||
@@ -997,7 +997,7 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe
|
|||||||
message = R.string.editor_reset_edits_message;
|
message = R.string.editor_reset_edits_message;
|
||||||
}
|
}
|
||||||
|
|
||||||
new MaterialAlertDialogBuilder(requireActivity())
|
new MaterialAlertDialogBuilder(requireActivity(), R.style.MwmTheme_AlertDialog)
|
||||||
.setTitle(message)
|
.setTitle(message)
|
||||||
.setPositiveButton(title,
|
.setPositiveButton(title,
|
||||||
(dialog, which) -> {
|
(dialog, which) -> {
|
||||||
@@ -1020,7 +1020,7 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe
|
|||||||
|
|
||||||
private void placeDisused()
|
private void placeDisused()
|
||||||
{
|
{
|
||||||
new MaterialAlertDialogBuilder(requireActivity())
|
new MaterialAlertDialogBuilder(requireActivity(), R.style.MwmTheme_AlertDialog)
|
||||||
.setTitle(R.string.editor_mark_business_vacant_title)
|
.setTitle(R.string.editor_mark_business_vacant_title)
|
||||||
.setMessage(R.string.editor_mark_business_vacant_description)
|
.setMessage(R.string.editor_mark_business_vacant_description)
|
||||||
.setPositiveButton(R.string.editor_submit, (dlg, which) -> {
|
.setPositiveButton(R.string.editor_submit, (dlg, which) -> {
|
||||||
|
|||||||
@@ -352,7 +352,7 @@ public class EditorHostFragment
|
|||||||
|
|
||||||
private void processNoFeatures()
|
private void processNoFeatures()
|
||||||
{
|
{
|
||||||
new MaterialAlertDialogBuilder(requireActivity())
|
new MaterialAlertDialogBuilder(requireActivity(), R.style.MwmTheme_AlertDialog)
|
||||||
.setTitle(R.string.downloader_no_space_title)
|
.setTitle(R.string.downloader_no_space_title)
|
||||||
.setPositiveButton(R.string.ok, null)
|
.setPositiveButton(R.string.ok, null)
|
||||||
.show();
|
.show();
|
||||||
@@ -386,7 +386,7 @@ public class EditorHostFragment
|
|||||||
|
|
||||||
private void showNoobDialog()
|
private void showNoobDialog()
|
||||||
{
|
{
|
||||||
new MaterialAlertDialogBuilder(requireActivity())
|
new MaterialAlertDialogBuilder(requireActivity(), R.style.MwmTheme_AlertDialog)
|
||||||
.setTitle(R.string.editor_share_to_all_dialog_title)
|
.setTitle(R.string.editor_share_to_all_dialog_title)
|
||||||
.setMessage(getString(R.string.editor_share_to_all_dialog_message_1) + " "
|
.setMessage(getString(R.string.editor_share_to_all_dialog_message_1) + " "
|
||||||
+ getString(R.string.editor_share_to_all_dialog_message_2))
|
+ getString(R.string.editor_share_to_all_dialog_message_2))
|
||||||
|
|||||||
@@ -155,7 +155,7 @@ public class FeatureCategoryFragment
|
|||||||
// Duplicate of showNoobDialog()
|
// Duplicate of showNoobDialog()
|
||||||
private void showNoteConfirmationDialog(double lat, double lon, String noteText)
|
private void showNoteConfirmationDialog(double lat, double lon, String noteText)
|
||||||
{
|
{
|
||||||
new MaterialAlertDialogBuilder(requireActivity())
|
new MaterialAlertDialogBuilder(requireActivity(), R.style.MwmTheme_AlertDialog)
|
||||||
.setTitle(R.string.editor_share_to_all_dialog_title)
|
.setTitle(R.string.editor_share_to_all_dialog_title)
|
||||||
.setMessage(getString(R.string.editor_share_to_all_dialog_message_1) + " "
|
.setMessage(getString(R.string.editor_share_to_all_dialog_message_1) + " "
|
||||||
+ getString(R.string.editor_share_to_all_dialog_message_2))
|
+ getString(R.string.editor_share_to_all_dialog_message_2))
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ public class OsmLoginFragment extends BaseMwmToolbarFragment
|
|||||||
|
|
||||||
private void onAuthFail()
|
private void onAuthFail()
|
||||||
{
|
{
|
||||||
new MaterialAlertDialogBuilder(requireActivity())
|
new MaterialAlertDialogBuilder(requireActivity(), R.style.MwmTheme_AlertDialog)
|
||||||
.setTitle(R.string.editor_login_error_dialog)
|
.setTitle(R.string.editor_login_error_dialog)
|
||||||
.setPositiveButton(R.string.ok, null)
|
.setPositiveButton(R.string.ok, null)
|
||||||
.show();
|
.show();
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ public class FaqFragment extends BaseMwmFragment
|
|||||||
FloatingActionButton feedbackFab = root.findViewById(R.id.feedback_fab);
|
FloatingActionButton feedbackFab = root.findViewById(R.id.feedback_fab);
|
||||||
feedbackFab.setOnClickListener(
|
feedbackFab.setOnClickListener(
|
||||||
v
|
v
|
||||||
-> new MaterialAlertDialogBuilder(requireActivity())
|
-> new MaterialAlertDialogBuilder(requireActivity(), R.style.MwmTheme_AlertDialog)
|
||||||
.setTitle(R.string.feedback)
|
.setTitle(R.string.feedback)
|
||||||
.setNegativeButton(R.string.cancel, null)
|
.setNegativeButton(R.string.cancel, null)
|
||||||
.setItems(new CharSequence[] {getString(R.string.feedback_general), getString(R.string.report_a_bug)},
|
.setItems(new CharSequence[] {getString(R.string.feedback_general), getString(R.string.report_a_bug)},
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ public class TrafficButtonController implements TrafficManager.TrafficCallback
|
|||||||
if (mDialog != null && mDialog.isShowing())
|
if (mDialog != null && mDialog.isShowing())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
mDialog = new MaterialAlertDialogBuilder(mActivity)
|
mDialog = new MaterialAlertDialogBuilder(mActivity, R.style.MwmTheme_AlertDialog)
|
||||||
.setMessage(R.string.common_check_internet_connection_dialog)
|
.setMessage(R.string.common_check_internet_connection_dialog)
|
||||||
.setPositiveButton(R.string.ok, (dialog, which) -> TrafficManager.INSTANCE.setEnabled(false))
|
.setPositiveButton(R.string.ok, (dialog, which) -> TrafficManager.INSTANCE.setEnabled(false))
|
||||||
.setCancelable(true)
|
.setCancelable(true)
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ abstract class BaseRoutingErrorDialogFragment extends BaseMwmDialogFragment
|
|||||||
public Dialog onCreateDialog(Bundle savedInstanceState)
|
public Dialog onCreateDialog(Bundle savedInstanceState)
|
||||||
{
|
{
|
||||||
parseArguments();
|
parseArguments();
|
||||||
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(requireActivity())
|
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(requireActivity(), R.style.MwmTheme_AlertDialog)
|
||||||
.setCancelable(true)
|
.setCancelable(true)
|
||||||
.setNegativeButton(android.R.string.cancel, null);
|
.setNegativeButton(android.R.string.cancel, null);
|
||||||
beforeDialogCreated(builder);
|
beforeDialogCreated(builder);
|
||||||
|
|||||||
@@ -494,7 +494,7 @@ public class SettingsPrefsFragment extends BaseXmlSettingsFragment implements La
|
|||||||
pref.setOnPreferenceClickListener(preference -> {
|
pref.setOnPreferenceClickListener(preference -> {
|
||||||
if (MapManager.nativeIsDownloading())
|
if (MapManager.nativeIsDownloading())
|
||||||
{
|
{
|
||||||
new MaterialAlertDialogBuilder(requireActivity())
|
new MaterialAlertDialogBuilder(requireActivity(), R.style.MwmTheme_AlertDialog)
|
||||||
.setTitle(R.string.downloading_is_active)
|
.setTitle(R.string.downloading_is_active)
|
||||||
.setMessage(R.string.cant_change_this_setting)
|
.setMessage(R.string.cant_change_this_setting)
|
||||||
.setPositiveButton(R.string.ok, null)
|
.setPositiveButton(R.string.ok, null)
|
||||||
|
|||||||
@@ -97,7 +97,7 @@ public class StoragePathFragment extends BaseSettingsFragment
|
|||||||
final String oldPath = storages.get(currentIndex).mPath;
|
final String oldPath = storages.get(currentIndex).mPath;
|
||||||
final String newPath = storages.get(newIndex).mPath;
|
final String newPath = storages.get(newIndex).mPath;
|
||||||
|
|
||||||
new MaterialAlertDialogBuilder(requireActivity())
|
new MaterialAlertDialogBuilder(requireActivity(), R.style.MwmTheme_AlertDialog)
|
||||||
.setCancelable(false)
|
.setCancelable(false)
|
||||||
.setTitle(R.string.move_maps)
|
.setTitle(R.string.move_maps)
|
||||||
.setPositiveButton(R.string.ok, (dlg, which) -> moveStorage(newPath, oldPath))
|
.setPositiveButton(R.string.ok, (dlg, which) -> moveStorage(newPath, oldPath))
|
||||||
@@ -133,7 +133,7 @@ public class StoragePathFragment extends BaseSettingsFragment
|
|||||||
|
|
||||||
if (!result)
|
if (!result)
|
||||||
{
|
{
|
||||||
new MaterialAlertDialogBuilder(requireActivity())
|
new MaterialAlertDialogBuilder(requireActivity(), R.style.MwmTheme_AlertDialog)
|
||||||
.setTitle(R.string.move_maps_error)
|
.setTitle(R.string.move_maps_error)
|
||||||
.setPositiveButton(
|
.setPositiveButton(
|
||||||
R.string.report_a_bug,
|
R.string.report_a_bug,
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ public class BookmarkColorDialogFragment extends BaseMwmDialogFragment
|
|||||||
mIconResId = getArguments().getInt(ICON_RES);
|
mIconResId = getArguments().getInt(ICON_RES);
|
||||||
}
|
}
|
||||||
|
|
||||||
return new MaterialAlertDialogBuilder(requireActivity())
|
return new MaterialAlertDialogBuilder(requireActivity(), R.style.MwmTheme_AlertDialog)
|
||||||
.setView(buildView())
|
.setView(buildView())
|
||||||
.setTitle(R.string.choose_color)
|
.setTitle(R.string.choose_color)
|
||||||
.setNegativeButton(R.string.cancel, null)
|
.setNegativeButton(R.string.cancel, null)
|
||||||
|
|||||||
@@ -464,7 +464,7 @@ public class PlacePageController
|
|||||||
mAlertDialog.show();
|
mAlertDialog.show();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
mAlertDialog = new MaterialAlertDialogBuilder(requireContext())
|
mAlertDialog = new MaterialAlertDialogBuilder(requireContext(), R.style.MwmTheme_AlertDialog)
|
||||||
.setTitle(requireContext().getString(R.string.delete_track_dialog_title, mMapObject.getTitle()))
|
.setTitle(requireContext().getString(R.string.delete_track_dialog_title, mMapObject.getTitle()))
|
||||||
.setCancelable(true)
|
.setCancelable(true)
|
||||||
.setNegativeButton(R.string.cancel, null)
|
.setNegativeButton(R.string.cancel, null)
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
android:layout_marginTop="@dimen/margin_base">
|
android:layout_marginTop="@dimen/margin_base">
|
||||||
|
|
||||||
<RadioButton
|
<RadioButton
|
||||||
style="@style/MwmTextAppearance.Subtitle1"
|
style="@style/TextAppearance.Subtitle1"
|
||||||
android:id="@+id/sort_by_default"
|
android:id="@+id/sort_by_default"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
<item name="android:statusBarColor">?colorPrimary</item>
|
<item name="android:statusBarColor">?colorPrimary</item>
|
||||||
<item name="android:windowTranslucentNavigation">false</item>
|
<item name="android:windowTranslucentNavigation">false</item>
|
||||||
|
|
||||||
<item name="alertDialogTheme">@style/MaterialAlertDialog.Material3</item>
|
<item name="alertDialogTheme">@style/MwmTheme.AlertDialog</item>
|
||||||
<item name="windowBackgroundForced">@color/bg_window</item>
|
<item name="windowBackgroundForced">@color/bg_window</item>
|
||||||
<item name="cardBackground">@color/bg_cards</item>
|
<item name="cardBackground">@color/bg_cards</item>
|
||||||
<item name="titleDialogTheme">@color/white_primary</item>
|
<item name="titleDialogTheme">@color/white_primary</item>
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
<item name="android:windowActionBarOverlay">true</item>
|
<item name="android:windowActionBarOverlay">true</item>
|
||||||
<item name="clickableBackground">?selectableItemBackground</item>
|
<item name="clickableBackground">?selectableItemBackground</item>
|
||||||
<item name="android:statusBarColor">?colorPrimary</item>
|
<item name="android:statusBarColor">?colorPrimary</item>
|
||||||
<item name="alertDialogTheme">@style/MaterialAlertDialog.Material3</item>
|
<item name="alertDialogTheme">@style/MwmTheme.AlertDialog</item>
|
||||||
<item name="windowBackgroundForced">@color/bg_window</item>
|
<item name="windowBackgroundForced">@color/bg_window</item>
|
||||||
<item name="cardBackground">@color/bg_cards</item>
|
<item name="cardBackground">@color/bg_cards</item>
|
||||||
<item name="titleDialogTheme">@color/black_primary</item>
|
<item name="titleDialogTheme">@color/black_primary</item>
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
[versions]
|
[versions]
|
||||||
androidGradlePlugin = "8.13.2"
|
androidGradlePlugin = "8.11.2"
|
||||||
androidxCarApp = "1.7.0"
|
androidxCarApp = "1.7.0"
|
||||||
|
|
||||||
[libraries]
|
[libraries]
|
||||||
android-tools = { module = "com.android.tools.build:gradle", version.ref = "androidGradlePlugin" }
|
android-tools = { module = "com.android.tools.build:gradle", version.ref = "androidGradlePlugin" }
|
||||||
triplet-play-publisher = { module = "com.github.triplet.gradle:play-publisher", version = "3.13.0" }
|
triplet-play-publisher = { module = "com.github.triplet.gradle:play-publisher", version = "3.12.1" }
|
||||||
huawei-publish = { module = "ru.cian:huawei-publish-gradle-plugin", version = "1.4.2" }
|
huawei-publish = { module = "ru.cian:huawei-publish-gradle-plugin", version = "1.4.2" }
|
||||||
android-tools-desugar = { module = "com.android.tools:desugar_jdk_libs", version = "2.1.5" }
|
android-tools-desugar = { module = "com.android.tools:desugar_jdk_libs", version = "2.1.5" }
|
||||||
microg-services-location = { module = "org.microg.gms:play-services-location", version = "0.3.6.244735" }
|
microg-services-location = { module = "org.microg.gms:play-services-location", version = "0.3.6.244735" }
|
||||||
androidx-core = { module = "androidx.core:core", version = "1.17.0" }
|
androidx-core = { module = "androidx.core:core", version = "1.17.0" }
|
||||||
jetbrains-kotlin-bom = { module = "org.jetbrains.kotlin:kotlin-bom", version = "2.2.21" }
|
jetbrains-kotlin-bom = { module = "org.jetbrains.kotlin:kotlin-bom", version = "2.2.20" }
|
||||||
androidx-annotation = { module = "androidx.annotation:annotation", version = "1.9.1" }
|
androidx-annotation = { module = "androidx.annotation:annotation", version = "1.9.1" }
|
||||||
androidx-appcompat = { module = "androidx.appcompat:appcompat", version = "1.7.1" }
|
androidx-appcompat = { module = "androidx.appcompat:appcompat", version = "1.7.1" }
|
||||||
androidx-car-app = { module = "androidx.car.app:app", version.ref = "androidxCarApp" }
|
androidx-car-app = { module = "androidx.car.app:app", version.ref = "androidxCarApp" }
|
||||||
@@ -21,13 +21,12 @@ androidx-recyclerview = { module = "androidx.recyclerview:recyclerview", version
|
|||||||
androidx-work-runtime = { module = "androidx.work:work-runtime", version = "2.10.5" }
|
androidx-work-runtime = { module = "androidx.work:work-runtime", version = "2.10.5" }
|
||||||
androidx-lifecycle-process = { module = "androidx.lifecycle:lifecycle-process", version = "2.9.4" }
|
androidx-lifecycle-process = { module = "androidx.lifecycle:lifecycle-process", version = "2.9.4" }
|
||||||
androidx-media = { module = "androidx.media:media", version = "1.7.1" }
|
androidx-media = { module = "androidx.media:media", version = "1.7.1" }
|
||||||
androidx-documentfile= { module = "androidx.documentfile:documentfile", version ="1.1.0" }
|
|
||||||
android-material = { module = "com.google.android.material:material", version = "1.12.0" }
|
android-material = { module = "com.google.android.material:material", version = "1.12.0" }
|
||||||
google-guava = { module = "com.google.guava:guava", version = "33.5.0-android" }
|
google-guava = { module = "com.google.guava:guava", version = "33.4.8-android" }
|
||||||
appdevnext-androidchart = { module = "com.github.AppDevNext:AndroidChart", version = "3.1.0.31" }
|
appdevnext-androidchart = { module = "com.github.AppDevNext:AndroidChart", version = "3.1.0.31" }
|
||||||
androidx-test-junit = { module = "androidx.test.ext:junit", version = "1.3.0" }
|
androidx-test-junit = { module = "androidx.test.ext:junit", version = "1.3.0" }
|
||||||
junit = { module = "junit:junit", version = "4.13.2" }
|
junit = { module = "junit:junit", version = "4.13.2" }
|
||||||
mockito-core = { module = "org.mockito:mockito-core", version = "5.21.0" }
|
mockito-core = { module = "org.mockito:mockito-core", version = "5.20.0" }
|
||||||
|
|
||||||
[plugins]
|
[plugins]
|
||||||
android-application = { id = "com.android.application", version.ref = "androidGradlePlugin" }
|
android-application = { id = "com.android.application", version.ref = "androidGradlePlugin" }
|
||||||
|
|||||||
@@ -126,7 +126,6 @@ dependencies {
|
|||||||
implementation libs.androidx.recyclerview
|
implementation libs.androidx.recyclerview
|
||||||
implementation libs.androidx.preference
|
implementation libs.androidx.preference
|
||||||
implementation libs.android.material
|
implementation libs.android.material
|
||||||
implementation libs.androidx.documentfile
|
|
||||||
|
|
||||||
testImplementation libs.junit
|
testImplementation libs.junit
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,15 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<svg width="26" height="33" version="1.1" viewBox="0 0 26 33" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<linearGradient id="linearGradient1" x1="13" x2="13" y1="1" y2="30" gradientUnits="userSpaceOnUse">
|
|
||||||
<stop stop-color="#e8514e" offset="0"/>
|
|
||||||
<stop stop-color="#cc3633" offset="1"/>
|
|
||||||
</linearGradient>
|
|
||||||
<filter id="filter1" x="-.0882" y="-.441" width="1.1764" height="1.882" color-interpolation-filters="sRGB">
|
|
||||||
<feGaussianBlur stdDeviation="0.55125"/>
|
|
||||||
</filter>
|
|
||||||
</defs>
|
|
||||||
<ellipse cx="13" cy="30.177" rx="7.5" ry="1.5" filter="url(#filter1)" opacity=".1" stroke-linecap="round" stroke-linejoin="round"/>
|
|
||||||
<path d="m13 1c-6.3513 0-11.5 5.1487-11.5 11.5 2.4e-4 4.6124 2.7473 8.7238 6.8871 10.534 0.76685 0.33537 1.7261 1.1233 2.097 1.8742l2.5159 5.0935 2.5159-5.0935c0.37091-0.75091 1.3301-1.5388 2.0969-1.8742 4.1398-1.8104 6.8869-5.9219 6.8871-10.534 0-6.3513-5.1487-11.5-11.5-11.5z" fill="url(#linearGradient1)" stroke="#fff" stroke-linejoin="round" stroke-width="2"/>
|
|
||||||
<path d="m11.91 13.481-0.31705-4.7458q-0.08917-1.3871-0.08917-1.9915 0-0.82234 0.42603-1.2781 0.43594-0.46566 1.1394-0.46566 0.85206 0 1.1394 0.59446 0.28732 0.58456 0.28732 1.6942 0 0.65391-0.06935 1.3276l-0.42603 4.8845q-0.06935 0.87188-0.29723 1.3375-0.22788 0.46566-0.75299 0.46566-0.53502 0-0.74308-0.44585-0.20806-0.45576-0.29724-1.3772zm1.0998 6.5193q-0.60437 0-1.0601-0.3864-0.44585-0.39631-0.44585-1.0998 0-0.61428 0.42603-1.0403 0.43594-0.43594 1.0601-0.43594t1.0601 0.43594q0.44585 0.42603 0.44585 1.0403 0 0.69354-0.44585 1.0898-0.44585 0.39631-1.0403 0.39631z" fill="#fff" aria-label="!" data-font-family="Arial Rounded MT Bold"/>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.7 KiB |
@@ -1,25 +1,15 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" width="26" height="33" viewBox="0 0 26 33">
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<defs>
|
<svg width="26" height="33" version="1.1" viewBox="0 0 26 33" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
|
||||||
<linearGradient id="a" x1="13" x2="13" y1="1" y2="30" gradientUnits="userSpaceOnUse">
|
<defs>
|
||||||
<stop offset="0" stop-color="#e8514e"/>
|
<linearGradient id="linearGradient1" x1="13" x2="13" y1="1" y2="30" gradientUnits="userSpaceOnUse">
|
||||||
<stop offset="1" stop-color="#cc3633"/>
|
<stop stop-color="#e8514e" offset="0"/>
|
||||||
</linearGradient>
|
<stop stop-color="#cc3633" offset="1"/>
|
||||||
<linearGradient xlink:href="#a" id="d" x1="13" x2="13" y1="1" y2="30" gradientTransform="translate(.122 .703)" gradientUnits="userSpaceOnUse"/>
|
</linearGradient>
|
||||||
<filter id="b" width="1.176" height="1.882" x="-.088" y="-.441" color-interpolation-filters="sRGB">
|
<filter id="filter1" x="-.0882" y="-.441" width="1.1764" height="1.882" color-interpolation-filters="sRGB">
|
||||||
<feGaussianBlur stdDeviation=".551"/>
|
<feGaussianBlur stdDeviation="0.55125"/>
|
||||||
</filter>
|
</filter>
|
||||||
<filter id="c" width="1.176" height="1.882" x="-.088" y="-.441" color-interpolation-filters="sRGB">
|
</defs>
|
||||||
<feGaussianBlur stdDeviation=".551"/>
|
<ellipse cx="13" cy="30.177" rx="7.5" ry="1.5" filter="url(#filter1)" opacity=".1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
</filter>
|
<path d="m13 1c-6.3513 0-11.5 5.1487-11.5 11.5 2.4e-4 4.6124 2.7473 8.7238 6.8871 10.534 0.76685 0.33537 1.7261 1.1233 2.097 1.8742l2.5159 5.0935 2.5159-5.0935c0.37091-0.75091 1.3301-1.5388 2.0969-1.8742 4.1398-1.8104 6.8869-5.9219 6.8871-10.534 0-6.3513-5.1487-11.5-11.5-11.5z" fill="url(#linearGradient1)" stroke="#fff" stroke-linejoin="round" stroke-width="2"/>
|
||||||
</defs>
|
<path d="m11.91 13.481-0.31705-4.7458q-0.08917-1.3871-0.08917-1.9915 0-0.82234 0.42603-1.2781 0.43594-0.46566 1.1394-0.46566 0.85206 0 1.1394 0.59446 0.28732 0.58456 0.28732 1.6942 0 0.65391-0.06935 1.3276l-0.42603 4.8845q-0.06935 0.87188-0.29723 1.3375-0.22788 0.46566-0.75299 0.46566-0.53502 0-0.74308-0.44585-0.20806-0.45576-0.29724-1.3772zm1.0998 6.5193q-0.60437 0-1.0601-0.3864-0.44585-0.39631-0.44585-1.0998 0-0.61428 0.42603-1.0403 0.43594-0.43594 1.0601-0.43594t1.0601 0.43594q0.44585 0.42603 0.44585 1.0403 0 0.69354-0.44585 1.0898-0.44585 0.39631-1.0403 0.39631z" fill="#fff" aria-label="!" data-font-family="Arial Rounded MT Bold"/>
|
||||||
<ellipse cx="13.122" cy="30.88" filter="url(#b)" opacity=".1" rx="7.5" ry="1.5" style="filter:url(#c)"/>
|
|
||||||
<path fill="url(#a)" stroke="#000" stroke-linejoin="round" stroke-width="2" d="M13.122 1.703c-6.352 0-11.5 5.149-11.5 11.5a11.5 11.5 0 0 0 6.887 10.534c.766.335 1.726 1.123 2.097 1.874l2.516 5.094 2.515-5.094c.371-.75 1.33-1.539 2.097-1.874a11.5 11.5 0 0 0 6.887-10.534c0-6.351-5.148-11.5-11.5-11.5z" style="fill:url(#d)"/>
|
|
||||||
<path d="M17.228 10.192v3.071h1.198v-3.071ZM17.228 7.424v1.721h1.198V7.423ZM7.088 10.192v3.071h1.198v-3.071ZM7.088 7.424v1.721h1.198V7.423Z" style="fill:#000;stroke-width:1.19817;stroke-linecap:square;stroke-linejoin:round" transform="translate(.365 -.337)"/>
|
|
||||||
<path d="m34.133 11.683-2.257-.84.1-2.405 2.32-.648 1.332 2.006z" style="fill:#000;fill-opacity:1;stroke-width:6;stroke-linecap:square;stroke-linejoin:round" transform="rotate(38.951 8.225 -4.95)scale(.63342)"/>
|
|
||||||
<path d="M34.79 11.804 31.165 9.71l3.627-2.094Z" style="fill:#000;fill-opacity:1;stroke-width:6;stroke-linecap:square;stroke-linejoin:round" transform="rotate(38.951 16.064 -7.581)scale(.80453)"/>
|
|
||||||
<path d="M34.79 11.804 31.165 9.71l3.627-2.094Z" style="fill:#000;fill-opacity:1;stroke-width:6;stroke-linecap:square;stroke-linejoin:round" transform="rotate(-33.724 21.526 30.482)scale(.76175)"/>
|
|
||||||
<path d="M7.088 14.395v3.071h1.198v-3.071zM7.088 18.514v1.723h1.198v-1.723zM17.228 14.395v3.071h1.198v-3.071zM17.228 18.514v1.723h1.198v-1.723z" style="fill:#000;stroke-width:1.19817;stroke-linecap:square;stroke-linejoin:round" transform="translate(.365 -.337)"/>
|
|
||||||
<path d="m34.133 11.683-2.257-.84.1-2.405 2.32-.648 1.332 2.006z" style="fill:#000;fill-opacity:1;stroke-width:6;stroke-linecap:square;stroke-linejoin:round" transform="rotate(218.951 18.726 11.626)scale(.63342)"/>
|
|
||||||
<path d="M34.79 11.804 31.165 9.71l3.627-2.094Z" style="fill:#000;fill-opacity:1;stroke-width:6;stroke-linecap:square;stroke-linejoin:round" transform="rotate(218.951 22.916 15.042)scale(.80453)"/>
|
|
||||||
<path d="M34.79 11.804 31.165 9.71l3.627-2.094Z" style="fill:#000;fill-opacity:1;stroke-width:6;stroke-linecap:square;stroke-linejoin:round" transform="rotate(146.276 17.093 9.794)scale(.76175)"/>
|
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 1.7 KiB |
@@ -1,15 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<svg width="26" height="33" version="1.1" viewBox="0 0 26 33" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<defs>
|
|
||||||
<linearGradient id="linearGradient1" x1="13" x2="13" y1="1" y2="30" gradientUnits="userSpaceOnUse">
|
|
||||||
<stop stop-color="#e8514e" offset="0"/>
|
|
||||||
<stop stop-color="#cc3633" offset="1"/>
|
|
||||||
</linearGradient>
|
|
||||||
<filter id="filter1" x="-.0882" y="-.441" width="1.1764" height="1.882" color-interpolation-filters="sRGB">
|
|
||||||
<feGaussianBlur stdDeviation="0.55125"/>
|
|
||||||
</filter>
|
|
||||||
</defs>
|
|
||||||
<ellipse cx="13" cy="30.177" rx="7.5" ry="1.5" filter="url(#filter1)" opacity=".1" stroke-linecap="round" stroke-linejoin="round"/>
|
|
||||||
<path d="m13 1c-6.3513 0-11.5 5.1487-11.5 11.5 2.4e-4 4.6124 2.7473 8.7238 6.8871 10.534 0.76685 0.33537 1.7261 1.1233 2.097 1.8742l2.5159 5.0935 2.5159-5.0935c0.37091-0.75091 1.3301-1.5388 2.0969-1.8742 4.1398-1.8104 6.8869-5.9219 6.8871-10.534 0-6.3513-5.1487-11.5-11.5-11.5z" fill="url(#linearGradient1)" stroke="#fff" stroke-linejoin="round" stroke-width="2"/>
|
|
||||||
<path d="m11.91 13.481-0.31705-4.7458q-0.08917-1.3871-0.08917-1.9915 0-0.82234 0.42603-1.2781 0.43594-0.46566 1.1394-0.46566 0.85206 0 1.1394 0.59446 0.28732 0.58456 0.28732 1.6942 0 0.65391-0.06935 1.3276l-0.42603 4.8845q-0.06935 0.87188-0.29723 1.3375-0.22788 0.46566-0.75299 0.46566-0.53502 0-0.74308-0.44585-0.20806-0.45576-0.29724-1.3772zm1.0998 6.5193q-0.60437 0-1.0601-0.3864-0.44585-0.39631-0.44585-1.0998 0-0.61428 0.42603-1.0403 0.43594-0.43594 1.0601-0.43594t1.0601 0.43594q0.44585 0.42603 0.44585 1.0403 0 0.69354-0.44585 1.0898-0.44585 0.39631-1.0403 0.39631z" fill="#fff" aria-label="!" data-font-family="Arial Rounded MT Bold"/>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.7 KiB |
@@ -1,25 +1,15 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" width="26" height="33" viewBox="0 0 26 33">
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<defs>
|
<svg width="26" height="33" version="1.1" viewBox="0 0 26 33" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
|
||||||
<linearGradient id="a" x1="13" x2="13" y1="1" y2="30" gradientUnits="userSpaceOnUse">
|
<defs>
|
||||||
<stop offset="0" stop-color="#e8514e"/>
|
<linearGradient id="linearGradient1" x1="13" x2="13" y1="1" y2="30" gradientUnits="userSpaceOnUse">
|
||||||
<stop offset="1" stop-color="#cc3633"/>
|
<stop stop-color="#e8514e" offset="0"/>
|
||||||
</linearGradient>
|
<stop stop-color="#cc3633" offset="1"/>
|
||||||
<linearGradient xlink:href="#a" id="d" x1="13" x2="13" y1="1" y2="30" gradientTransform="translate(.122 .703)" gradientUnits="userSpaceOnUse"/>
|
</linearGradient>
|
||||||
<filter id="b" width="1.176" height="1.882" x="-.088" y="-.441" color-interpolation-filters="sRGB">
|
<filter id="filter1" x="-.0882" y="-.441" width="1.1764" height="1.882" color-interpolation-filters="sRGB">
|
||||||
<feGaussianBlur stdDeviation=".551"/>
|
<feGaussianBlur stdDeviation="0.55125"/>
|
||||||
</filter>
|
</filter>
|
||||||
<filter id="c" width="1.176" height="1.882" x="-.088" y="-.441" color-interpolation-filters="sRGB">
|
</defs>
|
||||||
<feGaussianBlur stdDeviation=".551"/>
|
<ellipse cx="13" cy="30.177" rx="7.5" ry="1.5" filter="url(#filter1)" opacity=".1" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
</filter>
|
<path d="m13 1c-6.3513 0-11.5 5.1487-11.5 11.5 2.4e-4 4.6124 2.7473 8.7238 6.8871 10.534 0.76685 0.33537 1.7261 1.1233 2.097 1.8742l2.5159 5.0935 2.5159-5.0935c0.37091-0.75091 1.3301-1.5388 2.0969-1.8742 4.1398-1.8104 6.8869-5.9219 6.8871-10.534 0-6.3513-5.1487-11.5-11.5-11.5z" fill="url(#linearGradient1)" stroke="#fff" stroke-linejoin="round" stroke-width="2"/>
|
||||||
</defs>
|
<path d="m11.91 13.481-0.31705-4.7458q-0.08917-1.3871-0.08917-1.9915 0-0.82234 0.42603-1.2781 0.43594-0.46566 1.1394-0.46566 0.85206 0 1.1394 0.59446 0.28732 0.58456 0.28732 1.6942 0 0.65391-0.06935 1.3276l-0.42603 4.8845q-0.06935 0.87188-0.29723 1.3375-0.22788 0.46566-0.75299 0.46566-0.53502 0-0.74308-0.44585-0.20806-0.45576-0.29724-1.3772zm1.0998 6.5193q-0.60437 0-1.0601-0.3864-0.44585-0.39631-0.44585-1.0998 0-0.61428 0.42603-1.0403 0.43594-0.43594 1.0601-0.43594t1.0601 0.43594q0.44585 0.42603 0.44585 1.0403 0 0.69354-0.44585 1.0898-0.44585 0.39631-1.0403 0.39631z" fill="#fff" aria-label="!" data-font-family="Arial Rounded MT Bold"/>
|
||||||
<ellipse cx="13.122" cy="30.88" filter="url(#b)" opacity=".1" rx="7.5" ry="1.5" style="filter:url(#c)"/>
|
|
||||||
<path fill="url(#a)" stroke="#fff" stroke-linejoin="round" stroke-width="2" d="M13.122 1.703c-6.352 0-11.5 5.149-11.5 11.5a11.5 11.5 0 0 0 6.887 10.534c.766.335 1.726 1.123 2.097 1.874l2.516 5.094 2.515-5.094c.371-.75 1.33-1.539 2.097-1.874a11.5 11.5 0 0 0 6.887-10.534c0-6.351-5.148-11.5-11.5-11.5z" style="fill:url(#d)"/>
|
|
||||||
<path d="M17.228 10.192v3.071h1.198v-3.071ZM17.228 7.424v1.721h1.198V7.423ZM7.088 10.192v3.071h1.198v-3.071ZM7.088 7.424v1.721h1.198V7.423Z" style="fill:#fff;stroke-width:1.19817;stroke-linecap:square;stroke-linejoin:round" transform="translate(.365 -.337)"/>
|
|
||||||
<path d="m34.133 11.683-2.257-.84.1-2.405 2.32-.648 1.332 2.006z" style="fill:#fff;fill-opacity:1;stroke-width:6;stroke-linecap:square;stroke-linejoin:round" transform="rotate(38.951 8.225 -4.95)scale(.63342)"/>
|
|
||||||
<path d="M34.79 11.804 31.165 9.71l3.627-2.094Z" style="fill:#fff;fill-opacity:1;stroke-width:6;stroke-linecap:square;stroke-linejoin:round" transform="rotate(38.951 16.064 -7.581)scale(.80453)"/>
|
|
||||||
<path d="M34.79 11.804 31.165 9.71l3.627-2.094Z" style="fill:#fff;fill-opacity:1;stroke-width:6;stroke-linecap:square;stroke-linejoin:round" transform="rotate(-33.724 21.526 30.482)scale(.76175)"/>
|
|
||||||
<path d="M7.088 14.395v3.071h1.198v-3.071zM7.088 18.514v1.723h1.198v-1.723zM17.228 14.395v3.071h1.198v-3.071zM17.228 18.514v1.723h1.198v-1.723z" style="fill:#fff;stroke-width:1.19817;stroke-linecap:square;stroke-linejoin:round" transform="translate(.365 -.337)"/>
|
|
||||||
<path d="m34.133 11.683-2.257-.84.1-2.405 2.32-.648 1.332 2.006z" style="fill:#fff;fill-opacity:1;stroke-width:6;stroke-linecap:square;stroke-linejoin:round" transform="rotate(218.951 18.726 11.626)scale(.63342)"/>
|
|
||||||
<path d="M34.79 11.804 31.165 9.71l3.627-2.094Z" style="fill:#fff;fill-opacity:1;stroke-width:6;stroke-linecap:square;stroke-linejoin:round" transform="rotate(218.951 22.916 15.042)scale(.80453)"/>
|
|
||||||
<path d="M34.79 11.804 31.165 9.71l3.627-2.094Z" style="fill:#fff;fill-opacity:1;stroke-width:6;stroke-linecap:square;stroke-linejoin:round" transform="rotate(146.276 17.093 9.794)scale(.76175)"/>
|
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 1.7 KiB |
@@ -1 +1 @@
|
|||||||
© 2026 CoMaps Contributors
|
© 2025 CoMaps Contributors
|
||||||
|
|||||||
@@ -22,26 +22,13 @@ vim /etc/nginx/nginx.conf
|
|||||||
access_log /var/log/nginx/access.log comaps;
|
access_log /var/log/nginx/access.log comaps;
|
||||||
```
|
```
|
||||||
|
|
||||||
if using Apache, try this:
|
|
||||||
|
|
||||||
```
|
|
||||||
LogFormat "0.0.0.0 %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" comaps
|
|
||||||
CustomLog ${APACHE_LOG_DIR}/access.log comaps
|
|
||||||
```
|
|
||||||
|
|
||||||
### set up monitoring:
|
### set up monitoring:
|
||||||
apt install goaccess
|
apt install goaccess
|
||||||
edit /etc/goaccess/goaccess.conf and uncomment:
|
edit /etc/goaccess/goaccess.conf and uncomment time-format %H:%M:%S, date-format %Y-%m-%d, log-format COMBINED
|
||||||
- time-format %H:%M:%S
|
|
||||||
- date-format %d/%b/%Y
|
|
||||||
- log-format COMBINED
|
|
||||||
|
|
||||||
vim /etc/crontab
|
vim /etc/crontab
|
||||||
|
|
||||||
`*/5 * * * * root /usr/bin/goaccess /var/log/nginx/access.log -o /var/www/html/monitor.html`
|
`*/5 * * * * root /usr/bin/goaccess /var/log/nginx/access.log -o /var/www/html/monitor.html`
|
||||||
|
|
||||||
or Apache: `*/5 * * * * root /usr/bin/goaccess /var/log/apache2/access.log -o /var/www/html/monitor.html`
|
|
||||||
|
|
||||||
### set up basic http pages/responses:
|
### set up basic http pages/responses:
|
||||||
cd /var/www/html/
|
cd /var/www/html/
|
||||||
mkdir maps
|
mkdir maps
|
||||||
|
|||||||
Reference in New Issue
Block a user