Reached Clean State, NO FUNCTIONALITY ADDED

Only applied some checkstyle and reformated code.
Also modified some warnings
This commit is contained in:
Alexander Doerflinger
2017-08-17 11:07:25 +02:00
parent 2ffb854927
commit a9fa61bac4
19 changed files with 379 additions and 284 deletions

2
.idea/misc.xml generated
View File

@@ -56,7 +56,7 @@
<ConfirmationsSetting value="0" id="Add" /> <ConfirmationsSetting value="0" id="Add" />
<ConfirmationsSetting value="0" id="Remove" /> <ConfirmationsSetting value="0" id="Remove" />
</component> </component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK"> <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" /> <output url="file://$PROJECT_DIR$/build/classes" />
</component> </component>
<component name="ProjectType"> <component name="ProjectType">

View File

@@ -7,8 +7,8 @@ android {
applicationId "com.de.aldo_apps.aldo.mariokartcircuitselector" applicationId "com.de.aldo_apps.aldo.mariokartcircuitselector"
minSdkVersion 16 minSdkVersion 16
targetSdkVersion 25 targetSdkVersion 25
versionCode 7 versionCode 8
versionName "0.1.7" versionName "0.1.8"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
} }
buildTypes { buildTypes {
@@ -27,7 +27,7 @@ dependencies {
compile 'com.android.support:appcompat-v7:25.3.1' compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support.constraint:constraint-layout:1.0.2' compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.afollestad.material-dialogs:core:0.9.4.3' compile 'com.afollestad.material-dialogs:core:0.9.4.3'
compile 'com.readystatesoftware.sqliteasset:sqliteassethelper:+' compile 'com.readystatesoftware.sqliteasset:sqliteassethelper:2.0.1'
compile 'devlight.io:navigationtabbar:1.2.5' compile 'devlight.io:navigationtabbar:1.2.5'
testCompile 'junit:junit:4.12' testCompile 'junit:junit:4.12'
compile 'com.android.support:design:25.3.1' compile 'com.android.support:design:25.3.1'

View File

@@ -9,7 +9,7 @@
android:roundIcon="@mipmap/ic_launcher_round" android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true" android:supportsRtl="true"
android:theme="@style/AppTheme"> android:theme="@style/AppTheme">
<activity android:name=".GameSelection"> <activity android:name=".activities.GameSelection">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />

View File

@@ -5,26 +5,38 @@ import android.content.ContentValues;
import android.content.UriMatcher; import android.content.UriMatcher;
import android.database.Cursor; import android.database.Cursor;
import android.net.Uri; import android.net.Uri;
import android.support.annotation.NonNull;
import android.util.Log; import android.util.Log;
import com.de.aldo_apps.aldo.mariokartcircuitselector.Constants;
import com.de.aldo_apps.aldo.mariokartcircuitselector.DatabaseHandler;
/** /**
* Created by aldo7224 on 16.08.17. * The ContentProvider which retrieves the Accessory Data.
*
* @author aldo7224
* @version 0.1
* @since 17.08.2017
*/ */
public class AccessoryContentProvider extends ContentProvider { public class AccessoryContentProvider extends ContentProvider {
/**
* Tag for debugging output.
*/
private static final String TAG = "AccessoryProvider"; private static final String TAG = "AccessoryProvider";
/**
* The Provider Name to find the correct Provider and register it in the Android Lifecycle.
*/
public static final String PROVIDER_NAME public static final String PROVIDER_NAME
= "com.de.aldo_apps.aldo.mariokartcircuitselector"; = "com.de.aldo_apps.aldo.mariokartcircuitselector";
/** /**
* A uri to do operations on cust_master table. A content provider is identified by its uri * A uri to do operations on. A content provider is identified by its uri
*/ */
public static final Uri CONTENT_URI = Uri.parse("content://" + PROVIDER_NAME + "/accessories"); public static final Uri CONTENT_URI = Uri.parse("content://" + PROVIDER_NAME + "/accessories");
/**
* UriMatcher to check which callback needs to be handled.
* TODO: Check whether this is really needed.
*/
private static final UriMatcher uriMatcher; private static final UriMatcher uriMatcher;
static { static {
@@ -52,7 +64,7 @@ public class AccessoryContentProvider extends ContentProvider {
} }
@Override @Override
public String getType(final Uri uri) { public String getType(@NonNull final Uri uri) {
return null; return null;
} }
@@ -60,7 +72,7 @@ public class AccessoryContentProvider extends ContentProvider {
* A callback method which is by the default content uri * A callback method which is by the default content uri
*/ */
@Override @Override
public Cursor query(final Uri uri, public Cursor query(@NonNull final Uri uri,
final String[] projection, final String[] projection,
final String selection, final String selection,
final String[] selectionArgs, final String[] selectionArgs,
@@ -77,7 +89,7 @@ public class AccessoryContentProvider extends ContentProvider {
Log.d(TAG, "query: Getting all Karts."); Log.d(TAG, "query: Getting all Karts.");
return mHandler.getAllKarts(Constants.PROJECTION_KART, null, null); return mHandler.getAllKarts(Constants.PROJECTION_KART, null, null);
case Constants.ACCESSORY_LOADER_ID: case Constants.ACCESSORY_LOADER_ID:
Log.d(TAG, "query: Getting all Acessories."); Log.d(TAG, "query: Getting all Accessories.");
return mHandler.getAllAccessories(Constants.PROJECTION_ACCESSORY, null, null); return mHandler.getAllAccessories(Constants.PROJECTION_ACCESSORY, null, null);
case Constants.TRACK_LOADER_ID: case Constants.TRACK_LOADER_ID:
Log.d(TAG, "query: Getting all Tracks."); Log.d(TAG, "query: Getting all Tracks.");
@@ -92,21 +104,19 @@ public class AccessoryContentProvider extends ContentProvider {
} }
@Override @Override
public int delete(final Uri uri, final String selection, final String[] selectionArgs) { public int delete(@NonNull final Uri uri, final String selection, final String[] selectionArgs) {
// TODO Auto-generated method stub
return 0; return 0;
} }
@Override @Override
public Uri insert(final Uri uri, final ContentValues values) { public Uri insert(@NonNull final Uri uri, final ContentValues values) {
// TODO Auto-generated method stub
return null; return null;
} }
@Override @Override
public int update(final Uri uri, final ContentValues values, final String selection, public int update(@NonNull final Uri uri, final ContentValues values, final String selection,
final String[] selectionArgs) { final String[] selectionArgs) {
// TODO Auto-generated method stub // TODO Add update method here?
return 0; return 0;
} }
} }

View File

@@ -5,23 +5,38 @@ import android.content.ContentValues;
import android.content.UriMatcher; import android.content.UriMatcher;
import android.database.Cursor; import android.database.Cursor;
import android.net.Uri; import android.net.Uri;
import android.support.annotation.NonNull;
import android.util.Log; import android.util.Log;
/** /**
* Created by aldo7224 on 16.08.17. * The ContentProvider which retrieves the Character Data.
*
* @author aldo7224
* @version 0.1
* @since 17.08.2017
*/ */
public class CharacterContentProvider extends ContentProvider { public class CharacterContentProvider extends ContentProvider {
/**
* Tag for debugging output.
*/
private static final String TAG = "CharacterProvider"; private static final String TAG = "CharacterProvider";
/**
* The Provider Name to find the correct Provider and register it in the Android Lifecycle.
*/
public static final String PROVIDER_NAME public static final String PROVIDER_NAME
= "com.de.aldo_apps.aldo.mariokartcircuitselector"; = "com.de.aldo_apps.aldo.mariokartcircuitselector";
/** /**
* A uri to do operations on cust_master table. A content provider is identified by its uri * A uri to do operations on. A content provider is identified by its uri
*/ */
public static final Uri CONTENT_URI = Uri.parse("content://" + PROVIDER_NAME + "/characters"); public static final Uri CONTENT_URI = Uri.parse("content://" + PROVIDER_NAME + "/characters");
/**
* UriMatcher to check which callback needs to be handled.
* TODO: Check whether this is really needed.
*/
private static final UriMatcher uriMatcher; private static final UriMatcher uriMatcher;
static { static {
@@ -48,7 +63,7 @@ public class CharacterContentProvider extends ContentProvider {
} }
@Override @Override
public String getType(final Uri uri) { public String getType(@NonNull final Uri uri) {
return null; return null;
} }
@@ -56,7 +71,7 @@ public class CharacterContentProvider extends ContentProvider {
* A callback method which is by the default content uri * A callback method which is by the default content uri
*/ */
@Override @Override
public Cursor query(final Uri uri, public Cursor query(@NonNull final Uri uri,
final String[] projection, final String[] projection,
final String selection, final String selection,
final String[] selectionArgs, final String[] selectionArgs,
@@ -88,21 +103,19 @@ public class CharacterContentProvider extends ContentProvider {
} }
@Override @Override
public int delete(final Uri uri, final String selection, final String[] selectionArgs) { public int delete(@NonNull final Uri uri, final String selection, final String[] selectionArgs) {
// TODO Auto-generated method stub
return 0; return 0;
} }
@Override @Override
public Uri insert(final Uri uri, final ContentValues values) { public Uri insert(@NonNull final Uri uri, final ContentValues values) {
// TODO Auto-generated method stub
return null; return null;
} }
@Override @Override
public int update(final Uri uri, final ContentValues values, final String selection, public int update(@NonNull final Uri uri, final ContentValues values, final String selection,
final String[] selectionArgs) { final String[] selectionArgs) {
// TODO Auto-generated method stub // TODO Add update method here?
return 0; return 0;
} }
} }

View File

@@ -5,15 +5,15 @@ package com.de.aldo_apps.aldo.mariokartcircuitselector;
* centralized class. * centralized class.
* *
* @author aldo7224 * @author aldo7224
* @version 0.1 * @version 0.2
* @since 07.08.2017 * @since 17.08.2017
*/ */
public final class Constants { public final class Constants {
/** /**
* The Version Code of the Database. * The Version Code of the Database.
*/ */
public static final Integer DATABASE_VERSION = 1; static final Integer DATABASE_VERSION = 1;
/** /**
* As SQLite does not have a native boolean value, we use integers to represent true and false. * As SQLite does not have a native boolean value, we use integers to represent true and false.
@@ -25,160 +25,187 @@ public final class Constants {
* As SQLite does not have a native boolean value, we use integers to represent true and false. * As SQLite does not have a native boolean value, we use integers to represent true and false.
* This is the value for a false statement. * This is the value for a false statement.
*/ */
public final static Integer FALSE = 0; final static Integer FALSE = 0;
/**
* The Base LoaderID.
*/
public static final int BASE_LOADER_ID = 0; public static final int BASE_LOADER_ID = 0;
/**
* LoaderID of the character loader.
*/
public static final int CHARACTER_LOADER_ID = BASE_LOADER_ID; public static final int CHARACTER_LOADER_ID = BASE_LOADER_ID;
/**
* LoaderID of the kart loader.
*/
public static final int KART_LOADER_ID = BASE_LOADER_ID + 1; public static final int KART_LOADER_ID = BASE_LOADER_ID + 1;
/**
* LoaderID of the track loader.
*/
public static final int TRACK_LOADER_ID = BASE_LOADER_ID + 2; public static final int TRACK_LOADER_ID = BASE_LOADER_ID + 2;
/**
* LoaderID of the accessory loader.
*/
public static final int ACCESSORY_LOADER_ID = BASE_LOADER_ID + 3; public static final int ACCESSORY_LOADER_ID = BASE_LOADER_ID + 3;
/**
* LoaderID of the wheels loader.
*/
public static final int WHEELS_LOADER_ID = BASE_LOADER_ID + 4; public static final int WHEELS_LOADER_ID = BASE_LOADER_ID + 4;
/**
* The Key for the projection being provided via a bundle.
*/
public static final String PROJECTION_KEY = "projection";
/**
* The Key for the loaderId being provided via a bundle.
*/
public static final String LOADER_ID_KEY = "loader_id";
/** /**
* The Name of the complete database. * The Name of the complete database.
*/ */
public static final String DATABASE_NAME = "mario_kart_circuit_selector"; static final String DATABASE_NAME = "mario_kart_circuit_selector";
/** /**
* The name of the table containing all information according accessories. * The name of the table containing all information according accessories.
*/ */
public static final String TABLE_ACCESSORY = "accessory"; static final String TABLE_ACCESSORY = "accessory";
/** /**
* The name of the table containing all information according characters. * The name of the table containing all information according characters.
*/ */
public static final String TABLE_CHARACTER = "character"; static final String TABLE_CHARACTER = "character";
/** /**
* The name of the table containing all information according games. * The name of the table containing all information according games.
*/ */
public static final String TABLE_GAME = "game"; static final String TABLE_GAME = "game";
/** /**
* The name of the table containing all information according karts. * The name of the table containing all information according karts.
*/ */
public static final String TABLE_KART = "kart"; static final String TABLE_KART = "kart";
/** /**
* The name of the table containing all information according rulesets. * The name of the table containing all information according rulesets.
*/ */
public static final String TABLE_RULESET = "ruleset"; static final String TABLE_RULESET = "ruleset";
/** /**
* The name of the table containing all information according tracks. * The name of the table containing all information according tracks.
*/ */
public static final String TABLE_TRACK = "track"; static final String TABLE_TRACK = "track";
/** /**
* The name of the table containing all information according wheels. * The name of the table containing all information according wheels.
*/ */
public static final String TABLE_WHEELS = "wheels"; static final String TABLE_WHEELS = "wheels";
/** /**
* The global KEY for the _id field in the database. * The global KEY for the _id field in the database.
*/ */
public static final String KEY_ID = "_id"; static final String KEY_ID = "_id";
/** /**
* The global KEY for the name field in the database. * The global KEY for the name field in the database.
*/ */
public static final String KEY_NAME = "name"; static final String KEY_NAME = "name";
/** /**
* The global KEY for the game field in the database. * The global KEY for the game field in the database.
*/ */
public static final String KEY_GAME = "game"; static final String KEY_GAME = "game";
/** /**
* The global KEY for the available field in the database. * The global KEY for the available field in the database.
*/ */
public static final String KEY_AVAILABLE = "available"; static final String KEY_AVAILABLE = "available";
/** /**
* The global KEY for the weight field in the database. * The global KEY for the weight field in the database.
*/ */
public static final String KEY_WEIGHT = "weight"; static final String KEY_WEIGHT = "weight";
/** /**
* The global KEY for the cover uri field in the database. * The global KEY for the cover uri field in the database.
*/ */
public static final String KEY_COVER_URI = "cover_uri"; static final String KEY_COVER_URI = "cover_uri";
/** /**
* The global KEY for the wheels field in the database. * The global KEY for the wheels field in the database.
*/ */
public static final String KEY_WHEELS = "wheels"; static final String KEY_WHEELS = "wheels";
/** /**
* The global KEY for the accessory field in the database. * The global KEY for the accessory field in the database.
*/ */
public static final String KEY_ACCESSORY = "accessory"; static final String KEY_ACCESSORY = "accessory";
/** /**
* The global KEY for the dedicated driver field in the database. * The global KEY for the dedicated driver field in the database.
*/ */
public static final String KEY_DEDICATED_DRIVER = "dedicated_driver"; static final String KEY_DEDICATED_DRIVER = "dedicated_driver";
/** /**
* The global KEY for the free for all field in the database. * The global KEY for the free for all field in the database.
*/ */
public static final String KEY_FREE_FOR_ALL = "free_for_all"; static final String KEY_FREE_FOR_ALL = "free_for_all";
/** /**
* The global KEY for the mirror class field in the database. * The global KEY for the mirror class field in the database.
*/ */
public static final String KEY_MIRROR_CLASS = "mirror_class"; private static final String KEY_MIRROR_CLASS = "mirror_class";
/** /**
* The global KEY for the 50 ccm field in the database. * The global KEY for the 50 ccm field in the database.
*/ */
public static final String KEY_50_CCM = "50_ccm"; private static final String KEY_50_CCM = "50_ccm";
/** /**
* The global KEY for the 100 ccm field in the database. * The global KEY for the 100 ccm field in the database.
*/ */
public static final String KEY_100_CCM = "100_ccm"; private static final String KEY_100_CCM = "100_ccm";
/** /**
* The global KEY for the 150 ccm field in the database. * The global KEY for the 150 ccm field in the database.
*/ */
public static final String KEY_150_CCM = "150_ccm"; private static final String KEY_150_CCM = "150_ccm";
/** /**
* The global KEY for the 200 ccm field in the database. * The global KEY for the 200 ccm field in the database.
*/ */
public static final String KEY_200_CCM = "200_ccm"; private static final String KEY_200_CCM = "200_ccm";
/** /**
* The global KEY for the kart free for all field in the database. * The global KEY for the kart free for all field in the database.
*/ */
public static final String KEY_KART_FREE_FOR_ALL = "kart_free_for_all"; private static final String KEY_KART_FREE_FOR_ALL = "kart_free_for_all";
/** /**
* The global KEY for the bikes field in the database. * The global KEY for the bikes field in the database.
*/ */
public static final String KEY_BIKES = "bikes"; private static final String KEY_BIKES = "bikes";
/** /**
* The global KEY for the package field in the database. * The global KEY for the package field in the database.
*/ */
public static final String KEY_PACKAGE = "package"; static final String KEY_PACKAGE = "package";
/** /**
* The global KEY for the number field in the database. * The global KEY for the number field in the database.
*/ */
public static final String KEY_NUMBER = "number"; static final String KEY_NUMBER = "number";
/** /**
* The Projection to retrieve all Information of a game object from database. * The Projection to retrieve all Information of a game object from database.
*/ */
public static final String[] PROJECTION_GAME = { static final String[] PROJECTION_GAME = {
KEY_ID, KEY_ID,
KEY_NAME, KEY_NAME,
KEY_COVER_URI KEY_COVER_URI
@@ -260,30 +287,4 @@ public final class Constants {
KEY_GAME, KEY_GAME,
KEY_AVAILABLE KEY_AVAILABLE
}; };
/**
* Enum Value defining the position of the Character Tab.
*/
public static final int CHARACTER = 0;
/**
* Enum Value defining the position of the Kart Tab.
*/
public static final int KART = 1;
/**
* Enum Value defining the position of the Track Tab.
*/
public static final int TRACK = 2;
/**
* Enum Value defining the position of the Accessory Tab.
*/
public static final int ACCESSORY = 3;
/**
* Enum Value defining the position of the Wheels Tab.
*/
public static final int WHEELS = 4;
} }

View File

@@ -3,17 +3,13 @@ package com.de.aldo_apps.aldo.mariokartcircuitselector;
import android.content.ContentValues; import android.content.ContentValues;
import android.content.Context; import android.content.Context;
import android.database.Cursor; import android.database.Cursor;
import android.database.DatabaseUtils;
import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase;
import android.net.Uri;
import android.support.annotation.Nullable;
import android.util.Log; import android.util.Log;
import com.de.aldo_apps.aldo.mariokartcircuitselector.database_models.Accessory; import com.de.aldo_apps.aldo.mariokartcircuitselector.database_models.Accessory;
import com.de.aldo_apps.aldo.mariokartcircuitselector.database_models.Character; import com.de.aldo_apps.aldo.mariokartcircuitselector.database_models.Character;
import com.de.aldo_apps.aldo.mariokartcircuitselector.database_models.Game; import com.de.aldo_apps.aldo.mariokartcircuitselector.database_models.Game;
import com.de.aldo_apps.aldo.mariokartcircuitselector.database_models.Kart; import com.de.aldo_apps.aldo.mariokartcircuitselector.database_models.Kart;
import com.de.aldo_apps.aldo.mariokartcircuitselector.database_models.Ruleset;
import com.de.aldo_apps.aldo.mariokartcircuitselector.database_models.Track; import com.de.aldo_apps.aldo.mariokartcircuitselector.database_models.Track;
import com.de.aldo_apps.aldo.mariokartcircuitselector.database_models.Wheels; import com.de.aldo_apps.aldo.mariokartcircuitselector.database_models.Wheels;
import com.readystatesoftware.sqliteasset.SQLiteAssetHelper; import com.readystatesoftware.sqliteasset.SQLiteAssetHelper;
@@ -60,7 +56,6 @@ public class DatabaseHandler extends SQLiteAssetHelper {
* *
* @param track The track which should be marked as available/unavailable. * @param track The track which should be marked as available/unavailable.
* @param isAvailable The status of availability to be set. * @param isAvailable The status of availability to be set.
*
* @return The result code of the update function. * @return The result code of the update function.
*/ */
public int changeTrackAvailability(final Track track, public int changeTrackAvailability(final Track track,
@@ -87,7 +82,6 @@ public class DatabaseHandler extends SQLiteAssetHelper {
* *
* @param character The character which should be marked as available/unavailable. * @param character The character which should be marked as available/unavailable.
* @param isAvailable The status of availability to be set. * @param isAvailable The status of availability to be set.
*
* @return The result code of the update function. * @return The result code of the update function.
*/ */
public int changeCharacterAvailability(final Character character, public int changeCharacterAvailability(final Character character,
@@ -113,7 +107,6 @@ public class DatabaseHandler extends SQLiteAssetHelper {
* *
* @param kart The kart which should be marked as available/unavailable. * @param kart The kart which should be marked as available/unavailable.
* @param isAvailable The status of availability to be set. * @param isAvailable The status of availability to be set.
*
* @return The result code of the update function. * @return The result code of the update function.
*/ */
public int changeKartAvailability(final Kart kart, public int changeKartAvailability(final Kart kart,
@@ -143,7 +136,6 @@ public class DatabaseHandler extends SQLiteAssetHelper {
* *
* @param accessory The accessory which should be marked as available/unavailable. * @param accessory The accessory which should be marked as available/unavailable.
* @param isAvailable The status of availability to be set. * @param isAvailable The status of availability to be set.
*
* @return The result code of the update function. * @return The result code of the update function.
*/ */
public int changeAccessoryAvailability(final Accessory accessory, public int changeAccessoryAvailability(final Accessory accessory,
@@ -168,7 +160,6 @@ public class DatabaseHandler extends SQLiteAssetHelper {
* *
* @param wheels The wheels which should be marked as available/unavailable. * @param wheels The wheels which should be marked as available/unavailable.
* @param isAvailable The status of availability to be set. * @param isAvailable The status of availability to be set.
*
* @return The result code of the update function. * @return The result code of the update function.
*/ */
public int changeWheelsAvailability(final Wheels wheels, public int changeWheelsAvailability(final Wheels wheels,
@@ -195,12 +186,12 @@ public class DatabaseHandler extends SQLiteAssetHelper {
/** /**
* Retrieves all Tracks from Database. If a Game is provided, all tracks of this specific * Retrieves all Tracks from Database. If a Game is provided, all tracks of this specific
* game will be retrieved. * game will be retrieved.
* *
* @return List containing all Track Objects retrieved from Database. * @return List containing all Track Objects retrieved from Database.
*/ */
public Cursor getAllTracks(final String[] projection, public Cursor getAllTracks(final String[] projection,
final String selection, final String selection,
final String[] selectionArgs) { final String[] selectionArgs) {
final SQLiteDatabase database = this.getReadableDatabase(); final SQLiteDatabase database = this.getReadableDatabase();
Log.d(TAG, "getAllTracks: Creating Cursor for Tracks."); Log.d(TAG, "getAllTracks: Creating Cursor for Tracks.");
@@ -216,8 +207,8 @@ public class DatabaseHandler extends SQLiteAssetHelper {
* @return List containing all Kart Objects retrieved from Database. * @return List containing all Kart Objects retrieved from Database.
*/ */
public Cursor getAllKarts(final String[] projection, public Cursor getAllKarts(final String[] projection,
final String selection, final String selection,
final String[] selectionArgs) { final String[] selectionArgs) {
final SQLiteDatabase database = this.getReadableDatabase(); final SQLiteDatabase database = this.getReadableDatabase();
Log.d(TAG, "getAllKarts: Creating Cursor for Karts."); Log.d(TAG, "getAllKarts: Creating Cursor for Karts.");
@@ -230,15 +221,14 @@ public class DatabaseHandler extends SQLiteAssetHelper {
* Retrieves all Characters from Database. If a Game is provided, all characters of this * Retrieves all Characters from Database. If a Game is provided, all characters of this
* specific game will be retrieved. * specific game will be retrieved.
* *
* @param projection The character projection. * @param projection The character projection.
* @param selection The selection clause. * @param selection The selection clause.
* @param selectionArgs The selection arguments. * @param selectionArgs The selection arguments.
*
* @return Cursor containing all Character Objects retrieved from Database. * @return Cursor containing all Character Objects retrieved from Database.
*/ */
public Cursor getAllCharacters(final String[] projection, public Cursor getAllCharacters(final String[] projection,
final String selection, final String selection,
final String[] selectionArgs) { final String[] selectionArgs) {
final SQLiteDatabase database = this.getReadableDatabase(); final SQLiteDatabase database = this.getReadableDatabase();
Log.d(TAG, "getAllCharacters: Creating Cursor for Characters."); Log.d(TAG, "getAllCharacters: Creating Cursor for Characters.");
@@ -256,8 +246,8 @@ public class DatabaseHandler extends SQLiteAssetHelper {
* @return List containing all Ruleset Objects retrieved from Database. * @return List containing all Ruleset Objects retrieved from Database.
*/ */
public Cursor getAllRulesets(final String[] projection, public Cursor getAllRulesets(final String[] projection,
final String selection, final String selection,
final String[] selectionArgs) { final String[] selectionArgs) {
final SQLiteDatabase database = this.getReadableDatabase(); final SQLiteDatabase database = this.getReadableDatabase();
Log.d(TAG, "getAllRulesets: Creating Cursor for Rulesets."); Log.d(TAG, "getAllRulesets: Creating Cursor for Rulesets.");
@@ -273,8 +263,8 @@ public class DatabaseHandler extends SQLiteAssetHelper {
* @return List containing all Accessory Objects retrieved from Database. * @return List containing all Accessory Objects retrieved from Database.
*/ */
public Cursor getAllAccessories(final String[] projection, public Cursor getAllAccessories(final String[] projection,
final String selection, final String selection,
final String[] selectionArgs) { final String[] selectionArgs) {
final SQLiteDatabase database = this.getReadableDatabase(); final SQLiteDatabase database = this.getReadableDatabase();
final Cursor cursor = database.query(Constants.TABLE_ACCESSORY, final Cursor cursor = database.query(Constants.TABLE_ACCESSORY,
@@ -367,59 +357,4 @@ public class DatabaseHandler extends SQLiteAssetHelper {
// ------------------------------ T E S T F U N C T I O N S ------------------------------- // ------------------------------ T E S T F U N C T I O N S -------------------------------
// ------------------------------------------------------------------------------------------- // -------------------------------------------------------------------------------------------
// TODO: This is only an intermediate state and can be removed later on
public Track testDBConnection(final int id) {
Log.d(TAG, "testDBConnection: Opening Readable Database.");
final SQLiteDatabase database = this.getReadableDatabase();
Log.d(TAG, "testDBConnection: Query a single track for id = [" + id + "]");
final Cursor cursor = database.query(Constants.TABLE_TRACK, new String[]{Constants.KEY_ID,
Constants.KEY_NAME, Constants.KEY_GAME, Constants.KEY_AVAILABLE},
Constants.KEY_ID + "=?", new String[]{String.valueOf(id)}, null, null, null, null);
if (cursor != null) {
Log.d(TAG, "testDBConnection: Moving cursor to first.");
cursor.moveToFirst();
} else {
Log.d(TAG, "testDBConnection: cursor is null");
return null;
}
DatabaseUtils.dumpCursor(cursor);
final int nameIdx = cursor.getColumnIndex(Constants.KEY_NAME);
final int gameIdx = cursor.getColumnIndex(Constants.KEY_GAME);
final int idIdx = cursor.getColumnIndex(Constants.KEY_ID);
final int availableIdx = cursor.getColumnIndex(Constants.KEY_AVAILABLE);
if (nameIdx < 0) {
Log.d(TAG, "testDBConnection: No such column [" + Constants.KEY_NAME + "]");
}
if (gameIdx < 0) {
Log.d(TAG, "testDBConnection: No such column [" + Constants.KEY_GAME + "]");
}
if (idIdx < 0) {
Log.d(TAG, "testDBConnection: No such column [" + Constants.KEY_ID + "]");
}
if (availableIdx < 0) {
Log.d(TAG, "testDBConnection: No such column [" + Constants.KEY_AVAILABLE + "]");
}
if (availableIdx >= 0 && idIdx >= 0 && gameIdx >= 0 && nameIdx >= 0) {
final Track track = new Track();
track.setName(cursor.getString(nameIdx));
track.setGame(cursor.getString(gameIdx));
track.setId(Integer.parseInt(cursor.getString(idIdx)));
track.setAvailable(Integer.parseInt(cursor.getString(availableIdx)));
database.close();
// return contact
return track;
}
cursor.close();
database.close();
// return contact
return null;
}
} }

View File

@@ -5,26 +5,38 @@ import android.content.ContentValues;
import android.content.UriMatcher; import android.content.UriMatcher;
import android.database.Cursor; import android.database.Cursor;
import android.net.Uri; import android.net.Uri;
import android.support.annotation.NonNull;
import android.util.Log; import android.util.Log;
import com.de.aldo_apps.aldo.mariokartcircuitselector.Constants;
import com.de.aldo_apps.aldo.mariokartcircuitselector.DatabaseHandler;
/** /**
* Created by aldo7224 on 16.08.17. * The ContentProvider which retrieves the Kart Data.
*
* @author aldo7224
* @version 0.1
* @since 17.08.2017
*/ */
public class KartContentProvider extends ContentProvider { public class KartContentProvider extends ContentProvider {
/**
* Tag for debugging output.
*/
private static final String TAG = "KartProvider"; private static final String TAG = "KartProvider";
/**
* The Provider Name to find the correct Provider and register it in the Android Lifecycle.
*/
public static final String PROVIDER_NAME public static final String PROVIDER_NAME
= "com.de.aldo_apps.aldo.mariokartcircuitselector"; = "com.de.aldo_apps.aldo.mariokartcircuitselector";
/** /**
* A uri to do operations on cust_master table. A content provider is identified by its uri * A uri to do operations on. A content provider is identified by its uri
*/ */
public static final Uri CONTENT_URI = Uri.parse("content://" + PROVIDER_NAME + "/karts"); public static final Uri CONTENT_URI = Uri.parse("content://" + PROVIDER_NAME + "/karts");
/**
* UriMatcher to check which callback needs to be handled.
* TODO: Check whether this is really needed.
*/
private static final UriMatcher uriMatcher; private static final UriMatcher uriMatcher;
static { static {
@@ -51,7 +63,7 @@ public class KartContentProvider extends ContentProvider {
} }
@Override @Override
public String getType(final Uri uri) { public String getType(@NonNull final Uri uri) {
return null; return null;
} }
@@ -59,7 +71,7 @@ public class KartContentProvider extends ContentProvider {
* A callback method which is by the default content uri * A callback method which is by the default content uri
*/ */
@Override @Override
public Cursor query(final Uri uri, public Cursor query(@NonNull final Uri uri,
final String[] projection, final String[] projection,
final String selection, final String selection,
final String[] selectionArgs, final String[] selectionArgs,
@@ -76,7 +88,7 @@ public class KartContentProvider extends ContentProvider {
Log.d(TAG, "query: Getting all Karts."); Log.d(TAG, "query: Getting all Karts.");
return mHandler.getAllKarts(Constants.PROJECTION_KART, null, null); return mHandler.getAllKarts(Constants.PROJECTION_KART, null, null);
case Constants.ACCESSORY_LOADER_ID: case Constants.ACCESSORY_LOADER_ID:
Log.d(TAG, "query: Getting all Acessories."); Log.d(TAG, "query: Getting all Accessories.");
return mHandler.getAllAccessories(Constants.PROJECTION_ACCESSORY, null, null); return mHandler.getAllAccessories(Constants.PROJECTION_ACCESSORY, null, null);
case Constants.TRACK_LOADER_ID: case Constants.TRACK_LOADER_ID:
Log.d(TAG, "query: Getting all Tracks."); Log.d(TAG, "query: Getting all Tracks.");
@@ -91,21 +103,19 @@ public class KartContentProvider extends ContentProvider {
} }
@Override @Override
public int delete(final Uri uri, final String selection, final String[] selectionArgs) { public int delete(@NonNull final Uri uri, final String selection, final String[] selectionArgs) {
// TODO Auto-generated method stub
return 0; return 0;
} }
@Override @Override
public Uri insert(final Uri uri, final ContentValues values) { public Uri insert(@NonNull final Uri uri, final ContentValues values) {
// TODO Auto-generated method stub
return null; return null;
} }
@Override @Override
public int update(final Uri uri, final ContentValues values, final String selection, public int update(@NonNull final Uri uri, final ContentValues values, final String selection,
final String[] selectionArgs) { final String[] selectionArgs) {
// TODO Auto-generated method stub // TODO Add update method here?
return 0; return 0;
} }
} }

View File

@@ -1,13 +1,35 @@
package com.de.aldo_apps.aldo.mariokartcircuitselector; package com.de.aldo_apps.aldo.mariokartcircuitselector;
/** /**
* Created by aldo7224 on 16.08.17. * Enum holding the different PagerTypes which are displayed in the NavigationTabBar.
*
* @author aldo7224
* @version 0.1
* @since 17.08.2017
*/ */
public enum PagerType { public enum PagerType {
/**
* Character tab.
*/
CHARACTER, CHARACTER,
/**
* Kart tab.
*/
KART, KART,
/**
* Track tab.
*/
TRACK, TRACK,
/**
* Accessory tab.
*/
ACCESSORY, ACCESSORY,
/**
* Wheels tab.
*/
WHEEL WHEEL
} }

View File

@@ -5,18 +5,26 @@ import android.content.ContentValues;
import android.content.UriMatcher; import android.content.UriMatcher;
import android.database.Cursor; import android.database.Cursor;
import android.net.Uri; import android.net.Uri;
import android.support.annotation.NonNull;
import android.util.Log; import android.util.Log;
import com.de.aldo_apps.aldo.mariokartcircuitselector.Constants;
import com.de.aldo_apps.aldo.mariokartcircuitselector.DatabaseHandler;
/** /**
* Created by aldo7224 on 16.08.17. * The ContentProvider which retrieves the Track Data.
*
* @author aldo7224
* @version 0.1
* @since 17.08.2017
*/ */
public class TrackContentProvider extends ContentProvider { public class TrackContentProvider extends ContentProvider {
/**
* Tag for debugging output.
*/
private static final String TAG = "TrackProvider"; private static final String TAG = "TrackProvider";
/**
* The Provider Name to find the correct Provider and register it in the Android Lifecycle.
*/
public static final String PROVIDER_NAME public static final String PROVIDER_NAME
= "com.de.aldo_apps.aldo.mariokartcircuitselector"; = "com.de.aldo_apps.aldo.mariokartcircuitselector";
@@ -25,6 +33,10 @@ public class TrackContentProvider extends ContentProvider {
*/ */
public static final Uri CONTENT_URI = Uri.parse("content://" + PROVIDER_NAME + "/tracks"); public static final Uri CONTENT_URI = Uri.parse("content://" + PROVIDER_NAME + "/tracks");
/**
* UriMatcher to check which callback needs to be handled.
* TODO: Check whether this is really needed.
*/
private static final UriMatcher uriMatcher; private static final UriMatcher uriMatcher;
static { static {
@@ -33,7 +45,8 @@ public class TrackContentProvider extends ContentProvider {
uriMatcher.addURI(PROVIDER_NAME, "tracks", Constants.TRACK_LOADER_ID); uriMatcher.addURI(PROVIDER_NAME, "tracks", Constants.TRACK_LOADER_ID);
uriMatcher.addURI(PROVIDER_NAME, "karts", Constants.KART_LOADER_ID); uriMatcher.addURI(PROVIDER_NAME, "karts", Constants.KART_LOADER_ID);
uriMatcher.addURI(PROVIDER_NAME, "wheels", Constants.WHEELS_LOADER_ID); uriMatcher.addURI(PROVIDER_NAME, "wheels", Constants.WHEELS_LOADER_ID);
uriMatcher.addURI(PROVIDER_NAME, "accessories", Constants.ACCESSORY_LOADER_ID); } uriMatcher.addURI(PROVIDER_NAME, "accessories", Constants.ACCESSORY_LOADER_ID);
}
/** /**
* This content provider does the database operations by this object * This content provider does the database operations by this object
@@ -50,7 +63,7 @@ public class TrackContentProvider extends ContentProvider {
} }
@Override @Override
public String getType(final Uri uri) { public String getType(@NonNull final Uri uri) {
return null; return null;
} }
@@ -58,7 +71,7 @@ public class TrackContentProvider extends ContentProvider {
* A callback method which is by the default content uri * A callback method which is by the default content uri
*/ */
@Override @Override
public Cursor query(final Uri uri, public Cursor query(@NonNull final Uri uri,
final String[] projection, final String[] projection,
final String selection, final String selection,
final String[] selectionArgs, final String[] selectionArgs,
@@ -75,7 +88,7 @@ public class TrackContentProvider extends ContentProvider {
Log.d(TAG, "query: Getting all Karts."); Log.d(TAG, "query: Getting all Karts.");
return mHandler.getAllKarts(Constants.PROJECTION_KART, null, null); return mHandler.getAllKarts(Constants.PROJECTION_KART, null, null);
case Constants.ACCESSORY_LOADER_ID: case Constants.ACCESSORY_LOADER_ID:
Log.d(TAG, "query: Getting all Acessories."); Log.d(TAG, "query: Getting all Accessories.");
return mHandler.getAllAccessories(Constants.PROJECTION_ACCESSORY, null, null); return mHandler.getAllAccessories(Constants.PROJECTION_ACCESSORY, null, null);
case Constants.TRACK_LOADER_ID: case Constants.TRACK_LOADER_ID:
Log.d(TAG, "query: Getting all Tracks."); Log.d(TAG, "query: Getting all Tracks.");
@@ -90,21 +103,19 @@ public class TrackContentProvider extends ContentProvider {
} }
@Override @Override
public int delete(final Uri uri, final String selection, final String[] selectionArgs) { public int delete(@NonNull final Uri uri, final String selection, final String[] selectionArgs) {
// TODO Auto-generated method stub
return 0; return 0;
} }
@Override @Override
public Uri insert(final Uri uri, final ContentValues values) { public Uri insert(@NonNull final Uri uri, final ContentValues values) {
// TODO Auto-generated method stub
return null; return null;
} }
@Override @Override
public int update(final Uri uri, final ContentValues values, final String selection, public int update(@NonNull final Uri uri, final ContentValues values, final String selection,
final String[] selectionArgs) { final String[] selectionArgs) {
// TODO Auto-generated method stub // TODO Add update method here?
return 0; return 0;
} }
} }

View File

@@ -5,18 +5,26 @@ import android.content.ContentValues;
import android.content.UriMatcher; import android.content.UriMatcher;
import android.database.Cursor; import android.database.Cursor;
import android.net.Uri; import android.net.Uri;
import android.support.annotation.NonNull;
import android.util.Log; import android.util.Log;
import com.de.aldo_apps.aldo.mariokartcircuitselector.Constants;
import com.de.aldo_apps.aldo.mariokartcircuitselector.DatabaseHandler;
/** /**
* Created by aldo7224 on 16.08.17. * The ContentProvider which retrieves the Wheels Data.
*
* @author aldo7224
* @version 0.1
* @since 17.08.2017
*/ */
public class WheelsContentProvider extends ContentProvider { public class WheelsContentProvider extends ContentProvider {
/**
* Tag for debugging output.
*/
private static final String TAG = "WheelsProvider"; private static final String TAG = "WheelsProvider";
/**
* The Provider Name to find the correct Provider and register it in the Android Lifecycle.
*/
public static final String PROVIDER_NAME public static final String PROVIDER_NAME
= "com.de.aldo_apps.aldo.mariokartcircuitselector"; = "com.de.aldo_apps.aldo.mariokartcircuitselector";
@@ -25,6 +33,10 @@ public class WheelsContentProvider extends ContentProvider {
*/ */
public static final Uri CONTENT_URI = Uri.parse("content://" + PROVIDER_NAME + "/wheels"); public static final Uri CONTENT_URI = Uri.parse("content://" + PROVIDER_NAME + "/wheels");
/**
* UriMatcher to check which callback needs to be handled.
* TODO: Check whether this is really needed.
*/
private static final UriMatcher uriMatcher; private static final UriMatcher uriMatcher;
static { static {
@@ -51,7 +63,7 @@ public class WheelsContentProvider extends ContentProvider {
} }
@Override @Override
public String getType(final Uri uri) { public String getType(@NonNull final Uri uri) {
return null; return null;
} }
@@ -59,7 +71,7 @@ public class WheelsContentProvider extends ContentProvider {
* A callback method which is by the default content uri * A callback method which is by the default content uri
*/ */
@Override @Override
public Cursor query(final Uri uri, public Cursor query(@NonNull final Uri uri,
final String[] projection, final String[] projection,
final String selection, final String selection,
final String[] selectionArgs, final String[] selectionArgs,
@@ -76,7 +88,7 @@ public class WheelsContentProvider extends ContentProvider {
Log.d(TAG, "query: Getting all Karts."); Log.d(TAG, "query: Getting all Karts.");
return mHandler.getAllKarts(Constants.PROJECTION_KART, null, null); return mHandler.getAllKarts(Constants.PROJECTION_KART, null, null);
case Constants.ACCESSORY_LOADER_ID: case Constants.ACCESSORY_LOADER_ID:
Log.d(TAG, "query: Getting all Acessories."); Log.d(TAG, "query: Getting all Accessories.");
return mHandler.getAllAccessories(Constants.PROJECTION_ACCESSORY, null, null); return mHandler.getAllAccessories(Constants.PROJECTION_ACCESSORY, null, null);
case Constants.TRACK_LOADER_ID: case Constants.TRACK_LOADER_ID:
Log.d(TAG, "query: Getting all Tracks."); Log.d(TAG, "query: Getting all Tracks.");
@@ -91,21 +103,19 @@ public class WheelsContentProvider extends ContentProvider {
} }
@Override @Override
public int delete(final Uri uri, final String selection, final String[] selectionArgs) { public int delete(@NonNull final Uri uri, final String selection, final String[] selectionArgs) {
// TODO Auto-generated method stub
return 0; return 0;
} }
@Override @Override
public Uri insert(final Uri uri, final ContentValues values) { public Uri insert(@NonNull final Uri uri, final ContentValues values) {
// TODO Auto-generated method stub
return null; return null;
} }
@Override @Override
public int update(final Uri uri, final ContentValues values, final String selection, public int update(@NonNull final Uri uri, final ContentValues values, final String selection,
final String[] selectionArgs) { final String[] selectionArgs) {
// TODO Auto-generated method stub // TODO Add update method here?
return 0; return 0;
} }
} }

View File

@@ -1,23 +1,37 @@
package com.de.aldo_apps.aldo.mariokartcircuitselector; package com.de.aldo_apps.aldo.mariokartcircuitselector.activities;
import android.graphics.Color; import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.content.res.ResourcesCompat;
import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity; import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log; import android.util.Log;
import com.de.aldo_apps.aldo.mariokartcircuitselector.R;
import com.de.aldo_apps.aldo.mariokartcircuitselector.adapters.CursorPagerAdapter; import com.de.aldo_apps.aldo.mariokartcircuitselector.adapters.CursorPagerAdapter;
import java.util.ArrayList; import java.util.ArrayList;
import devlight.io.library.ntb.NavigationTabBar; import devlight.io.library.ntb.NavigationTabBar;
/**
* The Activity which handles the Main-Game Selection.
* TODO: Currently the DB-Logic is here, which needs to be handled in an additional screen.
*
* @author aldo7224
* @version 0.2
* @since 17.08.2017
*/
public class GameSelection extends AppCompatActivity { public class GameSelection extends AppCompatActivity {
/**
* Tag for debugging purpose.
*/
private static final String TAG = "GameSelection"; private static final String TAG = "GameSelection";
private DatabaseHandler mDbHandler; /**
* The Custom CursorPagerAdapter which fills the ViewPager with data.
*/
private CursorPagerAdapter mAdapter; private CursorPagerAdapter mAdapter;
@Override @Override
@@ -25,24 +39,43 @@ public class GameSelection extends AppCompatActivity {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_game_selection); setContentView(R.layout.activity_game_selection);
mDbHandler = new DatabaseHandler(this); // Initialize the Adapter.
mAdapter = new CursorPagerAdapter(getSupportFragmentManager()); mAdapter = new CursorPagerAdapter(getSupportFragmentManager());
// Fill the UI.
updateUI(); updateUI();
} }
/**
* Helper method which handles UI updates.
*/
public void updateUI() { public void updateUI() {
// Get the colors for the ViewPager Items.
final String[] colors = getResources().getStringArray(R.array.vertical_ntb); final String[] colors = getResources().getStringArray(R.array.vertical_ntb);
// get the ViewPager and assign adapter to it.
final ViewPager viewPager = (ViewPager) findViewById(R.id.vp_horizontal_ntb); final ViewPager viewPager = (ViewPager) findViewById(R.id.vp_horizontal_ntb);
viewPager.setAdapter(mAdapter); viewPager.setAdapter(mAdapter);
// Get the NavigationBar and assign the models to it.
initNavBar(colors, viewPager);
}
/**
* Helper method which initializes the NavigationTabBar and adds functionality.
*
* @param colors The Array of colors to apply to the different Tabs.
* @param viewPager The ViewPager which should be assigned to the tabBar.
* @return The fully inflated and initialized NavigationTabbar.
*/
private NavigationTabBar initNavBar(final String[] colors, final ViewPager viewPager) {
final NavigationTabBar navigationTabBar final NavigationTabBar navigationTabBar
= (NavigationTabBar) findViewById(R.id.ntb_vertical); = (NavigationTabBar) findViewById(R.id.ntb_vertical);
final ArrayList<NavigationTabBar.Model> models = new ArrayList<>(); final ArrayList<NavigationTabBar.Model> models = new ArrayList<>();
models.add( models.add(
new NavigationTabBar.Model.Builder( new NavigationTabBar.Model.Builder(
getResources().getDrawable(R.drawable.character_50_dark_grey), ResourcesCompat.getDrawable(getResources(),
R.drawable.character_50_dark_grey, null),
Color.parseColor(colors[0]) Color.parseColor(colors[0])
).title(getString(R.string.title_character)) ).title(getString(R.string.title_character))
.badgeTitle("NTB") .badgeTitle("NTB")
@@ -50,7 +83,8 @@ public class GameSelection extends AppCompatActivity {
); );
models.add( models.add(
new NavigationTabBar.Model.Builder( new NavigationTabBar.Model.Builder(
getResources().getDrawable(R.drawable.kart_50_dark_grey), ResourcesCompat.getDrawable(getResources(),
R.drawable.kart_50_dark_grey, null),
Color.parseColor(colors[1]) Color.parseColor(colors[1])
).title(getString(R.string.title_kart)) ).title(getString(R.string.title_kart))
.badgeTitle("with") .badgeTitle("with")
@@ -58,7 +92,8 @@ public class GameSelection extends AppCompatActivity {
); );
models.add( models.add(
new NavigationTabBar.Model.Builder( new NavigationTabBar.Model.Builder(
getResources().getDrawable(R.drawable.track_50_dark_grey), ResourcesCompat.getDrawable(getResources(),
R.drawable.track_50_dark_grey, null),
Color.parseColor(colors[2]) Color.parseColor(colors[2])
).title(getString(R.string.title_track)) ).title(getString(R.string.title_track))
.badgeTitle("state") .badgeTitle("state")
@@ -66,7 +101,8 @@ public class GameSelection extends AppCompatActivity {
); );
models.add( models.add(
new NavigationTabBar.Model.Builder( new NavigationTabBar.Model.Builder(
getResources().getDrawable(R.drawable.accessory_50_dark_grey), ResourcesCompat.getDrawable(getResources(),
R.drawable.accessory_50_dark_grey, null),
Color.parseColor(colors[3]) Color.parseColor(colors[3])
).title(getString(R.string.title_accessory)) ).title(getString(R.string.title_accessory))
.badgeTitle("icon") .badgeTitle("icon")
@@ -74,7 +110,8 @@ public class GameSelection extends AppCompatActivity {
); );
models.add( models.add(
new NavigationTabBar.Model.Builder( new NavigationTabBar.Model.Builder(
getResources().getDrawable(R.drawable.wheels_50_dark_grey), ResourcesCompat.getDrawable(getResources(),
R.drawable.wheels_50_dark_grey, null),
Color.parseColor(colors[4]) Color.parseColor(colors[4])
).title(getString(R.string.title_wheels)) ).title(getString(R.string.title_wheels))
.badgeTitle("777") .badgeTitle("777")
@@ -83,6 +120,7 @@ public class GameSelection extends AppCompatActivity {
navigationTabBar.setModels(models); navigationTabBar.setModels(models);
navigationTabBar.setViewPager(viewPager); navigationTabBar.setViewPager(viewPager);
// Assign a OnPageChangedListener to assure correct functionality while swiping.
navigationTabBar.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { navigationTabBar.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override @Override
public void onPageScrolled(final int position, public void onPageScrolled(final int position,
@@ -119,5 +157,7 @@ public class GameSelection extends AppCompatActivity {
} }
} }
}, 500); }, 500);
return navigationTabBar;
} }
} }

View File

@@ -10,20 +10,36 @@ import com.de.aldo_apps.aldo.mariokartcircuitselector.Constants;
import com.de.aldo_apps.aldo.mariokartcircuitselector.PagerType; import com.de.aldo_apps.aldo.mariokartcircuitselector.PagerType;
import com.de.aldo_apps.aldo.mariokartcircuitselector.fragments.GenericListFragment; import com.de.aldo_apps.aldo.mariokartcircuitselector.fragments.GenericListFragment;
import java.util.Arrays;
/**
* The custom FragmentPagerAdapter which handles data provided via a cursor so the data retrieved
* from DB can be directly accessed and displayed.
*
* @author aldo7224
* @version 0.1
* @since 17.08.2017
*/
public class CursorPagerAdapter extends FragmentPagerAdapter { public class CursorPagerAdapter extends FragmentPagerAdapter {
/** /**
* default constructor. * Tag for debugging purpose.
*/
private static final String TAG = "CursorPagerAdapter";
/**
* Default constructor.
*/ */
public CursorPagerAdapter(final FragmentManager fm) { public CursorPagerAdapter(final FragmentManager fm) {
super(fm); super(fm);
} }
@Override @Override
public Fragment getItem(int position) { public Fragment getItem(final int position) {
final Bundle bundle = new Bundle(); final Bundle bundle = new Bundle();
final String[] projection; final String[] projection;
final int loaderId; final int loaderId;
// Get the PagerType of the position, so that the correct Loader is initialized.
switch (PagerType.values()[position]) { switch (PagerType.values()[position]) {
case CHARACTER: case CHARACTER:
projection = Constants.PROJECTION_CHARACTER; projection = Constants.PROJECTION_CHARACTER;
@@ -50,11 +66,12 @@ public class CursorPagerAdapter extends FragmentPagerAdapter {
loaderId = Constants.BASE_LOADER_ID; loaderId = Constants.BASE_LOADER_ID;
} }
bundle.putStringArray("FOO", projection); // Provide Projection and LoaderId via a Bundle.
bundle.putInt("BAR", loaderId); bundle.putStringArray(Constants.PROJECTION_KEY, projection);
bundle.putInt(Constants.LOADER_ID_KEY, loaderId);
Log.d("#####", "getItem: New GenericListFragment with loaderId = [" + loaderId Log.d(TAG, "getItem: New GenericListFragment with loaderId = [" + loaderId
+ "] and projection = [" + projection.toString() + "] on position [" + "] and projection = [" + Arrays.toString(projection) + "] on position ["
+ position + "]"); + position + "]");
final GenericListFragment genericListFragment = new GenericListFragment(); final GenericListFragment genericListFragment = new GenericListFragment();
genericListFragment.setArguments(bundle); genericListFragment.setArguments(bundle);
@@ -64,7 +81,6 @@ public class CursorPagerAdapter extends FragmentPagerAdapter {
@Override @Override
public int getCount() { public int getCount() {
// TODO Auto-generated method stub
return PagerType.values().length; return PagerType.values().length;
} }
} }

View File

@@ -46,7 +46,8 @@ public class Character {
/** /**
* Empty default constructor. * Empty default constructor.
*/ */
public Character() {} public Character() {
}
/** /**
* The constructor of this character object. * The constructor of this character object.
@@ -60,7 +61,7 @@ public class Character {
public Character(final int id, final String name, final String game, public Character(final int id, final String name, final String game,
final String weight, final int available) { final String weight, final int available) {
Log.d(TAG, "Character: New Character created with _id = [" + id + "], name = [" Log.d(TAG, "Character: New Character created with _id = [" + id + "], name = ["
+ name + "], game = [" + game + "], weight = [" + weight + name + "], game = [" + game + "], weight = [" + weight
+ "], available = [" + available + "]"); + "], available = [" + available + "]");
mId = id; mId = id;
mName = name; mName = name;

View File

@@ -67,7 +67,8 @@ public class Kart {
/** /**
* Empty default constructor. * Empty default constructor.
*/ */
public Kart() {} public Kart() {
}
/** /**
* The constructor of this kart object. * The constructor of this kart object.
@@ -187,7 +188,7 @@ public class Kart {
* *
* @param wheels the availability state of wheels for this kart object. * @param wheels the availability state of wheels for this kart object.
*/ */
public void setWheels(int wheels) { public void setWheels(final int wheels) {
mWheels = wheels; mWheels = wheels;
} }
@@ -205,7 +206,7 @@ public class Kart {
* *
* @param accessory the availability state of accessory for this kart object. * @param accessory the availability state of accessory for this kart object.
*/ */
public void setAccessory(int accessory) { public void setAccessory(final int accessory) {
mAccessory = accessory; mAccessory = accessory;
} }
@@ -223,7 +224,7 @@ public class Kart {
* *
* @param dedicatedDriver the dedicated driver for this kart. * @param dedicatedDriver the dedicated driver for this kart.
*/ */
public void setDedicatedDriver(String dedicatedDriver) { public void setDedicatedDriver(final String dedicatedDriver) {
mDedicatedDriver = dedicatedDriver; mDedicatedDriver = dedicatedDriver;
} }
@@ -242,7 +243,7 @@ public class Kart {
* @param freeForAll the availability state of this kart for other characters than the * @param freeForAll the availability state of this kart for other characters than the
* dedicated driver. * dedicated driver.
*/ */
public void setFreeForAll(int freeForAll) { public void setFreeForAll(final int freeForAll) {
mFreeForAll = freeForAll; mFreeForAll = freeForAll;
} }

View File

@@ -64,29 +64,30 @@ public class Ruleset {
/** /**
* Empty default constructor. * Empty default constructor.
*/ */
public Ruleset() {} public Ruleset() {
}
/** /**
* The constructor of this ruleset object. * The constructor of this ruleset object.
* *
* @param id The database ID of this ruleset object. * @param id The database ID of this ruleset object.
* @param game The name of the game where this ruleset object is available. * @param game The name of the game where this ruleset object is available.
* @param mirrorClassAvailable The availability state of a mirror class. * @param mirrorClassAvailable The availability state of a mirror class.
* @param ccm50Available The availability state of a 50 ccm class. * @param ccm50Available The availability state of a 50 ccm class.
* @param ccm100Available The availability state of a 100 ccm class. * @param ccm100Available The availability state of a 100 ccm class.
* @param ccm150Available The availability state of a 150 ccm class. * @param ccm150Available The availability state of a 150 ccm class.
* @param ccm200Available The availability state of a 200 ccm class. * @param ccm200Available The availability state of a 200 ccm class.
* @param kartsFreeForAll The availability state of a karts for all characters by default. * @param kartsFreeForAll The availability state of a karts for all characters by default.
* @param bikesAvailable The availability state of a bikes. * @param bikesAvailable The availability state of a bikes.
*/ */
public Ruleset(final int id, final String game, final int mirrorClassAvailable, public Ruleset(final int id, final String game, final int mirrorClassAvailable,
final int ccm50Available, final int ccm100Available, final int ccm150Available, final int ccm50Available, final int ccm100Available, final int ccm150Available,
final int ccm200Available, final int kartsFreeForAll, final int bikesAvailable) { final int ccm200Available, final int kartsFreeForAll, final int bikesAvailable) {
Log.d(TAG, "Ruleset: New Ruleset created with _id = [" + id + "], game = [" + game Log.d(TAG, "Ruleset: New Ruleset created with _id = [" + id + "], game = [" + game
+ "], mirror available = [" + mirrorClassAvailable + "], 50 ccm available = [" + "], mirror available = [" + mirrorClassAvailable + "], 50 ccm available = ["
+ ccm50Available + "], 100 ccm available = [" + ccm100Available + ccm50Available + "], 100 ccm available = [" + ccm100Available
+ "], 150 ccm available = [" + ccm150Available + "], 200 ccm available = [" + "], 150 ccm available = [" + ccm150Available + "], 200 ccm available = ["
+ ccm200Available + "], karts free for all = [" + kartsFreeForAll + ccm200Available + "], karts free for all = [" + kartsFreeForAll
+ "], bikes available = [" + bikesAvailable + "]"); + "], bikes available = [" + bikesAvailable + "]");
mId = id; mId = id;
mGame = game; mGame = game;
@@ -149,7 +150,7 @@ public class Ruleset {
* *
* @param ccm50Available the availability of a 50 ccm class. * @param ccm50Available the availability of a 50 ccm class.
*/ */
public void set50CcmAvailable(int ccm50Available) { public void set50CcmAvailable(final int ccm50Available) {
m50CcmAvailable = ccm50Available; m50CcmAvailable = ccm50Available;
} }
@@ -167,7 +168,7 @@ public class Ruleset {
* *
* @param ccm100Available the availability of a 100 ccm class. * @param ccm100Available the availability of a 100 ccm class.
*/ */
public void set100CcmAvailable(int ccm100Available) { public void set100CcmAvailable(final int ccm100Available) {
m100CcmAvailable = ccm100Available; m100CcmAvailable = ccm100Available;
} }
@@ -185,7 +186,7 @@ public class Ruleset {
* *
* @param ccm150Available the availability of a 150 ccm class. * @param ccm150Available the availability of a 150 ccm class.
*/ */
public void set150CcmAvailable(int ccm150Available) { public void set150CcmAvailable(final int ccm150Available) {
m150CcmAvailable = ccm150Available; m150CcmAvailable = ccm150Available;
} }
@@ -203,7 +204,7 @@ public class Ruleset {
* *
* @param ccm200Available the availability of a 200 ccm class. * @param ccm200Available the availability of a 200 ccm class.
*/ */
public void set200CcmAvailable(int ccm200Available) { public void set200CcmAvailable(final int ccm200Available) {
m200CcmAvailable = ccm200Available; m200CcmAvailable = ccm200Available;
} }
@@ -221,7 +222,7 @@ public class Ruleset {
* *
* @param mirrorClassAvailable the availability of a mirror class. * @param mirrorClassAvailable the availability of a mirror class.
*/ */
public void setMirrorClassAvailable(int mirrorClassAvailable) { public void setMirrorClassAvailable(final int mirrorClassAvailable) {
mMirrorClassAvailable = mirrorClassAvailable; mMirrorClassAvailable = mirrorClassAvailable;
} }
@@ -239,7 +240,7 @@ public class Ruleset {
* *
* @param kartsFreeForAll the availability of all karts for all characters. * @param kartsFreeForAll the availability of all karts for all characters.
*/ */
public void setKartsFreeForAll(int kartsFreeForAll) { public void setKartsFreeForAll(final int kartsFreeForAll) {
mKartsFreeForAll = kartsFreeForAll; mKartsFreeForAll = kartsFreeForAll;
} }
@@ -257,7 +258,7 @@ public class Ruleset {
* *
* @param bikesAvailable the availability of bikes. * @param bikesAvailable the availability of bikes.
*/ */
public void setBikesAvailable(int bikesAvailable) { public void setBikesAvailable(final int bikesAvailable) {
mBikesAvailable = bikesAvailable; mBikesAvailable = bikesAvailable;
} }
} }

View File

@@ -51,7 +51,8 @@ public class Track {
/** /**
* Empty default constructor. * Empty default constructor.
*/ */
public Track() {} public Track() {
}
/** /**
* The constructor of this track object. * The constructor of this track object.
@@ -141,9 +142,10 @@ public class Track {
/** /**
* Sets the package name where this track is part of. * Sets the package name where this track is part of.
*
* @param packageName the package name where this track is part of. * @param packageName the package name where this track is part of.
*/ */
public void setPackage(String packageName) { public void setPackage(final String packageName) {
mPackage = packageName; mPackage = packageName;
} }
@@ -161,7 +163,7 @@ public class Track {
* *
* @param number the number of the track within the package. * @param number the number of the track within the package.
*/ */
public void setNumber(int number) { public void setNumber(final int number) {
mNumber = number; mNumber = number;
} }

View File

@@ -17,62 +17,83 @@ import com.de.aldo_apps.aldo.mariokartcircuitselector.TrackContentProvider;
import com.de.aldo_apps.aldo.mariokartcircuitselector.WheelsContentProvider; import com.de.aldo_apps.aldo.mariokartcircuitselector.WheelsContentProvider;
/** /**
* Created by aldo7224 on 16.08.17. * The ListFragment which is initialized in each PagerView and gets populated with data retrieved
* from database via cursor loader.
*
* @author aldo7224
* @version 0.1
* @since 17.08.2017
*/ */
public class GenericListFragment extends ListFragment
implements LoaderManager.LoaderCallbacks<Cursor> {
public class GenericListFragment extends ListFragment implements LoaderManager.LoaderCallbacks<Cursor> { /**
* Tag for debugging purpose.
*/
private static final String TAG = "GenericListFragment";
/**
* The SimpleCursorAdapter which populates the ListView.
* TODO: Needs to be replaced with Custom Adapter.
*/
private SimpleCursorAdapter mCursorAdapter; private SimpleCursorAdapter mCursorAdapter;
@Override @Override
public void onCreate(final Bundle bundle) { public void onCreate(final Bundle bundle) {
super.onCreate(bundle); super.onCreate(bundle);
final Bundle bundle2 = getArguments(); // Get Arguments from previous Class.
if (bundle2 != null) { final Bundle arguments = getArguments();
final String[] projection = bundle2.getStringArray("FOO"); if (arguments != null) {
final int loaderId = bundle2.getInt("BAR"); // Get Projection and LoaderId from arguments.
Log.d("#####", "onCreate: New GenericListFragment with loaderId = [" + loaderId final String[] projection = arguments.getStringArray(Constants.PROJECTION_KEY);
final int loaderId = arguments.getInt(Constants.LOADER_ID_KEY);
Log.d(TAG, "onCreate: New GenericListFragment with loaderId = [" + loaderId
+ "] and projection = [" + projection.toString() + "]"); + "] and projection = [" + projection.toString() + "]");
final int[] values = new int[] {android.R.id.text1}; // TODO: Replace with real ViewIds as soon as we use custom layout.
final int[] values = new int[]{android.R.id.text1};
// TODO: Replace with custom Layout and Adapter.
mCursorAdapter = new SimpleCursorAdapter(getContext(), mCursorAdapter = new SimpleCursorAdapter(getContext(),
android.R.layout.simple_list_item_1, android.R.layout.simple_list_item_1,
null, Constants.PROJECTION_TEST, values, 0); null, projection, values, 0);
// Set the ListAdapter to the ListView.
setListAdapter(mCursorAdapter); setListAdapter(mCursorAdapter);
// initialize Loader for specified LoaderId.
getLoaderManager().initLoader(loaderId, null, this); getLoaderManager().initLoader(loaderId, null, this);
} else {
Log.d(TAG, "onCreate: No Arguments where provided. Skip Loader Creation.");
} }
} }
@Override @Override
public CursorLoader onCreateLoader(int id, Bundle args) { public CursorLoader onCreateLoader(final int id, final Bundle args) {
Log.d("########", "onCreateLoader: Creating Loader for ID [" + id + "]"); Log.d(TAG, "onCreateLoader: Creating Loader for ID [" + id + "]");
// Create CursorLoader for provided LoaderId.
switch (id) { switch (id) {
case Constants.CHARACTER_LOADER_ID: case Constants.CHARACTER_LOADER_ID:
Log.d("####", "onCreateLoader: Creating character loader"); Log.d(TAG, "onCreateLoader: Creating character loader");
return new CursorLoader(getContext(), return new CursorLoader(getContext(),
CharacterContentProvider.CONTENT_URI, CharacterContentProvider.CONTENT_URI,
Constants.PROJECTION_CHARACTER, null, null, null); Constants.PROJECTION_CHARACTER, null, null, null);
case Constants.KART_LOADER_ID: case Constants.KART_LOADER_ID:
Log.d("####", "onCreateLoader: Creating kart loader"); Log.d(TAG, "onCreateLoader: Creating kart loader");
return new CursorLoader(getContext(), return new CursorLoader(getContext(),
KartContentProvider.CONTENT_URI, KartContentProvider.CONTENT_URI,
Constants.PROJECTION_KART, null, null, null); Constants.PROJECTION_KART, null, null, null);
case Constants.WHEELS_LOADER_ID: case Constants.WHEELS_LOADER_ID:
Log.d("####", "onCreateLoader: Creating kart loader"); Log.d(TAG, "onCreateLoader: Creating kart loader");
return new CursorLoader(getContext(), return new CursorLoader(getContext(),
WheelsContentProvider.CONTENT_URI, WheelsContentProvider.CONTENT_URI,
Constants.PROJECTION_WHEELS, null, null, null); Constants.PROJECTION_WHEELS, null, null, null);
case Constants.ACCESSORY_LOADER_ID: case Constants.ACCESSORY_LOADER_ID:
Log.d("####", "onCreateLoader: Creating kart loader"); Log.d(TAG, "onCreateLoader: Creating kart loader");
return new CursorLoader(getContext(), return new CursorLoader(getContext(),
AccessoryContentProvider.CONTENT_URI, AccessoryContentProvider.CONTENT_URI,
Constants.PROJECTION_ACCESSORY, null, null, null); Constants.PROJECTION_ACCESSORY, null, null, null);
case Constants.TRACK_LOADER_ID: case Constants.TRACK_LOADER_ID:
Log.d("####", "onCreateLoader: Creating kart loader"); Log.d(TAG, "onCreateLoader: Creating kart loader");
return new CursorLoader(getContext(), return new CursorLoader(getContext(),
TrackContentProvider.CONTENT_URI, TrackContentProvider.CONTENT_URI,
Constants.PROJECTION_TRACK, null, null, null); Constants.PROJECTION_TRACK, null, null, null);
@@ -81,13 +102,14 @@ public class GenericListFragment extends ListFragment implements LoaderManager.L
} }
@Override @Override
public void onLoadFinished(Loader loader, Cursor cursor) { public void onLoadFinished(final Loader loader, final Cursor cursor) {
Log.d("#####", "onLoadFinished: Finished Loading for " + loader.getId()); Log.d(TAG, "onLoadFinished: Finished Loading for " + loader.getId());
// Swapping the cursor makes the Data visible in the corresponding ListView.
mCursorAdapter.swapCursor(cursor); mCursorAdapter.swapCursor(cursor);
} }
@Override @Override
public void onLoaderReset(Loader loader) { public void onLoaderReset(final Loader loader) {
mCursorAdapter.swapCursor(null); mCursorAdapter.swapCursor(null);
} }
} }

View File

@@ -4,7 +4,7 @@
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"
tools:context="com.de.aldo_apps.aldo.mariokartcircuitselector.GameSelection" tools:context="com.de.aldo_apps.aldo.mariokartcircuitselector.activities.GameSelection"
> >
<android.support.v4.view.ViewPager <android.support.v4.view.ViewPager