stats reworked fixed a bug

This commit is contained in:
Gongxter 2016-01-21 16:52:08 +01:00
parent 3d110b57c5
commit 4724612c1e
7 changed files with 34 additions and 28 deletions

View file

@ -173,8 +173,8 @@ public class GameController implements IModelChangedListener {
}
int[] solved = solve();
//
// reveal the selected value.
// TODO test every placed value so far
// and reveal the selected value.
selectValue(solved[selectedRow * getSize() + selectedCol]);
usedHints++;

View file

@ -13,11 +13,13 @@ import java.util.List;
import org.secuso.privacyfriendlysudoku.controller.helper.HighscoreInfoContainer;
import org.secuso.privacyfriendlysudoku.game.GameDifficulty;
import org.secuso.privacyfriendlysudoku.game.GameType;
import org.secuso.privacyfriendlysudoku.game.listener.IHintListener;
import org.secuso.privacyfriendlysudoku.game.listener.ITimerListener;
/**
* Created by TMZ_LToP on 19.11.2015.
*/
public class SaveLoadStatistics implements ITimerListener {
public class SaveLoadStatistics implements ITimerListener, IHintListener {
private static String FILE_EXTENSION = ".txt";
@ -114,15 +116,14 @@ public class SaveLoadStatistics implements ITimerListener {
}
public void saveTime(GameDifficulty gd, GameType gameType) {
//TODO: Increse time every second
public void incTime(GameDifficulty gd, GameType gameType) {
HighscoreInfoContainer infos = loadStats(gameType, gd);
infos.incTime();
saveContainer(infos,gd,gameType);
}
public void saveHints(GameDifficulty gd, GameType gameType){
public void incHints(GameDifficulty gd, GameType gameType){
HighscoreInfoContainer infos = loadStats(gameType,gd);
infos.incHints();
saveContainer(infos,gd,gameType);
@ -202,7 +203,12 @@ public class SaveLoadStatistics implements ITimerListener {
@Override
public void onTick(int time) {
saveTime(gc.getDifficulty(),gc.getGameType());
incTime(gc.getDifficulty(), gc.getGameType());
//gc.getUsedHints();
}
@Override
public void onHintUsed() {
incHints(gc.getDifficulty(),gc.getGameType());
}
}

View file

@ -18,7 +18,9 @@ import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Gravity;
import android.view.MenuItem;
import android.view.WindowManager;
import android.widget.RatingBar;
import android.widget.TextView;
import android.widget.Toast;
@ -252,15 +254,18 @@ public class GameActivity extends AppCompatActivity implements NavigationView.On
gameController.pauseTimer();
gameController.deleteGame(this);
Toast t = Toast.makeText(this, R.string.win_text, Toast.LENGTH_SHORT);
t.show();
//Show time hints new plus old best time
statistics.saveGameStats();
FragmentManager fr = getSupportFragmentManager();
DialogWinScreen win = new DialogWinScreen();
win.setProps(gameController, this);
win.show(fr, "win_screen_layout");
Dialog dialog = new Dialog(this);
//dialog.setContentView(getLayoutInflater().inflate(R.layout.win_screen_layout,null));
dialog.getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT);
//dialog.setContentView(R.layout.win_screen_layout);
dialog.getWindow().setGravity(Gravity.CENTER_HORIZONTAL);
dialog.getWindow().setContentView(R.layout.win_screen_layout);
dialog.getWindow().setBackgroundDrawableResource(R.color.transparent);
dialog.show();
keyboard.setButtonsEnabled(false);
specialButtonLayout.setButtonsEnabled(false);

View file

@ -144,14 +144,7 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On
DialogWinScreen winScreen = new DialogWinScreen();
winScreen.show(fm,"win_screen_layout");*/
Dialog dialog = new Dialog(this);
//dialog.setContentView(getLayoutInflater().inflate(R.layout.win_screen_layout,null));
dialog.getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT);
//dialog.setContentView(R.layout.win_screen_layout);
dialog.getWindow().setGravity(Gravity.CENTER_HORIZONTAL);
dialog.getWindow().setContentView(R.layout.win_screen_layout);
dialog.getWindow().setBackgroundDrawableResource(R.color.transparent);
dialog.show();
}
public void onClick(View view) {

View file

@ -181,7 +181,7 @@ public class StatsActivity extends AppCompatActivity {
List<HighscoreInfoContainer> stats = s.loadStats(GameType.getValidGameTypes().get(getArguments().getInt(ARG_SECTION_NUMBER)));
int j =0;
for (HighscoreInfoContainer i : stats){
updateGeneralIfo(i.getTime(), i.getNumberOfGames(), i.getNumberOfHintsUsed());
updateGeneralInfo(i.getTime(), i.getNumberOfGames(), i.getNumberOfHintsUsed());
setStats(i,j++);
}
setGeneralInfo();
@ -209,7 +209,7 @@ public class StatsActivity extends AppCompatActivity {
return (h + ":" + m + ":" + s);
}
private void updateGeneralIfo(int time, int games, int hints){
private void updateGeneralInfo(int time, int games, int hints){
totalHints +=hints;
totalGames +=games;
totalTime +=time;
@ -264,6 +264,7 @@ public class StatsActivity extends AppCompatActivity {
View rootView = inflater.inflate(R.layout.fragment_stats, container, false);
this.rootView = rootView;
resetGeneral();
TextView textView = (TextView) rootView.findViewById(R.id.section_label);
SaveLoadStatistics s = new SaveLoadStatistics(this.getContext());
@ -272,7 +273,7 @@ public class StatsActivity extends AppCompatActivity {
int j =0;
for (HighscoreInfoContainer i : stats){
updateGeneralIfo(i.getTime(), i.getNumberOfGames(), i.getNumberOfHintsUsed());
updateGeneralInfo(i.getTime(), i.getNumberOfGames(), i.getNumberOfHintsUsed());
setStats(i,j++);
}
setGeneralInfo();

View file

@ -115,6 +115,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/colorPrimaryDark"
android:textColor="@color/white"
android:text="@string/win_button_text"/>
</LinearLayout>

View file

@ -98,11 +98,11 @@
<!-- ### Stats ###-->
<string name="stats_name">Statistics</string>
<string name="number_of_hints">Number of hints used:</string>
<string name="number_of_games">Number of games played:</string>
<string name="number_of_hints"># used hints:</string>
<string name="number_of_games"># completed games:</string>
<string name="total_of_time">Total time played:</string>
<string name="average_time">Average time:</string>
<string name="min_time">Minimum time:</string>
<string name="average_time">average time:</string>
<string name="min_time">best time:</string>
<string name="reset_stats">Reset All</string>