diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c6cbe56 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +*.iml +.gradle +/local.properties +/.idea/workspace.xml +/.idea/libraries +.DS_Store +/build +/captures diff --git a/.idea/.name b/.idea/.name new file mode 100644 index 0000000..a4ba410 --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +llsif \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..96cc43e --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml new file mode 100644 index 0000000..e7bedf3 --- /dev/null +++ b/.idea/copyright/profiles_settings.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..cf65fad --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..ee6ddd0 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,24 @@ + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..1a3eaff --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..33e04fc --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml new file mode 100644 index 0000000..7f68460 --- /dev/null +++ b/.idea/runConfigurations.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..6c0b863 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/README.md b/README.md index 5f15d6d..c37f17a 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,5 @@ -# ICS4U Personal Coding Project +# ICS4U-PCP -## Objective -State the objective of the project - -## Technical Requirements -### Knowledge -### Hardware -### Required Software - -## Install and Set Up -Outline the steps required to install and run your project - -## Usage -Outline anything the user needs to know to use your application +Summary: +I created an Android app that goes through a database of songs from the rhythm game Love Live School Idol Festival (LLSIF). If the user wants to gain Loveca (currency used in the game) from the game, they have to take into consideration what kind of cards they are playing with and how skilled they are depending on the song's difficulty. My app will take into consideration the attribute of the song, the difficulty, and the number of Bond Points one will get if they obtain a Full Combo. My app is essentially a game companion app that helps users optimize their Live Points to obtain more Loveca in less time. diff --git a/SQLCode b/SQLCode new file mode 100644 index 0000000..aaec290 --- /dev/null +++ b/SQLCode @@ -0,0 +1,32 @@ +CREATE TABLE LLSIF (name TEXT, attribute TEXT, easy INTEGER, easybondlp INTEGER, normal INTEGER, normalbondlp INTEGER, hard INTEGER, hardbondlp INTEGER, expert INTEGER, expertbondlp INTEGER); + +INSERT INTO LLSIF VALUES ("Bokura no LIVE Kimi to no LIFE", "Smile", 13, 3.25, 25, 4.17, 34, 3.78, 85, 3.4); +INSERT INTO LLSIF VALUES ("Yuujou No Change", "Pure", 13, 2.6, 25, 3.57, 46, 4.6, 90, 3.6); +INSERT INTO LLSIF VALUES ("Snow halation", "Cool", 12, 2.4, 26, 3.25, 46, 3.83, 90, 3.6); +INSERT INTO LLSIF VALUES ("baby maybe koi no button", "Pure", 13, 2.6, 27, 3, 50, 3.57, 92, 3.68); +INSERT INTO LLSIF VALUES ("Natsuiro Egao de 1, 2, Jump!", "Smile", 12, 2.4, 27, 2.7, 50, 3.33, 94, 3.76); +INSERT INTO LLSIF VALUES ("Mermaid Festa Vol.1", "Cool", 13, 2.6, 32, 3.2, 52, 3.47, 114, 4.56); +INSERT INTO LLSIF VALUES ("Mogyutto Love de Sekkinchuu!", "Pure", 13, 2.6, 32, 3.2, 52, 3.47, 114, 4.56); +INSERT INTO LLSIF VALUES ("Aishiteru Banzai!", "Smile", 13, 2.6, 33, 3.3, 50, 3.33, 77, 3.08); +INSERT INTO LLSIF VALUES ("Wonderful Rush", "Cool", 24, 4.8, 34, 3.4, 54, 3.6, 96, 3.84); +INSERT INTO LLSIF VALUES("Oh, Love & Peace!", "Smile", 24, 4.8, 35, 3.5, 59, 3.93, 121, 4.84); +INSERT INTO LLSIF VALUES("Bokura wa Ima no Naka de", "Smile", 24, 4.8, 34, 3.4, 61, 4.07, 114, 4.56); +INSERT INTO LLSIF VALUES("WILD STARS", "Cool", 24, 4.8, 35, 3.5, 65, 4.33, 125, 5); +INSERT INTO LLSIF VALUES("Kitto Seishun ga Kikoeru", "Pure", 24, 4.8, 34, 3.4, 63, 4.2, 129,5.16); +INSERT INTO LLSIF VALUES("Kaguya no Shiro de Odoritai", "Cool", 24, 4.8, 34, 3.4, 65, 4.33, 112, 4.48); +INSERT INTO LLSIF VALUES("Susume→Tomorrow", "Smile", 24, 4.8, 34, 3.4, 63, 4.2, 125, 5); +INSERT INTO LLSIF VALUES("No brand girls", "Cool", 24, 4.8, 34, 3.4, 77, 5.13, 121, 4.84); +INSERT INTO LLSIF VALUES("Wonder Zone", "Pure", 24, 4.8, 34, 3.4, 77, 5.13, 129, 5.16); +INSERT INTO LLSIF VALUES("Love Novels", "Smile", 13, 2.6, 33, 3.3, 61, 4.07, 114, 4.56); +INSERT INTO LLSIF VALUES("Korekara no Someday", "Smile", 26, 5.2, 35, 3.5, 79, 5.27, 127, 5.08); +INSERT INTO LLSIF VALUES("Shiranai Love * Oshiete Love", "Cool", 24, 4.8, 34, 3.4, 61, 4.07, 114, 4.56); +INSERT INTO LLSIF VALUES("START:DASH!!", "Smile", 26, 5.2, 46, 4.6, 90, 6, 129, 5.16); +INSERT INTO LLSIF VALUES("Sweet&Sweet Holiday", "Pure", 24, 4.8, 27, 2.7, 46, 3.07, 125, 5); +INSERT INTO LLSIF VALUES("Ai wa Taiyou Janai?", "Smile", 23, 4.6, 33, 3.3 ,63, 4.2, 96, 3.84); +INSERT INTO LLSIF VALUES("Diamond Princess no Yuuutsu", "Cool", 13, 2.6, 32, 3.2, 61, 4.07, 110, 4.4); +INSERT INTO LLSIF VALUES("Love marginal", "Smile", 24, 4.8, 33, 3.3, 65, 4.33, 129, 5.2); +INSERT INTO LLSIF VALUES("Takaramonos", "Pure", 27, 5.4, 48, 4.8, 96, 6.4, 129, 5.16); +INSERT INTO LLSIF VALUES("Paradise Live", "Cool", 25, 5, 46, 4.6, 81, 5.4, 139, 5.56); + +SELECT name, attribute, easy,easybondlp FROM LLSIF WHERE attribute = "Smile" ORDER BY easybondlp DESC; + diff --git a/app/.gitignore b/app/.gitignore new file mode 100644 index 0000000..796b96d --- /dev/null +++ b/app/.gitignore @@ -0,0 +1 @@ +/build diff --git a/app/build.gradle b/app/build.gradle new file mode 100644 index 0000000..9f8e5e7 --- /dev/null +++ b/app/build.gradle @@ -0,0 +1,30 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 23 + buildToolsVersion "23.0.3" + defaultConfig { + applicationId "com.example.hotz.llsif" + minSdkVersion 23 + targetSdkVersion 23 + versionCode 1 + versionName "1.0" + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } + sourceSets { main { res.srcDirs = ['src/main/res', 'src/main/res/drawable'] } } + productFlavors { + } +} + +dependencies { + compile fileTree(include: ['*.jar'], dir: 'libs') + testCompile 'junit:junit:4.12' + compile 'com.android.support:appcompat-v7:23.3.0' + compile 'com.android.support:design:23.3.0' + compile 'com.google.android.gms:play-services-appindexing:8.1.0' +} diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 0000000..1f7a0e9 --- /dev/null +++ b/app/proguard-rules.pro @@ -0,0 +1,17 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in /Users/hotz/Library/Android/sdk/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the proguardFiles +# directive in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} diff --git a/app/src/androidTest/java/com/example/hotz/llsif/ApplicationTest.java b/app/src/androidTest/java/com/example/hotz/llsif/ApplicationTest.java new file mode 100644 index 0000000..ffa5209 --- /dev/null +++ b/app/src/androidTest/java/com/example/hotz/llsif/ApplicationTest.java @@ -0,0 +1,13 @@ +package com.example.hotz.llsif; + +import android.app.Application; +import android.test.ApplicationTestCase; + +/** + * Testing Fundamentals + */ +public class ApplicationTest extends ApplicationTestCase { + public ApplicationTest() { + super(Application.class); + } +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..8a29d35 --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/FF Magda Clean Mono OT Bold.ttf b/app/src/main/assets/FF Magda Clean Mono OT Bold.ttf new file mode 100644 index 0000000..d54616f Binary files /dev/null and b/app/src/main/assets/FF Magda Clean Mono OT Bold.ttf differ diff --git a/app/src/main/assets/FF Magda Clean Mono OT Regular.ttf b/app/src/main/assets/FF Magda Clean Mono OT Regular.ttf new file mode 100644 index 0000000..5c43406 Binary files /dev/null and b/app/src/main/assets/FF Magda Clean Mono OT Regular.ttf differ diff --git a/app/src/main/assets/LISTFCEI.TTF b/app/src/main/assets/LISTFCEI.TTF new file mode 100644 index 0000000..c3fa433 Binary files /dev/null and b/app/src/main/assets/LISTFCEI.TTF differ diff --git a/app/src/main/java/com/example/hotz/llsif/DatabaseHelper.java b/app/src/main/java/com/example/hotz/llsif/DatabaseHelper.java new file mode 100644 index 0000000..5fed2c0 --- /dev/null +++ b/app/src/main/java/com/example/hotz/llsif/DatabaseHelper.java @@ -0,0 +1,182 @@ +package com.example.hotz.llsif; + +import android.content.Context; +import android.database.sqlite.SQLiteDatabase; +import android.database.sqlite.SQLiteException; +import android.database.sqlite.SQLiteOpenHelper; + +import java.io.File; + +/** + * @author Alena Calma + * @version 1.2 + */ + +public class DatabaseHelper extends SQLiteOpenHelper { + + // database path + public SQLiteException db; + public String DB_PATH; + // database version + private static final int DB_VERSION = 1; + // database name + public final static String DB_NAME = "songs.db"; + // name of the table. + public final static String TABLE_NAME = "LLSIF"; + public static Context currentContext; + private static final String KEY_ID = "_id"; + public final static String KEY_NAME = "name"; + public final static String KEY_ATTR = "attribute"; + public final static String KEY_EASY = "easy"; + public final static String KEY_EASYBLP = "easybondlp"; + public final static String KEY_NORM = "normal"; + public final static String KEY_NORMBLP = "normalbondlp"; + public final static String KEY_HARD = "hard"; + public final static String KEY_HARDBLP = "hardbondlp"; + public final static String KEY_EXPT = "expert"; + public final static String KEY_EXPTBLP = "expertbondlp"; + + // call this for database! + public DatabaseHelper(Context context) { + super(context, DB_NAME, null, DB_VERSION); + currentContext = context; + DB_PATH = "/data/data/" + context.getPackageName() + "/"+DB_NAME; + initialize(); + } + + @Override + public void onCreate(SQLiteDatabase db) { + + + } + @Override + public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { + + } + + + public void initialize() { + + SQLiteDatabase db; + + boolean dbExists = checkDbExists(); + + if (dbExists) { + // do nothing + } else { + + db = this.getReadableDatabase(); + // create table! + db.execSQL("CREATE TABLE " + TABLE_NAME + "(_id REAL, name TEXT, attribute TEXT, easy REAL, easybondlp REAL, normal REAL, normalbondlp REAL, hard REAL, hardbondlp REAL, expert REAL, expertbondlp REAL);"); + // insert values into table + db.execSQL("INSERT INTO LLSIF VALUES (0,'Natsuiro Egao de 1, 2, Jump!', 'Smile', 12, 2.4, 27, 2.7, 50, 3.33, 94, 3.76);"); + db.execSQL("INSERT INTO LLSIF VALUES (1,'Bokura no LIVE Kimi to no LIFE', 'Smile', 13, 3.25, 25, 4.17, 34, 3.78, 85, 3.4);"); + db.execSQL("INSERT INTO LLSIF VALUES (2,'Yuujou No Change', 'Pure', 13, 2.6, 25, 3.57, 46, 4.6, 90, 3.6);"); + db.execSQL("INSERT INTO LLSIF VALUES (3,'Snow halation', 'Cool', 12, 2.4, 26, 3.25, 46, 3.83, 90, 3.6);"); + db.execSQL("INSERT INTO LLSIF VALUES (4,'baby maybe koi no button', 'Pure', 13, 2.6, 27, 3, 50, 3.57, 92, 3.68);"); + db.execSQL("INSERT INTO LLSIF VALUES (5,'Mermaid Festa Vol.1', 'Cool', 13, 2.6, 32, 3.2, 52, 3.47, 114, 4.56);"); + db.execSQL("INSERT INTO LLSIF VALUES (6,'Mogyutto Love de Sekkinchuu!', 'Pure', 13, 2.6, 32, 3.2, 52, 3.47, 114, 4.56);"); + db.execSQL("INSERT INTO LLSIF VALUES (7,'Aishiteru Banzai!', 'Smile', 13, 2.6, 33, 3.3, 50, 3.33, 77, 3.08);"); + db.execSQL("INSERT INTO LLSIF VALUES (8,'Wonderful Rush', 'Cool', 24, 4.8, 34, 3.4, 54, 3.6, 96, 3.84);"); + db.execSQL("INSERT INTO LLSIF VALUES(9,'Oh, Love & Peace!', 'Smile', 24, 4.8, 35, 3.5, 59, 3.93, 121, 4.84);"); + db.execSQL("INSERT INTO LLSIF VALUES(10,'Bokura wa Ima no Naka de', 'Smile', 24, 4.8, 34, 3.4, 61, 4.07, 114, 4.56);"); + db.execSQL("INSERT INTO LLSIF VALUES(11,'WILD STARS', 'Cool', 24, 4.8, 35, 3.5, 65, 4.33, 125, 5);"); + db.execSQL("INSERT INTO LLSIF VALUES(12,'Kitto Seishun ga Kikoeru', 'Pure', 24, 4.8, 34, 3.4, 63, 4.2, 129,5.16);"); + db.execSQL("INSERT INTO LLSIF VALUES(13,'Kaguya no Shiro de Odoritai', 'Cool', 24, 4.8, 34, 3.4, 65, 4.33, 112, 4.48);"); + db.execSQL("INSERT INTO LLSIF VALUES(14,'Susume→Tomorrow', 'Smile', 24, 4.8, 34, 3.4, 63, 4.2, 125, 5);"); + db.execSQL("INSERT INTO LLSIF VALUES(15,'No brand girls', 'Cool', 24, 4.8, 34, 3.4, 77, 5.13, 121, 4.84);"); + db.execSQL("INSERT INTO LLSIF VALUES(16,'Wonder Zone', 'Pure', 24, 4.8, 34, 3.4, 77, 5.13, 129, 5.16);"); + db.execSQL("INSERT INTO LLSIF VALUES(17,'Love Novels', 'Smile', 13, 2.6, 33, 3.3, 61, 4.07, 114, 4.56);"); + db.execSQL("INSERT INTO LLSIF VALUES(18,'Korekara no Someday', 'Smile', 26, 5.2, 35, 3.5, 79, 5.27, 127, 5.08);"); + db.execSQL("INSERT INTO LLSIF VALUES(19,'Shiranai Love * Oshiete Love', 'Cool', 24, 4.8, 34, 3.4, 61, 4.07, 114, 4.56);"); + db.execSQL("INSERT INTO LLSIF VALUES(20,'START:DASH!!', 'Smile', 26, 5.2, 46, 4.6, 90, 6, 129, 5.16);"); + db.execSQL("INSERT INTO LLSIF VALUES(21,'Sweet&Sweet Holiday', 'Pure', 24, 4.8, 27, 2.7, 46, 3.07, 125, 5);"); + db.execSQL("INSERT INTO LLSIF VALUES(22,'Ai wa Taiyou Janai?', 'Smile', 23, 4.6, 33, 3.3 ,63, 4.2, 96, 3.84);"); + db.execSQL("INSERT INTO LLSIF VALUES(23,'Diamond Princess no Yuuutsu', 'Cool', 13, 2.6, 32, 3.2, 61, 4.07, 110, 4.4);"); + db.execSQL("INSERT INTO LLSIF VALUES(24,'Love marginal', 'Smile', 24, 4.8, 33, 3.3, 65, 4.33, 129, 5.2);"); + db.execSQL("INSERT INTO LLSIF VALUES(25,'Takaramonos', 'Pure', 27, 5.4, 48, 4.8, 96, 6.4, 129, 5.16);"); + db.execSQL("INSERT INTO LLSIF VALUES(26,'Paradise Live', 'Cool', 25, 5, 46, 4.6, 81, 5.4, 139, 5.56);"); + db.execSQL("INSERT INTO LLSIF VALUES(27,'Listen to my heart!!', 'Pure', 26, 5.2, 46, 4.6, 85, 5.67, 125, 5);"); + db.execSQL("INSERT INTO LLSIF VALUES(28,'Music S.T.A.R.T!!', 'Smile', 27, 5.4, 48, 4.8, 81, 5.4, 152, 6.08);"); + db.execSQL("INSERT INTO LLSIF VALUES(29,'Anone Ganbare!', 'Cool', 26, 5.2, 46, 4.6, 67, 4.47, 114, 4.56);"); + db.execSQL("INSERT INTO LLSIF VALUES(30,'LOVELESS WORLD', 'Cool', 25, 5, 50, 5, 90, 6, 152, 6.08);"); + db.execSQL("INSERT INTO LLSIF VALUES(31,'after school NAVIGATORS', 'Pure', 27, 5.4, 48, 4.8, 83, 5.53, 129, 5.16);"); + db.execSQL("INSERT INTO LLSIF VALUES(32,'LONELIEST BABY', 'Cool', 27, 5.4, 59, 5.9, 96, 6.4, 141, 5.64);"); + db.execSQL("INSERT INTO LLSIF VALUES(33,'Cutie Panther', 'Smile', 27, 5.4, 46, 4.6, 83, 5.53, 139, 5.56);"); + db.execSQL("INSERT INTO LLSIF VALUES(34,'Sore wa bokutachi no kiseki', 'Smile', 24, 4.8, 46, 4.6, 83, 5.53, 123, 4.92);"); + db.execSQL("INSERT INTO LLSIF VALUES(35,'Pure girls project', 'Pure', 25, 5, 48, 4.8, 89, 5.27, 0 ,0);"); + db.execSQL("INSERT INTO LLSIF VALUES(36,'Donna Toki mo Zutto', 'Pure', 13, 2.6, 34, 3.4, 65, 4.33, 116, 4.64);"); + db.execSQL("INSERT INTO LLSIF VALUES(37,'Binetsu kara Mystery', 'Cool', 27, 5.4, 36, 3.6, 90, 6, 145, 5.8);"); + db.execSQL("INSERT INTO LLSIF VALUES(38,'Yume no Tobira', 'Pure', 27, 5.4, 50, 5, 92, 6.13, 156, 6.2);"); + db.execSQL("INSERT INTO LLSIF VALUES(39,'Natsu, owaranaide.', 'Smile', 10, 2, 26, 2.6, 54, 3.6, 110, 4.4);"); + db.execSQL("INSERT INTO LLSIF VALUES(40,'Love wing bell', 'Smile', 13, 2.6, 33, 3.3, 67, 4.47, 114, 4.6);"); + db.execSQL("INSERT INTO LLSIF VALUES(41,'UNBALANCED LOVE', 'Cool', 26, 5.2, 46, 4.6, 81, 5.4, 114, 4.6);"); + db.execSQL("INSERT INTO LLSIF VALUES(42,'Dancing stars on me!', 'Cool', 23, 4.6, 46, 4.6, 90, 6, 121, 4.8);"); + db.execSQL("INSERT INTO LLSIF VALUES(43,'Kimi no Kuse ni!', 'Pure', 13, 2.6, 27, 2.7, 63, 4.2, 98, 3.9);"); + db.execSQL("INSERT INTO LLSIF VALUES(44,'KiRa-KiRa Sensation!', 'Pure', 24, 4.8, 48, 4.8, 85, 5.66, 139, 5.6);"); + db.execSQL("INSERT INTO LLSIF VALUES(45,'Arifureta Kanashimi no Hate', 'Cool', 11, 2.2, 25, 2.5, 46, 3.07, 90, 3.6);"); + db.execSQL("INSERT INTO LLSIF VALUES(46,'Happy maker!', 'Smile', 24, 4.8, 50, 5, 85, 5.66, 152, 6.1);"); + db.execSQL("INSERT INTO LLSIF VALUES(47,'Kodoku na Heaven', 'Pure', 26, 5.2, 54, 5.4, 98, 6.5, 147, 5.9);"); + db.execSQL("INSERT INTO LLSIF VALUES(48,'Datte Datte Aa Mujou', 'Cool', 23, 4.6, 48,4.8, 98, 6.5, 145, 5.8);"); + db.execSQL("INSERT INTO LLSIF VALUES(49,'Someday of my life', 'Smile', 13, 2.6, 34, 3.4, 79, 5.3, 125, 5);"); + db.execSQL("INSERT INTO LLSIF VALUES(50,'COLORFUL VOICE', 'Smile', 27, 5.4, 59, 5.9, 96, 6.4, 154, 6.2);"); + db.execSQL("INSERT INTO LLSIF VALUES(51,'Blueberry♡Train', 'Pure', 13, 2.6, 35, 3.5, 67, 4.5, 110, 4.4);"); + db.execSQL("INSERT INTO LLSIF VALUES(52,'SENTIMENTAL Steps', 'Pure', 11, 2.2, 27, 2.7, 65, 4.3, 94, 3.8);"); + db.execSQL("INSERT INTO LLSIF VALUES(53,'Daring!!', 'Cool', 13, 2.6, 35, 3.5, 85, 5.7, 123, 4.9);"); + db.execSQL("INSERT INTO LLSIF VALUES(54,'Mou Hitori Janai yo', 'Smile', 11, 2.2, 26, 2.6, 48, 3.2, 67, 2.7);"); + db.execSQL("INSERT INTO LLSIF VALUES(55,'Yuuki no Reason', 'Cool', 24, 4.8, 52, 5.2, 94, 6.3, 125, 5);"); + db.execSQL("INSERT INTO LLSIF VALUES(56,'Watashitachi wa Mirai no Hana', 'Cool', 27, 5.4, 48, 4.8, 96, 6.4, 152, 6.08);"); + db.execSQL("INSERT INTO LLSIF VALUES(57,'Koi no Signal Rin rin rin!', 'Smile', 23, 4.6, 48, 4.8, 96, 6.4, 143, 5.7);"); + db.execSQL("INSERT INTO LLSIF VALUES(58,'Spica Terrible', 'Pure', 23, 4.6, 36, 3.6, 81, 5.4, 147, 5.9);"); + db.execSQL("INSERT INTO LLSIF VALUES(59,'Mahoutsukai Hajimemashita!', 'Smile', 24, 4.8, 36, 3.6, 79, 5.3, 112, 4.5);"); + db.execSQL("INSERT INTO LLSIF VALUES(60,'Jun'ai Lens', 'Pure', 26, 5.2, 48, 4.8, 98, 6.5, 152, 6.1);"); + db.execSQL("INSERT INTO LLSIF VALUES(61,'Angelic Angel', 'Smile', 25, 5, 46, 4.6, 92, 6.1, 156, 6.2);"); + db.execSQL("INSERT INTO LLSIF VALUES(62,'Private Wars', 'Cool', 23, 4.6, 27, 2.7, 59, 3.9, 94, 3.8);"); + db.execSQL("INSERT INTO LLSIF VALUES(63,'Futari Happiness', 'Pure', 11, 2.2, 32, 3.2, 63, 4.2, 129, 5.2);"); + db.execSQL("INSERT INTO LLSIF VALUES(64,'SUNNY DAY SONG', 'Pure', 24, 4.8, 50, 5, 98, 6.5, 154, 6.2);"); + db.execSQL("INSERT INTO LLSIF VALUES(65,'Trouble Busters', 'Smile', 24, 4.8, 46, 4.6, 98, 6.5, 156, 6.2);"); + db.execSQL("INSERT INTO LLSIF VALUES(66,'Eien Friends', 'Smile', 25, 5, 48, 4.8, 98, 6.5, 0, 0);"); + db.execSQL("INSERT INTO LLSIF VALUES(67,'Aki no Anata no Sora Tooku', 'Pure', 13, 2.6, 35, 3.5, 83, 5.5, 0, 0);"); + db.execSQL("INSERT INTO LLSIF VALUES(68,'Fuyu ga Kureta Yokan', 'Cool', 13, 2.6, 35, 3.5, 79, 5.3, 0, 0);"); + db.execSQL("INSERT INTO LLSIF VALUES(69,'Bokutachi wa Hitotsu no Hikari', 'Smile', 24, 4.8, 46, 4.6, 94, 6.3, 129, 5.2);"); + db.execSQL("INSERT INTO LLSIF VALUES(70,'Nightingale Love Song', 'Cool', 13, 2.6, 27, 2.7, 61, 4.1, 94, 3.8);"); + db.execSQL("INSERT INTO LLSIF VALUES(71,'Shiawase Iki no SMILING!', 'Smile', 13, 2.6, 34, 3.4, 67, 4.5, 114, 4.6);"); + db.execSQL("INSERT INTO LLSIF VALUES(72,'HEART to HEART!', 'Smile', 25, 5, 52, 5.2, 96, 6.4, 158, 6.3);"); + db.execSQL("INSERT INTO LLSIF VALUES(73,'Arashi no Naka no Koi dakara', 'Cool', 13, 2.6, 36, 3.6, 96, 6.4, 145, 5.8);"); + db.execSQL("INSERT INTO LLSIF VALUES(74,'Shocking Party', 'Cool', 11, 2.2, 33, 3.3, 52, 3.5, 0, 0);"); + db.execSQL("INSERT INTO LLSIF VALUES(75,'Mi wa µ'sic no Mi', 'Pure', 23, 4.6, 46, 4.6, 79, 5.3, 0, 0);"); + db.execSQL("INSERT INTO LLSIF VALUES(76,'Super LOVE=Super LIVE!', 'Cool', 25, 5, 54, 5.4, 108, 7.2, 0, 0);"); + db.execSQL("INSERT INTO LLSIF VALUES(77,'MOMENT RING', 'Smile', 25, 5, 52, 5.2, 110, 7.3, 0, 0);"); + db.execSQL("INSERT INTO LLSIF VALUES(78,'Sayounara e Sayonara!', 'Pure', 13, 2.6, 33, 3.3, 85, 5.7, 0, 0);"); + db.execSQL("INSERT INTO LLSIF VALUES(79,'Kimi no Kokoro Wa Kagayaiteru Kai?', 'Pure', 24, 4.8, 46, 4.6, 90, 6, 0, 0);"); + db.execSQL("INSERT INTO LLSIF VALUES(80,'Step! ZERO to ONE', 'Cool', 23, 4.6, 48, 4.8, 98, 6.5, 0, 0);"); + db.execSQL("INSERT INTO LLSIF VALUES(81,'Aqours☆HEROES ', 'Smile', 23, 4.6, 46, 4.6, 83, 5.5, 0, 0);"); + db.execSQL("INSERT INTO LLSIF VALUES(82,'Moshimo Kara Kitto', 'Pure', 9, 1.8, 23, 2.3, 52, 3.5, 79, 3.2);"); + db.execSQL("INSERT INTO LLSIF VALUES(83,'Suki desu ga Suki desu ka?', 'Pure', 25, 5, 50, 5, 96, 6.4, 160, 6.4);"); + db.execSQL("INSERT INTO LLSIF VALUES(84,'Zurui yo Magnetic Today', 'Cool', 13, 2.6, 34, 3.4, 94, 6.3, 145, 5.8);"); + db.execSQL("INSERT INTO LLSIF VALUES(85,'Kururin MIRACLE', 'Smile', 13, 2.6, 35, 3.5, 85, 5.7, 139, 5.6);"); + db.execSQL("INSERT INTO LLSIF VALUES(86,'Storm in Lover', 'Cool', 23, 4.6, 34, 3.4, 79, 5.3, 129, 5.2);"); + db.execSQL("INSERT INTO LLSIF VALUES(87,'Puwa Puwa-O!', 'Smile', 13, 2.6, 46, 4.6, 9, 6.4, 145, 5.8);"); + db.execSQL("INSERT INTO LLSIF VALUES(88,'WAO-WAO Powerful day!', 'Smile', 25, 5, 50, 5, 121, 8.1, 0, 0);"); + db.execSQL("INSERT INTO LLSIF VALUES(89,'Omoide Ijou ni Naritakute', 'Pure', 11, 2.2, 23, 2.3, 48, 3.2, 0, 0);"); + db.execSQL("INSERT INTO LLSIF VALUES(90,'Sakkaku CROSSROADS', 'Cool', 12, 2.4, 32, 3.2, 77, 5.1, 0, 0);"); + db.execSQL("INSERT INTO LLSIF VALUES(91,'Mermaid festa vol.2 ~Passionate~', 'Smile', 32, 6.4, 61, 6.1, 96, 6.4, 158, 6.32);"); + db.execSQL("INSERT INTO LLSIF VALUES(92,'Otomeshiki Renai Juku', 'Pure', 32, 6.4, 54, 5.4, 81, 5.4, 152, 6.08);"); + db.execSQL("INSERT INTO LLSIF VALUES(93,'Soldier Game', 'Cool', 32, 6.4, 54, 5.4, 90, 6, 154, 6.16);"); + db.execSQL("INSERT INTO LLSIF VALUES(94,'Kokuhaku Biyori, desu!', 'Pure', 32, 6.4, 54, 5.4, 90, 6, 156, 6.24);"); + db.execSQL("INSERT INTO LLSIF VALUES(95,'Yume naki Yume wa Yume janai', 'Smile', 46, 9.2, 77, 7.7, 116, 7.73, 172, 6.9);"); + db.execSQL("INSERT INTO LLSIF VALUES(96,'Anemone Heart', 'Cool', 52, 10.4, 92, 9.2, 114, 7.6, 145, 5.8);"); + db.execSQL("INSERT INTO LLSIF VALUES(97,'Nawatobi', 'Pure', 12, 2.4, 33, 3.3, 67, 4.47, 92, 3.7);"); + db.execSQL("INSERT INTO LLSIF VALUES(98,'Beat in Angel', 'Cool', 46, 9.2, 79, 7.9, 123, 8.2, 160, 6.4);"); + db.execSQL("INSERT INTO LLSIF VALUES(99,'Nico Puri♡Joshidou', 'Smile', 52, 10.4, 81, 8.1, 123, 8.2, 183, 7.3);"); + db.execSQL("INSERT INTO LLSIF VALUES(100,'Garasu no Hanazono', 'Pure', 35, 7, 77, 7.7, 127, 8.46, 170, 6.8);"); + } + } + + + private boolean checkDbExists() { + + File dbFile = currentContext.getDatabasePath(DB_NAME); + return dbFile.exists(); + } +} diff --git a/app/src/main/java/com/example/hotz/llsif/MainActivity.java b/app/src/main/java/com/example/hotz/llsif/MainActivity.java new file mode 100644 index 0000000..fd440e9 --- /dev/null +++ b/app/src/main/java/com/example/hotz/llsif/MainActivity.java @@ -0,0 +1,230 @@ +package com.example.hotz.llsif; + +import android.content.Context; +import android.content.Intent; +import android.graphics.Typeface; +import android.os.Bundle; +import android.support.design.widget.FloatingActionButton; +import android.support.design.widget.Snackbar; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.Toolbar; +import android.view.View; +import android.view.Menu; +import android.view.MenuItem; +import android.widget.RadioButton; +import android.widget.TextView; +import android.widget.Toast; + +/** + * @author Alena Calma + * @version 1.2 + */ + +public class MainActivity extends AppCompatActivity { + + DatabaseHelper songDb; + private int difficulty = -1; + private int attribute = -1; + private String result = null; + + // we define 2 flags, difficulty and attribute + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + Typeface myTypeface = Typeface.createFromAsset(getAssets(),"LISTFCEI.TTF"); + TextView myTextview = (TextView)findViewById(R.id.title); + myTextview.setTypeface(myTypeface); + + Typeface myTypeface2 = Typeface.createFromAsset(getAssets(),"FF Magda Clean Mono OT Regular.ttf"); + TextView myTextview2 = (TextView)findViewById(R.id.cattribute); + TextView myTextview3 = (TextView)findViewById(R.id.textView3) ; + myTextview2.setTypeface(myTypeface2); + myTextview3.setTypeface(myTypeface2); + + + + final FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); + + + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + if (difficulty != -1 && attribute != -1){ + // This is where we are going to send our query. + Bundle packet = new Bundle(); + result = selectQuery(v, difficulty, attribute); + packet.putString("query", result); + packet.putInt("difficulty", difficulty); + Intent i = new Intent(MainActivity.this, ResultActivity.class); + i.putExtras(packet); + startActivity(i); + + } else{ + // do nothing. + } + } + }); + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + // Inflate th e menu; this adds items to the action bar if it is present. + getMenuInflater().inflate(R.menu.menu_main, menu); + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + // Handle action bar item clicks here. The action bar will + // automatically handle clicks on the Home/Up button, so long + // as you specify a parent activity in AndroidManifest.xml. + int id = item.getItemId(); + + //noinspection SimplifiableIfStatement + if (id == R.id.action_settings) { + return true; + } + + return super.onOptionsItemSelected(item); + } + + public void onAttributeButtonClicked (View view){ + // is button checked? + boolean check = ((RadioButton) view).isChecked(); + switch(view.getId()){ + case R.id.cool: + if (check) { + // match query where attribute = cool + attribute= 0; + break; + } + case R.id.pure: + if (check){ + // match query where attribute = pure + attribute = 1; + break; + } + case R.id.smile: + if (check){ + // match query where attribute = smile + attribute = 2; + break; + } + } + } + + public void onDifficultyButtonClicked (View view){ + + boolean check = ((RadioButton) view).isChecked(); + switch(view.getId()){ + case R.id.easy: + if (check){ + difficulty = 0; + break; + } + case R.id.medium: + if (check){ + difficulty = 1; + break; + } + case R.id.hard: + if (check){ + difficulty = 2; + break; + } + case R.id.expert: + if (check){ + difficulty = 3; + break; + } + } + } + + public String selectQuery (View view, int difficulty, int attribute){ + + String selected = null; + + // if by now no difficulty is chosen + if (difficulty == -1 || attribute == -1){ + // show an error! + Context context = getApplicationContext(); + + Toast toast = Toast.makeText(context, "None selected!", Toast.LENGTH_SHORT); + toast.show(); + + } + // for easy + if (difficulty == 0){ + + if (attribute == 0){ + selected = "SELECT _id, name, attribute, easy, easybondlp FROM LLSIF WHERE attribute = 'Cool' ORDER BY easybondlp DESC;"; + } + + if (attribute == 1){ + selected = "SELECT _id, name, attribute, easy, easybondlp FROM LLSIF WHERE attribute = 'Pure' ORDER BY easybondlp DESC;"; + } + + if (attribute == 2){ + selected = "SELECT _id, name, attribute, easy, easybondlp FROM LLSIF WHERE attribute = 'Smile' ORDER BY easybondlp DESC;"; + } + + } + // for normal + if (difficulty == 1){ + + if (attribute == 0){ + selected = "SELECT _id, name, attribute, normal, normalbondlp FROM LLSIF WHERE attribute = 'Cool' ORDER BY normalbondlp DESC;"; + } + + if (attribute == 1){ + selected = "SELECT _id, name, attribute, normal, normalbondlp FROM LLSIF WHERE attribute = 'Pure' ORDER BY normalbondlp DESC;"; + } + + if (attribute == 2){ + selected = "SELECT _id, name, attribute, normal, normalbondlp FROM LLSIF WHERE attribute = 'Smile' ORDER BY normalbondlp DESC;"; + } + + } + // for hard + if (difficulty == 2){ + + if (attribute == 0){ + selected = "SELECT _id, name, attribute, hard, hardbondlp FROM LLSIF WHERE attribute = 'Cool' ORDER BY hardbondlp DESC;"; + } + + if (attribute == 1){ + selected = "SELECT _id, name, attribute, hard, hardbondlp FROM LLSIF WHERE attribute = 'Pure' ORDER BY hardbondlp DESC;"; + } + + if (attribute == 2){ + selected = "SELECT _id, name, attribute, hard, hardbondlp FROM LLSIF WHERE attribute = 'Smile' ORDER BY hardbondlp DESC;"; + } + + + } + // for expert + if (difficulty == 3){ + + if (attribute == 0){ + selected = "SELECT _id, name, attribute, expert, expertbondlp FROM LLSIF WHERE attribute = 'Cool' ORDER BY expertbondlp DESC;"; + } + + if (attribute == 1){ + selected = "SELECT _id, name, attribute, expert, expertbondlp FROM LLSIF WHERE attribute = 'Pure' ORDER BY expertbondlp DESC;"; + } + + if (attribute == 2){ + selected = "SELECT _id, name, attribute, expert, expertbondlp FROM LLSIF WHERE attribute = 'Smile' ORDER BY expertbondlp DESC;"; + } + + } + + return selected; + } + +} + diff --git a/app/src/main/java/com/example/hotz/llsif/ResultActivity.java b/app/src/main/java/com/example/hotz/llsif/ResultActivity.java new file mode 100644 index 0000000..d085481 --- /dev/null +++ b/app/src/main/java/com/example/hotz/llsif/ResultActivity.java @@ -0,0 +1,116 @@ +package com.example.hotz.llsif; + +import android.app.ListActivity; +import android.database.Cursor; +import android.database.sqlite.SQLiteDatabase; +import android.database.sqlite.SQLiteException; +import android.graphics.Typeface; +import android.os.Bundle; +import android.support.design.widget.FloatingActionButton; +import android.support.design.widget.Snackbar; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.Toolbar; +import android.util.Log; +import android.view.View; +import android.widget.ArrayAdapter; +import android.widget.TextView; + +import java.util.ArrayList; + +/** + * @author Alena Calma + * @version 1.2 + */ + +public class ResultActivity extends ListActivity{ + + private ArrayList results = new ArrayList(); + private String tableName = DatabaseHelper.TABLE_NAME; + private SQLiteDatabase db; + public int difficulty; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_result); + //Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + + Typeface myTypeface4 = Typeface.createFromAsset(getAssets(),"LISTFCEI.TTF"); + TextView myTextView4 = (TextView)findViewById(R.id.title2); + myTextView4.setTypeface(myTypeface4); + + // get our query string, remember our difficulty should not be null now! + String query = getBundle(); + // call dbhelper constructor! + System.out.println(query); + openAndQueryDatabase(query, difficulty); + + displayResultList(); + } + + public String getBundle(){ + + Bundle bundle = getIntent().getExtras(); + String query = bundle.getString("query"); + difficulty = bundle.getInt("difficulty"); + + return query; + + } + + private void displayResultList(){ + + setListAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, results)); + getListView().setTextFilterEnabled(true); + + } + + private void openAndQueryDatabase(String query, int difficulty){ + + try{ + + DatabaseHelper dbHelper = new DatabaseHelper(this.getApplicationContext()); + db = dbHelper.getReadableDatabase(); + Cursor cursor = db.rawQuery(query,null); + + if (cursor.moveToFirst()){ + do{ + String name = cursor.getString(cursor.getColumnIndex("name")); + String attribute = cursor.getString(cursor.getColumnIndex("attribute")); + float pts = -1; + float bondlp = -1; + System.out.println("We are in the cursor is moving" + " " + name + " " + attribute); + // switch statement for choosing right difficulty. + switch (difficulty){ + case 0: + System.out.println("In the case0!"); + pts = cursor.getFloat(cursor.getColumnIndex("easy")); + bondlp = cursor.getFloat(cursor.getColumnIndex("easybondlp")); + break; + case 1: System.out.println("In the case1!"); + pts = cursor.getFloat(cursor.getColumnIndex("normal")); + bondlp = cursor.getFloat(cursor.getColumnIndex("normalbondlp")); + break; + case 2: System.out.println("In the case2!"); + pts = cursor.getFloat(cursor.getColumnIndex("hard")); + bondlp = cursor.getFloat(cursor.getColumnIndex("hardbondlp")); + break; + case 3: System.out.println("In the case3!"); + pts = cursor.getFloat(cursor.getColumnIndex("expert")); + bondlp = cursor.getFloat(cursor.getColumnIndex("expertbondlp")); + break; + } + results.add("Song Name: " + name + ", Bond Points: " + String.valueOf(pts) + ", Bond per LP: "+ String.valueOf(bondlp)); + } while (cursor.moveToNext()); + } + } + catch (SQLiteException se){ + Log.e(getClass().getSimpleName(), "db read err!"); + } finally{ + if (db!=null) + //db.execSQL("DELETE FROM " + tableName); + System.out.println("DB IS NOT NULL!"); + db.close(); + } + } +} diff --git a/app/src/main/res/drawable/bgg_50.png b/app/src/main/res/drawable/bgg_50.png new file mode 100644 index 0000000..88dade4 Binary files /dev/null and b/app/src/main/res/drawable/bgg_50.png differ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..c8dc28b --- /dev/null +++ b/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/activity_result.xml b/app/src/main/res/layout/activity_result.xml new file mode 100644 index 0000000..347c90d --- /dev/null +++ b/app/src/main/res/layout/activity_result.xml @@ -0,0 +1,18 @@ + + + + + + + + + diff --git a/app/src/main/res/layout/content_main.xml b/app/src/main/res/layout/content_main.xml new file mode 100644 index 0000000..24d3c41 --- /dev/null +++ b/app/src/main/res/layout/content_main.xml @@ -0,0 +1,145 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/content_result.xml b/app/src/main/res/layout/content_result.xml new file mode 100644 index 0000000..1960405 --- /dev/null +++ b/app/src/main/res/layout/content_result.xml @@ -0,0 +1,38 @@ + + + + + + + + diff --git a/app/src/main/res/menu/menu_main.xml b/app/src/main/res/menu/menu_main.xml new file mode 100644 index 0000000..63c783f --- /dev/null +++ b/app/src/main/res/menu/menu_main.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000..fab758a Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000..fab758a Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000..fab758a Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000..fab758a Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000..fab758a Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/app/src/main/res/values-v21/styles.xml b/app/src/main/res/values-v21/styles.xml new file mode 100644 index 0000000..dbbdd40 --- /dev/null +++ b/app/src/main/res/values-v21/styles.xml @@ -0,0 +1,9 @@ + + + + diff --git a/app/src/main/res/values-w820dp/dimens.xml b/app/src/main/res/values-w820dp/dimens.xml new file mode 100644 index 0000000..63fc816 --- /dev/null +++ b/app/src/main/res/values-w820dp/dimens.xml @@ -0,0 +1,6 @@ + + + 64dp + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..1098ccd --- /dev/null +++ b/app/src/main/res/values/colors.xml @@ -0,0 +1,6 @@ + + + #cc0066 + #cc3399 + #cc3399 + diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml new file mode 100644 index 0000000..812cb7b --- /dev/null +++ b/app/src/main/res/values/dimens.xml @@ -0,0 +1,6 @@ + + + 16dp + 16dp + 16dp + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..5179e23 --- /dev/null +++ b/app/src/main/res/values/strings.xml @@ -0,0 +1,15 @@ + + llsif + Settings + Result + love live calculator + choose attribute + cool + smile + pure + choose difficulty + 2ez + medium + hard + expert + diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..5e399fa --- /dev/null +++ b/app/src/main/res/values/styles.xml @@ -0,0 +1,20 @@ + + + + + + + +