Skip to content

Commit

Permalink
#15 Рейтинг пользователя
Browse files Browse the repository at this point in the history
Добавлен подсчет рейтнга пользователя
  • Loading branch information
Neomer committed May 5, 2019
1 parent 340bb21 commit 3ad19b5
Show file tree
Hide file tree
Showing 16 changed files with 66 additions and 85 deletions.
6 changes: 6 additions & 0 deletions app/src/main/java/my/neomer/sixtyseconds/MainActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,12 @@ protected void onStop() {
super.onStop();
}

@Override
protected void onDestroy() {
gameMode.finish();
super.onDestroy();
}

/**
* Сохраняет количество пропущенных вопросов для показа рекламы
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ public abstract class BaseGameMode implements IGameMode, IStateFinishListener {
private static final String LOG_TAG = "BaseGameMode";
private BaseGameContext gameContext;
private Pipeline<IState> statePipeline;
private boolean finish = false;

/**
* Новая игра.
Expand Down Expand Up @@ -46,16 +47,32 @@ public void onFinish(IState state) {
public void run() {
IState initialState = getCurrentState();
if (initialState != null) {
runState(initialState);
if (initialState.isOnPause()) {
initialState.proceed();
} else {
runState(initialState);
}
}
}

@Override
public void finish() {
IState state = getCurrentState();
finish = true;
if (state != null) {
state.finish();
}
}

private void runState(@NonNull final IState state) {
final IStateFinishListener stateFinishListener = this;
state.prepareState(getGameContext(), stateFinishListener);
state.start();
if (!finish) {
final IStateFinishListener stateFinishListener = this;
state.prepareState(getGameContext(), stateFinishListener);
state.start();
}
}


//region Parcelable

protected BaseGameMode(Parcel in) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,9 @@ public interface IGameMode extends Parcelable {
* Начать игру
*/
void run();

/**
* Закончить игру
*/
void finish();
}
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,11 @@ public static ApplicationResources getInstance() {
return ourInstance;
}

//endregion

private ApplicationResources() {
}

//endregion

private IApiProvider questionProvider = new HttpApiProvider();
private IAdsProvider adsProvider = new AdMobAdProvider();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,16 +44,6 @@ public void start() {
}
}

@Override
public void pause() {

}

@Override
public void proceed() {

}

//region IRewardedAdResultListener implementation

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ public void start() {
btnStart.setText(R.string.wait_countdown_text);
txtTimeCountdown.setTextSize(TypedValue.COMPLEX_UNIT_PX,
getGameContext().getActivity().getResources().getDimension(R.dimen.title_font_size));
txtTimeCountdown.setText(R.string.updating_message);
txtTimeCountdown.setText(R.string.receiving_answer_message);
questionFragment.clear();

ApplicationResources.getInstance()
Expand All @@ -86,16 +86,6 @@ public void start() {
this);
}

@Override
public void pause() {

}

@Override
public void proceed() {

}

@Override
public void finish() {
super.finish();
Expand Down
10 changes: 0 additions & 10 deletions app/src/main/java/my/neomer/sixtyseconds/states/AnswerState.java
Original file line number Diff line number Diff line change
Expand Up @@ -137,16 +137,6 @@ void showVoting() {
}
}

@Override
public void pause() {

}

@Override
public void proceed() {

}

@OnClick(R.id.btnLike)
void likeIt() {
ApplicationResources.getInstance()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,10 +49,6 @@ private void StartTimer()
escalationTimer.execute();
}

final void PauseTimer() { escalationTimer.pause(); }

final void ProceedTimer() { escalationTimer.proceed(); }

final void CancelTimer()
{
Log.d(LOG_TAG, "BaseEscalationState.CancelTimer()");
Expand All @@ -61,16 +57,6 @@ final void CancelTimer()
}
}

@Override
public void pause() {
PauseTimer();
}

@Override
public void proceed() {
ProceedTimer();
}

@Override
public void finish() {
escalationTimer.disableEvents();
Expand Down
18 changes: 18 additions & 0 deletions app/src/main/java/my/neomer/sixtyseconds/states/BaseState.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ public abstract class BaseState implements IState {
BaseState(Parcel in) {
gameContext = (BaseGameContext) in.readSerializable();
stateFinishListener = (IStateFinishListener) in.readSerializable();
paused = in.readInt() == 1;
}

@Override
Expand All @@ -22,6 +23,7 @@ public int describeContents() {
public void writeToParcel(Parcel dest, int flags) {
dest.writeParcelable(getGameContext(), 0);
dest.writeSerializable(stateFinishListener);
dest.writeInt(paused ? 1 : 0);
}

//endregion
Expand Down Expand Up @@ -50,4 +52,20 @@ public void finish() {
}
}

private boolean paused = false;

@Override
public void pause() {
paused = true;
}

@Override
public void proceed() {
paused = false;
}

@Override
public boolean isOnPause() {
return paused;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ class EscalationTimer extends AsyncTask<Void, Integer, Void>

private int escalationTime;
private BaseEscalationState state;
private volatile boolean pause = false;
private volatile boolean eventsDisabled = false;

EscalationTimer(BaseEscalationState state, int escalationTime) {
Expand Down Expand Up @@ -56,22 +55,14 @@ void enableEvents() {
eventsDisabled = false;
}

void proceed() {
pause = false;
}

void pause() {
pause = true;
}

@Override
protected Void doInBackground(Void... voids) {
for (int time = this.escalationTime; time > 0; --time) {
try {
publishProgress(time);
do {
TimeUnit.SECONDS.sleep(1);
} while (pause);
} while (state.isOnPause());
} catch (InterruptedException e) {
return null;
}
Expand Down
4 changes: 4 additions & 0 deletions app/src/main/java/my/neomer/sixtyseconds/states/IState.java
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,8 @@ public interface IState extends Parcelable {
*/
void finish();

/**
* Состояние приостановлено
*/
boolean isOnPause();
}
Original file line number Diff line number Diff line change
Expand Up @@ -86,16 +86,6 @@ public void start() {
.getNextQuestion(getGameContext().getDifficulty(), this);
}

@Override
public void pause() {

}

@Override
public void proceed() {

}

@Override
public void finish() {
super.finish();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,16 +71,6 @@ public void start() {

}

@Override
public void pause() {

}

@Override
public void proceed() {

}

@Override
public void finish() {
settingsLayout.setVisibility(View.INVISIBLE);
Expand Down
6 changes: 4 additions & 2 deletions app/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,11 @@
android:id="@+id/layoutVote"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="32dp"
android:layout_marginEnd="32dp"
android:layout_marginBottom="8dp"
android:background="@color/background"
android:backgroundTint="@color/browser_actions_bg_grey"
android:visibility="invisible"
app:layout_constraintBottom_toTopOf="@+id/btnStart"
app:layout_constraintEnd_toEndOf="parent"
Expand Down
3 changes: 2 additions & 1 deletion app/src/main/res/values-ru-rRU/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@
<string name="finish_message">Время вышло</string>
<string name="cancel_message">Остановлено</string>
<string name="answer_message">Ответ</string>
<string name="updating_message">Ищем вопрос...</string>
<string name="updating_message">Ищем вопрос…</string>
<string name="receiving_answer_message">Проверяем ответ…</string>
<string name="next_question_message">Следующий вопрос</string>
<string name="vote_lebel">Вам понравился вопрос?</string>
<string name="type_guess_title">Напишите ваш ответ:</string>
Expand Down
3 changes: 2 additions & 1 deletion app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@
<string name="finish_message">Finish!</string>
<string name="cancel_message">Stopped!</string>
<string name="answer_message">Answer</string>
<string name="updating_message">Receiving question...</string>
<string name="updating_message">Receiving question…</string>
<string name="receiving_answer_message">Receiving answer…</string>
<string name="next_question_message">Next question</string>
<string name="vote_lebel">Do you like this question?</string>
<string name="type_guess_title">Type your variant:</string>
Expand Down

0 comments on commit 3ad19b5

Please sign in to comment.