INDEX

Note: Page numbers followed by b, f, or t indicate material in boxes, figures, or tables, respectively.

A

  • AbsoluteLayout class, 256

  • abstract class, 155, 314, 354

  • action bar, height of

  • actionBarHeight variable, 263

  • activities

    • life cycle of, 145150

    • output and state of, stack as user interacts with app, 149t

    • sharing data between, 150154

    • transitions between, 155161

  • activity_maps.xml file, 393b

  • AdapterView class, 532

  • add method, 365

    • of FragmentTransaction class, 365

  • addApi method, 436

  • addConnectionCallbacks, 436

  • addOnConnectionFailed Listener interface, 436

  • Address class, 409t

  • addToBackStack method, 354

  • addView method, 263

  • AdFragment class, 609610b, 611612b

  • AdRequest.Builder class, 602, 602t

  • AdSize class, banner ad, 600, 600t

  • Advanced Encryption Standard (AES) model, 619

  • advertising, 599

  • AdView class, 600601, 601t, 610, 611t, 612

  • AESEncryption class, 621622b, 630, 632

  • afterTextChanged method, 76

  • alert dialogs, 110115

  • AlertDialog.Builder class, 110, 111t

  • Android Application Package (APK), 34

  • Android apps, 2

    • development environment for, 3

  • Android development framework, 298

  • Android Development Kit (ADK), 47, 6263, 64

  • Android device, testing app on, 2830

  • Android framework, 235

  • Android market, 2

  • Android operating system, 2

  • Android phones, 2

  • Android Standard Development Kit (Android SDK), 3, 655, 656

  • Android Studio, 3, 18, 27

    • compiler error flagged by, 26b

  • Android Studio environment, 181

  • Android Virtual Device (AVD) Manager, 1821

  • android.appwidget package, 540, 540t

  • android:background XML, 55, 65

  • android:configChanges attribute, 227, 228, 242

    • of activity element, 227, 227t

    • onConfigurationChanged method, 228b

  • android.content.pm package, 386

  • android.content.res package, 222

  • android.database.sqlite package, 188, 189t

  • android.graphics package, 263, 298, 298t, 471472, 472t

  • android:imeOptions attribute, 353

  • android:inputType, 73

  • android:layout_weight XML attribute

    • of LinearLayout, 343

  • Animation classes, selected XML attributes of, 157t

  • API level 11, 340

  • app widget hosts, 540

  • app widgets, 540

    • margin and padding of, 550f

    • model-view-controller classes, 569t, 578t

    • number of cells vs. size per dimension, 542, 543t

    • running in tablet, 551f, 554f, 556f, 569f, 578f

    • sequence of method calls, 577t

    • views and layout managers, 543, 544t

  • AppBarLayout, 174

  • AppCompatActivity, 285, 306

  • Apple, 2

  • AppTheme, 69

  • AppWidgetManager class, 542, 545, 546t, 571t, 580t

  • AppWidgetProvider class, 544, 545t

  • AppWidgetProviderInfo class, 542, 543t, 579t

  • ArrayAdapter class, 529530

  • asymmetric encryption, 618

  • AsyncTask class, 522, 523t

    • Params, Progress, and Result, 522

    • ParseTask class of, 522

B

  • Bitmap reference, 306

  • BitmapFactory class, methods of, 300, 301t

  • BitmapGrayer class, 473475, 485486

  • BlackBerry, 2

  • blue_thumb.xml file, 479

  • boolean state variables, 241

  • bringToFront method of View class, 265, 265t

  • build method

    • of SoundPool.Builder class, default constructor and, 326, 326t

C

  • CircleOptions class, 400, 401t

  • Cities class, 404

    • Show A Map app, Version 2, 405b

  • class header

    • of Hangman class, 371b

    • of MainActivity class, 370b

  • ClockUtility class, Stopwatch app, 596597

  • Color class, 263

  • colors.xml file, 15b, 16, 56, 57b, 349b, 627b

  • columnSpec, 105

  • com.google.android.gms.ads package, 598599, 599t

  • com.google.android.gms.maps package, 395t

  • com.google.android.gms.maps.model package, 395t

  • commit method, 354

  • compress method, Photo app, 496497, 497t

  • Configuration class, 222226

  • Configuration config reference, 224, 224225b

  • Configuration reference, 223

  • ConnectionCallbacks interface, 435, 436t, 437

  • ConnectionResult method, 437438, 438t

    • hasResolution method, 437

    • onConnectionFailed method, 437

    • startResolutionForResult method, 437

  • constant values

    • of Configuration class, related to device’s screen size, 223t

    • for orientation field of Configuration class, 223t

  • content, 253

  • content_main.xml file, 174, 209b

  • ContentHandler interface, 512t

  • Context class, 223, 386, 386t

    • getSystemService method of, 375t

  • ContextThemeWrapper class, 644, 645t

  • ContextWrapper class, 643, 644t

  • Controller, 40, 115

  • CoordinatorLayout, 174

  • CSS (Cascading Style Sheets), 63

  • currentIncompleteWord method, 353, 371

  • currentSolution method, 277

  • Cursor class, 191t

  • custom View (creating), 317

D

  • DataActivity class, 142, 145, 148, 159, 163

    • goBack method in, 160b

    • with life cycle methods, 147148b

    • of Mortgage Calculator app

    • updateMortgageObject method in, 165b

  • Debugger

  • DefaultHandler class, 512513, 513t

    • ContentHandler interface, 512t

    • DTDHandler interface, 512t

    • EntityResolver interface, 512t

    • ErrorHandler interfaces, 512t

  • defensive programming, 73

  • DeleteActivity class, 197, 198, 199200b

  • DELTA_TIME constant, 318

  • density field, 263

  • device orientation, management of, 222

    • Configuration Class, 222226

    • device rotation event, capturing, 227229

    • one layout XML file

      • both orientation, 233236

      • per orientation, 229232

      • orientation by code only, 236243

  • device rotation event, capturing, 227229

  • DialogFragment, 341

  • DialogInterface.OnClickListener, 111, 115

  • dimens.xml file, 13b, 132b

  • Directions class, 418419

  • disableListener method, 272, 275

  • displayList method, 527

  • DisplayMetrics class, 263, 644, 644t

  • distance and time to destination model, GPS app, 445447

    • distanceToDestination method, 447

    • timeToDestination method, 447

    • TravelManager class for, 445447

E

  • EditText, 44, 46, 48, 50, 53, 64, 66, 70, 71, 73, 75, 78, 181, 371

  • elapsedRealtime method, 593, 596, 598t

  • element content, 10

  • email (Sending), 499

  • Empty Activity template, 251, 302, 341, 434

  • emulator, running app inside, 1823

    • Encryption app

      • Version 1, 629f

      • Version 3, 638f

    • GPS app, Version 2, 453f

    • landscape orientation, 22, 23f

    • portrait orientation, 22, 22f

    • Show A Map app

      • Version 0, 384f

      • Version 1, 400f

      • Version 2, 403f

    • test app, 654f

    • TicTacToe app, Version 0, 96f

    • useful information about, 23t

    • vertical and horizontal position, 232f, 236f

    • Web Content app

      • Version 3, 530f

      • Version 4, 533f

    • widgets running in emulator, 547549f

  • enableListener method, 266, 268

  • Encryption app

    • asymmetric

      • adding RSA to model, Version 2, 630634

    • modifying the view, Version 3, 634638

    • symmetric

      • adding a view, Version 1, 625629

      • AES model, Version 0, 619625

  • EntityResolver interface, 512t

  • Environment class, 495496

  • ErrorHandler interfaces, 512t

  • event handling, 96100

  • Event parameter, 252, 254

  • events, 40, 69

  • extending the View class, 317

  • extends, 314

  • eXtensible Markup Language (XML), 8, 10

    • document, 510511

      • into a list, parsing, 518521

      • and content apps, 509533

      • DOM, and SAX parsers, parsing, 510517

      • to list of items, converting, 511, 511f

      • remote XML document, parsing, 521526

      • results in ListView, displaying, 526530

      • to tree, converting, 511, 511f

      • web browser inside app, opening, 531533

    • non-empty XML element, 10

    • rules for naming tags, 11

  • external storage, Photo app, 490491, 491t

F

  • fade_in_and_scale.xml file, 158b, 161f

  • fillGui method, 263, 265, 276, 290

  • findFragmentById method, 356

  • findFragmentByTag method, 365

  • findViewById method, 152, 352, 357

  • fireBullet method, 320

  • FloatingActionButton, 174

  • for loop, 261

  • Fragment class, 341, 346

    • getActivity and getView

      • methods of, 357t

    • life-cycle methods of, 344, 347f

  • fragment_ad.xml file, 607b

  • fragment_game_control.xml file

    • Hangman app

      • Version 0, 343b

      • Version 1, 349b

  • fragment_game_state.xml file, 353b

  • FragmentManager abstract class, 353

  • FragmentManager class, 353

    • methods of, 354t

  • FragmentManager reference, 356

  • fragments, 338, 340341

  • FragmentTransaction class, 354

    • add method of, 365

    • methods of, 355t

  • FragmentTransaction reference, 356

  • frame animation, 155

  • FusedLocationProviderApi interface, 440, 442t, 454t

    • lastLocation method, 440

G

  • Game class, 309313b

  • GameControlFragment class, 342, 345, 346

    • Hangman app, Version 0, 345b

  • GameResultFragment class, 359

    • Hangman app

      • Version 3, 361b

      • Version 4, 364b

  • GameView object, 303

  • Geocoder class, 408, 409t, 452, 452t

    • getFromLocationName method of, 452

  • getConfiguration methods, 223, 223t

  • getContext method, 331

  • getCurrentFocus method, of Activity class, 375

  • getDefaultSharedPreference method of PreferenceManager class, 163b

  • getElapsedRealtimeNanos method, 456

  • getEncoded method, 622, 622t

  • getExternalFilesDir method, 495, 495t

  • getFragmentManager method, 353, 355

    • of Activity class, 354t

  • getGame method, 357, 370

  • getGuessesLeft method, 351

  • getLocationInWindow method, 256

  • getMeasuredHeight method, 237

  • getNumberOfParts, 259

  • getRawX method, 256, 320

  • getRawY method, 256, 320

  • getResources method, 223, 223t, 643644, 643t

  • getSystemService method, of Context class, 375t

  • getText method, 71, 277

  • getView methods, of Fragment class, 357t

  • getX method, 256, 320

  • getY method, 256, 320

  • goBack method, 154

    • in DataActivity class, 160b

  • Google, 2

  • Google Maps

    • activity template, 391400, 391392f

    • android API, enabling, 660f

    • API key from New Credentials menu, 662f

    • API manager, selecting, 661f

    • appropriate permissions, adding, 661663

    • in Google Play services finding, 660f

    • key from Google, 657661, 659f

    • package name and SHA-1 fingerprint, 662f

  • Google Play services, 23

  • google_maps_api.xml file, 392393b

  • GoogleApiClient abstract class, 435

  • GoogleApiClient class, 437, 437t

  • GoogleApiClient.Builder class, 435, 435t

  • GoogleMap class, 396, 397t

    • OnMapReadyCallback interface, 396t

    • SupportMapFragment class, 396t

  • Graphical User Interface (GUI), 222, 359, 447, 588

    • components, 4144, 237

      • classes and, 43t

      • inheritance hierarchy for selected, 44f

      • XML attributes and, 5362

H

  • handler, 75, 76

  • handling the event, 40, 69

  • handling touch events, 320324

  • Hangman app

    • adding GUI components, styles, strings, and colors, Version 1, 346352

    • communication between fragments and their activity, Version 4, 362364

    • fragment, defining and adding

    • GUI improvement of, Version 7, 371376

    • invisible fragment, using, Version 5, 365367

    • reusable fragment, making, Version 6, 367371

  • Hangman class, 338, 339340b

    • class header of, Hangman app, Version 6, 371b

  • Hangman constructor, 340

  • HangmanV0LifeCycle app, 347f

  • height parameter, 263, 303

  • HelloAndroid, 3

    • emulator running, 22f

    • GUI preview, 8

    • MainActivity class, 1618, 17b

    • Skeleton App, 38

    • XML files, 816

  • hideSoftInputFromWindow method, 374, 375, 376t

    • of InputMethodManager class, 375t

  • hi.png file, 3132

  • horizontalDimensionsSet, 241

  • HyperText Markup Language (HTML), 8

I

  • inflating the XML, 18

  • inheritance hierarchy

    • for Fragment, 341

    • for SeekBar class, 478f

    • for selected GUI components, 44f

    • showing layout classes, 92f

    • for TableLayout, 132

    • for TableRow elements, 132

  • inner classes, 102104

  • Input Method Editor, 353

  • InputMethodManager class, 375, 376t

    • hideSoftInputFromWindow method of, 375t

  • InputMethodManager reference, 374

  • InputStyle, 64, 65, 66

  • InsertActivity class, 185, 194

    • Candy Store app

  • instance variables, 241

  • Instant Run, 22, 23f

  • Intel Hardware Accelerated Execution Manager (HAXM), 18

  • Intent class, 141, 389, 389t, 408t, 467, 467t, 501t

    • constructor of, 142t

  • internal storage, Photo app, 490491, 491t

  • intersects method

  • of Rect class, 313, 313t

  • ints parameter, 256

  • iOS, 2

  • isLayoutSizeAtLeast method, 223

  • Item class, 518

J

  • Java Development Kit (JDK), 3

  • java directory, 7

  • JavaScript Object Notation (JSON), 558, 559f

  • java.util package, 314

  • javax.crypto package, 619

K

  • keyguard, 578579

  • KeyPair class, 631t

  • KeyPairGenerator class, 631t

L

  • labelHeight parameter, 263

  • LabelStyle, 64, 66

  • landscape Strings, 229

  • launcher icon, for app, 3031

  • layout manager classes, 47

  • layout parameters, 105110

  • layout XML file, 236237

  • LayoutInflater parameter, 345

  • LayoutParams class, 47, 102, 103t, 343

  • LayoutParams object, 256

  • leftMargin parameter, 258

  • life-cycle methods

    • of activity class, 347f

    • of fragment class, 344, 347f

  • LinearLayout, 233, 241, 342, 343

    • android:layout_weight XML attribute of, 343

    • placeholder, 592

  • LinearLayout.LayoutParams class, 235

  • ListFragment, 341

  • ListView class, 529530

    • setAdapter method, 530t

  • load method, 326

  • Location class, 440, 441t, 457t

  • Location reference, 440, 442

  • LocationListener interface, 453, 454t

  • LocationRequest class, 455, 455t

    • priority constants of, 456t

  • LocationServices class, 436, 437t

  • Log class, 24, 24t, 25

  • Logcat output

    • Stopwatch app, 603f

    • Web Content app

  • Logcat tab, debugging app with, 2427

M

  • MainActivity.java, generated code inside, 175b

  • Manifest.permission class, 393, 395t

  • MapsActivity class

  • maps (displaying), 391

  • MarginLayoutParams reference, 242

  • MarkerOptions class, 398, 400t

  • match_parent value, 45

  • MatchingUtility class, 419

  • MathRounding class, 485, 486b

  • mCallbacks instance variable, 370

  • measure method, 237

  • MeasureSpec class, 650, 651t

  • menu_main.xml file, 176b, 177b

    • Candy Store app

      • Version 1, 181b

      • Version 5, 209

  • MenuItem interface, 176

    • selected constants of, 177t

    • selected XML attributes and methods of, 176t

  • modified AndroidManifest.xml file, 32, 33b

  • modified dimens.xml file, 13b

  • modified HelloAndroid app, 224

  • modified MainActivity class, 26b

  • modified string.xml file, 14b

  • modified styles.xml file, 15b

  • modifyData method in MainActivity class, 159b

  • modifyLayout method, 229, 234, 237, 241, 242

  • Mortgage Calculator app

  • Mortgage class, 128129, 129130b

    • monthly cash flow for, 128t

    • Mortgage Calculator app, Version 4, 164b

N

  • National Weather Service (NWS), 558

  • newConfig parameter, 227

  • Nexus 5 emulator, 242, 242f, 647648f

  • non-empty XML element, 10

  • null value, 306

  • NullPointerException, 95, 357

  • NUMBER_PARTS, 259

O

  • one XML layout file, 233

  • onEditorAction method

    • of TextView.

      • OnEditorActionListener interface, 371, 371t

  • OnTouchListener interface, 253

  • OpenGL, 314

  • org.xml.sax packages, 513

  • org.xml.sax.helpers packages, 513

  • orientation by code only, management of, 238240

  • orientation to

    • android:configChanges value, 228

  • ORIENTATION_LANDSCAPE constant, 222, 223t, 224

  • ORIENTATION_PORTRAIT constant, 222, 224

  • OutputStyle, 66

  • overridePendingTransition method of Activity class, 159t

P

  • PackageManager class, 386, 386t, 464, 465t

  • Paint class, methods of, 299, 299t

  • Paint object, 303

  • params, 258

  • parent style, 64

  • parseFloat, 71

  • parseInt methods, 71

  • ParseTask class, 523525, 527, 528

  • PendingIntent class, 554555, 555t

  • persistent data (using a local database), 188

  • persistent data (using preferences), 161

  • Photo app, 464

    • camera app, accessing, Version 0, 464471

    • email app, using, Version 5, 499503

    • graying the picture, Version 1, 471477

    • improving user interface, Version 3, 485490

    • shades of gray using SeekBars, Version 2, 477485

    • storing the picture, Version 4, 490499

  • placeTextViewAtPosition method, 276

  • play method, 352, 362

    • of MainActivity class, Hangman app, Version 4, 363

  • playHitSound method, 330

  • of MainActivity class, 330

  • portrait, 229

  • postInvalidate method, 315

  • PreferenceFragment, 341

  • private class, 279, 285, 320

  • pseudo-code, 265

  • public fields and methods, 222, 222t, 345

  • public static inner class, 47

  • public static inner interface, 251

  • Puzzle app, 250, 250f, 251

  • PuzzleView constructor, 261

R

  • RadioGroup class, 201

    • selected methods of, 202t

  • rawQuery method, 194

  • R.drawable.nameOfFile, 300

  • Really Simple Syndication (RSS) feed, 510

  • RecognitionListener interface, 418, 420t

  • RecognizerIntent class, constants of, 385, 385t

  • Rect class

    • intersects method of, 313, 313t

  • Rect constructor, 301

  • RectF class, 305

  • red_thumb.xml file, 479

  • relational database management system (RDBMS), 174

  • RelativeLayout class, 11, 12, 47, 91, 181, 256, 258

    • for second screen GUI, 135140

  • RelativeLayout.LayoutParams, 235, 256, 263

    • useful XML attributes of, 137t

  • remotable object, 374

  • RemoteDataReader class, 561, 563564b

    • reading data from remote location, 562t

  • removeLocationUpdates method, 456

  • res directory, 7, 8

    • directories supported inside, 57t

  • reset_button.xml file, 589

  • ResolveInfo class, 386, 386t

  • Resources class, 223, 643, 644t

    • getDimensionPixelSize method, 646t

    • getIdentifier method, 646t

    • openRawResource method of, 515, 515t

  • Resources reference, 223, 263

  • Resources.Theme class

    • resolveAttribute method of, 645t

  • reusable GameStateFragment class

    • Hangman app, Version 6, 367368b

S

  • screenHeightDp stores, 224

  • SCREENLAYOUT_SIZE_LARGE, 223

  • SCREENLAYOUT_SIZE_NORMAL constants, 223

  • SCREENLAYOUT_SIZE_SMALL constants, 223

  • SCREENLAYOUT_SIZE_XLARGE, 223

  • screenSize value, 228

  • ScrollView, 200201, 213

  • SeekBar class, 478

    • AbsSeekBar, 478t

    • inheritance hierarchy of, 478f

    • ProgressBar, 478t

    • XML attributes, 478t

  • selectById method, 194

  • selected menu-related methods, 179t

  • sendEmail method, 499

  • sending an email, 499

  • separate method, 241

  • setCannon method, 308, 318

  • setCannonAngle method, 320

  • setContentView method, 17, 17t, 237

  • setDoubleTapListener, 285

  • setEnabled method, 100

  • setFontSizeToFitInView static method, 289

  • setInterval method, 455

  • setLayoutMargins method, 242

  • setLayoutParams method, 258

  • of View class, 259t

  • setMargins method, 235t

  • setNegativeButton, 111

  • setNeutralButton, 111

  • setOn-TouchListener method

  • of View class, 251, 252t

  • setOnDoubleTapListener method, 278, 287, 320

  • setPadding, 53

  • setPositiveButton, 111

  • setPriority method, 455456

  • setResult Method

    • of GameResultFragment class, Hangman app, Version 4, 364

  • setShowAsAction, 177t

  • setSmallestDisplacement method, 456

  • setSupportActionBar of AppCompatActivity class, 179t

  • setTitle method, 176

  • setUpFragmentGui method, 359

  • setUpGui method, 241

  • SharedPreference interface, selected methods of, 163t

  • SharedPreference.Editor interface, selected methods of, 162t

  • sharing data (among activities), 150

  • Show A Map app, running inside tablet partial output of, 99, 100b

    • Version 0, 384f

    • Version 1, 400f

    • Version 2, 403f

    • Version 3, 414f

    • Version 5, 425f

  • ShowAsAction attribute, 177t

  • Simple API for XML (SAX) parser, 510511

  • single tap, 277

  • singleton class, 150

  • slide_from_left.xml file, 158b

  • smartphones, 1

    • definition, 2

    • operating systems and, 23

  • SoundPool.Builder, 325

    • default constructor and build method of, 326, 326t

  • SPACING_HORIZONTAL constant, 236

  • SPACING_VERTICAL constant, 236

  • Spec, 105

  • SpeechRecognizer class, 418, 424, 424t

  • SQL syntax, 174

  • SQL table for candies, 189t

  • SQLite, 174, 188196

  • SQLiteDatabase class, 190, 191t

  • SQLiteOpenHelper class, 190

    • selected methods of, 194t

  • stacking order, 265

  • start_button.xml file, 589

  • static methods, 300

  • static onKeyListener interface, 75

  • status bar

    • height of, retrieving, 643648

  • statusBarHeight variable, 263

  • stop_button.xml file, 589

  • Stopwatch app, 588, 588f

    • improving, Version 2, 596598

    • managing life cycle of AdView, version 5, 610612

    • placing ad

      • at bottom of screen, Version 3, 598606

      • in fragment, Version 4, 607610

T

  • TableLayout

    • for front screen GUI, 131135

    • inheritance hierarchy for, 132

  • TableLayout.LayoutParams class, 235

  • TableRow elements, 131

    • inheritance hierarchy for, 132

  • tap detection, 277284

  • temperature scales, conversion formulas between, 559, 559t

  • temperature widget app

    • customizing, Version 5, 570578

    • hosting, Version 6, 578580

    • steps in making, Version 0, 540549

    • styling, Version 1, 549551

    • temperature data from remote source, Version 4, 557569

    • updating data

  • TemperatureParser class

  • TextView.OnEditorActionListener interface

    • onEditorAction method of, 371, 371t

  • Timer class, 314

    • methods of, 314t

  • TimerTask class, 314

    • methods of, 314t

  • timeToDestination method, GPS app, 447

  • Tip Calculator app

  • tipCalc, 70

  • TipCalculator class, 40, 41t, 42b, 70, 73

  • Toast class, 387, 389t

    • selected methods and constants of, 196t

  • topMargin parameter, 258

  • touch event, detecting, 251256

  • TouchHandler class, 320, 330

  • transition (between activities), 155

  • TravelManager class, 445, 446447b

  • tvPosition method, 275, 276

  • tv.RelativeLayout.LayoutParams, 258

  • tween animation, 155

  • two XML layout files, management of orientation changes using, 231232b, 234235b

  • TypedValue class, 645t, 652, 652t

U

  • updateCannon, 320

  • updated onDraw method

    • of GameView class, Duck Hunting app, Version 3, 331b

  • updated strings.xml file, 140b

  • updateMortgageObject method, 154

  • updateStartPositions method, 270, 275

  • updateView method, 152, 213

  • Uri class, 499, 501t, 533, 533t

  • user-defined View, 317

V

  • View.OnClickListener, 9697, 119

  • View.OnTouchListener, 251, 251t, 252, 254, 265, 266, 268, 280

  • voice recognition app, 384386

    • annotations to map, Version 2, 400405

    • Google Maps activity template, Version 1, 391400

    • map based on speech input, Version 3, 406414

    • moving map

      • with voice continuously, Version 6, 425426

      • with voice once, Version 5, 418425

W

  • WebViewFragment, 341

  • widget_config.xml file, 571, 572b

  • widget_info.xml file, 542b, 572b, 579b

  • widget_layout.xml file, 544b, 550, 551b

  • widget_shape.xml file, 550b

  • widgets, 4243. See app widgets

  • Windows, 2

  • word instance variable, 338

  • WordGame interface, 370

  • wrapCenterWeight1 style, 349

X

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.118.19.207