├── .gitignore
├── LICENCE
├── Privacy Policy.md
├── README.md
└── StatusBarSpeedometer
├── .gitignore
├── app
├── build.gradle.kts
└── src
│ ├── debug
│ └── res
│ │ ├── values
│ │ └── strings.xml
│ │ └── xml
│ │ └── shortcuts.xml
│ └── main
│ ├── AndroidManifest.xml
│ ├── kotlin
│ └── ch
│ │ └── rmy
│ │ └── android
│ │ └── statusbar_tacho
│ │ ├── Application.kt
│ │ ├── activities
│ │ ├── MainScreen.kt
│ │ ├── Modal.kt
│ │ ├── SettingsActivity.kt
│ │ ├── SettingsDialog.kt
│ │ ├── ToggleActivity.kt
│ │ ├── TopSpeedDialog.kt
│ │ └── WelcomeDialog.kt
│ │ ├── components
│ │ └── Menu.kt
│ │ ├── extensions
│ │ └── Extensions.kt
│ │ ├── icons
│ │ └── IconProvider.kt
│ │ ├── location
│ │ ├── SpeedState.kt
│ │ └── SpeedWatcher.kt
│ │ ├── notifications
│ │ └── NotificationProvider.kt
│ │ ├── receivers
│ │ ├── DeviceBootReceiver.kt
│ │ └── DismissReceiver.kt
│ │ ├── services
│ │ ├── QuickSettingsTitleService.kt
│ │ └── SpeedometerService.kt
│ │ ├── units
│ │ └── SpeedUnit.kt
│ │ ├── utils
│ │ ├── Color.kt
│ │ ├── Destroyable.kt
│ │ ├── Destroyer.kt
│ │ ├── PermissionManager.kt
│ │ ├── ScreenStateWatcher.kt
│ │ ├── Settings.kt
│ │ ├── SpeedFormatter.kt
│ │ ├── Theme.kt
│ │ └── Trigonometry.kt
│ │ └── views
│ │ ├── Gauge.kt
│ │ ├── GaugeScale.kt
│ │ ├── GaugeTheme.kt
│ │ ├── GaugeView.kt
│ │ └── ThemeId.kt
│ ├── play
│ ├── contact-email.txt
│ ├── contact-website.txt
│ ├── default-language.txt
│ └── listings
│ │ ├── de-DE
│ │ ├── full-description.txt
│ │ ├── short-description.txt
│ │ └── title.txt
│ │ ├── en-US
│ │ ├── full-description.txt
│ │ ├── graphics
│ │ │ ├── feature-graphic
│ │ │ │ └── header.png
│ │ │ ├── icon
│ │ │ │ └── logo.icon.png
│ │ │ └── phone-screenshots
│ │ │ │ ├── 01.png
│ │ │ │ ├── 02.png
│ │ │ │ ├── 03.png
│ │ │ │ ├── 04.png
│ │ │ │ └── 05.png
│ │ ├── short-description.txt
│ │ └── title.txt
│ │ ├── es-ES
│ │ ├── full-description.txt
│ │ ├── short-description.txt
│ │ └── title.txt
│ │ ├── fr-FR
│ │ ├── full-description.txt
│ │ ├── short-description.txt
│ │ └── title.txt
│ │ ├── pl-PL
│ │ ├── full-description.txt
│ │ ├── short-description.txt
│ │ └── title.txt
│ │ ├── ru-RU
│ │ ├── full-description.txt
│ │ ├── short-description.txt
│ │ └── title.txt
│ │ └── tr-TR
│ │ ├── full-description.txt
│ │ ├── short-description.txt
│ │ └── title.txt
│ └── res
│ ├── drawable
│ ├── ic_launcher_background.xml
│ ├── ic_launcher_foreground.xml
│ ├── ic_launcher_monochrome.xml
│ ├── ic_quick_settings_title.xml
│ ├── icon000.xml
│ ├── icon001.xml
│ ├── icon002.xml
│ ├── icon003.xml
│ ├── icon004.xml
│ ├── icon005.xml
│ ├── icon006.xml
│ ├── icon007.xml
│ ├── icon008.xml
│ ├── icon009.xml
│ ├── icon010.xml
│ ├── icon011.xml
│ ├── icon012.xml
│ ├── icon013.xml
│ ├── icon014.xml
│ ├── icon015.xml
│ ├── icon016.xml
│ ├── icon017.xml
│ ├── icon018.xml
│ ├── icon019.xml
│ ├── icon020.xml
│ ├── icon021.xml
│ ├── icon022.xml
│ ├── icon023.xml
│ ├── icon024.xml
│ ├── icon025.xml
│ ├── icon026.xml
│ ├── icon027.xml
│ ├── icon028.xml
│ ├── icon029.xml
│ ├── icon030.xml
│ ├── icon031.xml
│ ├── icon032.xml
│ ├── icon033.xml
│ ├── icon034.xml
│ ├── icon035.xml
│ ├── icon036.xml
│ ├── icon037.xml
│ ├── icon038.xml
│ ├── icon039.xml
│ ├── icon040.xml
│ ├── icon041.xml
│ ├── icon042.xml
│ ├── icon043.xml
│ ├── icon044.xml
│ ├── icon045.xml
│ ├── icon046.xml
│ ├── icon047.xml
│ ├── icon048.xml
│ ├── icon049.xml
│ ├── icon050.xml
│ ├── icon051.xml
│ ├── icon052.xml
│ ├── icon053.xml
│ ├── icon054.xml
│ ├── icon055.xml
│ ├── icon056.xml
│ ├── icon057.xml
│ ├── icon058.xml
│ ├── icon059.xml
│ ├── icon060.xml
│ ├── icon061.xml
│ ├── icon062.xml
│ ├── icon063.xml
│ ├── icon064.xml
│ ├── icon065.xml
│ ├── icon066.xml
│ ├── icon067.xml
│ ├── icon068.xml
│ ├── icon069.xml
│ ├── icon070.xml
│ ├── icon071.xml
│ ├── icon072.xml
│ ├── icon073.xml
│ ├── icon074.xml
│ ├── icon075.xml
│ ├── icon076.xml
│ ├── icon077.xml
│ ├── icon078.xml
│ ├── icon079.xml
│ ├── icon080.xml
│ ├── icon081.xml
│ ├── icon082.xml
│ ├── icon083.xml
│ ├── icon084.xml
│ ├── icon085.xml
│ ├── icon086.xml
│ ├── icon087.xml
│ ├── icon088.xml
│ ├── icon089.xml
│ ├── icon090.xml
│ ├── icon091.xml
│ ├── icon092.xml
│ ├── icon093.xml
│ ├── icon094.xml
│ ├── icon095.xml
│ ├── icon096.xml
│ ├── icon097.xml
│ ├── icon098.xml
│ ├── icon099.xml
│ ├── icon100.xml
│ ├── icon101.xml
│ ├── icon102.xml
│ ├── icon103.xml
│ ├── icon104.xml
│ ├── icon105.xml
│ ├── icon106.xml
│ ├── icon107.xml
│ ├── icon108.xml
│ ├── icon109.xml
│ ├── icon110.xml
│ ├── icon111.xml
│ ├── icon112.xml
│ ├── icon113.xml
│ ├── icon114.xml
│ ├── icon115.xml
│ ├── icon116.xml
│ ├── icon117.xml
│ ├── icon118.xml
│ ├── icon119.xml
│ ├── icon120.xml
│ ├── icon121.xml
│ ├── icon122.xml
│ ├── icon123.xml
│ ├── icon124.xml
│ ├── icon125.xml
│ ├── icon126.xml
│ ├── icon127.xml
│ ├── icon128.xml
│ ├── icon129.xml
│ ├── icon130.xml
│ ├── icon131.xml
│ ├── icon132.xml
│ ├── icon133.xml
│ ├── icon134.xml
│ ├── icon135.xml
│ ├── icon136.xml
│ ├── icon137.xml
│ ├── icon138.xml
│ ├── icon139.xml
│ ├── icon140.xml
│ ├── icon141.xml
│ ├── icon142.xml
│ ├── icon143.xml
│ ├── icon144.xml
│ ├── icon145.xml
│ ├── icon146.xml
│ ├── icon147.xml
│ ├── icon148.xml
│ ├── icon149.xml
│ ├── icon150.xml
│ ├── icon151.xml
│ ├── icon152.xml
│ ├── icon153.xml
│ ├── icon154.xml
│ ├── icon155.xml
│ ├── icon156.xml
│ ├── icon157.xml
│ ├── icon158.xml
│ ├── icon159.xml
│ ├── icon160.xml
│ ├── icon161.xml
│ ├── icon162.xml
│ ├── icon163.xml
│ ├── icon164.xml
│ ├── icon165.xml
│ ├── icon166.xml
│ ├── icon167.xml
│ ├── icon168.xml
│ ├── icon169.xml
│ ├── icon170.xml
│ ├── icon171.xml
│ ├── icon172.xml
│ ├── icon173.xml
│ ├── icon174.xml
│ ├── icon175.xml
│ ├── icon176.xml
│ ├── icon177.xml
│ ├── icon178.xml
│ ├── icon179.xml
│ ├── icon180.xml
│ ├── icon181.xml
│ ├── icon182.xml
│ ├── icon183.xml
│ ├── icon184.xml
│ ├── icon185.xml
│ ├── icon186.xml
│ ├── icon187.xml
│ ├── icon188.xml
│ ├── icon189.xml
│ ├── icon190.xml
│ ├── icon191.xml
│ ├── icon192.xml
│ ├── icon193.xml
│ ├── icon194.xml
│ ├── icon195.xml
│ ├── icon196.xml
│ ├── icon197.xml
│ ├── icon198.xml
│ ├── icon199.xml
│ ├── icon200.xml
│ ├── icon201.xml
│ ├── icon202.xml
│ ├── icon203.xml
│ ├── icon204.xml
│ ├── icon205.xml
│ ├── icon206.xml
│ ├── icon207.xml
│ ├── icon208.xml
│ ├── icon209.xml
│ ├── icon210.xml
│ ├── icon211.xml
│ ├── icon212.xml
│ ├── icon213.xml
│ ├── icon214.xml
│ ├── icon215.xml
│ ├── icon216.xml
│ ├── icon217.xml
│ ├── icon218.xml
│ ├── icon219.xml
│ ├── icon220.xml
│ ├── icon221.xml
│ ├── icon222.xml
│ ├── icon223.xml
│ ├── icon224.xml
│ ├── icon225.xml
│ ├── icon226.xml
│ ├── icon227.xml
│ ├── icon228.xml
│ ├── icon229.xml
│ ├── icon230.xml
│ ├── icon231.xml
│ ├── icon232.xml
│ ├── icon233.xml
│ ├── icon234.xml
│ ├── icon235.xml
│ ├── icon236.xml
│ ├── icon237.xml
│ ├── icon238.xml
│ ├── icon239.xml
│ ├── icon240.xml
│ ├── icon241.xml
│ ├── icon242.xml
│ ├── icon243.xml
│ ├── icon244.xml
│ ├── icon245.xml
│ ├── icon246.xml
│ ├── icon247.xml
│ ├── icon248.xml
│ ├── icon249.xml
│ ├── icon250.xml
│ ├── icon251.xml
│ ├── icon252.xml
│ ├── icon253.xml
│ ├── icon254.xml
│ ├── icon255.xml
│ ├── icon256.xml
│ ├── icon257.xml
│ ├── icon258.xml
│ ├── icon259.xml
│ ├── icon260.xml
│ ├── icon261.xml
│ ├── icon262.xml
│ ├── icon263.xml
│ ├── icon264.xml
│ ├── icon265.xml
│ ├── icon266.xml
│ ├── icon267.xml
│ ├── icon268.xml
│ ├── icon269.xml
│ ├── icon270.xml
│ ├── icon271.xml
│ ├── icon272.xml
│ ├── icon273.xml
│ ├── icon274.xml
│ ├── icon275.xml
│ ├── icon276.xml
│ ├── icon277.xml
│ ├── icon278.xml
│ ├── icon279.xml
│ ├── icon280.xml
│ ├── icon281.xml
│ ├── icon282.xml
│ ├── icon283.xml
│ ├── icon284.xml
│ ├── icon285.xml
│ ├── icon286.xml
│ ├── icon287.xml
│ ├── icon288.xml
│ ├── icon289.xml
│ ├── icon290.xml
│ ├── icon291.xml
│ ├── icon292.xml
│ ├── icon293.xml
│ ├── icon294.xml
│ ├── icon295.xml
│ ├── icon296.xml
│ ├── icon297.xml
│ ├── icon298.xml
│ ├── icon299.xml
│ ├── icon300.xml
│ ├── icon301.xml
│ ├── icon302.xml
│ ├── icon303.xml
│ ├── icon304.xml
│ ├── icon305.xml
│ ├── icon306.xml
│ ├── icon307.xml
│ ├── icon308.xml
│ ├── icon309.xml
│ ├── icon310.xml
│ ├── icon311.xml
│ ├── icon312.xml
│ ├── icon313.xml
│ ├── icon314.xml
│ ├── icon315.xml
│ ├── icon316.xml
│ ├── icon317.xml
│ ├── icon318.xml
│ ├── icon319.xml
│ ├── icon320.xml
│ ├── icon321.xml
│ ├── icon322.xml
│ ├── icon323.xml
│ ├── icon324.xml
│ ├── icon325.xml
│ ├── icon326.xml
│ ├── icon327.xml
│ ├── icon328.xml
│ ├── icon329.xml
│ ├── icon330.xml
│ ├── icon331.xml
│ ├── icon332.xml
│ ├── icon333.xml
│ ├── icon334.xml
│ ├── icon335.xml
│ ├── icon336.xml
│ ├── icon337.xml
│ ├── icon338.xml
│ ├── icon339.xml
│ ├── icon340.xml
│ ├── icon341.xml
│ ├── icon342.xml
│ ├── icon343.xml
│ ├── icon344.xml
│ ├── icon345.xml
│ ├── icon346.xml
│ ├── icon347.xml
│ ├── icon348.xml
│ ├── icon349.xml
│ ├── icon350.xml
│ ├── icon351.xml
│ ├── icon352.xml
│ ├── icon353.xml
│ ├── icon354.xml
│ ├── icon355.xml
│ ├── icon356.xml
│ ├── icon357.xml
│ ├── icon358.xml
│ ├── icon359.xml
│ ├── icon360.xml
│ ├── icon361.xml
│ ├── icon362.xml
│ ├── icon363.xml
│ ├── icon364.xml
│ ├── icon365.xml
│ ├── icon366.xml
│ ├── icon367.xml
│ ├── icon368.xml
│ ├── icon369.xml
│ ├── icon370.xml
│ ├── icon371.xml
│ ├── icon372.xml
│ ├── icon373.xml
│ ├── icon374.xml
│ ├── icon375.xml
│ ├── icon376.xml
│ ├── icon377.xml
│ ├── icon378.xml
│ ├── icon379.xml
│ ├── icon380.xml
│ ├── icon381.xml
│ ├── icon382.xml
│ ├── icon383.xml
│ ├── icon384.xml
│ ├── icon385.xml
│ ├── icon386.xml
│ ├── icon387.xml
│ ├── icon388.xml
│ ├── icon389.xml
│ ├── icon390.xml
│ ├── icon391.xml
│ ├── icon392.xml
│ ├── icon393.xml
│ ├── icon394.xml
│ ├── icon395.xml
│ ├── icon396.xml
│ ├── icon397.xml
│ ├── icon398.xml
│ ├── icon399.xml
│ ├── icon400.xml
│ ├── icon401.xml
│ ├── icon402.xml
│ ├── icon403.xml
│ ├── icon404.xml
│ ├── icon405.xml
│ ├── icon406.xml
│ ├── icon407.xml
│ ├── icon408.xml
│ ├── icon409.xml
│ ├── icon410.xml
│ ├── icon411.xml
│ ├── icon412.xml
│ ├── icon413.xml
│ ├── icon414.xml
│ ├── icon415.xml
│ ├── icon416.xml
│ ├── icon417.xml
│ ├── icon418.xml
│ ├── icon419.xml
│ ├── icon420.xml
│ ├── icon421.xml
│ ├── icon422.xml
│ ├── icon423.xml
│ ├── icon424.xml
│ ├── icon425.xml
│ ├── icon426.xml
│ ├── icon427.xml
│ ├── icon428.xml
│ ├── icon429.xml
│ ├── icon430.xml
│ ├── icon431.xml
│ ├── icon432.xml
│ ├── icon433.xml
│ ├── icon434.xml
│ ├── icon435.xml
│ ├── icon436.xml
│ ├── icon437.xml
│ ├── icon438.xml
│ ├── icon439.xml
│ ├── icon440.xml
│ ├── icon441.xml
│ ├── icon442.xml
│ ├── icon443.xml
│ ├── icon444.xml
│ ├── icon445.xml
│ ├── icon446.xml
│ ├── icon447.xml
│ ├── icon448.xml
│ ├── icon449.xml
│ ├── icon450.xml
│ ├── icon451.xml
│ ├── icon452.xml
│ ├── icon453.xml
│ ├── icon454.xml
│ ├── icon455.xml
│ ├── icon456.xml
│ ├── icon457.xml
│ ├── icon458.xml
│ ├── icon459.xml
│ ├── icon460.xml
│ ├── icon461.xml
│ ├── icon462.xml
│ ├── icon463.xml
│ ├── icon464.xml
│ ├── icon465.xml
│ ├── icon466.xml
│ ├── icon467.xml
│ ├── icon468.xml
│ ├── icon469.xml
│ ├── icon470.xml
│ ├── icon471.xml
│ ├── icon472.xml
│ ├── icon473.xml
│ ├── icon474.xml
│ ├── icon475.xml
│ ├── icon476.xml
│ ├── icon477.xml
│ ├── icon478.xml
│ ├── icon479.xml
│ ├── icon480.xml
│ ├── icon481.xml
│ ├── icon482.xml
│ ├── icon483.xml
│ ├── icon484.xml
│ ├── icon485.xml
│ ├── icon486.xml
│ ├── icon487.xml
│ ├── icon488.xml
│ ├── icon489.xml
│ ├── icon490.xml
│ ├── icon491.xml
│ ├── icon492.xml
│ ├── icon493.xml
│ ├── icon494.xml
│ ├── icon495.xml
│ ├── icon496.xml
│ ├── icon497.xml
│ ├── icon498.xml
│ ├── icon499.xml
│ ├── icon500.xml
│ ├── icon501.xml
│ ├── icon502.xml
│ ├── icon503.xml
│ ├── icon504.xml
│ ├── icon505.xml
│ ├── icon506.xml
│ ├── icon507.xml
│ ├── icon508.xml
│ ├── icon509.xml
│ ├── icon510.xml
│ ├── icon511.xml
│ ├── icon512.xml
│ ├── icon513.xml
│ ├── icon514.xml
│ ├── icon515.xml
│ ├── icon516.xml
│ ├── icon517.xml
│ ├── icon518.xml
│ ├── icon519.xml
│ ├── icon520.xml
│ ├── icon521.xml
│ ├── icon522.xml
│ ├── icon523.xml
│ ├── icon524.xml
│ ├── icon525.xml
│ ├── icon526.xml
│ ├── icon527.xml
│ ├── icon528.xml
│ ├── icon529.xml
│ ├── icon530.xml
│ ├── icon531.xml
│ ├── icon532.xml
│ ├── icon533.xml
│ ├── icon534.xml
│ ├── icon535.xml
│ ├── icon536.xml
│ ├── icon537.xml
│ ├── icon538.xml
│ ├── icon539.xml
│ ├── icon540.xml
│ ├── icon541.xml
│ ├── icon542.xml
│ ├── icon543.xml
│ ├── icon544.xml
│ ├── icon545.xml
│ ├── icon546.xml
│ ├── icon547.xml
│ ├── icon548.xml
│ ├── icon549.xml
│ ├── icon550.xml
│ ├── icon551.xml
│ ├── icon552.xml
│ ├── icon553.xml
│ ├── icon554.xml
│ ├── icon555.xml
│ ├── icon556.xml
│ ├── icon557.xml
│ ├── icon558.xml
│ ├── icon559.xml
│ ├── icon560.xml
│ ├── icon561.xml
│ ├── icon562.xml
│ ├── icon563.xml
│ ├── icon564.xml
│ ├── icon565.xml
│ ├── icon566.xml
│ ├── icon567.xml
│ ├── icon568.xml
│ ├── icon569.xml
│ ├── icon570.xml
│ ├── icon571.xml
│ ├── icon572.xml
│ ├── icon573.xml
│ ├── icon574.xml
│ ├── icon575.xml
│ ├── icon576.xml
│ ├── icon577.xml
│ ├── icon578.xml
│ ├── icon579.xml
│ ├── icon580.xml
│ ├── icon581.xml
│ ├── icon582.xml
│ ├── icon583.xml
│ ├── icon584.xml
│ ├── icon585.xml
│ ├── icon586.xml
│ ├── icon587.xml
│ ├── icon588.xml
│ ├── icon589.xml
│ ├── icon590.xml
│ ├── icon591.xml
│ ├── icon592.xml
│ ├── icon593.xml
│ ├── icon594.xml
│ ├── icon595.xml
│ ├── icon596.xml
│ ├── icon597.xml
│ ├── icon598.xml
│ ├── icon599.xml
│ ├── icon600.xml
│ ├── icon601.xml
│ ├── icon602.xml
│ ├── icon603.xml
│ ├── icon604.xml
│ ├── icon605.xml
│ ├── icon606.xml
│ ├── icon607.xml
│ ├── icon608.xml
│ ├── icon609.xml
│ ├── icon610.xml
│ ├── icon611.xml
│ ├── icon612.xml
│ ├── icon613.xml
│ ├── icon614.xml
│ ├── icon615.xml
│ ├── icon616.xml
│ ├── icon617.xml
│ ├── icon618.xml
│ ├── icon619.xml
│ ├── icon620.xml
│ ├── icon621.xml
│ ├── icon622.xml
│ ├── icon623.xml
│ ├── icon624.xml
│ ├── icon625.xml
│ ├── icon626.xml
│ ├── icon627.xml
│ ├── icon628.xml
│ ├── icon629.xml
│ ├── icon630.xml
│ ├── icon631.xml
│ ├── icon632.xml
│ ├── icon633.xml
│ ├── icon634.xml
│ ├── icon635.xml
│ ├── icon636.xml
│ ├── icon637.xml
│ ├── icon638.xml
│ ├── icon639.xml
│ ├── icon640.xml
│ ├── icon641.xml
│ ├── icon642.xml
│ ├── icon643.xml
│ ├── icon644.xml
│ ├── icon645.xml
│ ├── icon646.xml
│ ├── icon647.xml
│ ├── icon648.xml
│ ├── icon649.xml
│ ├── icon650.xml
│ ├── icon651.xml
│ ├── icon652.xml
│ ├── icon653.xml
│ ├── icon654.xml
│ ├── icon655.xml
│ ├── icon656.xml
│ ├── icon657.xml
│ ├── icon658.xml
│ ├── icon659.xml
│ ├── icon660.xml
│ ├── icon661.xml
│ ├── icon662.xml
│ ├── icon663.xml
│ ├── icon664.xml
│ ├── icon665.xml
│ ├── icon666.xml
│ ├── icon667.xml
│ ├── icon668.xml
│ ├── icon669.xml
│ ├── icon670.xml
│ ├── icon671.xml
│ ├── icon672.xml
│ ├── icon673.xml
│ ├── icon674.xml
│ ├── icon675.xml
│ ├── icon676.xml
│ ├── icon677.xml
│ ├── icon678.xml
│ ├── icon679.xml
│ ├── icon680.xml
│ ├── icon681.xml
│ ├── icon682.xml
│ ├── icon683.xml
│ ├── icon684.xml
│ ├── icon685.xml
│ ├── icon686.xml
│ ├── icon687.xml
│ ├── icon688.xml
│ ├── icon689.xml
│ ├── icon690.xml
│ ├── icon691.xml
│ ├── icon692.xml
│ ├── icon693.xml
│ ├── icon694.xml
│ ├── icon695.xml
│ ├── icon696.xml
│ ├── icon697.xml
│ ├── icon698.xml
│ ├── icon699.xml
│ ├── icon700.xml
│ ├── icon701.xml
│ ├── icon702.xml
│ ├── icon703.xml
│ ├── icon704.xml
│ ├── icon705.xml
│ ├── icon706.xml
│ ├── icon707.xml
│ ├── icon708.xml
│ ├── icon709.xml
│ ├── icon710.xml
│ ├── icon711.xml
│ ├── icon712.xml
│ ├── icon713.xml
│ ├── icon714.xml
│ ├── icon715.xml
│ ├── icon716.xml
│ ├── icon717.xml
│ ├── icon718.xml
│ ├── icon719.xml
│ ├── icon720.xml
│ ├── icon721.xml
│ ├── icon722.xml
│ ├── icon723.xml
│ ├── icon724.xml
│ ├── icon725.xml
│ ├── icon726.xml
│ ├── icon727.xml
│ ├── icon728.xml
│ ├── icon729.xml
│ ├── icon730.xml
│ ├── icon731.xml
│ ├── icon732.xml
│ ├── icon733.xml
│ ├── icon734.xml
│ ├── icon735.xml
│ ├── icon736.xml
│ ├── icon737.xml
│ ├── icon738.xml
│ ├── icon739.xml
│ ├── icon740.xml
│ ├── icon741.xml
│ ├── icon742.xml
│ ├── icon743.xml
│ ├── icon744.xml
│ ├── icon745.xml
│ ├── icon746.xml
│ ├── icon747.xml
│ ├── icon748.xml
│ ├── icon749.xml
│ ├── icon750.xml
│ ├── icon751.xml
│ ├── icon752.xml
│ ├── icon753.xml
│ ├── icon754.xml
│ ├── icon755.xml
│ ├── icon756.xml
│ ├── icon757.xml
│ ├── icon758.xml
│ ├── icon759.xml
│ ├── icon760.xml
│ ├── icon761.xml
│ ├── icon762.xml
│ ├── icon763.xml
│ ├── icon764.xml
│ ├── icon765.xml
│ ├── icon766.xml
│ ├── icon767.xml
│ ├── icon768.xml
│ ├── icon769.xml
│ ├── icon770.xml
│ ├── icon771.xml
│ ├── icon772.xml
│ ├── icon773.xml
│ ├── icon774.xml
│ ├── icon775.xml
│ ├── icon776.xml
│ ├── icon777.xml
│ ├── icon778.xml
│ ├── icon779.xml
│ ├── icon780.xml
│ ├── icon781.xml
│ ├── icon782.xml
│ ├── icon783.xml
│ ├── icon784.xml
│ ├── icon785.xml
│ ├── icon786.xml
│ ├── icon787.xml
│ ├── icon788.xml
│ ├── icon789.xml
│ ├── icon790.xml
│ ├── icon791.xml
│ ├── icon792.xml
│ ├── icon793.xml
│ ├── icon794.xml
│ ├── icon795.xml
│ ├── icon796.xml
│ ├── icon797.xml
│ ├── icon798.xml
│ ├── icon799.xml
│ ├── icon800.xml
│ ├── icon801.xml
│ ├── icon802.xml
│ ├── icon803.xml
│ ├── icon804.xml
│ ├── icon805.xml
│ ├── icon806.xml
│ ├── icon807.xml
│ ├── icon808.xml
│ ├── icon809.xml
│ ├── icon810.xml
│ ├── icon811.xml
│ ├── icon812.xml
│ ├── icon813.xml
│ ├── icon814.xml
│ ├── icon815.xml
│ ├── icon816.xml
│ ├── icon817.xml
│ ├── icon818.xml
│ ├── icon819.xml
│ ├── icon820.xml
│ ├── icon821.xml
│ ├── icon822.xml
│ ├── icon823.xml
│ ├── icon824.xml
│ ├── icon825.xml
│ ├── icon826.xml
│ ├── icon827.xml
│ ├── icon828.xml
│ ├── icon829.xml
│ ├── icon830.xml
│ ├── icon831.xml
│ ├── icon832.xml
│ ├── icon833.xml
│ ├── icon834.xml
│ ├── icon835.xml
│ ├── icon836.xml
│ ├── icon837.xml
│ ├── icon838.xml
│ ├── icon839.xml
│ ├── icon840.xml
│ ├── icon841.xml
│ ├── icon842.xml
│ ├── icon843.xml
│ ├── icon844.xml
│ ├── icon845.xml
│ ├── icon846.xml
│ ├── icon847.xml
│ ├── icon848.xml
│ ├── icon849.xml
│ ├── icon850.xml
│ ├── icon851.xml
│ ├── icon852.xml
│ ├── icon853.xml
│ ├── icon854.xml
│ ├── icon855.xml
│ ├── icon856.xml
│ ├── icon857.xml
│ ├── icon858.xml
│ ├── icon859.xml
│ ├── icon860.xml
│ ├── icon861.xml
│ ├── icon862.xml
│ ├── icon863.xml
│ ├── icon864.xml
│ ├── icon865.xml
│ ├── icon866.xml
│ ├── icon867.xml
│ ├── icon868.xml
│ ├── icon869.xml
│ ├── icon870.xml
│ ├── icon871.xml
│ ├── icon872.xml
│ ├── icon873.xml
│ ├── icon874.xml
│ ├── icon875.xml
│ ├── icon876.xml
│ ├── icon877.xml
│ ├── icon878.xml
│ ├── icon879.xml
│ ├── icon880.xml
│ ├── icon881.xml
│ ├── icon882.xml
│ ├── icon883.xml
│ ├── icon884.xml
│ ├── icon885.xml
│ ├── icon886.xml
│ ├── icon887.xml
│ ├── icon888.xml
│ ├── icon889.xml
│ ├── icon890.xml
│ ├── icon891.xml
│ ├── icon892.xml
│ ├── icon893.xml
│ ├── icon894.xml
│ ├── icon895.xml
│ ├── icon896.xml
│ ├── icon897.xml
│ ├── icon898.xml
│ ├── icon899.xml
│ ├── icon900.xml
│ ├── icon901.xml
│ ├── icon902.xml
│ ├── icon903.xml
│ ├── icon904.xml
│ ├── icon905.xml
│ ├── icon906.xml
│ ├── icon907.xml
│ ├── icon908.xml
│ ├── icon909.xml
│ ├── icon910.xml
│ ├── icon911.xml
│ ├── icon912.xml
│ ├── icon913.xml
│ ├── icon914.xml
│ ├── icon915.xml
│ ├── icon916.xml
│ ├── icon917.xml
│ ├── icon918.xml
│ ├── icon919.xml
│ ├── icon920.xml
│ ├── icon921.xml
│ ├── icon922.xml
│ ├── icon923.xml
│ ├── icon924.xml
│ ├── icon925.xml
│ ├── icon926.xml
│ ├── icon927.xml
│ ├── icon928.xml
│ ├── icon929.xml
│ ├── icon930.xml
│ ├── icon931.xml
│ ├── icon932.xml
│ ├── icon933.xml
│ ├── icon934.xml
│ ├── icon935.xml
│ ├── icon936.xml
│ ├── icon937.xml
│ ├── icon938.xml
│ ├── icon939.xml
│ ├── icon940.xml
│ ├── icon941.xml
│ ├── icon942.xml
│ ├── icon943.xml
│ ├── icon944.xml
│ ├── icon945.xml
│ ├── icon946.xml
│ ├── icon947.xml
│ ├── icon948.xml
│ ├── icon949.xml
│ ├── icon950.xml
│ ├── icon951.xml
│ ├── icon952.xml
│ ├── icon953.xml
│ ├── icon954.xml
│ ├── icon955.xml
│ ├── icon956.xml
│ ├── icon957.xml
│ ├── icon958.xml
│ ├── icon959.xml
│ ├── icon960.xml
│ ├── icon961.xml
│ ├── icon962.xml
│ ├── icon963.xml
│ ├── icon964.xml
│ ├── icon965.xml
│ ├── icon966.xml
│ ├── icon967.xml
│ ├── icon968.xml
│ ├── icon969.xml
│ ├── icon970.xml
│ ├── icon971.xml
│ ├── icon972.xml
│ ├── icon973.xml
│ ├── icon974.xml
│ ├── icon975.xml
│ ├── icon976.xml
│ ├── icon977.xml
│ ├── icon978.xml
│ ├── icon979.xml
│ ├── icon980.xml
│ ├── icon981.xml
│ ├── icon982.xml
│ ├── icon983.xml
│ ├── icon984.xml
│ ├── icon985.xml
│ ├── icon986.xml
│ ├── icon987.xml
│ ├── icon988.xml
│ ├── icon989.xml
│ ├── icon990.xml
│ ├── icon991.xml
│ ├── icon992.xml
│ ├── icon993.xml
│ ├── icon994.xml
│ ├── icon995.xml
│ ├── icon996.xml
│ ├── icon997.xml
│ ├── icon998.xml
│ ├── icon999.xml
│ └── icon_unknown.xml
│ ├── mipmap-anydpi-v26
│ └── ic_launcher.xml
│ ├── mipmap-hdpi
│ └── ic_launcher.png
│ ├── mipmap-mdpi
│ └── ic_launcher.png
│ ├── mipmap-xhdpi
│ └── ic_launcher.png
│ ├── mipmap-xxhdpi
│ └── ic_launcher.png
│ ├── mipmap-xxxhdpi
│ └── ic_launcher.png
│ ├── values-de-rCH
│ └── strings.xml
│ ├── values-de
│ └── strings.xml
│ ├── values-en-rGB
│ └── strings.xml
│ ├── values-es
│ └── strings.xml
│ ├── values-fr
│ └── strings.xml
│ ├── values-it
│ └── strings.xml
│ ├── values-ja
│ └── strings.xml
│ ├── values-ko
│ └── strings.xml
│ ├── values-night
│ └── colors.xml
│ ├── values-nl
│ └── strings.xml
│ ├── values-pl
│ └── strings.xml
│ ├── values-pt-rBR
│ └── strings.xml
│ ├── values-pt
│ └── strings.xml
│ ├── values-ru
│ └── strings.xml
│ ├── values-tr
│ └── strings.xml
│ ├── values-uk
│ └── strings.xml
│ ├── values-zh-rCN
│ └── strings.xml
│ ├── values
│ ├── colors.xml
│ ├── strings.xml
│ ├── styles.xml
│ └── themes.xml
│ └── xml
│ └── shortcuts.xml
├── build.gradle.kts
├── gradle.properties
├── gradle
├── libs.versions.toml
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
└── settings.gradle.kts
/.gitignore:
--------------------------------------------------------------------------------
1 | crowdin.yml
2 |
--------------------------------------------------------------------------------
/LICENCE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2015 Roland Meyer
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/Privacy Policy.md:
--------------------------------------------------------------------------------
1 | # Privacy Policy
2 |
3 | This app does not collect or store any user data.
4 |
5 | The app requires access to the device's location services in order to display the current speed. The user's location, speed or altitude is not recorded and not sent to any party.
6 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/.gitignore:
--------------------------------------------------------------------------------
1 | .gradle/
2 | local.properties
3 | .idea/
4 | build/
5 | *.iml
6 | gradlew
7 | gradlew.bat
8 | app/build
9 | app/release
10 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/debug/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Speedometer Dev
4 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/debug/res/xml/shortcuts.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/kotlin/ch/rmy/android/statusbar_tacho/Application.kt:
--------------------------------------------------------------------------------
1 | package ch.rmy.android.statusbar_tacho
2 |
3 | import android.app.Application
4 | import ch.rmy.android.statusbar_tacho.utils.Settings
5 |
6 | class Application : Application() {
7 | override fun onCreate() {
8 | super.onCreate()
9 | Settings.init(this)
10 | }
11 | }
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/kotlin/ch/rmy/android/statusbar_tacho/activities/Modal.kt:
--------------------------------------------------------------------------------
1 | package ch.rmy.android.statusbar_tacho.activities
2 |
3 | enum class Modal {
4 | WELCOME,
5 | SETTINGS,
6 | TOP_SPEED,
7 | }
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/kotlin/ch/rmy/android/statusbar_tacho/activities/ToggleActivity.kt:
--------------------------------------------------------------------------------
1 | package ch.rmy.android.statusbar_tacho.activities
2 |
3 | import android.app.Activity
4 | import android.content.Intent
5 | import android.os.Bundle
6 | import ch.rmy.android.statusbar_tacho.activities.SettingsActivity.Companion.EXTRA_ENABLE
7 | import ch.rmy.android.statusbar_tacho.extensions.context
8 |
9 | import ch.rmy.android.statusbar_tacho.services.SpeedometerService
10 | import ch.rmy.android.statusbar_tacho.utils.PermissionManager
11 | import ch.rmy.android.statusbar_tacho.utils.Settings
12 |
13 | class ToggleActivity : Activity() {
14 |
15 | private val permissionManager: PermissionManager by lazy {
16 | PermissionManager(context)
17 | }
18 |
19 | public override fun onCreate(savedInstanceState: Bundle?) {
20 | super.onCreate(savedInstanceState)
21 |
22 | if (permissionManager.hasPermission()) {
23 | val newState = !Settings.isRunning
24 | SpeedometerService.setRunningState(context, newState)
25 | Settings.isRunning = newState
26 | } else {
27 | startActivity(
28 | Intent(this, SettingsActivity::class.java)
29 | .putExtra(EXTRA_ENABLE, true)
30 | )
31 | }
32 | finish()
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/kotlin/ch/rmy/android/statusbar_tacho/activities/WelcomeDialog.kt:
--------------------------------------------------------------------------------
1 | package ch.rmy.android.statusbar_tacho.activities
2 |
3 | import androidx.compose.material3.AlertDialog
4 | import androidx.compose.material3.Text
5 | import androidx.compose.material3.TextButton
6 | import androidx.compose.runtime.Composable
7 | import androidx.compose.ui.res.stringResource
8 | import androidx.compose.ui.tooling.preview.Preview
9 | import ch.rmy.android.statusbar_tacho.R
10 |
11 | @Composable
12 | fun WelcomeDialog(
13 | onDismissRequest: () -> Unit,
14 | ) {
15 | AlertDialog(
16 | onDismissRequest = onDismissRequest,
17 | confirmButton = {
18 | TextButton(
19 | onClick = onDismissRequest,
20 | ) {
21 | Text(stringResource(R.string.button_ok))
22 | }
23 | },
24 | title = {
25 | Text(stringResource(R.string.intro_title))
26 | },
27 | text = {
28 | Text(stringResource(R.string.intro_message))
29 | },
30 | )
31 | }
32 |
33 | @Preview
34 | @Composable
35 | private fun WelcomeDialog_Preview() {
36 | WelcomeDialog(
37 | onDismissRequest = {},
38 | )
39 | }
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/kotlin/ch/rmy/android/statusbar_tacho/extensions/Extensions.kt:
--------------------------------------------------------------------------------
1 | package ch.rmy.android.statusbar_tacho.extensions
2 |
3 | import android.app.Activity
4 | import android.app.Service
5 | import android.content.Context
6 | import androidx.compose.foundation.interaction.MutableInteractionSource
7 | import androidx.compose.foundation.interaction.PressInteraction
8 | import androidx.compose.runtime.Composable
9 | import androidx.compose.runtime.LaunchedEffect
10 | import androidx.compose.runtime.remember
11 | import ch.rmy.android.statusbar_tacho.utils.Destroyer
12 | import kotlinx.coroutines.Job
13 |
14 | fun Job.ownedBy(destroyer: Destroyer) {
15 | destroyer.own {
16 | cancel()
17 | }
18 | }
19 |
20 | val Activity.context: Context
21 | get() = this
22 |
23 | val Service.context: Context
24 | get() = this
25 |
26 | @Composable
27 | fun clickOnlyInteractionSource(onClick: () -> Unit) = remember { MutableInteractionSource() }
28 | .also { interactionSource ->
29 | LaunchedEffect(interactionSource) {
30 | interactionSource.interactions.collect {
31 | if (it is PressInteraction.Release) {
32 | onClick()
33 | }
34 | }
35 | }
36 | }
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/kotlin/ch/rmy/android/statusbar_tacho/icons/IconProvider.kt:
--------------------------------------------------------------------------------
1 | package ch.rmy.android.statusbar_tacho.icons
2 |
3 | import android.annotation.SuppressLint
4 | import android.content.Context
5 | import android.content.res.Resources
6 | import androidx.annotation.DrawableRes
7 | import java.util.Locale
8 |
9 | class IconProvider(context: Context) {
10 |
11 | private val resources: Resources = context.resources
12 | private val packageName: String = context.packageName
13 |
14 | @SuppressLint("DiscouragedApi")
15 | @DrawableRes
16 | fun getIconForNumber(number: Int): Int =
17 | String.format(Locale.US, RES_FORMAT, number.coerceIn(0, MAX_VALUE))
18 | .let { iconName ->
19 | resources.getIdentifier(iconName, RES_TYPE, packageName)
20 | }
21 |
22 | companion object {
23 |
24 | private const val MAX_VALUE = 999
25 | private const val RES_FORMAT = "icon%03d"
26 | private const val RES_TYPE = "drawable"
27 |
28 | }
29 |
30 | }
31 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/kotlin/ch/rmy/android/statusbar_tacho/location/SpeedState.kt:
--------------------------------------------------------------------------------
1 | package ch.rmy.android.statusbar_tacho.location
2 |
3 | sealed interface SpeedState {
4 | data class SpeedChanged(val speed: Float) : SpeedState
5 | data object SpeedUnavailable : SpeedState
6 | data object GPSDisabled : SpeedState
7 | data object Disabled : SpeedState
8 | }
9 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/kotlin/ch/rmy/android/statusbar_tacho/receivers/DeviceBootReceiver.kt:
--------------------------------------------------------------------------------
1 | package ch.rmy.android.statusbar_tacho.receivers
2 |
3 |
4 | import android.content.BroadcastReceiver
5 | import android.content.Context
6 | import android.content.Intent
7 | import ch.rmy.android.statusbar_tacho.services.SpeedometerService
8 | import ch.rmy.android.statusbar_tacho.utils.Settings
9 |
10 | class DeviceBootReceiver : BroadcastReceiver() {
11 |
12 | override fun onReceive(context: Context, intent: Intent) {
13 | if (intent.action != Intent.ACTION_BOOT_COMPLETED) {
14 | return
15 | }
16 | if (Settings.isRunning) {
17 | SpeedometerService.setRunningState(context, true)
18 | }
19 | }
20 |
21 | }
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/kotlin/ch/rmy/android/statusbar_tacho/receivers/DismissReceiver.kt:
--------------------------------------------------------------------------------
1 | package ch.rmy.android.statusbar_tacho.receivers
2 |
3 | import android.content.BroadcastReceiver
4 | import android.content.Context
5 | import android.content.Intent
6 | import ch.rmy.android.statusbar_tacho.services.SpeedometerService
7 | import ch.rmy.android.statusbar_tacho.utils.Settings
8 |
9 | class DismissReceiver : BroadcastReceiver() {
10 | override fun onReceive(context: Context, intent: Intent) {
11 | if (intent.action != DISMISS_ACTION) {
12 | return
13 | }
14 | if (Settings.isRunning) {
15 | Settings.isRunning = false
16 | SpeedometerService.setRunningState(context, false)
17 | }
18 | }
19 |
20 | companion object {
21 | const val DISMISS_ACTION = "ch.rmy.android.statusbar_tacho.NOTIFICATION_DISMISSED"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/kotlin/ch/rmy/android/statusbar_tacho/utils/Destroyable.kt:
--------------------------------------------------------------------------------
1 | package ch.rmy.android.statusbar_tacho.utils
2 |
3 | interface Destroyable {
4 |
5 | fun destroy()
6 |
7 | }
8 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/kotlin/ch/rmy/android/statusbar_tacho/utils/Destroyer.kt:
--------------------------------------------------------------------------------
1 | package ch.rmy.android.statusbar_tacho.utils
2 |
3 | class Destroyer : Destroyable {
4 |
5 | private val destroyables = mutableListOf()
6 |
7 | fun own(destroyable: T): T {
8 | destroyables.add(destroyable)
9 | return destroyable
10 | }
11 |
12 | fun own(destroyable: () -> Unit) {
13 | destroyables.add(object : Destroyable {
14 | override fun destroy() {
15 | destroyable.invoke()
16 | }
17 | })
18 | }
19 |
20 | override fun destroy() {
21 | for (destroyable in destroyables) {
22 | destroyable.destroy()
23 | }
24 | destroyables.clear()
25 | }
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/kotlin/ch/rmy/android/statusbar_tacho/utils/PermissionManager.kt:
--------------------------------------------------------------------------------
1 | package ch.rmy.android.statusbar_tacho.utils
2 |
3 | import android.Manifest.permission.ACCESS_COARSE_LOCATION
4 | import android.Manifest.permission.ACCESS_FINE_LOCATION
5 | import android.Manifest.permission.POST_NOTIFICATIONS
6 | import android.app.Activity
7 | import android.content.Context
8 | import android.os.Build
9 | import androidx.core.app.ActivityCompat
10 | import androidx.core.content.PermissionChecker
11 | import androidx.core.content.PermissionChecker.PERMISSION_GRANTED
12 |
13 | class PermissionManager(private val context: Context) {
14 |
15 | fun hasPermission(): Boolean =
16 | (PermissionChecker.checkSelfPermission(context, ACCESS_FINE_LOCATION) == PERMISSION_GRANTED
17 | || PermissionChecker.checkSelfPermission(context, ACCESS_COARSE_LOCATION) == PERMISSION_GRANTED)
18 |
19 | fun requestPermissions(activity: Activity) {
20 | val permissions =
21 | if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
22 | arrayOf(ACCESS_FINE_LOCATION, POST_NOTIFICATIONS)
23 | } else {
24 | arrayOf(ACCESS_FINE_LOCATION)
25 | }
26 | ActivityCompat.requestPermissions(activity, permissions, 0)
27 | }
28 |
29 | fun wasGranted(grantResults: IntArray): Boolean =
30 | grantResults.all { it == PERMISSION_GRANTED }
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/kotlin/ch/rmy/android/statusbar_tacho/utils/SpeedFormatter.kt:
--------------------------------------------------------------------------------
1 | package ch.rmy.android.statusbar_tacho.utils
2 |
3 | import android.content.Context
4 | import ch.rmy.android.statusbar_tacho.R
5 | import ch.rmy.android.statusbar_tacho.units.SpeedUnit
6 | import java.util.Locale
7 |
8 | object SpeedFormatter {
9 |
10 | fun formatSpeed(context: Context, speed: Float, unit: SpeedUnit? = null): String {
11 | val speedString = if (speed < 100f) {
12 | String.format(Locale.getDefault(), "%1$.1f", speed)
13 | } else {
14 | String.format(Locale.getDefault(), "%1$.0f", speed)
15 | }
16 | return unit
17 | ?.let {
18 | context.getString(
19 | R.string.speed_format_with_unit,
20 | speedString,
21 | context.getString(it.nameRes)
22 | )
23 | }
24 | ?: speedString
25 | }
26 |
27 | }
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/kotlin/ch/rmy/android/statusbar_tacho/utils/Trigonometry.kt:
--------------------------------------------------------------------------------
1 | package ch.rmy.android.statusbar_tacho.utils
2 |
3 | import kotlin.math.cos
4 | import kotlin.math.sin
5 |
6 | object Trigonometry {
7 |
8 | fun sin(degrees: Float): Float = sin(toRadians(degrees)).toFloat()
9 |
10 | fun cos(degrees: Float): Float = cos(toRadians(degrees)).toFloat()
11 |
12 | private fun toRadians(degrees: Float): Double = degrees / 180 * Math.PI
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/kotlin/ch/rmy/android/statusbar_tacho/views/Gauge.kt:
--------------------------------------------------------------------------------
1 | package ch.rmy.android.statusbar_tacho.views
2 |
3 | import androidx.compose.runtime.Composable
4 | import androidx.compose.ui.Modifier
5 | import androidx.compose.ui.viewinterop.AndroidView
6 | import androidx.compose.ui.viewinterop.NoOpUpdate
7 |
8 | @Composable
9 | fun Gauge(
10 | modifier: Modifier = Modifier,
11 | value: Float,
12 | maxValue: Float,
13 | markCount: Int,
14 | theme: GaugeTheme,
15 | showNumbers: Boolean,
16 | ) {
17 | AndroidView(
18 | modifier = modifier,
19 | factory = { context ->
20 | GaugeView(context, value, maxValue, markCount, theme)
21 | },
22 | update = { gaugeView ->
23 | gaugeView.value = value
24 | gaugeView.maxValue = maxValue
25 | gaugeView.markCount = markCount
26 | gaugeView.theme = theme
27 | gaugeView.showNumbers = showNumbers
28 | },
29 | onReset = NoOpUpdate,
30 | )
31 | }
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/kotlin/ch/rmy/android/statusbar_tacho/views/GaugeScale.kt:
--------------------------------------------------------------------------------
1 | package ch.rmy.android.statusbar_tacho.views
2 |
3 | import androidx.compose.runtime.Stable
4 |
5 | enum class GaugeScale(
6 | @Stable
7 | val factor: Float?,
8 | ) {
9 | FAST(1f),
10 | MEDIUM(4f),
11 | SLOW(10f),
12 | VERY_FAST(0.25f),
13 | DYNAMIC(null),
14 | ;
15 |
16 | companion object {
17 | val FACTORS = arrayOf(10f, 4f, 1f, 0.25f, 0.125f, 0.0625f)
18 | }
19 | }
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/kotlin/ch/rmy/android/statusbar_tacho/views/ThemeId.kt:
--------------------------------------------------------------------------------
1 | package ch.rmy.android.statusbar_tacho.views
2 |
3 | enum class ThemeId {
4 | DEFAULT,
5 | BLUE,
6 | RED,
7 | BLACK_AND_WHITE,
8 | }
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/play/contact-email.txt:
--------------------------------------------------------------------------------
1 | android@rmy.ch
2 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/play/contact-website.txt:
--------------------------------------------------------------------------------
1 | https://www.rmy.ch/Contact
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/play/default-language.txt:
--------------------------------------------------------------------------------
1 | en-US
2 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/play/listings/de-DE/full-description.txt:
--------------------------------------------------------------------------------
1 | Diese simple App zeigt deine aktuelle Geschwindigkeit (GPS) als Notification in der Statuszeile am oberen Rand deines Displays, so dass du dein Tempo immer im Blick hast, ohne zwischen Applikationen wechseln zu müssen.
2 |
3 | Bitte nutze diese App verantwortungsvoll und bedenke die Gefahren des Handygebrauchs während des Autofahrens.
4 |
5 | Diese App ist Open Source, finde Sie auf Github: https://github.com/Waboodoo/Status-Bar-Tachometer
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/play/listings/de-DE/short-description.txt:
--------------------------------------------------------------------------------
1 | Zeigt deine aktuelle Geschwindigkeit als Notification in der Statuszeile
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/play/listings/de-DE/title.txt:
--------------------------------------------------------------------------------
1 | Status Bar Tachometer
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/play/listings/en-US/full-description.txt:
--------------------------------------------------------------------------------
1 | This simplistic app displays your current speed, obtained from GPS readings, as an icon in your status bar at the top of your screen. This speedometer allows you to check how fast you are travelling without having to switch between apps.
2 |
3 | Please be aware of the dangers of using your phone while driving.
4 |
5 | This app is open source, find it on Github: https://github.com/Waboodoo/Status-Bar-Tachometer
6 |
7 | If you have any questions, feature requests or other comments feel free to contact me: android@rmy.ch.
8 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/play/listings/en-US/graphics/feature-graphic/header.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Waboodoo/Status-Bar-Tachometer/88aa1fa03cf9f15db275f8f6fcccc1384fd50fb5/StatusBarSpeedometer/app/src/main/play/listings/en-US/graphics/feature-graphic/header.png
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/play/listings/en-US/graphics/icon/logo.icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Waboodoo/Status-Bar-Tachometer/88aa1fa03cf9f15db275f8f6fcccc1384fd50fb5/StatusBarSpeedometer/app/src/main/play/listings/en-US/graphics/icon/logo.icon.png
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/play/listings/en-US/graphics/phone-screenshots/01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Waboodoo/Status-Bar-Tachometer/88aa1fa03cf9f15db275f8f6fcccc1384fd50fb5/StatusBarSpeedometer/app/src/main/play/listings/en-US/graphics/phone-screenshots/01.png
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/play/listings/en-US/graphics/phone-screenshots/02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Waboodoo/Status-Bar-Tachometer/88aa1fa03cf9f15db275f8f6fcccc1384fd50fb5/StatusBarSpeedometer/app/src/main/play/listings/en-US/graphics/phone-screenshots/02.png
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/play/listings/en-US/graphics/phone-screenshots/03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Waboodoo/Status-Bar-Tachometer/88aa1fa03cf9f15db275f8f6fcccc1384fd50fb5/StatusBarSpeedometer/app/src/main/play/listings/en-US/graphics/phone-screenshots/03.png
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/play/listings/en-US/graphics/phone-screenshots/04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Waboodoo/Status-Bar-Tachometer/88aa1fa03cf9f15db275f8f6fcccc1384fd50fb5/StatusBarSpeedometer/app/src/main/play/listings/en-US/graphics/phone-screenshots/04.png
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/play/listings/en-US/graphics/phone-screenshots/05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Waboodoo/Status-Bar-Tachometer/88aa1fa03cf9f15db275f8f6fcccc1384fd50fb5/StatusBarSpeedometer/app/src/main/play/listings/en-US/graphics/phone-screenshots/05.png
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/play/listings/en-US/short-description.txt:
--------------------------------------------------------------------------------
1 | Displays your current speed in your status bar
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/play/listings/en-US/title.txt:
--------------------------------------------------------------------------------
1 | Status Bar Speedometer
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/play/listings/es-ES/full-description.txt:
--------------------------------------------------------------------------------
1 | Esta aplicación simplista muestra tu velocidad actual, obtenida de las lecturas del GPS, como un icono en tu barra de estado en la parte superior de tu pantalla. Este velocímetro te permite comprobar la velocidad a la que viajas sin tener que cambiar de aplicación.
2 |
3 | Ten en cuenta los peligros de usar tu teléfono mientras conduces.
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/play/listings/es-ES/short-description.txt:
--------------------------------------------------------------------------------
1 | Muestra tu velocidad actual en tu barra de estado
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/play/listings/es-ES/title.txt:
--------------------------------------------------------------------------------
1 | Velocímetro de barra de estado
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/play/listings/fr-FR/full-description.txt:
--------------------------------------------------------------------------------
1 | Cette application simpliste affiche votre vitesse actuelle, obtenue à partir des lectures GPS, sous forme d'icône dans votre barre d'état en haut de votre écran. Ce compteur de vitesse vous permet de vérifier à quelle vitesse vous voyagez sans avoir à basculer entre les applications.
2 |
3 | Soyez conscient des dangers liés à l'utilisation de votre téléphone en conduisant.
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/play/listings/fr-FR/short-description.txt:
--------------------------------------------------------------------------------
1 | Affiche votre vitesse actuelle dans votre barre de statut
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/play/listings/fr-FR/title.txt:
--------------------------------------------------------------------------------
1 | Compteur de vitesse
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/play/listings/pl-PL/full-description.txt:
--------------------------------------------------------------------------------
1 | Ta prosta aplikacja wyświetla Twoją aktualną prędkość otrzymaną z odczytów GPS jako ikonę na pasku stanu u góry ekranu. Prędkościomierz ten pozwala sprawdzić, jak szybko podróżujesz, bez konieczności przełączania się między aplikacjami.
2 |
3 | Należy pamiętać o niebezpieczeństwach związanych z używaniem telefonu podczas prowadzenia samochodu.
4 |
5 | Ta aplikacja jest otwartoźródłowa, znajdziesz ją na GitHubie: https://github.com/Waboodoo/Status-Bar-Tachometer
6 |
7 | Jeśli masz jakieś pytania, prośby o nowe funkcjonalności lub inne uwagi, nie wahaj się ze mną skontaktować: android@rmy.ch.
8 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/play/listings/pl-PL/short-description.txt:
--------------------------------------------------------------------------------
1 | Wyświetla Twoją aktualną prędkość na pasku stanu
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/play/listings/pl-PL/title.txt:
--------------------------------------------------------------------------------
1 | Prędkościomierz na pasku stanu
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/play/listings/ru-RU/full-description.txt:
--------------------------------------------------------------------------------
1 | Это упрощенное приложение отображает вашу текущую скорость, полученную по показаниям GPS, в виде значка в строке состояния в верхней части экрана. Этот спидометр позволяет вам проверять, насколько быстро вы едете, не переключаясь между приложениями.
2 |
3 | Помните об опасности использования телефона во время вождения.
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/play/listings/ru-RU/short-description.txt:
--------------------------------------------------------------------------------
1 | Отображает вашу текущую скорость в строке состояния
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/play/listings/ru-RU/title.txt:
--------------------------------------------------------------------------------
1 | Строка состояния - Спидометр
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/play/listings/tr-TR/full-description.txt:
--------------------------------------------------------------------------------
1 | Bu basit uygulama, GPS okuyarak elde edilen anlık hızınızı, ekranınızın üst kısmındaki durum çubuğunuzda bir simge olarak görüntüler. Bu hız göstergesi, uygulamalar arasında geçiş yapmak zorunda kalmadan ne kadar hızlı gittiğinizi görmenizi sağlar.
2 |
3 | Lütfen sürüş sırasında telefonunuzu kullanmanın tehlikeli olduğunu unutmayın.
4 |
5 | Bu uygulama açık kaynaklıdır, Github'da bulabilirsiniz: https://github.com/Waboodoo/Status-Bar-Tachometer
6 |
7 | Herhangi bir sorunuz, özellik isteğiniz veya başka yorumlarınız varsa benimle iletişime geçmekten çekinmeyin: android@rmy.ch
8 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/play/listings/tr-TR/short-description.txt:
--------------------------------------------------------------------------------
1 | Durum çubuğunuzda anlık hızınızı görüntüler
2 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/play/listings/tr-TR/title.txt:
--------------------------------------------------------------------------------
1 | Durum Çubuğu Hız Göstergesi
2 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/ic_launcher_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon000.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon001.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon002.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon003.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon004.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon005.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon006.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon007.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon009.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon010.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon011.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon012.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon014.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon015.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon016.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon017.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon021.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon024.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon027.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon037.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon040.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon041.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon042.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon044.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon045.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon047.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon051.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon054.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon057.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon061.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon067.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon070.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon071.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon072.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon073.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon074.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon075.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon076.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon077.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon079.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon091.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon097.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon101.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon104.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon107.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon110.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon111.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon112.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon114.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon115.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon117.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon121.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon124.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon127.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon140.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon141.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon142.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon144.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon145.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon147.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon151.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon154.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon157.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon170.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon171.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon172.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon174.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon175.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon177.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon211.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon214.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon217.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon241.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon244.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon247.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon271.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon274.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon277.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon401.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon404.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon407.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon410.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon411.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon412.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon414.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon415.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon417.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon421.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon424.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon427.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon440.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon441.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon442.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon444.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon445.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon447.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon451.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon454.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon457.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon470.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon471.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon472.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon474.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon475.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon477.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon511.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon514.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon517.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon541.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon544.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon547.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon571.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon574.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon577.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon677.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon701.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon704.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon707.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon710.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon711.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon712.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon714.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon715.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon717.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon721.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon724.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon727.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon740.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon741.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon742.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon744.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon745.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon747.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon751.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon754.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon757.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon770.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon771.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon772.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon774.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon775.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon777.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon977.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/drawable/icon_unknown.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Waboodoo/Status-Bar-Tachometer/88aa1fa03cf9f15db275f8f6fcccc1384fd50fb5/StatusBarSpeedometer/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Waboodoo/Status-Bar-Tachometer/88aa1fa03cf9f15db275f8f6fcccc1384fd50fb5/StatusBarSpeedometer/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Waboodoo/Status-Bar-Tachometer/88aa1fa03cf9f15db275f8f6fcccc1384fd50fb5/StatusBarSpeedometer/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Waboodoo/Status-Bar-Tachometer/88aa1fa03cf9f15db275f8f6fcccc1384fd50fb5/StatusBarSpeedometer/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Waboodoo/Status-Bar-Tachometer/88aa1fa03cf9f15db275f8f6fcccc1384fd50fb5/StatusBarSpeedometer/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/values-de-rCH/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Schliessen
5 |
6 | Fuss pro Sekunde
7 | Schwarz und Weiss
8 |
9 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/values-en-rGB/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | kilometres per hour
5 |
6 | metres per second
7 |
8 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/values-night/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | - #FFFFFF
4 | - #C0C0C0
5 | - #FFFFFF
6 | - #99FFFFFF
7 |
8 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | - #00000000
4 | - #FF607D8B
5 | - #FF37474F
6 | - #141B1E
7 | - #99141B1E
8 |
9 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/values/themes.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/app/src/main/res/xml/shortcuts.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
11 |
12 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/build.gradle.kts:
--------------------------------------------------------------------------------
1 | buildscript {
2 | repositories {
3 | mavenCentral()
4 | google()
5 | }
6 | dependencies {
7 | classpath(libs.android.gradle)
8 | classpath(libs.kotlin.gradle.plugin)
9 | }
10 | }
11 |
12 | plugins {
13 | alias(libs.plugins.compose.compiler) apply false
14 | }
15 |
16 | allprojects {
17 | repositories {
18 | mavenCentral()
19 | google()
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/StatusBarSpeedometer/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx1536M
2 | android.useAndroidX=true
3 | android.nonTransitiveRClass=false
4 | android.nonFinalResIds=false
--------------------------------------------------------------------------------
/StatusBarSpeedometer/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Waboodoo/Status-Bar-Tachometer/88aa1fa03cf9f15db275f8f6fcccc1384fd50fb5/StatusBarSpeedometer/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/StatusBarSpeedometer/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | zipStoreBase=GRADLE_USER_HOME
4 | zipStorePath=wrapper/dists
5 | distributionSha256Sum=544c35d6bd849ae8a5ed0bcea39ba677dc40f49df7d1835561582da2009b961d
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
--------------------------------------------------------------------------------
/StatusBarSpeedometer/settings.gradle.kts:
--------------------------------------------------------------------------------
1 | include(":app")
2 |
--------------------------------------------------------------------------------