commit da55a22815c0727d2d6a1d351eae5bd21a249321 Author: Fabio Mazza Date: Thu Feb 29 20:33:31 2024 +0100 Load data from zip, put string and options diff --git a/app/src/main/java/it/reyboz/bustorino/data/DBUpdateWorker.java b/app/src/main/java/it/reyboz/bustorino/data/DBUpdateWorker.java index 8acd918..9ad512e 100644 --- a/app/src/main/java/it/reyboz/bustorino/data/DBUpdateWorker.java +++ b/app/src/main/java/it/reyboz/bustorino/data/DBUpdateWorker.java @@ -76,13 +76,13 @@ public class DBUpdateWorker extends Worker{ final NotificationManagerCompat notificationManager = NotificationManagerCompat.from(getApplicationContext()); final int notification_ID = 32198; final SharedPreferences shPr = con.getSharedPreferences(con.getString(R.string.mainSharedPreferences),MODE_PRIVATE); - final int current_DB_version = shPr.getInt(DatabaseUpdate.DB_VERSION_KEY,-10); + final int current_DB_version = shPr.getInt(PreferencesHolder.DB_GTT_VERSION_KEY,-10); final int new_DB_version = DatabaseUpdate.getNewVersion(); final boolean isUpdateCompulsory = getInputData().getBoolean(FORCED_UPDATE,false); - final long lastDBUpdateTime = shPr.getLong(DatabaseUpdate.DB_LAST_UPDATE_KEY, 0); + final long lastDBUpdateTime = shPr.getLong(PreferencesHolder.DB_LAST_UPDATE_KEY, 0); long currentTime = System.currentTimeMillis()/1000; //showNotification(notificationManager, notification_ID); @@ -143,9 +143,9 @@ public class DBUpdateWorker extends Worker{ Log.d(DEBUG_TAG, "Update finished successfully!"); //update the version in the shared preference final SharedPreferences.Editor editor = shPr.edit(); - editor.putInt(DatabaseUpdate.DB_VERSION_KEY, new_DB_version); + editor.putInt(PreferencesHolder.DB_GTT_VERSION_KEY, new_DB_version); currentTime = System.currentTimeMillis()/1000; - editor.putLong(DatabaseUpdate.DB_LAST_UPDATE_KEY, currentTime); + editor.putLong(PreferencesHolder.DB_LAST_UPDATE_KEY, currentTime); editor.apply(); cancelNotification(notification_ID); diff --git a/app/src/main/java/it/reyboz/bustorino/data/DatabaseUpdate.java b/app/src/main/java/it/reyboz/bustorino/data/DatabaseUpdate.java index 4036afe..d5df45c 100644 --- a/app/src/main/java/it/reyboz/bustorino/data/DatabaseUpdate.java +++ b/app/src/main/java/it/reyboz/bustorino/data/DatabaseUpdate.java @@ -57,8 +57,7 @@ public class DatabaseUpdate { public static final int VERSION_UNAVAILABLE = -2; public static final int JSON_PARSING_ERROR = -4; - public static final String DB_VERSION_KEY = "NextGenDB.GTTVersion"; - public static final String DB_LAST_UPDATE_KEY = "NextGenDB.LastDBUpdate"; + enum Result { @@ -305,8 +304,8 @@ public class DatabaseUpdate { .build()) .setInputData(reqData) .build(); - final int version = theShPr.getInt(DatabaseUpdate.DB_VERSION_KEY, -10); - final long lastDBUpdateTime = theShPr.getLong(DatabaseUpdate.DB_LAST_UPDATE_KEY, -10); + final int version = theShPr.getInt(PreferencesHolder.DB_GTT_VERSION_KEY, -10); + final long lastDBUpdateTime = theShPr.getLong(PreferencesHolder.DB_LAST_UPDATE_KEY, -10); if ((version >= 0 || lastDBUpdateTime >=0) && !restart) workManager.enqueueUniquePeriodicWork(DBUpdateWorker.DEBUG_TAG, ExistingPeriodicWorkPolicy.KEEP, wr); diff --git a/app/src/main/java/it/reyboz/bustorino/data/PreferencesHolder.java b/app/src/main/java/it/reyboz/bustorino/data/PreferencesHolder.java index 9ccf2a0..ae3fb99 100644 --- a/app/src/main/java/it/reyboz/bustorino/data/PreferencesHolder.java +++ b/app/src/main/java/it/reyboz/bustorino/data/PreferencesHolder.java @@ -19,7 +19,6 @@ package it.reyboz.bustorino.data; import android.content.Context; import android.content.SharedPreferences; -import android.util.Log; import it.reyboz.bustorino.R; import static android.content.Context.MODE_PRIVATE; @@ -36,10 +35,11 @@ public abstract class PreferencesHolder { public static final String PREF_GTFS_DB_VERSION = "gtfs_db_version"; public static final String PREF_INTRO_ACTIVITY_RUN ="pref_intro_activity_run"; - + public static final String DB_GTT_VERSION_KEY = "NextGenDB.GTTVersion"; + public static final String DB_LAST_UPDATE_KEY = "NextGenDB.LastDBUpdate"; public static final String PREF_FAVORITE_LINES = "pref_favorite_lines"; - public static final Set IGNORE_KEYS_LOAD = Set.of(PREF_GTFS_DB_VERSION, PREF_INTRO_ACTIVITY_RUN); + public static final Set IGNORE_KEYS_LOAD_MAIN = Set.of(PREF_GTFS_DB_VERSION, PREF_INTRO_ACTIVITY_RUN, DB_GTT_VERSION_KEY, DB_LAST_UPDATE_KEY); public static SharedPreferences getMainSharedPreferences(Context context){ return context.getSharedPreferences(context.getString(R.string.mainSharedPreferences), MODE_PRIVATE); diff --git a/app/src/main/java/it/reyboz/bustorino/fragments/TestSavingFragment.kt b/app/src/main/java/it/reyboz/bustorino/fragments/TestSavingFragment.kt index 357a983..daf62c6 100644 --- a/app/src/main/java/it/reyboz/bustorino/fragments/TestSavingFragment.kt +++ b/app/src/main/java/it/reyboz/bustorino/fragments/TestSavingFragment.kt @@ -4,10 +4,12 @@ import android.app.Activity import android.content.Intent import android.net.Uri import android.os.Bundle +import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.Button +import android.widget.CheckBox import android.widget.Toast import androidx.activity.result.contract.ActivityResultContracts import androidx.fragment.app.Fragment @@ -17,11 +19,12 @@ import it.reyboz.bustorino.R import it.reyboz.bustorino.data.PreferencesHolder import it.reyboz.bustorino.data.UserDB import it.reyboz.bustorino.util.Saving -import java.io.BufferedOutputStream -import java.io.ByteArrayInputStream -import java.io.InputStreamReader -import java.io.OutputStreamWriter +import java.io.* +import java.text.DateFormat +import java.text.SimpleDateFormat +import java.util.* import java.util.zip.ZipEntry +import java.util.zip.ZipInputStream import java.util.zip.ZipOutputStream @@ -41,17 +44,26 @@ class TestSavingFragment : Fragment() { } } - private val openCSVFileLauncher = + private val openFileLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result -> - if (result.resultCode == Activity.RESULT_OK) { + if (!(loadFavorites|| loadPreferences)){ + Toast.makeText(context, R.string.message_check_at_least_one, Toast.LENGTH_SHORT).show() + } + else if (result.resultCode == Activity.RESULT_OK) { + result.data?.data?.also { uri -> - importCSVIntoFavorites(uri) + + loadZipData(uri,loadFavorites, loadPreferences) } } } private lateinit var saveButton: Button + private var loadFavorites = true + private var loadPreferences = true + private lateinit var checkFavorites: CheckBox + private lateinit var checkPreferences: CheckBox override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -61,6 +73,8 @@ class TestSavingFragment : Fragment() { }*/ } + + override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? @@ -72,18 +86,30 @@ class TestSavingFragment : Fragment() { saveButton.setOnClickListener { startFileSaveIntent() } - val readFavoritesButton = rootview.findViewById