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,
@@ -233,7 +224,6 @@ public class DatabaseHandler extends SQLiteAssetHelper {
* @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,
@@ -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.

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,7 +64,8 @@ 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.
@@ -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() + "]");
// TODO: Replace with real ViewIds as soon as we use custom layout.
final int[] values = new int[]{android.R.id.text1}; 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