.class public final Landroidx/work/Configuration; .super Ljava/lang/Object; .source "Configuration.java" # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Landroidx/work/Configuration$Provider;, Landroidx/work/Configuration$Builder; } .end annotation # static fields .field public static final MIN_SCHEDULER_LIMIT:I = 0x14 # instance fields .field final mDefaultProcessName:Ljava/lang/String; .field final mExceptionHandler:Landroidx/work/InitializationExceptionHandler; .field final mExecutor:Ljava/util/concurrent/Executor; .field final mInputMergerFactory:Landroidx/work/InputMergerFactory; .field private final mIsUsingDefaultTaskExecutor:Z .field final mLoggingLevel:I .field final mMaxJobSchedulerId:I .field final mMaxSchedulerLimit:I .field final mMinJobSchedulerId:I .field final mRunnableScheduler:Landroidx/work/RunnableScheduler; .field final mTaskExecutor:Ljava/util/concurrent/Executor; .field final mWorkerFactory:Landroidx/work/WorkerFactory; # direct methods .method constructor (Landroidx/work/Configuration$Builder;)V .locals 2 .annotation system Ldalvik/annotation/MethodParameters; accessFlags = { 0x0 } names = { "builder" } .end annotation .line 82 invoke-direct {p0}, Ljava/lang/Object;->()V .line 83 iget-object v0, p1, Landroidx/work/Configuration$Builder;->mExecutor:Ljava/util/concurrent/Executor; const/4 v1, 0x0 if-nez v0, :cond_0 .line 84 invoke-direct {p0, v1}, Landroidx/work/Configuration;->createDefaultExecutor(Z)Ljava/util/concurrent/Executor; move-result-object v0 iput-object v0, p0, Landroidx/work/Configuration;->mExecutor:Ljava/util/concurrent/Executor; goto :goto_0 .line 86 :cond_0 iget-object v0, p1, Landroidx/work/Configuration$Builder;->mExecutor:Ljava/util/concurrent/Executor; iput-object v0, p0, Landroidx/work/Configuration;->mExecutor:Ljava/util/concurrent/Executor; .line 89 :goto_0 iget-object v0, p1, Landroidx/work/Configuration$Builder;->mTaskExecutor:Ljava/util/concurrent/Executor; if-nez v0, :cond_1 const/4 v0, 0x1 .line 90 iput-boolean v0, p0, Landroidx/work/Configuration;->mIsUsingDefaultTaskExecutor:Z .line 94 invoke-direct {p0, v0}, Landroidx/work/Configuration;->createDefaultExecutor(Z)Ljava/util/concurrent/Executor; move-result-object v0 iput-object v0, p0, Landroidx/work/Configuration;->mTaskExecutor:Ljava/util/concurrent/Executor; goto :goto_1 .line 96 :cond_1 iput-boolean v1, p0, Landroidx/work/Configuration;->mIsUsingDefaultTaskExecutor:Z .line 97 iget-object v0, p1, Landroidx/work/Configuration$Builder;->mTaskExecutor:Ljava/util/concurrent/Executor; iput-object v0, p0, Landroidx/work/Configuration;->mTaskExecutor:Ljava/util/concurrent/Executor; .line 100 :goto_1 iget-object v0, p1, Landroidx/work/Configuration$Builder;->mWorkerFactory:Landroidx/work/WorkerFactory; if-nez v0, :cond_2 .line 101 invoke-static {}, Landroidx/work/WorkerFactory;->getDefaultWorkerFactory()Landroidx/work/WorkerFactory; move-result-object v0 iput-object v0, p0, Landroidx/work/Configuration;->mWorkerFactory:Landroidx/work/WorkerFactory; goto :goto_2 .line 103 :cond_2 iget-object v0, p1, Landroidx/work/Configuration$Builder;->mWorkerFactory:Landroidx/work/WorkerFactory; iput-object v0, p0, Landroidx/work/Configuration;->mWorkerFactory:Landroidx/work/WorkerFactory; .line 106 :goto_2 iget-object v0, p1, Landroidx/work/Configuration$Builder;->mInputMergerFactory:Landroidx/work/InputMergerFactory; if-nez v0, :cond_3 .line 107 invoke-static {}, Landroidx/work/InputMergerFactory;->getDefaultInputMergerFactory()Landroidx/work/InputMergerFactory; move-result-object v0 iput-object v0, p0, Landroidx/work/Configuration;->mInputMergerFactory:Landroidx/work/InputMergerFactory; goto :goto_3 .line 109 :cond_3 iget-object v0, p1, Landroidx/work/Configuration$Builder;->mInputMergerFactory:Landroidx/work/InputMergerFactory; iput-object v0, p0, Landroidx/work/Configuration;->mInputMergerFactory:Landroidx/work/InputMergerFactory; .line 112 :goto_3 iget-object v0, p1, Landroidx/work/Configuration$Builder;->mRunnableScheduler:Landroidx/work/RunnableScheduler; if-nez v0, :cond_4 .line 113 new-instance v0, Landroidx/work/impl/DefaultRunnableScheduler; invoke-direct {v0}, Landroidx/work/impl/DefaultRunnableScheduler;->()V iput-object v0, p0, Landroidx/work/Configuration;->mRunnableScheduler:Landroidx/work/RunnableScheduler; goto :goto_4 .line 115 :cond_4 iget-object v0, p1, Landroidx/work/Configuration$Builder;->mRunnableScheduler:Landroidx/work/RunnableScheduler; iput-object v0, p0, Landroidx/work/Configuration;->mRunnableScheduler:Landroidx/work/RunnableScheduler; .line 118 :goto_4 iget v0, p1, Landroidx/work/Configuration$Builder;->mLoggingLevel:I iput v0, p0, Landroidx/work/Configuration;->mLoggingLevel:I .line 119 iget v0, p1, Landroidx/work/Configuration$Builder;->mMinJobSchedulerId:I iput v0, p0, Landroidx/work/Configuration;->mMinJobSchedulerId:I .line 120 iget v0, p1, Landroidx/work/Configuration$Builder;->mMaxJobSchedulerId:I iput v0, p0, Landroidx/work/Configuration;->mMaxJobSchedulerId:I .line 121 iget v0, p1, Landroidx/work/Configuration$Builder;->mMaxSchedulerLimit:I iput v0, p0, Landroidx/work/Configuration;->mMaxSchedulerLimit:I .line 122 iget-object v0, p1, Landroidx/work/Configuration$Builder;->mExceptionHandler:Landroidx/work/InitializationExceptionHandler; iput-object v0, p0, Landroidx/work/Configuration;->mExceptionHandler:Landroidx/work/InitializationExceptionHandler; .line 123 iget-object p1, p1, Landroidx/work/Configuration$Builder;->mDefaultProcessName:Ljava/lang/String; iput-object p1, p0, Landroidx/work/Configuration;->mDefaultProcessName:Ljava/lang/String; return-void .end method .method private createDefaultExecutor(Z)Ljava/util/concurrent/Executor; .locals 2 .annotation system Ldalvik/annotation/MethodParameters; accessFlags = { 0x0 } names = { "isTaskExecutor" } .end annotation .line 263 invoke-static {}, Ljava/lang/Runtime;->getRuntime()Ljava/lang/Runtime; move-result-object v0 invoke-virtual {v0}, Ljava/lang/Runtime;->availableProcessors()I move-result v0 add-int/lit8 v0, v0, -0x1 const/4 v1, 0x4 invoke-static {v0, v1}, Ljava/lang/Math;->min(II)I move-result v0 const/4 v1, 0x2 invoke-static {v1, v0}, Ljava/lang/Math;->max(II)I move-result v0 .line 264 invoke-direct {p0, p1}, Landroidx/work/Configuration;->createDefaultThreadFactory(Z)Ljava/util/concurrent/ThreadFactory; move-result-object p1 .line 261 invoke-static {v0, p1}, Ljava/util/concurrent/Executors;->newFixedThreadPool(ILjava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ExecutorService; move-result-object p1 return-object p1 .end method .method private createDefaultThreadFactory(Z)Ljava/util/concurrent/ThreadFactory; .locals 1 .annotation system Ldalvik/annotation/MethodParameters; accessFlags = { 0x0 } names = { "isTaskExecutor" } .end annotation .line 269 new-instance v0, Landroidx/work/Configuration$1; invoke-direct {v0, p0, p1}, Landroidx/work/Configuration$1;->(Landroidx/work/Configuration;Z)V return-object v0 .end method # virtual methods .method public getDefaultProcessName()Ljava/lang/String; .locals 1 .line 218 iget-object v0, p0, Landroidx/work/Configuration;->mDefaultProcessName:Ljava/lang/String; return-object v0 .end method .method public getExceptionHandler()Landroidx/work/InitializationExceptionHandler; .locals 1 .line 257 iget-object v0, p0, Landroidx/work/Configuration;->mExceptionHandler:Landroidx/work/InitializationExceptionHandler; return-object v0 .end method .method public getExecutor()Ljava/util/concurrent/Executor; .locals 1 .line 132 iget-object v0, p0, Landroidx/work/Configuration;->mExecutor:Ljava/util/concurrent/Executor; return-object v0 .end method .method public getInputMergerFactory()Landroidx/work/InputMergerFactory; .locals 1 .line 161 iget-object v0, p0, Landroidx/work/Configuration;->mInputMergerFactory:Landroidx/work/InputMergerFactory; return-object v0 .end method .method public getMaxJobSchedulerId()I .locals 1 .line 210 iget v0, p0, Landroidx/work/Configuration;->mMaxJobSchedulerId:I return v0 .end method .method public getMaxSchedulerLimit()I .locals 2 .line 233 sget v0, Landroid/os/Build$VERSION;->SDK_INT:I const/16 v1, 0x17 if-ne v0, v1, :cond_0 .line 234 iget v0, p0, Landroidx/work/Configuration;->mMaxSchedulerLimit:I div-int/lit8 v0, v0, 0x2 return v0 .line 236 :cond_0 iget v0, p0, Landroidx/work/Configuration;->mMaxSchedulerLimit:I return v0 .end method .method public getMinJobSchedulerId()I .locals 1 .line 196 iget v0, p0, Landroidx/work/Configuration;->mMinJobSchedulerId:I return v0 .end method .method public getMinimumLoggingLevel()I .locals 1 .line 182 iget v0, p0, Landroidx/work/Configuration;->mLoggingLevel:I return v0 .end method .method public getRunnableScheduler()Landroidx/work/RunnableScheduler; .locals 1 .line 170 iget-object v0, p0, Landroidx/work/Configuration;->mRunnableScheduler:Landroidx/work/RunnableScheduler; return-object v0 .end method .method public getTaskExecutor()Ljava/util/concurrent/Executor; .locals 1 .line 142 iget-object v0, p0, Landroidx/work/Configuration;->mTaskExecutor:Ljava/util/concurrent/Executor; return-object v0 .end method .method public getWorkerFactory()Landroidx/work/WorkerFactory; .locals 1 .line 153 iget-object v0, p0, Landroidx/work/Configuration;->mWorkerFactory:Landroidx/work/WorkerFactory; return-object v0 .end method .method public isUsingDefaultTaskExecutor()Z .locals 1 .line 246 iget-boolean v0, p0, Landroidx/work/Configuration;->mIsUsingDefaultTaskExecutor:Z return v0 .end method