Search in sources :

Example 11 with User

use of com.nightonke.saver.model.User in project CoCoin by Nightonke.

the class AccountBookSettingActivity method userLogin.

private void userLogin() {
    loginDialog = new MaterialDialog.Builder(this).title(R.string.go_login).typeface(CoCoinUtil.GetTypeface(), CoCoinUtil.GetTypeface()).customView(R.layout.dialog_user_login, true).build();
    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
    loginDialogView = loginDialog.getCustomView();
    loginDialogButton = (CircularProgressButton) loginDialogView.findViewById(R.id.button);
    loginDialogButton.isIndeterminateProgressMode();
    loginDialogButton.setProgress(0);
    loginDialogButton.setTypeface(CoCoinUtil.GetTypeface());
    loginDialogButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            loginDialog.setCancelable(false);
            loginDialogButton.setProgress(1);
            // the user ask to login////////////////////////////////////////////////////////////////////////////
            final User user = new User();
            user.setUsername(loginUserName.getText().toString());
            user.setPassword(loginPassword.getText().toString());
            user.login(CoCoinApplication.getAppContext(), new SaveListener() {

                // try with user name///////////////////////////////////////////////////////////////////////////////
                @Override
                public void onSuccess() {
                    loginDialog.setCancelable(true);
                    loginDialogButton.setProgress(0);
                    loginDialogButton.setIdleText(getResourceString(R.string.login_complete));
                    // login successfully through user name/////////////////////////////////////////////////////////////
                    SettingManager.getInstance().setTodayViewInfoShouldChange(true);
                    User loginUser = BmobUser.getCurrentUser(CoCoinApplication.getAppContext(), User.class);
                    if (!CoCoinApplication.getAndroidId().equals(loginUser.getAndroidId())) {
                        // 2 users on one mobile////////////////////////////////////////////////////////////////////////////
                        showToast(7, "unique...");
                        return;
                    }
                    SettingManager.getInstance().setLoggenOn(true);
                    SettingManager.getInstance().setUserName(loginUserName.getText().toString());
                    SettingManager.getInstance().setUserEmail(loginUser.getEmail());
                    updateViews();
                    // use a new method
                    //                        RecordManager.updateOldRecordsToServer();
                    whetherSyncSettingsFromServer();
                    showToast(6, loginUserName.getText().toString());
                    final Handler handler = new Handler();
                    handler.postDelayed(new Runnable() {

                        @Override
                        public void run() {
                            if (loginDialog != null)
                                loginDialog.dismiss();
                            InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                            imm.toggleSoftInput(InputMethodManager.HIDE_NOT_ALWAYS, 0);
                        }
                    }, 500);
                }

                // login fail through user name/////////////////////////////////////////////////////////////////////
                @Override
                public void onFailure(int code, String msg) {
                    // try with user email//////////////////////////////////////////////////////////////////////////////
                    user.setEmail(loginUserName.getText().toString());
                    user.login(CoCoinApplication.getAppContext(), new SaveListener() {

                        @Override
                        public void onSuccess() {
                            loginDialog.setCancelable(true);
                            loginDialogButton.setProgress(0);
                            loginDialogButton.setIdleText(getResourceString(R.string.login_complete));
                            // login successfully through user email////////////////////////////////////////////////////////////
                            SettingManager.getInstance().setTodayViewInfoShouldChange(true);
                            User loginUser = BmobUser.getCurrentUser(CoCoinApplication.getAppContext(), User.class);
                            if (!CoCoinApplication.getAndroidId().equals(loginUser.getAndroidId())) {
                                // 2 users on one mobile////////////////////////////////////////////////////////////////////////////
                                showToast(7, "unique...");
                                return;
                            }
                            String userName = loginUser.getUsername();
                            SettingManager.getInstance().setLoggenOn(true);
                            SettingManager.getInstance().setUserName(userName);
                            SettingManager.getInstance().setUserEmail(loginUserName.getText().toString());
                            SettingManager.getInstance().setUserPassword(loginPassword.getText().toString());
                            updateViews();
                            // use a new method
                            //                                RecordManager.updateOldRecordsToServer();
                            whetherSyncSettingsFromServer();
                            showToast(6, userName);
                            final Handler handler = new Handler();
                            handler.postDelayed(new Runnable() {

                                @Override
                                public void run() {
                                    if (loginDialog != null)
                                        loginDialog.dismiss();
                                    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                                    imm.toggleSoftInput(InputMethodManager.HIDE_NOT_ALWAYS, 0);
                                }
                            }, 500);
                        }

                        // login fail through user name and email///////////////////////////////////////////////////////////
                        @Override
                        public void onFailure(int code, String msg) {
                            loginDialog.setCancelable(true);
                            loginDialogButton.setProgress(0);
                            String tip = getResourceString(R.string.network_disconnection);
                            if (msg.charAt(0) == 'u')
                                tip = getResourceString(R.string.user_name_or_password_incorrect);
                            if (msg.charAt(1) == 'n')
                                tip = getResourceString(R.string.user_mobile_exist);
                            loginDialogButton.setIdleText(tip);
                        }
                    });
                }
            });
        }
    });
    final MDButton positiveAction = loginDialog.getActionButton(DialogAction.POSITIVE);
    positiveAction.setEnabled(false);
    TextView userNameTV = (TextView) loginDialog.getCustomView().findViewById(R.id.login_user_name_text);
    TextView userPasswordTV = (TextView) loginDialog.getCustomView().findViewById(R.id.login_password_text);
    userNameTV.setTypeface(CoCoinUtil.GetTypeface());
    userPasswordTV.setTypeface(CoCoinUtil.GetTypeface());
    loginUserName = (MaterialEditText) loginDialog.getCustomView().findViewById(R.id.login_user_name);
    loginPassword = (MaterialEditText) loginDialog.getCustomView().findViewById(R.id.login_password);
    loginUserName.setTypeface(CoCoinUtil.GetTypeface());
    loginUserName.addTextChangedListener(new TextWatcher() {

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            loginDialogButton.setEnabled(0 < loginUserName.getText().toString().length() && 0 < loginPassword.getText().toString().length());
        }

        @Override
        public void afterTextChanged(Editable s) {
        }
    });
    loginPassword.setTypeface(CoCoinUtil.GetTypeface());
    loginPassword.addTextChangedListener(new TextWatcher() {

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            loginDialogButton.setEnabled(0 < loginUserName.getText().toString().length() && 0 < loginPassword.getText().toString().length());
        }

        @Override
        public void afterTextChanged(Editable s) {
        }
    });
    loginDialog.show();
}
Also used : SaveListener(cn.bmob.v3.listener.SaveListener) MDButton(com.afollestad.materialdialogs.internal.MDButton) MaterialDialog(com.afollestad.materialdialogs.MaterialDialog) BmobUser(cn.bmob.v3.BmobUser) User(com.nightonke.saver.model.User) Handler(android.os.Handler) InputMethodManager(android.view.inputmethod.InputMethodManager) CircleImageView(de.hdodenhof.circleimageview.CircleImageView) RiseNumberTextView(com.nightonke.saver.ui.RiseNumberTextView) View(android.view.View) TextView(android.widget.TextView) MaterialIconView(net.steamcrafted.materialiconlib.MaterialIconView) TextWatcher(android.text.TextWatcher) Editable(android.text.Editable) RiseNumberTextView(com.nightonke.saver.ui.RiseNumberTextView) TextView(android.widget.TextView)

Example 12 with User

use of com.nightonke.saver.model.User in project CoCoin by Nightonke.

the class AccountBookSettingActivity method whetherSyncSettingsFromServer.

// whether sync the settings from server////////////////////////////////////////////////////////////
private void whetherSyncSettingsFromServer() {
    new MaterialDialog.Builder(this).iconRes(R.drawable.cocoin_logo).typeface(CoCoinUtil.GetTypeface(), CoCoinUtil.GetTypeface()).limitIconToDefaultSize().title(R.string.sync_dialog_title).forceStacking(true).content(R.string.sync_dialog_content).positiveText(R.string.sync_dialog_sync_to_local).negativeText(R.string.sync_dialog_sync_to_server).cancelable(false).onAny(new MaterialDialog.SingleButtonCallback() {

        @Override
        public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
            if (which.equals(DialogAction.POSITIVE)) {
                // sync to local
                downloadLogoFromServer();
                User user = getCurrentUser();
                String tip = "";
                boolean accountBookPasswordChanged = false;
                if (!user.getAccountBookPassword().equals(SettingManager.getInstance().getPassword()))
                    accountBookPasswordChanged = true;
                SettingManager.getInstance().setIsMonthLimit(user.getIsMonthLimit());
                monthSB.setChecked(user.getIsMonthLimit());
                SettingManager.getInstance().setMonthLimit(user.getMonthLimit());
                if (SettingManager.getInstance().getIsMonthLimit())
                    monthMaxExpense.withNumber(SettingManager.getInstance().getMonthLimit()).setDuration(1000).start();
                SettingManager.getInstance().setIsColorRemind(user.getIsColorRemind());
                monthColorRemindSB.setChecked(user.getIsColorRemind());
                SettingManager.getInstance().setMonthWarning(user.getMonthWarning());
                if (SettingManager.getInstance().getIsMonthLimit() && SettingManager.getInstance().getIsColorRemind())
                    monthWarning.withNumber(SettingManager.getInstance().getMonthWarning()).setDuration(1000).start();
                SettingManager.getInstance().setRemindColor(user.getRemindColor());
                monthColorRemindTypeIcon.setColor(SettingManager.getInstance().getRemindColor());
                SettingManager.getInstance().setIsForbidden(user.getIsForbidden());
                monthForbiddenSB.setChecked(user.getIsForbidden());
                SettingManager.getInstance().setAccountBookName(user.getAccountBookName());
                accountBookName.setText(user.getAccountBookName());
                SettingManager.getInstance().setPassword(user.getAccountBookPassword());
                // Todo tag sort
                SettingManager.getInstance().setShowPicture(user.getShowPicture());
                showPictureSB.setChecked(user.getShowPicture());
                SettingManager.getInstance().setIsHollow(user.getIsHollow());
                hollowSB.setChecked(user.getIsHollow());
                SettingManager.getInstance().setMainViewMonthExpenseShouldChange(true);
                SettingManager.getInstance().setMainViewRemindColorShouldChange(true);
                SettingManager.getInstance().setMainViewTitleShouldChange(true);
                SettingManager.getInstance().setTodayViewMonthExpenseShouldChange(true);
                SettingManager.getInstance().setTodayViewPieShouldChange(true);
                SettingManager.getInstance().setTodayViewTitleShouldChange(true);
                // SettingManager.getInstance().getMainActivityTagShouldChange();
                if (accountBookPasswordChanged)
                    tip = "\n" + getString(R.string.your_current_account_book_password_is) + SettingManager.getInstance().getPassword();
                new MaterialDialog.Builder(mContext).typeface(CoCoinUtil.GetTypeface(), CoCoinUtil.GetTypeface()).limitIconToDefaultSize().title(R.string.sync_to_local_successfully_dialog_title).content(getString(R.string.sync_to_local_successfully_dialog_content) + tip).positiveText(R.string.ok).show();
            } else if (which.equals(DialogAction.NEGATIVE)) {
                // sync to server
                uploadLogoToServer();
                User user = getCurrentUser();
                user.setIsMonthLimit(SettingManager.getInstance().getIsMonthLimit());
                user.setMonthLimit(SettingManager.getInstance().getMonthLimit());
                user.setIsColorRemind(SettingManager.getInstance().getIsColorRemind());
                user.setMonthWarning(SettingManager.getInstance().getMonthWarning());
                user.setRemindColor(SettingManager.getInstance().getRemindColor());
                user.setIsForbidden(SettingManager.getInstance().getIsForbidden());
                user.setAccountBookName(SettingManager.getInstance().getAccountBookName());
                user.setAccountBookPassword(SettingManager.getInstance().getPassword());
                // Todo tag sort
                user.setShowPicture(SettingManager.getInstance().getShowPicture());
                user.setIsHollow(SettingManager.getInstance().getIsHollow());
                user.update(CoCoinApplication.getAppContext(), user.getObjectId(), new UpdateListener() {

                    @Override
                    public void onSuccess() {
                        showToast(9, "");
                    }

                    @Override
                    public void onFailure(int code, String msg) {
                        showToast(10, msg);
                    }
                });
            }
            dialog.dismiss();
        }
    }).show();
}
Also used : MaterialDialog(com.afollestad.materialdialogs.MaterialDialog) BmobUser(cn.bmob.v3.BmobUser) User(com.nightonke.saver.model.User) DialogAction(com.afollestad.materialdialogs.DialogAction) NonNull(android.support.annotation.NonNull) UpdateListener(cn.bmob.v3.listener.UpdateListener)

Example 13 with User

use of com.nightonke.saver.model.User in project CoCoin by Nightonke.

the class MainActivity method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mContext = this;
    //        Bmob.initialize(CoCoinApplication.getAppContext(), CoCoin.APPLICATION_ID);
    //        CrashReport.initCrashReport(CoCoinApplication.getAppContext(), "900016815", false);
    //        RecordManager.getInstance(CoCoinApplication.getAppContext());
    //        CoCoinUtil.init(CoCoinApplication.getAppContext());
    appUpdateManager = new AppUpdateManager(mContext);
    appUpdateManager.checkUpdateInfo(false);
    sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
    Sensor magneticSensor = sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);
    Sensor accelerometerSensor = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
    sensorManager.registerListener(listener, magneticSensor, SensorManager.SENSOR_DELAY_GAME);
    sensorManager.registerListener(listener, accelerometerSensor, SensorManager.SENSOR_DELAY_GAME);
    superToast = new SuperToast(this);
    superActivityToast = new SuperActivityToast(this, SuperToast.Type.PROGRESS_HORIZONTAL);
    int currentapiVersion = android.os.Build.VERSION.SDK_INT;
    Log.d("Saver", "Version number: " + currentapiVersion);
    if (currentapiVersion >= Build.VERSION_CODES.LOLLIPOP) {
        // Do something for lollipop and above versions
        Window window = this.getWindow();
        window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
        window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
        window.setStatusBarColor(ContextCompat.getColor(mContext, R.color.statusBarColor));
    } else {
    // do something for phones running an SDK before lollipop
    }
    User user = BmobUser.getCurrentUser(CoCoinApplication.getAppContext(), User.class);
    if (user != null) {
        SettingManager.getInstance().setLoggenOn(true);
        SettingManager.getInstance().setUserName(user.getUsername());
        SettingManager.getInstance().setUserEmail(user.getEmail());
        showToast(WELCOME_BACK);
    // 允许用户使用应用
    } else {
        SettingManager.getInstance().setLoggenOn(false);
    //缓存用户对象为空时, 可打开用户注册界面…
    }
    guillotineBackground = findViewById(R.id.guillotine_background);
    toolBarTitle = (TextView) findViewById(R.id.guillotine_title);
    toolBarTitle.setTypeface(CoCoinUtil.typefaceLatoLight);
    toolBarTitle.setText(SettingManager.getInstance().getAccountBookName());
    // edit viewpager///////////////////////////////////////////////////////////////////////////////////
    editViewPager = (CoCoinScrollableViewPager) findViewById(R.id.edit_pager);
    editAdapter = new EditMoneyRemarkFragmentAdapter(getSupportFragmentManager(), CoCoinFragmentManager.MAIN_ACTIVITY_FRAGMENT);
    editViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {

        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
            if (position == 1) {
                if (CoCoinFragmentManager.mainActivityEditRemarkFragment != null)
                    CoCoinFragmentManager.mainActivityEditRemarkFragment.editRequestFocus();
            } else {
                if (CoCoinFragmentManager.mainActivityEditMoneyFragment != null)
                    CoCoinFragmentManager.mainActivityEditMoneyFragment.editRequestFocus();
            }
        }

        @Override
        public void onPageSelected(int position) {
        }

        @Override
        public void onPageScrollStateChanged(int state) {
        }
    });
    editViewPager.setAdapter(editAdapter);
    // tag viewpager////////////////////////////////////////////////////////////////////////////////////
    tagViewPager = (ViewPager) findViewById(R.id.viewpager);
    if (RecordManager.getInstance(mContext).TAGS.size() % 8 == 0)
        tagAdapter = new TagChooseFragmentAdapter(getSupportFragmentManager(), RecordManager.TAGS.size() / 8);
    else
        tagAdapter = new TagChooseFragmentAdapter(getSupportFragmentManager(), RecordManager.TAGS.size() / 8 + 1);
    tagViewPager.setAdapter(tagAdapter);
    // button grid view/////////////////////////////////////////////////////////////////////////////////
    myGridView = (MyGridView) findViewById(R.id.gridview);
    myGridViewAdapter = new ButtonGridViewAdapter(this);
    myGridView.setAdapter(myGridViewAdapter);
    myGridView.setOnItemClickListener(gridViewClickListener);
    myGridView.setOnItemLongClickListener(gridViewLongClickListener);
    myGridView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {

        @Override
        public void onGlobalLayout() {
            myGridView.getViewTreeObserver().removeGlobalOnLayoutListener(this);
            View lastChild = myGridView.getChildAt(myGridView.getChildCount() - 1);
            myGridView.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, lastChild.getBottom()));
            ViewGroup.LayoutParams params = transparentLy.getLayoutParams();
            params.height = myGridView.getMeasuredHeight();
        }
    });
    ButterKnife.inject(this);
    if (toolbar != null) {
        setSupportActionBar(toolbar);
        getSupportActionBar().setTitle(null);
    }
    toolbar.hideOverflowMenu();
    guillotineMenu = LayoutInflater.from(this).inflate(R.layout.guillotine, null);
    root.addView(guillotineMenu);
    transparentLy = (LinearLayout) guillotineMenu.findViewById(R.id.transparent_ly);
    guillotineColorLy = (LinearLayout) guillotineMenu.findViewById(R.id.guillotine_color_ly);
    guillotineToolBar = (Toolbar) guillotineMenu.findViewById(R.id.toolbar);
    menuToolBarTitle = (TextView) guillotineMenu.findViewById(R.id.guillotine_title);
    menuToolBarTitle.setTypeface(CoCoinUtil.typefaceLatoLight);
    menuToolBarTitle.setText(SettingManager.getInstance().getAccountBookName());
    radioButton0 = (RadioButton) guillotineMenu.findViewById(R.id.radio_button_0);
    radioButton1 = (RadioButton) guillotineMenu.findViewById(R.id.radio_button_1);
    radioButton2 = (RadioButton) guillotineMenu.findViewById(R.id.radio_button_2);
    radioButton3 = (RadioButton) guillotineMenu.findViewById(R.id.radio_button_3);
    passwordTip = (TextView) guillotineMenu.findViewById(R.id.password_tip);
    passwordTip.setText(mContext.getResources().getString(R.string.password_tip));
    passwordTip.setTypeface(CoCoinUtil.typefaceLatoLight);
    radioButtonLy = (LinearLayout) guillotineMenu.findViewById(R.id.radio_button_ly);
    statusButton = (MaterialMenuView) guillotineMenu.findViewById(R.id.status_button);
    statusButton.setState(MaterialMenuDrawable.IconState.ARROW);
    statusButton.setOnClickListener(statusButtonOnClickListener);
    animation = new GuillotineAnimation.GuillotineBuilder(guillotineMenu, guillotineMenu.findViewById(R.id.guillotine_hamburger), contentHamburger).setStartDelay(RIPPLE_DURATION).setActionBarViewForAnimation(toolbar).setClosedOnStart(true).setGuillotineListener(new GuillotineListener() {

        @Override
        public void onGuillotineOpened() {
            isPassword = true;
        }

        @Override
        public void onGuillotineClosed() {
            isPassword = false;
            CoCoinFragmentManager.mainActivityEditMoneyFragment.editRequestFocus();
            radioButton0.setChecked(false);
            radioButton1.setChecked(false);
            radioButton2.setChecked(false);
            radioButton3.setChecked(false);
            inputPassword = "";
            statusButton.setState(MaterialMenuDrawable.IconState.ARROW);
        }
    }).build();
    toolbar.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            animation.open();
        }
    });
    if (SettingManager.getInstance().getFirstTime()) {
        Intent intent = new Intent(mContext, ShowActivity.class);
        startActivity(intent);
    }
    if (SettingManager.getInstance().getShowMainActivityGuide()) {
        boolean wrapInScrollView = true;
        new MaterialDialog.Builder(this).title(R.string.guide).typeface(CoCoinUtil.GetTypeface(), CoCoinUtil.GetTypeface()).customView(R.layout.main_activity_guide, wrapInScrollView).positiveText(R.string.ok).show();
        SettingManager.getInstance().setShowMainActivityGuide(false);
    }
}
Also used : BmobUser(cn.bmob.v3.BmobUser) User(com.nightonke.saver.model.User) SuperToast(com.github.johnpersano.supertoasts.SuperToast) ButtonGridViewAdapter(com.nightonke.saver.adapter.ButtonGridViewAdapter) ViewTreeObserver(android.view.ViewTreeObserver) TagChooseFragmentAdapter(com.nightonke.saver.adapter.TagChooseFragmentAdapter) Window(android.view.Window) MaterialDialog(com.afollestad.materialdialogs.MaterialDialog) SuperActivityToast(com.github.johnpersano.supertoasts.SuperActivityToast) Intent(android.content.Intent) ViewPager(android.support.v4.view.ViewPager) CoCoinScrollableViewPager(com.nightonke.saver.ui.CoCoinScrollableViewPager) InjectView(butterknife.InjectView) View(android.view.View) MyGridView(com.nightonke.saver.ui.MyGridView) AdapterView(android.widget.AdapterView) MaterialMenuView(com.balysv.materialmenu.MaterialMenuView) TextView(android.widget.TextView) AppUpdateManager(com.nightonke.saver.model.AppUpdateManager) EditMoneyRemarkFragmentAdapter(com.nightonke.saver.adapter.EditMoneyRemarkFragmentAdapter) GuillotineListener(com.nightonke.saver.ui.guillotine.interfaces.GuillotineListener) Sensor(android.hardware.Sensor)

Example 14 with User

use of com.nightonke.saver.model.User in project CoCoin by Nightonke.

the class AccountBookMonthViewActivity method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mContext = this;
    setContentView(R.layout.activity_account_book_month_view);
    userName = (TextView) findViewById(R.id.user_name);
    userEmail = (TextView) findViewById(R.id.user_email);
    userName.setTypeface(CoCoinUtil.typefaceLatoRegular);
    userEmail.setTypeface(CoCoinUtil.typefaceLatoLight);
    User user = BmobUser.getCurrentUser(CoCoinApplication.getAppContext(), User.class);
    if (user != null) {
        userName.setText(user.getUsername());
        userEmail.setText(user.getEmail());
    }
    mViewPager = (MaterialViewPager) findViewById(R.id.materialViewPager);
    View view = mViewPager.getRootView();
    TextView title = (TextView) view.findViewById(R.id.logo_white);
    title.setTypeface(CoCoinUtil.typefaceLatoLight);
    title.setText(SettingManager.getInstance().getAccountBookName());
    mViewPager.getPagerTitleStrip().setTypeface(CoCoinUtil.GetTypeface(), Typeface.NORMAL);
    setTitle("");
    toolbar = mViewPager.getToolbar();
    mDrawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    if (toolbar != null) {
        setSupportActionBar(toolbar);
        final ActionBar actionBar = getSupportActionBar();
        if (actionBar != null) {
            actionBar.setDisplayHomeAsUpEnabled(true);
            actionBar.setDisplayShowHomeEnabled(true);
            actionBar.setDisplayShowTitleEnabled(true);
            actionBar.setDisplayUseLogoEnabled(false);
            actionBar.setHomeButtonEnabled(true);
        }
    }
    mDrawerToggle = new ActionBarDrawerToggle(this, mDrawer, 0, 0);
    mDrawer.setDrawerListener(mDrawerToggle);
    View logo = findViewById(R.id.logo_white);
    if (logo != null) {
        logo.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                mViewPager.notifyHeaderChanged();
            }
        });
    }
    monthModeAdapter = new MonthViewFragmentAdapter(getSupportFragmentManager());
    mViewPager.getViewPager().setOffscreenPageLimit(monthModeAdapter.getCount());
    mViewPager.getViewPager().setAdapter(monthModeAdapter);
    mViewPager.getPagerTitleStrip().setViewPager(mViewPager.getViewPager());
    if (monthModeAdapter.getCount() == 1) {
        mViewPager.getPagerTitleStrip().setVisibility(View.INVISIBLE);
    }
    mViewPager.setMaterialViewPagerListener(new MaterialViewPager.Listener() {

        @Override
        public HeaderDesign getHeaderDesign(int page) {
            return HeaderDesign.fromColorAndDrawable(CoCoinUtil.GetTagColor(RecordManager.TAGS.get(page).getId()), CoCoinUtil.GetTagDrawable(-3));
        }
    });
    recyclerView = (RecyclerView) mDrawer.findViewById(R.id.recycler_view);
    drawerMonthViewRecyclerViewAdapter = new DrawerMonthViewRecyclerViewAdapter(mContext);
    recyclerView.setAdapter(drawerMonthViewRecyclerViewAdapter);
    recyclerView.setHasFixedSize(true);
    recyclerView.setLayoutManager(new LinearLayoutManager(mContext));
    recyclerView.setItemAnimator(new DefaultItemAnimator());
    drawerMonthViewRecyclerViewAdapter.SetOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(View view, int position) {
            mViewPager.getViewPager().setCurrentItem(position);
            final Handler handler = new Handler();
            handler.postDelayed(new Runnable() {

                @Override
                public void run() {
                    mDrawer.closeDrawers();
                }
            }, 700);
        }
    });
    profileImage = (CircleImageView) mDrawer.findViewById(R.id.profile_image);
    profileImage.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (SettingManager.getInstance().getLoggenOn()) {
                CoCoinUtil.showToast(mContext, R.string.change_logo_tip);
            } else {
                CoCoinUtil.showToast(mContext, R.string.login_tip);
            }
        }
    });
    mDemoSlider = (SliderLayout) findViewById(R.id.slider);
    HashMap<String, Integer> urls = CoCoinUtil.GetDrawerTopUrl();
    for (String name : urls.keySet()) {
        CustomSliderView customSliderView = new CustomSliderView(this);
        // initialize a SliderLayout
        customSliderView.image(urls.get(name)).setScaleType(BaseSliderView.ScaleType.Fit);
        mDemoSlider.addSlider(customSliderView);
    }
    mDemoSlider.setPresetTransformer(SliderLayout.Transformer.ZoomOut);
    mDemoSlider.setCustomAnimation(new DescriptionAnimation());
    mDemoSlider.setDuration(4000);
    mDemoSlider.setCustomIndicator((PagerIndicator) findViewById(R.id.custom_indicator));
    loadLogo();
}
Also used : MaterialViewPager(com.github.florent37.materialviewpager.MaterialViewPager) DrawerMonthViewRecyclerViewAdapter(com.nightonke.saver.adapter.DrawerMonthViewRecyclerViewAdapter) User(com.nightonke.saver.model.User) BmobUser(cn.bmob.v3.BmobUser) OnItemClickListener(com.nightonke.saver.adapter.DrawerMonthViewRecyclerViewAdapter.OnItemClickListener) HeaderDesign(com.github.florent37.materialviewpager.header.HeaderDesign) ActionBarDrawerToggle(android.support.v7.app.ActionBarDrawerToggle) Handler(android.os.Handler) CustomSliderView(com.nightonke.saver.ui.CustomSliderView) LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) CircleImageView(de.hdodenhof.circleimageview.CircleImageView) CustomSliderView(com.nightonke.saver.ui.CustomSliderView) View(android.view.View) RecyclerView(android.support.v7.widget.RecyclerView) TextView(android.widget.TextView) BaseSliderView(com.daimajia.slider.library.SliderTypes.BaseSliderView) MonthViewFragmentAdapter(com.nightonke.saver.adapter.MonthViewFragmentAdapter) DefaultItemAnimator(android.support.v7.widget.DefaultItemAnimator) DescriptionAnimation(com.daimajia.slider.library.Animations.DescriptionAnimation) TextView(android.widget.TextView) ActionBar(android.support.v7.app.ActionBar)

Example 15 with User

use of com.nightonke.saver.model.User in project CoCoin by Nightonke.

the class AccountBookListViewActivity method loadLogo.

private void loadLogo() {
    User user = BmobUser.getCurrentUser(CoCoinApplication.getAppContext(), User.class);
    if (user != null) {
        try {
            File logoFile = new File(CoCoinApplication.getAppContext().getFilesDir() + CoCoinUtil.LOGO_NAME);
            if (!logoFile.exists()) {
                // the local logo file is missed
                // try to get from the server
                BmobQuery<Logo> bmobQuery = new BmobQuery();
                bmobQuery.addWhereEqualTo("objectId", user.getLogoObjectId());
                bmobQuery.findObjects(CoCoinApplication.getAppContext(), new FindListener<Logo>() {

                    @Override
                    public void onSuccess(List<Logo> object) {
                        // there has been an old logo in the server/////////////////////////////////////////////////////////
                        String url = object.get(0).getFile().getFileUrl(CoCoinApplication.getAppContext());
                        if (BuildConfig.DEBUG)
                            Log.d("CoCoin", "Logo in server: " + url);
                        Ion.with(CoCoinApplication.getAppContext()).load(url).write(new File(CoCoinApplication.getAppContext().getFilesDir() + CoCoinUtil.LOGO_NAME)).setCallback(new FutureCallback<File>() {

                            @Override
                            public void onCompleted(Exception e, File file) {
                                profileImage.setImageBitmap(BitmapFactory.decodeFile(CoCoinApplication.getAppContext().getFilesDir() + CoCoinUtil.LOGO_NAME));
                            }
                        });
                    }

                    @Override
                    public void onError(int code, String msg) {
                        // the picture is lost
                        if (BuildConfig.DEBUG)
                            Log.d("CoCoin", "Can't find the old logo in server.");
                    }
                });
            } else {
                // the user logo is in the storage
                Bitmap b = BitmapFactory.decodeStream(new FileInputStream(logoFile));
                profileImage.setImageBitmap(b);
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    } else {
        // use the default logo
        profileImage.setImageResource(R.drawable.default_user_logo);
    }
}
Also used : BmobUser(cn.bmob.v3.BmobUser) User(com.nightonke.saver.model.User) FileNotFoundException(java.io.FileNotFoundException) FileNotFoundException(java.io.FileNotFoundException) FileInputStream(java.io.FileInputStream) Logo(com.nightonke.saver.model.Logo) Bitmap(android.graphics.Bitmap) BmobQuery(cn.bmob.v3.BmobQuery) File(java.io.File) FutureCallback(com.koushikdutta.async.future.FutureCallback)

Aggregations

BmobUser (cn.bmob.v3.BmobUser)23 User (com.nightonke.saver.model.User)23 File (java.io.File)9 MaterialDialog (com.afollestad.materialdialogs.MaterialDialog)8 Handler (android.os.Handler)7 View (android.view.View)7 TextView (android.widget.TextView)7 BmobQuery (cn.bmob.v3.BmobQuery)7 UpdateListener (cn.bmob.v3.listener.UpdateListener)7 Logo (com.nightonke.saver.model.Logo)7 Bitmap (android.graphics.Bitmap)6 BmobFile (cn.bmob.v3.datatype.BmobFile)6 FutureCallback (com.koushikdutta.async.future.FutureCallback)6 CircleImageView (de.hdodenhof.circleimageview.CircleImageView)6 FileInputStream (java.io.FileInputStream)6 FileNotFoundException (java.io.FileNotFoundException)6 ActionBar (android.support.v7.app.ActionBar)4 ActionBarDrawerToggle (android.support.v7.app.ActionBarDrawerToggle)4 SaveListener (cn.bmob.v3.listener.SaveListener)4 DescriptionAnimation (com.daimajia.slider.library.Animations.DescriptionAnimation)4