From 41098abcb86af7c4f4fcc8213bb43ed21d7a58e8 Mon Sep 17 00:00:00 2001 From: Luncenok Date: Tue, 11 Jun 2024 21:47:23 +0200 Subject: [PATCH] Remove end This reverts commit 3e106d5af0265477b2704a2f6cdeb63eab56fe05. --- .../java/io/github/wulkanowy/data/Resource.kt | 4 +- .../data/repositories/WulkanowyRepository.kt | 5 +- .../wulkanowy/services/sync/SyncManager.kt | 20 +----- .../wulkanowy/services/sync/SyncWorker.kt | 6 +- .../wulkanowy/ui/modules/end/EndFragment.kt | 31 --------- .../wulkanowy/ui/modules/end/EndView.kt | 5 -- .../ui/modules/login/LoginActivity.kt | 6 -- .../ui/modules/login/LoginPresenter.kt | 12 +--- .../wulkanowy/ui/modules/login/LoginView.kt | 2 - .../LuckyNumberWidgetProvider.kt | 9 --- .../wulkanowy/ui/modules/main/MainActivity.kt | 8 --- .../ui/modules/main/MainPresenter.kt | 10 --- .../wulkanowy/ui/modules/main/MainView.kt | 2 - .../timetablewidget/TimetableWidgetFactory.kt | 3 - app/src/main/res/layout/fragment_end.xml | 63 ------------------- .../values-csb-rPL-v29/preferences_values.xml | 9 --- app/src/main/res/values/strings.xml | 4 -- 17 files changed, 7 insertions(+), 192 deletions(-) delete mode 100644 app/src/main/java/io/github/wulkanowy/ui/modules/end/EndFragment.kt delete mode 100644 app/src/main/java/io/github/wulkanowy/ui/modules/end/EndView.kt delete mode 100644 app/src/main/res/layout/fragment_end.xml delete mode 100644 app/src/main/res/values-csb-rPL-v29/preferences_values.xml diff --git a/app/src/main/java/io/github/wulkanowy/data/Resource.kt b/app/src/main/java/io/github/wulkanowy/data/Resource.kt index 61eaaea19..712a946f3 100644 --- a/app/src/main/java/io/github/wulkanowy/data/Resource.kt +++ b/app/src/main/java/io/github/wulkanowy/data/Resource.kt @@ -1,6 +1,5 @@ package io.github.wulkanowy.data -import io.github.wulkanowy.data.repositories.isEndDateReached import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.FlowPreview import kotlinx.coroutines.flow.Flow @@ -268,8 +267,7 @@ inline fun networkBoundResource( emit(Resource.Loading()) val data = query().first() - val updatedShouldFetch = if (isEndDateReached) false else shouldFetch(data) - if (updatedShouldFetch) { + if (shouldFetch(data)) { emit(Resource.Intermediate(data)) try { diff --git a/app/src/main/java/io/github/wulkanowy/data/repositories/WulkanowyRepository.kt b/app/src/main/java/io/github/wulkanowy/data/repositories/WulkanowyRepository.kt index a25f8a0e6..815f8b758 100644 --- a/app/src/main/java/io/github/wulkanowy/data/repositories/WulkanowyRepository.kt +++ b/app/src/main/java/io/github/wulkanowy/data/repositories/WulkanowyRepository.kt @@ -12,13 +12,9 @@ import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.filterNot import kotlinx.coroutines.sync.Mutex import timber.log.Timber -import java.time.LocalDate import javax.inject.Inject import javax.inject.Singleton -private val endDate = LocalDate.of(2024, 6, 25) -val isEndDateReached = LocalDate.now() >= endDate - @Singleton class WulkanowyRepository @Inject constructor( private val wulkanowyService: WulkanowyService, @@ -28,6 +24,7 @@ class WulkanowyRepository @Inject constructor( ) { private val saveFetchResultMutex = Mutex() + private val cacheKey = "mapping_refresh_key" fun getAdminMessages(): Flow>> = diff --git a/app/src/main/java/io/github/wulkanowy/services/sync/SyncManager.kt b/app/src/main/java/io/github/wulkanowy/services/sync/SyncManager.kt index aa0700b3e..e0a136f98 100644 --- a/app/src/main/java/io/github/wulkanowy/services/sync/SyncManager.kt +++ b/app/src/main/java/io/github/wulkanowy/services/sync/SyncManager.kt @@ -4,27 +4,19 @@ import android.os.Build.VERSION.SDK_INT import android.os.Build.VERSION_CODES.O import androidx.core.app.NotificationManagerCompat import androidx.lifecycle.asFlow +import androidx.work.* import androidx.work.BackoffPolicy.EXPONENTIAL -import androidx.work.Constraints -import androidx.work.Data import androidx.work.ExistingPeriodicWorkPolicy.KEEP import androidx.work.ExistingPeriodicWorkPolicy.UPDATE -import androidx.work.ExistingWorkPolicy import androidx.work.NetworkType.CONNECTED import androidx.work.NetworkType.UNMETERED -import androidx.work.OneTimeWorkRequestBuilder -import androidx.work.PeriodicWorkRequestBuilder -import androidx.work.WorkInfo -import androidx.work.WorkManager import io.github.wulkanowy.data.db.SharedPrefProvider import io.github.wulkanowy.data.db.SharedPrefProvider.Companion.APP_VERSION_CODE_KEY import io.github.wulkanowy.data.repositories.PreferencesRepository -import io.github.wulkanowy.data.repositories.isEndDateReached import io.github.wulkanowy.services.sync.channels.Channel import io.github.wulkanowy.utils.AppInfo import io.github.wulkanowy.utils.isHolidays import kotlinx.coroutines.flow.Flow -import kotlinx.coroutines.flow.flowOf import timber.log.Timber import java.time.LocalDate.now import java.util.concurrent.TimeUnit.MINUTES @@ -42,9 +34,7 @@ class SyncManager @Inject constructor( ) { init { - if (now().isHolidays || isEndDateReached) { - stopSyncWorker() - } + if (now().isHolidays) stopSyncWorker() if (SDK_INT >= O) { channels.forEach { it.create() } @@ -60,7 +50,7 @@ class SyncManager @Inject constructor( } fun startPeriodicSyncWorker(restart: Boolean = false) { - if (preferencesRepository.isServiceEnabled && !now().isHolidays && isEndDateReached) { + if (preferencesRepository.isServiceEnabled && !now().isHolidays) { val serviceInterval = preferencesRepository.servicesInterval workManager.enqueueUniquePeriodicWork( @@ -80,10 +70,6 @@ class SyncManager @Inject constructor( // if quiet, no notifications will be sent fun startOneTimeSyncWorker(quiet: Boolean = false): Flow { - if (isEndDateReached) { - return flowOf(null) - } - val work = OneTimeWorkRequestBuilder() .setInputData( Data.Builder() diff --git a/app/src/main/java/io/github/wulkanowy/services/sync/SyncWorker.kt b/app/src/main/java/io/github/wulkanowy/services/sync/SyncWorker.kt index a7639a258..bcbc23ef2 100644 --- a/app/src/main/java/io/github/wulkanowy/services/sync/SyncWorker.kt +++ b/app/src/main/java/io/github/wulkanowy/services/sync/SyncWorker.kt @@ -15,7 +15,6 @@ import io.github.wulkanowy.R import io.github.wulkanowy.data.repositories.PreferencesRepository import io.github.wulkanowy.data.repositories.SemesterRepository import io.github.wulkanowy.data.repositories.StudentRepository -import io.github.wulkanowy.data.repositories.isEndDateReached import io.github.wulkanowy.sdk.exception.FeatureNotAvailableException import io.github.wulkanowy.sdk.scrapper.exception.FeatureDisabledException import io.github.wulkanowy.sdk.scrapper.exception.FeatureUnavailableException @@ -43,9 +42,7 @@ class SyncWorker @AssistedInject constructor( override suspend fun doWork(): Result = withContext(dispatchersProvider.io) { Timber.i("SyncWorker is starting") - if (!studentRepository.isCurrentStudentSet() || isEndDateReached) { - return@withContext Result.failure() - } + if (!studentRepository.isCurrentStudentSet()) return@withContext Result.failure() val (student, semester) = try { val student = studentRepository.getCurrentStudent() @@ -94,7 +91,6 @@ class SyncWorker @AssistedInject constructor( .build() ) } - errors.isNotEmpty() -> Result.retry() else -> { preferencesRepository.lasSyncDate = Instant.now() diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/end/EndFragment.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/end/EndFragment.kt deleted file mode 100644 index cefbdddd3..000000000 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/end/EndFragment.kt +++ /dev/null @@ -1,31 +0,0 @@ -package io.github.wulkanowy.ui.modules.end - -import android.os.Bundle -import android.text.method.LinkMovementMethod -import android.view.View -import androidx.activity.addCallback -import androidx.core.text.HtmlCompat -import dagger.hilt.android.AndroidEntryPoint -import io.github.wulkanowy.R -import io.github.wulkanowy.databinding.FragmentEndBinding -import io.github.wulkanowy.ui.base.BaseFragment - -@AndroidEntryPoint -class EndFragment : BaseFragment(R.layout.fragment_end), EndView { - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - binding = FragmentEndBinding.bind(view) - - requireActivity().onBackPressedDispatcher.addCallback { - requireActivity().finishAffinity() - } - - binding.endClose.setOnClickListener { requireActivity().finishAffinity() } - - val message = getString(R.string.end_message) - binding.endDescription.movementMethod = LinkMovementMethod.getInstance() - binding.endDescription.text = - HtmlCompat.fromHtml(message, HtmlCompat.FROM_HTML_MODE_COMPACT) - } -} diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/end/EndView.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/end/EndView.kt deleted file mode 100644 index 730d570e6..000000000 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/end/EndView.kt +++ /dev/null @@ -1,5 +0,0 @@ -package io.github.wulkanowy.ui.modules.end - -import io.github.wulkanowy.ui.base.BaseView - -interface EndView : BaseView diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/login/LoginActivity.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/login/LoginActivity.kt index 0d9bb21ef..e528c5147 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/login/LoginActivity.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/modules/login/LoginActivity.kt @@ -15,7 +15,6 @@ import io.github.wulkanowy.R import io.github.wulkanowy.data.pojos.RegisterUser import io.github.wulkanowy.databinding.ActivityLoginBinding import io.github.wulkanowy.ui.base.BaseActivity -import io.github.wulkanowy.ui.modules.end.EndFragment import io.github.wulkanowy.ui.modules.login.advanced.LoginAdvancedFragment import io.github.wulkanowy.ui.modules.login.form.LoginFormFragment import io.github.wulkanowy.ui.modules.login.recover.LoginRecoverFragment @@ -116,14 +115,9 @@ class LoginActivity : BaseActivity(), Logi } } - override fun navigateToEnd() { - openFragment(EndFragment(), clearBackStack = true) - } - override fun onResume() { super.onResume() inAppUpdateHelper.onResume() presenter.updateSdkMappings() - presenter.checkIfEnd() } } diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/login/LoginPresenter.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/login/LoginPresenter.kt index 36552193c..aff0515f0 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/login/LoginPresenter.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/modules/login/LoginPresenter.kt @@ -2,8 +2,6 @@ package io.github.wulkanowy.ui.modules.login import io.github.wulkanowy.data.repositories.StudentRepository import io.github.wulkanowy.data.repositories.WulkanowyRepository -import io.github.wulkanowy.data.repositories.isEndDateReached -import io.github.wulkanowy.services.sync.SyncManager import io.github.wulkanowy.ui.base.BasePresenter import io.github.wulkanowy.ui.base.ErrorHandler import kotlinx.coroutines.launch @@ -13,8 +11,7 @@ import javax.inject.Inject class LoginPresenter @Inject constructor( private val wulkanowyRepository: WulkanowyRepository, errorHandler: ErrorHandler, - studentRepository: StudentRepository, - private val syncManager: SyncManager + studentRepository: StudentRepository ) : BasePresenter(errorHandler, studentRepository) { override fun onAttachView(view: LoginView) { @@ -29,11 +26,4 @@ class LoginPresenter @Inject constructor( .onFailure { Timber.e(it) } } } - - fun checkIfEnd() { - if (isEndDateReached) { - syncManager.stopSyncWorker() - view?.navigateToEnd() - } - } } diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/login/LoginView.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/login/LoginView.kt index 3fe1f0463..a0949e6d9 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/login/LoginView.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/modules/login/LoginView.kt @@ -5,6 +5,4 @@ import io.github.wulkanowy.ui.base.BaseView interface LoginView : BaseView { fun initView() - - fun navigateToEnd() } diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/luckynumberwidget/LuckyNumberWidgetProvider.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/luckynumberwidget/LuckyNumberWidgetProvider.kt index 18437ef7a..e6de17818 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/luckynumberwidget/LuckyNumberWidgetProvider.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/modules/luckynumberwidget/LuckyNumberWidgetProvider.kt @@ -14,9 +14,7 @@ import io.github.wulkanowy.R import io.github.wulkanowy.data.dataOrThrow import io.github.wulkanowy.data.db.SharedPrefProvider import io.github.wulkanowy.data.repositories.LuckyNumberRepository -import io.github.wulkanowy.data.repositories.PreferencesRepository import io.github.wulkanowy.data.repositories.StudentRepository -import io.github.wulkanowy.data.repositories.isEndDateReached import io.github.wulkanowy.data.toFirstResult import io.github.wulkanowy.ui.modules.Destination import io.github.wulkanowy.ui.modules.splash.SplashActivity @@ -37,9 +35,6 @@ class LuckyNumberWidgetProvider : AppWidgetProvider() { @Inject lateinit var sharedPref: SharedPrefProvider - @Inject - lateinit var preferencesRepository: PreferencesRepository - companion object { private const val LUCKY_NUMBER_WIDGET_MAX_SIZE = 196 @@ -135,10 +130,6 @@ class LuckyNumberWidgetProvider : AppWidgetProvider() { } private fun getLuckyNumber(studentId: Long, appWidgetId: Int) = runBlocking { - if (isEndDateReached) { - return@runBlocking null - } - try { val students = studentRepository.getSavedStudents() val student = students.singleOrNull { it.student.id == studentId }?.student diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainActivity.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainActivity.kt index 23aa51b42..e64aa9b07 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainActivity.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainActivity.kt @@ -33,7 +33,6 @@ import io.github.wulkanowy.ui.modules.Destination import io.github.wulkanowy.ui.modules.account.accountquick.AccountQuickDialog import io.github.wulkanowy.ui.modules.auth.AuthDialog import io.github.wulkanowy.ui.modules.captcha.CaptchaDialog -import io.github.wulkanowy.ui.modules.end.EndFragment import io.github.wulkanowy.ui.modules.settings.appearance.menuorder.AppMenuItem import io.github.wulkanowy.utils.AnalyticsHelper import io.github.wulkanowy.utils.AppInfo @@ -140,7 +139,6 @@ class MainActivity : BaseActivity(), MainVie super.onResume() inAppUpdateHelper.onResume() presenter.updateSdkMappings() - presenter.checkIfEnd() } override fun onCreateOptionsMenu(menu: Menu): Boolean { @@ -364,10 +362,4 @@ class MainActivity : BaseActivity(), MainVie super.onSaveInstanceState(outState) navController.onSaveInstanceState(outState) } - - override fun navigateToEnd() { - binding.mainToolbar.isVisible = false - pushView(EndFragment()) - onBackCallback?.isEnabled = false - } } diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainPresenter.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainPresenter.kt index 13edac6e1..6a072718d 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainPresenter.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainPresenter.kt @@ -7,7 +7,6 @@ import io.github.wulkanowy.data.onResourceSuccess import io.github.wulkanowy.data.repositories.PreferencesRepository import io.github.wulkanowy.data.repositories.StudentRepository import io.github.wulkanowy.data.repositories.WulkanowyRepository -import io.github.wulkanowy.data.repositories.isEndDateReached import io.github.wulkanowy.data.resourceFlow import io.github.wulkanowy.services.sync.SyncManager import io.github.wulkanowy.ui.base.BasePresenter @@ -16,7 +15,6 @@ import io.github.wulkanowy.ui.base.ErrorHandler import io.github.wulkanowy.ui.modules.Destination import io.github.wulkanowy.ui.modules.account.AccountView import io.github.wulkanowy.ui.modules.account.accountdetails.AccountDetailsView -import io.github.wulkanowy.ui.modules.end.EndView import io.github.wulkanowy.ui.modules.studentinfo.StudentInfoView import io.github.wulkanowy.utils.AdsHelper import io.github.wulkanowy.utils.AnalyticsHelper @@ -112,7 +110,6 @@ class MainPresenter @Inject constructor( } private fun shouldShowBottomNavigation(destination: BaseView) = when (destination) { - is EndView, is AccountView, is StudentInfoView, is AccountDetailsView -> false @@ -211,11 +208,4 @@ class MainPresenter @Inject constructor( .onFailure { Timber.e(it) } } } - - fun checkIfEnd() { - if (isEndDateReached) { - syncManager.stopSyncWorker() - view?.navigateToEnd() - } - } } diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainView.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainView.kt index c83d95681..70a94fc81 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainView.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainView.kt @@ -48,8 +48,6 @@ interface MainView : BaseView { fun openMoreDestination(destination: Destination) - fun navigateToEnd() - interface MainChildView { fun onFragmentReselected() diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/timetablewidget/TimetableWidgetFactory.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/timetablewidget/TimetableWidgetFactory.kt index 55621bc5a..e60d54880 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/timetablewidget/TimetableWidgetFactory.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/modules/timetablewidget/TimetableWidgetFactory.kt @@ -22,7 +22,6 @@ import io.github.wulkanowy.data.repositories.PreferencesRepository import io.github.wulkanowy.data.repositories.SemesterRepository import io.github.wulkanowy.data.repositories.StudentRepository import io.github.wulkanowy.data.repositories.TimetableRepository -import io.github.wulkanowy.data.repositories.isEndDateReached import io.github.wulkanowy.data.toFirstResult import io.github.wulkanowy.ui.modules.timetablewidget.TimetableWidgetProvider.Companion.getDateWidgetKey import io.github.wulkanowy.ui.modules.timetablewidget.TimetableWidgetProvider.Companion.getStudentWidgetKey @@ -72,8 +71,6 @@ class TimetableWidgetFactory( items = emptyList() - if (isEndDateReached) return - runBlocking { runCatching { val student = getStudent(studentId) ?: return@runBlocking diff --git a/app/src/main/res/layout/fragment_end.xml b/app/src/main/res/layout/fragment_end.xml deleted file mode 100644 index 883f0fc56..000000000 --- a/app/src/main/res/layout/fragment_end.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - diff --git a/app/src/main/res/values-csb-rPL-v29/preferences_values.xml b/app/src/main/res/values-csb-rPL-v29/preferences_values.xml deleted file mode 100644 index 23a933143..000000000 --- a/app/src/main/res/values-csb-rPL-v29/preferences_values.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - Motiw systemu - Jôsny - Cemny - Cemny (AMOLED) - - diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2337cfe87..82ccf5a2a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -895,8 +895,4 @@ Unmute You have muted this user You have unmuted this user - - - Koniec Wulkanowego - Jak zapewne niektórzy z Was się domyślali zbliża się ten moment, aby zakończyć pewien etap. Wraz z końcem tego roku szkolnego zamykamy projekt Wulkanowy. Stworzenie apki było ekscytującym wyzwaniem, ale skala projektu jest tak duża, że nie jesteśmy w stanie odpowiedzialnie utrzymywać aplikacji. Wulkanowy był fajną przygodą, ale sytuacja wymknęła się nam spod kontroli – zarówno pod względem technicznym, jak i społecznym. Nie akceptujemy pojawiającego się hejtu wobec nas ani wobec innych, także Vulcana. Nie chcemy brać udziału w tych działaniach i być z nimi utożsamiani. Prosimy Was o powściągliwość i rozwagę w publikowanych komentarzach i nieprzekraczanie dopuszczalnych granic.<br /><br />Prosimy Was też o uszanowanie naszej decyzji, jest ona przemyślana i ostateczna. Wszystkim dotychczasowym użytkownikom Wulkanowego rekomendujemy użycie oficjalnej aplikacji <a href="https://play.google.com/store/apps/details?id=pl.edu.vulcan.hebe&hl=pl">Dzienniczek VULCAN</a>. Jeszcze raz dziękujemy wszystkim użytkownikom za lata wsparcia, pomoc i miłe słowa!