//---top5 VER----top5 record---start----------------------------------------------------------
public static int[] highscores = new int[] { 10, 8, 5, 3, 1 };

// SQLITE ONLY START
private static final String DATABASE_NAME = "TOP5";
private SQLiteDatabase database; // database object
private DatabaseOpenHelper databaseOpenHelper; // database helper
private static final int DATABASE_VERSION = 2;

private class DatabaseOpenHelper extends SQLiteOpenHelper 
{
   // public constructor
   public DatabaseOpenHelper(Context context, String name,
      CursorFactory factory, int version) 
   {
      super(context, name, factory, version);
   } // end DatabaseOpenHelper constructor

   // creates the contacts table when the database is created
   @Override
   public void onCreate(SQLiteDatabase db) 
   {
      // query to create a new table named contacts
      String createQuery = "CREATE TABLE top " + "(_id integer primary key autoincrement," + "top5 TEXT);";
               
      db.execSQL(createQuery); // execute the query
   } // end method onCreate

   @Override
   public void onUpgrade(SQLiteDatabase db, int oldVersion, 
       int newVersion) 
   {

   } // end method onUpgrade
} // end class DatabaseOpenHelper

// SQLITE ONLY END

private String scoreSaveReturn2(int totalPoints) {
	//performRetreiveFromFileScores4("scores7");   // not comment if use files  
	performRetreiveFromFileScores4SharedPref();  // not comment if use shared pref
	//performRetreiveFromSQLITEScores4();            // not comment if use SQLITE
	addScore(totalPoints);  // not comment
	//performSaveToFileScores(highscores);           // not comment if use files
	performSaveToFileScoresSharedPref(highscores);// not comment if use shared pref
	// performSaveToFileScoresSQLITE(highscores);       // not comment if use SQLITE
	return printScores(highscores);  // not comment
	
}
int k=10;
public void addScore(int score) {  // static
    for (int i = 0; i < 5; i++) {
        if (highscores[i] < score) {
            for (int j = 4; j > i; j--)
                highscores[j] = highscores[j - 1];
            highscores[i] = score;
            k=i;
            break;
        }
    }
}

private void SQLITE() {
	databaseOpenHelper = new DatabaseOpenHelper(getBaseContext(), DATABASE_NAME, null, DATABASE_VERSION);
	database = databaseOpenHelper.getWritableDatabase();
	
}

private void performSaveToFileScores(int[] x) {
	//this does the actual file saving.
	// set the filename in the interface:
	String strFileContent="";
	for (int i = 0; i < 4; i++) {
		strFileContent += ""+x[i]+",";
	}
	strFileContent += ""+x[4];
	
	String f = "scores7";
	// ... and save the file:
	try {
		FileOutputStream oStream = openFileOutput(f, Context.MODE_PRIVATE);
		oStream.write(strFileContent.getBytes());
		oStream.close();
	} catch (FileNotFoundException e) {
		e.printStackTrace();
	} catch (IOException e) {
		e.printStackTrace();
	}
	
}

private void performSaveToFileScoresSQLITE(int[] x) {
	//this does the actual file saving.
	// set the filename in the interface:
	String strFileContent="";
	for (int i = 0; i < 4; i++) {
		strFileContent += ""+x[i]+",";
	}
	strFileContent += ""+x[4];
	
    SharedPreferences prefs = getSharedPreferences("top5",MODE_PRIVATE);
	SharedPreferences.Editor editor = prefs.edit();
	editor.putString("strFileContent", "");
	editor.commit(); 
	
	try {
		SQLITE();
		ContentValues editContact = new ContentValues();
		editContact.put("name", strFileContent);
	      
		database.update("contacts", editContact, "_id=" + 0, null);	
	      

	}
	catch (Exception e){
		e.printStackTrace();
	}	
	
	 
	if (database != null)
        database.close();
	
	
}

private void performSaveToFileScoresSharedPref(int[] x) {
	//this does the actual file saving.
	// set the filename in the interface:
	String strFileContent="";
	for (int i = 0; i < 4; i++) {
		strFileContent += ""+x[i]+",";
	}
	strFileContent += ""+x[4];
	
    SharedPreferences prefs = getSharedPreferences("top5",MODE_PRIVATE);
	SharedPreferences.Editor editor = prefs.edit();
	editor.putString("strFileContent", "");
	editor.commit();      
}

private void performRetreiveFromFileScores4SharedPref() {
	try {
	
        SharedPreferences prefs = getSharedPreferences("top5",MODE_PRIVATE);
        String line;
        line = prefs.getString("strFileContent", "");

		int k=0;
		StringTokenizer st = new StringTokenizer(line, ",");
		while (st.hasMoreTokens()) {
			highscores[k]=Integer.parseInt(st.nextToken());
			
			k++;
			
		}
	}
	catch (Exception e){
		e.printStackTrace();
	}		
}


private void performRetreiveFromFileScores4(String filename) {
	try {
	
	FileInputStream in = openFileInput(filename);
	//Log.i("filename", "filename as read -> " +filename);
	
	InputStreamReader inputStreamReader = new InputStreamReader(in);
	BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
	StringBuilder sb = new StringBuilder();
	String line;
	while ((line = bufferedReader.readLine()) != null) {
	    sb.append(line);
	}
	Log.i("line", "sb as read -> " +sb);
	Log.i("line", "line as read -> " +line);
	int k=0;
	StringTokenizer st = new StringTokenizer(sb.toString(), ",");
	while (st.hasMoreTokens()) {
		highscores[k]=Integer.parseInt(st.nextToken());
		
		k++;
		
	}
	}
	catch (IOException e){
		e.printStackTrace();
	}		
}
private void performRetreiveFromSQLITEScores4() {
	try {
		SQLITE();
		Cursor result = database.query("top", null, "_id=" + 0, null, null, null, null);
		result.moveToFirst();
		
		int nameIndex = result.getColumnIndex("name");
	
	int k=0;
	StringTokenizer st = new StringTokenizer(result.getString(nameIndex), ",");
	while (st.hasMoreTokens()) {
		highscores[k]=Integer.parseInt(st.nextToken());
		
		k++;
		
	}
	
	result.close();
	}
	catch (Exception e){
		e.printStackTrace();
	}	
	
	 
	if (database != null)
        database.close();
}

private String printScores(int [] highscores1) {
	String scoresTop5 = "Top Scores:\n";
	int[] highscores=highscores1;
	String z="";
	for (int i = 0; i<5; i++) {
		if (k==i) { z=" *"; } else z=""; // if score inside top5 show asterisk  k=line 407, 414
		scoresTop5 += (i+1) + ": " + highscores[i] + z +"\n";//n;//+=   here no problem  problem in reading
	} 
	return scoresTop5;
}
//---top5 VER----top5 record----end----------------------------------------------------------
