From 13ccae24bc82d9b181a2cd233e32afb07aff134b Mon Sep 17 00:00:00 2001 From: Matte23 Date: Wed, 28 Oct 2020 10:30:17 +0100 Subject: [PATCH] Add AppIntro activity --- app/build.gradle | 2 + app/src/main/AndroidManifest.xml | 4 + .../net/underdesk/circolapp/IntroActivity.kt | 48 +++++++++++ .../net/underdesk/circolapp/MainActivity.kt | 6 +- .../intro/SchoolSelectionFragment.kt | 79 +++++++++++++++++++ .../underdesk/circolapp/server/ServerAPI.kt | 5 +- .../res/layout/fragment_school_selection.xml | 52 ++++++++++++ app/src/main/res/values-it/strings.xml | 9 +++ app/src/main/res/values/strings.xml | 9 +++ build.gradle | 1 + 10 files changed, 212 insertions(+), 3 deletions(-) create mode 100644 app/src/main/java/net/underdesk/circolapp/IntroActivity.kt create mode 100644 app/src/main/java/net/underdesk/circolapp/fragments/intro/SchoolSelectionFragment.kt create mode 100644 app/src/main/res/layout/fragment_school_selection.xml diff --git a/app/build.gradle b/app/build.gradle index 89496b3..e554faf 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -56,6 +56,8 @@ dependencies { implementation 'com.squareup.moshi:moshi:1.9.3' kapt 'com.squareup.moshi:moshi-kotlin-codegen:1.9.3' implementation 'org.jsoup:jsoup:1.13.1' + implementation 'com.github.AppIntro:AppIntro:6.0.0' + implementation 'com.github.tiper:MaterialSpinner:1.4.2' implementation "com.mikepenz:aboutlibraries-core:$about_libs_version" implementation "com.mikepenz:aboutlibraries:$about_libs_version" } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 24148a4..6de74d8 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,10 @@ android:supportsRtl="true" android:theme="@style/AppTheme"> + + { + val servers = ServerAPI.Companion.Servers.values() + val entryNames = arrayListOf() + + for (i in servers.indices) { + entryNames.add(ServerAPI.getServerName(servers[i])) + } + + return entryNames + } + + override fun onItemSelected(parent: MaterialSpinner, view: View?, position: Int, id: Long) { + val editor = preferenceManager.edit() + editor.putString("school", position.toString()) + editor.apply() + + ServerAPI.changeServer(position) + schoolSelected = true + + parent.error = null + } + + override fun onNothingSelected(parent: MaterialSpinner) { + // Intentionally empty + } + + override val isPolicyRespected: Boolean + get() = schoolSelected + + override fun onUserIllegallyRequestedNextPage() { + view?.school_selection_spinner?.error = + getString(R.string.activity_intro_school_selection_error) + } + + companion object { + fun newInstance(): SchoolSelectionFragment { + return SchoolSelectionFragment() + } + } +} diff --git a/app/src/main/java/net/underdesk/circolapp/server/ServerAPI.kt b/app/src/main/java/net/underdesk/circolapp/server/ServerAPI.kt index b736c05..9577509 100644 --- a/app/src/main/java/net/underdesk/circolapp/server/ServerAPI.kt +++ b/app/src/main/java/net/underdesk/circolapp/server/ServerAPI.kt @@ -73,9 +73,10 @@ class ServerAPI( } fun getInstance(context: Context): ServerAPI { + val preferenceManager = PreferenceManager.getDefaultSharedPreferences(context) + val server = Servers.values()[ - PreferenceManager.getDefaultSharedPreferences(context).getString("school", "0") - ?.toInt() ?: 0 + preferenceManager.getString("school", "0")?.toInt() ?: 0 ] return instance ?: synchronized(this) { diff --git a/app/src/main/res/layout/fragment_school_selection.xml b/app/src/main/res/layout/fragment_school_selection.xml new file mode 100644 index 0000000..8496003 --- /dev/null +++ b/app/src/main/res/layout/fragment_school_selection.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 0a39da1..0b97c00 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -4,6 +4,7 @@ Preferiti Promemoria Impostazioni + Benvenuto in Circolapp Informazioni Cerca @@ -47,6 +48,14 @@ Codice sorgente Puoi scaricare il codice sorgente da <a href="https://github.com/Matte23/circolapp">https://github.com/Matte23/circolapp</a> + Con Circolapp puoi rimanere aggiornato sulle circolari della tua scuola. Visualizzare e scaricare le circolari non è mai stato così semplice + Inizia scegliendo la tua scuola + Puoi modificare la tua scelta in un secondo momento nelle impostazioni + Scegli una scuola + Scuola + Hai finito + Adesso puoi iniziare ad usare Circolapp + Lettore PDF non installato Installa un lettore di PDF per aprire le circolari diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8d74426..2c99bf6 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -4,6 +4,7 @@ Favourites Reminders Settings + Welcome to Circolapp About Search @@ -48,6 +49,14 @@ Source code The source code can be downloaded from <a href="https://github.com/Matte23/circolapp">https://github.com/Matte23/circolapp</a> + With Circolapp you can stay updated on the circulars of your school. Viewing and downloading circulars has never been easier + Start by choosing your school + You can change your choice later in the settings + Please select a school + School + You\'re done + Now you can start using Circolapp + PDF reader not found Please install an external application to open circular letters diff --git a/build.gradle b/build.gradle index fd4800a..558b83b 100644 --- a/build.gradle +++ b/build.gradle @@ -24,6 +24,7 @@ allprojects { repositories { google() jcenter() + maven { url "https://jitpack.io" } } apply plugin: "org.jlleitschuh.gradle.ktlint"