> expandableListDetail) {
+ this.context = context;
+ this.expandableListTitle = expandableListTitle;
+ this.expandableListDetail = expandableListDetail;
+ }
+
+ @Override
+ public Object getChild(int listPosition, int expandedListPosition) {
+ return this.expandableListDetail.get(this.expandableListTitle.get(listPosition))
+ .get(expandedListPosition);
+ }
+
+ @Override
+ public long getChildId(int listPosition, int expandedListPosition) {
+ return expandedListPosition;
+ }
+
+ @Override
+ public View getChildView(int listPosition, final int expandedListPosition,
+ boolean isLastChild, View convertView, ViewGroup parent) {
+ final String expandedListText = (String) getChild(listPosition, expandedListPosition);
+ if (convertView == null) {
+ LayoutInflater layoutInflater = (LayoutInflater) this.context
+ .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+ convertView = layoutInflater.inflate(R.layout.list_item, null);
}
-
- @Override
- public Object getChild(int listPosition, int expandedListPosition) {
- return this.expandableListDetail.get(this.expandableListTitle.get(listPosition))
- .get(expandedListPosition);
- }
-
- @Override
- public long getChildId(int listPosition, int expandedListPosition) {
- return expandedListPosition;
- }
-
- @Override
- public View getChildView(int listPosition, final int expandedListPosition,
- boolean isLastChild, View convertView, ViewGroup parent) {
- final String expandedListText = (String) getChild(listPosition, expandedListPosition);
- if (convertView == null) {
- LayoutInflater layoutInflater = (LayoutInflater) this.context
- .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- convertView = layoutInflater.inflate(R.layout.list_item, null);
- }
- TextView expandedListTextView = (TextView) convertView
- .findViewById(R.id.expandedListItem);
- expandedListTextView.setText(expandedListText);
- return convertView;
- }
-
- @Override
- public int getChildrenCount(int listPosition) {
- return this.expandableListDetail.get(this.expandableListTitle.get(listPosition))
- .size();
- }
-
- @Override
- public Object getGroup(int listPosition) {
- return this.expandableListTitle.get(listPosition);
- }
-
- @Override
- public int getGroupCount() {
- return this.expandableListTitle.size();
- }
-
- @Override
- public long getGroupId(int listPosition) {
- return listPosition;
- }
-
- @Override
- public View getGroupView(int listPosition, boolean isExpanded,
- View convertView, ViewGroup parent) {
- String listTitle = (String) getGroup(listPosition);
- if (convertView == null) {
- LayoutInflater layoutInflater = (LayoutInflater) this.context.
- getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- convertView = layoutInflater.inflate(R.layout.list_group, null);
- }
- TextView listTitleTextView = (TextView) convertView
- .findViewById(R.id.listTitle);
- listTitleTextView.setTypeface(null, Typeface.BOLD);
- listTitleTextView.setText(listTitle);
- return convertView;
- }
-
- @Override
- public boolean hasStableIds() {
- return false;
- }
-
- @Override
- public boolean isChildSelectable(int listPosition, int expandedListPosition) {
- return true;
+ TextView expandedListTextView = (TextView) convertView
+ .findViewById(R.id.expandedListItem);
+ expandedListTextView.setText(expandedListText);
+ return convertView;
+ }
+
+ @Override
+ public int getChildrenCount(int listPosition) {
+ return this.expandableListDetail.get(this.expandableListTitle.get(listPosition))
+ .size();
+ }
+
+ @Override
+ public Object getGroup(int listPosition) {
+ return this.expandableListTitle.get(listPosition);
+ }
+
+ @Override
+ public int getGroupCount() {
+ return this.expandableListTitle.size();
+ }
+
+ @Override
+ public long getGroupId(int listPosition) {
+ return listPosition;
+ }
+
+ @Override
+ public View getGroupView(int listPosition, boolean isExpanded,
+ View convertView, ViewGroup parent) {
+ String listTitle = (String) getGroup(listPosition);
+ if (convertView == null) {
+ LayoutInflater layoutInflater = (LayoutInflater) this.context.
+ getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+ convertView = layoutInflater.inflate(R.layout.list_group, null);
}
- }
\ No newline at end of file
+ TextView listTitleTextView = (TextView) convertView
+ .findViewById(R.id.listTitle);
+ listTitleTextView.setTypeface(null, Typeface.BOLD);
+ listTitleTextView.setText(listTitle);
+ return convertView;
+ }
+
+ @Override
+ public boolean hasStableIds() {
+ return false;
+ }
+
+ @Override
+ public boolean isChildSelectable(int listPosition, int expandedListPosition) {
+ return true;
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/org/secuso/privacyfriendly2048/activities/helper/AppCompatPreferenceActivity.java b/app/src/main/java/org/secuso/privacyfriendly2048/activities/helper/AppCompatPreferenceActivity.java
index c3a30c6..355d99a 100644
--- a/app/src/main/java/org/secuso/privacyfriendly2048/activities/helper/AppCompatPreferenceActivity.java
+++ b/app/src/main/java/org/secuso/privacyfriendly2048/activities/helper/AppCompatPreferenceActivity.java
@@ -21,14 +21,15 @@
import android.content.res.Configuration;
import android.os.Bundle;
import android.preference.PreferenceActivity;
+import android.view.MenuInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
import androidx.annotation.LayoutRes;
import androidx.annotation.Nullable;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatDelegate;
import androidx.appcompat.widget.Toolbar;
-import android.view.MenuInflater;
-import android.view.View;
-import android.view.ViewGroup;
/**
* A {@link android.preference.PreferenceActivity} which implements and proxies the necessary calls
diff --git a/app/src/main/java/org/secuso/privacyfriendly2048/activities/helper/BaseActivity.java b/app/src/main/java/org/secuso/privacyfriendly2048/activities/helper/BaseActivity.java
index a82ac49..9170670 100644
--- a/app/src/main/java/org/secuso/privacyfriendly2048/activities/helper/BaseActivity.java
+++ b/app/src/main/java/org/secuso/privacyfriendly2048/activities/helper/BaseActivity.java
@@ -25,17 +25,18 @@
import android.os.Handler;
import android.preference.PreferenceActivity;
import android.preference.PreferenceManager;
-import com.google.android.material.navigation.NavigationView;
-import com.google.android.material.navigation.NavigationView.OnNavigationItemSelectedListener;
-import androidx.core.app.TaskStackBuilder;
-import androidx.core.view.GravityCompat;
-import androidx.drawerlayout.widget.DrawerLayout;
+import android.view.MenuItem;
+import android.view.View;
+
import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
+import androidx.core.app.TaskStackBuilder;
+import androidx.core.view.GravityCompat;
+import androidx.drawerlayout.widget.DrawerLayout;
-import android.view.MenuItem;
-import android.view.View;
+import com.google.android.material.navigation.NavigationView;
+import com.google.android.material.navigation.NavigationView.OnNavigationItemSelectedListener;
import org.secuso.privacyfriendly2048.R;
import org.secuso.privacyfriendly2048.activities.AboutActivity;
@@ -50,14 +51,13 @@
* @version 20171017
* This class is a parent class of all activities that can be accessed from the
* Navigation Drawer (example see MainActivity.java)
- *
+ *
* The default NavigationDrawer functionality is implemented in this class. If you wish to inherit
* the default behaviour, make sure the content view has a NavigationDrawer with the id 'nav_view',
* the header should point to 'nav_header_main' and the menu should be loaded from 'main_drawer'.
- *
+ *
* Also the main layout that holds the content of the activity should have the id 'main_content'.
* This way it will automatically fade in and out every time a transition is happening.
- *
*/
public abstract class BaseActivity extends AppCompatActivity implements OnNavigationItemSelectedListener {
@@ -69,7 +69,7 @@ public abstract class BaseActivity extends AppCompatActivity implements OnNaviga
public static final int MAIN_CONTENT_FADEIN_DURATION = 250;
// Navigation drawer:
- public DrawerLayout mDrawerLayout;
+ public DrawerLayout mDrawerLayout;
private NavigationView mNavigationView;
// Helper
@@ -106,10 +106,9 @@ public boolean onNavigationItemSelected(MenuItem item) {
}
-
protected boolean goToNavigationItem(final int itemId) {
- if(itemId == getNavigationDrawerID()) {
+ if (itemId == getNavigationDrawerID()) {
// just close drawer because we are already in this activity
mDrawerLayout.closeDrawer(GravityCompat.START);
return true;
@@ -137,7 +136,7 @@ public void run() {
// set active navigation item
private void selectNavigationItem(int itemId) {
- for(int i = 0 ; i < mNavigationView.getMenu().size(); i++) {
+ for (int i = 0; i < mNavigationView.getMenu().size(); i++) {
boolean b = itemId == mNavigationView.getMenu().getItem(i).getItemId();
mNavigationView.getMenu().getItem(i).setChecked(b);
}
@@ -146,6 +145,7 @@ private void selectNavigationItem(int itemId) {
/**
* Enables back navigation for activities that are launched from the NavBar. See
* {@code AndroidManifest.xml} to find out the parent activity names for each activity.
+ *
* @param intent
*/
private void createBackStack(Intent intent) {
@@ -162,12 +162,13 @@ private void createBackStack(Intent intent) {
/**
* This method manages the behaviour of the navigation drawer
* Add your menu items (ids) to res/menu/activity_main_drawer.xml
+ *
* @param itemId Item that has been clicked by the user
*/
private void callDrawerItem(final int itemId) {
Intent intent;
- switch(itemId) {
+ switch (itemId) {
case R.id.nav_example:
intent = new Intent(this, MainActivity.class);
@@ -187,13 +188,13 @@ private void callDrawerItem(final int itemId) {
createBackStack(intent);
break;
case R.id.nav_statistics:
- intent = new Intent(this,StatsActivity.class);
+ intent = new Intent(this, StatsActivity.class);
createBackStack(intent);
break;
case R.id.nav_settings:
intent = new Intent(this, SettingsActivity.class);
- intent.putExtra( PreferenceActivity.EXTRA_SHOW_FRAGMENT, SettingsActivity.GeneralPreferenceFragment.class.getName() );
- intent.putExtra( PreferenceActivity.EXTRA_NO_HEADERS, true );
+ intent.putExtra(PreferenceActivity.EXTRA_SHOW_FRAGMENT, SettingsActivity.GeneralPreferenceFragment.class.getName());
+ intent.putExtra(PreferenceActivity.EXTRA_NO_HEADERS, true);
createBackStack(intent);
break;
default:
@@ -205,7 +206,7 @@ protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
- if(getSupportActionBar() == null) {
+ if (getSupportActionBar() == null) {
setSupportActionBar(toolbar);
}
diff --git a/app/src/main/java/org/secuso/privacyfriendly2048/activities/helper/BaseActivityWithoutNavBar.java b/app/src/main/java/org/secuso/privacyfriendly2048/activities/helper/BaseActivityWithoutNavBar.java
index 919128a..dfc144d 100644
--- a/app/src/main/java/org/secuso/privacyfriendly2048/activities/helper/BaseActivityWithoutNavBar.java
+++ b/app/src/main/java/org/secuso/privacyfriendly2048/activities/helper/BaseActivityWithoutNavBar.java
@@ -20,15 +20,9 @@
import android.os.Bundle;
import android.os.Handler;
+import android.view.View;
-import com.google.android.material.navigation.NavigationView.OnNavigationItemSelectedListener;
-import androidx.core.app.TaskStackBuilder;
-import androidx.core.view.GravityCompat;
-import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.appcompat.app.AppCompatActivity;
-import androidx.appcompat.widget.Toolbar;
-
-import android.view.View;
import org.secuso.privacyfriendly2048.R;
@@ -37,14 +31,13 @@
* @version 20171017
* This class is a parent class of all activities that can be accessed from the
* Navigation Drawer (example see MainActivity.java)
- *
+ *
* The default NavigationDrawer functionality is implemented in this class. If you wish to inherit
* the default behaviour, make sure the content view has a NavigationDrawer with the id 'nav_view',
* the header should point to 'nav_header_main' and the menu should be loaded from 'main_drawer'.
- *
+ *
* Also the main layout that holds the content of the activity should have the id 'main_content'.
* This way it will automatically fade in and out every time a transition is happening.
- *
*/
public abstract class BaseActivityWithoutNavBar extends AppCompatActivity {
diff --git a/app/src/main/java/org/secuso/privacyfriendly2048/activities/helper/GameState.java b/app/src/main/java/org/secuso/privacyfriendly2048/activities/helper/GameState.java
index bee8e3a..3de5a90 100644
--- a/app/src/main/java/org/secuso/privacyfriendly2048/activities/helper/GameState.java
+++ b/app/src/main/java/org/secuso/privacyfriendly2048/activities/helper/GameState.java
@@ -20,14 +20,11 @@
package org.secuso.privacyfriendly2048.activities.helper;
-import android.util.Log;
-
import org.secuso.privacyfriendly2048.activities.Element;
import java.io.Serializable;
/**
- *
* @author Julian Wadephul and Saskia Jacob
* @version 20180807
*/
@@ -37,86 +34,75 @@ public class GameState implements Serializable {
public int[] last_numbers;
public int points = 0;
public int last_points = 0;
- public boolean undo=false;
+ public boolean undo = false;
- public GameState(int size)
- {
- numbers = new int[size*size];
+ public GameState(int size) {
+ numbers = new int[size * size];
}
- public GameState(int [][] e)
- {
+
+ public GameState(int[][] e) {
int length = 1;
- for(int i = 0; i < e.length; i++)
- {
- if(e[i].length > length)
+ for (int i = 0; i < e.length; i++) {
+ if (e[i].length > length)
length = e[i].length;
}
this.n = e.length;
- numbers = new int[e.length*e.length];
+ numbers = new int[e.length * e.length];
int c = 0;
- for(int i = 0; i < e.length;i++)
- {
- for(int j = 0; j < e[i].length;j++){
+ for (int i = 0; i < e.length; i++) {
+ for (int j = 0; j < e[i].length; j++) {
numbers[c++] = e[i][j];
}
}
last_numbers = numbers;
}
- public GameState(Element[][] e, Element[][] e2)
- {
+
+ public GameState(Element[][] e, Element[][] e2) {
int length = 1;
- for(int i = 0; i < e.length; i++)
- {
- if(e[i].length > length)
+ for (int i = 0; i < e.length; i++) {
+ if (e[i].length > length)
length = e[i].length;
}
this.n = e.length;
- numbers = new int[e.length*e.length];
+ numbers = new int[e.length * e.length];
int c = 0;
- for(int i = 0; i < e.length;i++)
- {
- for(int j = 0; j < e[i].length;j++){
+ for (int i = 0; i < e.length; i++) {
+ for (int j = 0; j < e[i].length; j++) {
numbers[c++] = e[i][j].number;
}
}
length = 1;
- for(int i = 0; i < e2.length; i++)
- {
- if(e2[i].length > length)
+ for (int i = 0; i < e2.length; i++) {
+ if (e2[i].length > length)
length = e2[i].length;
}
- last_numbers = new int[e2.length*e2.length];
+ last_numbers = new int[e2.length * e2.length];
c = 0;
- for(int i = 0; i < e2.length;i++)
- {
- for(int j = 0; j < e2[i].length;j++){
+ for (int i = 0; i < e2.length; i++) {
+ for (int j = 0; j < e2[i].length; j++) {
last_numbers[c++] = e2[i][j].number;
}
}
}
- public int getNumber(int i, int j)
- {
+
+ public int getNumber(int i, int j) {
try {
- return numbers[i*n+j];
- }
- catch(ArrayIndexOutOfBoundsException e)
- {
+ return numbers[i * n + j];
+ } catch (ArrayIndexOutOfBoundsException e) {
e.printStackTrace();
}
return 0;
}
- public int getLastNumber(int i, int j)
- {
+
+ public int getLastNumber(int i, int j) {
try {
- return last_numbers[i*n+j];
- }
- catch(ArrayIndexOutOfBoundsException e)
- {
+ return last_numbers[i * n + j];
+ } catch (ArrayIndexOutOfBoundsException e) {
e.printStackTrace();
}
@@ -124,11 +110,10 @@ public int getLastNumber(int i, int j)
}
-
@Override
public String toString() {
String result = "numbers: ";
- for (int i:numbers) {
+ for (int i : numbers) {
result += i + " ";
}
result += ", n: " + n;
diff --git a/app/src/main/java/org/secuso/privacyfriendly2048/activities/helper/GameStatistics.java b/app/src/main/java/org/secuso/privacyfriendly2048/activities/helper/GameStatistics.java
index 3347c17..84fbb43 100644
--- a/app/src/main/java/org/secuso/privacyfriendly2048/activities/helper/GameStatistics.java
+++ b/app/src/main/java/org/secuso/privacyfriendly2048/activities/helper/GameStatistics.java
@@ -39,11 +39,10 @@ private long record = 0;
private int undo = 0;
private int moves_l = 0;
private int moves_r = 0;
- private int moves_t= 0;
+ private int moves_t = 0;
private int moves_d = 0;
- public GameStatistics(int n)
- {
+ public GameStatistics(int n) {
this.n = n;
filename = "statistics" + n + ".txt";
}
@@ -54,8 +53,8 @@ public long getHighestNumber() {
}
public void setHighestNumber(long highestNumber) {
- if(this.highestNumber < highestNumber)
- this.highestNumber = highestNumber;
+ if (this.highestNumber < highestNumber)
+ this.highestNumber = highestNumber;
}
public long getTimePlayed() {
@@ -66,8 +65,7 @@ public void addTimePlayed(long timePlayed) {
this.timePlayed += timePlayed;
}
- public boolean resetTimePlayed()
- {
+ public boolean resetTimePlayed() {
this.timePlayed = 0;
return true;
}
@@ -92,36 +90,34 @@ public void setRecord(long record) {
this.record = record;
}
- public void undo()
- {
+ public void undo() {
undo++;
}
- public void moveL()
- {
+
+ public void moveL() {
moves_l++;
}
- public void moveR()
- {
+
+ public void moveR() {
moves_r++;
}
- public void moveT()
- {
+
+ public void moveT() {
moves_t++;
}
- public void moveD()
- {
+
+ public void moveD() {
moves_d++;
}
- public int getUndo()
- {
+ public int getUndo() {
return undo;
}
@Override
public String toString() {
return "moves " + moves +
- " timePlayed " + timePlayed/1000.0f +
+ " timePlayed " + timePlayed / 1000.0f +
" highest Number " + highestNumber +
" record" + record;
}
diff --git a/app/src/main/java/org/secuso/privacyfriendly2048/activities/helper/Gestures.java b/app/src/main/java/org/secuso/privacyfriendly2048/activities/helper/Gestures.java
index 10ad66e..8b9da6a 100644
--- a/app/src/main/java/org/secuso/privacyfriendly2048/activities/helper/Gestures.java
+++ b/app/src/main/java/org/secuso/privacyfriendly2048/activities/helper/Gestures.java
@@ -20,13 +20,13 @@
package org.secuso.privacyfriendly2048.activities.helper;
import android.content.Context;
-import android.util.Log;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;
/**
* This class implements the Gestures Listener for swiping in the game
+ *
* @author Julian Wadephul and Saskia Jacob
* @version 20180807
*/
@@ -57,7 +57,7 @@ public boolean onDown(MotionEvent e) {
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
-
+
boolean result = false;
try {
float diffY = e2.getY() - e1.getY();
@@ -69,7 +69,7 @@ public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float ve
} else {
result = onSwipeLeft();
}
- }else{
+ } else {
result = nichts();
}
} else {
@@ -79,7 +79,7 @@ public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float ve
} else {
result = onSwipeTop();
}
- }else{
+ } else {
result = nichts();
}
}
@@ -98,7 +98,7 @@ public boolean onSwipeLeft() {
return false;
}
- public boolean nichts(){
+ public boolean nichts() {
return false;
}
diff --git a/app/src/main/java/org/secuso/privacyfriendly2048/backup/BackupCreator.kt b/app/src/main/java/org/secuso/privacyfriendly2048/backup/BackupCreator.kt
index 8c75900..0e0bc8c 100644
--- a/app/src/main/java/org/secuso/privacyfriendly2048/backup/BackupCreator.kt
+++ b/app/src/main/java/org/secuso/privacyfriendly2048/backup/BackupCreator.kt
@@ -5,11 +5,11 @@ import android.content.Context
import android.preference.PreferenceManager
import android.util.JsonWriter
import android.util.Log
+import org.secuso.privacyfriendly2048.database.PFASQLiteHelper
import org.secuso.privacyfriendlybackup.api.backup.DatabaseUtil.getSupportSQLiteOpenHelper
import org.secuso.privacyfriendlybackup.api.backup.DatabaseUtil.writeDatabase
import org.secuso.privacyfriendlybackup.api.backup.PreferenceUtil.writePreferences
import org.secuso.privacyfriendlybackup.api.pfa.IBackupCreator
-import org.secuso.privacyfriendly2048.database.PFASQLiteHelper
import java.io.OutputStream
import java.io.OutputStreamWriter
diff --git a/app/src/main/java/org/secuso/privacyfriendly2048/backup/BackupRestorer.kt b/app/src/main/java/org/secuso/privacyfriendly2048/backup/BackupRestorer.kt
index 88db518..7ad5098 100644
--- a/app/src/main/java/org/secuso/privacyfriendly2048/backup/BackupRestorer.kt
+++ b/app/src/main/java/org/secuso/privacyfriendly2048/backup/BackupRestorer.kt
@@ -5,11 +5,10 @@ import android.content.SharedPreferences
import android.preference.PreferenceManager
import android.util.JsonReader
import android.util.Log
-import androidx.annotation.NonNull
+import org.secuso.privacyfriendly2048.database.PFASQLiteHelper
import org.secuso.privacyfriendlybackup.api.backup.DatabaseUtil
import org.secuso.privacyfriendlybackup.api.backup.FileUtil
import org.secuso.privacyfriendlybackup.api.pfa.IBackupRestorer
-import org.secuso.privacyfriendly2048.database.PFASQLiteHelper
import java.io.IOException
import java.io.InputStream
import java.io.InputStreamReader
@@ -75,17 +74,20 @@ class BackupRestorer : IBackupRestorer {
when (name) {
"switch_preference_1",
"pref_animationActivated" -> preferences.putBoolean(name, reader.nextBoolean())
+
"pref_color" -> preferences.putString(name, reader.nextString())
"FirstLaunchManager.PREF_PICKER_SECONDS",
"FirstLaunchManager.PREF_PICKER_MINUTES",
"FirstLaunchManager.PREF_BREAK_PICKER_SECONDS",
"FirstLaunchManager.PREF_PICKER_HOURS",
"FirstLaunchManager.PREF_BREAK_PICKER_MINUTES" -> preferences.putInt(name, reader.nextInt())
+
"pref_schedule_exercise_days" -> preferences.putStringSet(name, readPreferenceSet(reader))
"WORK_TIME",
"PAUSE TIME",
"pref_schedule_exercise_time",
"DEFAULT_EXERCISE_SET" -> preferences.putLong(name, reader.nextLong())
+
else -> throw RuntimeException("Unknown preference $name")
}
}
diff --git a/app/src/main/java/org/secuso/privacyfriendly2048/database/DatabaseExporter.java b/app/src/main/java/org/secuso/privacyfriendly2048/database/DatabaseExporter.java
index 1ed1c67..c391038 100644
--- a/app/src/main/java/org/secuso/privacyfriendly2048/database/DatabaseExporter.java
+++ b/app/src/main/java/org/secuso/privacyfriendly2048/database/DatabaseExporter.java
@@ -31,10 +31,10 @@
/**
* @author Karola Marky
* @version 20161225
- * Structure based on http://tech.sarathdr.com/android-app/convert-database-cursor-result-to-json-array-android-app-development/
- * accessed at 25th December 2016
- *
- * This class turns a database into a JSON string
+ * Structure based on http://tech.sarathdr.com/android-app/convert-database-cursor-result-to-json-array-android-app-development/
+ * accessed at 25th December 2016
+ *
+ * This class turns a database into a JSON string
*/
public class DatabaseExporter {
@@ -51,6 +51,7 @@ public DatabaseExporter(String DB_PATH, String DB_NAME) {
/**
* Turns a single DB table into a JSON string
+ *
* @return JSON string of the table
*/
public JSONArray tableToJSON(String TABLE_NAME) {
@@ -115,7 +116,7 @@ public ArrayList getTableNames() {
if (c.moveToFirst()) {
while (!c.isAfterLast()) {
- arrTblNames.add(c.getString(c.getColumnIndex("name")));
+ arrTblNames.add(c.getString(c.getColumnIndexOrThrow("name")));
c.moveToNext();
}
}
@@ -123,7 +124,6 @@ public ArrayList getTableNames() {
}
/**
- *
* @return Entire DB as JSONObject
* @throws JSONException
*/
diff --git a/app/src/main/java/org/secuso/privacyfriendly2048/database/PFASQLiteHelper.java b/app/src/main/java/org/secuso/privacyfriendly2048/database/PFASQLiteHelper.java
index 7c028e1..8014401 100644
--- a/app/src/main/java/org/secuso/privacyfriendly2048/database/PFASQLiteHelper.java
+++ b/app/src/main/java/org/secuso/privacyfriendly2048/database/PFASQLiteHelper.java
@@ -29,12 +29,11 @@
import java.util.List;
/**
- *
* @author Karola Marky
* @version 20161223
* Structure based on http://www.androidhive.info/2011/11/android-sqlite-database-tutorial/
* accessed at 16th June 2016
- *
+ *
* This class defines the structure of our database.
*/
@@ -90,6 +89,7 @@ public void onUpgrade(SQLiteDatabase sqLiteDatabase, int oldVersion, int newVers
* Adds a single sampleData to our Table
* As no ID is provided and KEY_ID is autoincremented (see line 50)
* the last available key of the table is taken and incremented by 1
+ *
* @param sampleData data that will be added
*/
public void addSampleData(PFASampleDataType sampleData) {
@@ -109,8 +109,9 @@ public void addSampleData(PFASampleDataType sampleData) {
* Adds a single sampleData to our Table
* This method can be used for re-insertion for example an undo-action
* Therefore, the key of the sampleData will also be written into the database
+ *
* @param sampleData data that will be added
- * Only use this for undo options and re-insertions
+ * Only use this for undo options and re-insertions
*/
public void addSampleDataWithID(PFASampleDataType sampleData) {
SQLiteDatabase database = this.getWritableDatabase();
@@ -131,6 +132,7 @@ public void addSampleDataWithID(PFASampleDataType sampleData) {
/**
* This method gets a single sampleData entry based on its ID
+ *
* @param id of the sampleData that is requested, could be get by the get-method
* @return the sampleData that is requested.
*/
@@ -145,7 +147,7 @@ public PFASampleDataType getSampleData(int id) {
PFASampleDataType sampleData = new PFASampleDataType();
- if( cursor != null && cursor.moveToFirst() ){
+ if (cursor != null && cursor.moveToFirst()) {
sampleData.setID(Integer.parseInt(cursor.getString(0)));
sampleData.setDOMAIN(cursor.getString(1));
sampleData.setUSERNAME(cursor.getString(2));
@@ -163,6 +165,7 @@ public PFASampleDataType getSampleData(int id) {
/**
* This method returns all data from the DB as a list
* This could be used for instance to fill a recyclerView
+ *
* @return A list of all available sampleData in the Database
*/
public List getAllSampleData() {
@@ -194,6 +197,7 @@ public List getAllSampleData() {
/**
* Updates a database entry.
+ *
* @param sampleData
* @return actually makes the update
*/
@@ -207,18 +211,19 @@ public int updateSampleData(PFASampleDataType sampleData) {
values.put(KEY_LENGTH, sampleData.getLENGTH());
return database.update(TABLE_SAMPLEDATA, values, KEY_ID + " = ?",
- new String[] { String.valueOf(sampleData.getID()) });
+ new String[]{String.valueOf(sampleData.getID())});
}
/**
* Deletes sampleData from the DB
* This method takes the sampleData and extracts its key to build the delete-query
+ *
* @param sampleData that will be deleted
*/
public void deleteSampleData(PFASampleDataType sampleData) {
SQLiteDatabase database = this.getWritableDatabase();
database.delete(TABLE_SAMPLEDATA, KEY_ID + " = ?",
- new String[] { Integer.toString(sampleData.getID()) });
+ new String[]{Integer.toString(sampleData.getID())});
//always close the DB after deletion of single entries
database.close();
}
@@ -229,7 +234,7 @@ public void deleteSampleData(PFASampleDataType sampleData) {
*/
public void deleteAllSampleData() {
SQLiteDatabase database = this.getWritableDatabase();
- database.execSQL("delete from "+ TABLE_SAMPLEDATA);
+ database.execSQL("delete from " + TABLE_SAMPLEDATA);
}
}
diff --git a/app/src/main/java/org/secuso/privacyfriendly2048/database/PFASampleDataType.java b/app/src/main/java/org/secuso/privacyfriendly2048/database/PFASampleDataType.java
index c1b5945..4f104aa 100644
--- a/app/src/main/java/org/secuso/privacyfriendly2048/database/PFASampleDataType.java
+++ b/app/src/main/java/org/secuso/privacyfriendly2048/database/PFASampleDataType.java
@@ -19,15 +19,13 @@
package org.secuso.privacyfriendly2048.database;
/**
- *
* @author Karola Marky
* @version 20161223
- *
+ *
* This class holds the "data type" that will be stored in the database
* Each column of the database will be a private variable in this class.
* For each data type one class is required.
* In our example we only use one data type, which is sampleData
- *
*/
public class PFASampleDataType {
@@ -38,22 +36,24 @@ public class PFASampleDataType {
private String USERNAME;
private int LENGTH;
- public PFASampleDataType() { }
+ public PFASampleDataType() {
+ }
/**
* Always use this constructor to generate data with values.
- * @param ID The primary key for the database (will be automatically set by the DB)
- * @param DOMAIN Some sample String that could be in the DB
+ *
+ * @param ID The primary key for the database (will be automatically set by the DB)
+ * @param DOMAIN Some sample String that could be in the DB
* @param USERNAME Some sample String that could be in the DB
- * @param LENGTH Some sample int that could be in the DB
+ * @param LENGTH Some sample int that could be in the DB
*/
public PFASampleDataType(int ID, String DOMAIN, String USERNAME, int LENGTH) {
- this.ID=ID;
- this.DOMAIN=DOMAIN;
- this.USERNAME=USERNAME;
- this.LENGTH=LENGTH;
+ this.ID = ID;
+ this.DOMAIN = DOMAIN;
+ this.USERNAME = USERNAME;
+ this.LENGTH = LENGTH;
}
/**
diff --git a/app/src/main/java/org/secuso/privacyfriendly2048/helpers/FirstLaunchManager.java b/app/src/main/java/org/secuso/privacyfriendly2048/helpers/FirstLaunchManager.java
index aa4b221..950ac92 100644
--- a/app/src/main/java/org/secuso/privacyfriendly2048/helpers/FirstLaunchManager.java
+++ b/app/src/main/java/org/secuso/privacyfriendly2048/helpers/FirstLaunchManager.java
@@ -57,7 +57,7 @@ public boolean isFirstTimeLaunch() {
}
public void initFirstTimeLaunch() {
- if(pref.getBoolean(IS_FIRST_TIME_LAUNCH, true)) {
+ if (pref.getBoolean(IS_FIRST_TIME_LAUNCH, true)) {
// First time setup in here
}
}
diff --git a/app/src/main/res/drawable/game_brick.xml b/app/src/main/res/drawable/game_brick.xml
index 8f4ba23..29aed91 100644
--- a/app/src/main/res/drawable/game_brick.xml
+++ b/app/src/main/res/drawable/game_brick.xml
@@ -1,10 +1,8 @@
-
+
-
+
-
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_keyboard_arrow_left_black_24dp.xml b/app/src/main/res/drawable/ic_keyboard_arrow_left_black_24dp.xml
index c9f7747..6385431 100644
--- a/app/src/main/res/drawable/ic_keyboard_arrow_left_black_24dp.xml
+++ b/app/src/main/res/drawable/ic_keyboard_arrow_left_black_24dp.xml
@@ -1,9 +1,9 @@
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ android:pathData="M15.41,16.09l-4.58,-4.59 4.58,-4.59L14,5.5l-6,6 6,6z" />
diff --git a/app/src/main/res/drawable/ic_keyboard_arrow_right_black_24dp.xml b/app/src/main/res/drawable/ic_keyboard_arrow_right_black_24dp.xml
index a3d1622..138fcc3 100644
--- a/app/src/main/res/drawable/ic_keyboard_arrow_right_black_24dp.xml
+++ b/app/src/main/res/drawable/ic_keyboard_arrow_right_black_24dp.xml
@@ -1,9 +1,9 @@
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ android:pathData="M8.59,16.34l4.58,-4.59 -4.58,-4.59L10,5.75l6,6 -6,6z" />
diff --git a/app/src/main/res/drawable/ic_menu_help.xml b/app/src/main/res/drawable/ic_menu_help.xml
index 4148ec9..d09c967 100644
--- a/app/src/main/res/drawable/ic_menu_help.xml
+++ b/app/src/main/res/drawable/ic_menu_help.xml
@@ -5,5 +5,5 @@
android:viewportHeight="24.0">
+ android:pathData="M11,18h2v-2h-2v2zM12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.41,0 -8,-3.59 -8,-8s3.59,-8 8,-8 8,3.59 8,8 -3.59,8 -8,8zM12,6c-2.21,0 -4,1.79 -4,4h2c0,-1.1 0.9,-2 2,-2s2,0.9 2,2c0,2 -3,1.75 -3,5h2c0,-2.25 3,-2.5 3,-5 0,-2.21 -1.79,-4 -4,-4z" />
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_menu_home.xml b/app/src/main/res/drawable/ic_menu_home.xml
index 5a425b4..ee65a56 100644
--- a/app/src/main/res/drawable/ic_menu_home.xml
+++ b/app/src/main/res/drawable/ic_menu_home.xml
@@ -5,5 +5,5 @@
android:viewportHeight="24.0">
+ android:pathData="M10,20v-6h4v6h5v-8h3L12,3 2,12h3v8z" />
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_menu_info.xml b/app/src/main/res/drawable/ic_menu_info.xml
index 2851ab6..f793eb1 100644
--- a/app/src/main/res/drawable/ic_menu_info.xml
+++ b/app/src/main/res/drawable/ic_menu_info.xml
@@ -5,5 +5,5 @@
android:viewportHeight="24.0">
+ android:pathData="M11,17h2v-6h-2v6zM12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.41,0 -8,-3.59 -8,-8s3.59,-8 8,-8 8,3.59 8,8 -3.59,8 -8,8zM11,9h2L13,7h-2v2z" />
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_menu_settings.xml b/app/src/main/res/drawable/ic_menu_settings.xml
index e7ba9f6..d4786a3 100644
--- a/app/src/main/res/drawable/ic_menu_settings.xml
+++ b/app/src/main/res/drawable/ic_menu_settings.xml
@@ -1,7 +1,10 @@
-
-
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_menu_stat.xml b/app/src/main/res/drawable/ic_menu_stat.xml
index 0e41c84..22e7a48 100644
--- a/app/src/main/res/drawable/ic_menu_stat.xml
+++ b/app/src/main/res/drawable/ic_menu_stat.xml
@@ -1,4 +1,3 @@
-
+ android:pathData="M19,3L5,3c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2L21,5c0,-1.1 -0.9,-2 -2,-2zM9,17L7,17v-7h2v7zM13,17h-2L11,7h2v10zM17,17h-2v-4h2v4z" />
diff --git a/app/src/main/res/drawable/ic_menu_tutorial.xml b/app/src/main/res/drawable/ic_menu_tutorial.xml
index f8d18b2..814e014 100644
--- a/app/src/main/res/drawable/ic_menu_tutorial.xml
+++ b/app/src/main/res/drawable/ic_menu_tutorial.xml
@@ -6,5 +6,5 @@
android:viewportHeight="24.0">
+ android:pathData="M5,13.18v4L12,21l7,-3.82v-4L12,17l-7,-3.82zM12,3L1,9l11,6 9,-4.91V17h2V9L12,3z" />
\ No newline at end of file
diff --git a/app/src/main/res/drawable/inactive_button.xml b/app/src/main/res/drawable/inactive_button.xml
index 523ab80..2d803c7 100644
--- a/app/src/main/res/drawable/inactive_button.xml
+++ b/app/src/main/res/drawable/inactive_button.xml
@@ -1,11 +1,10 @@
-
-
--
-
-
-
-
-
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/splash_screen.xml b/app/src/main/res/drawable/splash_screen.xml
index f6748aa..77f23d3 100644
--- a/app/src/main/res/drawable/splash_screen.xml
+++ b/app/src/main/res/drawable/splash_screen.xml
@@ -1,12 +1,10 @@
-
+
-
+ android:gravity="center" />
\ No newline at end of file
diff --git a/app/src/main/res/drawable/standalone_button.xml b/app/src/main/res/drawable/standalone_button.xml
index 8f125d3..de7f884 100644
--- a/app/src/main/res/drawable/standalone_button.xml
+++ b/app/src/main/res/drawable/standalone_button.xml
@@ -1,10 +1,9 @@
-
+
-
-
-
+
+
diff --git a/app/src/main/res/layout-land/activity_main.xml b/app/src/main/res/layout-land/activity_main.xml
index c176eef..f1dd0f8 100644
--- a/app/src/main/res/layout-land/activity_main.xml
+++ b/app/src/main/res/layout-land/activity_main.xml
@@ -48,7 +48,6 @@
android:layout_marginStart="@dimen/activity_horizontal_margin"
android:layout_weight="1"
android:background="?attr/selectableItemBackgroundBorderless"
- android:onClick="onClick"
android:padding="@dimen/activity_horizontal_margin"
android:src="@drawable/ic_keyboard_arrow_left_black_24dp" />
@@ -75,7 +74,6 @@
android:layout_marginRight="@dimen/activity_horizontal_margin"
android:layout_weight="1"
android:background="?attr/selectableItemBackgroundBorderless"
- android:onClick="onClick"
android:padding="10dp"
android:src="@drawable/ic_keyboard_arrow_right_black_24dp" />
@@ -121,7 +119,6 @@
android:layout_weight="3"
android:background="@color/colorPrimary"
android:clickable="false"
- android:onClick="onClick"
android:text="@string/new_Game_Button"
android:textColor="@color/white"
android:textStyle="normal" />
@@ -137,7 +134,6 @@
android:layout_weight="3"
android:background="@color/colorPrimary"
android:clickable="false"
- android:onClick="onClick"
android:text="@string/continue_Game_Button"
android:textColor="@color/white"
android:textStyle="normal" />
diff --git a/app/src/main/res/layout-land/choose_slide1.xml b/app/src/main/res/layout-land/choose_slide1.xml
index c0aaadb..4c1892c 100644
--- a/app/src/main/res/layout-land/choose_slide1.xml
+++ b/app/src/main/res/layout-land/choose_slide1.xml
@@ -1,6 +1,5 @@
+
+
+
+
diff --git a/app/src/main/res/layout-land/tutorial_slide2.xml b/app/src/main/res/layout-land/tutorial_slide2.xml
index 27b462d..b823b9d 100644
--- a/app/src/main/res/layout-land/tutorial_slide2.xml
+++ b/app/src/main/res/layout-land/tutorial_slide2.xml
@@ -1,6 +1,5 @@
diff --git a/app/src/main/res/layout-land/tutorial_slide3.xml b/app/src/main/res/layout-land/tutorial_slide3.xml
index 8efcf1a..6c44a1d 100644
--- a/app/src/main/res/layout-land/tutorial_slide3.xml
+++ b/app/src/main/res/layout-land/tutorial_slide3.xml
@@ -1,6 +1,5 @@
diff --git a/app/src/main/res/layout-land/tutorial_slide4.xml b/app/src/main/res/layout-land/tutorial_slide4.xml
index e4d1f07..30d4577 100644
--- a/app/src/main/res/layout-land/tutorial_slide4.xml
+++ b/app/src/main/res/layout-land/tutorial_slide4.xml
@@ -1,6 +1,5 @@
diff --git a/app/src/main/res/layout/activity_help.xml b/app/src/main/res/layout/activity_help.xml
index 350cb96..1b7d3c5 100644
--- a/app/src/main/res/layout/activity_help.xml
+++ b/app/src/main/res/layout/activity_help.xml
@@ -16,7 +16,7 @@
android:fitsSystemWindows="true"
tools:context="org.secuso.privacyfriendly2048.activities.MainActivity">
-
+
@@ -76,7 +75,6 @@
android:layout_marginRight="@dimen/activity_horizontal_margin"
android:layout_weight="1"
android:background="?attr/selectableItemBackgroundBorderless"
- android:onClick="onClick"
android:padding="10dp"
android:src="@drawable/ic_keyboard_arrow_right_black_24dp" />
@@ -90,10 +88,10 @@
android:divider="#000"
android:gravity="center_horizontal"
android:orientation="vertical"
- android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
- android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
+ android:paddingRight="@dimen/activity_horizontal_margin"
+ android:paddingBottom="@dimen/activity_vertical_margin"
android:weightSum="5"
tools:context=".activities.MainActivity">
@@ -101,8 +99,8 @@
android:id="@+id/layoutDots"
android:layout_width="match_parent"
android:layout_height="0dp"
- android:layout_alignParentBottom="true"
android:layout_alignParentStart="true"
+ android:layout_alignParentBottom="true"
android:layout_weight="1"
android:gravity="center"
android:orientation="horizontal">
@@ -115,12 +113,11 @@
android:layout_height="0dp"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="20dp"
- android:layout_marginRight="20dp"
android:layout_marginTop="10dp"
+ android:layout_marginRight="20dp"
android:layout_weight="2"
android:background="@drawable/standalone_button"
android:clickable="false"
- android:onClick="onClick"
android:text="@string/new_Game_Button"
android:textColor="@color/white"
android:textSize="25sp"
@@ -132,12 +129,11 @@
android:layout_height="0dp"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="20dp"
- android:layout_marginRight="20dp"
android:layout_marginTop="10dp"
+ android:layout_marginRight="20dp"
android:layout_weight="2"
android:background="@drawable/standalone_button"
android:clickable="false"
- android:onClick="onClick"
android:text="@string/continue_Game_Button"
android:textColor="@color/white"
android:textSize="25sp"
diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml
index cd0f7ad..246f36e 100644
--- a/app/src/main/res/layout/activity_settings.xml
+++ b/app/src/main/res/layout/activity_settings.xml
@@ -1,6 +1,5 @@
-
-
+
-
-
+
-
-
+
+
+ android:layout_marginBottom="@dimen/activity_horizontal_margin" />
@@ -114,6 +117,7 @@
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1">
+
+
+
+ android:layout_marginBottom="@dimen/activity_horizontal_margin" />
@@ -114,6 +117,7 @@
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1">
+
+
+
+ android:layout_marginBottom="@dimen/activity_horizontal_margin" />
@@ -114,6 +117,7 @@
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1">
+
+
+
+ android:layout_marginBottom="@dimen/activity_horizontal_margin" />
@@ -114,6 +117,7 @@
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1">
+
+
+ android:src="@mipmap/ic_logo" />
-
+ xmlns:android="http://schemas.android.com/apk/res/android">
diff --git a/app/src/main/res/layout/tutorial_slide2.xml b/app/src/main/res/layout/tutorial_slide2.xml
index d779dc7..8337a8b 100644
--- a/app/src/main/res/layout/tutorial_slide2.xml
+++ b/app/src/main/res/layout/tutorial_slide2.xml
@@ -1,6 +1,5 @@
diff --git a/app/src/main/res/layout/tutorial_slide3.xml b/app/src/main/res/layout/tutorial_slide3.xml
index 1832ea0..22c582b 100644
--- a/app/src/main/res/layout/tutorial_slide3.xml
+++ b/app/src/main/res/layout/tutorial_slide3.xml
@@ -1,6 +1,5 @@
diff --git a/app/src/main/res/layout/tutorial_slide4.xml b/app/src/main/res/layout/tutorial_slide4.xml
index 802b948..733bfe2 100644
--- a/app/src/main/res/layout/tutorial_slide4.xml
+++ b/app/src/main/res/layout/tutorial_slide4.xml
@@ -1,6 +1,5 @@
diff --git a/app/src/main/res/menu/menu_stats.xml b/app/src/main/res/menu/menu_stats.xml
index f9a2954..3c19376 100644
--- a/app/src/main/res/menu/menu_stats.xml
+++ b/app/src/main/res/menu/menu_stats.xml
@@ -2,8 +2,10 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".activities.StatsActivity">
-
+ android:orderInCategory="100"
+ app:showAsAction="never" />
\ No newline at end of file
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index 690d2c1..15419d6 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -43,12 +43,12 @@
Über
Version:
v %s
- Autoren:
- Saskia Jacob und Julian Wadephul
- und Mitwirkende.
- In Zusammenarbeit mit
- Diese App gehört zur Gruppe der Privacy Friendly Apps entwickelt von dem Karlsruher Institut für Technologie (KIT). Quelltext lizenziert unter GPLv3. Bilder copyright KIT und Google Inc.
- Weitere Infos unter:
+ Autoren:
+ Saskia Jacob und Julian Wadephul
+ und Mitwirkende.
+ In Zusammenarbeit mit
+ Diese App gehört zur Gruppe der Privacy Friendly Apps entwickelt von dem Karlsruher Institut für Technologie (KIT). Quelltext lizenziert unter GPLv3. Bilder copyright KIT und Google Inc.
+ Weitere Infos unter:
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 43ab7c3..8329aff 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -45,11 +45,6 @@
#73B2D6
-
-
-
-
-
#026499
diff --git a/app/src/main/res/values/drawables.xml b/app/src/main/res/values/drawables.xml
index 3505456..7abc06d 100644
--- a/app/src/main/res/values/drawables.xml
+++ b/app/src/main/res/values/drawables.xml
@@ -1 +1 @@
-
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 59fb812..d649ccd 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -49,7 +49,7 @@
Version:
v %s
Authors:
- Saskia Jacob and Julian Wadephul
+ Saskia Jacob and Julian Wadephul
and contributors.
In affiliation with
This application belongs to the group of Privacy Friendly Apps developed by Karlsruhe Institute of Technology (KIT). Sourcecode licensed under GPLv3. Images copyright KIT and Google Inc.
@@ -101,5 +101,4 @@
Reset Statistics
-
diff --git a/app/src/main/res/xml/pref_general.xml b/app/src/main/res/xml/pref_general.xml
index b07c11e..7f1ae95 100644
--- a/app/src/main/res/xml/pref_general.xml
+++ b/app/src/main/res/xml/pref_general.xml
@@ -1,5 +1,4 @@
-
+