CMAccountManager.smali

.class public Lcom/cleanmaster/daemon/accountManager/CMAccountManager;
.super Ljava/lang/Object;
.source "CMAccountManager.java"


# static fields
.field private static mAccountManager:Lcom/cleanmaster/daemon/accountManager/CMAccountManager;


# instance fields
.field private mAccount:Landroid/accounts/Account;

.field private mAccountName:Ljava/lang/String;

.field private mAccountProvider:Ljava/lang/String;

.field private mAccountProvider1:Ljava/lang/String;

.field private mAccountType:Ljava/lang/String;

.field private mContext:Landroid/content/Context;


# direct methods
.method public constructor <init>()V
    .registers 1

    .prologue
    .line 15
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    return-void
.end method

.method public static declared-synchronized get()Lcom/cleanmaster/daemon/accountManager/CMAccountManager;
    .registers 3

    .prologue
    .line 27
    const-class v1, Lcom/cleanmaster/daemon/accountManager/CMAccountManager;

    monitor-enter v1

    :try_start_3
    const-class v2, Lcom/cleanmaster/daemon/accountManager/CMAccountManager;

    monitor-enter v2
    :try_end_6
    .catchall {:try_start_3 .. :try_end_6} :catchall_19

    .line 28
    :try_start_6
    sget-object v0, Lcom/cleanmaster/daemon/accountManager/CMAccountManager;->mAccountManager:Lcom/cleanmaster/daemon/accountManager/CMAccountManager;

    if-nez v0, :cond_11

    .line 29
    new-instance v0, Lcom/cleanmaster/daemon/accountManager/CMAccountManager;

    invoke-direct {v0}, Lcom/cleanmaster/daemon/accountManager/CMAccountManager;-><init>()V

    sput-object v0, Lcom/cleanmaster/daemon/accountManager/CMAccountManager;->mAccountManager:Lcom/cleanmaster/daemon/accountManager/CMAccountManager;

    .line 31
    :cond_11
    sget-object v0, Lcom/cleanmaster/daemon/accountManager/CMAccountManager;->mAccountManager:Lcom/cleanmaster/daemon/accountManager/CMAccountManager;

    .line 32
    monitor-exit v2
    :try_end_14
    .catchall {:try_start_6 .. :try_end_14} :catchall_16

    .line 33
    monitor-exit v1

    return-object v0

    .line 32
    :catchall_16
    move-exception v0

    :try_start_17
    monitor-exit v2
    :try_end_18
    .catchall {:try_start_17 .. :try_end_18} :catchall_16

    :try_start_18
    throw v0
    :try_end_19
    .catchall {:try_start_18 .. :try_end_19} :catchall_19

    .line 27
    :catchall_19
    move-exception v0

    monitor-exit v1

    throw v0
.end method


# virtual methods
.method public init(Landroid/content/Context;)V
    .registers 7

    .prologue
    const/4 v1, 0x1

    .line 38
    :try_start_1
    invoke-virtual {p1}, Landroid/content/Context;->getApplicationContext()Landroid/content/Context;

    move-result-object v0

    iput-object v0, p0, Lcom/cleanmaster/daemon/accountManager/CMAccountManager;->mContext:Landroid/content/Context;

    .line 39
    iget-object v0, p0, Lcom/cleanmaster/daemon/accountManager/CMAccountManager;->mContext:Landroid/content/Context;

    sget v2, Lcom/cleanmaster/daemon/R$string;->accountLabel:I

    invoke-virtual {v0, v2}, Landroid/content/Context;->getString(I)Ljava/lang/String;

    move-result-object v0

    iput-object v0, p0, Lcom/cleanmaster/daemon/accountManager/CMAccountManager;->mAccountName:Ljava/lang/String;

    .line 40
    iget-object v0, p0, Lcom/cleanmaster/daemon/accountManager/CMAccountManager;->mContext:Landroid/content/Context;

    sget v2, Lcom/cleanmaster/daemon/R$string;->accountType:I

    invoke-virtual {v0, v2}, Landroid/content/Context;->getString(I)Ljava/lang/String;

    move-result-object v0

    iput-object v0, p0, Lcom/cleanmaster/daemon/accountManager/CMAccountManager;->mAccountType:Ljava/lang/String;

    .line 41
    iget-object v0, p0, Lcom/cleanmaster/daemon/accountManager/CMAccountManager;->mContext:Landroid/content/Context;

    sget v2, Lcom/cleanmaster/daemon/R$string;->accountProvider:I

    invoke-virtual {v0, v2}, Landroid/content/Context;->getString(I)Ljava/lang/String;

    move-result-object v0

    iput-object v0, p0, Lcom/cleanmaster/daemon/accountManager/CMAccountManager;->mAccountProvider:Ljava/lang/String;

    .line 42
    iget-object v0, p0, Lcom/cleanmaster/daemon/accountManager/CMAccountManager;->mContext:Landroid/content/Context;

    sget v2, Lcom/cleanmaster/daemon/R$string;->accountProvider1:I

    invoke-virtual {v0, v2}, Landroid/content/Context;->getString(I)Ljava/lang/String;

    move-result-object v0

    iput-object v0, p0, Lcom/cleanmaster/daemon/accountManager/CMAccountManager;->mAccountProvider1:Ljava/lang/String;

    .line 43
    new-instance v0, Landroid/accounts/Account;

    iget-object v2, p0, Lcom/cleanmaster/daemon/accountManager/CMAccountManager;->mAccountName:Ljava/lang/String;

    iget-object v3, p0, Lcom/cleanmaster/daemon/accountManager/CMAccountManager;->mAccountType:Ljava/lang/String;

    invoke-direct {v0, v2, v3}, Landroid/accounts/Account;-><init>(Ljava/lang/String;Ljava/lang/String;)V

    iput-object v0, p0, Lcom/cleanmaster/daemon/accountManager/CMAccountManager;->mAccount:Landroid/accounts/Account;

    .line 45
    iget-object v0, p0, Lcom/cleanmaster/daemon/accountManager/CMAccountManager;->mContext:Landroid/content/Context;

    invoke-static {v0}, Landroid/accounts/AccountManager;->get(Landroid/content/Context;)Landroid/accounts/AccountManager;

    move-result-object v2

    .line 46
    iget-object v0, p0, Lcom/cleanmaster/daemon/accountManager/CMAccountManager;->mAccountType:Ljava/lang/String;

    invoke-virtual {v2, v0}, Landroid/accounts/AccountManager;->getAccountsByType(Ljava/lang/String;)[Landroid/accounts/Account;

    move-result-object v0

    array-length v0, v0

    if-gtz v0, :cond_67

    .line 47
    iget-object v3, p0, Lcom/cleanmaster/daemon/accountManager/CMAccountManager;->mAccount:Landroid/accounts/Account;

    const/4 v0, 0x0

    check-cast v0, Ljava/lang/String;

    sget-object v4, Landroid/os/Bundle;->EMPTY:Landroid/os/Bundle;

    invoke-virtual {v2, v3, v0, v4}, Landroid/accounts/AccountManager;->addAccountExplicitly(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)Z

    .line 48
    iget-object v0, p0, Lcom/cleanmaster/daemon/accountManager/CMAccountManager;->mAccount:Landroid/accounts/Account;

    iget-object v2, p0, Lcom/cleanmaster/daemon/accountManager/CMAccountManager;->mAccountProvider:Ljava/lang/String;

    const/4 v3, 0x1

    invoke-static {v0, v2, v3}, Landroid/content/ContentResolver;->setIsSyncable(Landroid/accounts/Account;Ljava/lang/String;I)V

    .line 49
    iget-object v0, p0, Lcom/cleanmaster/daemon/accountManager/CMAccountManager;->mAccount:Landroid/accounts/Account;

    iget-object v2, p0, Lcom/cleanmaster/daemon/accountManager/CMAccountManager;->mAccountProvider:Ljava/lang/String;

    const/4 v3, 0x1

    invoke-static {v0, v2, v3}, Landroid/content/ContentResolver;->setSyncAutomatically(Landroid/accounts/Account;Ljava/lang/String;Z)V

    .line 50
    const/4 v0, 0x1

    invoke-static {v0}, Landroid/content/ContentResolver;->setMasterSyncAutomatically(Z)V

    .line 52
    :cond_67
    invoke-virtual {p0}, Lcom/cleanmaster/daemon/accountManager/CMAccountManager;->setIsSyncable()V

    .line 53
    iget-object v0, p0, Lcom/cleanmaster/daemon/accountManager/CMAccountManager;->mAccount:Landroid/accounts/Account;

    iget-object v2, p0, Lcom/cleanmaster/daemon/accountManager/CMAccountManager;->mAccountProvider:Ljava/lang/String;

    invoke-static {v0, v2}, Landroid/content/ContentResolver;->isSyncPending(Landroid/accounts/Account;Ljava/lang/String;)Z

    move-result v0

    if-nez v0, :cond_78

    .line 54
    const/4 v0, 0x1

    invoke-virtual {p0, v0}, Lcom/cleanmaster/daemon/accountManager/CMAccountManager;->requestSync(Z)V

    .line 57
    :cond_78
    iget-object v0, p0, Lcom/cleanmaster/daemon/accountManager/CMAccountManager;->mAccount:Landroid/accounts/Account;

    iget-object v2, p0, Lcom/cleanmaster/daemon/accountManager/CMAccountManager;->mAccountProvider:Ljava/lang/String;

    invoke-static {v0, v2}, Landroid/content/ContentResolver;->getPeriodicSyncs(Landroid/accounts/Account;Ljava/lang/String;)Ljava/util/List;

    move-result-object v0

    .line 58
    if-eqz v0, :cond_88

    invoke-interface {v0}, Ljava/util/List;->size()I

    move-result v0

    if-gtz v0, :cond_a2

    .line 59
    :cond_88
    const/4 v0, 0x0

    .line 61
    :goto_89
    if-nez v0, :cond_9c

    .line 62
    iget-object v2, p0, Lcom/cleanmaster/daemon/accountManager/CMAccountManager;->mAccount:Landroid/accounts/Account;

    iget-object v3, p0, Lcom/cleanmaster/daemon/accountManager/CMAccountManager;->mAccountProvider:Ljava/lang/String;

    sget-object v4, Landroid/os/Bundle;->EMPTY:Landroid/os/Bundle;

    sget v0, Landroid/os/Build$VERSION;->SDK_INT:I

    const/16 v1, 0x18

    if-lt v0, v1, :cond_9d

    const-wide/16 v0, 0x384

    :goto_99
    invoke-static {v2, v3, v4, v0, v1}, Landroid/content/ContentResolver;->addPeriodicSync(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;J)V
    :try_end_9c
    .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_9c} :catch_a0

    .line 66
    :cond_9c
    :goto_9c
    return-void

    .line 62
    :cond_9d
    const-wide/16 v0, 0xe10

    goto :goto_99

    .line 64
    :catch_a0
    move-exception v0

    goto :goto_9c

    :cond_a2
    move v0, v1

    goto :goto_89
.end method

.method public requestSync(Z)V
    .registers 5

    .prologue
    .line 70
    :try_start_0
    new-instance v0, Landroid/os/Bundle;

    invoke-direct {v0}, Landroid/os/Bundle;-><init>()V

    .line 71
    const-string v1, "force"

    const/4 v2, 0x1

    invoke-virtual {v0, v1, v2}, Landroid/os/Bundle;->putBoolean(Ljava/lang/String;Z)V

    .line 72
    if-eqz p1, :cond_13

    .line 73
    const-string v1, "require_charging"

    const/4 v2, 0x1

    invoke-virtual {v0, v1, v2}, Landroid/os/Bundle;->putBoolean(Ljava/lang/String;Z)V

    .line 75
    :cond_13
    iget-object v1, p0, Lcom/cleanmaster/daemon/accountManager/CMAccountManager;->mAccount:Landroid/accounts/Account;

    iget-object v2, p0, Lcom/cleanmaster/daemon/accountManager/CMAccountManager;->mAccountProvider:Ljava/lang/String;

    invoke-static {v1, v2, v0}, Landroid/content/ContentResolver;->requestSync(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)V
    :try_end_1a
    .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_1a} :catch_1b

    .line 78
    :goto_1a
    return-void

    .line 76
    :catch_1b
    move-exception v0

    goto :goto_1a
.end method

.method public setIsSyncable()V
    .registers 4

    .prologue
    .line 81
    iget-object v0, p0, Lcom/cleanmaster/daemon/accountManager/CMAccountManager;->mAccount:Landroid/accounts/Account;

    iget-object v1, p0, Lcom/cleanmaster/daemon/accountManager/CMAccountManager;->mAccountProvider1:Ljava/lang/String;

    const/4 v2, -0x1

    invoke-static {v0, v1, v2}, Landroid/content/ContentResolver;->setIsSyncable(Landroid/accounts/Account;Ljava/lang/String;I)V

    .line 82
    return-void
.end method