Remove unneeded annotations and some cleanup

This commit is contained in:
len 2016-06-15 17:47:44 +02:00
parent 5ad06df4ac
commit a82e1d0e45
14 changed files with 29 additions and 55 deletions

View file

@ -1,8 +1,6 @@
package eu.kanade.tachiyomi package eu.kanade.tachiyomi
import android.app.Application import android.app.Application
import android.content.Context
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import org.acra.ACRA import org.acra.ACRA
import org.acra.annotation.ReportsCrashes import org.acra.annotation.ReportsCrashes
import timber.log.Timber import timber.log.Timber
@ -17,29 +15,16 @@ import uy.kohesive.injekt.Injekt
) )
open class App : Application() { open class App : Application() {
var appTheme = 0
override fun onCreate() { override fun onCreate() {
super.onCreate() super.onCreate()
Injekt.importModule(AppModule(this)) Injekt.importModule(AppModule(this))
if (BuildConfig.DEBUG) Timber.plant(Timber.DebugTree()) if (BuildConfig.DEBUG) Timber.plant(Timber.DebugTree())
setupTheme()
setupAcra() setupAcra()
} }
private fun setupTheme() {
appTheme = PreferencesHelper.getTheme(this)
}
protected open fun setupAcra() { protected open fun setupAcra() {
ACRA.init(this) ACRA.init(this)
} }
companion object {
@JvmStatic
fun get(context: Context): App {
return context.applicationContext as App
}
}
} }

View file

@ -7,7 +7,10 @@ import android.content.Context
import android.content.Intent import android.content.Intent
import android.os.SystemClock import android.os.SystemClock
import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import eu.kanade.tachiyomi.data.preference.getOrDefault
import eu.kanade.tachiyomi.util.alarmManager import eu.kanade.tachiyomi.util.alarmManager
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
/** /**
* This class is used to update the library by firing an alarm after a specified time. * This class is used to update the library by firing an alarm after a specified time.
@ -25,10 +28,8 @@ class LibraryUpdateAlarm : BroadcastReceiver() {
* @param intervalInHours the time in hours when it will be executed. Defaults to the * @param intervalInHours the time in hours when it will be executed. Defaults to the
* value stored in preferences. * value stored in preferences.
*/ */
@JvmStatic
@JvmOverloads
fun startAlarm(context: Context, fun startAlarm(context: Context,
intervalInHours: Int = PreferencesHelper.getLibraryUpdateInterval(context)) { intervalInHours: Int = Injekt.get<PreferencesHelper>().libraryUpdateInterval().getOrDefault()) {
// Stop previous running alarms if needed, and do not restart it if the interval is 0. // Stop previous running alarms if needed, and do not restart it if the interval is 0.
stopAlarm(context) stopAlarm(context)
if (intervalInHours == 0) if (intervalInHours == 0)

View file

@ -10,6 +10,8 @@ import eu.kanade.tachiyomi.R
*/ */
class PreferenceKeys(context: Context) { class PreferenceKeys(context: Context) {
val theme = context.getString(R.string.pref_theme_key)
val rotation = context.getString(R.string.pref_rotation_type_key) val rotation = context.getString(R.string.pref_rotation_type_key)
val enableTransitions = context.getString(R.string.pref_enable_transitions_key) val enableTransitions = context.getString(R.string.pref_enable_transitions_key)
@ -78,6 +80,8 @@ class PreferenceKeys(context: Context) {
val filterUnread = context.getString(R.string.pref_filter_unread_key) val filterUnread = context.getString(R.string.pref_filter_unread_key)
val automaticUpdateStatus = context.getString(R.string.pref_enable_automatic_updates_key)
fun sourceUsername(sourceId: Int) = "pref_source_username_$sourceId" fun sourceUsername(sourceId: Int) = "pref_source_username_$sourceId"
fun sourcePassword(sourceId: Int) = "pref_source_password_$sourceId" fun sourcePassword(sourceId: Int) = "pref_source_password_$sourceId"

View file

@ -13,7 +13,7 @@ import java.io.IOException
fun <T> Preference<T>.getOrDefault(): T = get() ?: defaultValue()!! fun <T> Preference<T>.getOrDefault(): T = get() ?: defaultValue()!!
class PreferencesHelper(private val context: Context) { class PreferencesHelper(context: Context) {
val keys = PreferenceKeys(context) val keys = PreferenceKeys(context)
@ -32,28 +32,9 @@ class PreferencesHelper(private val context: Context) {
} }
} }
companion object { fun clear() = prefs.edit().clear().apply()
fun getLibraryUpdateInterval(context: Context): Int { fun theme() = prefs.getInt(keys.theme, 1)
return PreferenceManager.getDefaultSharedPreferences(context).getInt(
context.getString(R.string.pref_library_update_interval_key), 0)
}
fun getAutomaticUpdateStatus(context: Context): Boolean {
return PreferenceManager.getDefaultSharedPreferences(context).getBoolean(
context.getString(R.string.pref_enable_automatic_updates), false)
}
@JvmStatic
fun getTheme(context: Context): Int {
return PreferenceManager.getDefaultSharedPreferences(context).getInt(
context.getString(R.string.pref_theme_key), 1)
}
}
fun clear() {
prefs.edit().clear().apply()
}
fun rotation() = rxPrefs.getInteger(keys.rotation, 1) fun rotation() = rxPrefs.getInteger(keys.rotation, 1)
@ -147,4 +128,6 @@ class PreferencesHelper(private val context: Context) {
fun filterUnread() = rxPrefs.getBoolean(keys.filterUnread, false) fun filterUnread() = rxPrefs.getBoolean(keys.filterUnread, false)
fun automaticUpdateStatus() = prefs.getBoolean(keys.automaticUpdateStatus, false)
} }

View file

@ -15,6 +15,8 @@ import eu.kanade.tachiyomi.util.notification
import eu.kanade.tachiyomi.util.notificationManager import eu.kanade.tachiyomi.util.notificationManager
import rx.android.schedulers.AndroidSchedulers import rx.android.schedulers.AndroidSchedulers
import rx.schedulers.Schedulers import rx.schedulers.Schedulers
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
class UpdateDownloaderAlarm : BroadcastReceiver() { class UpdateDownloaderAlarm : BroadcastReceiver() {
@ -26,9 +28,8 @@ class UpdateDownloaderAlarm : BroadcastReceiver() {
* @param context the application context. * @param context the application context.
* @param intervalInHours the time in hours when it will be executed. * @param intervalInHours the time in hours when it will be executed.
*/ */
@JvmStatic fun startAlarm(context: Context, intervalInHours: Int = 12,
@JvmOverloads isEnabled: Boolean = Injekt.get<PreferencesHelper>().automaticUpdateStatus()) {
fun startAlarm(context: Context, intervalInHours: Int = 12, isEnabled: Boolean = PreferencesHelper.getAutomaticUpdateStatus(context)) {
// Stop previous running alarms if needed, and do not restart it if the interval is 0. // Stop previous running alarms if needed, and do not restart it if the interval is 0.
UpdateDownloaderAlarm.stopAlarm(context) UpdateDownloaderAlarm.stopAlarm(context)
if (intervalInHours == 0 || !isEnabled) if (intervalInHours == 0 || !isEnabled)

View file

@ -8,8 +8,10 @@ import android.support.v4.content.ContextCompat
import android.support.v7.app.ActionBar import android.support.v7.app.ActionBar
import android.support.v7.app.AppCompatActivity import android.support.v7.app.AppCompatActivity
import android.support.v7.widget.Toolbar import android.support.v7.widget.Toolbar
import eu.kanade.tachiyomi.App
import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
interface ActivityMixin { interface ActivityMixin {
@ -22,7 +24,7 @@ interface ActivityMixin {
} }
fun setAppTheme() { fun setAppTheme() {
setTheme(when (App.get(getActivity()).appTheme) { setTheme(when (Injekt.get<PreferencesHelper>().theme()) {
2 -> R.style.Theme_Tachiyomi_Dark 2 -> R.style.Theme_Tachiyomi_Dark
else -> R.style.Theme_Tachiyomi else -> R.style.Theme_Tachiyomi
}) })

View file

@ -50,7 +50,6 @@ class CategoryActivity : BaseRxActivity<CategoryPresenter>(), ActionMode.Callbac
* *
* @param context context information. * @param context context information.
*/ */
@JvmStatic
fun newIntent(context: Context): Intent { fun newIntent(context: Context): Intent {
return Intent(context, CategoryActivity::class.java) return Intent(context, CategoryActivity::class.java)
} }

View file

@ -67,7 +67,6 @@ class DownloadFragment : BaseRxFragment<DownloadPresenter>() {
* *
* @return a new instance of [DownloadFragment]. * @return a new instance of [DownloadFragment].
*/ */
@JvmStatic
fun newInstance(): DownloadFragment { fun newInstance(): DownloadFragment {
return DownloadFragment() return DownloadFragment()
} }

View file

@ -95,7 +95,6 @@ class LibraryFragment : BaseRxFragment<LibraryPresenter>(), ActionMode.Callback
* *
* @return a new instance of [LibraryFragment]. * @return a new instance of [LibraryFragment].
*/ */
@JvmStatic
fun newInstance(): LibraryFragment { fun newInstance(): LibraryFragment {
return LibraryFragment() return LibraryFragment()
} }

View file

@ -34,7 +34,6 @@ class RecentChaptersFragment
* Create new RecentChaptersFragment. * Create new RecentChaptersFragment.
* @return a new instance of [RecentChaptersFragment]. * @return a new instance of [RecentChaptersFragment].
*/ */
@JvmStatic
fun newInstance(): RecentChaptersFragment { fun newInstance(): RecentChaptersFragment {
return RecentChaptersFragment() return RecentChaptersFragment()
} }

View file

@ -27,9 +27,7 @@ class RecentlyReadFragment : BaseRxFragment<RecentlyReadPresenter>() {
companion object { companion object {
/** /**
* Create new RecentChaptersFragment. * Create new RecentChaptersFragment.
*
*/ */
@JvmStatic
fun newInstance(): RecentlyReadFragment { fun newInstance(): RecentlyReadFragment {
return RecentlyReadFragment() return RecentlyReadFragment()
} }

View file

@ -6,7 +6,6 @@ import android.support.v14.preference.MultiSelectListPreference
import android.support.v4.app.TaskStackBuilder import android.support.v4.app.TaskStackBuilder
import android.support.v7.preference.Preference import android.support.v7.preference.Preference
import android.view.View import android.view.View
import eu.kanade.tachiyomi.App
import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.library.LibraryUpdateAlarm import eu.kanade.tachiyomi.data.library.LibraryUpdateAlarm
import eu.kanade.tachiyomi.ui.main.MainActivity import eu.kanade.tachiyomi.ui.main.MainActivity
@ -62,8 +61,6 @@ class SettingsGeneralFragment : SettingsNestedFragment() {
} }
themePreference.setOnPreferenceChangeListener { preference, newValue -> themePreference.setOnPreferenceChangeListener { preference, newValue ->
App.get(activity).appTheme = (newValue as String).toInt()
// Rebuild activity's to apply themes. // Rebuild activity's to apply themes.
TaskStackBuilder.create(activity) TaskStackBuilder.create(activity)
.addNextIntent(Intent(activity, MainActivity::class.java)) .addNextIntent(Intent(activity, MainActivity::class.java))

View file

@ -55,7 +55,7 @@
<string name="pref_version">pref_version</string> <string name="pref_version">pref_version</string>
<string name="pref_build_time">pref_build_time</string> <string name="pref_build_time">pref_build_time</string>
<string name="pref_enable_automatic_updates_key">pref_enable_automatic_updates_key</string> <string name="pref_enable_automatic_updates_key">automatic_updates</string>
<string name="pref_display_catalogue_as_list">pref_display_catalogue_as_list</string> <string name="pref_display_catalogue_as_list">pref_display_catalogue_as_list</string>
<string name="pref_last_catalogue_source_key">pref_last_catalogue_source_key</string> <string name="pref_last_catalogue_source_key">pref_last_catalogue_source_key</string>

View file

@ -5,6 +5,8 @@ import android.content.Context
import android.content.Intent import android.content.Intent
import android.os.Build import android.os.Build
import android.os.SystemClock import android.os.SystemClock
import eu.kanade.tachiyomi.App
import eu.kanade.tachiyomi.AppModule
import eu.kanade.tachiyomi.BuildConfig import eu.kanade.tachiyomi.BuildConfig
import eu.kanade.tachiyomi.CustomRobolectricGradleTestRunner import eu.kanade.tachiyomi.CustomRobolectricGradleTestRunner
import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.data.preference.PreferencesHelper
@ -17,6 +19,9 @@ import org.robolectric.Shadows.shadowOf
import org.robolectric.annotation.Config import org.robolectric.annotation.Config
import org.robolectric.shadows.ShadowAlarmManager import org.robolectric.shadows.ShadowAlarmManager
import org.robolectric.shadows.ShadowApplication import org.robolectric.shadows.ShadowApplication
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.InjektScope
import uy.kohesive.injekt.registry.default.DefaultRegistrar
@Config(constants = BuildConfig::class, sdk = intArrayOf(Build.VERSION_CODES.LOLLIPOP)) @Config(constants = BuildConfig::class, sdk = intArrayOf(Build.VERSION_CODES.LOLLIPOP))
@RunWith(CustomRobolectricGradleTestRunner::class) @RunWith(CustomRobolectricGradleTestRunner::class)
@ -30,6 +35,8 @@ class LibraryUpdateAlarmTest {
fun setup() { fun setup() {
app = ShadowApplication.getInstance() app = ShadowApplication.getInstance()
context = spy(app.applicationContext) context = spy(app.applicationContext)
Injekt = InjektScope(DefaultRegistrar())
Injekt.importModule(AppModule(context as App))
alarmManager = shadowOf(context.getSystemService(Context.ALARM_SERVICE) as AlarmManager) alarmManager = shadowOf(context.getSystemService(Context.ALARM_SERVICE) as AlarmManager)
} }