Updated to new design and fixed a timer issue.

This commit is contained in:
Christopher Beckmann 2016-10-15 22:17:18 +02:00
parent ce95048034
commit f9cb4be89b
55 changed files with 921 additions and 580 deletions

View file

@ -1 +1 @@
Sudoku privacy-friendly-sudoku

View file

@ -3,16 +3,15 @@
<component name="GradleSettings"> <component name="GradleSettings">
<option name="linkedExternalProjectsSettings"> <option name="linkedExternalProjectsSettings">
<GradleProjectSettings> <GradleProjectSettings>
<option name="distributionType" value="LOCAL" /> <option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" /> <option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleHome" value="C:\Program Files\Android\Android Studio\gradle\gradle-2.4" />
<option name="gradleJvm" value="1.8" />
<option name="modules"> <option name="modules">
<set> <set>
<option value="$PROJECT_DIR$" /> <option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/app" /> <option value="$PROJECT_DIR$/app" />
</set> </set>
</option> </option>
<option name="resolveModulePerSourceSet" value="false" />
</GradleProjectSettings> </GradleProjectSettings>
</option> </option>
</component> </component>

View file

@ -27,6 +27,22 @@
</value> </value>
</option> </option>
</component> </component>
<component name="ProjectInspectionProfilesVisibleTreeState">
<entry key="Project Default">
<profile-state>
<expanded-state>
<State>
<id />
</State>
</expanded-state>
<selected-state>
<State>
<id>Android</id>
</State>
</selected-state>
</profile-state>
</entry>
</component>
<component name="ProjectLevelVcsManager" settingsEditedManually="false"> <component name="ProjectLevelVcsManager" settingsEditedManually="false">
<OptionsSetting value="true" id="Add" /> <OptionsSetting value="true" id="Add" />
<OptionsSetting value="true" id="Remove" /> <OptionsSetting value="true" id="Remove" />
@ -43,4 +59,30 @@
<component name="ProjectType"> <component name="ProjectType">
<option name="id" value="Android" /> <option name="id" value="Android" />
</component> </component>
<component name="masterDetails">
<states>
<state key="Copyright.UI">
<settings>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="ScopeChooserConfigurable.UI">
<settings>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
</states>
</component>
</project> </project>

View file

@ -9,15 +9,11 @@
<facet type="android" name="Android"> <facet type="android" name="Android">
<configuration> <configuration>
<option name="SELECTED_BUILD_VARIANT" value="debug" /> <option name="SELECTED_BUILD_VARIANT" value="debug" />
<option name="SELECTED_TEST_ARTIFACT" value="_unit_test_" /> <option name="SELECTED_TEST_ARTIFACT" value="_android_test_" />
<option name="ASSEMBLE_TASK_NAME" value="assembleDebug" /> <option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
<option name="COMPILE_JAVA_TASK_NAME" value="compileDebugSources" /> <option name="COMPILE_JAVA_TASK_NAME" value="compileDebugSources" />
<option name="ASSEMBLE_TEST_TASK_NAME" value="assembleDebugUnitTest" />
<option name="COMPILE_JAVA_TEST_TASK_NAME" value="compileDebugUnitTestSources" />
<afterSyncTasks> <afterSyncTasks>
<task>generateDebugSources</task> <task>generateDebugSources</task>
<task>mockableAndroidJar</task>
<task>prepareDebugUnitTestDependencies</task>
</afterSyncTasks> </afterSyncTasks>
<option name="ALLOW_USER_CONFIGURATION" value="false" /> <option name="ALLOW_USER_CONFIGURATION" value="false" />
<option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" /> <option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" />
@ -36,8 +32,16 @@
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/debug" isTestSource="false" generated="true" /> <sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/debug" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" /> <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/debug" isTestSource="false" generated="true" /> <sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/debug" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/debug" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" /> <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/debug" type="java-resource" /> <sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/debug" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/androidTest/debug" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/androidTest/debug" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/androidTest/debug" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/androidTest/debug" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/androidTest/debug" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/androidTest/debug" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/androidTest/debug" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/res" type="java-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/debug/res" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/resources" type="java-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/debug/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/assets" type="java-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/debug/assets" type="java-resource" />
@ -45,6 +49,7 @@
<sourceFolder url="file://$MODULE_DIR$/src/debug/java" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src/debug/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/jni" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src/debug/jni" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/rs" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src/debug/rs" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/shaders" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/res" type="java-test-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/testDebug/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/resources" type="java-test-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/testDebug/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/assets" type="java-test-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/testDebug/assets" type="java-test-resource" />
@ -52,6 +57,7 @@
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/java" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/src/testDebug/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/jni" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/src/testDebug/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/rs" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/src/testDebug/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/main/res" type="java-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/main/res" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/main/assets" type="java-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/main/assets" type="java-resource" />
@ -59,6 +65,7 @@
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/shaders" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
@ -66,37 +73,66 @@
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/jni" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/src/test/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/bundles" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/debug" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/debug" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/dependency-cache" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/dependency-cache" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/appcompat-v7/23.1.0/jars" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/animated-vector-drawable/24.2.1/jars" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/design/23.1.0/jars" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/appcompat-v7/24.2.1/jars" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/recyclerview-v7/23.1.0/jars" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/design/24.2.1/jars" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/support-v4/23.1.0/jars" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/recyclerview-v7/24.2.1/jars" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/support-compat/24.2.1/jars" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/support-core-ui/24.2.1/jars" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/support-core-utils/24.2.1/jars" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/support-fragment/24.2.1/jars" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/support-media-compat/24.2.1/jars" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/support-v13/24.2.1/jars" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/support-v4/24.2.1/jars" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/support-vector-drawable/24.2.1/jars" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-safeguard" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant-run-support" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/jniLibs" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/jniLibs" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/mockable-android-23.jar" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/mockable-android-23.jar" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/pre-dexed" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/pre-dexed" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/shaders" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/tmp" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/tmp" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/transforms" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/transforms" />
<excludeFolder url="file://$MODULE_DIR$/build/outputs" /> <excludeFolder url="file://$MODULE_DIR$/build/outputs" />
<excludeFolder url="file://$MODULE_DIR$/build/tmp" /> <excludeFolder url="file://$MODULE_DIR$/build/tmp" />
</content> </content>
<orderEntry type="jdk" jdkName="Android API 23 Platform" jdkType="Android SDK" /> <orderEntry type="jdk" jdkName="Android API 24 Platform" jdkType="Android SDK" />
<orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" exported="" name="recyclerview-v7-23.1.0" level="project" /> <orderEntry type="library" exported="" name="support-compat-24.2.1" level="project" />
<orderEntry type="library" exported="" name="support-v4-24.2.1" level="project" />
<orderEntry type="library" exported="" name="support-media-compat-24.2.1" level="project" />
<orderEntry type="library" exported="" name="support-v13-24.2.1" level="project" />
<orderEntry type="library" exported="" name="animated-vector-drawable-24.2.1" level="project" />
<orderEntry type="library" exported="" name="support-fragment-24.2.1" level="project" />
<orderEntry type="library" exported="" name="support-core-ui-24.2.1" level="project" />
<orderEntry type="library" exported="" name="recyclerview-v7-24.2.1" level="project" />
<orderEntry type="library" exported="" name="appcompat-v7-24.2.1" level="project" />
<orderEntry type="library" exported="" name="support-vector-drawable-24.2.1" level="project" />
<orderEntry type="library" exported="" name="support-core-utils-24.2.1" level="project" />
<orderEntry type="library" exported="" name="support-annotations-24.2.1" level="project" />
<orderEntry type="library" exported="" scope="TEST" name="hamcrest-core-1.3" level="project" /> <orderEntry type="library" exported="" scope="TEST" name="hamcrest-core-1.3" level="project" />
<orderEntry type="library" exported="" scope="TEST" name="junit-4.12" level="project" /> <orderEntry type="library" exported="" scope="TEST" name="junit-4.12" level="project" />
<orderEntry type="library" exported="" name="support-v4-23.1.0" level="project" /> <orderEntry type="library" exported="" name="design-24.2.1" level="project" />
<orderEntry type="library" exported="" name="design-23.1.0" level="project" />
<orderEntry type="library" exported="" name="appcompat-v7-23.1.0" level="project" />
<orderEntry type="library" exported="" name="support-annotations-23.1.0" level="project" />
</component> </component>
</module> </module>

View file

@ -1,8 +1,8 @@
apply plugin: 'com.android.application' apply plugin: 'com.android.application'
android { android {
compileSdkVersion 23 compileSdkVersion 24
buildToolsVersion "23.0.2" buildToolsVersion '24.0.1'
testOptions { testOptions {
unitTests.returnDefaultValues = true unitTests.returnDefaultValues = true
@ -11,9 +11,9 @@ android {
defaultConfig { defaultConfig {
applicationId "org.secuso.privacyfriendlysudoku" applicationId "org.secuso.privacyfriendlysudoku"
minSdkVersion 16 minSdkVersion 16
targetSdkVersion 23 targetSdkVersion 24
versionCode 1 versionCode 1
versionName "1.0" versionName "2.0"
} }
buildTypes { buildTypes {
release { release {
@ -21,12 +21,20 @@ android {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
} }
} }
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
} }
dependencies { dependencies {
compile fileTree(dir: 'libs', include: ['*.jar']) compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12' testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.0' compile 'com.android.support:support-compat:24.2.1'
compile 'com.android.support:design:23.1.0' compile 'com.android.support:support-v4:24.2.1'
compile 'com.android.support:support-v4:23.1.0' compile 'com.android.support:support-v13:24.2.1'
compile 'com.android.support:appcompat-v7:24.2.1'
compile 'com.android.support:design:24.2.1'
compile 'com.android.support:support-core-ui:24.2.1'
compile 'com.android.support:support-core-utils:24.2.1'
} }

View file

@ -1,45 +1,38 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.secuso.privacyfriendlysudoku.ui.view" > package="org.secuso.privacyfriendlysudoku.ui.view">
<application <application
android:allowBackup="true" android:allowBackup="true"
android:icon="@mipmap/ic_launcher" android:icon="@mipmap/ic_launcher"
android:label="@string/app_name" android:label="@string/app_name"
android:supportsRtl="true" android:supportsRtl="true"
android:theme="@style/AppTheme" > android:theme="@style/AppTheme">
<activity <activity
android:name="org.secuso.privacyfriendlysudoku.ui.MainActivity" android:name="org.secuso.privacyfriendlysudoku.ui.MainActivity"
android:label="@string/app_name" android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar" > android:theme="@style/AppTheme.NoActionBar">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
</activity> </activity>
<activity <activity
android:name="org.secuso.privacyfriendlysudoku.ui.SettingsActivity" android:name="org.secuso.privacyfriendlysudoku.ui.SettingsActivity"
android:label="@string/title_activity_settings" android:label="@string/title_activity_settings"
android:parentActivityName="org.secuso.privacyfriendlysudoku.ui.MainActivity" > android:parentActivityName="org.secuso.privacyfriendlysudoku.ui.MainActivity" />
</activity>
<activity <activity
android:name="org.secuso.privacyfriendlysudoku.ui.GameActivity" android:name="org.secuso.privacyfriendlysudoku.ui.GameActivity"
android:label="@string/title_activity_game_view" android:label="@string/title_activity_game_view"
android:theme="@style/AppTheme.NoActionBar" > android:theme="@style/AppTheme.NoActionBar" />
</activity> <activity android:name="org.secuso.privacyfriendlysudoku.ui.AboutActivity" />
<activity android:name="org.secuso.privacyfriendlysudoku.ui.AboutActivity" > <activity android:name="org.secuso.privacyfriendlysudoku.ui.LoadGameActivity" />
</activity>
<activity android:name="org.secuso.privacyfriendlysudoku.ui.LoadGameActivity" >
</activity>
<activity <activity
android:name="org.secuso.privacyfriendlysudoku.ui.StatsActivity" android:name="org.secuso.privacyfriendlysudoku.ui.StatsActivity"
android:theme="@style/AppTheme.NoActionBar" > android:theme="@style/AppTheme.NoActionBar" />
</activity>
<activity <activity
android:name="org.secuso.privacyfriendlysudoku.ui.HelpActivity" android:name="org.secuso.privacyfriendlysudoku.ui.HelpActivity"
android:label="@string/title_activity_help" > android:label="@string/title_activity_help" />
</activity>
</application> </application>
</manifest> </manifest>

View file

@ -320,6 +320,7 @@ public class GameController implements IModelChangedListener, Parcelable {
if(settings.getBoolean("pref_timer_reset", true)) { if(settings.getBoolean("pref_timer_reset", true)) {
time = 0; time = 0;
notifyTimerListener(0);
undoRedoManager = new UndoRedoManager(gameBoard); undoRedoManager = new UndoRedoManager(gameBoard);
} else { } else {
undoRedoManager.addState(gameBoard); undoRedoManager.addState(gameBoard);
@ -611,6 +612,11 @@ public class GameController implements IModelChangedListener, Parcelable {
return usedHints; return usedHints;
} }
public void resetTime() {
time = 0;
notifyTimerListener(0);
}
public void initTimer() { public void initTimer() {
deleteTimer(); deleteTimer();
@ -621,7 +627,7 @@ public class GameController implements IModelChangedListener, Parcelable {
@Override @Override
public void run() { public void run() {
if(timerRunning.get()) { if(timerRunning.get()) {
notifyTimerListener(time++); notifyTimerListener(++time);
//Log.d("Timer", "calling notifyTimerListener(" + time + ");"); //Log.d("Timer", "calling notifyTimerListener(" + time + ");");
} }
} }

View file

@ -4,17 +4,22 @@ import android.graphics.Color;
import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.ColorDrawable;
import android.support.v7.app.AppCompatActivity; import android.support.v7.app.AppCompatActivity;
import android.os.Bundle; import android.os.Bundle;
import android.text.method.LinkMovementMethod;
import android.view.MenuItem; import android.view.MenuItem;
import android.widget.TextView;
import org.secuso.privacyfriendlysudoku.ui.view.R; import org.secuso.privacyfriendlysudoku.ui.view.R;
public class AboutActivity extends AppCompatActivity { public class AboutActivity extends BaseActivity {
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_about); setContentView(R.layout.activity_about);
((TextView)findViewById(R.id.secusoWebsite)).setMovementMethod(LinkMovementMethod.getInstance());
((TextView)findViewById(R.id.githubURL)).setMovementMethod(LinkMovementMethod.getInstance());
android.support.v7.app.ActionBar actionBar = getSupportActionBar(); android.support.v7.app.ActionBar actionBar = getSupportActionBar();
actionBar.setTitle(R.string.menu_about); actionBar.setTitle(R.string.menu_about);
actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setDisplayHomeAsUpEnabled(true);

View file

@ -0,0 +1,52 @@
package org.secuso.privacyfriendlysudoku.ui;
import android.os.Bundle;
import android.os.Handler;
import android.preference.PreferenceManager;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import org.secuso.privacyfriendlysudoku.ui.view.R;
/**
* Created by Chris on 15.10.2016.
*/
public class BaseActivity extends AppCompatActivity {
static final int NAVDRAWER_LAUNCH_DELAY = 250;
static final int MAIN_CONTENT_FADEOUT_DURATION = 150;
static final int MAIN_CONTENT_FADEIN_DURATION = 250;
protected Handler mHandler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mHandler = new Handler();
overridePendingTransition(0, 0);
}
@Override
public void onResume() {
super.onResume();
View mainContent = findViewById(R.id.main_content);
if (mainContent != null) {
mainContent.animate().alpha(1).setDuration(MAIN_CONTENT_FADEIN_DURATION);
}
}
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
View mainContent = findViewById(R.id.main_content);
if (mainContent != null) {
mainContent.setAlpha(0);
mainContent.animate().alpha(1).setDuration(MAIN_CONTENT_FADEIN_DURATION);
}
}
}

View file

@ -47,8 +47,9 @@ import org.secuso.privacyfriendlysudoku.ui.view.WinDialog;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.concurrent.RunnableFuture;
public class GameActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener, IGameSolvedListener ,ITimerListener, IHintDialogFragmentListener, IResetDialogFragmentListener { public class GameActivity extends BaseActivity implements NavigationView.OnNavigationItemSelectedListener, IGameSolvedListener ,ITimerListener, IHintDialogFragmentListener, IResetDialogFragmentListener {
GameController gameController; GameController gameController;
SudokuFieldLayout layout; SudokuFieldLayout layout;
@ -61,12 +62,30 @@ public class GameActivity extends AppCompatActivity implements NavigationView.On
SaveLoadStatistics statistics = new SaveLoadStatistics(this); SaveLoadStatistics statistics = new SaveLoadStatistics(this);
WinDialog dialog = null; WinDialog dialog = null;
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
if(gameSolved) {
gameController.pauseTimer();
} else {
// start the game
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
gameController.startTimer();
}
}, MAIN_CONTENT_FADEIN_DURATION);
}
}
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this); SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
GameType gameType = GameType.Unspecified; GameType gameType = GameType.Unspecified;
GameDifficulty gameDifficulty = GameDifficulty.Unspecified; GameDifficulty gameDifficulty = GameDifficulty.Unspecified;
@ -103,8 +122,17 @@ public class GameActivity extends AppCompatActivity implements NavigationView.On
gameController = savedInstanceState.getParcelable("gameController"); gameController = savedInstanceState.getParcelable("gameController");
// in case we get the same object back // in case we get the same object back
// because parceling the Object does not always parcel it. Only if needed. // because parceling the Object does not always parcel it. Only if needed.
gameController.removeAllListeners(); if(gameController != null) {
gameController.setContextAndSettings(getApplicationContext(), sharedPref); gameController.removeAllListeners();
gameController.setContextAndSettings(getApplicationContext(), sharedPref);
} else {
// Error: no game could be restored. Go back to main menu.
Intent intent = new Intent(this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
overridePendingTransition(0, 0);
}
gameSolved = savedInstanceState.getInt("gameSolved") == 1; gameSolved = savedInstanceState.getInt("gameSolved") == 1;
} }
@ -177,17 +205,15 @@ public class GameActivity extends AppCompatActivity implements NavigationView.On
layout.setEnabled(false); layout.setEnabled(false);
keyboard.setButtonsEnabled(false); keyboard.setButtonsEnabled(false);
specialButtonLayout.setButtonsEnabled(false); specialButtonLayout.setButtonsEnabled(false);
gameController.pauseTimer();
} else {
// start the game
gameController.startTimer();
} }
gameController.notifyHighlightChangedListeners(); gameController.notifyHighlightChangedListeners();
gameController.notifyTimerListener(gameController.getTime()); gameController.notifyTimerListener(gameController.getTime());
// run this so the error list gets build again. // run this so the error list gets build again.
gameController.onModelChange(null); gameController.onModelChange(null);
overridePendingTransition(0, 0);
} }
@Override @Override
@ -201,10 +227,21 @@ public class GameActivity extends AppCompatActivity implements NavigationView.On
@Override @Override
public void onResume(){ public void onResume(){
super.onResume(); super.onResume();
View mainContent = findViewById(R.id.main_content);
if (mainContent != null) {
mainContent.animate().alpha(1).setDuration(MAIN_CONTENT_FADEOUT_DURATION);
}
gameController.initTimer(); gameController.initTimer();
if(!gameSolved) { if(!gameSolved) {
gameController.startTimer(); mHandler.postDelayed(new Runnable() {
@Override
public void run() {
gameController.startTimer();
}
}, MAIN_CONTENT_FADEIN_DURATION);
} }
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this); SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
@ -238,7 +275,7 @@ public class GameActivity extends AppCompatActivity implements NavigationView.On
// Handle navigation view item clicks here. // Handle navigation view item clicks here.
int id = item.getItemId(); int id = item.getItemId();
Intent intent; Intent intent = null;
switch(id) { switch(id) {
case R.id.menu_reset: case R.id.menu_reset:
@ -250,7 +287,6 @@ public class GameActivity extends AppCompatActivity implements NavigationView.On
//create new game //create new game
intent = new Intent(this, MainActivity.class); intent = new Intent(this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish(); finish();
break; break;
@ -259,31 +295,44 @@ public class GameActivity extends AppCompatActivity implements NavigationView.On
intent = new Intent(this,SettingsActivity.class); intent = new Intent(this,SettingsActivity.class);
intent.putExtra( PreferenceActivity.EXTRA_SHOW_FRAGMENT, SettingsActivity.GamePreferenceFragment.class.getName() ); intent.putExtra( PreferenceActivity.EXTRA_SHOW_FRAGMENT, SettingsActivity.GamePreferenceFragment.class.getName() );
intent.putExtra( PreferenceActivity.EXTRA_NO_HEADERS, true ); intent.putExtra( PreferenceActivity.EXTRA_NO_HEADERS, true );
startActivity(intent);
break; break;
case R.id.nav_highscore: case R.id.nav_highscore:
// see highscore list // see highscore list
intent = new Intent(this, StatsActivity.class); intent = new Intent(this, StatsActivity.class);
startActivity(intent);
break; break;
case R.id.menu_about: case R.id.menu_about:
//open about page //open about page
intent = new Intent(this,AboutActivity.class); intent = new Intent(this,AboutActivity.class);
startActivity(intent);
break; break;
case R.id.menu_help: case R.id.menu_help:
//open about page //open about page
intent = new Intent(this,HelpActivity.class); intent = new Intent(this,HelpActivity.class);
intent.putExtra( HelpActivity.EXTRA_SHOW_FRAGMENT, HelpActivity.HelpFragment.class.getName() );
intent.putExtra( HelpActivity.EXTRA_NO_HEADERS, true );
startActivity(intent);
break; break;
default: default:
} }
if(intent != null) {
final Intent i = intent;
// fade out the active activity
View mainContent = findViewById(R.id.main_content);
if (mainContent != null) {
mainContent.animate().alpha(0).setDuration(MAIN_CONTENT_FADEOUT_DURATION);
}
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
startActivity(i);
overridePendingTransition(0, 0);
}
}, NAVDRAWER_LAUNCH_DELAY);
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START); drawer.closeDrawer(GravityCompat.START);
return true; return true;
@ -326,6 +375,7 @@ public class GameActivity extends AppCompatActivity implements NavigationView.On
Intent intent = new Intent(activity, MainActivity.class); Intent intent = new Intent(activity, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent); startActivity(intent);
overridePendingTransition(0, 0);
activity.finish(); activity.finish();
} }
}); });

View file

@ -19,6 +19,7 @@ import android.preference.PreferenceManager;
import android.preference.RingtonePreference; import android.preference.RingtonePreference;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View;
import org.secuso.privacyfriendlysudoku.ui.view.R; import org.secuso.privacyfriendlysudoku.ui.view.R;
@ -35,11 +36,13 @@ import java.util.List;
* href="http://developer.android.com/guide/topics/ui/settings.html">Settings * href="http://developer.android.com/guide/topics/ui/settings.html">Settings
* API Guide</a> for more information on developing a Settings UI. * API Guide</a> for more information on developing a Settings UI.
*/ */
public class HelpActivity extends AppCompatPreferenceActivity { public class HelpActivity extends BaseActivity {
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setupActionBar(); setupActionBar();
setContentView(R.layout.activity_help);
} }
/** /**
@ -53,33 +56,6 @@ public class HelpActivity extends AppCompatPreferenceActivity {
} }
} }
/**
* {@inheritDoc}
*/
@Override
public boolean onIsMultiPane() {
return isXLargeTablet(this);
}
/**
* Helper method to determine if the device has an extra-large screen. For
* example, 10" tablets are extra-large.
*/
private static boolean isXLargeTablet(Context context) {
return (context.getResources().getConfiguration().screenLayout
& Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_XLARGE;
}
/**
* {@inheritDoc}
*/
@Override
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
public void onBuildHeaders(List<Header> target) {
loadHeadersFromResource(R.xml.pref_help_headers, target);
}
/** /**
* A preference value change listener that updates the preference's summary * A preference value change listener that updates the preference's summary
* to reflect its new value. * to reflect its new value.

View file

@ -10,7 +10,6 @@ import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.os.Bundle; import android.os.Bundle;
import android.preference.PreferenceManager; import android.preference.PreferenceManager;
import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View; import android.view.View;
@ -34,7 +33,7 @@ import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.TimeZone; import java.util.TimeZone;
public class LoadGameActivity extends AppCompatActivity implements IDeleteDialogFragmentListener { public class LoadGameActivity extends BaseActivity implements IDeleteDialogFragmentListener {
List<GameInfoContainer> loadableGameList; List<GameInfoContainer> loadableGameList;
SharedPreferences settings; SharedPreferences settings;
@ -93,7 +92,7 @@ public class LoadGameActivity extends AppCompatActivity implements IDeleteDialog
} }
}; };
ListView listView = (ListView)findViewById(R.id.load_game_list); ListView listView = (ListView)findViewById(R.id.main_content);
loadGameAdapter = new LoadGameAdapter(this, loadableGameList); loadGameAdapter = new LoadGameAdapter(this, loadableGameList);
listView.setAdapter(loadGameAdapter); listView.setAdapter(loadGameAdapter);
listView.setOnItemClickListener(clickListener); listView.setOnItemClickListener(clickListener);

View file

@ -4,6 +4,7 @@ import android.app.Activity;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.app.Dialog; import android.app.Dialog;
import android.app.DialogFragment; import android.app.DialogFragment;
import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.os.Bundle; import android.os.Bundle;
@ -40,12 +41,13 @@ import java.io.Serializable;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener{ public class MainActivity extends BaseActivity implements NavigationView.OnNavigationItemSelectedListener{
RatingBar difficultyBar; RatingBar difficultyBar;
TextView difficultyText; TextView difficultyText;
SharedPreferences settings; SharedPreferences settings;
ImageView arrowLeft, arrowRight; ImageView arrowLeft, arrowRight;
DrawerLayout drawer;
/** /**
* The {@link ViewPager} that will host the section contents. * The {@link ViewPager} that will host the section contents.
@ -160,7 +162,7 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On
// set Nav_Bar // set Nav_Bar
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout_main); drawer = (DrawerLayout) findViewById(R.id.drawer_layout_main);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle( ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle); drawer.setDrawerListener(toggle);
@ -169,7 +171,9 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view_main); NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view_main);
navigationView.setNavigationItemSelectedListener(this); navigationView.setNavigationItemSelectedListener(this);
overridePendingTransition(0, 0);
} }
public void callFragment(View view){ public void callFragment(View view){
/*FragmentManager fm = getSupportFragmentManager(); /*FragmentManager fm = getSupportFragmentManager();
DialogWinScreen winScreen = new DialogWinScreen(); DialogWinScreen winScreen = new DialogWinScreen();
@ -219,8 +223,23 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On
break; break;
default: default:
} }
if(i != null) {
startActivity(i); final Intent intent = i;
if(intent != null) {
View mainContent = findViewById(R.id.main_content);
if (mainContent != null) {
mainContent.animate().alpha(0).setDuration(MAIN_CONTENT_FADEOUT_DURATION);
}
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
startActivity(intent);
}
}, MAIN_CONTENT_FADEOUT_DURATION);
} }
} }
@ -248,8 +267,27 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On
@Override @Override
public boolean onNavigationItemSelected(MenuItem item) { public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here. // Handle navigation view item clicks here.
int id = item.getItemId(); final int id = item.getItemId();
// delay transition so the drawer can close
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
goToNavigationItem(id);
}
}, NAVDRAWER_LAUNCH_DELAY);
drawer.closeDrawer(GravityCompat.START);
// fade out the active activity
View mainContent = findViewById(R.id.main_content);
if (mainContent != null) {
mainContent.animate().alpha(0).setDuration(MAIN_CONTENT_FADEOUT_DURATION);
}
return true;
}
private boolean goToNavigationItem(int id) {
Intent intent; Intent intent;
switch(id) { switch(id) {
@ -259,6 +297,7 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On
intent.putExtra( PreferenceActivity.EXTRA_SHOW_FRAGMENT, SettingsActivity.GamePreferenceFragment.class.getName() ); intent.putExtra( PreferenceActivity.EXTRA_SHOW_FRAGMENT, SettingsActivity.GamePreferenceFragment.class.getName() );
intent.putExtra( PreferenceActivity.EXTRA_NO_HEADERS, true ); intent.putExtra( PreferenceActivity.EXTRA_NO_HEADERS, true );
startActivity(intent); startActivity(intent);
overridePendingTransition(0, 0);
break; break;
case R.id.nav_highscore_main: case R.id.nav_highscore_main:
@ -266,26 +305,24 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On
intent = new Intent(this, StatsActivity.class); intent = new Intent(this, StatsActivity.class);
startActivity(intent); startActivity(intent);
overridePendingTransition(0, 0);
break; break;
case R.id.menu_about_main: case R.id.menu_about_main:
//open about page //open about page
intent = new Intent(this,AboutActivity.class); intent = new Intent(this,AboutActivity.class);
startActivity(intent); startActivity(intent);
overridePendingTransition(0, 0);
break; break;
case R.id.menu_help_main: case R.id.menu_help_main:
//open about page //open about page
intent = new Intent(this,HelpActivity.class); intent = new Intent(this,HelpActivity.class);
intent.putExtra( HelpActivity.EXTRA_SHOW_FRAGMENT, HelpActivity.HelpFragment.class.getName() );
intent.putExtra( HelpActivity.EXTRA_NO_HEADERS, true );
startActivity(intent); startActivity(intent);
overridePendingTransition(0, 0);
break; break;
default: default:
} }
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout_main);
drawer.closeDrawer(GravityCompat.START);
return true; return true;
} }
@ -389,7 +426,7 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setView(i.inflate(R.layout.welcome_dialog, null)); builder.setView(i.inflate(R.layout.welcome_dialog, null));
builder.setIcon(R.mipmap.ic_launcher); builder.setIcon(R.mipmap.ic_launcher_nopfa);
builder.setTitle(getActivity().getString(R.string.app_name_long)); builder.setTitle(getActivity().getString(R.string.app_name_long));
builder.setPositiveButton(getActivity().getString(R.string.win_button_text), null); builder.setPositiveButton(getActivity().getString(R.string.win_button_text), null);

View file

@ -13,6 +13,7 @@ import android.support.v7.app.ActionBar;
import android.preference.PreferenceFragment; import android.preference.PreferenceFragment;
import android.preference.PreferenceManager; import android.preference.PreferenceManager;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View;
import org.secuso.privacyfriendlysudoku.ui.view.R; import org.secuso.privacyfriendlysudoku.ui.view.R;
@ -34,6 +35,14 @@ public class SettingsActivity extends AppCompatPreferenceActivity {
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setupActionBar(); setupActionBar();
overridePendingTransition(0, 0);
View mainContent = findViewById(R.id.main_content);
if (mainContent != null) {
mainContent.setAlpha(0);
mainContent.animate().alpha(1).setDuration(BaseActivity.MAIN_CONTENT_FADEIN_DURATION);
}
} }
/** /**

View file

@ -9,7 +9,6 @@ import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar; import android.support.v7.widget.Toolbar;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.Menu; import android.view.Menu;
@ -27,7 +26,7 @@ import org.secuso.privacyfriendlysudoku.ui.view.R;
import java.util.List; import java.util.List;
public class StatsActivity extends AppCompatActivity { public class StatsActivity extends BaseActivity {
/** /**
* The {@link android.support.v4.view.PagerAdapter} that will provide * The {@link android.support.v4.view.PagerAdapter} that will provide
@ -62,12 +61,11 @@ public class StatsActivity extends AppCompatActivity {
mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager()); mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
// Set up the ViewPager with the sections adapter. // Set up the ViewPager with the sections adapter.
mViewPager = (ViewPager) findViewById(R.id.container); mViewPager = (ViewPager) findViewById(R.id.main_content);
mViewPager.setAdapter(mSectionsPagerAdapter); mViewPager.setAdapter(mSectionsPagerAdapter);
TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs); TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(mViewPager); tabLayout.setupWithViewPager(mViewPager);
} }

View file

@ -1,11 +1,15 @@
package org.secuso.privacyfriendlysudoku.ui.view; package org.secuso.privacyfriendlysudoku.ui.view;
import android.app.AlertDialog;
import android.app.Dialog; import android.app.Dialog;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle; import android.os.Bundle;
import android.view.View; import android.view.View;
import android.widget.TextView; import android.widget.TextView;
import org.secuso.privacyfriendlysudoku.ui.listener.IResetDialogFragmentListener;
/** /**
* Created by TMZ_LToP on 30.01.2016. * Created by TMZ_LToP on 30.01.2016.
*/ */
@ -41,8 +45,25 @@ public class WinDialog extends Dialog {
if(isNewBestTime){ if(isNewBestTime){
((TextView)findViewById(R.id.win_new_besttime)).setVisibility(View.VISIBLE); ((TextView)findViewById(R.id.win_new_besttime)).setVisibility(View.VISIBLE);
} }
} }
@Override
public Bundle onSaveInstanceState() {
Bundle bundle = super.onSaveInstanceState();
bundle.putString("hintString", hintString);
bundle.putString("timeString", timeString);
bundle.putBoolean("isNewBestTime", isNewBestTime);
return bundle;
}
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
if(savedInstanceState == null) return;
hintString = savedInstanceState.getString("hintString");
timeString = savedInstanceState.getString("timeString");
isNewBestTime = savedInstanceState.getBoolean("isNewBestTime");
}
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

View file

@ -1,38 +1,45 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="#FFFFFF" android:background="#FFFFFF">
android:orientation="horizontal"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".AboutActivity"
android:weightSum="2">
<LinearLayout <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="0px" xmlns:tools="http://schemas.android.com/tools"
android:layout_height="fill_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FFFFFF"
android:id="@+id/main_content"
android:fitsSystemWindows="true"
android:orientation="vertical" android:orientation="vertical"
android:layout_weight="1"> 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:weightSum="1"
tools:context=".AboutActivity">
<ImageView <LinearLayout
android:id="@+id/barcodeLogo" android:layout_width="match_parent"
android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:adjustViewBounds="true" android:layout_weight="0.36">
android:src="@drawable/privacyfriendlyappslogo" />
<ImageView
android:id="@+id/barcodeLogo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/privacyfriendlyappslogo" />
</LinearLayout>
<TextView <TextView
android:id="@+id/appName" android:id="@+id/appName"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp" android:layout_marginTop="15dp"
android:textSize="@dimen/text_size"
android:text="@string/app_name_long" /> android:text="@string/app_name_long" />
<TextView <TextView
@ -40,8 +47,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp" android:layout_marginTop="5dp"
android:textSize="@dimen/text_size"
android:text="@string/version_number" /> android:text="@string/version_number" />
<TextView <TextView
@ -49,49 +55,35 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp" android:layout_marginTop="5dp"
android:textSize="@dimen/text_size"
android:text="@string/about_author" /> android:text="@string/about_author" />
<TextView <TextView
android:id="@+id/textFieldAuthorNames" android:id="@+id/authornames"
android:layout_marginTop="5dp"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:gravity="center" android:text="@string/about_author_names"/>
android:layout_marginTop="0dp"
android:textSize="@dimen/text_size"
android:text="@string/about_author_names" />
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:gravity="center"
android:textSize="@dimen/text_size"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:text="@string/privacy_friendly"/> android:text="@string/about_author_contributors"/>
</LinearLayout>
<LinearLayout
android:layout_width="0px"
android:layout_height="fill_parent"
android:orientation="vertical"
android:layout_weight="1">
<TextView <TextView
android:id="@+id/textFieldAffiliation" android:id="@+id/textFieldAffiliation"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:textSize="@dimen/text_size" android:layout_marginTop="15dp"
android:text="@string/about_affiliation" android:text="@string/about_affiliation"
android:textStyle="bold" /> android:textStyle="bold" />
<ImageView <ImageView
android:id="@+id/imageView1" android:id="@+id/imageView1"
android:layout_width="fill_parent" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:adjustViewBounds="true" android:adjustViewBounds="true"
android:src="@drawable/secuso_logo_blau_blau" /> android:src="@drawable/secuso_logo_blau_blau" />
@ -100,19 +92,34 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp" android:layout_marginTop="10dp"
android:textSize="@dimen/text_size" android:gravity="center_horizontal"
android:text="@string/more_info"/> android:text="@string/privacy_friendly" />
<TextView <TextView
android:id="@+id/linkID"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/url"
android:textStyle="bold"
android:textSize="@dimen/text_size"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:autoLink="web"/> android:layout_marginTop="15dp"
android:gravity="center"
android:text="@string/more_info" />
<TextView
android:id="@+id/secusoWebsite"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/url"
android:textStyle="bold" />
<TextView
android:id="@+id/githubURL"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:gravity="center_horizontal"
android:text="@string/github"
android:textStyle="bold" />
<TextView <TextView
android:id="@+id/qqWing" android:id="@+id/qqWing"
@ -121,7 +128,6 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center" android:gravity="center"
android:text="@string/about_qqwing" android:text="@string/about_qqwing"
android:textSize="@dimen/text_size"
android:layout_gravity="center_horizontal"/> android:layout_gravity="center_horizontal"/>
<TextView <TextView
@ -133,16 +139,4 @@
</LinearLayout> </LinearLayout>
</ScrollView>
<!--
-->
</LinearLayout>

View file

@ -1,4 +1,13 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout android:id="@+id/drawer_layout_main"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto">
<android.support.design.widget.CoordinatorLayout <android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
@ -26,19 +35,13 @@
</android.support.design.widget.AppBarLayout> </android.support.design.widget.AppBarLayout>
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout_main"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:layout_marginTop="?attr/actionBarSize"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:weightSum="2" android:weightSum="2"
android:orientation="horizontal"> android:id="@+id/main_content"
android:orientation="horizontal"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<RelativeLayout <RelativeLayout
android:layout_width="0px" android:layout_width="0px"
@ -154,14 +157,15 @@
</LinearLayout> </LinearLayout>
</android.support.design.widget.CoordinatorLayout>
<android.support.design.widget.NavigationView <android.support.design.widget.NavigationView
android:id="@+id/nav_view_main" android:id="@+id/nav_view_main"
android:layout_width="200dp" android:layout_width="wrap_content"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_gravity="start" android:layout_gravity="start"
android:fitsSystemWindows="true"
android:background="@color/white" android:background="@color/white"
app:menu="@menu/menu_drawer_main"/> app:menu="@menu/menu_drawer_main"
app:headerLayout="@layout/nav_header" />
</android.support.v4.widget.DrawerLayout> </android.support.v4.widget.DrawerLayout>
</android.support.design.widget.CoordinatorLayout>

View file

@ -5,12 +5,12 @@
android:layoutDirection="ltr" android:layoutDirection="ltr"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:id="@+id/main_content"
android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin" android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin"
app:layout_behavior="@string/appbar_scrolling_view_behavior" app:layout_behavior="@string/appbar_scrolling_view_behavior">
tools:context="tu_darmstadt.sudoku.activity.GameActivity">
<org.secuso.privacyfriendlysudoku.ui.view.SudokuSpecialButtonLayout <org.secuso.privacyfriendlysudoku.ui.view.SudokuSpecialButtonLayout
android:id="@+id/sudokuSpecialLayout" android:id="@+id/sudokuSpecialLayout"

View file

@ -1,4 +1,13 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout android:id="@+id/drawer_layout_main"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto">
<android.support.design.widget.CoordinatorLayout <android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
@ -26,20 +35,14 @@
</android.support.design.widget.AppBarLayout> </android.support.design.widget.AppBarLayout>
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout_main"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:layout_marginTop="?attr/actionBarSize"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<LinearLayout <LinearLayout
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_width="match_parent" android:layout_width="match_parent"
android:orientation="vertical" android:orientation="vertical"
android:weightSum="10" android:weightSum="10"
style="?android:buttonBarStyle"> android:id="@+id/main_content"
style="?android:buttonBarStyle"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<RelativeLayout <RelativeLayout
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="0dp" android:layout_height="0dp"
@ -226,14 +229,16 @@
</LinearLayout> </LinearLayout>
</android.support.design.widget.CoordinatorLayout>
<android.support.design.widget.NavigationView <android.support.design.widget.NavigationView
android:id="@+id/nav_view_main" android:id="@+id/nav_view_main"
android:layout_width="200dp" android:layout_width="wrap_content"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_gravity="start" android:layout_gravity="start"
android:fitsSystemWindows="true"
android:background="@color/white" android:background="@color/white"
app:menu="@menu/menu_drawer_main"/> app:menu="@menu/menu_drawer_main"
app:headerLayout="@layout/nav_header" />
</android.support.v4.widget.DrawerLayout> </android.support.v4.widget.DrawerLayout>
</android.support.design.widget.CoordinatorLayout>

View file

@ -1,39 +1,45 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="#FFFFFF" android:background="#FFFFFF">
android:orientation="horizontal"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".AboutActivity"
android:weightSum="2">
<LinearLayout <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="0px" xmlns:tools="http://schemas.android.com/tools"
android:layout_height="fill_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FFFFFF"
android:id="@+id/main_content"
android:fitsSystemWindows="true"
android:orientation="vertical" android:orientation="vertical"
android:layout_weight="1"> 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:weightSum="1"
tools:context=".AboutActivity">
<ImageView <LinearLayout
android:id="@+id/barcodeLogo" android:layout_width="match_parent"
android:layout_width="fill_parent" android:layout_height="match_parent"
android:layout_height="wrap_content" android:layout_weight="0.36">
android:adjustViewBounds="true"
android:src="@drawable/privacyfriendlyappslogo" />
<ImageView
android:id="@+id/barcodeLogo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/privacyfriendlyappslogo" />
</LinearLayout>
<TextView <TextView
android:id="@+id/appName" android:id="@+id/appName"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:gravity="center"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp" android:layout_marginTop="15dp"
android:textSize="@dimen/text_size"
android:text="@string/app_name_long" /> android:text="@string/app_name_long" />
<TextView <TextView
@ -41,8 +47,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp" android:layout_marginTop="5dp"
android:textSize="@dimen/text_size"
android:text="@string/version_number" /> android:text="@string/version_number" />
<TextView <TextView
@ -50,50 +55,35 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp" android:layout_marginTop="5dp"
android:textSize="@dimen/text_size"
android:text="@string/about_author" /> android:text="@string/about_author" />
<TextView <TextView
android:id="@+id/textFieldAuthorNames" android:id="@+id/authornames"
android:layout_marginTop="5dp"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:gravity="center"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginTop="0dp" android:text="@string/about_author_names"/>
android:textSize="@dimen/text_size"
android:text="@string/about_author_names" />
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center"
android:layout_marginTop="30dp"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:textSize="@dimen/text_size" android:text="@string/about_author_contributors"/>
android:text="@string/privacy_friendly"/>
</LinearLayout>
<LinearLayout
android:layout_width="0px"
android:layout_height="fill_parent"
android:orientation="vertical"
android:layout_weight="1">
<TextView <TextView
android:id="@+id/textFieldAffiliation" android:id="@+id/textFieldAffiliation"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:gravity="center"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:textSize="@dimen/text_size" android:layout_marginTop="15dp"
android:text="@string/about_affiliation" android:text="@string/about_affiliation"
android:textStyle="bold" /> android:textStyle="bold" />
<ImageView <ImageView
android:id="@+id/imageView1" android:id="@+id/imageView1"
android:layout_width="fill_parent" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:adjustViewBounds="true" android:adjustViewBounds="true"
android:src="@drawable/secuso_logo_blau_blau" /> android:src="@drawable/secuso_logo_blau_blau" />
@ -102,21 +92,34 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:textSize="@dimen/text_size" android:layout_marginTop="10dp"
android:layout_marginTop="20dp" android:gravity="center_horizontal"
android:gravity="center" android:text="@string/privacy_friendly" />
android:text="@string/more_info"/>
<TextView <TextView
android:id="@+id/linkID"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:gravity="center"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/url"
android:textSize="@dimen/text_size"
android:textStyle="bold"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:autoLink="web"/> android:layout_marginTop="15dp"
android:gravity="center"
android:text="@string/more_info" />
<TextView
android:id="@+id/secusoWebsite"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/url"
android:textStyle="bold" />
<TextView
android:id="@+id/githubURL"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:gravity="center_horizontal"
android:text="@string/github"
android:textStyle="bold" />
<TextView <TextView
android:id="@+id/qqWing" android:id="@+id/qqWing"
@ -124,31 +127,16 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center" android:gravity="center"
android:textSize="@dimen/text_size"
android:text="@string/about_qqwing" android:text="@string/about_qqwing"
android:layout_gravity="center_horizontal"/> android:layout_gravity="center_horizontal"/>
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textSize="@dimen/text_size"
android:text="@string/about_qqwingLink" android:text="@string/about_qqwingLink"
android:gravity="center"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:autoLink="web"/> android:autoLink="web"/>
</LinearLayout> </LinearLayout>
</ScrollView>
<!--
-->
</LinearLayout>

View file

@ -1,111 +1,142 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="#FFFFFF" android:background="#FFFFFF">
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"
tools:context=".AboutActivity"
android:weightSum="1">
<ImageView <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/barcodeLogo" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:adjustViewBounds="true" android:background="#FFFFFF"
android:src="@drawable/privacyfriendlyappslogo" /> android:id="@+id/main_content"
android:fitsSystemWindows="true"
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:weightSum="1"
tools:context=".AboutActivity">
<TextView <LinearLayout
android:id="@+id/appName" android:layout_width="match_parent"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_height="wrap_content" android:layout_weight="0.36">
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
android:text="@string/app_name_long" />
<TextView <ImageView
android:id="@+id/textFieldVersion" android:id="@+id/barcodeLogo"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:adjustViewBounds="true"
android:layout_marginTop="10dp" android:src="@drawable/privacyfriendlyappslogo" />
android:text="@string/version_number" />
<TextView </LinearLayout>
android:id="@+id/textFieldAuthor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:text="@string/about_author" />
<TextView <TextView
android:id="@+id/textFieldAuthorNames" android:id="@+id/appName"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginTop="0dp" android:layout_marginTop="15dp"
android:text="@string/about_author_names" /> android:text="@string/app_name_long" />
<TextView <TextView
android:id="@+id/textFieldAffiliation" android:id="@+id/textFieldVersion"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginTop="30dp" android:layout_marginTop="5dp"
android:text="@string/about_affiliation" android:text="@string/version_number" />
android:textStyle="bold" />
<ImageView <TextView
android:id="@+id/imageView1" android:id="@+id/textFieldAuthor"
android:layout_width="fill_parent" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:adjustViewBounds="true" android:layout_gravity="center_horizontal"
android:src="@drawable/secuso_logo_blau_blau" /> android:layout_marginTop="5dp"
android:text="@string/about_author" />
<TextView <TextView
android:layout_width="wrap_content" android:id="@+id/authornames"
android:layout_height="wrap_content" android:layout_marginTop="5dp"
android:gravity="center" android:layout_width="wrap_content"
android:layout_marginTop="10dp" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:text="@string/privacy_friendly"/> android:text="@string/about_author_names"/>
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center" android:layout_gravity="center_horizontal"
android:layout_gravity="center_horizontal" android:text="@string/about_author_contributors"/>
android:layout_marginTop="20dp"
android:text="@string/more_info"/>
<TextView <TextView
android:id="@+id/linkID" android:id="@+id/textFieldAffiliation"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/url" android:layout_gravity="center_horizontal"
android:textStyle="bold" android:layout_marginTop="15dp"
android:layout_gravity="center_horizontal" android:text="@string/about_affiliation"
android:autoLink="web"/> android:textStyle="bold" />
<TextView <ImageView
android:id="@+id/qqWing" android:id="@+id/imageView1"
android:layout_marginTop="20dp" android:layout_width="wrap_content"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:gravity="center" android:adjustViewBounds="true"
android:layout_height="wrap_content" android:src="@drawable/secuso_logo_blau_blau" />
android:text="@string/about_qqwing"
android:layout_gravity="center_horizontal"/>
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/about_qqwingLink" android:layout_gravity="center_horizontal"
android:layout_gravity="center_horizontal" android:layout_marginTop="10dp"
android:autoLink="web"/> android:gravity="center_horizontal"
android:text="@string/privacy_friendly" />
</LinearLayout> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="15dp"
android:gravity="center"
android:text="@string/more_info" />
<TextView
android:id="@+id/secusoWebsite"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/url"
android:textStyle="bold" />
<TextView
android:id="@+id/githubURL"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:gravity="center_horizontal"
android:text="@string/github"
android:textStyle="bold" />
<TextView
android:id="@+id/qqWing"
android:layout_marginTop="20dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/about_qqwing"
android:layout_gravity="center_horizontal"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/about_qqwingLink"
android:layout_gravity="center_horizontal"
android:autoLink="web"/>
</LinearLayout>
</ScrollView>

View file

@ -1,4 +1,13 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout android:id="@+id/drawer_layout_main"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto">
<android.support.design.widget.CoordinatorLayout <android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
@ -26,20 +35,14 @@
</android.support.design.widget.AppBarLayout> </android.support.design.widget.AppBarLayout>
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout_main"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:layout_marginTop="?attr/actionBarSize"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<LinearLayout <LinearLayout
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_width="match_parent" android:layout_width="match_parent"
android:orientation="vertical" android:orientation="vertical"
android:weightSum="10" android:weightSum="10"
style="?android:buttonBarStyle"> android:id="@+id/main_content"
style="?android:buttonBarStyle"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<RelativeLayout <RelativeLayout
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="0dp" android:layout_height="0dp"
@ -78,11 +81,12 @@
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:onClick="onClick"/> android:onClick="onClick"/>
</RelativeLayout> </RelativeLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_below="@+id/scroller" android:layout_below="@id/scroller"
android:layout_weight="6" android:layout_weight="6"
android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin"
@ -129,7 +133,7 @@
android:textSize="@dimen/text_size" android:textSize="@dimen/text_size"
android:id="@+id/playButton" android:id="@+id/playButton"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_weight="3" android:layout_weight="2"
android:onClick="onClick" android:onClick="onClick"
android:capitalize="none" android:capitalize="none"
android:clickable="false" android:clickable="false"
@ -148,18 +152,11 @@
android:textSize="@dimen/text_size" android:textSize="@dimen/text_size"
android:id="@+id/continueButton" android:id="@+id/continueButton"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_weight="3" android:layout_weight="2"
android:onClick="onClick" android:onClick="onClick"
android:capitalize="none" android:capitalize="none"
android:clickable="false" android:clickable="false"
android:background="@drawable/standalone_button"/> android:background="@drawable/standalone_button"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Win Debug"
android:visibility="invisible"
android:onClick="callFragment"/>
<!-- <!--
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
@ -230,14 +227,16 @@
</LinearLayout> </LinearLayout>
</android.support.design.widget.CoordinatorLayout>
<android.support.design.widget.NavigationView <android.support.design.widget.NavigationView
android:id="@+id/nav_view_main" android:id="@+id/nav_view_main"
android:layout_width="200dp" android:layout_width="wrap_content"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_gravity="start" android:layout_gravity="start"
android:fitsSystemWindows="true"
android:background="@color/white" android:background="@color/white"
app:menu="@menu/menu_drawer_main"/> app:menu="@menu/menu_drawer_main"
app:headerLayout="@layout/nav_header" />
</android.support.v4.widget.DrawerLayout> </android.support.v4.widget.DrawerLayout>
</android.support.design.widget.CoordinatorLayout>

View file

@ -1,120 +1,142 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<ScrollView <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
android:layout_height="match_parent"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFFFF"> android:background="#FFFFFF">
<LinearLayout <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent" android:layout_width="match_parent"
android:layout_height="fill_parent"
android:background="#FFFFFF"
android:orientation="vertical"
android:isScrollContainer="true"
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:gravity="center"
tools:context=".AboutActivity">
<ImageView
android:id="@+id/barcodeLogo"
android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:adjustViewBounds="true" android:background="#FFFFFF"
android:src="@drawable/privacyfriendlyappslogo" /> android:id="@+id/main_content"
android:fitsSystemWindows="true"
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:weightSum="1"
tools:context=".AboutActivity">
<TextView <LinearLayout
android:id="@+id/appName" android:layout_width="match_parent"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_height="wrap_content" android:layout_weight="0.36">
android:layout_gravity="center_horizontal"
android:gravity="center"
android:layout_marginTop="20dp"
android:text="@string/app_name_long" />
<TextView <ImageView
android:id="@+id/textFieldVersion" android:id="@+id/barcodeLogo"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:adjustViewBounds="true"
android:layout_marginTop="10dp" android:src="@drawable/privacyfriendlyappslogo" />
android:text="@string/version_number" />
<TextView </LinearLayout>
android:id="@+id/textFieldAuthor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:text="@string/about_author" />
<TextView <TextView
android:id="@+id/textFieldAuthorNames" android:id="@+id/appName"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:gravity="center" android:layout_marginTop="15dp"
android:layout_marginTop="0dp" android:text="@string/app_name_long" />
android:text="@string/about_author_names" />
<TextView <TextView
android:id="@+id/textFieldAffiliation" android:id="@+id/textFieldVersion"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginTop="30dp" android:layout_marginTop="5dp"
android:text="@string/about_affiliation" android:text="@string/version_number" />
android:textStyle="bold" />
<ImageView <TextView
android:id="@+id/imageView1" android:id="@+id/textFieldAuthor"
android:layout_width="fill_parent" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:adjustViewBounds="true" android:layout_gravity="center_horizontal"
android:src="@drawable/secuso_logo_blau_blau" /> android:layout_marginTop="5dp"
android:text="@string/about_author" />
<TextView <TextView
android:layout_width="wrap_content" android:id="@+id/authornames"
android:layout_height="wrap_content" android:layout_marginTop="5dp"
android:layout_marginTop="10dp" android:layout_width="wrap_content"
android:layout_gravity="center_horizontal" android:layout_height="wrap_content"
android:gravity="center" android:layout_gravity="center_horizontal"
android:text="@string/privacy_friendly"/> android:text="@string/about_author_names"/>
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp" android:text="@string/about_author_contributors"/>
android:gravity="center"
android:text="@string/more_info"/>
<TextView <TextView
android:id="@+id/linkID" android:id="@+id/textFieldAffiliation"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/url" android:layout_gravity="center_horizontal"
android:textStyle="bold" android:layout_marginTop="15dp"
android:layout_gravity="center_horizontal" android:text="@string/about_affiliation"
android:autoLink="web"/> android:textStyle="bold" />
<TextView <ImageView
android:id="@+id/qqWing" android:id="@+id/imageView1"
android:layout_marginTop="20dp" android:layout_width="wrap_content"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_height="wrap_content" android:adjustViewBounds="true"
android:gravity="center" android:src="@drawable/secuso_logo_blau_blau" />
android:text="@string/about_qqwing"
android:layout_gravity="center_horizontal"/>
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/about_qqwingLink" android:layout_gravity="center_horizontal"
android:layout_gravity="center_horizontal" android:layout_marginTop="10dp"
android:autoLink="web"/> android:gravity="center_horizontal"
android:text="@string/privacy_friendly" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="15dp"
android:gravity="center"
android:text="@string/more_info" />
<TextView
android:id="@+id/secusoWebsite"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/url"
android:textStyle="bold" />
<TextView
android:id="@+id/githubURL"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:gravity="center_horizontal"
android:text="@string/github"
android:textStyle="bold" />
<TextView
android:id="@+id/qqWing"
android:layout_marginTop="20dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/about_qqwing"
android:layout_gravity="center_horizontal"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/about_qqwingLink"
android:layout_gravity="center_horizontal"
android:autoLink="web"/>
</LinearLayout>
</LinearLayout>
</ScrollView> </ScrollView>

View file

@ -1,4 +1,12 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<android.support.design.widget.CoordinatorLayout <android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
@ -7,7 +15,6 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:fitsSystemWindows="true" android:fitsSystemWindows="true"
android:id="@+id/game_coordinate_layout"
tools:context="tu_darmstadt.sudoku.activity.GameActivity"> tools:context="tu_darmstadt.sudoku.activity.GameActivity">
<android.support.design.widget.AppBarLayout <android.support.design.widget.AppBarLayout
@ -68,26 +75,18 @@
</android.support.design.widget.AppBarLayout> </android.support.design.widget.AppBarLayout>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" <include layout="@layout/content_game_view" />
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="?attr/actionBarSize"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<include layout="@layout/content_game_view" />
<android.support.design.widget.NavigationView android:id="@+id/nav_view"
android:layout_width="200dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="@color/white"
app:menu="@menu/menu_drawer" />
<!--app:headerLayout="@layout/nav_header_game_view"-->
</android.support.v4.widget.DrawerLayout>
</android.support.design.widget.CoordinatorLayout> </android.support.design.widget.CoordinatorLayout>
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:fitsSystemWindows="true"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="@color/white"
app:menu="@menu/menu_drawer"
app:headerLayout="@layout/nav_header" />
</android.support.v4.widget.DrawerLayout>

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:id="@+id/main_content"
android:layout_height="match_parent">
<fragment android:name="org.secuso.privacyfriendlysudoku.ui.HelpActivity$HelpFragment"
android:id="@+id/help_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>

View file

@ -1,14 +1,11 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" xmlns:tools="http://schemas.android.com/tools"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:layout_width="match_parent"
android:paddingRight="@dimen/activity_horizontal_margin" android:layout_height="match_parent">
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="tu_darmstadt.sudoku.ui.LoadGameActivity">
<ListView <ListView
android:id="@+id/load_game_list" android:id="@+id/main_content"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">

View file

@ -1,7 +1,14 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout <android.support.v4.widget.DrawerLayout android:id="@+id/drawer_layout_main"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start"
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto">
<android.support.design.widget.CoordinatorLayout
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:fitsSystemWindows="true" android:fitsSystemWindows="true"
tools:context="tu_darmstadt.sudoku.ui.MainActivity" tools:context="tu_darmstadt.sudoku.ui.MainActivity"
@ -26,20 +33,15 @@
</android.support.design.widget.AppBarLayout> </android.support.design.widget.AppBarLayout>
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout_main"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:layout_marginTop="?attr/actionBarSize"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<LinearLayout <LinearLayout
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_width="match_parent" android:layout_width="match_parent"
android:orientation="vertical" android:orientation="vertical"
android:weightSum="10" android:weightSum="10"
style="?android:buttonBarStyle"> android:id="@+id/main_content"
style="?android:buttonBarStyle"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<RelativeLayout <RelativeLayout
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="0dp" android:layout_height="0dp"
@ -222,14 +224,16 @@
</LinearLayout> </LinearLayout>
</android.support.design.widget.CoordinatorLayout>
<android.support.design.widget.NavigationView <android.support.design.widget.NavigationView
android:id="@+id/nav_view_main" android:id="@+id/nav_view_main"
android:layout_width="200dp" android:layout_width="wrap_content"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_gravity="start" android:layout_gravity="start"
android:fitsSystemWindows="true"
android:background="@color/white" android:background="@color/white"
app:menu="@menu/menu_drawer_main"/> app:menu="@menu/menu_drawer_main"
app:headerLayout="@layout/nav_header" />
</android.support.v4.widget.DrawerLayout> </android.support.v4.widget.DrawerLayout>
</android.support.design.widget.CoordinatorLayout>

View file

@ -2,9 +2,9 @@
<android.support.design.widget.CoordinatorLayout <android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/main_content" xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_height="match_parent" android:layout_width="match_parent" android:layout_height="match_parent"
android:fitsSystemWindows="true" tools:context="tu_darmstadt.sudoku.ui.StatsActivity"> android:fitsSystemWindows="true">
<android.support.design.widget.AppBarLayout android:id="@+id/appbar" <android.support.design.widget.AppBarLayout android:id="@+id/appbar"
android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_width="match_parent" android:layout_height="wrap_content"
@ -22,7 +22,7 @@
</android.support.design.widget.AppBarLayout> </android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager android:id="@+id/container" <android.support.v4.view.ViewPager android:id="@+id/main_content"
android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_width="fill_parent" android:layout_height="fill_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" /> app:layout_behavior="@string/appbar_scrolling_view_behavior" />

View file

@ -4,12 +4,14 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:id="@+id/main_content"
android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin" android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin"
app:layout_behavior="@string/appbar_scrolling_view_behavior" app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="tu_darmstadt.sudoku.activity.GameActivity"> tools:context="org.secuso.privacyfriendlysudoku.ui.GameActivity">
<org.secuso.privacyfriendlysudoku.ui.view.SudokuFieldLayout <org.secuso.privacyfriendlysudoku.ui.view.SudokuFieldLayout
android:id="@+id/sudokuLayout" android:id="@+id/sudokuLayout"
android:layout_width="match_parent" android:layout_width="match_parent"

View file

@ -3,6 +3,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="16dp" android:padding="16dp"
android:id="@+id/main_content"
android:weightSum="10" android:weightSum="10"
android:orientation="horizontal"> android:orientation="horizontal">

View file

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="@dimen/nav_header_height"
android:background="@drawable/nav_header"
android:gravity="bottom"
android:orientation="vertical"
android:paddingBottom="@dimen/text_margin"
android:paddingLeft="@dimen/text_margin"
android:paddingRight="@dimen/text_margin"
android:paddingTop="@dimen/text_margin"
android:theme="@style/ThemeOverlay.AppCompat.Dark">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_launcher_nopfa"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingStart="@dimen/text_margin"
android:paddingLeft="@dimen/text_margin"
android:text="@string/Sudoku"
android:textColor="@color/colorPrimaryDark"
android:textSize="18sp"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:layout_centerVertical="true"
android:layout_toRightOf="@+id/imageView"
android:layout_toEndOf="@+id/imageView"/>
</RelativeLayout>
</LinearLayout>

View file

@ -1,27 +1,20 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"> <menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_reset" android:icon="@android:drawable/ic_menu_delete"
android:title="@string/menu_reset" />
<group android:id="@+id/group1">
<item android:id="@+id/menu_reset" android:icon="@android:drawable/ic_menu_delete"
android:title="@string/menu_reset" />
</group>
<group android:id="@+id/group4"> <group android:id="@+id/group4">
<item android:id="@+id/nav_newgame" android:icon="@android:drawable/ic_menu_today" <item android:id="@+id/nav_newgame" android:icon="@android:drawable/ic_menu_today"
android:title="@string/menu_main" /> android:title="@string/menu_main" />
</group>
<group android:id="@+id/group2">
<item android:id="@+id/nav_highscore" android:icon="@android:drawable/ic_menu_myplaces" <item android:id="@+id/nav_highscore" android:icon="@android:drawable/ic_menu_myplaces"
android:title="@string/menu_highscore" /> android:title="@string/menu_highscore" />
</group> </group>
<group android:id="@+id/group5"> <group android:id="@+id/group5">
<item android:id="@+id/menu_settings" android:icon="@android:drawable/ic_menu_manage" <item android:id="@+id/menu_settings" android:icon="@android:drawable/ic_menu_manage"
android:title="@string/menu_settings" /> android:title="@string/menu_settings" />
</group>
<group android:id="@+id/group3">
<item android:id="@+id/menu_help" android:icon="@android:drawable/ic_menu_help" <item android:id="@+id/menu_help" android:icon="@android:drawable/ic_menu_help"
android:title="@string/menu_help" /> android:title="@string/menu_help" />
</group>
<group android:id="@+id/group6">
<item android:id="@+id/menu_about" android:icon="@android:drawable/ic_menu_info_details" <item android:id="@+id/menu_about" android:icon="@android:drawable/ic_menu_info_details"
android:title="@string/menu_about" /> android:title="@string/menu_about" />
</group> </group>

View file

@ -1,19 +1,14 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"> <menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:id="@+id/group1"> <item android:id="@+id/nav_highscore_main" android:icon="@android:drawable/ic_menu_myplaces"
<item android:id="@+id/nav_highscore_main" android:icon="@android:drawable/ic_menu_myplaces" android:title="@string/menu_highscore" />
android:title="@string/menu_highscore" />
</group>
<group android:id="@+id/group2"> <group android:id="@+id/group2">
<item android:id="@+id/menu_settings_main" android:icon="@android:drawable/ic_menu_manage" <item android:id="@+id/menu_settings_main" android:icon="@android:drawable/ic_menu_manage"
android:title="@string/menu_settings" /> android:title="@string/menu_settings" />
</group> <item android:id="@+id/menu_help_main" android:icon="@android:drawable/ic_menu_help"
<group android:id="@+id/group3"> android:title="@string/menu_help" />
<item android:id="@+id/menu_help_main" android:icon="@android:drawable/ic_menu_help" <item android:id="@+id/menu_about_main" android:icon="@android:drawable/ic_menu_info_details"
android:title="@string/menu_help" /> android:title="@string/menu_about" />
</group>
<group android:id="@+id/group4">
<item android:id="@+id/menu_about_main" android:icon="@android:drawable/ic_menu_info_details"
android:title="@string/menu_about" />
</group> </group>
</menu> </menu>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View file

@ -13,10 +13,11 @@
<string name="title_activity_settings">Einstellungen</string> <string name="title_activity_settings">Einstellungen</string>
<!-- About Page --> <!-- About Page -->
<string name="privacy_friendly">Diese App gehört zur Gruppe der Privacy Friendly Apps.</string>
<string name="more_info">Mehr Informationen unter:</string>
<string name="about_affiliation">In Zusammenarbeit mit:</string> <string name="about_affiliation">In Zusammenarbeit mit:</string>
<string name="about_author">Autor:</string> <string name="about_author">Autor:</string>
<string name="about_author_contributors">und Mitwirkende.</string>
<string name="privacy_friendly">Diese App gehört zur Gruppe der Privacy Friendly Apps entwickelt von der Technischen Universität Darmstadt. Quelltext lizenziert unter GPLv3. Bilder copyright TU Darmstadt und Google Inc.</string>
<string name="more_info">Weitere Infos unter:</string>
<!-- ###GameDifficulty### --> <!-- ###GameDifficulty### -->
<string name="difficulty_easy">Leicht</string> <string name="difficulty_easy">Leicht</string>

View file

@ -1,4 +1,5 @@
<resources>> <resources>>
<style name="AppTheme.NoActionBar"> <style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item> <item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item> <item name="windowNoTitle">true</item>

View file

@ -0,0 +1,6 @@
<resources>
<!-- Example customization of dimensions originally defined in res/values/dimens.xml
(such as screen margins) for screens with more than 820dp of available width. This
would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
<dimen name="activity_horizontal_margin">64dp</dimen>
</resources>

View file

@ -0,0 +1,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<item name="ic_menu_camera" type="drawable">@android:drawable/ic_menu_camera</item>
<item name="ic_menu_gallery" type="drawable">@android:drawable/ic_menu_gallery</item>
<item name="ic_menu_slideshow" type="drawable">@android:drawable/ic_menu_slideshow</item>
<item name="ic_menu_manage" type="drawable">@android:drawable/ic_menu_manage</item>
<item name="ic_menu_share" type="drawable">@android:drawable/ic_menu_share</item>
<item name="ic_menu_send" type="drawable">@android:drawable/ic_menu_send</item>
</resources>

View file

@ -57,13 +57,15 @@
<!-- ###ABOUT### --> <!-- ###ABOUT### -->
<string name="app_name_long" translatable="false">Privacy Friendly Sudoku</string> <string name="app_name_long" translatable="false">Privacy Friendly Sudoku</string>
<string name="version_number" translatable="false">v1.0</string> <string name="version_number" translatable="false">v2.0</string>
<string name="about_author">Author:</string> <string name="about_author">Author:</string>
<string name="about_author_names" translatable="false">Christopher Beckmann,\nTimm Lippert</string> <string name="about_author_names" translatable="false">Christopher Beckmann, Timm Lippert</string>
<string name="about_affiliation">In affiliation with:</string> <string name="about_author_contributors">and contributors.</string>
<string name="privacy_friendly">This application belongs to the Privacy Friendly Apps.</string> <string name="about_affiliation">In affiliation with</string>
<string name="privacy_friendly">This application belongs to the group of Privacy Friendly Apps developed by Technische Universität Darmstadt. Sourcecode licensed under GPLv3. Images copyright TU Darmstadt and Google Inc.</string>
<string name="more_info">More information can be found on:</string> <string name="more_info">More information can be found on:</string>
<string name="url" translatable="false"><a href="https://www.secuso.informatik.tu-darmstadt.de/en/research/results/">https://www.secuso.org</a></string> <string name="github" translatable="false"><a href="https://github.com/SecUSo/privacy-friendly-sudoku">Github-Repo</a></string>
<string name="url" translatable="false"><a href="https://www.secuso.org/pfa">SECUSO-Website</a></string>
<string name="about_qqwing">This application uses a modified version of QQWing v1.3.4</string> <string name="about_qqwing">This application uses a modified version of QQWing v1.3.4</string>
<string name="about_qqwingLink" translatable="false"><a href="http://qqwing.com/download.html">http://qqwing.com/</a></string> <string name="about_qqwingLink" translatable="false"><a href="http://qqwing.com/download.html">http://qqwing.com/</a></string>
@ -87,7 +89,7 @@
<string name="reset_confirmation_confirm">Reset</string> <string name="reset_confirmation_confirm">Reset</string>
<!-- ### Welcome Dialog ### --> <!-- ### Welcome Dialog ### -->
<string name="welcome">Welcome to Privacy Friendly Sudoku. </string> <string name="welcome">Welcome to Privacy Friendly Sudoku.</string>
<string name="field_select_description">Swipe or press the arrow buttons on the left and right to change the game mode.</string> <string name="field_select_description">Swipe or press the arrow buttons on the left and right to change the game mode.</string>
<string name="field_select_description_headline">Game mode:</string> <string name="field_select_description_headline">Game mode:</string>
<string name="difficulty_description">Press or swipe the stars to change the difficulty.</string> <string name="difficulty_description">Press or swipe the stars to change the difficulty.</string>
@ -136,4 +138,6 @@
<string name="help_privacyInfo">Privacy Info</string> <string name="help_privacyInfo">Privacy Info</string>
<string name="help_permissions">Permissions</string> <string name="help_permissions">Permissions</string>
<string name="help_permissions_summary">Privacy Friendly Sudoku does not use any permissions.</string> <string name="help_permissions_summary">Privacy Friendly Sudoku does not use any permissions.</string>
<string name="action_settings">Settings</string>
</resources> </resources>

View file

@ -12,7 +12,9 @@
<item name="windowActionBar">false</item> <item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item> <item name="windowNoTitle">true</item>
</style> </style>
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" /> <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" /> <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
<style name="WinDialog"> <style name="WinDialog">
@ -55,12 +57,9 @@
</style> </style>
<!-- <style name="FontStyle"> <!-- <style name="FontStyle">
<item name="android:fontFamily"></item> <item name="android:fontFamily"></item>
</style> --> </style> -->
</resources> </resources>

View file

@ -3,10 +3,14 @@
<PreferenceCategory android:title="@string/help_keyboard"> <PreferenceCategory android:title="@string/help_keyboard">
<Preference android:title="" <Preference android:title=""
android:id="@+id/help1"
android:key="help1"
android:selectable="false" android:selectable="false"
android:icon="@drawable/numfirst" android:icon="@drawable/numfirst"
android:summary="@string/help_keyhighlighted_summary"/> android:summary="@string/help_keyhighlighted_summary"/>
<Preference android:title="" <Preference android:title=""
android:id="@+id/help2"
android:key="help2"
android:selectable="false" android:selectable="false"
android:icon="@drawable/numfull" android:icon="@drawable/numfull"
android:summary="@string/help_keyhighlighted_yellow_summary"/> android:summary="@string/help_keyhighlighted_yellow_summary"/>

View file

@ -5,7 +5,7 @@ buildscript {
jcenter() jcenter()
} }
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:1.5.0' classpath 'com.android.tools.build:gradle:2.2.0'
// NOTE: Do not place your application dependencies here; they belong // NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files // in the individual module build.gradle files

View file

@ -1,6 +1,6 @@
#Fri Nov 06 14:34:10 CET 2015 #Wed Oct 05 22:51:31 CEST 2016
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.4-all.zip distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip