diff --git a/app/src/main/java/de/hwr_berlin/it14/postgrachelor/MainActivity.java b/app/src/main/java/de/hwr_berlin/it14/postgrachelor/MainActivity.java index a9e9eca..2cb7ec7 100644 --- a/app/src/main/java/de/hwr_berlin/it14/postgrachelor/MainActivity.java +++ b/app/src/main/java/de/hwr_berlin/it14/postgrachelor/MainActivity.java @@ -3,9 +3,7 @@ package de.hwr_berlin.it14.postgrachelor; import android.app.FragmentManager; import android.app.FragmentTransaction; import android.os.Bundle; -import android.support.annotation.NonNull; import android.util.Log; -import android.support.design.widget.NavigationView; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.Menu; @@ -16,10 +14,14 @@ import de.hwr_berlin.it14.postgrachelor.Services.GameService; import de.hwr_berlin.it14.postgrachelor.Services.HighscoreService; import de.hwr_berlin.it14.postgrachelor.Services.LoginService; -public class MainActivity extends AppCompatActivity - implements NavigationView.OnNavigationItemSelectedListener { - +public class MainActivity extends AppCompatActivity { + private static class FragmentState { + private static final int LOGIN = 0x1; + private static final int MAIN = 0x2; + private static final int QUESTION_END = 0x4; + private static final int QUESTION = 0x8; + } private static final String NAME = "MainActivity"; private FragmentManager myFragmentManager; @@ -56,45 +58,30 @@ public class MainActivity extends AppCompatActivity @Override public void onLoginEvent(String name, String uid) { Log.d("Activity fragment", "onLogin - name: " + name + " - uid: " + uid); - /*NavigationView nav_view = (NavigationView) that.findViewById(R.id.nav_view); - TextView user_uid = (TextView) nav_view.getHeaderView(0).findViewById(R.id.user_uid); - TextView user_name = (TextView) nav_view.getHeaderView(0).findViewById(R.id.user_name); - user_name.setText(name); - user_uid.setText(uid);*/ - that.onNavigationItemSelectedID(R.id.nav_gallery); + that.selectFragment(FragmentState.MAIN); } @Override public void onLogoutEvent(int status, String message) { Log.d("Activity fragment", "onLogout - name: " + status + " - uid: " + message); - that.onNavigationItemSelectedID(R.id.nav_camera); + that.selectFragment(FragmentState.LOGIN); } }); GameService.addGameStateChangeEventListener(NAME, new GameService.OnGameStateChangeEventListener() { @Override public void onGameStateChangeEvent(int previous, int state) { Log.d("Activity fragment", "onGameStateChange - previous: " + previous + " - state: " + state); - if (state == GameService.States.RUNNING || state == GameService.States.ONHOLD_LOADING || state == GameService.States.ONHOLD_RESULT) - that.onNavigationItemSelectedID(R.id.nav_manage); - else if (previous == GameService.States.ONHOLD_RESULT && state == GameService.States.END) { - that.onNavigationItemSelectedID(R.id.nav_slideshow); + if (state == GameService.States.RUNNING || state == GameService.States.ON_HOLD_LOADING || state == GameService.States.ON_HOLD_RESULT) + that.selectFragment(FragmentState.QUESTION); + else if (previous == GameService.States.ON_HOLD_RESULT && state == GameService.States.END) { + that.selectFragment(FragmentState.QUESTION_END); } else if (state == GameService.States.PAUSED || state == GameService.States.END) { - that.onNavigationItemSelectedID(R.id.nav_gallery); + that.selectFragment(FragmentState.MAIN); } } }); } - @Override - public void onBackPressed() { - /*DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); - if (drawer.isDrawerOpen(GravityCompat.START)) { - drawer.closeDrawer(GravityCompat.START); - } else { - super.onBackPressed(); - }*/ - } - @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. @@ -117,25 +104,21 @@ public class MainActivity extends AppCompatActivity return super.onOptionsItemSelected(item); } - @Override - public boolean onNavigationItemSelected(@NonNull MenuItem item) { - return this.onNavigationItemSelectedID(item.getItemId()); - } - - private boolean onNavigationItemSelectedID(int item) { + private void selectFragment(int item) { // Handle navigation view item clicks here. try { boolean isLoggedIn = LoginService.isLoggedIn(); - if (!isLoggedIn && (item != R.id.nav_camera)) { - return false; - } else if (isLoggedIn && (item == R.id.nav_camera)) { - return false; + if (!isLoggedIn && (item != FragmentState.LOGIN)) { + return; + } else if (isLoggedIn && (item == FragmentState.LOGIN)) { + return; } } catch (NotInstantiatedException e) { e.printStackTrace(); + return; } - if (item == R.id.nav_camera) { + if (item == FragmentState.LOGIN) { // Handle the camera action LoginFragment fragment = (LoginFragment) myFragmentManager.findFragmentByTag(LoginFragment.NAME); if (fragment == null) { @@ -143,21 +126,21 @@ public class MainActivity extends AppCompatActivity fragmentTransaction.replace(R.id.relative_content, loginFragment, LoginFragment.NAME); fragmentTransaction.commit(); } - } else if (item == R.id.nav_gallery) { + } else if (item == FragmentState.MAIN) { MainFragment fragment = (MainFragment) myFragmentManager.findFragmentByTag(MainFragment.NAME); if (fragment == null) { FragmentTransaction fragmentTransaction = myFragmentManager.beginTransaction(); fragmentTransaction.replace(R.id.relative_content, mainFragment, MainFragment.NAME); fragmentTransaction.commit(); } - } else if (item == R.id.nav_slideshow) { + } else if (item == FragmentState.QUESTION_END) { QuestionEndFragment fragment = (QuestionEndFragment) myFragmentManager.findFragmentByTag(QuestionEndFragment.NAME); if (fragment == null) { FragmentTransaction fragmentTransaction = myFragmentManager.beginTransaction(); fragmentTransaction.replace(R.id.relative_content, questionEndFragment, QuestionEndFragment.NAME); fragmentTransaction.commit(); } - } else if (item == R.id.nav_manage) { + } else if (item == FragmentState.QUESTION) { QuestionFragment fragment = (QuestionFragment) myFragmentManager.findFragmentByTag(QuestionFragment.NAME); if (fragment == null) { FragmentTransaction fragmentTransaction = myFragmentManager.beginTransaction(); @@ -165,9 +148,5 @@ public class MainActivity extends AppCompatActivity fragmentTransaction.commit(); } } - - //DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); - //drawer.closeDrawer(GravityCompat.START); - return true; } } diff --git a/app/src/main/java/de/hwr_berlin/it14/postgrachelor/MainFragment.java b/app/src/main/java/de/hwr_berlin/it14/postgrachelor/MainFragment.java index f017a00..9fa3666 100644 --- a/app/src/main/java/de/hwr_berlin/it14/postgrachelor/MainFragment.java +++ b/app/src/main/java/de/hwr_berlin/it14/postgrachelor/MainFragment.java @@ -100,7 +100,7 @@ public class MainFragment extends Fragment { while(iterator.hasNext()) { HighscoresCategories category = iterator.next(); - categoryView = inflater.inflate(R.layout.fragment_main_category, null); + categoryView = inflater.inflate(R.layout.fragment_main_category, gridLayoutCategories, false); textView = (TextView) categoryView.findViewById(R.id.textViewCategory); textView.setText(category.getName()); diff --git a/app/src/main/java/de/hwr_berlin/it14/postgrachelor/QuestionFragment.java b/app/src/main/java/de/hwr_berlin/it14/postgrachelor/QuestionFragment.java index 4bf5b75..29d5f5c 100644 --- a/app/src/main/java/de/hwr_berlin/it14/postgrachelor/QuestionFragment.java +++ b/app/src/main/java/de/hwr_berlin/it14/postgrachelor/QuestionFragment.java @@ -73,7 +73,7 @@ public class QuestionFragment extends Fragment { @Override public void onClick(View v) { try { - if (GameService.getState() != GameService.States.ONHOLD_RESULT) + if (GameService.getState() != GameService.States.ON_HOLD_RESULT) GameService.answer((int) v.getTag()); } catch (NotInstantiatedException | NotLoggedInException | NoCurrentQuestionException e) { e.printStackTrace(); @@ -146,7 +146,8 @@ public class QuestionFragment extends Fragment { GameService.addGameStateChangeEventListener(NAME, new GameService.OnGameStateChangeEventListener() { @Override public void onGameStateChangeEvent(int previous, int state) { - if (previous == GameService.States.END && state == GameService.States.RUNNING) + Log.d(NAME, Conversion.intToStr(previous, 5)+Conversion.intToStr(state,5)); + if (previous != GameService.States.ON_HOLD_RESULT && state == GameService.States.RUNNING) totalView.setText(R.string._0); } }); diff --git a/app/src/main/java/de/hwr_berlin/it14/postgrachelor/Services/GameService.java b/app/src/main/java/de/hwr_berlin/it14/postgrachelor/Services/GameService.java index 9a5a84f..a050694 100644 --- a/app/src/main/java/de/hwr_berlin/it14/postgrachelor/Services/GameService.java +++ b/app/src/main/java/de/hwr_berlin/it14/postgrachelor/Services/GameService.java @@ -19,16 +19,18 @@ import de.hwr_berlin.it14.postgrachelor.Types.GameScores; import de.hwr_berlin.it14.postgrachelor.Types.Question; import de.hwr_berlin.it14.postgrachelor.Types.QuestionResult; import de.hwr_berlin.it14.postgrachelor.Types.Timings; +import de.hwr_berlin.it14.postgrachelor.Utils.Conversion; import de.hwr_berlin.it14.postgrachelor.Utils.JsonRequestPG; /** * Created by Sebastian on 27.03.2017. - * Game service controls gameflow + * Game service controls game flow */ public class GameService { private static final int GAME_TICK_INTERVAL = 100; private static final int NEXT_QUESTION_DELAY = 1250; + private static final int QUESTION_COUNT = 10; private static long startTime; @@ -40,8 +42,8 @@ public class GameService { private States() {} public static final int UNINITIALIZED = 1; public static final int END = 2; - public static final int ONHOLD_LOADING = 4; - public static final int ONHOLD_RESULT = 8; + public static final int ON_HOLD_LOADING = 4; + public static final int ON_HOLD_RESULT = 8; public static final int RUNNING = 16; public static final int PAUSED = 32; } @@ -112,6 +114,7 @@ public class GameService { } } + @SuppressWarnings("SameParameterValue") public static void addNextQuestionEventListener(String key, OnNextQuestionEventListener onNextQuestionEventListener) { Log.d("GameService Fragment", "addNextQuestionEventListener"); nextQuestionEventListeners.put(key, onNextQuestionEventListener); @@ -125,6 +128,7 @@ public class GameService { } } + @SuppressWarnings("SameParameterValue") public static void addResultEventListener(String key, OnResultEventListener onResultEventListener) { resultEventListeners.put(key, onResultEventListener); if (GameService.initialized) @@ -149,6 +153,7 @@ public class GameService { } } + @SuppressWarnings("SameParameterValue") public static void addTickEventListener(String key, OnTickEventListener onTickEventListener) { gameTickEventListeners.put(key, onTickEventListener); if (GameService.initialized) @@ -373,7 +378,7 @@ public class GameService { final int state = GameService.getState(); long time; - if (state == States.ONHOLD_LOADING) { + if (state == States.ON_HOLD_LOADING) { long end = GameService.getEndTime(); long start = GameService.getStartTime(); time = end - start; @@ -382,7 +387,7 @@ public class GameService { long end = System.currentTimeMillis(); long start = GameService.getStartTime(); GameService.setEndTime(end); - GameService.setState(States.ONHOLD_LOADING); + GameService.setState(States.ON_HOLD_LOADING); time = end - start; GameService.setAnswer(id); } else { @@ -410,7 +415,7 @@ public class GameService { data_result.optInt("correctPos", 0), data_result.optInt("total", 0) ); - GameService.setStateSave(States.ONHOLD_RESULT); + GameService.setStateSave(States.ON_HOLD_RESULT); GameService.setResultSave(result); new android.os.Handler().postDelayed(new Runnable() { @@ -457,6 +462,7 @@ public class GameService { else throw new NotLoggedInException(); params.put("uid", uid); + params.put("length", Conversion.intToStr(GameService.QUESTION_COUNT)); JsonRequestPG requester = new JsonRequestPG("start.php", params, GameService.activity, new JsonRequestPG.AsyncResponse() { @Override public void processFinish(JSONObject data) { diff --git a/app/src/main/java/de/hwr_berlin/it14/postgrachelor/Utils/Conversion.java b/app/src/main/java/de/hwr_berlin/it14/postgrachelor/Utils/Conversion.java index b0a5586..5a0e8e9 100644 --- a/app/src/main/java/de/hwr_berlin/it14/postgrachelor/Utils/Conversion.java +++ b/app/src/main/java/de/hwr_berlin/it14/postgrachelor/Utils/Conversion.java @@ -26,10 +26,11 @@ public class Conversion { return String.format(Locale.getDefault(), "%1d", i); } - private static String intToStr(int i, int padding) { + public static String intToStr(int i, int padding) { return String.format(Locale.getDefault(), "%"+Conversion.intToStr(padding)+"s", i); } + @SuppressWarnings("SameParameterValue") private static String intToStr(int i, int padding, char padChar) { return Conversion.intToStr(i, padding).replace(' ', padChar); } diff --git a/app/src/main/java/de/hwr_berlin/it14/postgrachelor/Utils/JsonRequest.java b/app/src/main/java/de/hwr_berlin/it14/postgrachelor/Utils/JsonRequest.java index 569570b..9dcc983 100644 --- a/app/src/main/java/de/hwr_berlin/it14/postgrachelor/Utils/JsonRequest.java +++ b/app/src/main/java/de/hwr_berlin/it14/postgrachelor/Utils/JsonRequest.java @@ -7,7 +7,6 @@ import android.os.AsyncTask; import android.util.Log; import android.widget.Toast; -import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; @@ -19,15 +18,15 @@ import java.net.MalformedURLException; import java.net.URL; import java.util.HashMap; import java.util.Map; -import java.util.Objects; import java.util.Scanner; -import java.util.StringTokenizer; + +import de.hwr_berlin.it14.postgrachelor.R; import static android.content.ContentValues.TAG; abstract class JsonRequest extends AsyncTask { private final String connectionURL; - protected final String path; + private final String path; private final HashMap params; final Activity activity; private ProgressDialog pDialog; @@ -40,6 +39,7 @@ abstract class JsonRequest extends AsyncTask { Log.d("fragment, JSONRequest", connectionURL+path); } + @SuppressWarnings("SameReturnValue") protected abstract String getConnectionURL(); @Override @@ -48,7 +48,7 @@ abstract class JsonRequest extends AsyncTask { Log.d("fragment, JSONRequest", "onPre1"); // Showing progress dialog pDialog = new ProgressDialog(this.activity); - pDialog.setMessage("Please wait..."); + pDialog.setMessage(this.activity.getString(R.string.please_wait)); pDialog.setCancelable(false); pDialog.show(); } diff --git a/app/src/main/java/de/hwr_berlin/it14/postgrachelor/Utils/JsonRequestPG.java b/app/src/main/java/de/hwr_berlin/it14/postgrachelor/Utils/JsonRequestPG.java index e339b91..ad47385 100644 --- a/app/src/main/java/de/hwr_berlin/it14/postgrachelor/Utils/JsonRequestPG.java +++ b/app/src/main/java/de/hwr_berlin/it14/postgrachelor/Utils/JsonRequestPG.java @@ -2,8 +2,6 @@ package de.hwr_berlin.it14.postgrachelor.Utils; import android.app.Activity; import android.app.AlertDialog; -import android.app.Dialog; -import android.app.ProgressDialog; import android.content.DialogInterface; import org.json.JSONObject; diff --git a/app/src/main/res/layout/fragment_main_category.xml b/app/src/main/res/layout/fragment_main_category.xml index 7090cc3..c114e6a 100644 --- a/app/src/main/res/layout/fragment_main_category.xml +++ b/app/src/main/res/layout/fragment_main_category.xml @@ -3,17 +3,17 @@ xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" tools:showIn="@layout/fragment_main" + android:background="#FF33B5E6" android:layout_width="0dp" android:layout_height="0dp" android:gravity="start" - android:background="#FF33B5E6" android:padding="5dp" - > + tools:ignore="Overdraw"> + android:text="@string/category" /> + android:text="@string/app_name" /> - - - - - - - - - diff --git a/app/src/main/res/menu/activity_main_drawer.xml b/app/src/main/res/menu/activity_main_drawer.xml deleted file mode 100644 index 48486f9..0000000 --- a/app/src/main/res/menu/activity_main_drawer.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml new file mode 100644 index 0000000..29dc17e --- /dev/null +++ b/app/src/main/res/values-de/strings.xml @@ -0,0 +1,22 @@ + + + + Einstellungen + + Benutzername eingeben… + + Willkommen zu unserer sinnlosen App! Beweise, dass du schlauer bist als wir und beantworte unsere Fragen! + Registrieren + Test starten! + Test beendet! + Zurück + android.studio@android.com + Highscores konnten nicht geladen werden! + Test wiederaufnehmen! + Keine Punkte + Keine Zeit + Kategorie: %1$s + Keine Fragen verfügbar! + Spiele ein Spiel! + Bitte warten… + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8ad9808..bfb5f41 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,31 +1,27 @@ + - PostGrachelor - - Open navigation drawer - Close navigation drawer + PostGrachelor Settings Enter User Name… - Hello blank fragment - Hello login fragment Welcome to our stupid app. Prove that you are smarter than we are and answer our questions! Register Start Test! Test completed! - 1337 + 1337 Return - Launcher Icon - Android Studio + Launcher Icon android.studio@android.com Highscores could not be loaded! Resume Test! - 02:15 + 02:15 No Score No Time Category: %1$s No question available! - 0 + 0 Play a Game! + Please wait…