mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-31 06:17:57 +01:00 
			
		
		
		
	Include minor changes from extensions PR
This commit is contained in:
		| @@ -28,11 +28,11 @@ open class App : Application() { | ||||
|  | ||||
|     override fun onCreate() { | ||||
|         super.onCreate() | ||||
|         if (BuildConfig.DEBUG) Timber.plant(Timber.DebugTree()) | ||||
|  | ||||
|         Injekt = InjektScope(DefaultRegistrar()) | ||||
|         Injekt.importModule(AppModule(this)) | ||||
|  | ||||
|         if (BuildConfig.DEBUG) Timber.plant(Timber.DebugTree()) | ||||
|  | ||||
|         setupAcra() | ||||
|         setupJobManager() | ||||
|         setupNotificationChannels() | ||||
|   | ||||
| @@ -18,16 +18,6 @@ class NetworkHelper(context: Context) { | ||||
|             .cache(Cache(cacheDir, cacheSize)) | ||||
|             .build() | ||||
|  | ||||
|     val forceCacheClient = client.newBuilder() | ||||
|             .addNetworkInterceptor { chain -> | ||||
|                 val originalResponse = chain.proceed(chain.request()) | ||||
|                 originalResponse.newBuilder() | ||||
|                         .removeHeader("Pragma") | ||||
|                         .header("Cache-Control", "max-age=600") | ||||
|                         .build() | ||||
|             } | ||||
|             .build() | ||||
|  | ||||
|     val cloudflareClient = client.newBuilder() | ||||
|             .addInterceptor(CloudflareInterceptor()) | ||||
|             .build() | ||||
|   | ||||
| @@ -1,6 +1,7 @@ | ||||
| package eu.kanade.tachiyomi.ui.base.presenter | ||||
|  | ||||
| import nucleus.presenter.RxPresenter | ||||
| import nucleus.presenter.delivery.Delivery | ||||
| import rx.Observable | ||||
|  | ||||
| open class BasePresenter<V> : RxPresenter<V>() { | ||||
| @@ -35,4 +36,29 @@ open class BasePresenter<V> : RxPresenter<V>() { | ||||
|     fun <T> Observable<T>.subscribeReplay(onNext: (V, T) -> Unit, onError: ((V, Throwable) -> Unit)? = null) | ||||
|             = compose(deliverReplay<T>()).subscribe(split(onNext, onError)).apply { add(this) } | ||||
|  | ||||
|     /** | ||||
|      * Subscribes an observable with [DeliverWithView] and adds it to the presenter's lifecycle | ||||
|      * subscription list. | ||||
|      * | ||||
|      * @param onNext function to execute when the observable emits an item. | ||||
|      * @param onError function to execute when the observable throws an error. | ||||
|      */ | ||||
|     fun <T> Observable<T>.subscribeWithView(onNext: (V, T) -> Unit, onError: ((V, Throwable) -> Unit)? = null) | ||||
|             = compose(DeliverWithView<V, T>(view())).subscribe(split(onNext, onError)).apply { add(this) } | ||||
|  | ||||
|     /** | ||||
|      * A deliverable that only emits to the view if attached, otherwise the event is ignored. | ||||
|      */ | ||||
|     class DeliverWithView<View, T>(private val view: Observable<View>) : Observable.Transformer<T, Delivery<View, T>> { | ||||
|  | ||||
|         override fun call(observable: Observable<T>): Observable<Delivery<View, T>> { | ||||
|             return observable | ||||
|                     .materialize() | ||||
|                     .filter { notification -> !notification.isOnCompleted } | ||||
|                     .flatMap { notification -> | ||||
|                         view.take(1).filter { it != null }.map { Delivery(it, notification) } | ||||
|                     } | ||||
|         } | ||||
|     } | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -46,7 +46,7 @@ class CatalogueController : NucleusController<CataloguePresenter>(), | ||||
|     /** | ||||
|      * Adapter containing sources. | ||||
|      */ | ||||
|     private var adapter : CatalogueAdapter? = null | ||||
|     private var adapter: CatalogueAdapter? = null | ||||
|  | ||||
|     /** | ||||
|      * Called when controller is initialized. | ||||
|   | ||||
| @@ -12,7 +12,7 @@ class SourceDividerItemDecoration(context: Context) : RecyclerView.ItemDecoratio | ||||
|     private val divider: Drawable | ||||
|  | ||||
|     init { | ||||
|         val a = context.obtainStyledAttributes(ATTRS) | ||||
|         val a = context.obtainStyledAttributes(intArrayOf(android.R.attr.listDivider)) | ||||
|         divider = a.getDrawable(0) | ||||
|         a.recycle() | ||||
|     } | ||||
| @@ -41,7 +41,4 @@ class SourceDividerItemDecoration(context: Context) : RecyclerView.ItemDecoratio | ||||
|         outRect.set(0, 0, 0, divider.intrinsicHeight) | ||||
|     } | ||||
|  | ||||
|     companion object { | ||||
|         private val ATTRS = intArrayOf(android.R.attr.listDivider) | ||||
|     } | ||||
| } | ||||
| @@ -1,6 +1,5 @@ | ||||
| package eu.kanade.tachiyomi.ui.setting | ||||
|  | ||||
| import android.content.Context | ||||
| import android.support.graphics.drawable.VectorDrawableCompat | ||||
| import android.support.v4.graphics.drawable.DrawableCompat | ||||
| import android.support.v7.preference.* | ||||
| @@ -10,7 +9,7 @@ import eu.kanade.tachiyomi.widget.preference.IntListPreference | ||||
| @Target(AnnotationTarget.TYPE) | ||||
| annotation class DSL | ||||
|  | ||||
| inline fun PreferenceManager.newScreen(context: Context, block: (@DSL PreferenceScreen).() -> Unit): PreferenceScreen { | ||||
| inline fun PreferenceManager.newScreen(block: (@DSL PreferenceScreen).() -> Unit): PreferenceScreen { | ||||
|     return createPreferenceScreen(context).also { it.block() } | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -10,8 +10,11 @@ import android.view.ContextThemeWrapper | ||||
| import android.view.LayoutInflater | ||||
| import android.view.View | ||||
| import android.view.ViewGroup | ||||
| import com.bluelinelabs.conductor.ControllerChangeHandler | ||||
| import com.bluelinelabs.conductor.ControllerChangeType | ||||
| import eu.kanade.tachiyomi.R | ||||
| import eu.kanade.tachiyomi.data.preference.PreferencesHelper | ||||
| import eu.kanade.tachiyomi.ui.base.controller.BaseController | ||||
| import rx.Observable | ||||
| import rx.Subscription | ||||
| import rx.subscriptions.CompositeSubscription | ||||
| @@ -55,9 +58,23 @@ abstract class SettingsController : PreferenceController() { | ||||
|         return preferenceScreen?.title?.toString() | ||||
|     } | ||||
|  | ||||
|     override fun onAttach(view: View) { | ||||
|     fun setTitle() { | ||||
|         var parentController = parentController | ||||
|         while (parentController != null) { | ||||
|             if (parentController is BaseController && parentController.getTitle() != null) { | ||||
|                 return | ||||
|             } | ||||
|             parentController = parentController.parentController | ||||
|         } | ||||
|  | ||||
|         (activity as? AppCompatActivity)?.supportActionBar?.title = getTitle() | ||||
|         super.onAttach(view) | ||||
|     } | ||||
|  | ||||
|     override fun onChangeStarted(handler: ControllerChangeHandler, type: ControllerChangeType) { | ||||
|         if (type.isEnter) { | ||||
|             setTitle() | ||||
|         } | ||||
|         super.onChangeStarted(handler, type) | ||||
|     } | ||||
|  | ||||
|     fun <T> Observable<T>.subscribeUntilDestroy(): Subscription { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user