号簿助手 v4.6.31版本的 MD5 值为:9d7ff98a6bb5cc178eac2df4d1b2f0e0

以下内容为反编译后的 TimeMachineUnlimitedStepsViewAdapter.java 源代码,内容仅作参考


package com.chinatelecom.pim.ui.adapter.setting;

import android.app.Activity;
import android.content.DialogInterface;
import android.content.Intent;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.chinatelecom.pim.R;
import com.chinatelecom.pim.activity.setting.ContactBackupSettingActivity;
import com.chinatelecom.pim.core.CoreManagerFactory;
import com.chinatelecom.pim.core.manager.PreferenceKeyManager;
import com.chinatelecom.pim.foundation.common.view.ViewAdapter;
import com.chinatelecom.pim.foundation.common.view.ViewModel;
import com.chinatelecom.pim.foundation.lang.model.Theme;
import com.chinatelecom.pim.ui.view.HeaderView;
import com.chinatelecom.pim.ui.view.dialog.DialogFactory;
import com.chinatelecom.pim.ui.view.setting.SettingListItem;

public class TimeMachineUnlimitedStepsViewAdapter extends ViewAdapter<TimeMachineUnlimitedStepsModel> {
    private final int[] autoFrequencyArray;
    private final String[] autoFrequencyDescriptions;
    private PreferenceKeyManager preferenceKeyManager;
    private PreferenceKeyManager.ContactBackupSetting setting;
    private final String[] updloadTypeDesCriptions;

    public TimeMachineUnlimitedStepsViewAdapter(Activity activity, Theme theme) {
        super(activity, theme);
        this.preferenceKeyManager = CoreManagerFactory.getInstance().getPreferenceKeyManager();
        this.setting = this.preferenceKeyManager.getContactBackupSetting();
        this.updloadTypeDesCriptions = new String[]{"客户端启动后自动上传", "联系人修改后自动上传", "定时上传"};
        this.autoFrequencyDescriptions = new String[]{"每天", "每3天", "每7天"};
        this.autoFrequencyArray = new int[]{1, 3, 7};
    }

    @Override
    public TimeMachineUnlimitedStepsModel doSetup() {
        Activity activity = getActivity();
        TimeMachineUnlimitedStepsModel model = new TimeMachineUnlimitedStepsModel();
        activity.setContentView(R.layout.time_machine_unlimited_steps_activity);
        model.setHeaderView((HeaderView) activity.findViewById(R.id.header_view));
        model.setContactBackupSettingLayout((LinearLayout) activity.findViewById(R.id.contact_auto_backup_list_layout));
        model.setBtUnlimitedRecoverNext((Button) activity.findViewById(R.id.bt_unlimited_recover_next));
        model.setAutoSyncContact(new SettingListItem(getActivity()).builder());
        model.setAutoUploadByLaunch(new SettingListItem(getActivity()).builder());
        model.setAutoSyncfrequency(new SettingListItem(getActivity()).builder());
        model.setRlUnlimitedStepFirst((RelativeLayout) activity.findViewById(R.id.unlimited_step_first));
        model.setRlUnlimitedStepSecond((RelativeLayout) activity.findViewById(R.id.unlimited_step_second));
        model.setRlUnlimitedStepFinish((RelativeLayout) activity.findViewById(R.id.unlimited_step_finish));
        model.setTvUnlimitedSuccessNotes((TextView) activity.findViewById(R.id.tv_unlimited_success_notes));
        model.setBtUnlimitedRecoverHowtouse((Button) activity.findViewById(R.id.bt_unlimited_recover_howtouse));
        model.setBtUnlimitedRecoverMoreEquity((Button) activity.findViewById(R.id.bt_unlimited_vip_equity));
        return model;
    }

    public void initView() {
        if (this.preferenceKeyManager.getContactBackupSetting().openUnlimitedRecoveryMemberShip().get().booleanValue()) {
            showStepFinish();
            getModel().getRlUnlimitedStepFirst().setVisibility(8);
            getModel().getRlUnlimitedStepSecond().setVisibility(8);
            popupSelectAutoUploadDialog();
            return;
        }
        createUploadContactLayout();
    }

    private void popupSelectAutoUploadDialog() {
        if (!this.preferenceKeyManager.getContactBackupSetting().openAutoBackupContact().get().booleanValue()) {
            DialogFactory.createConfirmDialog(getActivity(), "是否需要打开联系人自动上传?", "", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    dialogInterface.dismiss();
                    TimeMachineUnlimitedStepsViewAdapter.this.getActivity().startActivity(new Intent(TimeMachineUnlimitedStepsViewAdapter.this.getActivity(), (Class<?>) ContactBackupSettingActivity.class));
                }
            }, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    dialogInterface.dismiss();
                }
            }).show();
        }
    }

    public void showStepFinish() {
        getModel().getRlUnlimitedStepFinish().setVisibility(0);
        setSuccessNoteTime();
    }

    public void setSuccessNoteTime() {
        String openTime = this.preferenceKeyManager.getContactBackupSetting().unlimitedRecoveryOpentedTime().get();
        String note = "- 您已于" + openTime + "成功开通无限次时光倒流服务;\n- 如需查看或恢复历史通讯录,请登录号簿助手官网(http://pim.189.cn) 进行操作。";
        getModel().getTvUnlimitedSuccessNotes().setText(note);
    }

    private void addAutoSyncContactLayout() {
        getModel().getContactBackupSettingLayout().removeAllViewsInLayout();
        getModel().getAutoSyncContact().setDisplayName("自动上传").setRightImage(this.setting.openAutoBackupContact().get().booleanValue() ? R.drawable.ic_call_details_black_open : R.drawable.ic_call_details_black_close).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                TimeMachineUnlimitedStepsViewAdapter.this.setting.openAutoBackupContact().set(Boolean.valueOf(!TimeMachineUnlimitedStepsViewAdapter.this.setting.openAutoBackupContact().get().booleanValue()));
                TimeMachineUnlimitedStepsViewAdapter.this.resetScheduleExecuteTime();
                TimeMachineUnlimitedStepsViewAdapter.this.createUploadContactLayout();
            }
        }).attach(getModel().getContactBackupSettingLayout(), false);
    }

    public void resetScheduleExecuteTime() {
        if (!this.setting.openAutoBackupContact().get().booleanValue()) {
            this.preferenceKeyManager.getContactSettings().lastExecuteTimeByContactSchedule().set(0L);
        } else if (!this.setting.autoUploadBySchedule().get().booleanValue()) {
            this.preferenceKeyManager.getContactSettings().lastExecuteTimeByContactSchedule().set(0L);
        }
    }

    private int initAutoUploadContactType() {
        if (this.setting.autoUploadByLaunch().get().booleanValue()) {
            return 0;
        }
        if (this.setting.autoUploadByUpdate().get().booleanValue()) {
            return 1;
        }
        if (!this.setting.autoUploadBySchedule().get().booleanValue()) {
            return -1;
        }
        return 2;
    }

    public void createUploadContactLayout() {
        addAutoSyncContactLayout();
        if (this.setting.openAutoBackupContact().get().booleanValue()) {
            int type = initAutoUploadContactType();
            if (type >= 0 && type <= 2) {
                getModel().getAutoUploadByLaunch().setDisplayName("上传方式", Integer.valueOf(getActivity().getResources().getColor(R.color.content_edit_input))).setDescription(this.updloadTypeDesCriptions[type], Integer.valueOf(getActivity().getResources().getColor(R.color.content_edit_type_content))).setBackgroundResource(R.drawable.bg_column_selector).setRightImage(R.drawable.ic_list_item_child_32).setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        TimeMachineUnlimitedStepsViewAdapter.this.createUploadDialog();
                    }
                }).attach(getModel().getContactBackupSettingLayout(), false);
            }
            if (type == 2) {
                createAutoFrequecyLayout();
            }
        }
    }

    public void createAutoFrequecyLayout() {
        int autoFrequency = this.setting.contactBackupFrequency().get().intValue();
        int index = -1;
        if (autoFrequency == this.autoFrequencyArray[0]) {
            index = 0;
        } else if (autoFrequency == this.autoFrequencyArray[1]) {
            index = 1;
        } else if (autoFrequency == this.autoFrequencyArray[2]) {
            index = 2;
        }
        if (index >= 0 && index <= 2) {
            getModel().getAutoSyncfrequency().setDisplayName("上传周期", Integer.valueOf(getActivity().getResources().getColor(R.color.content_edit_input))).setDescription(this.autoFrequencyDescriptions[index], Integer.valueOf(getActivity().getResources().getColor(R.color.content_edit_type_content))).setBackgroundResource(R.drawable.bg_column_selector).setRightImage(R.drawable.ic_list_item_child_32).setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    TimeMachineUnlimitedStepsViewAdapter.this.createAutoFrequencyDialog();
                }
            }).attach(getModel().getContactBackupSettingLayout(), false);
        }
    }

    public void createAutoFrequencyDialog() {
        DialogFactory.createListDialog(getActivity(), 0, "选择上传频率", "", "", this.autoFrequencyDescriptions, null, null, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                int autofrequency = TimeMachineUnlimitedStepsViewAdapter.this.autoFrequencyArray[0];
                if (i >= 0 && i <= 2) {
                    autofrequency = TimeMachineUnlimitedStepsViewAdapter.this.autoFrequencyArray[i];
                }
                TimeMachineUnlimitedStepsViewAdapter.this.setting.contactBackupFrequency().set(Integer.valueOf(autofrequency));
                TimeMachineUnlimitedStepsViewAdapter.this.getModel().getContactBackupSettingLayout().removeView(TimeMachineUnlimitedStepsViewAdapter.this.getModel().getAutoSyncfrequency().build());
                TimeMachineUnlimitedStepsViewAdapter.this.createAutoFrequecyLayout();
            }
        }).show();
    }

    public void createUploadDialog() {
        DialogFactory.createListDialog(getActivity(), 0, "选择默认上传方式", "", "", this.updloadTypeDesCriptions, null, null, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                switch (i) {
                    case 0:
                        TimeMachineUnlimitedStepsViewAdapter.this.setting.autoUploadByLaunch().set(true);
                        TimeMachineUnlimitedStepsViewAdapter.this.setting.autoUploadByUpdate().set(false);
                        TimeMachineUnlimitedStepsViewAdapter.this.setting.autoUploadBySchedule().set(false);
                        break;
                    case 1:
                        TimeMachineUnlimitedStepsViewAdapter.this.setting.autoUploadByLaunch().set(false);
                        TimeMachineUnlimitedStepsViewAdapter.this.setting.autoUploadByUpdate().set(true);
                        TimeMachineUnlimitedStepsViewAdapter.this.setting.autoUploadBySchedule().set(false);
                        break;
                    case 2:
                        TimeMachineUnlimitedStepsViewAdapter.this.setting.autoUploadByLaunch().set(false);
                        TimeMachineUnlimitedStepsViewAdapter.this.setting.autoUploadByUpdate().set(false);
                        TimeMachineUnlimitedStepsViewAdapter.this.setting.autoUploadBySchedule().set(true);
                        break;
                }
                TimeMachineUnlimitedStepsViewAdapter.this.resetScheduleExecuteTime();
                TimeMachineUnlimitedStepsViewAdapter.this.createUploadContactLayout();
            }
        }).show();
    }

    public static class TimeMachineUnlimitedStepsModel extends ViewModel {
        private SettingListItem.ListItemBuilder autoSyncContact;
        private SettingListItem.ListItemBuilder autoSyncfrequency;
        private SettingListItem.ListItemBuilder autoUploadByLaunch;
        private SettingListItem.ListItemBuilder autoUploadBySchedule;
        private SettingListItem.ListItemBuilder autoUploadByUpdate;
        private Button btUnlimitedRecoverHowtouse;
        private Button btUnlimitedRecoverMoreEquity;
        private Button btUnlimitedRecoverNext;
        private LinearLayout contactBackupSettingLayout;
        private HeaderView headerView;
        private RelativeLayout rlUnlimitedStepFinish;
        private RelativeLayout rlUnlimitedStepFirst;
        private RelativeLayout rlUnlimitedStepSecond;
        private TextView tvUnlimitedSuccessNotes;

        public HeaderView getHeaderView() {
            return this.headerView;
        }

        public void setHeaderView(HeaderView headerView) {
            this.headerView = headerView;
        }

        public LinearLayout getContactBackupSettingLayout() {
            return this.contactBackupSettingLayout;
        }

        public void setContactBackupSettingLayout(LinearLayout contactBackupSettingLayout) {
            this.contactBackupSettingLayout = contactBackupSettingLayout;
        }

        public SettingListItem.ListItemBuilder getAutoSyncContact() {
            return this.autoSyncContact;
        }

        public void setAutoSyncContact(SettingListItem.ListItemBuilder autoSyncContact) {
            this.autoSyncContact = autoSyncContact;
        }

        public SettingListItem.ListItemBuilder getAutoUploadByLaunch() {
            return this.autoUploadByLaunch;
        }

        public void setAutoUploadByLaunch(SettingListItem.ListItemBuilder autoUploadByLaunch) {
            this.autoUploadByLaunch = autoUploadByLaunch;
        }

        public SettingListItem.ListItemBuilder getAutoUploadByUpdate() {
            return this.autoUploadByUpdate;
        }

        public void setAutoUploadByUpdate(SettingListItem.ListItemBuilder autoUploadByUpdate) {
            this.autoUploadByUpdate = autoUploadByUpdate;
        }

        public SettingListItem.ListItemBuilder getAutoUploadBySchedule() {
            return this.autoUploadBySchedule;
        }

        public void setAutoUploadBySchedule(SettingListItem.ListItemBuilder autoUploadBySchedule) {
            this.autoUploadBySchedule = autoUploadBySchedule;
        }

        public SettingListItem.ListItemBuilder getAutoSyncfrequency() {
            return this.autoSyncfrequency;
        }

        public void setAutoSyncfrequency(SettingListItem.ListItemBuilder autoSyncfrequency) {
            this.autoSyncfrequency = autoSyncfrequency;
        }

        public Button getBtUnlimitedRecoverNext() {
            return this.btUnlimitedRecoverNext;
        }

        public void setBtUnlimitedRecoverNext(Button btUnlimitedRecoverNext) {
            this.btUnlimitedRecoverNext = btUnlimitedRecoverNext;
        }

        public RelativeLayout getRlUnlimitedStepFirst() {
            return this.rlUnlimitedStepFirst;
        }

        public void setRlUnlimitedStepFirst(RelativeLayout rlUnlimitedStepFirst) {
            this.rlUnlimitedStepFirst = rlUnlimitedStepFirst;
        }

        public RelativeLayout getRlUnlimitedStepSecond() {
            return this.rlUnlimitedStepSecond;
        }

        public void setRlUnlimitedStepSecond(RelativeLayout rlUnlimitedStepSecond) {
            this.rlUnlimitedStepSecond = rlUnlimitedStepSecond;
        }

        public RelativeLayout getRlUnlimitedStepFinish() {
            return this.rlUnlimitedStepFinish;
        }

        public void setRlUnlimitedStepFinish(RelativeLayout rlUnlimitedStepFinish) {
            this.rlUnlimitedStepFinish = rlUnlimitedStepFinish;
        }

        public TextView getTvUnlimitedSuccessNotes() {
            return this.tvUnlimitedSuccessNotes;
        }

        public void setTvUnlimitedSuccessNotes(TextView tvUnlimitedSuccessNotes) {
            this.tvUnlimitedSuccessNotes = tvUnlimitedSuccessNotes;
        }

        public Button getBtUnlimitedRecoverHowtouse() {
            return this.btUnlimitedRecoverHowtouse;
        }

        public void setBtUnlimitedRecoverHowtouse(Button btUnlimitedRecoverHowtouse) {
            this.btUnlimitedRecoverHowtouse = btUnlimitedRecoverHowtouse;
        }

        public Button getBtUnlimitedRecoverMoreEquity() {
            return this.btUnlimitedRecoverMoreEquity;
        }

        public void setBtUnlimitedRecoverMoreEquity(Button btUnlimitedRecoverMoreEquity) {
            this.btUnlimitedRecoverMoreEquity = btUnlimitedRecoverMoreEquity;
        }
    }
}