Skip to content

Commit

Permalink
Merge pull request #154 from bailuk/stage
Browse files Browse the repository at this point in the history
v1.25
  • Loading branch information
bailuk committed Apr 6, 2024
2 parents 7529a98 + 5f3a06d commit 258f466
Show file tree
Hide file tree
Showing 481 changed files with 10,307 additions and 12,718 deletions.
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -82,3 +82,7 @@ todo/
.flatpak-builder/
gradle-sources.json?*
maven-local

# nix-shell
/aat-android/sdk
/shell.nix
13 changes: 3 additions & 10 deletions aat-android/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -90,24 +90,17 @@ dependencies {

// MapsForge POI
implementation ("org.mapsforge:mapsforge-poi-android:$mapsForgeVersion")
implementation ("org.mapsforge:sqlite-android:$mapsForgeVersion")

// SqLite natives needed by MapsForge POI (when using remote repository)
implementation ("org.mapsforge:sqlite-android:$mapsForgeVersion:natives-armeabi-v7a")
implementation ("org.mapsforge:sqlite-android:$mapsForgeVersion:natives-arm64-v8a")
implementation ("org.mapsforge:sqlite-android:$mapsForgeVersion:natives-x86")
implementation ("org.mapsforge:sqlite-android:$mapsForgeVersion:natives-x86_64")
testImplementation("org.testng:testng:6.9.6")

// Acra
val acraVersion = "5.7.0"
val acraVersion : String by project
implementation ("ch.acra:acra-mail:$acraVersion")
implementation ("ch.acra:acra-dialog:$acraVersion")


// test
// https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api
testImplementation("org.junit.jupiter:junit-jupiter-api:5.9.2")
testImplementation("org.junit.jupiter:junit-jupiter-api:5.10.2")
testImplementation("org.testng:testng:7.9.0")
// Optional -- Robolectric environment
testImplementation("androidx.test:core:1.5.0")
// Optional -- Mockito framework
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ abstract class AbsActivity : Activity() {
builder.append("<br>Created activities: ")
builder.append(created)
builder.append("<br>Count of application starts: ")
builder.append(SolidStartCount(Storage(this)).value)
builder.append(SolidStartCount(Storage(this)).getValue())
builder.append("</p>")
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ import ch.bailu.aat_lib.service.directory.Iterator
import ch.bailu.aat_lib.service.directory.IteratorSimple
import ch.bailu.foc.Foc
import ch.bailu.foc_android.FocAndroidFactory
import javax.annotation.Nonnull

abstract class AbsGpxListActivity : ActivityContext(), OnItemClickListener, OnPreferencesChanged {
private val theme: UiTheme = AppTheme.trackList
Expand Down Expand Up @@ -93,7 +92,7 @@ abstract class AbsGpxListActivity : ActivityContext(), OnItemClickListener, OnPr
listView?.setIterator(this, iteratorSimple)
fileControlBar?.setIterator(iteratorSimple)
sdirectory?.apply {
listView?.setSelection(position.value)
listView?.setSelection(position.getValue())
register(this@AbsGpxListActivity)
setListBackgroundColor(createSelectionString().isNotEmpty())
}
Expand All @@ -120,11 +119,11 @@ abstract class AbsGpxListActivity : ActivityContext(), OnItemClickListener, OnPr
}

private fun displayFileOnPosition(position: Int) {
sdirectory?.position?.value = position
sdirectory?.position?.setValue(position)
displayFile()
}

override fun onPreferencesChanged(@Nonnull s: StorageInterface, @Nonnull key: String) {
override fun onPreferencesChanged(storage: StorageInterface, key: String) {
sdirectory?.apply {
if (containsKey(key)) {
setListBackgroundColor(createSelectionString().isNotEmpty())
Expand Down Expand Up @@ -161,10 +160,10 @@ abstract class AbsGpxListActivity : ActivityContext(), OnItemClickListener, OnPr
busyControl = BusyViewControlDbSync(contentView)
val map: MapViewInterface = MapFactory.DEF(acontext, solidKey).list()

fileControlBar =
FileControlBarLayer(appContext, map.mContext, acontext, appContext.summaryConfig)
fileControlBar = FileControlBarLayer(appContext, map.getMContext(), acontext, appContext.summaryConfig).apply {
map.add(this)
}

map.add(fileControlBar)

val summary = VerticalScrollView(acontext)
summary.add(TitleView(acontext, label, theme))
Expand All @@ -173,7 +172,7 @@ abstract class AbsGpxListActivity : ActivityContext(), OnItemClickListener, OnPr
summary.addAllContent(acontext, summaryData, theme, InfoID.LIST_SUMMARY)
val title = TitleView(acontext, filterLabel, filterTheme)
summary.add(title)
summary.addAllFilterViews(map.mContext, filterTheme)
summary.addAllFilterViews(map.getMContext(), filterTheme)
val bar = MainControlBar(acontext)
val layout = createLayout(map, summary, bar)
contentView.add(bar)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ class ExternalListActivity : AbsGpxListActivity() {
}

override val directory: Foc
get() = SolidExternalDirectory(this).valueAsFile
get() = SolidExternalDirectory(this).getValueAsFile()
override val label: String
get() = getString(R.string.intro_external_list)
}
23 changes: 10 additions & 13 deletions aat-android/src/main/kotlin/ch/bailu/aat/activities/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import android.view.View
import android.widget.LinearLayout
import ch.bailu.aat.app.ActivitySwitcher
import ch.bailu.aat.dispatcher.SensorSource
import ch.bailu.aat.preferences.system.AndroidSolidDataDirectory
import ch.bailu.aat.preferences.system.AndroidSolidDataDirectoryDefault
import ch.bailu.aat.preferences.system.SolidExternalDirectory
import ch.bailu.aat.util.ui.AppLayout
import ch.bailu.aat.util.ui.theme.AppTheme
Expand All @@ -22,8 +22,10 @@ import ch.bailu.aat_lib.gpx.InfoID
import ch.bailu.aat_lib.preferences.OnPreferencesChanged
import ch.bailu.aat_lib.preferences.StorageInterface
import ch.bailu.aat_lib.preferences.presets.SolidPreset
import ch.bailu.aat_lib.preferences.system.SolidDataDirectory
import ch.bailu.aat_lib.util.fs.AppDirectory
import javax.annotation.Nonnull
import ch.bailu.foc_android.FocAndroidFactory


class MainActivity : ActivityContext() {
private val theme = AppTheme.intro
Expand Down Expand Up @@ -103,7 +105,7 @@ class MainActivity : ActivityContext() {
}

fun setText() {
visibility = if (sdirectory.valueAsFile.canRead()) {
visibility = if (sdirectory.getValueAsFile().canRead()) {
VISIBLE
} else {
GONE
Expand All @@ -122,8 +124,8 @@ class MainActivity : ActivityContext() {
}

override fun onPreferencesChanged(
@Nonnull storage: StorageInterface,
@Nonnull key: String
storage: StorageInterface,
key: String
) {
if (sdirectory.hasKey(key)) {
setText()
Expand All @@ -132,7 +134,7 @@ class MainActivity : ActivityContext() {
}

private inner class PresetDirectoryLabel(s: ActivitySwitcher.Entry) : ActivityLabel(s), OnPreferencesChanged {
private val sdirectory: AndroidSolidDataDirectory = AndroidSolidDataDirectory(context)
private val sdirectory = SolidDataDirectory(AndroidSolidDataDirectoryDefault(context), FocAndroidFactory(context))
private val spreset: SolidPreset = SolidPreset(appContext.storage)

init {
Expand Down Expand Up @@ -163,15 +165,10 @@ class MainActivity : ActivityContext() {

private inner class InternalDirectoryLabel(s: ActivitySwitcher.Entry, private val directory: String) :
ActivityLabel(s), OnPreferencesChanged {
private val sdirectory = AndroidSolidDataDirectory(context)
private val sdirectory = SolidDataDirectory(AndroidSolidDataDirectoryDefault(context), FocAndroidFactory(context))

fun setText() {
setText(
AppDirectory.getDataDirectory(
AndroidSolidDataDirectory(context),
directory
).pathName
)
setText(AppDirectory.getDataDirectory(sdirectory, directory).pathName)
}

public override fun onAttachedToWindow() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import ch.bailu.aat_lib.search.poi.OsmApiConfiguration
class NominatimActivity : AbsOsmApiActivity() {

public override fun createApiConfiguration(boundingBox: BoundingBoxE6): OsmApiConfiguration {
return object : NominatimApi(this@NominatimActivity, boundingBox) {
return object : NominatimApi(appContext, boundingBox) {
override val queryString: String
get() = editorView.toString()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,16 @@ package ch.bailu.aat.activities

import android.content.Intent
import ch.bailu.aat.R
import ch.bailu.aat.preferences.system.AndroidSolidDataDirectory
import ch.bailu.aat.preferences.system.AndroidSolidDataDirectoryDefault
import ch.bailu.aat_lib.description.ContentDescription
import ch.bailu.aat_lib.description.DateDescription
import ch.bailu.aat_lib.description.DistanceDescription
import ch.bailu.aat_lib.description.NameDescription
import ch.bailu.aat_lib.description.TrackSizeDescription
import ch.bailu.aat_lib.preferences.system.SolidDataDirectory
import ch.bailu.aat_lib.util.fs.AppDirectory
import ch.bailu.foc.Foc
import ch.bailu.foc_android.FocAndroidFactory

class OverlayListActivity : AbsGpxListActivity() {
override val gpxListItemData: Array<ContentDescription>
Expand All @@ -30,7 +32,7 @@ class OverlayListActivity : AbsGpxListActivity() {

override val directory: Foc
get() = AppDirectory.getDataDirectory(
AndroidSolidDataDirectory(this),
SolidDataDirectory(AndroidSolidDataDirectoryDefault(this), FocAndroidFactory(this)),
AppDirectory.DIR_OVERLAY
)
override val label: String
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ class OverpassActivity : AbsOsmApiActivity() {
}

public override fun createApiConfiguration(boundingBox: BoundingBoxE6): OsmApiConfiguration {
return object : OverpassApi(this@OverpassActivity, boundingBox) {
return object : OverpassApi(appContext, boundingBox) {
override val queryString: String
get() = editorView.toString()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,16 @@ import ch.bailu.aat.preferences.SolidSAF
import ch.bailu.aat.preferences.Storage
import ch.bailu.aat.util.ui.theme.AppTheme
import ch.bailu.aat.util.ui.theme.UiTheme
import ch.bailu.aat.views.layout.ContentView
import ch.bailu.aat.views.bar.MainControlBar
import ch.bailu.aat.views.description.mview.MultiView
import ch.bailu.aat.views.layout.ContentView
import ch.bailu.aat.views.preferences.GeneralPreferencesView
import ch.bailu.aat.views.preferences.MapPreferencesView
import ch.bailu.aat.views.preferences.PresetPreferencesView
import ch.bailu.aat_lib.gpx.InfoID
import ch.bailu.aat_lib.preferences.OnPreferencesChanged
import ch.bailu.aat_lib.preferences.StorageInterface
import ch.bailu.aat_lib.preferences.general.SolidPresetCount
import javax.annotation.Nonnull

class PreferencesActivity : ActivityContext(), OnPreferencesChanged {
companion object {
Expand Down Expand Up @@ -86,7 +85,7 @@ class PreferencesActivity : ActivityContext(), OnPreferencesChanged {
super.onDestroy()
}

override fun onPreferencesChanged(@Nonnull s: StorageInterface, @Nonnull key: String) {
override fun onPreferencesChanged(storage: StorageInterface, key: String) {
spresetCount?.apply {
if (this.hasKey(key)) {
multiView?.apply { addPresetPreferences(this, theme) }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package ch.bailu.aat.activities

import android.content.Intent
import ch.bailu.aat.R
import ch.bailu.aat.preferences.system.AndroidSolidDataDirectory
import ch.bailu.aat.preferences.system.AndroidSolidDataDirectoryDefault
import ch.bailu.aat_lib.description.AverageSpeedDescription
import ch.bailu.aat_lib.description.ContentDescription
import ch.bailu.aat_lib.description.DateDescription
Expand All @@ -12,7 +12,9 @@ import ch.bailu.aat_lib.description.NameDescription
import ch.bailu.aat_lib.description.TimeDescription
import ch.bailu.aat_lib.description.TrackSizeDescription
import ch.bailu.aat_lib.preferences.presets.SolidPreset
import ch.bailu.aat_lib.preferences.system.SolidDataDirectory
import ch.bailu.foc.Foc
import ch.bailu.foc_android.FocAndroidFactory

class TrackListActivity : AbsGpxListActivity() {
override val gpxListItemData: Array<ContentDescription>
Expand All @@ -38,7 +40,7 @@ class TrackListActivity : AbsGpxListActivity() {
}

override val directory: Foc
get() = SolidPreset(appContext.storage).getDirectory(AndroidSolidDataDirectory(this))
get() = SolidPreset(appContext.storage).getDirectory(SolidDataDirectory(AndroidSolidDataDirectoryDefault(this), FocAndroidFactory(this)))
override val label: String
get() = getString(R.string.intro_list)
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@ package ch.bailu.aat.app

import android.content.Context
import ch.bailu.aat.dispatcher.AndroidBroadcaster
import ch.bailu.aat.map.mapsforge.MapsForgePreview
import ch.bailu.aat.map.AndroidTilePainter
import ch.bailu.aat.map.mapsforge.MapsForgePreview
import ch.bailu.aat.preferences.Storage
import ch.bailu.aat.preferences.map.AndroidMapDirectories
import ch.bailu.aat.preferences.map.AndroidSolidDem3Directory
import ch.bailu.aat.preferences.map.AndroidSolidTileCacheDirectory
import ch.bailu.aat.preferences.system.AndroidSolidDataDirectory
import ch.bailu.aat.preferences.system.AndroidSolidDataDirectoryDefault
import ch.bailu.aat.services.directory.AndroidSummaryConfig
import ch.bailu.aat.util.AndroidTimer
import ch.bailu.aat.util.graphic.AndroidSyncTileBitmap
Expand Down Expand Up @@ -65,7 +65,7 @@ class AndroidAppContext(private val context: Context, override val services: Ser


override val dataDirectory: SolidDataDirectory
get() = AndroidSolidDataDirectory(context)
get() = SolidDataDirectory(AndroidSolidDataDirectoryDefault(context), FocAndroidFactory(context))


override val mapDirectory: SolidMapsForgeDirectory
Expand Down
42 changes: 18 additions & 24 deletions aat-android/src/main/kotlin/ch/bailu/aat/app/App.kt
Original file line number Diff line number Diff line change
@@ -1,18 +1,16 @@
package ch.bailu.aat.app

import android.app.Application
import ch.bailu.aat.BuildConfig
import ch.bailu.aat.dispatcher.AndroidBroadcaster
import ch.bailu.aat.util.AndroidLoggerFactory
import ch.bailu.aat_lib.app.AppConfig
import ch.bailu.aat_lib.app.AppGraphicFactory
import ch.bailu.aat_lib.logger.AppLog
import ch.bailu.aat_lib.logger.BroadcastLoggerFactory
import org.acra.ACRA
import org.acra.config.CoreConfigurationBuilder
import org.acra.config.DialogConfigurationBuilder
import org.acra.config.MailSenderConfigurationBuilder
import org.acra.config.dialog
import org.acra.config.mailSender
import org.acra.data.StringFormat
import org.acra.ktx.initAcra
import org.mapsforge.core.util.Parameters
import org.mapsforge.map.android.graphics.AndroidGraphicFactory

Expand All @@ -22,7 +20,7 @@ class App : Application() {
initLogger()
initMapsForge()
if (AppConfig.getInstance().isRelease) {
initAcra()
initAcraReport()
}
super.onCreate()
}
Expand All @@ -47,24 +45,20 @@ class App : Application() {
Parameters.SQUARE_FRAME_BUFFER = false
}

private fun initAcra() {
val builder = CoreConfigurationBuilder(this)
.setBuildConfigClass(BuildConfig::class.java)
.setReportFormat(StringFormat.KEY_VALUE_LIST)

builder.getPluginConfigurationBuilder(MailSenderConfigurationBuilder::class.java)
.setMailTo(AppConfig.getInstance().appContact)
.setEnabled(true)

builder.getPluginConfigurationBuilder(DialogConfigurationBuilder::class.java)
.setTitle(AppConfig.getInstance().appName + " crashed")
.setText(
"""
This will open your e-mail app to send a crash report including some information about your device to "${AppConfig.getInstance().appContact}".
This will help the author to fix and improve this app.
private fun initAcraReport() {
initAcra {
buildConfigClass = org.acra.BuildConfig::class.java
reportFormat = StringFormat.KEY_VALUE_LIST
dialog {
title = "${AppConfig.getInstance().appName} crashed"
text = """
This will open your e-mail app to send a crash report including some information about your device to "${AppConfig.getInstance().appContact}".
This will help the author to fix and improve this app.
""".trimIndent()
)
.setEnabled(true)
ACRA.init(this, builder)
}
mailSender {
mailTo = AppConfig.getInstance().appContact
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -56,26 +56,8 @@ class AndroidBroadcaster(private val context: Context) : Broadcaster {
context.registerReceiver(receiver, filter)
}

fun broadcast(context: Context, action: String, file: Foc) {
broadcast(context, action, file.path)
}

fun broadcast(context: Context, action: String, file: String) {
val intent = Intent()
intent.action = action
AppIntent.setFile(intent, file)
context.sendBroadcast(intent)
}

fun broadcast(context: Context, action: String, file: Foc, url: String) {
broadcast(context, action, file.path, url)
}

fun broadcast(context: Context, action: String, file: String, url: String) {
val intent = Intent()
intent.action = action
AppIntent.setFile(intent, file)
AppIntent.setUrl(intent, url)
val intent = AppIntent.toIntent(action, file.path, url)
context.sendBroadcast(intent)
}
}
Expand Down
Loading

0 comments on commit 258f466

Please sign in to comment.