diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,5 +1,6 @@ - + @@ -9,10 +10,11 @@ - - - + + @@ -41,6 +43,12 @@ android:networkSecurityConfig="@xml/networks_security_config" android:roundIcon="@mipmap/ic_launcher_round" android:theme="@style/AppTheme.NoActionBar"> + diff --git a/app/src/main/java/it/reyboz/bustorino/ActivityBackup.kt b/app/src/main/java/it/reyboz/bustorino/ActivityBackup.kt new file mode 100644 --- /dev/null +++ b/app/src/main/java/it/reyboz/bustorino/ActivityBackup.kt @@ -0,0 +1,26 @@ +package it.reyboz.bustorino + +import android.os.Bundle +import it.reyboz.bustorino.fragments.BackupImportFragment +import it.reyboz.bustorino.middleware.GeneralActivity + +class ActivityBackup : GeneralActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_container_fragment) + + val actionBar = supportActionBar + if (actionBar != null) { + actionBar.setDisplayHomeAsUpEnabled(true) + actionBar.setIcon(R.drawable.ic_launcher) + actionBar.show() + } + if (savedInstanceState == null) { + supportFragmentManager.beginTransaction() + .setReorderingAllowed(true) + .add(R.id.fragment_container_view, BackupImportFragment::class.java, null) + .commit() + } + } + +} \ No newline at end of file diff --git a/app/src/main/java/it/reyboz/bustorino/ActivityExperiments.java b/app/src/main/java/it/reyboz/bustorino/ActivityExperiments.java --- a/app/src/main/java/it/reyboz/bustorino/ActivityExperiments.java +++ b/app/src/main/java/it/reyboz/bustorino/ActivityExperiments.java @@ -32,7 +32,7 @@ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setContentView(R.layout.activity_experiments); + setContentView(R.layout.activity_container_fragment); ActionBar actionBar = getSupportActionBar(); if (actionBar != null) { @@ -54,7 +54,7 @@ //.add(R.id.fragment_container_view, LinesDetailFragment.class, // LinesDetailFragment.Companion.makeArgs("gtt:4U")) - .add(R.id.fragment_container_view, TestSavingFragment.class, null) + .add(R.id.fragment_container_view, BackupImportFragment.class, null) .commit(); } } diff --git a/app/src/main/java/it/reyboz/bustorino/fragments/TestSavingFragment.kt b/app/src/main/java/it/reyboz/bustorino/fragments/BackupImportFragment.kt rename from app/src/main/java/it/reyboz/bustorino/fragments/TestSavingFragment.kt rename to app/src/main/java/it/reyboz/bustorino/fragments/BackupImportFragment.kt --- a/app/src/main/java/it/reyboz/bustorino/fragments/TestSavingFragment.kt +++ b/app/src/main/java/it/reyboz/bustorino/fragments/BackupImportFragment.kt @@ -30,10 +30,10 @@ /** * A simple [Fragment] subclass. - * Use the [TestSavingFragment.newInstance] factory method to + * Use the [BackupImportFragment.newInstance] factory method to * create an instance of this fragment. */ -class TestSavingFragment : Fragment() { +class BackupImportFragment : Fragment() { private val saveFileLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result -> @@ -279,7 +279,7 @@ @JvmStatic fun newInstance() = - TestSavingFragment().apply { + BackupImportFragment().apply { arguments = Bundle() /*.apply { putString(ARG_PARAM1, param1) putString(ARG_PARAM2, param2) diff --git a/app/src/main/java/it/reyboz/bustorino/fragments/SettingsFragment.java b/app/src/main/java/it/reyboz/bustorino/fragments/SettingsFragment.java --- a/app/src/main/java/it/reyboz/bustorino/fragments/SettingsFragment.java +++ b/app/src/main/java/it/reyboz/bustorino/fragments/SettingsFragment.java @@ -18,6 +18,7 @@ package it.reyboz.bustorino.fragments; import android.content.Context; +import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.os.Handler; @@ -33,6 +34,7 @@ import androidx.work.OneTimeWorkRequest; import androidx.work.WorkInfo; import androidx.work.WorkManager; +import it.reyboz.bustorino.ActivityBackup; import it.reyboz.bustorino.R; import it.reyboz.bustorino.data.DatabaseUpdate; import it.reyboz.bustorino.data.GtfsMaintenanceWorker; @@ -89,15 +91,24 @@ Preference dbUpdateNow = findPreference("pref_db_update_now"); if (dbUpdateNow!=null) dbUpdateNow.setOnPreferenceClickListener( - new Preference.OnPreferenceClickListener() { - @Override - public boolean onPreferenceClick(@NonNull Preference preference) { - //trigger update - if(getContext()!=null) { - DatabaseUpdate.requestDBUpdateWithWork(getContext().getApplicationContext(), true, true); - Toast.makeText(getContext(),R.string.requesting_db_update,Toast.LENGTH_SHORT).show(); - return true; - } + preference -> { + //trigger update + if(getContext()!=null) { + DatabaseUpdate.requestDBUpdateWithWork(getContext().getApplicationContext(), true, true); + Toast.makeText(getContext(),R.string.requesting_db_update,Toast.LENGTH_SHORT).show(); + return true; + } + return false; + } + ); + //set click listener on backup item + final Preference backupPref = findPreference("pref_backup_open"); + if (backupPref!=null) backupPref.setOnPreferenceClickListener( + preference -> { + if(getActivity()!=null){ + startActivity( new Intent(getActivity().getApplicationContext(), ActivityBackup.class) ); + return true; + } else { return false; } } diff --git a/app/src/main/res/layout/activity_experiments.xml b/app/src/main/res/layout/activity_container_fragment.xml rename from app/src/main/res/layout/activity_experiments.xml rename to app/src/main/res/layout/activity_container_fragment.xml diff --git a/app/src/main/res/layout/fragment_test_saving.xml b/app/src/main/res/layout/fragment_test_saving.xml --- a/app/src/main/res/layout/fragment_test_saving.xml +++ b/app/src/main/res/layout/fragment_test_saving.xml @@ -3,7 +3,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context=".fragments.TestSavingFragment"> + tools:context=".fragments.BackupImportFragment"> diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -275,6 +275,9 @@ Abilita notifiche Notifiche abilitate + + Backup e ripristino + Importa / esporta dati Dati salvati Salva backup Importa i dati dal backup diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -304,7 +304,9 @@ Close the tutorial Enable notifications Notifications enabled - + + Backup and restore + Import/export preferences Data saved Backup to file Import data from backup diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -100,6 +100,13 @@ /> + + + +