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
import android.app.Application
import android.content.Context
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import org.acra.ACRA
import org.acra.annotation.ReportsCrashes
import timber.log.Timber
@ -17,29 +15,16 @@ import uy.kohesive.injekt.Injekt
)
open class App : Application() {
var appTheme = 0
override fun onCreate() {
super.onCreate()
Injekt.importModule(AppModule(this))
if (BuildConfig.DEBUG) Timber.plant(Timber.DebugTree())
setupTheme()
setupAcra()
}
private fun setupTheme() {
appTheme = PreferencesHelper.getTheme(this)
}
protected open fun setupAcra() {
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.os.SystemClock
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import eu.kanade.tachiyomi.data.preference.getOrDefault
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.
@ -25,10 +28,8 @@ class LibraryUpdateAlarm : BroadcastReceiver() {
* @param intervalInHours the time in hours when it will be executed. Defaults to the
* value stored in preferences.
*/
@JvmStatic
@JvmOverloads
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.
stopAlarm(context)
if (intervalInHours == 0)

View File

@ -10,6 +10,8 @@ import eu.kanade.tachiyomi.R
*/
class PreferenceKeys(context: Context) {
val theme = context.getString(R.string.pref_theme_key)
val rotation = context.getString(R.string.pref_rotation_type_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 automaticUpdateStatus = context.getString(R.string.pref_enable_automatic_updates_key)
fun sourceUsername(sourceId: Int) = "pref_source_username_$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()!!
class PreferencesHelper(private val context: Context) {
class PreferencesHelper(context: 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 {
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 theme() = prefs.getInt(keys.theme, 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 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 rx.android.schedulers.AndroidSchedulers
import rx.schedulers.Schedulers
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
class UpdateDownloaderAlarm : BroadcastReceiver() {
@ -26,9 +28,8 @@ class UpdateDownloaderAlarm : BroadcastReceiver() {
* @param context the application context.
* @param intervalInHours the time in hours when it will be executed.
*/
@JvmStatic
@JvmOverloads
fun startAlarm(context: Context, intervalInHours: Int = 12, isEnabled: Boolean = PreferencesHelper.getAutomaticUpdateStatus(context)) {
fun startAlarm(context: Context, intervalInHours: Int = 12,
isEnabled: Boolean = Injekt.get<PreferencesHelper>().automaticUpdateStatus()) {
// Stop previous running alarms if needed, and do not restart it if the interval is 0.
UpdateDownloaderAlarm.stopAlarm(context)
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.AppCompatActivity
import android.support.v7.widget.Toolbar
import eu.kanade.tachiyomi.App
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 {
@ -22,7 +24,7 @@ interface ActivityMixin {
}
fun setAppTheme() {
setTheme(when (App.get(getActivity()).appTheme) {
setTheme(when (Injekt.get<PreferencesHelper>().theme()) {
2 -> R.style.Theme_Tachiyomi_Dark
else -> R.style.Theme_Tachiyomi
})

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -55,7 +55,7 @@
<string name="pref_version">pref_version</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_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.os.Build
import android.os.SystemClock
import eu.kanade.tachiyomi.App
import eu.kanade.tachiyomi.AppModule
import eu.kanade.tachiyomi.BuildConfig
import eu.kanade.tachiyomi.CustomRobolectricGradleTestRunner
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
@ -17,6 +19,9 @@ import org.robolectric.Shadows.shadowOf
import org.robolectric.annotation.Config
import org.robolectric.shadows.ShadowAlarmManager
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))
@RunWith(CustomRobolectricGradleTestRunner::class)
@ -30,6 +35,8 @@ class LibraryUpdateAlarmTest {
fun setup() {
app = ShadowApplication.getInstance()
context = spy(app.applicationContext)
Injekt = InjektScope(DefaultRegistrar())
Injekt.importModule(AppModule(context as App))
alarmManager = shadowOf(context.getSystemService(Context.ALARM_SERVICE) as AlarmManager)
}