checkpoint
This commit is contained in:
		
							parent
							
								
									63d2b073d2
								
							
						
					
					
						commit
						2c33cc88f7
					
				
					 16 changed files with 27 additions and 144 deletions
				
			
		|  | @ -18,8 +18,6 @@ package org.y20k.trackbook | |||
| 
 | ||||
| import android.Manifest | ||||
| import android.app.Activity | ||||
| import android.content.Context | ||||
| import android.content.Intent | ||||
| import android.content.SharedPreferences | ||||
| import android.content.pm.PackageManager | ||||
| import android.os.Build | ||||
|  | @ -28,19 +26,16 @@ import android.os.StrictMode | |||
| import android.os.StrictMode.VmPolicy | ||||
| import android.util.Log | ||||
| import androidx.appcompat.app.AppCompatActivity | ||||
| import androidx.core.app.ActivityCompat | ||||
| import androidx.core.content.ContextCompat | ||||
| import androidx.navigation.fragment.NavHostFragment | ||||
| import androidx.navigation.ui.setupWithNavController | ||||
| import com.google.android.material.bottomnavigation.BottomNavigationView | ||||
| import org.osmdroid.config.Configuration | ||||
| import org.y20k.trackbook.helpers.AppThemeHelper | ||||
| import org.y20k.trackbook.helpers.LogHelper | ||||
| import org.y20k.trackbook.helpers.PreferencesHelper | ||||
| 
 | ||||
| class MainActivity: AppCompatActivity() | ||||
| { | ||||
|     /* Main class variables */ | ||||
|     lateinit var trackbook: Trackbook | ||||
|     private lateinit var navHostFragment: NavHostFragment | ||||
|     private lateinit var bottomNavigationView: BottomNavigationView | ||||
|  | @ -118,7 +113,7 @@ class MainActivity: AppCompatActivity() | |||
|                 permissions_needed.add(permission) | ||||
|             } | ||||
|         } | ||||
|         val result = requestPermissions(permissions_wanted, 1); | ||||
|         val result = requestPermissions(permissions_wanted, 1) | ||||
|         Log.i("VOUSSOIR", "Permissions result " + result) | ||||
|     } | ||||
| 
 | ||||
|  |  | |||
|  | @ -156,7 +156,7 @@ class MapFragment : Fragment() | |||
|         val compassOverlay = CompassOverlay(requireContext(), InternalCompassOrientationProvider(requireContext()), mapView) | ||||
|         compassOverlay.enableCompass() | ||||
|         // compassOverlay.setCompassCenter(36f, 36f + (statusBarHeight / densityScalingFactor)) // TODO uncomment when transparent status bar is re-implemented | ||||
|         val screen_width = Resources.getSystem().displayMetrics.widthPixels; | ||||
|         val screen_width = Resources.getSystem().displayMetrics.widthPixels | ||||
|         compassOverlay.setCompassCenter((screen_width / densityScalingFactor) - 36f, 36f) | ||||
|         mapView.overlays.add(compassOverlay) | ||||
| 
 | ||||
|  | @ -416,7 +416,7 @@ class MapFragment : Fragment() | |||
|                 mapView.overlays.remove(ov) | ||||
|             } | ||||
|         } | ||||
|         current_position_overlays.clear(); | ||||
|         current_position_overlays.clear() | ||||
|     } | ||||
| 
 | ||||
|     /* Mark current position on map */ | ||||
|  | @ -483,7 +483,7 @@ class MapFragment : Fragment() | |||
|                 mapView.overlays.remove(ov) | ||||
|             } | ||||
|         } | ||||
|         homepoints_overlays.clear(); | ||||
|         homepoints_overlays.clear() | ||||
|     } | ||||
| 
 | ||||
|     fun create_homepoint_overlays(context: Context, map_view: MapView, homepoints: List<Homepoint>) | ||||
|  | @ -629,8 +629,8 @@ class MapFragment : Fragment() | |||
|     } | ||||
| 
 | ||||
|     private val periodicLocationRequestRunnable: Runnable = object : Runnable { | ||||
|         override fun run() { | ||||
|             // pull current state from service | ||||
|         override fun run() | ||||
|         { | ||||
|             currentBestLocation = trackerService.currentBestLocation | ||||
|             track = trackerService.track | ||||
|             gpsProviderActive = trackerService.gpsProviderActive | ||||
|  | @ -644,9 +644,6 @@ class MapFragment : Fragment() | |||
|             { | ||||
|                 centerMap(currentBestLocation, true) | ||||
|             } | ||||
|             // show error snackbar if necessary | ||||
|             // toggleLocationErrorBar(gpsProviderActive, networkProviderActive) | ||||
|             // use the handler to start runnable again after specified delay | ||||
|             handler.postDelayed(this, Keys.REQUEST_CURRENT_LOCATION_INTERVAL) | ||||
|         } | ||||
|     } | ||||
|  |  | |||
|  | @ -67,12 +67,12 @@ class SettingsFragment : PreferenceFragmentCompat(), YesNoDialog.YesNoDialogList | |||
|         val context = preferenceManager.context | ||||
|         val screen = preferenceManager.createPreferenceScreen(context) | ||||
| 
 | ||||
|         val preferenceCategoryGeneral: PreferenceCategory = PreferenceCategory(activity as Context) | ||||
|         val preferenceCategoryGeneral = PreferenceCategory(activity as Context) | ||||
|         preferenceCategoryGeneral.title = getString(R.string.pref_general_title) | ||||
|         screen.addPreference(preferenceCategoryGeneral) | ||||
| 
 | ||||
|         // set up "Restrict to GPS" preference | ||||
|         val preferenceGpsOnly: SwitchPreferenceCompat = SwitchPreferenceCompat(activity as Context) | ||||
|         val preferenceGpsOnly = SwitchPreferenceCompat(activity as Context) | ||||
|         preferenceGpsOnly.isSingleLineTitle = false | ||||
|         preferenceGpsOnly.title = getString(R.string.pref_gps_only_title) | ||||
|         preferenceGpsOnly.setIcon(R.drawable.ic_gps_24dp) | ||||
|  | @ -84,7 +84,7 @@ class SettingsFragment : PreferenceFragmentCompat(), YesNoDialog.YesNoDialogList | |||
|         screen.addPreference(preferenceGpsOnly) | ||||
| 
 | ||||
|         // set up "Use Imperial Measurements" preference | ||||
|         val preferenceImperialMeasurementUnits: SwitchPreferenceCompat = SwitchPreferenceCompat(activity as Context) | ||||
|         val preferenceImperialMeasurementUnits = SwitchPreferenceCompat(activity as Context) | ||||
|         preferenceImperialMeasurementUnits.isSingleLineTitle = false | ||||
|         preferenceImperialMeasurementUnits.title = getString(R.string.pref_imperial_measurement_units_title) | ||||
|         preferenceImperialMeasurementUnits.setIcon(R.drawable.ic_square_foot_24px) | ||||
|  | @ -96,7 +96,7 @@ class SettingsFragment : PreferenceFragmentCompat(), YesNoDialog.YesNoDialogList | |||
|         screen.addPreference(preferenceImperialMeasurementUnits) | ||||
| 
 | ||||
|         // set up "App Theme" preference | ||||
|         val preferenceThemeSelection: ListPreference = ListPreference(activity as Context) | ||||
|         val preferenceThemeSelection = ListPreference(activity as Context) | ||||
|         preferenceThemeSelection.title = getString(R.string.pref_theme_selection_title) | ||||
|         preferenceThemeSelection.setIcon(R.drawable.ic_smartphone_24dp) | ||||
|         preferenceThemeSelection.key = Keys.PREF_THEME_SELECTION | ||||
|  | @ -115,7 +115,7 @@ class SettingsFragment : PreferenceFragmentCompat(), YesNoDialog.YesNoDialogList | |||
|         screen.addPreference(preferenceThemeSelection) | ||||
| 
 | ||||
|         // set up "Recording Accuracy" preference | ||||
|         val preferenceOmitRests: SwitchPreferenceCompat = SwitchPreferenceCompat(activity as Context) | ||||
|         val preferenceOmitRests = SwitchPreferenceCompat(activity as Context) | ||||
|         preferenceOmitRests.isSingleLineTitle = false | ||||
|         preferenceOmitRests.title = getString(R.string.pref_omit_rests_title) | ||||
|         preferenceOmitRests.setIcon(R.drawable.ic_timeline_24dp) | ||||
|  | @ -126,7 +126,7 @@ class SettingsFragment : PreferenceFragmentCompat(), YesNoDialog.YesNoDialogList | |||
|         preferenceCategoryGeneral.contains(preferenceOmitRests) | ||||
|         screen.addPreference(preferenceOmitRests) | ||||
| 
 | ||||
|         val preferenceDeviceID: EditTextPreference = EditTextPreference(activity as Context) | ||||
|         val preferenceDeviceID = EditTextPreference(activity as Context) | ||||
|         preferenceDeviceID.title = getString(R.string.pref_device_id) | ||||
|         preferenceDeviceID.setIcon(R.drawable.ic_smartphone_24dp) | ||||
|         preferenceDeviceID.key = Keys.PREF_DEVICE_ID | ||||
|  | @ -139,7 +139,7 @@ class SettingsFragment : PreferenceFragmentCompat(), YesNoDialog.YesNoDialogList | |||
|         preferenceCategoryGeneral.contains(preferenceDeviceID) | ||||
|         screen.addPreference(preferenceDeviceID) | ||||
| 
 | ||||
|         val preferenceDatabaseFolder: Preference = Preference(context) | ||||
|         val preferenceDatabaseFolder = Preference(context) | ||||
|         var resultLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result -> | ||||
|             Log.i("VOUSSOIR", "I'm not dead yet.") | ||||
|             if (result.resultCode != Activity.RESULT_OK) | ||||
|  | @ -182,12 +182,12 @@ class SettingsFragment : PreferenceFragmentCompat(), YesNoDialog.YesNoDialogList | |||
|         preferenceCategoryGeneral.contains(preferenceDatabaseFolder) | ||||
|         screen.addPreference(preferenceDatabaseFolder) | ||||
| 
 | ||||
|         val preferenceCategoryAbout: PreferenceCategory = PreferenceCategory(context) | ||||
|         val preferenceCategoryAbout = PreferenceCategory(context) | ||||
|         preferenceCategoryAbout.title = getString(R.string.pref_about_title) | ||||
|         screen.addPreference(preferenceCategoryAbout) | ||||
| 
 | ||||
|         // set up "App Version" preference | ||||
|         val preferenceAppVersion: Preference = Preference(context) | ||||
|         val preferenceAppVersion = Preference(context) | ||||
|         preferenceAppVersion.title = getString(R.string.pref_app_version_title) | ||||
|         preferenceAppVersion.setIcon(R.drawable.ic_info_24dp) | ||||
|         preferenceAppVersion.summary = getString(R.string.pref_app_version_summary) | ||||
|  |  | |||
|  | @ -47,13 +47,6 @@ data class Track ( | |||
|         Log.i("VOUSSOIR", "Track.delete.") | ||||
|     } | ||||
| 
 | ||||
|     suspend fun delete_suspended(context: Context) | ||||
|     { | ||||
|         return suspendCoroutine { cont -> | ||||
|             cont.resume(this.delete()) | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     fun export_gpx(context: Context, fileuri: Uri): Uri? | ||||
|     { | ||||
|         if (! database.ready) | ||||
|  | @ -205,7 +198,7 @@ data class Track ( | |||
|         } | ||||
|         finally | ||||
|         { | ||||
|             cursor.close(); | ||||
|             cursor.close() | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  |  | |||
|  | @ -48,7 +48,7 @@ class TrackFragment : Fragment(), RenameTrackDialog.RenameTrackListener, YesNoDi | |||
|     override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { | ||||
|         // initialize layout | ||||
|         val database: Database = (requireActivity().applicationContext as Trackbook).database | ||||
|         val track: Track = Track( | ||||
|         val track = Track( | ||||
|             database=database, | ||||
|             name=this.requireArguments().getString(Keys.ARG_TRACK_TITLE, ""), | ||||
|             device_id= this.requireArguments().getString(Keys.ARG_TRACK_DEVICE_ID, ""), | ||||
|  | @ -64,7 +64,7 @@ class TrackFragment : Fragment(), RenameTrackDialog.RenameTrackListener, YesNoDi | |||
|         } | ||||
|         // set up delete button | ||||
|         layout.deleteButton.setOnClickListener { | ||||
|             val dialogMessage: String = "${getString(R.string.dialog_yes_no_message_delete_recording)}\n\n- ${layout.trackNameView.text}" | ||||
|             val dialogMessage = "${getString(R.string.dialog_yes_no_message_delete_recording)}\n\n- ${layout.trackNameView.text}" | ||||
|             YesNoDialog(this@TrackFragment as YesNoDialog.YesNoDialogListener).show( | ||||
|                 context = activity as Context, | ||||
|                 type = Keys.DIALOG_DELETE_TRACK, | ||||
|  | @ -86,14 +86,6 @@ class TrackFragment : Fragment(), RenameTrackDialog.RenameTrackListener, YesNoDi | |||
|         super.onResume() | ||||
|     } | ||||
| 
 | ||||
|     /* Overrides onPause from Fragment */ | ||||
|     override fun onPause() | ||||
|     { | ||||
|         super.onPause() | ||||
|         // save zoom level and map center | ||||
|         layout.saveViewStateToTrack() | ||||
|     } | ||||
| 
 | ||||
|     /* Register the ActivityResultLauncher for saving GPX */ | ||||
|     private val requestSaveGpxLauncher = registerForActivityResult(StartActivityForResult(), this::requestSaveGpxResult) | ||||
| 
 | ||||
|  |  | |||
|  | @ -37,7 +37,7 @@ interface DatabaseChangedListener | |||
|     fun database_changed() | ||||
| } | ||||
| 
 | ||||
| class Trackbook(): Application() { | ||||
| class Trackbook : Application() { | ||||
|     val database: Database = Database(this) | ||||
|     val homepoints: ArrayList<Homepoint> = ArrayList() | ||||
|     val database_changed_listeners = ArrayList<DatabaseChangedListener>() | ||||
|  | @ -77,7 +77,7 @@ class Trackbook(): Application() { | |||
|             this.database.ready = false | ||||
|             return | ||||
|         } | ||||
|         if (checkSelfPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) | ||||
|         if (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) | ||||
|         { | ||||
|             this.database.connect(File(folder + "/trkpt_${PreferencesHelper.load_device_id()}.db")) | ||||
|             this.load_homepoints() | ||||
|  | @ -129,7 +129,7 @@ class Trackbook(): Application() { | |||
|         } | ||||
|         finally | ||||
|         { | ||||
|             cursor.close(); | ||||
|             cursor.close() | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|  |  | |||
|  | @ -28,11 +28,8 @@ import org.y20k.trackbook.helpers.PreferencesHelper | |||
| /* | ||||
|  * TrackingToggleTileService class | ||||
|  */ | ||||
| class TrackingToggleTileService: TileService() { | ||||
| 
 | ||||
|     /* Define log tag */ | ||||
|     private val TAG: String = LogHelper.makeLogTag(TrackingToggleTileService::class.java) | ||||
| 
 | ||||
| class TrackingToggleTileService: TileService() | ||||
| { | ||||
|     /* Main class variables */ | ||||
|     private var bound: Boolean = false | ||||
|     private var trackingState: Int = Keys.STATE_TRACKING_STOPPED | ||||
|  |  | |||
|  | @ -23,7 +23,6 @@ import android.view.LayoutInflater | |||
| import android.view.View | ||||
| import android.view.ViewGroup | ||||
| import androidx.constraintlayout.widget.ConstraintLayout | ||||
| import androidx.core.net.toUri | ||||
| import androidx.core.os.bundleOf | ||||
| import androidx.fragment.app.Fragment | ||||
| import androidx.navigation.fragment.findNavController | ||||
|  |  | |||
|  | @ -18,11 +18,7 @@ package org.y20k.trackbook | |||
| 
 | ||||
| import android.location.Location | ||||
| import org.y20k.trackbook.helpers.getNumberOfSatellites | ||||
| import java.util.* | ||||
| 
 | ||||
| /* | ||||
|  * WayPoint data class | ||||
|  */ | ||||
| data class Trkpt( | ||||
|     val provider: String, | ||||
|     val latitude: Double, | ||||
|  | @ -34,7 +30,6 @@ data class Trkpt( | |||
|     var starred: Boolean = false | ||||
| ) | ||||
| { | ||||
|     /* Constructor using just Location */ | ||||
|     constructor(location: Location) : this ( | ||||
|         provider=location.provider.toString(), | ||||
|         latitude=location.latitude, | ||||
|  | @ -45,7 +40,6 @@ data class Trkpt( | |||
|         numberSatellites=getNumberOfSatellites(location), | ||||
|     ) | ||||
| 
 | ||||
|     /* Converts WayPoint into Location */ | ||||
|     fun toLocation(): Location { | ||||
|         val location = Location(provider) | ||||
|         location.latitude = latitude | ||||
|  | @ -55,5 +49,4 @@ data class Trkpt( | |||
|         location.time = this.time | ||||
|         return location | ||||
|     } | ||||
| 
 | ||||
| } | ||||
|  |  | |||
|  | @ -105,5 +105,4 @@ object DateTimeHelper { | |||
|         } | ||||
|         return timeDifference | ||||
|     } | ||||
| 
 | ||||
| } | ||||
| } | ||||
|  |  | |||
|  | @ -30,7 +30,7 @@ import kotlin.math.pow | |||
| /* Get default location */ | ||||
| fun getDefaultLocation(): Location | ||||
| { | ||||
|     val defaultLocation: Location = Location(LocationManager.NETWORK_PROVIDER) | ||||
|     val defaultLocation = Location(LocationManager.NETWORK_PROVIDER) | ||||
|     defaultLocation.latitude = Keys.DEFAULT_LATITUDE | ||||
|     defaultLocation.longitude = Keys.DEFAULT_LONGITUDE | ||||
|     defaultLocation.accuracy = Keys.DEFAULT_ACCURACY | ||||
|  | @ -125,7 +125,6 @@ fun isNetworkEnabled(locationManager: LocationManager): Boolean | |||
|     } | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| /* Checks if given location is new */ | ||||
| fun isRecentEnough(location: Location): Boolean | ||||
| { | ||||
|  | @ -186,4 +185,4 @@ fun getNumberOfSatellites(location: Location): Int | |||
|         numberOfSatellites = 0 | ||||
|     } | ||||
|     return numberOfSatellites | ||||
| } | ||||
| } | ||||
|  |  | |||
|  | @ -17,19 +17,13 @@ | |||
| package org.y20k.trackbook.helpers | ||||
| 
 | ||||
| import android.content.Context | ||||
| import android.graphics.Color | ||||
| import android.graphics.Paint | ||||
| import android.graphics.drawable.Drawable | ||||
| import android.location.Location | ||||
| import android.os.Vibrator | ||||
| import android.util.Log | ||||
| import android.widget.Toast | ||||
| import androidx.core.content.ContextCompat | ||||
| import org.osmdroid.api.IGeoPoint | ||||
| import org.osmdroid.util.GeoPoint | ||||
| import org.osmdroid.views.MapView | ||||
| import org.osmdroid.views.overlay.ItemizedIconOverlay | ||||
| import org.osmdroid.views.overlay.MapEventsOverlay | ||||
| import org.osmdroid.views.overlay.OverlayItem | ||||
| import org.osmdroid.views.overlay.simplefastpoint.LabelledGeoPoint | ||||
| import org.osmdroid.views.overlay.simplefastpoint.SimpleFastPointOverlay | ||||
|  | @ -43,7 +37,6 @@ import java.text.DecimalFormat | |||
| import java.text.SimpleDateFormat | ||||
| import java.util.* | ||||
| 
 | ||||
| 
 | ||||
| /* Creates icon overlay for track */ | ||||
| fun createTrackOverlay(context: Context, map_view: MapView, track: Track, trackingState: Int) | ||||
| { | ||||
|  |  | |||
|  | @ -34,43 +34,6 @@ import org.y20k.trackbook.tracklist.TracklistAdapter | |||
|  * UiHelper object | ||||
|  */ | ||||
| object UiHelper { | ||||
| 
 | ||||
|     /* Define log tag */ | ||||
|     private val TAG: String = LogHelper.makeLogTag(UiHelper::class.java) | ||||
| 
 | ||||
|     /* Sets layout margins for given view in DP */ | ||||
|     fun setViewMargins(context: Context, view: View, left: Int = 0, right: Int = 0, top: Int= 0, bottom: Int = 0) { | ||||
|         val scalingFactor: Float = context.resources.displayMetrics.density | ||||
|         val l: Int = (left * scalingFactor).toInt() | ||||
|         val r: Int = (right * scalingFactor).toInt() | ||||
|         val t: Int = (top * scalingFactor).toInt() | ||||
|         val b: Int = (bottom * scalingFactor).toInt() | ||||
|         if (view.layoutParams is ViewGroup.MarginLayoutParams) { | ||||
|             val p = view.layoutParams as ViewGroup.MarginLayoutParams | ||||
|             p.setMargins(l, t, r, b) | ||||
|             view.requestLayout() | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     /* Sets layout margins for given view in percent */ | ||||
|     fun setViewMarginsPercentage(context: Context, view: View, height: Int, width: Int, left: Int = 0, right: Int = 0, top: Int= 0, bottom: Int = 0) { | ||||
|         val l: Int = ((width / 100.0f) * left).toInt() | ||||
|         val r: Int = ((width / 100.0f) * right).toInt() | ||||
|         val t: Int = ((height / 100.0f) * top).toInt() | ||||
|         val b: Int = ((height / 100.0f) * bottom).toInt() | ||||
|         setViewMargins(context, view, l, r, t, b) | ||||
|     } | ||||
| 
 | ||||
|     /* Get the height of the system's top status bar */ | ||||
|     fun getStatusBarHeight(context: Context): Int { | ||||
|         var result: Int = 0 | ||||
|         val resourceId: Int = context.resources.getIdentifier("status_bar_height", "dimen", "android") | ||||
|         if (resourceId > 0) { | ||||
|             result = context.resources.getDimensionPixelSize(resourceId) | ||||
|         } | ||||
|         return result | ||||
|     } | ||||
| 
 | ||||
|     /* Get scaling factor from display density */ | ||||
|     fun getDensityScalingFactor(context: Context): Float { | ||||
|         return context.resources.displayMetrics.density | ||||
|  | @ -95,11 +58,6 @@ object UiHelper { | |||
|             return false | ||||
|         } | ||||
| 
 | ||||
|         override fun getSwipeDirs(recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder): Int { | ||||
|             // disable swipe for statistics element | ||||
|             return super.getSwipeDirs(recyclerView, viewHolder) | ||||
|         } | ||||
| 
 | ||||
|         override fun onChildDraw(c: Canvas, recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder, dX: Float, dY: Float, actionState: Int, isCurrentlyActive: Boolean) { | ||||
|             val itemView = viewHolder.itemView | ||||
|             val itemHeight = itemView.bottom - itemView.top | ||||
|  |  | |||
|  | @ -34,15 +34,9 @@ import org.y20k.trackbook.helpers.* | |||
| import java.text.DateFormat | ||||
| import java.text.SimpleDateFormat | ||||
| import java.util.* | ||||
| import kotlin.coroutines.resume | ||||
| import kotlin.coroutines.suspendCoroutine | ||||
| 
 | ||||
| /* | ||||
|  * TracklistAdapter class | ||||
|  */ | ||||
| class TracklistAdapter(val fragment: Fragment, val database: Database) : RecyclerView.Adapter<RecyclerView.ViewHolder>() | ||||
| { | ||||
|     /* Main class variables */ | ||||
|     private val context: Context = fragment.activity as Context | ||||
|     private lateinit var tracklistListener: TracklistAdapterListener | ||||
|     private var useImperial: Boolean = PreferencesHelper.loadUseImperialUnits() | ||||
|  | @ -86,7 +80,7 @@ class TracklistAdapter(val fragment: Fragment, val database: Database) : Recycle | |||
|         } | ||||
|         finally | ||||
|         { | ||||
|             cursor.close(); | ||||
|             cursor.close() | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|  | @ -136,13 +130,6 @@ class TracklistAdapter(val fragment: Fragment, val database: Database) : Recycle | |||
|         // notifyItemRangeChanged(index, this.itemCount); | ||||
|     } | ||||
| 
 | ||||
|     suspend fun delete_track_at_position_suspended(context: Context, position: Int) | ||||
|     { | ||||
|         return suspendCoroutine { cont -> | ||||
|             cont.resume(delete_track_at_position(context, position)) | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     fun delete_track_by_id(context: Context, trackId: Long) | ||||
|     { | ||||
|         // val index: Int = tracklist.tracks.indexOfFirst {it.id == trackId} | ||||
|  | @ -178,15 +165,9 @@ class TracklistAdapter(val fragment: Fragment, val database: Database) : Recycle | |||
|         // return trackDataString | ||||
|     } | ||||
| 
 | ||||
|     /* | ||||
|      * Inner class: ViewHolder for a track element | ||||
|      */ | ||||
|     inner class ElementTrackViewHolder (elementTrackLayout: View): RecyclerView.ViewHolder(elementTrackLayout) { | ||||
|         val trackElement: ConstraintLayout = elementTrackLayout.findViewById(R.id.track_element) | ||||
|         val trackNameView: TextView = elementTrackLayout.findViewById(R.id.track_name) | ||||
|         val trackDataView: TextView = elementTrackLayout.findViewById(R.id.track_data) | ||||
|     } | ||||
|     /* | ||||
|      * End of inner class | ||||
|      */ | ||||
| } | ||||
|  |  | |||
|  | @ -69,7 +69,6 @@ data class TrackFragmentLayoutHolder( | |||
|     val trackNameView: MaterialTextView | ||||
|     private val mapView: MapView | ||||
|     private var controller: IMapController | ||||
|     //private var zoomLevel: Double | ||||
|     private val statisticsSheetBehavior: BottomSheetBehavior<View> | ||||
|     private val statisticsSheet: NestedScrollView | ||||
|     private val statisticsView: View | ||||
|  | @ -158,14 +157,6 @@ data class TrackFragmentLayoutHolder( | |||
|         setupStatisticsViews() | ||||
|     } | ||||
| 
 | ||||
|     /* Saves zoom level and center of this map */ | ||||
|     fun saveViewStateToTrack() | ||||
|     { | ||||
|         if (track.view_latitude != 0.0 && track.view_longitude != 0.0) | ||||
|         { | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     /* Sets up the statistics sheet */ | ||||
|     private fun setupStatisticsViews() | ||||
|     { | ||||
|  |  | |||
|  | @ -17,10 +17,6 @@ | |||
|         <action | ||||
|             android:id="@+id/action_map_fragment_to_tracks_fragment" | ||||
|             app:destination="@id/tracklist_fragment" /> | ||||
|         <action | ||||
|             android:id="@+id/action_map_fragment_to_fragment_track" | ||||
|             app:destination="@id/fragment_track" | ||||
|             app:popUpToInclusive="false" /> | ||||
|     </fragment> | ||||
| 
 | ||||
|     <!-- SETTINGS --> | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue