├── .gitignore ├── .idea ├── .gitignore ├── compiler.xml ├── gradle.xml ├── misc.xml └── vcs.xml ├── app ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── eu │ │ └── tutorials │ │ └── quizapp │ │ └── ExampleInstrumentedTest.kt │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── eu │ │ │ └── tutorials │ │ │ └── quizapp │ │ │ ├── Constants.kt │ │ │ ├── MainActivity.kt │ │ │ ├── Question.kt │ │ │ ├── QuizQuestionsActivity.kt │ │ │ └── ResultActivity.kt │ └── res │ │ ├── drawable-hdpi │ │ ├── ic_bg.png │ │ └── ic_trophy.png │ │ ├── drawable-ldpi │ │ ├── ic_bg.png │ │ └── ic_trophy.png │ │ ├── drawable-mdpi │ │ ├── ic_bg.png │ │ └── ic_trophy.png │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable-xhdpi │ │ ├── ic_bg.png │ │ └── ic_trophy.png │ │ ├── drawable-xxhdpi │ │ ├── ic_bg.png │ │ └── ic_trophy.png │ │ ├── drawable-xxxhdpi │ │ ├── ic_bg.png │ │ └── ic_trophy.png │ │ ├── drawable │ │ ├── correct_option_border_bg.xml │ │ ├── default_option_border_bg.xml │ │ ├── ic_flag_of_argentina.png │ │ ├── ic_flag_of_australia.png │ │ ├── ic_flag_of_belgium.png │ │ ├── ic_flag_of_brazil.png │ │ ├── ic_flag_of_denmark.png │ │ ├── ic_flag_of_fiji.png │ │ ├── ic_flag_of_germany.png │ │ ├── ic_flag_of_india.png │ │ ├── ic_flag_of_kuwait.png │ │ ├── ic_flag_of_new_zealand.png │ │ ├── ic_launcher_background.xml │ │ ├── selected_option_border_bg.xml │ │ └── wrong_option_border_bg.xml │ │ ├── layout │ │ ├── activity_main.xml │ │ ├── activity_quiz_questions.xml │ │ └── activity_result.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.webp │ │ └── ic_launcher_round.webp │ │ ├── values-night │ │ └── themes.xml │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── themes.xml │ └── test │ └── java │ └── eu │ └── tutorials │ └── quizapp │ └── ExampleUnitTest.kt ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/caches 5 | /.idea/libraries 6 | /.idea/modules.xml 7 | /.idea/workspace.xml 8 | /.idea/navEditor.xml 9 | /.idea/assetWizardSettings.xml 10 | .DS_Store 11 | /build 12 | /captures 13 | .externalNativeBuild 14 | .cxx 15 | local.properties 16 | -------------------------------------------------------------------------------- /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 18 | 19 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 14 | 15 | 16 | 17 | 18 | 19 | 21 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /app/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.application' 3 | id 'kotlin-android' 4 | } 5 | 6 | android { 7 | compileSdk 31 8 | 9 | defaultConfig { 10 | applicationId "eu.tutorials.quizapp" 11 | minSdk 21 12 | targetSdk 31 13 | versionCode 1 14 | versionName "1.0" 15 | 16 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" 17 | } 18 | 19 | buildTypes { 20 | release { 21 | minifyEnabled false 22 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 23 | } 24 | } 25 | compileOptions { 26 | sourceCompatibility JavaVersion.VERSION_1_8 27 | targetCompatibility JavaVersion.VERSION_1_8 28 | } 29 | kotlinOptions { 30 | jvmTarget = '1.8' 31 | } 32 | } 33 | 34 | dependencies { 35 | 36 | implementation 'androidx.core:core-ktx:1.6.0' 37 | implementation 'androidx.appcompat:appcompat:1.3.1' 38 | implementation 'com.google.android.material:material:1.4.0' 39 | implementation 'androidx.constraintlayout:constraintlayout:2.1.0' 40 | testImplementation 'junit:junit:4.+' 41 | androidTestImplementation 'androidx.test.ext:junit:1.1.3' 42 | androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' 43 | } -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /app/src/androidTest/java/eu/tutorials/quizapp/ExampleInstrumentedTest.kt: -------------------------------------------------------------------------------- 1 | package eu.tutorials.quizapp 2 | 3 | import androidx.test.platform.app.InstrumentationRegistry 4 | import androidx.test.ext.junit.runners.AndroidJUnit4 5 | 6 | import org.junit.Test 7 | import org.junit.runner.RunWith 8 | 9 | import org.junit.Assert.* 10 | 11 | /** 12 | * Instrumented test, which will execute on an Android device. 13 | * 14 | * See [testing documentation](http://d.android.com/tools/testing). 15 | */ 16 | @RunWith(AndroidJUnit4::class) 17 | class ExampleInstrumentedTest { 18 | @Test 19 | fun useAppContext() { 20 | // Context of the app under test. 21 | val appContext = InstrumentationRegistry.getInstrumentation().targetContext 22 | assertEquals("eu.tutorials.quizapp", appContext.packageName) 23 | } 24 | } -------------------------------------------------------------------------------- /app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 12 | 17 | 21 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /app/src/main/java/eu/tutorials/quizapp/Constants.kt: -------------------------------------------------------------------------------- 1 | package eu.tutorials.quizapp 2 | 3 | object Constants { 4 | 5 | // TODO Create a constant variables which we required in the result screen 6 | const val USER_NAME: String = "user_name" 7 | const val TOTAL_QUESTIONS: String = "total_questions" 8 | const val CORRECT_ANSWERS: String = "correct_answers" 9 | fun getQuestions(): ArrayList { 10 | val questionsList = ArrayList() 11 | 12 | // 1 13 | val que1 = Question( 14 | 1, "What country does this flag belong to?", 15 | R.drawable.ic_flag_of_argentina, 16 | "Argentina", "Australia", 17 | "Armenia", "Austria", 1 18 | ) 19 | 20 | questionsList.add(que1) 21 | 22 | // 2 23 | val que2 = Question( 24 | 2, "What country does this flag belong to?", 25 | R.drawable.ic_flag_of_australia, 26 | "Angola", "Austria", 27 | "Australia", "Armenia", 3 28 | ) 29 | 30 | questionsList.add(que2) 31 | 32 | // 3 33 | val que3 = Question( 34 | 3, "What country does this flag belong to?", 35 | R.drawable.ic_flag_of_brazil, 36 | "Belarus", "Belize", 37 | "Brunei", "Brazil", 4 38 | ) 39 | 40 | questionsList.add(que3) 41 | 42 | // 4 43 | val que4 = Question( 44 | 4, "What country does this flag belong to?", 45 | R.drawable.ic_flag_of_belgium, 46 | "Bahamas", "Belgium", 47 | "Barbados", "Belize", 2 48 | ) 49 | 50 | questionsList.add(que4) 51 | 52 | // 5 53 | val que5 = Question( 54 | 5, "What country does this flag belong to?", 55 | R.drawable.ic_flag_of_fiji, 56 | "Gabon", "France", 57 | "Fiji", "Finland", 3 58 | ) 59 | 60 | questionsList.add(que5) 61 | 62 | // 6 63 | val que6 = Question( 64 | 6, "What country does this flag belong to?", 65 | R.drawable.ic_flag_of_germany, 66 | "Germany", "Georgia", 67 | "Greece", "none of these", 1 68 | ) 69 | 70 | questionsList.add(que6) 71 | 72 | // 7 73 | val que7 = Question( 74 | 7, "What country does this flag belong to?", 75 | R.drawable.ic_flag_of_denmark, 76 | "Dominica", "Egypt", 77 | "Denmark", "Ethiopia", 3 78 | ) 79 | 80 | questionsList.add(que7) 81 | 82 | // 8 83 | val que8 = Question( 84 | 8, "What country does this flag belong to?", 85 | R.drawable.ic_flag_of_india, 86 | "Ireland", "Iran", 87 | "Hungary", "India", 4 88 | ) 89 | 90 | questionsList.add(que8) 91 | 92 | // 9 93 | val que9 = Question( 94 | 9, "What country does this flag belong to?", 95 | R.drawable.ic_flag_of_new_zealand, 96 | "Australia", "New Zealand", 97 | "Tuvalu", "United States of America", 2 98 | ) 99 | 100 | questionsList.add(que9) 101 | 102 | // 10 103 | val que10 = Question( 104 | 10, "What country does this flag belong to?", 105 | R.drawable.ic_flag_of_kuwait, 106 | "Kuwait", "Jordan", 107 | "Sudan", "Palestine", 1 108 | ) 109 | 110 | questionsList.add(que10) 111 | 112 | return questionsList 113 | } 114 | } -------------------------------------------------------------------------------- /app/src/main/java/eu/tutorials/quizapp/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package eu.tutorials.quizapp 2 | 3 | import android.content.Intent 4 | import android.os.Bundle 5 | import android.widget.Button 6 | import android.widget.Toast 7 | import androidx.appcompat.app.AppCompatActivity 8 | import androidx.appcompat.widget.AppCompatEditText 9 | 10 | 11 | class MainActivity : AppCompatActivity() { 12 | override fun onCreate(savedInstanceState: Bundle?) { 13 | super.onCreate(savedInstanceState) 14 | setContentView(R.layout.activity_main) 15 | 16 | val buttonStart:Button = findViewById(R.id.btn_start) 17 | val etName:AppCompatEditText = findViewById(R.id.et_name) 18 | buttonStart.setOnClickListener { 19 | if (etName.text.toString().isEmpty()){ 20 | Toast.makeText(this,"Please Enter Your Name",Toast.LENGTH_SHORT).show() 21 | }else{ 22 | val intent = Intent(this@MainActivity, QuizQuestionsActivity::class.java) 23 | // TODO Pass the name through intent using the constant variable which we have created. 24 | intent.putExtra(Constants.USER_NAME, etName.text.toString()) 25 | startActivity(intent) 26 | finish() 27 | } 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /app/src/main/java/eu/tutorials/quizapp/Question.kt: -------------------------------------------------------------------------------- 1 | package eu.tutorials.quizapp 2 | 3 | data class Question( 4 | val id:Int, 5 | val question:String, 6 | val image:Int, 7 | val optionOne:String, 8 | val optionTwo:String, 9 | val optionThree:String, 10 | val optionFour:String, 11 | val correctAnswer:Int 12 | ) 13 | -------------------------------------------------------------------------------- /app/src/main/java/eu/tutorials/quizapp/QuizQuestionsActivity.kt: -------------------------------------------------------------------------------- 1 | package eu.tutorials.quizapp 2 | 3 | import android.content.Intent 4 | import android.graphics.Color 5 | import android.graphics.Typeface 6 | import androidx.appcompat.app.AppCompatActivity 7 | import android.os.Bundle 8 | import android.util.Log 9 | import android.view.View 10 | import android.widget.* 11 | import androidx.core.content.ContextCompat 12 | 13 | class QuizQuestionsActivity : AppCompatActivity(), View.OnClickListener { 14 | //create variables for each view in the layout 15 | private var progressBar:ProgressBar?=null 16 | private var tvProgress: TextView? = null 17 | private var tvQuestion:TextView? = null 18 | private var ivImage: ImageView? = null 19 | private var tvOptionOne:TextView? = null 20 | private var tvOptionTwo:TextView? = null 21 | private var tvOptionThree:TextView? = null 22 | private var tvOptionFour:TextView? = null 23 | private var buttonSubmit:Button? = null 24 | 25 | 26 | private var mCurrentPosition: Int = 1 // Default and the first question position 27 | private var mQuestionsList: ArrayList? = null 28 | private var mCorrectAnswers: Int = 0 29 | private var mUserName: String? = null 30 | private var mSelectedOptionPosition: Int = 0 31 | override fun onCreate(savedInstanceState: Bundle?) { 32 | super.onCreate(savedInstanceState) 33 | setContentView(R.layout.activity_quiz_questions) 34 | 35 | //Get the NAME from intent and assign it the variable 36 | // START 37 | mUserName = intent.getStringExtra(Constants.USER_NAME) 38 | // END 39 | //connect to the view by its id 40 | progressBar=findViewById(R.id.progressBar) 41 | tvProgress = findViewById(R.id.tv_progress) 42 | tvQuestion = findViewById(R.id.tv_question) 43 | ivImage = findViewById(R.id.iv_image) 44 | tvOptionOne = findViewById(R.id.tv_option_one) 45 | tvOptionTwo = findViewById(R.id.tv_option_two) 46 | tvOptionThree = findViewById(R.id.tv_option_three) 47 | tvOptionFour = findViewById(R.id.tv_option_four) 48 | buttonSubmit = findViewById(R.id.btn_submit) 49 | mQuestionsList = Constants.getQuestions() 50 | 51 | setQuestion() 52 | 53 | tvOptionOne?.setOnClickListener(this) 54 | tvOptionTwo?.setOnClickListener(this) 55 | tvOptionThree?.setOnClickListener(this) 56 | tvOptionFour?.setOnClickListener(this) 57 | buttonSubmit?.setOnClickListener (this) 58 | 59 | } 60 | 61 | 62 | 63 | /** 64 | * A function for setting the question to UI components. 65 | */ 66 | private fun setQuestion() { 67 | 68 | val question: Question = 69 | mQuestionsList!![mCurrentPosition - 1] // Getting the question from the list with the help of current position. 70 | defaultOptionsView() 71 | if (mCurrentPosition == mQuestionsList!!.size) { 72 | buttonSubmit?.text = "FINISH" 73 | } else { 74 | buttonSubmit?.text = "SUBMIT" 75 | } 76 | progressBar?.progress = 77 | mCurrentPosition // Setting the current progress in the progressbar using the position of question 78 | tvProgress?.text = 79 | "$mCurrentPosition" + "/" + progressBar?.max // Setting up the progress text 80 | 81 | // Now set the current question and the options in the UI 82 | tvQuestion?.text = question.question 83 | ivImage?.setImageResource(question.image) 84 | tvOptionOne?.text = question.optionOne 85 | tvOptionTwo?.text = question.optionTwo 86 | tvOptionThree?.text = question.optionThree 87 | tvOptionFour?.text = question.optionFour 88 | } 89 | 90 | /** 91 | * A function to set default options view when the new question is loaded or when the answer is reselected. 92 | */ 93 | private fun defaultOptionsView() { 94 | 95 | val options = ArrayList() 96 | tvOptionOne?.let { 97 | options.add(0, it) 98 | } 99 | tvOptionTwo?.let { 100 | options.add(1, it) 101 | } 102 | tvOptionThree?.let { 103 | options.add(2, it) 104 | } 105 | tvOptionFour?.let { 106 | options.add(3,it) 107 | } 108 | 109 | for (option in options) { 110 | option.setTextColor(Color.parseColor("#7A8089")) 111 | option.typeface = Typeface.DEFAULT 112 | option.background = ContextCompat.getDrawable( 113 | this@QuizQuestionsActivity, 114 | R.drawable.default_option_border_bg 115 | ) 116 | } 117 | } 118 | 119 | override fun onClick(view: View?) { 120 | when (view?.id) { 121 | 122 | R.id.tv_option_one -> { 123 | tvOptionOne?.let { 124 | selectedOptionView(it, 1) 125 | } 126 | 127 | } 128 | 129 | R.id.tv_option_two -> { 130 | tvOptionTwo?.let { 131 | selectedOptionView(it, 2) 132 | } 133 | 134 | } 135 | 136 | R.id.tv_option_three -> { 137 | tvOptionThree?.let { 138 | selectedOptionView(it, 3) 139 | } 140 | 141 | } 142 | 143 | R.id.tv_option_four -> { 144 | tvOptionFour?.let { 145 | selectedOptionView(it, 4) 146 | } 147 | 148 | } 149 | R.id.btn_submit->{ 150 | 151 | if (mSelectedOptionPosition == 0) { 152 | 153 | mCurrentPosition++ 154 | 155 | when { 156 | 157 | mCurrentPosition <= mQuestionsList!!.size -> { 158 | 159 | setQuestion() 160 | } 161 | else -> { 162 | // TODO (Now remove the toast message and launch the result screen which we have created and also pass the user name and score details to it.) 163 | // START 164 | val intent = 165 | Intent(this@QuizQuestionsActivity, ResultActivity::class.java) 166 | intent.putExtra(Constants.USER_NAME, mUserName) 167 | intent.putExtra(Constants.CORRECT_ANSWERS, mCorrectAnswers) 168 | intent.putExtra(Constants.TOTAL_QUESTIONS, mQuestionsList?.size) 169 | startActivity(intent) 170 | finish() 171 | } 172 | } 173 | } else { 174 | val question = mQuestionsList?.get(mCurrentPosition - 1) 175 | 176 | // This is to check if the answer is wrong 177 | if (question!!.correctAnswer != mSelectedOptionPosition) { 178 | answerView(mSelectedOptionPosition, R.drawable.wrong_option_border_bg) 179 | }else{ 180 | mCorrectAnswers++ 181 | } 182 | 183 | // This is for correct answer 184 | answerView(question.correctAnswer, R.drawable.correct_option_border_bg) 185 | 186 | if (mCurrentPosition == mQuestionsList!!.size) { 187 | buttonSubmit?.text = "FINISH" 188 | } else { 189 | buttonSubmit?.text = "GO TO NEXT QUESTION" 190 | } 191 | 192 | mSelectedOptionPosition = 0 193 | } 194 | } 195 | } 196 | } 197 | 198 | /** 199 | * A function to set the view of selected option view. 200 | */ 201 | private fun selectedOptionView(tv: TextView, selectedOptionNum: Int) { 202 | 203 | defaultOptionsView() 204 | 205 | mSelectedOptionPosition = selectedOptionNum 206 | 207 | tv.setTextColor( 208 | Color.parseColor("#363A43") 209 | ) 210 | tv.setTypeface(tv.typeface, Typeface.BOLD) 211 | tv.background = ContextCompat.getDrawable( 212 | this@QuizQuestionsActivity, 213 | R.drawable.selected_option_border_bg 214 | ) 215 | } 216 | 217 | /** 218 | * A function for answer view which is used to highlight the answer is wrong or right. 219 | */ 220 | private fun answerView(answer: Int, drawableView: Int) { 221 | 222 | when (answer) { 223 | 224 | 1 -> { 225 | tvOptionOne?.background = ContextCompat.getDrawable( 226 | this@QuizQuestionsActivity, 227 | drawableView 228 | ) 229 | } 230 | 2 -> { 231 | tvOptionTwo?.background = ContextCompat.getDrawable( 232 | this@QuizQuestionsActivity, 233 | drawableView 234 | ) 235 | } 236 | 3 -> { 237 | tvOptionThree?.background = ContextCompat.getDrawable( 238 | this@QuizQuestionsActivity, 239 | drawableView 240 | ) 241 | } 242 | 4 -> { 243 | tvOptionFour?.background = ContextCompat.getDrawable( 244 | this@QuizQuestionsActivity, 245 | drawableView 246 | ) 247 | } 248 | } 249 | } 250 | } -------------------------------------------------------------------------------- /app/src/main/java/eu/tutorials/quizapp/ResultActivity.kt: -------------------------------------------------------------------------------- 1 | package eu.tutorials.quizapp 2 | 3 | import android.content.Intent 4 | import androidx.appcompat.app.AppCompatActivity 5 | import android.os.Bundle 6 | import android.widget.Button 7 | import android.widget.TextView 8 | import androidx.core.view.WindowInsetsCompat 9 | import androidx.core.view.WindowInsetsControllerCompat 10 | 11 | class ResultActivity : AppCompatActivity() { 12 | override fun onCreate(savedInstanceState: Bundle?) { 13 | super.onCreate(savedInstanceState) 14 | setContentView(R.layout.activity_result) 15 | 16 | //Todo: connect to each view in the layout through its id 17 | val tvName: TextView = findViewById(R.id.tv_name) 18 | val tvScore:TextView = findViewById(R.id.tv_score) 19 | val btnFinish:Button = findViewById(R.id.btn_finish) 20 | 21 | val userName = intent.getStringExtra(Constants.USER_NAME) 22 | tvName.text = userName 23 | 24 | val totalQuestions = intent.getIntExtra(Constants.TOTAL_QUESTIONS, 0) 25 | val correctAnswers = intent.getIntExtra(Constants.CORRECT_ANSWERS, 0) 26 | 27 | tvScore.text = "Your Score is $correctAnswers out of $totalQuestions." 28 | 29 | btnFinish.setOnClickListener { 30 | // 31 | startActivity(Intent(this@ResultActivity, MainActivity::class.java)) 32 | } 33 | } 34 | 35 | 36 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tutorialseu/QuizApp/a5407513db6504cbe7288242493047212c8463d4/app/src/main/res/drawable-hdpi/ic_bg.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_trophy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tutorialseu/QuizApp/a5407513db6504cbe7288242493047212c8463d4/app/src/main/res/drawable-hdpi/ic_trophy.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/ic_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tutorialseu/QuizApp/a5407513db6504cbe7288242493047212c8463d4/app/src/main/res/drawable-ldpi/ic_bg.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-ldpi/ic_trophy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tutorialseu/QuizApp/a5407513db6504cbe7288242493047212c8463d4/app/src/main/res/drawable-ldpi/ic_trophy.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tutorialseu/QuizApp/a5407513db6504cbe7288242493047212c8463d4/app/src/main/res/drawable-mdpi/ic_bg.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_trophy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tutorialseu/QuizApp/a5407513db6504cbe7288242493047212c8463d4/app/src/main/res/drawable-mdpi/ic_trophy.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/ic_launcher_foreground.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 15 | 18 | 21 | 22 | 23 | 24 | 30 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tutorialseu/QuizApp/a5407513db6504cbe7288242493047212c8463d4/app/src/main/res/drawable-xhdpi/ic_bg.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_trophy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tutorialseu/QuizApp/a5407513db6504cbe7288242493047212c8463d4/app/src/main/res/drawable-xhdpi/ic_trophy.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tutorialseu/QuizApp/a5407513db6504cbe7288242493047212c8463d4/app/src/main/res/drawable-xxhdpi/ic_bg.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_trophy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tutorialseu/QuizApp/a5407513db6504cbe7288242493047212c8463d4/app/src/main/res/drawable-xxhdpi/ic_trophy.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tutorialseu/QuizApp/a5407513db6504cbe7288242493047212c8463d4/app/src/main/res/drawable-xxxhdpi/ic_bg.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_trophy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tutorialseu/QuizApp/a5407513db6504cbe7288242493047212c8463d4/app/src/main/res/drawable-xxxhdpi/ic_trophy.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/correct_option_border_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/default_option_border_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_flag_of_argentina.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tutorialseu/QuizApp/a5407513db6504cbe7288242493047212c8463d4/app/src/main/res/drawable/ic_flag_of_argentina.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_flag_of_australia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tutorialseu/QuizApp/a5407513db6504cbe7288242493047212c8463d4/app/src/main/res/drawable/ic_flag_of_australia.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_flag_of_belgium.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tutorialseu/QuizApp/a5407513db6504cbe7288242493047212c8463d4/app/src/main/res/drawable/ic_flag_of_belgium.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_flag_of_brazil.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tutorialseu/QuizApp/a5407513db6504cbe7288242493047212c8463d4/app/src/main/res/drawable/ic_flag_of_brazil.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_flag_of_denmark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tutorialseu/QuizApp/a5407513db6504cbe7288242493047212c8463d4/app/src/main/res/drawable/ic_flag_of_denmark.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_flag_of_fiji.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tutorialseu/QuizApp/a5407513db6504cbe7288242493047212c8463d4/app/src/main/res/drawable/ic_flag_of_fiji.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_flag_of_germany.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tutorialseu/QuizApp/a5407513db6504cbe7288242493047212c8463d4/app/src/main/res/drawable/ic_flag_of_germany.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_flag_of_india.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tutorialseu/QuizApp/a5407513db6504cbe7288242493047212c8463d4/app/src/main/res/drawable/ic_flag_of_india.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_flag_of_kuwait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tutorialseu/QuizApp/a5407513db6504cbe7288242493047212c8463d4/app/src/main/res/drawable/ic_flag_of_kuwait.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_flag_of_new_zealand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tutorialseu/QuizApp/a5407513db6504cbe7288242493047212c8463d4/app/src/main/res/drawable/ic_flag_of_new_zealand.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_launcher_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | 15 | 20 | 25 | 30 | 35 | 40 | 45 | 50 | 55 | 60 | 65 | 70 | 75 | 80 | 85 | 90 | 95 | 100 | 105 | 110 | 115 | 120 | 125 | 130 | 135 | 140 | 145 | 150 | 155 | 160 | 165 | 170 | 171 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/selected_option_border_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/wrong_option_border_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 23 | 24 | 32 | 33 | 38 | 39 | 48 | 49 | 58 | 64 | 65 | 74 | 75 | 76 |