countDownTimer save SharedPreferences - PullRequest
0 голосов
/ 18 января 2020

Я пытаюсь сохранить таймер, чтобы разблокировать кнопку, при нажатии на которую появляется реклама и пользователь выигрывает монеты. Мне удалось сделать кнопку «отключенной», чтобы увидеть, что кнопка отключена и появляется в течение 30 секунд, пока все в порядке, но при выходе или закрытии приложения время сбрасывается снова, и пользователь снова может видеть рекламу, я хотел бы, чтобы кнопка появлялась снова только когда время истекло. Я хотел бы сохранить оставшееся время на SharedPreferences Мой код:

verAnuncio.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            AlertDialog alertDialog = new AlertDialog.Builder(MenuPrincipal.this).create();
                            alertDialog.setIcon(R.drawable.logo);
                            alertDialog.setTitle("Atenção");
                            alertDialog.setMessage("Assista o Anuncio até o final para receber suas 20 Moedas GRATIS!\nNão feche antes de terminar.");
                            alertDialog.setButton(AlertDialog.BUTTON_POSITIVE, "Ok",
                                    new DialogInterface.OnClickListener() {
                                        public void onClick(DialogInterface dialog, int which) {
                                            cronometroTempoVideo = new CountDownTimer(180000,1000) {
                                                @Override
                                                public void onTick(long millisUntilFinished) {
                                                    cronometro2.setText("" + String.format("%d min e %d sec",
                                                            TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished),
                                                            TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished)
                                                                    - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished))));
                                                    verAnuncioVideo.setText("Aguarde");
                                                    verAnuncioVideo.setEnabled(false);
                                                }

                                                @Override
                                                public void onFinish() {
                                                    cronometro2.setText("5 min e 0 sec");
                                                    verAnuncioVideo.setText("Ver Anuncio");
                                                    verAnuncioVideo.setEnabled(true);
                                                }
                                            };
                                            cronometroTempoVideo.start();
                                            mRewardedVideoAd.show();
                                        }
                                    });
                            alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, "Voltar",
                                    new DialogInterface.OnClickListener() {
                                        public void onClick(DialogInterface dialog, int which) {
                                            dialog.dismiss();
                                        }
                                    });
                            alertDialog.show();
                        }
                    });
...