diff --git a/9781430258575/Chapter2/Classic/AndroidManifest.xml b/9781430258575/Chapter2/Classic/AndroidManifest.xml
new file mode 100644
index 0000000..4d35085
--- /dev/null
+++ b/9781430258575/Chapter2/Classic/AndroidManifest.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/9781430258575/Chapter2/Classic/ic_launcher-web.png b/9781430258575/Chapter2/Classic/ic_launcher-web.png
new file mode 100644
index 0000000..a18cbb4
Binary files /dev/null and b/9781430258575/Chapter2/Classic/ic_launcher-web.png differ
diff --git a/9781430258575/Chapter2/Classic/proguard-project.txt b/9781430258575/Chapter2/Classic/proguard-project.txt
new file mode 100644
index 0000000..f2fe155
--- /dev/null
+++ b/9781430258575/Chapter2/Classic/proguard-project.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# 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/9781430258575/Chapter2/Classic/project.properties b/9781430258575/Chapter2/Classic/project.properties
new file mode 100644
index 0000000..a3ee5ab
--- /dev/null
+++ b/9781430258575/Chapter2/Classic/project.properties
@@ -0,0 +1,14 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
+
+# Project target.
+target=android-17
diff --git a/9781430258575/Chapter2/Classic/res/drawable-hdpi/ic_launcher.png b/9781430258575/Chapter2/Classic/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 0000000..288b665
Binary files /dev/null and b/9781430258575/Chapter2/Classic/res/drawable-hdpi/ic_launcher.png differ
diff --git a/9781430258575/Chapter2/Classic/res/drawable-mdpi/ic_launcher.png b/9781430258575/Chapter2/Classic/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 0000000..6ae570b
Binary files /dev/null and b/9781430258575/Chapter2/Classic/res/drawable-mdpi/ic_launcher.png differ
diff --git a/9781430258575/Chapter2/Classic/res/drawable-xhdpi/ic_launcher.png b/9781430258575/Chapter2/Classic/res/drawable-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..d4fb7cd
Binary files /dev/null and b/9781430258575/Chapter2/Classic/res/drawable-xhdpi/ic_launcher.png differ
diff --git a/9781430258575/Chapter2/Classic/res/drawable-xxhdpi/ic_launcher.png b/9781430258575/Chapter2/Classic/res/drawable-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..85a6081
Binary files /dev/null and b/9781430258575/Chapter2/Classic/res/drawable-xxhdpi/ic_launcher.png differ
diff --git a/9781430258575/Chapter2/Classic/res/drawable/splash.jpeg b/9781430258575/Chapter2/Classic/res/drawable/splash.jpeg
new file mode 100644
index 0000000..d1f61a0
Binary files /dev/null and b/9781430258575/Chapter2/Classic/res/drawable/splash.jpeg differ
diff --git a/9781430258575/Chapter2/Classic/res/layout/main.xml b/9781430258575/Chapter2/Classic/res/layout/main.xml
new file mode 100644
index 0000000..13b1e59
--- /dev/null
+++ b/9781430258575/Chapter2/Classic/res/layout/main.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/9781430258575/Chapter2/Classic/res/layout/splash.xml b/9781430258575/Chapter2/Classic/res/layout/splash.xml
new file mode 100644
index 0000000..5bb8759
--- /dev/null
+++ b/9781430258575/Chapter2/Classic/res/layout/splash.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/9781430258575/Chapter2/Classic/res/menu/todo.xml b/9781430258575/Chapter2/Classic/res/menu/todo.xml
new file mode 100644
index 0000000..c002028
--- /dev/null
+++ b/9781430258575/Chapter2/Classic/res/menu/todo.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
diff --git a/9781430258575/Chapter2/Classic/res/values-sw600dp/dimens.xml b/9781430258575/Chapter2/Classic/res/values-sw600dp/dimens.xml
new file mode 100644
index 0000000..44f01db
--- /dev/null
+++ b/9781430258575/Chapter2/Classic/res/values-sw600dp/dimens.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
diff --git a/9781430258575/Chapter2/Classic/res/values-sw720dp-land/dimens.xml b/9781430258575/Chapter2/Classic/res/values-sw720dp-land/dimens.xml
new file mode 100644
index 0000000..61e3fa8
--- /dev/null
+++ b/9781430258575/Chapter2/Classic/res/values-sw720dp-land/dimens.xml
@@ -0,0 +1,9 @@
+
+
+
+ 128dp
+
+
diff --git a/9781430258575/Chapter2/Classic/res/values-v11/styles.xml b/9781430258575/Chapter2/Classic/res/values-v11/styles.xml
new file mode 100644
index 0000000..3c02242
--- /dev/null
+++ b/9781430258575/Chapter2/Classic/res/values-v11/styles.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
diff --git a/9781430258575/Chapter2/Classic/res/values-v14/styles.xml b/9781430258575/Chapter2/Classic/res/values-v14/styles.xml
new file mode 100644
index 0000000..a91fd03
--- /dev/null
+++ b/9781430258575/Chapter2/Classic/res/values-v14/styles.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
diff --git a/9781430258575/Chapter2/Classic/res/values/dimens.xml b/9781430258575/Chapter2/Classic/res/values/dimens.xml
new file mode 100644
index 0000000..55c1e59
--- /dev/null
+++ b/9781430258575/Chapter2/Classic/res/values/dimens.xml
@@ -0,0 +1,7 @@
+
+
+
+ 16dp
+ 16dp
+
+
diff --git a/9781430258575/Chapter2/Classic/res/values/strings.xml b/9781430258575/Chapter2/Classic/res/values/strings.xml
new file mode 100644
index 0000000..9cf1b78
--- /dev/null
+++ b/9781430258575/Chapter2/Classic/res/values/strings.xml
@@ -0,0 +1,8 @@
+
+
+
+ optimization-example
+ Settings
+ Add item
+
+
diff --git a/9781430258575/Chapter2/Classic/res/values/styles.xml b/9781430258575/Chapter2/Classic/res/values/styles.xml
new file mode 100644
index 0000000..6ce89c7
--- /dev/null
+++ b/9781430258575/Chapter2/Classic/res/values/styles.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
diff --git a/9781430258575/Chapter2/Classic/src/com/logicdrop/todos/Splash.java b/9781430258575/Chapter2/Classic/src/com/logicdrop/todos/Splash.java
new file mode 100644
index 0000000..9639f42
--- /dev/null
+++ b/9781430258575/Chapter2/Classic/src/com/logicdrop/todos/Splash.java
@@ -0,0 +1,28 @@
+package com.logicdrop.todos;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.content.Intent;
+
+public class Splash extends Activity {
+ public void onCreate(Bundle savedInstanceState) {
+
+ super.onCreate(savedInstanceState);
+
+
+ setContentView(R.layout.splash);
+ Thread timer = new Thread() {
+ public void run() {
+ try {
+ sleep(1000);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ } finally {
+ Intent openStartingPoint = new Intent("com.logicdrop.todos.TodoActivity");
+ startActivity(openStartingPoint);
+ }
+ }
+ };
+ timer.start();
+ }
+}
\ No newline at end of file
diff --git a/9781430258575/Chapter2/Classic/src/com/logicdrop/todos/TodoActivity.java b/9781430258575/Chapter2/Classic/src/com/logicdrop/todos/TodoActivity.java
new file mode 100644
index 0000000..0e5bc47
--- /dev/null
+++ b/9781430258575/Chapter2/Classic/src/com/logicdrop/todos/TodoActivity.java
@@ -0,0 +1,89 @@
+package com.logicdrop.todos;
+
+import java.util.List;
+import java.util.ArrayList;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.widget.AdapterView;
+import android.widget.AdapterView.OnItemClickListener;
+import android.widget.ArrayAdapter;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.ListView;
+import android.widget.TextView;
+import android.os.StrictMode;
+
+import com.logicdrop.todos.R;
+
+public class TodoActivity extends Activity
+{
+ public static final String APP_TAG = "com.logicdrop.todos";
+
+ private ListView taskView;
+ private Button btNewTask;
+ private EditText etNewTask;
+ private TodoProvider provider;
+
+ private final OnClickListener handleNewTaskEvent = new OnClickListener()
+ {
+ @Override
+ public void onClick(final View view)
+ {
+ Log.d(APP_TAG, "add task click received");
+
+ TodoActivity.this.provider.addTask(TodoActivity.this
+ .etNewTask
+ .getText()
+ .toString());
+
+ TodoActivity.this.renderTodos();
+ }
+ };
+
+ @Override
+ public void onCreate(final Bundle bundle)
+ {
+
+ super.onCreate(bundle);
+ this.setContentView(R.layout.main);
+
+ this.provider = new TodoProvider(this);
+ this.taskView = (ListView) this.findViewById(R.id.tasklist);
+ this.btNewTask = (Button) this.findViewById(R.id.btNewTask);
+ this.etNewTask = (EditText) this.findViewById(R.id.etNewTask);
+ this.btNewTask.setOnClickListener(this.handleNewTaskEvent);
+
+ this.renderTodos();
+
+ }
+
+ private void renderTodos()
+ {
+ final List beans = this.provider.findAll();
+
+ Log.d(TodoActivity.APP_TAG, String.format("%d beans found", beans.size()));
+
+ this.taskView.setAdapter(new ArrayAdapter(this,
+ android.R.layout.simple_list_item_1,
+ beans.toArray(new String[]
+ {})));
+
+ this.taskView.setOnItemClickListener(new OnItemClickListener()
+ {
+ @Override
+ public void onItemClick(final AdapterView> parent, final View view, final int position, final long id)
+ {
+ Log.d(TodoActivity.APP_TAG, String.format("item with id: %d and position: %d", id, position));
+
+ final TextView v = (TextView) view;
+ TodoActivity.this.provider.deleteTask(v.getText().toString());
+ TodoActivity.this.renderTodos();
+ }
+ });
+ }
+
+}
\ No newline at end of file
diff --git a/9781430258575/Chapter2/Classic/src/com/logicdrop/todos/TodoProvider.java b/9781430258575/Chapter2/Classic/src/com/logicdrop/todos/TodoProvider.java
new file mode 100644
index 0000000..23fc2f1
--- /dev/null
+++ b/9781430258575/Chapter2/Classic/src/com/logicdrop/todos/TodoProvider.java
@@ -0,0 +1,92 @@
+package com.logicdrop.todos;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import android.content.ContentValues;
+import android.content.Context;
+import android.database.Cursor;
+import android.database.sqlite.SQLiteDatabase;
+import android.database.sqlite.SQLiteOpenHelper;
+import android.util.Log;
+
+final class TodoProvider
+{
+ private static final String DB_NAME = "tasks";
+ private static final String TABLE_NAME = "tasks";
+ private static final int DB_VERSION = 1;
+ private static final String DB_CREATE_QUERY = "CREATE TABLE " + TodoProvider.TABLE_NAME + " (id integer primary key autoincrement, title text not null);";
+
+ private final SQLiteDatabase storage;
+ private final SQLiteOpenHelper helper;
+
+ public TodoProvider(final Context ctx)
+ {
+ this.helper = new SQLiteOpenHelper(ctx, TodoProvider.DB_NAME, null, TodoProvider.DB_VERSION)
+ {
+ @Override
+ public void onCreate(final SQLiteDatabase db)
+ {
+ db.execSQL(TodoProvider.DB_CREATE_QUERY);
+ }
+
+ @Override
+ public void onUpgrade(final SQLiteDatabase db, final int oldVersion,
+ final int newVersion)
+ {
+ db.execSQL("DROP TABLE IF EXISTS " + TodoProvider.TABLE_NAME);
+ this.onCreate(db);
+ }
+ };
+
+ this.storage = this.helper.getWritableDatabase();
+ }
+
+ public void addTask(final String title)
+ {
+ final ContentValues data = new ContentValues();
+ data.put("title", title);
+
+ this.storage.insert(TodoProvider.TABLE_NAME, null, data);
+ }
+
+ public void deleteAll()
+ {
+ this.storage.delete(TodoProvider.TABLE_NAME, null, null);
+ }
+
+ public void deleteTask(final long id)
+ {
+ this.storage.delete(TodoProvider.TABLE_NAME, "id=" + id, null);
+ }
+
+ public void deleteTask(final String title)
+ {
+ this.storage.delete(TodoProvider.TABLE_NAME, "title='" + title + "'", null);
+ }
+
+ public List findAll()
+ {
+ Log.d(TodoActivity.APP_TAG, "findAll triggered");
+
+ final List tasks = new ArrayList();
+
+ final Cursor c = this.storage.query(TodoProvider.TABLE_NAME, new String[]
+ { "title" }, null, null, null, null, null);
+
+ if (c != null)
+ {
+ c.moveToFirst();
+
+ while (c.isAfterLast() == false)
+ {
+ tasks.add(c.getString(0));
+ c.moveToNext();
+ }
+
+ c.close();
+ }
+
+ return tasks;
+ }
+}
\ No newline at end of file
diff --git a/9781430258575/Chapter2/Fragments/.classpath b/9781430258575/Chapter2/Fragments/.classpath
new file mode 100644
index 0000000..5176974
--- /dev/null
+++ b/9781430258575/Chapter2/Fragments/.classpath
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/9781430258575/Chapter2/Fragments/.project b/9781430258575/Chapter2/Fragments/.project
new file mode 100644
index 0000000..cc883a1
--- /dev/null
+++ b/9781430258575/Chapter2/Fragments/.project
@@ -0,0 +1,33 @@
+
+
+ fragments
+
+
+
+
+
+ com.android.ide.eclipse.adt.ResourceManagerBuilder
+
+
+
+
+ com.android.ide.eclipse.adt.PreCompilerBuilder
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ com.android.ide.eclipse.adt.ApkBuilder
+
+
+
+
+
+ com.android.ide.eclipse.adt.AndroidNature
+ org.eclipse.jdt.core.javanature
+
+
diff --git a/9781430258575/Chapter2/Fragments/AndroidManifest.xml b/9781430258575/Chapter2/Fragments/AndroidManifest.xml
new file mode 100644
index 0000000..d5eaf7f
--- /dev/null
+++ b/9781430258575/Chapter2/Fragments/AndroidManifest.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/9781430258575/Chapter2/Fragments/bin/AndroidManifest.xml b/9781430258575/Chapter2/Fragments/bin/AndroidManifest.xml
new file mode 100644
index 0000000..d5eaf7f
--- /dev/null
+++ b/9781430258575/Chapter2/Fragments/bin/AndroidManifest.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/9781430258575/Chapter2/Fragments/bin/MainActivity.apk b/9781430258575/Chapter2/Fragments/bin/MainActivity.apk
new file mode 100644
index 0000000..6b03bfc
Binary files /dev/null and b/9781430258575/Chapter2/Fragments/bin/MainActivity.apk differ
diff --git a/9781430258575/Chapter2/Fragments/bin/classes.dex b/9781430258575/Chapter2/Fragments/bin/classes.dex
new file mode 100644
index 0000000..df8c69e
Binary files /dev/null and b/9781430258575/Chapter2/Fragments/bin/classes.dex differ
diff --git a/9781430258575/Chapter2/Fragments/bin/classes/com/example/BuildConfig.class b/9781430258575/Chapter2/Fragments/bin/classes/com/example/BuildConfig.class
new file mode 100644
index 0000000..857a0aa
Binary files /dev/null and b/9781430258575/Chapter2/Fragments/bin/classes/com/example/BuildConfig.class differ
diff --git a/9781430258575/Chapter2/Fragments/bin/classes/com/example/Content.class b/9781430258575/Chapter2/Fragments/bin/classes/com/example/Content.class
new file mode 100644
index 0000000..a88601c
Binary files /dev/null and b/9781430258575/Chapter2/Fragments/bin/classes/com/example/Content.class differ
diff --git a/9781430258575/Chapter2/Fragments/bin/classes/com/example/NoteFragment.class b/9781430258575/Chapter2/Fragments/bin/classes/com/example/NoteFragment.class
new file mode 100644
index 0000000..1582ca7
Binary files /dev/null and b/9781430258575/Chapter2/Fragments/bin/classes/com/example/NoteFragment.class differ
diff --git a/9781430258575/Chapter2/Fragments/bin/classes/com/example/R$attr.class b/9781430258575/Chapter2/Fragments/bin/classes/com/example/R$attr.class
new file mode 100644
index 0000000..93d4579
Binary files /dev/null and b/9781430258575/Chapter2/Fragments/bin/classes/com/example/R$attr.class differ
diff --git a/9781430258575/Chapter2/Fragments/bin/classes/com/example/R$id.class b/9781430258575/Chapter2/Fragments/bin/classes/com/example/R$id.class
new file mode 100644
index 0000000..248870c
Binary files /dev/null and b/9781430258575/Chapter2/Fragments/bin/classes/com/example/R$id.class differ
diff --git a/9781430258575/Chapter2/Fragments/bin/classes/com/example/R$layout.class b/9781430258575/Chapter2/Fragments/bin/classes/com/example/R$layout.class
new file mode 100644
index 0000000..3f14a13
Binary files /dev/null and b/9781430258575/Chapter2/Fragments/bin/classes/com/example/R$layout.class differ
diff --git a/9781430258575/Chapter2/Fragments/bin/classes/com/example/R$string.class b/9781430258575/Chapter2/Fragments/bin/classes/com/example/R$string.class
new file mode 100644
index 0000000..8838af6
Binary files /dev/null and b/9781430258575/Chapter2/Fragments/bin/classes/com/example/R$string.class differ
diff --git a/9781430258575/Chapter2/Fragments/bin/classes/com/example/R.class b/9781430258575/Chapter2/Fragments/bin/classes/com/example/R.class
new file mode 100644
index 0000000..a8bcfe1
Binary files /dev/null and b/9781430258575/Chapter2/Fragments/bin/classes/com/example/R.class differ
diff --git a/9781430258575/Chapter2/Fragments/bin/classes/com/example/TaskFragment$OnTaskSelectedListener.class b/9781430258575/Chapter2/Fragments/bin/classes/com/example/TaskFragment$OnTaskSelectedListener.class
new file mode 100644
index 0000000..d4a2f1d
Binary files /dev/null and b/9781430258575/Chapter2/Fragments/bin/classes/com/example/TaskFragment$OnTaskSelectedListener.class differ
diff --git a/9781430258575/Chapter2/Fragments/bin/classes/com/example/TaskFragment.class b/9781430258575/Chapter2/Fragments/bin/classes/com/example/TaskFragment.class
new file mode 100644
index 0000000..5289aa0
Binary files /dev/null and b/9781430258575/Chapter2/Fragments/bin/classes/com/example/TaskFragment.class differ
diff --git a/9781430258575/Chapter2/Fragments/bin/classes/com/example/TodoActivity.class b/9781430258575/Chapter2/Fragments/bin/classes/com/example/TodoActivity.class
new file mode 100644
index 0000000..5ca33cb
Binary files /dev/null and b/9781430258575/Chapter2/Fragments/bin/classes/com/example/TodoActivity.class differ
diff --git a/9781430258575/Chapter2/Fragments/bin/dexedLibs/android-support-v4-48f25b07608704edc91d0aa7e32fbbb0.jar b/9781430258575/Chapter2/Fragments/bin/dexedLibs/android-support-v4-48f25b07608704edc91d0aa7e32fbbb0.jar
new file mode 100644
index 0000000..5ac2d7b
Binary files /dev/null and b/9781430258575/Chapter2/Fragments/bin/dexedLibs/android-support-v4-48f25b07608704edc91d0aa7e32fbbb0.jar differ
diff --git a/9781430258575/Chapter2/Fragments/bin/dexedLibs/android-support-v4-564cf4adf9178479decee180148e2b39.jar b/9781430258575/Chapter2/Fragments/bin/dexedLibs/android-support-v4-564cf4adf9178479decee180148e2b39.jar
new file mode 100644
index 0000000..2dccc8a
Binary files /dev/null and b/9781430258575/Chapter2/Fragments/bin/dexedLibs/android-support-v4-564cf4adf9178479decee180148e2b39.jar differ
diff --git a/9781430258575/Chapter2/Fragments/bin/dexedLibs/annotations-3946453e77e5d39662cc2213740d1420.jar b/9781430258575/Chapter2/Fragments/bin/dexedLibs/annotations-3946453e77e5d39662cc2213740d1420.jar
new file mode 100644
index 0000000..d8deb87
Binary files /dev/null and b/9781430258575/Chapter2/Fragments/bin/dexedLibs/annotations-3946453e77e5d39662cc2213740d1420.jar differ
diff --git a/9781430258575/Chapter2/Fragments/bin/fragments.apk b/9781430258575/Chapter2/Fragments/bin/fragments.apk
new file mode 100644
index 0000000..ec4133b
Binary files /dev/null and b/9781430258575/Chapter2/Fragments/bin/fragments.apk differ
diff --git a/9781430258575/Chapter2/Fragments/bin/jarlist.cache b/9781430258575/Chapter2/Fragments/bin/jarlist.cache
new file mode 100644
index 0000000..0565465
--- /dev/null
+++ b/9781430258575/Chapter2/Fragments/bin/jarlist.cache
@@ -0,0 +1,3 @@
+# cache for current jar dependency. DO NOT EDIT.
+# format is
+# Encoding is UTF-8
diff --git a/9781430258575/Chapter2/Fragments/bin/resources.ap_ b/9781430258575/Chapter2/Fragments/bin/resources.ap_
new file mode 100644
index 0000000..2699b61
Binary files /dev/null and b/9781430258575/Chapter2/Fragments/bin/resources.ap_ differ
diff --git a/9781430258575/Chapter2/Fragments/gen/com/example/BuildConfig.java b/9781430258575/Chapter2/Fragments/gen/com/example/BuildConfig.java
new file mode 100644
index 0000000..239c3ef
--- /dev/null
+++ b/9781430258575/Chapter2/Fragments/gen/com/example/BuildConfig.java
@@ -0,0 +1,7 @@
+/** Automatically generated file. DO NOT MODIFY */
+package com.example;
+
+public final class BuildConfig
+{
+ public final static boolean DEBUG = true;
+}
diff --git a/9781430258575/Chapter2/Fragments/gen/com/example/R.java b/9781430258575/Chapter2/Fragments/gen/com/example/R.java
new file mode 100644
index 0000000..2720365
--- /dev/null
+++ b/9781430258575/Chapter2/Fragments/gen/com/example/R.java
@@ -0,0 +1,26 @@
+/* AUTO-GENERATED FILE. DO NOT MODIFY.
+ *
+ * This class was automatically generated by the
+ * aapt tool from the resource data it found. It
+ * should not be modified by hand.
+ */
+
+package com.example;
+
+public final class R {
+ public static final class attr {
+ }
+ public static final class id {
+ public static final int fragment_container=0x7f040000;
+ public static final int note=0x7f040003;
+ public static final int note_fragment=0x7f040002;
+ public static final int tasks_fragment=0x7f040001;
+ }
+ public static final class layout {
+ public static final int main=0x7f020000;
+ public static final int notes=0x7f020001;
+ }
+ public static final class string {
+ public static final int app_name=0x7f030000;
+ }
+}
diff --git a/9781430258575/Chapter2/Fragments/libs/android-support-v4.jar b/9781430258575/Chapter2/Fragments/libs/android-support-v4.jar
new file mode 100644
index 0000000..99e063b
Binary files /dev/null and b/9781430258575/Chapter2/Fragments/libs/android-support-v4.jar differ
diff --git a/9781430258575/Chapter2/Fragments/project.properties b/9781430258575/Chapter2/Fragments/project.properties
new file mode 100644
index 0000000..ce39f2d
--- /dev/null
+++ b/9781430258575/Chapter2/Fragments/project.properties
@@ -0,0 +1,14 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
+
+# Project target.
+target=android-18
diff --git a/9781430258575/Chapter2/Fragments/res/layout-large/main.xml b/9781430258575/Chapter2/Fragments/res/layout-large/main.xml
new file mode 100644
index 0000000..2c2b605
--- /dev/null
+++ b/9781430258575/Chapter2/Fragments/res/layout-large/main.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/9781430258575/Chapter2/Fragments/res/layout/main.xml b/9781430258575/Chapter2/Fragments/res/layout/main.xml
new file mode 100644
index 0000000..2455b5a
--- /dev/null
+++ b/9781430258575/Chapter2/Fragments/res/layout/main.xml
@@ -0,0 +1,6 @@
+
+
+
\ No newline at end of file
diff --git a/9781430258575/Chapter2/Fragments/res/layout/notes.xml b/9781430258575/Chapter2/Fragments/res/layout/notes.xml
new file mode 100644
index 0000000..3437bb9
--- /dev/null
+++ b/9781430258575/Chapter2/Fragments/res/layout/notes.xml
@@ -0,0 +1,7 @@
+
+
diff --git a/9781430258575/Chapter2/Fragments/res/values/strings.xml b/9781430258575/Chapter2/Fragments/res/values/strings.xml
new file mode 100644
index 0000000..499b35a
--- /dev/null
+++ b/9781430258575/Chapter2/Fragments/res/values/strings.xml
@@ -0,0 +1,5 @@
+
+
+
+ Fragment Example
+
\ No newline at end of file
diff --git a/9781430258575/Chapter2/Fragments/src/com/example/Content.java b/9781430258575/Chapter2/Fragments/src/com/example/Content.java
new file mode 100644
index 0000000..b5fe55f
--- /dev/null
+++ b/9781430258575/Chapter2/Fragments/src/com/example/Content.java
@@ -0,0 +1,18 @@
+package com.example;
+
+/**
+ * Dummy content
+ *
+ */
+final class Content
+{
+ static String[] Tasks = {
+ "Task 1",
+ "Task 2"
+ };
+
+ static String[] Notes = {
+ "Task 1\n\nExcepteur pour-over occaecat squid biodiesel umami gastropub, nulla laborum salvia dreamcatcher fanny pack. Ullamco culpa retro ea, trust fund excepteur eiusmod direct trade banksy nisi lo-fi cray messenger bag. Nesciunt esse carles selvage put a bird on it gluten-free, wes anderson ut trust fund twee occupy viral. Laboris small batch scenester pork belly, leggings ut farm-to-table aliquip yr nostrud iphone viral next level. Craft beer dreamcatcher pinterest truffaut ethnic, authentic brunch. Esse single-origin coffee banksy do next level tempor. Velit synth dreamcatcher, magna shoreditch in american apparel messenger bag narwhal PBR ennui farm-to-table.",
+ "Task 2\n\nVinyl williamsburg non velit, master cleanse four loko banh mi. Enim kogi keytar trust fund pop-up portland gentrify. Non ea typewriter dolore deserunt Austin. Ad magna ethical kogi mixtape next level. Aliqua pork belly thundercats, ut pop-up tattooed dreamcatcher kogi accusamus photo booth irony portland. Semiotics brunch ut locavore irure, enim etsy laborum stumptown carles gentrify post-ironic cray. Butcher 3 wolf moon blog synth, vegan carles odd future."
+ };
+}
diff --git a/9781430258575/Chapter2/Fragments/src/com/example/NoteFragment.java b/9781430258575/Chapter2/Fragments/src/com/example/NoteFragment.java
new file mode 100644
index 0000000..d1f27cc
--- /dev/null
+++ b/9781430258575/Chapter2/Fragments/src/com/example/NoteFragment.java
@@ -0,0 +1,66 @@
+package com.example;
+
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+public class NoteFragment extends Fragment
+{
+ final static String ARG_POSITION = "position";
+ private int currentPosition = -1;
+
+ @Override
+ public View onCreateView(final LayoutInflater inflater, final ViewGroup container, final Bundle savedInstanceState)
+ {
+ // If activity recreated (such as from screen rotate), restore
+ // the previous article selection set by onSaveInstanceState().
+ // This is primarily necessary when in the two-pane layout.
+ if (savedInstanceState != null)
+ {
+ this.currentPosition = savedInstanceState.getInt(NoteFragment.ARG_POSITION);
+ }
+
+ return inflater.inflate(R.layout.notes, container, false);
+ }
+
+ @Override
+ public void onSaveInstanceState(final Bundle outState)
+ {
+ super.onSaveInstanceState(outState);
+
+ // Save the current selection in case we need to recreate
+ outState.putInt(NoteFragment.ARG_POSITION, this.currentPosition);
+ }
+
+ @Override
+ public void onStart()
+ {
+ super.onStart();
+
+ // During startup, check if there are arguments passed to the fragment.
+ // onStart is a good place to do this because the layout has already
+ // been applied to the fragment at this point so we can safely call the
+ // method below that sets the text.
+ final Bundle args = this.getArguments();
+ if (args != null)
+ {
+ // Set note based on argument passed in
+ this.updateNoteView(args.getInt(NoteFragment.ARG_POSITION));
+ }
+ else if (this.currentPosition != -1)
+ {
+ // Set notes based on saved instance state from onCreateView
+ this.updateNoteView(this.currentPosition);
+ }
+ }
+
+ public void updateNoteView(final int position)
+ {
+ final TextView note = (TextView) this.getActivity().findViewById(R.id.note);
+ note.setText(Content.Notes[position]);
+ this.currentPosition = position;
+ }
+}
diff --git a/9781430258575/Chapter2/Fragments/src/com/example/TaskFragment.java b/9781430258575/Chapter2/Fragments/src/com/example/TaskFragment.java
new file mode 100644
index 0000000..4ec98ad
--- /dev/null
+++ b/9781430258575/Chapter2/Fragments/src/com/example/TaskFragment.java
@@ -0,0 +1,67 @@
+package com.example;
+
+import android.annotation.SuppressLint;
+import android.app.Activity;
+import android.os.Build;
+import android.os.Bundle;
+import android.support.v4.app.ListFragment;
+import android.view.View;
+import android.widget.AbsListView;
+import android.widget.ArrayAdapter;
+import android.widget.ListView;
+
+public class TaskFragment extends ListFragment
+{
+ public interface OnTaskSelectedListener
+ {
+ public void onTaskSelected(int position);
+ }
+
+ private OnTaskSelectedListener callback;
+
+ @Override
+ public void onAttach(final Activity activity)
+ {
+ super.onAttach(activity);
+ this.callback = (OnTaskSelectedListener) activity;
+ }
+
+ @Override
+ @SuppressLint("InlinedApi")
+ public void onCreate(final Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+
+ // We need to use a different list item layout for devices older than
+ // Honeycomb
+ final int layout = Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB ?
+ android.R.layout.simple_list_item_activated_1 :
+ android.R.layout.simple_list_item_1;
+
+ // Create an array adapter for the list view, using the content
+ this.setListAdapter(new ArrayAdapter(this.getActivity(), layout, Content.Tasks));
+ }
+
+ @Override
+ public void onListItemClick(final ListView l, final View v, final int position, final long id)
+ {
+ // Notify the parent activity of selected item
+ this.callback.onTaskSelected(position);
+
+ // Set the item as checked to be highlighted when in two-pane layout
+ this.getListView().setItemChecked(position, true);
+ }
+
+ @Override
+ public void onStart()
+ {
+ super.onStart();
+
+ // When in two-pane layout, set the listview to highlight the selected
+ // list item
+ if (this.getFragmentManager().findFragmentById(R.id.note_fragment) != null)
+ {
+ this.getListView().setChoiceMode(AbsListView.CHOICE_MODE_SINGLE);
+ }
+ }
+}
diff --git a/9781430258575/Chapter2/Fragments/src/com/example/TodoActivity.java b/9781430258575/Chapter2/Fragments/src/com/example/TodoActivity.java
new file mode 100644
index 0000000..ef778e9
--- /dev/null
+++ b/9781430258575/Chapter2/Fragments/src/com/example/TodoActivity.java
@@ -0,0 +1,76 @@
+package com.example;
+
+import android.os.Bundle;
+import android.support.v4.app.FragmentActivity;
+import android.support.v4.app.FragmentTransaction;
+
+public class TodoActivity extends FragmentActivity implements TaskFragment.OnTaskSelectedListener
+{
+ @Override
+ public void onCreate(final Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+
+ this.setContentView(R.layout.main);
+
+ // Check whether the activity is using the layout version with
+ // the fragment_container FrameLayout. If so, we must add the first
+ // fragment
+ if (this.findViewById(R.id.fragment_container) != null)
+ {
+ // However, if we're being restored from a previous state,
+ // then we don't need to do anything and should return or else
+ // we could end up with overlapping fragments.
+ if (savedInstanceState != null)
+ {
+ return;
+ }
+
+ final TaskFragment taskFrag = new TaskFragment();
+
+ // In case this activity was started with special instructions from
+ // an Intent,
+ // pass the Intent's extras to the fragment as arguments
+ taskFrag.setArguments(this.getIntent().getExtras());
+
+ // Add the fragment to the 'fragment_container' FrameLayout
+ this.getSupportFragmentManager().beginTransaction().add(R.id.fragment_container, taskFrag).commit();
+ }
+ }
+
+ /**
+ * User selected a task
+ */
+ @Override
+ public void onTaskSelected(final int position)
+ {
+ // Capture the title fragment from the activity layout
+ final NoteFragment noteFrag = (NoteFragment) this.getSupportFragmentManager()
+ .findFragmentById(R.id.note_fragment);
+
+ if (noteFrag != null)
+ {
+ // If note frag is available, we're in two-pane layout...
+ noteFrag.updateNoteView(position);
+ }
+ else
+ {
+ // If the frag is not available, we're in the one-pane layout
+ // Create fragment and give it an argument for the selected task
+ final NoteFragment swapFrag = new NoteFragment();
+ final Bundle args = new Bundle();
+ args.putInt(NoteFragment.ARG_POSITION, position);
+ swapFrag.setArguments(args);
+ final FragmentTransaction fragTx = this.getSupportFragmentManager().beginTransaction();
+
+ // Replace whatever is in the fragment_container view
+ // and add the transaction to the back stack so the user can
+ // navigate back
+ fragTx.replace(R.id.fragment_container, swapFrag);
+ fragTx.addToBackStack(null);
+
+ // Commit the transaction
+ fragTx.commit();
+ }
+ }
+}
diff --git a/9781430258575/Chapter2/IOC/AndroidManifest.xml b/9781430258575/Chapter2/IOC/AndroidManifest.xml
new file mode 100644
index 0000000..896039b
--- /dev/null
+++ b/9781430258575/Chapter2/IOC/AndroidManifest.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/9781430258575/Chapter2/IOC/README b/9781430258575/Chapter2/IOC/README
new file mode 100644
index 0000000..e69de29
diff --git a/9781430258575/Chapter2/IOC/proguard-project.txt b/9781430258575/Chapter2/IOC/proguard-project.txt
new file mode 100644
index 0000000..f2fe155
--- /dev/null
+++ b/9781430258575/Chapter2/IOC/proguard-project.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# 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/9781430258575/Chapter2/IOC/project.properties b/9781430258575/Chapter2/IOC/project.properties
new file mode 100644
index 0000000..a3ee5ab
--- /dev/null
+++ b/9781430258575/Chapter2/IOC/project.properties
@@ -0,0 +1,14 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
+
+# Project target.
+target=android-17
diff --git a/9781430258575/Chapter2/IOC/res/drawable-hdpi/ic_launcher.png b/9781430258575/Chapter2/IOC/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 0000000..288b665
Binary files /dev/null and b/9781430258575/Chapter2/IOC/res/drawable-hdpi/ic_launcher.png differ
diff --git a/9781430258575/Chapter2/IOC/res/drawable-mdpi/ic_launcher.png b/9781430258575/Chapter2/IOC/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 0000000..6ae570b
Binary files /dev/null and b/9781430258575/Chapter2/IOC/res/drawable-mdpi/ic_launcher.png differ
diff --git a/9781430258575/Chapter2/IOC/res/drawable-xhdpi/ic_launcher.png b/9781430258575/Chapter2/IOC/res/drawable-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..d4fb7cd
Binary files /dev/null and b/9781430258575/Chapter2/IOC/res/drawable-xhdpi/ic_launcher.png differ
diff --git a/9781430258575/Chapter2/IOC/res/drawable-xxhdpi/ic_launcher.png b/9781430258575/Chapter2/IOC/res/drawable-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..85a6081
Binary files /dev/null and b/9781430258575/Chapter2/IOC/res/drawable-xxhdpi/ic_launcher.png differ
diff --git a/9781430258575/Chapter2/IOC/res/drawable/splash.jpeg b/9781430258575/Chapter2/IOC/res/drawable/splash.jpeg
new file mode 100644
index 0000000..d1f61a0
Binary files /dev/null and b/9781430258575/Chapter2/IOC/res/drawable/splash.jpeg differ
diff --git a/9781430258575/Chapter2/IOC/res/layout/main.xml b/9781430258575/Chapter2/IOC/res/layout/main.xml
new file mode 100644
index 0000000..1b65e56
--- /dev/null
+++ b/9781430258575/Chapter2/IOC/res/layout/main.xml
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/9781430258575/Chapter2/IOC/res/layout/splash.xml b/9781430258575/Chapter2/IOC/res/layout/splash.xml
new file mode 100644
index 0000000..5bb8759
--- /dev/null
+++ b/9781430258575/Chapter2/IOC/res/layout/splash.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/9781430258575/Chapter2/IOC/res/menu/todo.xml b/9781430258575/Chapter2/IOC/res/menu/todo.xml
new file mode 100644
index 0000000..23964de
--- /dev/null
+++ b/9781430258575/Chapter2/IOC/res/menu/todo.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
diff --git a/9781430258575/Chapter2/IOC/res/values-sw600dp/dimens.xml b/9781430258575/Chapter2/IOC/res/values-sw600dp/dimens.xml
new file mode 100644
index 0000000..44f01db
--- /dev/null
+++ b/9781430258575/Chapter2/IOC/res/values-sw600dp/dimens.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
diff --git a/9781430258575/Chapter2/IOC/res/values-sw720dp-land/dimens.xml b/9781430258575/Chapter2/IOC/res/values-sw720dp-land/dimens.xml
new file mode 100644
index 0000000..61e3fa8
--- /dev/null
+++ b/9781430258575/Chapter2/IOC/res/values-sw720dp-land/dimens.xml
@@ -0,0 +1,9 @@
+
+
+
+ 128dp
+
+
diff --git a/9781430258575/Chapter2/IOC/res/values-v11/styles.xml b/9781430258575/Chapter2/IOC/res/values-v11/styles.xml
new file mode 100644
index 0000000..3c02242
--- /dev/null
+++ b/9781430258575/Chapter2/IOC/res/values-v11/styles.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
diff --git a/9781430258575/Chapter2/IOC/res/values-v14/styles.xml b/9781430258575/Chapter2/IOC/res/values-v14/styles.xml
new file mode 100644
index 0000000..a91fd03
--- /dev/null
+++ b/9781430258575/Chapter2/IOC/res/values-v14/styles.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
diff --git a/9781430258575/Chapter2/IOC/res/values/bools.xml b/9781430258575/Chapter2/IOC/res/values/bools.xml
new file mode 100644
index 0000000..c9d1c96
--- /dev/null
+++ b/9781430258575/Chapter2/IOC/res/values/bools.xml
@@ -0,0 +1,6 @@
+
+
+ false
+
\ No newline at end of file
diff --git a/9781430258575/Chapter2/IOC/res/values/dimens.xml b/9781430258575/Chapter2/IOC/res/values/dimens.xml
new file mode 100644
index 0000000..55c1e59
--- /dev/null
+++ b/9781430258575/Chapter2/IOC/res/values/dimens.xml
@@ -0,0 +1,7 @@
+
+
+
+ 16dp
+ 16dp
+
+
diff --git a/9781430258575/Chapter2/IOC/res/values/strings.xml b/9781430258575/Chapter2/IOC/res/values/strings.xml
new file mode 100644
index 0000000..2cfc111
--- /dev/null
+++ b/9781430258575/Chapter2/IOC/res/values/strings.xml
@@ -0,0 +1,9 @@
+
+
+
+ Dagger-example
+ Settings
+ Add item
+ Alternate Provider
+
+
diff --git a/9781430258575/Chapter2/IOC/res/values/styles.xml b/9781430258575/Chapter2/IOC/res/values/styles.xml
new file mode 100644
index 0000000..6ce89c7
--- /dev/null
+++ b/9781430258575/Chapter2/IOC/res/values/styles.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
diff --git a/9781430258575/Chapter2/IOC/src/com/example/dagger/IDataProvider.java b/9781430258575/Chapter2/IOC/src/com/example/dagger/IDataProvider.java
new file mode 100644
index 0000000..af2df45
--- /dev/null
+++ b/9781430258575/Chapter2/IOC/src/com/example/dagger/IDataProvider.java
@@ -0,0 +1,11 @@
+package com.example.dagger;
+
+import java.util.List;
+
+interface IDataProvider {
+ void addTask(final String title);
+ void deleteAll();
+ void deleteTask(final long id);
+ void deleteTask(final String title);
+ List findAll();
+}
\ No newline at end of file
diff --git a/9781430258575/Chapter2/IOC/src/com/example/dagger/Splash.java b/9781430258575/Chapter2/IOC/src/com/example/dagger/Splash.java
new file mode 100644
index 0000000..8973063
--- /dev/null
+++ b/9781430258575/Chapter2/IOC/src/com/example/dagger/Splash.java
@@ -0,0 +1,36 @@
+package com.example.dagger;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.content.Intent;
+
+public class Splash extends Activity {
+ public void onCreate(Bundle savedInstanceState) {
+ // TIP: Optimized the onSomething() classes, especially onCreate() (DONE)
+ // Load all the necessary data here at startup because it is
+ // a bit faster than loading in other methods
+
+ super.onCreate(savedInstanceState);
+
+ // TIP: View - inflate the views a minimum number of times (DONE)
+ // inflating views are expensive
+ /*for (int i=0; i<10000; i++)
+ setContentView(R.layout.splash);*/
+
+ // TIP: Splashscreen optional (DONE)
+ setContentView(R.layout.splash);
+ Thread timer = new Thread() {
+ public void run() {
+ try {
+ sleep(1000);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ } finally {
+ Intent openStartingPoint = new Intent("com.example.dagger.TodoActivity");
+ startActivity(openStartingPoint);
+ }
+ }
+ };
+ timer.start();
+ }
+}
\ No newline at end of file
diff --git a/9781430258575/Chapter2/IOC/src/com/example/dagger/TodoActivity.java b/9781430258575/Chapter2/IOC/src/com/example/dagger/TodoActivity.java
new file mode 100644
index 0000000..31079d8
--- /dev/null
+++ b/9781430258575/Chapter2/IOC/src/com/example/dagger/TodoActivity.java
@@ -0,0 +1,135 @@
+package com.example.dagger;
+
+import java.util.List;
+
+import android.app.Activity;
+import android.content.SharedPreferences.Editor;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.widget.AdapterView;
+import android.widget.AdapterView.OnItemClickListener;
+import android.widget.ArrayAdapter;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.ListView;
+import android.widget.TextView;
+
+import com.example.dagger.R;
+
+import javax.inject.Inject;
+
+public class TodoActivity extends Activity {
+ public static final String APP_TAG = "com.example.dagger";
+
+ private ListView taskView;
+ private Button btNewTask;
+ private EditText etNewTask;
+ private TodoApplication app;
+
+ @Inject
+ IDataProvider provider;
+
+ private final OnClickListener handleNewTaskEvent = new OnClickListener() {
+ @Override
+ public void onClick(final View view) {
+ Log.d(APP_TAG, "add task click received");
+
+ TodoActivity.this.provider.addTask(TodoActivity.this.etNewTask
+ .getText().toString());
+
+ TodoActivity.this.renderTodos();
+ }
+ };
+
+ @Override
+ protected void onStop() {
+ super.onStop();
+ }
+
+ @Override
+ protected void onStart() {
+ super.onStart();
+ }
+
+ @Override
+ public void onCreate(final Bundle bundle) {
+ super.onCreate(bundle);
+
+ // So we can inject in the activity
+ this.app = (TodoApplication) getApplication();
+ app.getObjectGraph().inject(this);
+
+ //Sets up the settings
+ Editor editor = this.app.settings.edit();
+ editor.putBoolean("CurrentChoice", TodoModule.sourceToggle);
+ editor.commit();
+
+ this.setContentView(R.layout.main);
+
+ this.taskView = (ListView) this.findViewById(R.id.tasklist);
+ this.btNewTask = (Button) this.findViewById(R.id.btNewTask);
+ this.etNewTask = (EditText) this.findViewById(R.id.etNewTask);
+ this.btNewTask.setOnClickListener(this.handleNewTaskEvent);
+
+ this.renderTodos();
+ }
+
+ //The menu option appears when the menu phone button is pressed
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu){
+ MenuInflater inflater = getMenuInflater();
+ inflater.inflate(R.menu.todo, menu);
+ return true;
+ }
+
+ //This handles the menu option select
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item){
+ switch (item.getItemId()){
+ case R.id.debug:
+ switchSource();
+ return true;
+ default:
+ return super.onOptionsItemSelected(item);
+ }
+ }
+
+ //This method toggles between the providers
+ private void switchSource(){
+ TodoModule.sourceToggle = !TodoModule.sourceToggle;
+
+ //Here it calls a method to update the setting
+ this.app.updateSetting(TodoModule.sourceToggle);
+ }
+
+
+
+ private void renderTodos() {
+ final List beans = this.provider.findAll();
+
+ Log.d(TodoActivity.APP_TAG,
+ String.format("%d beans found", beans.size()));
+
+ this.taskView.setAdapter(new ArrayAdapter(this,
+ android.R.layout.simple_list_item_1, beans
+ .toArray(new String[] {})));
+
+ this.taskView.setOnItemClickListener(new OnItemClickListener() {
+ @Override
+ public void onItemClick(final AdapterView> parent,
+ final View view, final int position, final long id) {
+ Log.d(TodoActivity.APP_TAG, String.format(
+ "item with id: %d and position: %d", id, position));
+
+ final TextView v = (TextView) view;
+ TodoActivity.this.provider.deleteTask(v.getText().toString());
+ TodoActivity.this.renderTodos();
+ }
+ });
+ }
+}
\ No newline at end of file
diff --git a/9781430258575/Chapter2/IOC/src/com/example/dagger/TodoApplication.java b/9781430258575/Chapter2/IOC/src/com/example/dagger/TodoApplication.java
new file mode 100644
index 0000000..0f30c8c
--- /dev/null
+++ b/9781430258575/Chapter2/IOC/src/com/example/dagger/TodoApplication.java
@@ -0,0 +1,42 @@
+package com.example.dagger;
+
+import android.app.Application;
+import android.content.SharedPreferences;
+import android.content.SharedPreferences.Editor;
+import dagger.ObjectGraph;
+
+public class TodoApplication extends Application {
+
+ private ObjectGraph objectGraph;
+ SharedPreferences settings;
+
+ @Override
+ public void onCreate()
+ {
+ super.onCreate();
+
+ //Initializes the settings variable
+ this.settings = getSharedPreferences("Settings", MODE_PRIVATE);
+ Object[] modules = new Object[] {
+ new TodoModule(this)
+ };
+
+ objectGraph = ObjectGraph.create(modules);
+ }
+
+ public ObjectGraph getObjectGraph() {
+ return this.objectGraph;
+ }
+
+ //Method to update the settings
+ public void updateSetting(boolean newChoice){
+ Editor editor = this.settings.edit();
+ editor.putBoolean("CurrentChoice", TodoModule.sourceToggle);
+ editor.commit();
+ }
+
+ //Method to obtain the value of the provider setting
+ public boolean getCurrentSource(){
+ return this.settings.getBoolean("CurrentChoice", false);
+ }
+}
diff --git a/9781430258575/Chapter2/IOC/src/com/example/dagger/TodoModule.java b/9781430258575/Chapter2/IOC/src/com/example/dagger/TodoModule.java
new file mode 100644
index 0000000..8698e08
--- /dev/null
+++ b/9781430258575/Chapter2/IOC/src/com/example/dagger/TodoModule.java
@@ -0,0 +1,86 @@
+package com.example.dagger;
+
+
+import dagger.Module;
+import dagger.Provides;
+import android.content.Context;
+import android.database.sqlite.SQLiteDatabase;
+import android.database.sqlite.SQLiteOpenHelper;
+import android.util.Log;
+
+@Module(complete = true, injects = { TodoActivity.class })
+public class TodoModule {
+
+ static final String DB_NAME = "tasks";
+ static final String TABLE_NAME = "tasks";
+ static final int DB_VERSION = 1;
+ static final String DB_CREATE_QUERY = "CREATE TABLE "
+ + TodoModule.TABLE_NAME
+ + " (id integer primary key autoincrement, title text not null);";
+
+ private final Context appContext;
+ public static boolean sourceToggle = false;
+ private TodoApplication parent;
+
+ /** Constructs this module with the application context. */
+ public TodoModule(TodoApplication app) {
+ this.parent = app;
+ this.appContext = app.getApplicationContext();
+
+ }
+
+ @Provides
+ public Context provideContext() {
+ return appContext;
+ }
+
+ /**
+ * Needed because we need to provide an implementation to an interface not a
+ * class.
+ *
+ * @return
+ */
+ @Provides
+ IDataProvider provideDataProvider(final SQLiteDatabase db) {
+ //Here I obtain the boolean value for which provider I want
+ boolean currentChoice = parent.getCurrentSource();
+ if(currentChoice == true){
+ //Here is a log message to know which provider has been chosen
+ Log.d(TodoActivity.APP_TAG, "Provider2");
+ return new TodoProvider2(db);
+ }else{
+ Log.d(TodoActivity.APP_TAG, "Provider");
+ return new TodoProvider(db);
+ }
+ }
+
+ /**
+ * Needed because we need to configure the helper before injecting it.
+ *
+ * @return
+ */
+ @Provides
+ SQLiteOpenHelper provideSqlHelper() {
+ final SQLiteOpenHelper helper = new SQLiteOpenHelper(this.appContext,
+ TodoModule.DB_NAME, null, TodoModule.DB_VERSION) {
+ @Override
+ public void onCreate(final SQLiteDatabase db) {
+ db.execSQL(TodoModule.DB_CREATE_QUERY);
+ }
+
+ @Override
+ public void onUpgrade(final SQLiteDatabase db,
+ final int oldVersion, final int newVersion) {
+ db.execSQL("DROP TABLE IF EXISTS " + TodoModule.TABLE_NAME);
+ this.onCreate(db);
+ }
+ };
+
+ return helper;
+ }
+
+ @Provides
+ SQLiteDatabase provideDatabase(SQLiteOpenHelper helper) {
+ return helper.getWritableDatabase();
+ }
+}
diff --git a/9781430258575/Chapter2/IOC/src/com/example/dagger/TodoProvider.java b/9781430258575/Chapter2/IOC/src/com/example/dagger/TodoProvider.java
new file mode 100644
index 0000000..ca86cf9
--- /dev/null
+++ b/9781430258575/Chapter2/IOC/src/com/example/dagger/TodoProvider.java
@@ -0,0 +1,71 @@
+package com.example.dagger;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.inject.Inject;
+
+
+import android.content.ContentValues;
+import android.database.Cursor;
+import android.database.sqlite.SQLiteDatabase;
+import android.util.Log;
+
+class TodoProvider implements IDataProvider {
+
+ private final SQLiteDatabase storage;
+
+ @Inject
+ public TodoProvider(SQLiteDatabase db)
+ {
+ this.storage = db;
+ }
+
+ @Override
+ public void addTask(final String title) {
+ final ContentValues data = new ContentValues();
+ data.put("title", title);
+
+ this.storage.insert(TodoModule.TABLE_NAME, null, data);
+ }
+
+ @Override
+ public void deleteAll() {
+ this.storage.delete(TodoModule.TABLE_NAME, null, null);
+ }
+
+ @Override
+ public void deleteTask(final long id) {
+ this.storage.delete(TodoModule.TABLE_NAME, "id=" + id, null);
+ }
+
+ @Override
+ public void deleteTask(final String title) {
+ this.storage.delete(TodoModule.TABLE_NAME, "title='" + title + "'",
+ null);
+ }
+
+ @Override
+ public List findAll() {
+ Log.d(TodoActivity.APP_TAG, "findAll triggered");
+
+ final List tasks = new ArrayList();
+
+ final Cursor c = this.storage.query(TodoModule.TABLE_NAME,
+ new String[] { "title" }, null, null, null, null, null);
+
+ if (c != null) {
+ c.moveToFirst();
+
+ while (c.isAfterLast() == false) {
+ tasks.add(c.getString(0));
+ c.moveToNext();
+ }
+
+ c.close();
+ }
+
+ return tasks;
+ }
+
+}
\ No newline at end of file
diff --git a/9781430258575/Chapter2/IOC/src/com/example/dagger/TodoProvider2.java b/9781430258575/Chapter2/IOC/src/com/example/dagger/TodoProvider2.java
new file mode 100644
index 0000000..de852e6
--- /dev/null
+++ b/9781430258575/Chapter2/IOC/src/com/example/dagger/TodoProvider2.java
@@ -0,0 +1,71 @@
+package com.example.dagger;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.inject.Inject;
+
+
+import android.content.ContentValues;
+import android.database.Cursor;
+import android.database.sqlite.SQLiteDatabase;
+import android.util.Log;
+
+class TodoProvider2 implements IDataProvider {
+
+ private final SQLiteDatabase storage;
+
+ @Inject
+ public TodoProvider2(SQLiteDatabase db)
+ {
+ this.storage = db;
+ }
+
+ @Override
+ public void addTask(final String title) {
+ final ContentValues data = new ContentValues();
+ data.put("title", title);
+
+ this.storage.insert(TodoModule.TABLE_NAME, null, data);
+ }
+
+ @Override
+ public void deleteAll() {
+ this.storage.delete(TodoModule.TABLE_NAME, null, null);
+ }
+
+ @Override
+ public void deleteTask(final long id) {
+ this.storage.delete(TodoModule.TABLE_NAME, "id=" + id, null);
+ }
+
+ @Override
+ public void deleteTask(final String title) {
+ this.storage.delete(TodoModule.TABLE_NAME, "title='" + title + "'",
+ null);
+ }
+
+ @Override
+ public List findAll() {
+ Log.d(TodoActivity.APP_TAG, "findAll triggered");
+
+ final List tasks = new ArrayList();
+
+ final Cursor c = this.storage.query(TodoModule.TABLE_NAME,
+ new String[] { "title" }, null, null, null, null, null);
+
+ if (c != null) {
+ c.moveToFirst();
+
+ while (c.isAfterLast() == false) {
+ tasks.add(c.getString(0));
+ c.moveToNext();
+ }
+
+ c.close();
+ }
+
+ return tasks;
+ }
+
+}
\ No newline at end of file
diff --git a/9781430258575/Chapter2/MVC/AndroidManifest.xml b/9781430258575/Chapter2/MVC/AndroidManifest.xml
new file mode 100644
index 0000000..385e164
--- /dev/null
+++ b/9781430258575/Chapter2/MVC/AndroidManifest.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/9781430258575/Chapter2/MVC/README b/9781430258575/Chapter2/MVC/README
new file mode 100644
index 0000000..e69de29
diff --git a/9781430258575/Chapter2/MVC/proguard-project.txt b/9781430258575/Chapter2/MVC/proguard-project.txt
new file mode 100644
index 0000000..f2fe155
--- /dev/null
+++ b/9781430258575/Chapter2/MVC/proguard-project.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# 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/9781430258575/Chapter2/MVC/project.properties b/9781430258575/Chapter2/MVC/project.properties
new file mode 100644
index 0000000..a3ee5ab
--- /dev/null
+++ b/9781430258575/Chapter2/MVC/project.properties
@@ -0,0 +1,14 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
+
+# Project target.
+target=android-17
diff --git a/9781430258575/Chapter2/MVC/res/drawable-hdpi/ic_launcher.png b/9781430258575/Chapter2/MVC/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 0000000..96a442e
Binary files /dev/null and b/9781430258575/Chapter2/MVC/res/drawable-hdpi/ic_launcher.png differ
diff --git a/9781430258575/Chapter2/MVC/res/drawable-mdpi/ic_launcher.png b/9781430258575/Chapter2/MVC/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 0000000..359047d
Binary files /dev/null and b/9781430258575/Chapter2/MVC/res/drawable-mdpi/ic_launcher.png differ
diff --git a/9781430258575/Chapter2/MVC/res/drawable-xhdpi/ic_launcher.png b/9781430258575/Chapter2/MVC/res/drawable-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..71c6d76
Binary files /dev/null and b/9781430258575/Chapter2/MVC/res/drawable-xhdpi/ic_launcher.png differ
diff --git a/9781430258575/Chapter2/MVC/res/drawable-xxhdpi/ic_launcher.png b/9781430258575/Chapter2/MVC/res/drawable-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..85a6081
Binary files /dev/null and b/9781430258575/Chapter2/MVC/res/drawable-xxhdpi/ic_launcher.png differ
diff --git a/9781430258575/Chapter2/MVC/res/drawable/splash.jpeg b/9781430258575/Chapter2/MVC/res/drawable/splash.jpeg
new file mode 100644
index 0000000..d1f61a0
Binary files /dev/null and b/9781430258575/Chapter2/MVC/res/drawable/splash.jpeg differ
diff --git a/9781430258575/Chapter2/MVC/res/layout/main.xml b/9781430258575/Chapter2/MVC/res/layout/main.xml
new file mode 100644
index 0000000..13b1e59
--- /dev/null
+++ b/9781430258575/Chapter2/MVC/res/layout/main.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/9781430258575/Chapter2/MVC/res/layout/splash.xml b/9781430258575/Chapter2/MVC/res/layout/splash.xml
new file mode 100644
index 0000000..5bb8759
--- /dev/null
+++ b/9781430258575/Chapter2/MVC/res/layout/splash.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/9781430258575/Chapter2/MVC/res/menu/todo.xml b/9781430258575/Chapter2/MVC/res/menu/todo.xml
new file mode 100644
index 0000000..c002028
--- /dev/null
+++ b/9781430258575/Chapter2/MVC/res/menu/todo.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
diff --git a/9781430258575/Chapter2/MVC/res/values-sw600dp/dimens.xml b/9781430258575/Chapter2/MVC/res/values-sw600dp/dimens.xml
new file mode 100644
index 0000000..44f01db
--- /dev/null
+++ b/9781430258575/Chapter2/MVC/res/values-sw600dp/dimens.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
diff --git a/9781430258575/Chapter2/MVC/res/values-sw720dp-land/dimens.xml b/9781430258575/Chapter2/MVC/res/values-sw720dp-land/dimens.xml
new file mode 100644
index 0000000..61e3fa8
--- /dev/null
+++ b/9781430258575/Chapter2/MVC/res/values-sw720dp-land/dimens.xml
@@ -0,0 +1,9 @@
+
+
+
+ 128dp
+
+
diff --git a/9781430258575/Chapter2/MVC/res/values-v11/styles.xml b/9781430258575/Chapter2/MVC/res/values-v11/styles.xml
new file mode 100644
index 0000000..3c02242
--- /dev/null
+++ b/9781430258575/Chapter2/MVC/res/values-v11/styles.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
diff --git a/9781430258575/Chapter2/MVC/res/values-v14/styles.xml b/9781430258575/Chapter2/MVC/res/values-v14/styles.xml
new file mode 100644
index 0000000..a91fd03
--- /dev/null
+++ b/9781430258575/Chapter2/MVC/res/values-v14/styles.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
diff --git a/9781430258575/Chapter2/MVC/res/values/dimens.xml b/9781430258575/Chapter2/MVC/res/values/dimens.xml
new file mode 100644
index 0000000..55c1e59
--- /dev/null
+++ b/9781430258575/Chapter2/MVC/res/values/dimens.xml
@@ -0,0 +1,7 @@
+
+
+
+ 16dp
+ 16dp
+
+
diff --git a/9781430258575/Chapter2/MVC/res/values/strings.xml b/9781430258575/Chapter2/MVC/res/values/strings.xml
new file mode 100644
index 0000000..a95faf7
--- /dev/null
+++ b/9781430258575/Chapter2/MVC/res/values/strings.xml
@@ -0,0 +1,8 @@
+
+
+
+ MVC-example
+ Settings
+ Add item
+
+
diff --git a/9781430258575/Chapter2/MVC/res/values/styles.xml b/9781430258575/Chapter2/MVC/res/values/styles.xml
new file mode 100644
index 0000000..6ce89c7
--- /dev/null
+++ b/9781430258575/Chapter2/MVC/res/values/styles.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
diff --git a/9781430258575/Chapter2/MVC/src/com/example/mvc/Splash.java b/9781430258575/Chapter2/MVC/src/com/example/mvc/Splash.java
new file mode 100644
index 0000000..bd87e70
--- /dev/null
+++ b/9781430258575/Chapter2/MVC/src/com/example/mvc/Splash.java
@@ -0,0 +1,29 @@
+package com.example.mvc;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.content.Intent;
+
+public class Splash extends Activity {
+ public void onCreate(Bundle savedInstanceState) {
+ // Load all the necessary data here at startup because it is
+ // a bit faster than loading in other methods
+
+ super.onCreate(savedInstanceState);
+
+ setContentView(R.layout.splash);
+ Thread timer = new Thread() {
+ public void run() {
+ try {
+ sleep(1000);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ } finally {
+ Intent openStartingPoint = new Intent("com.example.mvc.TodoActivity");
+ startActivity(openStartingPoint);
+ }
+ }
+ };
+ timer.start();
+ }
+}
\ No newline at end of file
diff --git a/9781430258575/Chapter2/MVC/src/com/example/mvc/TodoActivity.java b/9781430258575/Chapter2/MVC/src/com/example/mvc/TodoActivity.java
new file mode 100644
index 0000000..c8d77e5
--- /dev/null
+++ b/9781430258575/Chapter2/MVC/src/com/example/mvc/TodoActivity.java
@@ -0,0 +1,103 @@
+package com.example.mvc;
+
+import java.util.List;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.widget.AdapterView;
+import android.widget.AdapterView.OnItemClickListener;
+import android.widget.ArrayAdapter;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.ListView;
+import android.widget.TextView;
+
+import com.example.mvc.R;
+
+public class TodoActivity extends Activity
+{
+ public static final String APP_TAG = "com.example.mvc";
+
+ private ListView taskView;
+ private Button btNewTask;
+ private EditText etNewTask;
+
+ /*Controller changes are transparent to the View. UI changes won't
+ *affect logic, and vice-versa. See below: the TodoModel has
+ * been replaced with the TodoController, and the View persists
+ * without knowledge that the implementation has changed.
+ */
+ private TodoController provider;
+
+ private final OnClickListener handleNewTaskEvent = new OnClickListener()
+ {
+ @Override
+ public void onClick(final View view)
+ {
+ Log.d(APP_TAG, "add task click received");
+
+ TodoActivity.this.provider.addTask(TodoActivity.this
+ .etNewTask
+ .getText()
+ .toString());
+
+ TodoActivity.this.renderTodos();
+ }
+ };
+
+ @Override
+ protected void onStop()
+ {
+ super.onStop();
+ }
+
+ @Override
+ protected void onStart()
+ {
+ super.onStart();
+ }
+
+ @Override
+ public void onCreate(final Bundle bundle)
+ {
+ super.onCreate(bundle);
+
+ this.setContentView(R.layout.main);
+
+ this.provider = new TodoController(this);
+ this.taskView = (ListView) this.findViewById(R.id.tasklist);
+ this.btNewTask = (Button) this.findViewById(R.id.btNewTask);
+ this.etNewTask = (EditText) this.findViewById(R.id.etNewTask);
+ this.btNewTask.setOnClickListener(this.handleNewTaskEvent);
+
+ this.renderTodos();
+ }
+
+ private void renderTodos()
+ {
+ final List beans = this.provider.getTasks();
+
+ Log.d(TodoActivity.APP_TAG, String.format("%d beans found", beans.size()));
+
+ this.taskView.setAdapter(new ArrayAdapter(this,
+ android.R.layout.simple_list_item_1,
+ beans.toArray(new String[]
+ {})));
+
+ this.taskView.setOnItemClickListener(new OnItemClickListener()
+ {
+ @Override
+ public void onItemClick(final AdapterView> parent, final View view, final int position, final long id)
+ {
+ Log.d(TodoActivity.APP_TAG, String.format("item with id: %d and position: %d", id, position));
+
+ final TextView v = (TextView) view;
+ TodoActivity.this.provider.deleteTask(v.getText().toString());
+ TodoActivity.this.renderTodos();
+ }
+ });
+ }
+}
diff --git a/9781430258575/Chapter2/MVC/src/com/example/mvc/TodoController.java b/9781430258575/Chapter2/MVC/src/com/example/mvc/TodoController.java
new file mode 100644
index 0000000..0a15de4
--- /dev/null
+++ b/9781430258575/Chapter2/MVC/src/com/example/mvc/TodoController.java
@@ -0,0 +1,68 @@
+package com.example.mvc;
+
+import android.content.ContentValues;
+import android.content.Context;
+import android.database.Cursor;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class TodoController {
+ /*The Controller provides data from the Model for the View
+ *to bind to the UI.
+ */
+
+ private TodoModel db_model;
+ private List tasks;
+
+ public TodoController(Context app_context)
+ {
+ tasks = new ArrayList();
+ db_model = new TodoModel(app_context);
+ }
+
+ public void addTask(final String title)
+ {
+ final ContentValues data = new ContentValues();
+ data.put("title", title);
+ db_model.addEntry(data);
+ }
+
+ //Overrides to handle View specifics and keep Model straightforward.
+ public void deleteTask(final String title)
+ {
+ db_model.deleteEntry("title='" + title + "'");
+ }
+
+ public void deleteTask(final long id)
+ {
+ db_model.deleteEntry("id='" + id + "'");
+ }
+
+ public void deleteAll()
+ {
+ db_model.deleteEntry(null);
+ }
+
+ public List getTasks()
+ {
+ Cursor c = db_model.findAll();
+ tasks.clear();
+
+ if (c != null)
+ {
+ c.moveToFirst();
+
+ while (c.isAfterLast() == false)
+ {
+ tasks.add(c.getString(0));
+ c.moveToNext();
+ }
+
+ c.close();
+ }
+
+ return tasks;
+ }
+}
+
diff --git a/9781430258575/Chapter2/MVC/src/com/example/mvc/TodoModel.java b/9781430258575/Chapter2/MVC/src/com/example/mvc/TodoModel.java
new file mode 100644
index 0000000..5b2940a
--- /dev/null
+++ b/9781430258575/Chapter2/MVC/src/com/example/mvc/TodoModel.java
@@ -0,0 +1,61 @@
+package com.example.mvc;
+
+import android.content.ContentValues;
+import android.content.Context;
+import android.database.Cursor;
+import android.database.sqlite.SQLiteDatabase;
+import android.database.sqlite.SQLiteOpenHelper;
+import android.util.Log;
+
+final class TodoModel
+{
+ private static final String DB_NAME = "tasks";
+ private static final String TABLE_NAME = "tasks";
+ private static final int DB_VERSION = 1;
+ private static final String DB_CREATE_QUERY = "CREATE TABLE " + TodoModel.TABLE_NAME + " (id integer primary key autoincrement, title text not null);";
+
+ private final SQLiteDatabase storage;
+ private final SQLiteOpenHelper helper;
+
+ public TodoModel(final Context ctx)
+ {
+ this.helper = new SQLiteOpenHelper(ctx, TodoModel.DB_NAME, null, TodoModel.DB_VERSION)
+ {
+ @Override
+ public void onCreate(final SQLiteDatabase db)
+ {
+ db.execSQL(TodoModel.DB_CREATE_QUERY);
+ }
+
+ @Override
+ public void onUpgrade(final SQLiteDatabase db, final int oldVersion,
+ final int newVersion)
+ {
+ db.execSQL("DROP TABLE IF EXISTS " + TodoModel.TABLE_NAME);
+ this.onCreate(db);
+ }
+ };
+
+ this.storage = this.helper.getWritableDatabase();
+ }
+
+ public void addEntry(ContentValues data)
+ {
+ this.storage.insert(TodoModel.TABLE_NAME, null, data);
+ }
+
+ public void deleteEntry(final String field_params)
+ {
+ this.storage.delete(TodoModel.TABLE_NAME, field_params, null);
+ }
+
+ public Cursor findAll()
+ {
+ Log.d(TodoActivity.APP_TAG, "findAll triggered");
+
+ final Cursor c = this.storage.query(TodoModel.TABLE_NAME, new String[]
+ { "title" }, null, null, null, null, null);
+
+ return c;
+ }
+}
\ No newline at end of file
diff --git a/9781430258575/Chapter2/MVVM/AndroidManifest.xml b/9781430258575/Chapter2/MVVM/AndroidManifest.xml
new file mode 100644
index 0000000..7be59e1
--- /dev/null
+++ b/9781430258575/Chapter2/MVVM/AndroidManifest.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/9781430258575/Chapter2/MVVM/README b/9781430258575/Chapter2/MVVM/README
new file mode 100644
index 0000000..e69de29
diff --git a/9781430258575/Chapter2/MVVM/proguard-project.txt b/9781430258575/Chapter2/MVVM/proguard-project.txt
new file mode 100644
index 0000000..f2fe155
--- /dev/null
+++ b/9781430258575/Chapter2/MVVM/proguard-project.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# 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/9781430258575/Chapter2/MVVM/project.properties b/9781430258575/Chapter2/MVVM/project.properties
new file mode 100644
index 0000000..a3ee5ab
--- /dev/null
+++ b/9781430258575/Chapter2/MVVM/project.properties
@@ -0,0 +1,14 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
+
+# Project target.
+target=android-17
diff --git a/9781430258575/Chapter2/MVVM/res/drawable-hdpi/ic_launcher.png b/9781430258575/Chapter2/MVVM/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 0000000..96a442e
Binary files /dev/null and b/9781430258575/Chapter2/MVVM/res/drawable-hdpi/ic_launcher.png differ
diff --git a/9781430258575/Chapter2/MVVM/res/drawable-mdpi/ic_launcher.png b/9781430258575/Chapter2/MVVM/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 0000000..359047d
Binary files /dev/null and b/9781430258575/Chapter2/MVVM/res/drawable-mdpi/ic_launcher.png differ
diff --git a/9781430258575/Chapter2/MVVM/res/drawable-xhdpi/ic_launcher.png b/9781430258575/Chapter2/MVVM/res/drawable-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..71c6d76
Binary files /dev/null and b/9781430258575/Chapter2/MVVM/res/drawable-xhdpi/ic_launcher.png differ
diff --git a/9781430258575/Chapter2/MVVM/res/drawable-xxhdpi/ic_launcher.png b/9781430258575/Chapter2/MVVM/res/drawable-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..85a6081
Binary files /dev/null and b/9781430258575/Chapter2/MVVM/res/drawable-xxhdpi/ic_launcher.png differ
diff --git a/9781430258575/Chapter2/MVVM/res/drawable/splash.jpeg b/9781430258575/Chapter2/MVVM/res/drawable/splash.jpeg
new file mode 100644
index 0000000..d1f61a0
Binary files /dev/null and b/9781430258575/Chapter2/MVVM/res/drawable/splash.jpeg differ
diff --git a/9781430258575/Chapter2/MVVM/res/layout/main.xml b/9781430258575/Chapter2/MVVM/res/layout/main.xml
new file mode 100644
index 0000000..13b1e59
--- /dev/null
+++ b/9781430258575/Chapter2/MVVM/res/layout/main.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/9781430258575/Chapter2/MVVM/res/layout/splash.xml b/9781430258575/Chapter2/MVVM/res/layout/splash.xml
new file mode 100644
index 0000000..5bb8759
--- /dev/null
+++ b/9781430258575/Chapter2/MVVM/res/layout/splash.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/9781430258575/Chapter2/MVVM/res/menu/todo.xml b/9781430258575/Chapter2/MVVM/res/menu/todo.xml
new file mode 100644
index 0000000..c002028
--- /dev/null
+++ b/9781430258575/Chapter2/MVVM/res/menu/todo.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
diff --git a/9781430258575/Chapter2/MVVM/res/values-sw600dp/dimens.xml b/9781430258575/Chapter2/MVVM/res/values-sw600dp/dimens.xml
new file mode 100644
index 0000000..44f01db
--- /dev/null
+++ b/9781430258575/Chapter2/MVVM/res/values-sw600dp/dimens.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
diff --git a/9781430258575/Chapter2/MVVM/res/values-sw720dp-land/dimens.xml b/9781430258575/Chapter2/MVVM/res/values-sw720dp-land/dimens.xml
new file mode 100644
index 0000000..61e3fa8
--- /dev/null
+++ b/9781430258575/Chapter2/MVVM/res/values-sw720dp-land/dimens.xml
@@ -0,0 +1,9 @@
+
+
+
+ 128dp
+
+
diff --git a/9781430258575/Chapter2/MVVM/res/values-v11/styles.xml b/9781430258575/Chapter2/MVVM/res/values-v11/styles.xml
new file mode 100644
index 0000000..3c02242
--- /dev/null
+++ b/9781430258575/Chapter2/MVVM/res/values-v11/styles.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
diff --git a/9781430258575/Chapter2/MVVM/res/values-v14/styles.xml b/9781430258575/Chapter2/MVVM/res/values-v14/styles.xml
new file mode 100644
index 0000000..a91fd03
--- /dev/null
+++ b/9781430258575/Chapter2/MVVM/res/values-v14/styles.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
diff --git a/9781430258575/Chapter2/MVVM/res/values/dimens.xml b/9781430258575/Chapter2/MVVM/res/values/dimens.xml
new file mode 100644
index 0000000..55c1e59
--- /dev/null
+++ b/9781430258575/Chapter2/MVVM/res/values/dimens.xml
@@ -0,0 +1,7 @@
+
+
+
+ 16dp
+ 16dp
+
+
diff --git a/9781430258575/Chapter2/MVVM/res/values/strings.xml b/9781430258575/Chapter2/MVVM/res/values/strings.xml
new file mode 100644
index 0000000..59c058d
--- /dev/null
+++ b/9781430258575/Chapter2/MVVM/res/values/strings.xml
@@ -0,0 +1,8 @@
+
+
+
+ MVVM-example
+ Settings
+ Add item
+
+
diff --git a/9781430258575/Chapter2/MVVM/res/values/styles.xml b/9781430258575/Chapter2/MVVM/res/values/styles.xml
new file mode 100644
index 0000000..6ce89c7
--- /dev/null
+++ b/9781430258575/Chapter2/MVVM/res/values/styles.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
diff --git a/9781430258575/Chapter2/MVVM/src/com/example/mvvm/Splash.java b/9781430258575/Chapter2/MVVM/src/com/example/mvvm/Splash.java
new file mode 100644
index 0000000..5ce1444
--- /dev/null
+++ b/9781430258575/Chapter2/MVVM/src/com/example/mvvm/Splash.java
@@ -0,0 +1,36 @@
+package com.example.mvvm;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.content.Intent;
+
+public class Splash extends Activity {
+ public void onCreate(Bundle savedInstanceState) {
+ // TIP: Optimized the onSomething() classes, especially onCreate() (DONE)
+ // Load all the necessary data here at startup because it is
+ // a bit faster than loading in other methods
+
+ super.onCreate(savedInstanceState);
+
+ // TIP: View - inflate the views a minimum number of times (DONE)
+ // inflating views are expensive
+ /*for (int i=0; i<10000; i++)
+ setContentView(R.layout.splash);*/
+
+ // TIP: Splashscreen optional (DONE)
+ setContentView(R.layout.splash);
+ Thread timer = new Thread() {
+ public void run() {
+ try {
+ sleep(1000);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ } finally {
+ Intent openStartingPoint = new Intent("com.example.mvvm.TodoActivity");
+ startActivity(openStartingPoint);
+ }
+ }
+ };
+ timer.start();
+ }
+}
\ No newline at end of file
diff --git a/9781430258575/Chapter2/MVVM/src/com/example/mvvm/TodoActivity.java b/9781430258575/Chapter2/MVVM/src/com/example/mvvm/TodoActivity.java
new file mode 100644
index 0000000..8a4758d
--- /dev/null
+++ b/9781430258575/Chapter2/MVVM/src/com/example/mvvm/TodoActivity.java
@@ -0,0 +1,57 @@
+package com.example.mvvm;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.ListView;
+
+public class TodoActivity extends Activity
+{
+ public static final String APP_TAG = "com.logicdrop.todos";
+
+ private ListView taskView;
+ private Button btNewTask;
+ private EditText etNewTask;
+ private TaskListManager delegate;
+
+ /*The View handles UI setup only. All event logic and delegation
+ *is handled by the ViewModel.
+ */
+
+ public static interface TaskListManager
+ {
+ //Through this interface the event logic is
+ //passed off to the ViewModel.
+ void registerTaskList(ListView list);
+ void registerTaskAdder(View button, EditText input);
+ }
+
+ @Override
+ protected void onStop()
+ {
+ super.onStop();
+ }
+
+ @Override
+ protected void onStart()
+ {
+ super.onStart();
+ }
+
+ @Override
+ public void onCreate(final Bundle bundle)
+ {
+ super.onCreate(bundle);
+
+ this.setContentView(R.layout.main);
+
+ this.delegate = new TodoViewModel(this);
+ this.taskView = (ListView) this.findViewById(R.id.tasklist);
+ this.btNewTask = (Button) this.findViewById(R.id.btNewTask);
+ this.etNewTask = (EditText) this.findViewById(R.id.etNewTask);
+ this.delegate.registerTaskList(taskView);
+ this.delegate.registerTaskAdder(btNewTask, etNewTask);
+ }
+}
\ No newline at end of file
diff --git a/9781430258575/Chapter2/MVVM/src/com/example/mvvm/TodoModel.java b/9781430258575/Chapter2/MVVM/src/com/example/mvvm/TodoModel.java
new file mode 100644
index 0000000..461d9b0
--- /dev/null
+++ b/9781430258575/Chapter2/MVVM/src/com/example/mvvm/TodoModel.java
@@ -0,0 +1,67 @@
+package com.example.mvvm;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import android.content.ContentValues;
+import android.content.Context;
+import android.database.Cursor;
+import android.database.sqlite.SQLiteDatabase;
+import android.database.sqlite.SQLiteOpenHelper;
+import android.util.Log;
+
+final class TodoModel
+{
+ //The Model should contain no logic specific to the view - only
+ //logic necessary to provide a minimal API to the ViewModel.
+ private static final String DB_NAME = "tasks";
+ private static final String TABLE_NAME = "tasks";
+ private static final int DB_VERSION = 1;
+ private static final String DB_CREATE_QUERY = "CREATE TABLE " + TodoModel.TABLE_NAME + " (id integer primary key autoincrement, title text not null);";
+
+ private final SQLiteDatabase storage;
+ private final SQLiteOpenHelper helper;
+
+ public TodoModel(final Context ctx)
+ {
+ this.helper = new SQLiteOpenHelper(ctx, TodoModel.DB_NAME, null, TodoModel.DB_VERSION)
+ {
+ @Override
+ public void onCreate(final SQLiteDatabase db)
+ {
+ db.execSQL(TodoModel.DB_CREATE_QUERY);
+ }
+
+ @Override
+ public void onUpgrade(final SQLiteDatabase db, final int oldVersion,
+ final int newVersion)
+ {
+ db.execSQL("DROP TABLE IF EXISTS " + TodoModel.TABLE_NAME);
+ this.onCreate(db);
+ }
+ };
+
+ this.storage = this.helper.getWritableDatabase();
+ }
+
+ /*Overrides are now done in the ViewModel. The Model only needs
+ *to add/delete, and the ViewModel can handle the specific needs of the View.
+ */
+ public void addEntry(ContentValues data)
+ {
+ this.storage.insert(TodoModel.TABLE_NAME, null, data);
+ }
+
+ public void deleteEntry(final String field_params)
+ {
+ this.storage.delete(TodoModel.TABLE_NAME, field_params, null);
+ }
+
+ public Cursor findAll()
+ {
+ //Model only needs to return an accessor. The ViewModel will handle
+ //any logic accordingly.
+ return this.storage.query(TodoModel.TABLE_NAME, new String[]
+ { "title" }, null, null, null, null, null);
+ }
+}
\ No newline at end of file
diff --git a/9781430258575/Chapter2/MVVM/src/com/example/mvvm/TodoViewModel.java b/9781430258575/Chapter2/MVVM/src/com/example/mvvm/TodoViewModel.java
new file mode 100644
index 0000000..339392a
--- /dev/null
+++ b/9781430258575/Chapter2/MVVM/src/com/example/mvvm/TodoViewModel.java
@@ -0,0 +1,122 @@
+package com.example.mvvm;
+
+import android.content.ContentValues;
+import android.content.Context;
+import android.database.Cursor;
+import android.view.View;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
+import android.widget.EditText;
+import android.widget.ListView;
+import android.widget.TextView;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class TodoViewModel implements TodoActivity.TaskListManager
+{
+ /*The ViewModel acts as a delegate between the ToDoActivity (View)
+ *and the ToDoProvider (Model).
+ * The ViewModel receives references from the View and uses them
+ * to update the UI.
+ */
+
+ private TodoModel db_model;
+ private List tasks;
+ private Context main_activity;
+ private ListView taskView;
+ private EditText newTask;
+
+ public TodoViewModel(Context app_context)
+ {
+ tasks = new ArrayList();
+ main_activity = app_context;
+ db_model = new TodoModel(app_context);
+ }
+
+ //Overrides to handle View specifics and keep Model straightforward.
+
+ private void deleteTask(View view)
+ {
+ db_model.deleteEntry("title='" + ((TextView)view).getText().toString() + "'");
+ }
+
+ private void addTask(View view)
+ {
+ final ContentValues data = new ContentValues();
+
+ data.put("title", ((TextView)view).getText().toString());
+ db_model.addEntry(data);
+ }
+
+ private void deleteAll()
+ {
+ db_model.deleteEntry(null);
+ }
+
+ private List getTasks()
+ {
+ final Cursor c = db_model.findAll();
+ tasks.clear();
+
+ if (c != null)
+ {
+ c.moveToFirst();
+
+ while (c.isAfterLast() == false)
+ {
+ tasks.add(c.getString(0));
+ c.moveToNext();
+ }
+
+ c.close();
+ }
+
+ return tasks;
+ }
+
+ private void renderTodos()
+ {
+ //The ViewModel handles rendering and changes to the view's
+ //data. The View simply provides a reference to its
+ //elements.
+ taskView.setAdapter(new ArrayAdapter(main_activity,
+ android.R.layout.simple_list_item_1,
+ getTasks().toArray(new String[]
+ {})));
+ }
+
+ public void registerTaskList(ListView list)
+ {
+ this.taskView = list; //Keep reference for rendering later
+ if (list.getAdapter() == null) //Show items at startup
+ {
+ renderTodos();
+ }
+
+ list.setOnItemClickListener(new AdapterView.OnItemClickListener()
+ {
+ @Override
+ public void onItemClick(final AdapterView> parent, final View view, final int position, final long id)
+ { //Tapping on any item in the list will delete that item from the database and re-render the list
+ deleteTask(view);
+ renderTodos();
+ }
+ });
+ }
+
+ public void registerTaskAdder(View button, EditText input)
+ {
+ this.newTask = input;
+ button.setOnClickListener(new View.OnClickListener()
+ {
+ @Override
+ public void onClick(final View view)
+ { //Add task to database, re-render list, and clear the input
+ addTask(newTask);
+ renderTodos();
+ newTask.setText("");
+ }
+ });
+ }
+}
diff --git a/9781430258575/Chapter3/AndroidManifest.xml b/9781430258575/Chapter3/AndroidManifest.xml
new file mode 100644
index 0000000..4d35085
--- /dev/null
+++ b/9781430258575/Chapter3/AndroidManifest.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/9781430258575/Chapter3/analysis/allocations-after.png b/9781430258575/Chapter3/analysis/allocations-after.png
new file mode 100644
index 0000000..b35d469
Binary files /dev/null and b/9781430258575/Chapter3/analysis/allocations-after.png differ
diff --git a/9781430258575/Chapter3/analysis/allocations-before.tiff b/9781430258575/Chapter3/analysis/allocations-before.tiff
new file mode 100644
index 0000000..6ead30d
Binary files /dev/null and b/9781430258575/Chapter3/analysis/allocations-before.tiff differ
diff --git a/9781430258575/Chapter3/analysis/deoptimized-MP-Traceview.png b/9781430258575/Chapter3/analysis/deoptimized-MP-Traceview.png
new file mode 100644
index 0000000..25123b5
Binary files /dev/null and b/9781430258575/Chapter3/analysis/deoptimized-MP-Traceview.png differ
diff --git a/9781430258575/Chapter3/analysis/deoptimizedDDMS.trace b/9781430258575/Chapter3/analysis/deoptimizedDDMS.trace
new file mode 100644
index 0000000..7375c98
--- /dev/null
+++ b/9781430258575/Chapter3/analysis/deoptimizedDDMS.trace
@@ -0,0 +1,4349 @@
+*version
+3
+data-file-overflow=false
+clock=dual
+elapsed-time-usec=9142974
+num-method-calls=69850
+clock-call-overhead-nsec=46739
+vm=dalvik
+*threads
+1 main
+15 AsyncTask #5
+14 AsyncTask #4
+13 AsyncTask #3
+12 AsyncTask #2
+11 AsyncTask #1
+10 Binder_2
+9 Binder_1
+8 FinalizerWatchdogDaemon
+7 FinalizerDaemon
+6 ReferenceQueueDaemon
+5 Compiler
+4 JDWP
+3 Signal Catcher
+2 GC
+*methods
+0x44c61488 java/lang/Long longValue ()J Long.java 305
+0x44c60c68 java/lang/Long (J)V Long.java 75
+0x44c61218 java/lang/Long valueOf (J)Ljava/lang/Long; Long.java 728
+0x44f180a0 com/logicdrop/todos/activity/TodoActivity access$100 (Lcom/logicdrop/todos/activity/TodoActivity;)Lcom/logicdrop/todos/activity/TodoProvider; TodoActivity.java 23
+0x44f180d8 com/logicdrop/todos/activity/TodoActivity access$200 (Lcom/logicdrop/todos/activity/TodoActivity;)V TodoActivity.java 23
+0x44f18110 com/logicdrop/todos/activity/TodoActivity access$300 (Lcom/logicdrop/todos/activity/TodoActivity;)V TodoActivity.java 23
+0x44f18148 com/logicdrop/todos/activity/TodoActivity renderTodos ()V TodoActivity.java -1
+0x44f18180 com/logicdrop/todos/activity/TodoActivity uselessFunction ()V TodoActivity.java 116
+0x44df2b98 android/util/StateSet stateSetMatches ([I[I)Z StateSet.java -1
+0x44e65608 android/widget/LinearLayout getChildrenSkipCount (Landroid/view/View;I)I LinearLayout.java 1374
+0x44e656e8 android/widget/LinearLayout getLocationOffset (Landroid/view/View;)I LinearLayout.java 1416
+0x44e65720 android/widget/LinearLayout getNextLocationOffset (Landroid/view/View;)I LinearLayout.java 1428
+0x44e657c8 android/widget/LinearLayout getVirtualChildAt (I)Landroid/view/View; LinearLayout.java 541
+0x44e65800 android/widget/LinearLayout getVirtualChildCount ()I LinearLayout.java 554
+0x44e65870 android/widget/LinearLayout hasDividerBeforeChildAt (I)Z LinearLayout.java -1
+0x44e65918 android/widget/LinearLayout layoutHorizontal ()V LinearLayout.java 1539
+0x44e65950 android/widget/LinearLayout layoutVertical ()V LinearLayout.java 1449
+0x44e65988 android/widget/LinearLayout measureChildBeforeLayout (Landroid/view/View;IIIII)V LinearLayout.java 1404
+0x44e659c0 android/widget/LinearLayout measureHorizontal (II)V LinearLayout.java 959
+0x44e65a30 android/widget/LinearLayout measureVertical (II)V LinearLayout.java 631
+0x44e65b10 android/widget/LinearLayout onLayout (ZIIII)V LinearLayout.java 1433
+0x44e65b48 android/widget/LinearLayout onMeasure (II)V LinearLayout.java 587
+0x44e652f0 android/widget/LinearLayout setChildFrame (Landroid/view/View;IIII)V LinearLayout.java 1663
+0x44c932b8 android/graphics/Bitmap getHeight ()I Bitmap.java 914
+0x44c93558 android/graphics/Bitmap getWidth ()I Bitmap.java 909
+0x44c936a8 android/graphics/Bitmap ni ()I Bitmap.java 1444
+0x44ecb238 java/io/Writer ()V Writer.java 47
+0x44ecb270 java/io/Writer (Ljava/lang/Object;)V Writer.java 60
+0x44d74da0 android/ddm/DdmHandleProfiling handleChunk (Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk; DdmHandleProfiling.java 73
+0x44d74c10 android/ddm/DdmHandleProfiling handleMPRQ (Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk; DdmHandleProfiling.java -1
+0x44d74c80 android/ddm/DdmHandleProfiling handleMPSE (Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk; DdmHandleProfiling.java 165
+0x44d74cb8 android/ddm/DdmHandleProfiling handleMPSS (Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk; DdmHandleProfiling.java 137
+0x44c8d290 java/lang/Daemons$FinalizerDaemon access$100 ()Ljava/lang/Daemons$FinalizerDaemon; Daemons.java 160
+0x44c8d2c8 java/lang/Daemons$FinalizerDaemon access$400 (Ljava/lang/Daemons$FinalizerDaemon;)Ljava/lang/Object; Daemons.java 160
+0x44c8d300 java/lang/Daemons$FinalizerDaemon access$500 (Ljava/lang/Daemons$FinalizerDaemon;)J Daemons.java 160
+0x44c8d338 java/lang/Daemons$FinalizerDaemon doFinalize (Ljava/lang/ref/FinalizerReference;)V Daemons.java -1
+0x44d72f28 android/database/sqlite/SQLiteQuery fillWindow (Landroid/database/CursorWindow;IIZ)I SQLiteQuery.java 58
+0x44d72ee8 android/database/sqlite/SQLiteQuery (Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;Landroid/os/CancellationSignal;)V SQLiteQuery.java 37
+0x44c9b588 java/util/concurrent/atomic/AtomicInteger compareAndSet (II)Z AtomicInteger.java 106
+0x44c9b668 java/util/concurrent/atomic/AtomicInteger get ()I AtomicInteger.java 60
+0x44c9b710 java/util/concurrent/atomic/AtomicInteger getAndIncrement ()I AtomicInteger.java 132
+0x44e121c0 android/view/ViewTreeObserver addOnPreDrawListener (Landroid/view/ViewTreeObserver$OnPreDrawListener;)V ViewTreeObserver.java 419
+0x44e122a0 android/view/ViewTreeObserver dispatchOnDraw ()V ViewTreeObserver.java 693
+0x44e12310 android/view/ViewTreeObserver dispatchOnGlobalLayout ()V ViewTreeObserver.java 649
+0x44e12348 android/view/ViewTreeObserver dispatchOnPreDraw ()Z ViewTreeObserver.java 673
+0x44e12380 android/view/ViewTreeObserver dispatchOnScrollChanged ()V ViewTreeObserver.java 725
+0x44e123f0 android/view/ViewTreeObserver hasComputeInternalInsetsListeners ()Z ViewTreeObserver.java 743
+0x44e125b0 android/view/ViewTreeObserver removeOnPreDrawListener (Landroid/view/ViewTreeObserver$OnPreDrawListener;)V ViewTreeObserver.java 438
+0x44e12068 android/view/ViewTreeObserver checkIsAlive ()V ViewTreeObserver.java 594
+0x44ca3830 android/graphics/Canvas clipRect (FFFF)Z Canvas.java -2
+0x44ca38a0 android/graphics/Canvas clipRect (IIII)Z Canvas.java -2
+0x44ca3e50 android/graphics/Canvas drawPath (Landroid/graphics/Path;Landroid/graphics/Paint;)V Canvas.java 1021
+0x44ca4080 android/graphics/Canvas drawRect (FFFFLandroid/graphics/Paint;)V Canvas.java 934
+0x44ca40b8 android/graphics/Canvas drawRect (Landroid/graphics/Rect;Landroid/graphics/Paint;)V Canvas.java 919
+0x44ca4160 android/graphics/Canvas drawText (Ljava/lang/CharSequence;IIFFLandroid/graphics/Paint;)V Canvas.java -1
+0x44ca4198 android/graphics/Canvas drawText (Ljava/lang/String;FFLandroid/graphics/Paint;)V Canvas.java 1345
+0x44ca42b0 android/graphics/Canvas drawTextRun (Ljava/lang/CharSequence;IIIIFFILandroid/graphics/Paint;)V Canvas.java 1459
+0x44ca42e8 android/graphics/Canvas drawTextRun ([CIIIIFFILandroid/graphics/Paint;)V Canvas.java 1422
+0x44ca4390 android/graphics/Canvas getClipBounds (Landroid/graphics/Rect;)Z Canvas.java 765
+0x44ca4588 android/graphics/Canvas getSaveCount ()I Canvas.java -2
+0x44ca45f8 android/graphics/Canvas isHardwareAccelerated ()Z Canvas.java 167
+0x44ca4630 android/graphics/Canvas isOpaque ()Z Canvas.java -2
+0x44ca4668 android/graphics/Canvas quickReject (FFFFLandroid/graphics/Canvas$EdgeType;)Z Canvas.java 753
+0x44ca4710 android/graphics/Canvas restore ()V Canvas.java -2
+0x44ca4748 android/graphics/Canvas restoreToCount (I)V Canvas.java -2
+0x44ca47f0 android/graphics/Canvas save ()I Canvas.java -2
+0x44ca49e8 android/graphics/Canvas setDensity (I)V Canvas.java 260
+0x44ca4a90 android/graphics/Canvas setScreenDensity (I)V Canvas.java 268
+0x44ca4b38 android/graphics/Canvas translate (FF)V Canvas.java -2
+0x44ca3208 android/graphics/Canvas native_drawPath (III)V Canvas.java -2
+0x44ca3320 android/graphics/Canvas native_drawRect (IFFFFI)V Canvas.java -2
+0x44ca33c8 android/graphics/Canvas native_drawText (ILjava/lang/String;IIFFII)V Canvas.java -2
+0x44ca34e0 android/graphics/Canvas native_drawTextRun (I[CIIIIFFII)V Canvas.java -2
+0x44ca3550 android/graphics/Canvas native_getClipBounds (ILandroid/graphics/Rect;)Z Canvas.java -2
+0x44ca3588 android/graphics/Canvas native_quickReject (IFFFFI)Z Canvas.java -2
+0x44e13220 android/view/Window getCallback ()Landroid/view/Window$Callback; Window.java 560
+0x44e13610 android/view/Window isDestroyed ()Z Window.java 456
+0x44c9fe68 android/view/DisplayEventReceiver scheduleVsync ()V DisplayEventReceiver.java 128
+0x44c9fc68 android/view/DisplayEventReceiver dispatchVsync (JII)V DisplayEventReceiver.java 139
+0x44c9fd48 android/view/DisplayEventReceiver nativeScheduleVsync (I)V DisplayEventReceiver.java -2
+0x44c95bc8 com/android/internal/util/ArrayUtils emptyArray (Ljava/lang/Class;)[Ljava/lang/Object; ArrayUtils.java 102
+0x44e1e438 android/view/inputmethod/InputMethodManager checkFocus ()V InputMethodManager.java -1
+0x44e1ea58 android/view/inputmethod/InputMethodManager isActive (Landroid/view/View;)Z InputMethodManager.java 686
+0x44e1eac8 android/view/inputmethod/InputMethodManager isWatchingCursor (Landroid/view/View;)Z InputMethodManager.java 1433
+0x44e1f120 android/view/inputmethod/InputMethodManager updateSelection (Landroid/view/View;IIII)V InputMethodManager.java 1379
+0x44e1e1c8 android/view/inputmethod/InputMethodManager checkFocusNoStartInput (ZZ)Z InputMethodManager.java -1
+0x44e1e350 android/view/inputmethod/InputMethodManager peekInstance ()Landroid/view/inputmethod/InputMethodManager; InputMethodManager.java 579
+0x44d5b9a8 android/content/res/CompatibilityInfo supportsScreen ()Z CompatibilityInfo.java 266
+0x44d2f728 android/app/ContextImpl getApplicationInfo ()Landroid/content/pm/ApplicationInfo; ContextImpl.java 632
+0x44d2f840 android/app/ContextImpl getContentResolver ()Landroid/content/ContentResolver; ContextImpl.java 581
+0x44d73f30 android/database/sqlite/SQLiteStatement executeUpdateDelete ()I SQLiteStatement.java 62
+0x44d73e80 android/database/sqlite/SQLiteStatement (Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/Object;)V SQLiteStatement.java 31
+0x44c7e418 java/lang/Enum ordinal ()I Enum.java 88
+0x44c9bb80 sun/misc/Unsafe compareAndSwapInt (Ljava/lang/Object;JII)Z Unsafe.java -2
+0x44d62fb8 android/database/ContentObservable ()V ContentObservable.java 26
+0x44dd2d38 android/os/StrictMode$AndroidBlockGuardPolicy$1 run ()V StrictMode.java 1206
+0x44dd2cf8 android/os/StrictMode$AndroidBlockGuardPolicy$1 (Landroid/os/StrictMode$AndroidBlockGuardPolicy;Landroid/view/IWindowManager;Ljava/util/ArrayList;)V StrictMode.java 1204
+0x44e72028 android/widget/RelativeLayout$DependencyGraph$Node$1 onAcquired (Landroid/util/Poolable;)V RelativeLayout.java 1682
+0x44e72060 android/widget/RelativeLayout$DependencyGraph$Node$1 onAcquired (Landroid/widget/RelativeLayout$DependencyGraph$Node;)V RelativeLayout.java 1688
+0x44e72098 android/widget/RelativeLayout$DependencyGraph$Node$1 onReleased (Landroid/util/Poolable;)V RelativeLayout.java 1682
+0x44e720d0 android/widget/RelativeLayout$DependencyGraph$Node$1 onReleased (Landroid/widget/RelativeLayout$DependencyGraph$Node;)V RelativeLayout.java 1691
+0x44c7f2a0 java/util/HashMap addNewEntry (Ljava/lang/Object;Ljava/lang/Object;II)V HashMap.java 476
+0x44c7f310 java/util/HashMap clear ()V HashMap.java -1
+0x44c7f3f0 java/util/HashMap containsKey (Ljava/lang/Object;)Z HashMap.java -1
+0x44c7f498 java/util/HashMap get (Ljava/lang/Object;)Ljava/lang/Object; HashMap.java -1
+0x44c7f508 java/util/HashMap isEmpty ()Z HashMap.java 271
+0x44c7f540 java/util/HashMap keySet ()Ljava/util/Set; HashMap.java 681
+0x44c7f5b0 java/util/HashMap newKeyIterator ()Ljava/util/Iterator; HashMap.java 893
+0x44c7f690 java/util/HashMap put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; HashMap.java 386
+0x44c7ee70 java/util/HashMap ()V HashMap.java 125
+0x44c7f068 java/util/HashMap doubleCapacity ()[Ljava/util/HashMap$HashMapEntry; HashMap.java 569
+0x44c7f0d8 java/util/HashMap makeTable (I)[Ljava/util/HashMap$HashMapEntry; HashMap.java 555
+0x44c7f228 java/util/HashMap secondaryHash (I)I HashMap.java 973
+0x44e70c50 android/widget/RelativeLayout onLayout (ZIIII)V RelativeLayout.java 1014
+0x44e70c88 android/widget/RelativeLayout onMeasure (II)V RelativeLayout.java 361
+0x44e70cc0 android/widget/RelativeLayout requestLayout ()V RelativeLayout.java 318
+0x44e70708 android/widget/RelativeLayout applyHorizontalSizeRules (Landroid/widget/RelativeLayout$LayoutParams;I)V RelativeLayout.java -1
+0x44e70740 android/widget/RelativeLayout applyVerticalSizeRules (Landroid/widget/RelativeLayout$LayoutParams;I)V RelativeLayout.java -1
+0x44e707e8 android/widget/RelativeLayout getChildMeasureSpec (IIIIIIII)I RelativeLayout.java 703
+0x44e70820 android/widget/RelativeLayout getRelatedView ([II)Landroid/view/View; RelativeLayout.java -1
+0x44e70890 android/widget/RelativeLayout getRelatedViewParams ([II)Landroid/widget/RelativeLayout$LayoutParams; RelativeLayout.java 976
+0x44e70900 android/widget/RelativeLayout measureChild (Landroid/view/View;Landroid/widget/RelativeLayout$LayoutParams;II)V RelativeLayout.java 656
+0x44e70938 android/widget/RelativeLayout measureChildHorizontal (Landroid/view/View;Landroid/widget/RelativeLayout$LayoutParams;II)V RelativeLayout.java 670
+0x44e70970 android/widget/RelativeLayout positionChildHorizontal (Landroid/view/View;Landroid/widget/RelativeLayout$LayoutParams;IZ)Z RelativeLayout.java -1
+0x44e709a8 android/widget/RelativeLayout positionChildVertical (Landroid/view/View;Landroid/widget/RelativeLayout$LayoutParams;IZ)Z RelativeLayout.java -1
+0x44e709e0 android/widget/RelativeLayout sortChildren ()V RelativeLayout.java 323
+0x44d073d8 android/os/UserHandle getUserId (I)I UserHandle.java 114
+0x44d074f0 android/os/UserHandle myUserId ()I UserHandle.java 160
+0x44d00148 java/util/Arrays asList ([Ljava/lang/Object;)Ljava/util/List; Arrays.java 154
+0x44d005a8 java/util/Arrays checkOffsetAndCount (III)V Arrays.java 1730
+0x44d005e0 java/util/Arrays checkStartAndEnd (III)V Arrays.java 1743
+0x44d00ce0 java/util/Arrays equals ([I[I)Z Arrays.java -1
+0x44d01098 java/util/Arrays fill ([Ljava/lang/Object;IILjava/lang/Object;)V Arrays.java 987
+0x44d010d0 java/util/Arrays fill ([Ljava/lang/Object;Ljava/lang/Object;)V Arrays.java 965
+0x44d6ed28 android/database/sqlite/SQLiteConnection$OperationLog beginOperation (Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)I SQLiteConnection.java 1291
+0x44d6edd0 android/database/sqlite/SQLiteConnection$OperationLog endOperation (I)V SQLiteConnection.java 1339
+0x44d6ee08 android/database/sqlite/SQLiteConnection$OperationLog endOperationDeferLog (I)Z SQLiteConnection.java 1347
+0x44d6ec40 android/database/sqlite/SQLiteConnection$OperationLog endOperationDeferLogLocked (I)Z SQLiteConnection.java -1
+0x44d6ec78 android/database/sqlite/SQLiteConnection$OperationLog getOperationLocked (I)Landroid/database/sqlite/SQLiteConnection$Operation; SQLiteConnection.java 1385
+0x44d6ece8 android/database/sqlite/SQLiteConnection$OperationLog newOperationCookieLocked (I)I SQLiteConnection.java 1380
+0x44c50bd8 java/lang/VMThread currentThread ()Ljava/lang/Thread; VMThread.java -2
+0x44c50c48 java/lang/VMThread sleep (JI)V VMThread.java -2
+0x44d7e0c0 android/graphics/drawable/LayerDrawable$ChildDrawable ()V LayerDrawable.java 602
+0x44c8bf38 java/lang/AbstractStringBuilder append0 (C)V AbstractStringBuilder.java 131
+0x44c8bf70 java/lang/AbstractStringBuilder append0 (Ljava/lang/CharSequence;II)V AbstractStringBuilder.java 152
+0x44c8bfa8 java/lang/AbstractStringBuilder append0 (Ljava/lang/String;)V AbstractStringBuilder.java 138
+0x44c8c018 java/lang/AbstractStringBuilder append0 ([CII)V AbstractStringBuilder.java 121
+0x44c8c4b0 java/lang/AbstractStringBuilder length ()I AbstractStringBuilder.java 381
+0x44c8c718 java/lang/AbstractStringBuilder toString ()Ljava/lang/String; AbstractStringBuilder.java -1
+0x44c8bda8 java/lang/AbstractStringBuilder ()V AbstractStringBuilder.java 74
+0x44c8bde0 java/lang/AbstractStringBuilder (I)V AbstractStringBuilder.java 78
+0x44c8be50 java/lang/AbstractStringBuilder enlargeBuffer (I)V AbstractStringBuilder.java -1
+0x44e4aa68 android/widget/BaseAdapter areAllItemsEnabled ()Z BaseAdapter.java 63
+0x44e4aad8 android/widget/BaseAdapter getItemViewType (I)I BaseAdapter.java 75
+0x44e4ab10 android/widget/BaseAdapter getViewTypeCount ()I BaseAdapter.java 79
+0x44e4ab48 android/widget/BaseAdapter hasStableIds ()Z BaseAdapter.java 34
+0x44e4abb8 android/widget/BaseAdapter isEnabled (I)Z BaseAdapter.java 67
+0x44e4ac60 android/widget/BaseAdapter registerDataSetObserver (Landroid/database/DataSetObserver;)V BaseAdapter.java 38
+0x44e4ac98 android/widget/BaseAdapter unregisterDataSetObserver (Landroid/database/DataSetObserver;)V BaseAdapter.java 42
+0x44e4a5e8 android/widget/BaseAdapter ()V BaseAdapter.java 30
+0x44f1dc58 android/text/style/UnderlineSpan updateDrawState (Landroid/text/TextPaint;)V UnderlineSpan.java 45
+0x44d70450 android/database/sqlite/SQLiteCursor close ()V SQLiteCursor.java 197
+0x44d704c0 android/database/sqlite/SQLiteCursor finalize ()V SQLiteCursor.java -1
+0x44d70568 android/database/sqlite/SQLiteCursor getCount ()I SQLiteCursor.java 132
+0x44d705a0 android/database/sqlite/SQLiteCursor getDatabase ()Landroid/database/sqlite/SQLiteDatabase; SQLiteCursor.java 116
+0x44d703a0 android/database/sqlite/SQLiteCursor (Landroid/database/sqlite/SQLiteCursorDriver;Ljava/lang/String;Landroid/database/sqlite/SQLiteQuery;)V SQLiteCursor.java -1
+0x44d70410 android/database/sqlite/SQLiteCursor fillWindow (I)V SQLiteCursor.java -1
+0x44c5e100 java/lang/Character digit (CI)I Character.java 2360
+0x44c5e138 java/lang/Character digit (II)I Character.java -1
+0x44c5e5d0 java/lang/Character isDigit (I)Z Character.java 2699
+0x44c5e640 java/lang/Character isHighSurrogate (C)Z Character.java 1689
+0x44c5f408 java/lang/Character toUpperCase (C)C Character.java 3282
+0x44c5f440 java/lang/Character toUpperCase (I)I Character.java 3297
+0x44dab030 java/lang/IntegralToString appendInt (Ljava/lang/AbstractStringBuilder;I)V IntegralToString.java 173
+0x44dab068 java/lang/IntegralToString appendLong (Ljava/lang/AbstractStringBuilder;J)V IntegralToString.java 307
+0x44dab110 java/lang/IntegralToString convertInt (Ljava/lang/AbstractStringBuilder;I)Ljava/lang/String; IntegralToString.java -1
+0x44dab148 java/lang/IntegralToString convertLong (Ljava/lang/AbstractStringBuilder;J)Ljava/lang/String; IntegralToString.java 315
+0x44dab3e8 java/lang/IntegralToString stringOf ([C)Ljava/lang/String; IntegralToString.java 548
+0x44ecc708 java/io/StringWriter toString ()Ljava/lang/String; StringWriter.java 100
+0x44ecc7e8 java/io/StringWriter write ([CII)V StringWriter.java 119
+0x44ecc3f0 java/io/StringWriter ()V StringWriter.java 40
+0x44dd3268 android/os/StrictMode$StrictModeViolation (IILjava/lang/String;)V StrictMode.java 791
+0x44c99758 com/android/internal/os/BinderInternal handleGc ()V BinderInternal.java -2
+0x44e127c8 android/view/ViewTreeObserver$CopyOnWriteArray add (Ljava/lang/Object;)V ViewTreeObserver.java 842
+0x44e12870 android/view/ViewTreeObserver$CopyOnWriteArray end ()V ViewTreeObserver.java 829
+0x44e128a8 android/view/ViewTreeObserver$CopyOnWriteArray remove (Ljava/lang/Object;)V ViewTreeObserver.java 850
+0x44e128e0 android/view/ViewTreeObserver$CopyOnWriteArray size ()I ViewTreeObserver.java 838
+0x44e12918 android/view/ViewTreeObserver$CopyOnWriteArray start ()Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access; ViewTreeObserver.java 820
+0x44e12788 android/view/ViewTreeObserver$CopyOnWriteArray getArray ()Ljava/util/ArrayList; ViewTreeObserver.java 812
+0x44e4a2e0 android/widget/ArrayAdapter getCount ()I ArrayAdapter.java 330
+0x44e4a3c0 android/widget/ArrayAdapter getItemId (I)J ArrayAdapter.java 355
+0x44e49fc8 android/widget/ArrayAdapter (Landroid/content/Context;I[Ljava/lang/Object;)V ArrayAdapter.java -1
+0x44e4a188 android/widget/ArrayAdapter init (Landroid/content/Context;IILjava/util/List;)V ArrayAdapter.java 309
+0x44e53790 android/widget/Editor isCursorVisible ()Z Editor.java 419
+0x44e538a8 android/widget/Editor onDraw (Landroid/graphics/Canvas;Landroid/text/Layout;Landroid/graphics/Path;Landroid/graphics/Paint;I)V Editor.java 1209
+0x44e53bb8 android/widget/Editor setFrame ()V Editor.java 565
+0x44e52b48 android/widget/Editor access$500 (Landroid/widget/Editor;)Z Editor.java 106
+0x44e52b80 android/widget/Editor access$600 (Landroid/widget/Editor;)Landroid/widget/TextView; Editor.java 106
+0x44e53248 android/widget/Editor shouldBlink ()Z Editor.java -1
+0x44ca1228 android/graphics/RectF offset (FF)V RectF.java 239
+0x44ca13b0 android/graphics/RectF set (Landroid/graphics/Rect;)V RectF.java 225
+0x44ca0df8 android/graphics/RectF ()V RectF.java 42
+0x44ceae70 android/app/Activity dispatchTouchEvent (Landroid/view/MotionEvent;)Z Activity.java 2407
+0x44ceb538 android/app/Activity getSystemService (Ljava/lang/String;)Ljava/lang/Object; Activity.java 4462
+0x44ceb650 android/app/Activity getWindow ()Landroid/view/Window; Activity.java 809
+0x44cec7d0 android/app/Activity onUserInteraction ()V Activity.java 2272
+0x44cb1ed8 android/view/View canHaveDisplayList ()Z View.java 12548
+0x44cb2028 android/view/View clearAccessibilityFocus ()V View.java -1
+0x44cb21e8 android/view/View computeScroll ()V View.java 10836
+0x44cb23e0 android/view/View destroyDrawingCache ()V View.java -1
+0x44cb2450 android/view/View destroyLayer (Z)Z View.java -1
+0x44cb2530 android/view/View dispatchDetachedFromWindow ()V View.java -1
+0x44cb25d8 android/view/View dispatchDraw (Landroid/graphics/Canvas;)V View.java 8615
+0x44cb2808 android/view/View dispatchPointerEvent (Landroid/view/MotionEvent;)Z View.java 7425
+0x44cb2990 android/view/View dispatchSetPressed (Z)V View.java 6132
+0x44cb2a70 android/view/View dispatchTouchEvent (Landroid/view/MotionEvent;)Z View.java -1
+0x44cb2bf8 android/view/View draw (Landroid/graphics/Canvas;)V View.java 13665
+0x44cb2c30 android/view/View draw (Landroid/graphics/Canvas;Landroid/view/ViewGroup;J)Z View.java 13315
+0x44cb2c68 android/view/View drawableStateChanged ()V View.java 14284
+0x44cb31e0 android/view/View getAlpha ()F View.java 9312
+0x44cb3218 android/view/View getAnimation ()Landroid/view/animation/Animation; View.java 15783
+0x44cb32f8 android/view/View getBottom ()I View.java 9472
+0x44cb3330 android/view/View getBottomFadingEdgeStrength ()F View.java 10937
+0x44cb3448 android/view/View getContext ()Landroid/content/Context; View.java 7693
+0x44cb3528 android/view/View getDrawableState ()[I View.java 14319
+0x44cb3598 android/view/View getDrawingCache (Z)Landroid/graphics/Bitmap; View.java -1
+0x44cb3678 android/view/View getDrawingTime ()J View.java 12131
+0x44cb36b0 android/view/View getFadeHeight (Z)I View.java 13165
+0x44cb36e8 android/view/View getFadeTop (Z)I View.java 13155
+0x44cb3870 android/view/View getHandler ()Landroid/os/Handler; View.java 10529
+0x44cb3918 android/view/View getHeight ()I View.java 8687
+0x44cb3950 android/view/View getHitRect (Landroid/graphics/Rect;)V View.java 9804
+0x44cb3a30 android/view/View getId ()I View.java 15255
+0x44cb3bf0 android/view/View getLayerType ()I View.java 12316
+0x44cb3c28 android/view/View getLayoutDirection ()I View.java -1
+0x44cb3c60 android/view/View getLayoutParams ()Landroid/view/ViewGroup$LayoutParams; View.java 10008
+0x44cb3c98 android/view/View getLeft ()I View.java 9545
+0x44cb3e20 android/view/View getMatrix ()Landroid/graphics/Matrix; View.java 8779
+0x44cb3e58 android/view/View getMeasuredHeight ()I View.java 8738
+0x44cb3ec8 android/view/View getMeasuredState ()I View.java 8762
+0x44cb3f00 android/view/View getMeasuredWidth ()I View.java 8714
+0x44cb42f0 android/view/View getParent ()Landroid/view/ViewParent; View.java 8624
+0x44cb43d0 android/view/View getRawLayoutDirection ()I View.java 5871
+0x44cb44b0 android/view/View getRight ()I View.java 9612
+0x44cb4788 android/view/View getScrollX ()I View.java 8656
+0x44cb47c0 android/view/View getScrollY ()I View.java 8667
+0x44cb4830 android/view/View getSuggestedMinimumHeight ()I View.java 15698
+0x44cb4868 android/view/View getSuggestedMinimumWidth ()I View.java 15714
+0x44cb49b8 android/view/View getTop ()I View.java 9405
+0x44cb49f0 android/view/View getTopFadingEdgeStrength ()F View.java 10923
+0x44cb4b40 android/view/View getVerticalFadingEdgeLength ()I View.java 3841
+0x44cb4c20 android/view/View getViewRootImpl ()Landroid/view/ViewRootImpl; View.java 10541
+0x44cb4c58 android/view/View getViewTreeObserver ()Landroid/view/ViewTreeObserver; View.java 14953
+0x44cb4c90 android/view/View getVisibility ()I View.java 5705
+0x44cb4cc8 android/view/View getWidth ()I View.java 8677
+0x44cb4d00 android/view/View getWindowAttachCount ()I View.java 11866
+0x44cb4de0 android/view/View getWindowVisibility ()I View.java 7570
+0x44cb4f30 android/view/View hasFocus ()Z View.java 4527
+0x44cb4f68 android/view/View hasFocusable ()Z View.java 4543
+0x44cb4fd8 android/view/View hasIdentityMatrix ()Z View.java 8803
+0x44cb50f0 android/view/View hasTransientState ()Z View.java -1
+0x44cb5128 android/view/View hasWindowFocus ()Z View.java 7478
+0x44cb5240 android/view/View invalidate ()V View.java 10341
+0x44cb5278 android/view/View invalidate (IIII)V View.java -1
+0x44cb52e8 android/view/View invalidate (Z)V View.java -1
+0x44cb5320 android/view/View invalidateDrawable (Landroid/graphics/drawable/Drawable;)V View.java 14143
+0x44cb5358 android/view/View invalidateParentCaches ()V View.java 10456
+0x44cb5588 android/view/View isEnabled ()Z View.java 5728
+0x44cb55c0 android/view/View isFocusable ()Z View.java -1
+0x44cb5630 android/view/View isFocused ()Z View.java 5314
+0x44cb56a0 android/view/View isHardwareAccelerated ()Z View.java 13186
+0x44cb5828 android/view/View isInTouchMode ()Z View.java 7678
+0x44cb5860 android/view/View isLayoutDirectionInherited ()Z View.java 11756
+0x44cb5898 android/view/View isLayoutRequested ()Z View.java 13977
+0x44cb58d0 android/view/View isLayoutRtl ()Z View.java -1
+0x44cb5940 android/view/View isOpaque ()Z View.java -1
+0x44cb5a20 android/view/View isPressed ()Z View.java 6146
+0x44cb5b70 android/view/View isSelected ()Z View.java 14895
+0x44cb5be0 android/view/View isSoundEffectsEnabled ()Z View.java -1
+0x44cb5c88 android/view/View isVerticalFadingEdgeEnabled ()Z View.java 10887
+0x44cb5da0 android/view/View jumpDrawablesToCurrentState ()V View.java 14434
+0x44cb5dd8 android/view/View layout (IIII)V View.java 14002
+0x44cb5e48 android/view/View measure (II)V View.java 15508
+0x44cb5e80 android/view/View needGlobalAttributesUpdate (Z)V View.java 7660
+0x44cb5ef0 android/view/View offsetLeftAndRight (I)V View.java -1
+0x44cb5f28 android/view/View offsetTopAndBottom (I)V View.java -1
+0x44cb60e8 android/view/View onCreateDrawableState (I)[I View.java -1
+0x44cb6158 android/view/View onDetachedFromWindow ()V View.java 11836
+0x44cb6200 android/view/View onDraw (Landroid/graphics/Canvas;)V View.java 11524
+0x44cb6270 android/view/View onDrawScrollBars (Landroid/graphics/Canvas;)V View.java 11354
+0x44cb62e0 android/view/View onFilterTouchEventForSecurity (Landroid/view/MotionEvent;)Z View.java 7267
+0x44cb66d0 android/view/View onLayout (ZIIII)V View.java 14038
+0x44cb6900 android/view/View onScrollChanged (IIII)V View.java -1
+0x44cb69e0 android/view/View onTouchEvent (Landroid/view/MotionEvent;)Z View.java -1
+0x44cb6af8 android/view/View onWindowVisibilityChanged (I)V View.java 7558
+0x44cb6c10 android/view/View performButtonActionOnTouchDown (Landroid/view/MotionEvent;)Z View.java 4260
+0x44cb6d60 android/view/View playSoundEffect (I)V View.java 15925
+0x44cb6d98 android/view/View pointInView (FF)Z View.java -1
+0x44cb6dd0 android/view/View post (Ljava/lang/Runnable;)Z View.java 10561
+0x44cb6e08 android/view/View postDelayed (Ljava/lang/Runnable;J)Z View.java 10590
+0x44cb7038 android/view/View refreshDrawableState ()V View.java 14299
+0x44cb7268 android/view/View requestLayout ()V View.java 15469
+0x44cb72a0 android/view/View requestRectangleOnScreen (Landroid/graphics/Rect;)Z View.java 4398
+0x44cb72d8 android/view/View requestRectangleOnScreen (Landroid/graphics/Rect;Z)Z View.java 4417
+0x44cb7310 android/view/View resetAccessibilityStateChanged ()V View.java 6884
+0x44cb7380 android/view/View resetResolvedDrawables ()V View.java 14244
+0x44cb75b0 android/view/View resolveRtlPropertiesIfNeeded ()V View.java 11579
+0x44cb7738 android/view/View scrollTo (II)V View.java 10051
+0x44cb7770 android/view/View sendAccessibilityEvent (I)V View.java 4625
+0x44cb77a8 android/view/View sendAccessibilityEventInternal (I)V View.java 4658
+0x44cb7d90 android/view/View setFlags (II)V View.java -1
+0x44cb7dc8 android/view/View setFocusable (Z)V View.java -1
+0x44cb7e00 android/view/View setFocusableInTouchMode (Z)V View.java -1
+0x44cb7e38 android/view/View setFrame (IIII)Z View.java 14054
+0x44cb8228 android/view/View setMeasuredDimension (II)V View.java 15599
+0x44cb8730 android/view/View setPressed (Z)V View.java -1
+0x44cb1028 android/view/View combineMeasuredStates (II)I View.java 15614
+0x44cb15a0 android/view/View mergeDrawableStates ([I[I)[I View.java 14420
+0x44cb15d8 android/view/View needRtlPropertiesResolution ()Z View.java -1
+0x44cb1798 android/view/View removeLongPressCallback ()V View.java 8307
+0x44cb17d0 android/view/View removePerformClickCallback ()V View.java 8316
+0x44cb1808 android/view/View removeSendViewScrolledAccessibilityEventCallback ()V View.java 8363
+0x44cb1878 android/view/View removeUnsetPressCallback ()V View.java 8325
+0x44cb1958 android/view/View resolveSizeAndState (III)I View.java 15639
+0x44cb1a38 android/view/View skipInvalidate ()Z View.java 10247
+0x44cb1a70 android/view/View updateMatrix ()V View.java -1
+0x44c98430 android/os/Process myUid ()I Process.java -2
+0x44cee300 android/content/ContextWrapper getApplicationInfo ()Landroid/content/pm/ApplicationInfo; ContextWrapper.java 140
+0x44cee370 android/content/ContextWrapper getBaseContext ()Landroid/content/Context; ContextWrapper.java 78
+0x44cf4470 android/view/MotionEvent copy ()Landroid/view/InputEvent; MotionEvent.java 168
+0x44cf44a8 android/view/MotionEvent copy ()Landroid/view/MotionEvent; MotionEvent.java 1638
+0x44cf4550 android/view/MotionEvent getAction ()I MotionEvent.java 1701
+0x44cf4588 android/view/MotionEvent getActionIndex ()I MotionEvent.java 1724
+0x44cf45c0 android/view/MotionEvent getActionMasked ()I MotionEvent.java 1710
+0x44cf4668 android/view/MotionEvent getButtonState ()I MotionEvent.java 2184
+0x44cf46a0 android/view/MotionEvent getDeviceId ()I MotionEvent.java 1678
+0x44cf46d8 android/view/MotionEvent getDownTime ()J MotionEvent.java 1770
+0x44cf4cf8 android/view/MotionEvent getHistorySize ()I MotionEvent.java 2246
+0x44cf4d30 android/view/MotionEvent getMetaState ()I MotionEvent.java 2169
+0x44cf4e10 android/view/MotionEvent getPointerCount ()I MotionEvent.java 1922
+0x44cf4e48 android/view/MotionEvent getPointerId (I)I MotionEvent.java 1934
+0x44cf4e80 android/view/MotionEvent getPointerIdBits ()I MotionEvent.java 2888
+0x44cf4f60 android/view/MotionEvent getRawX ()F MotionEvent.java -1
+0x44cf4f98 android/view/MotionEvent getRawY ()F MotionEvent.java 2210
+0x44cf5040 android/view/MotionEvent getSource ()I MotionEvent.java 1684
+0x44cf5270 android/view/MotionEvent getX ()F MotionEvent.java -1
+0x44cf52a8 android/view/MotionEvent getX (I)F MotionEvent.java 1981
+0x44cf5318 android/view/MotionEvent getY ()F MotionEvent.java 1831
+0x44cf5350 android/view/MotionEvent getY (I)F MotionEvent.java 1996
+0x44cf53f8 android/view/MotionEvent isTouchEvent ()Z MotionEvent.java 1739
+0x44cf5468 android/view/MotionEvent offsetLocation (FF)V MotionEvent.java -1
+0x44cf54a0 android/view/MotionEvent recycle ()V MotionEvent.java 1647
+0x44cf5510 android/view/MotionEvent setAction (I)V MotionEvent.java 2679
+0x44cf37b8 android/view/MotionEvent ()V MotionEvent.java 1372
+0x44cf39b0 android/view/MotionEvent nativeCopy (IIZ)I MotionEvent.java -2
+0x44cf3a58 android/view/MotionEvent nativeGetAction (I)I MotionEvent.java -2
+0x44cf3a90 android/view/MotionEvent nativeGetAxisValue (IIII)F MotionEvent.java -2
+0x44cf3ac8 android/view/MotionEvent nativeGetButtonState (I)I MotionEvent.java -2
+0x44cf3b00 android/view/MotionEvent nativeGetDeviceId (I)I MotionEvent.java -2
+0x44cf3b38 android/view/MotionEvent nativeGetDownTimeNanos (I)J MotionEvent.java -2
+0x44cf3c18 android/view/MotionEvent nativeGetHistorySize (I)I MotionEvent.java -2
+0x44cf3c50 android/view/MotionEvent nativeGetMetaState (I)I MotionEvent.java -2
+0x44cf3cc0 android/view/MotionEvent nativeGetPointerCount (I)I MotionEvent.java -2
+0x44cf3cf8 android/view/MotionEvent nativeGetPointerId (II)I MotionEvent.java -2
+0x44cf3d68 android/view/MotionEvent nativeGetRawAxisValue (IIII)F MotionEvent.java -2
+0x44cf3da0 android/view/MotionEvent nativeGetSource (I)I MotionEvent.java -2
+0x44cf3f28 android/view/MotionEvent nativeIsTouchEvent (I)Z MotionEvent.java -2
+0x44cf3f60 android/view/MotionEvent nativeOffsetLocation (IFF)V MotionEvent.java -2
+0x44cf4008 android/view/MotionEvent nativeSetAction (II)V MotionEvent.java -2
+0x44cf4190 android/view/MotionEvent obtain ()Landroid/view/MotionEvent; MotionEvent.java 1389
+0x44cf42e0 android/view/MotionEvent obtain (Landroid/view/MotionEvent;)Landroid/view/MotionEvent; MotionEvent.java 1612
+0x44e08d78 android/view/ViewGroup attachViewToParent (Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)V ViewGroup.java -1
+0x44e08e90 android/view/ViewGroup childDrawableStateChanged (Landroid/view/View;)V ViewGroup.java 5222
+0x44e08f00 android/view/ViewGroup cleanupLayoutState (Landroid/view/View;)V ViewGroup.java 3326
+0x44e09050 android/view/ViewGroup detachAllViewsFromParent ()V ViewGroup.java -1
+0x44e09280 android/view/ViewGroup dispatchDraw (Landroid/graphics/Canvas;)V ViewGroup.java 2734
+0x44e096e0 android/view/ViewGroup dispatchTouchEvent (Landroid/view/MotionEvent;)Z ViewGroup.java 1793
+0x44e09868 android/view/ViewGroup drawChild (Landroid/graphics/Canvas;Landroid/view/View;J)Z ViewGroup.java 2928
+0x44e098a0 android/view/ViewGroup drawableStateChanged ()V ViewGroup.java 5132
+0x44e09c58 android/view/ViewGroup getChildAt (I)Landroid/view/View; ViewGroup.java 4752
+0x44e09c90 android/view/ViewGroup getChildCount ()I ViewGroup.java 4741
+0x44e09da8 android/view/ViewGroup getFocusedChild ()Landroid/view/View; ViewGroup.java 797
+0x44e09f30 android/view/ViewGroup hasFocus ()Z ViewGroup.java 807
+0x44e0a080 android/view/ViewGroup invalidateChild (Landroid/view/View;Landroid/graphics/Rect;)V ViewGroup.java 3993
+0x44e0a0f0 android/view/ViewGroup invalidateChildInParent ([ILandroid/graphics/Rect;)Landroid/view/ViewParent; ViewGroup.java -1
+0x44e0a198 android/view/ViewGroup isChildrenDrawingOrderEnabled ()Z ViewGroup.java 4551
+0x44e0a240 android/view/ViewGroup isTransformedTouchPointInView (FFLandroid/view/View;Landroid/graphics/PointF;)Z ViewGroup.java -1
+0x44e0a2e8 android/view/ViewGroup layout (IIII)V ViewGroup.java 4369
+0x44e0a390 android/view/ViewGroup measureChildWithMargins (Landroid/view/View;IIII)V ViewGroup.java 4816
+0x44e0a5c0 android/view/ViewGroup onCreateDrawableState (I)[I ViewGroup.java 5164
+0x44e0a710 android/view/ViewGroup onInterceptTouchEvent (Landroid/view/MotionEvent;)Z ViewGroup.java 2297
+0x44e0a898 android/view/ViewGroup onViewRemoved (Landroid/view/View;)V ViewGroup.java 3279
+0x44e0a940 android/view/ViewGroup removeAllViewsInLayout ()V ViewGroup.java -1
+0x44e0ab00 android/view/ViewGroup requestChildRectangleOnScreen (Landroid/view/View;Landroid/graphics/Rect;Z)Z ViewGroup.java 650
+0x44e0ae80 android/view/ViewGroup resolveRtlPropertiesIfNeeded ()V ViewGroup.java 5262
+0x44e083d0 android/view/ViewGroup addInArray (Landroid/view/View;I)V ViewGroup.java -1
+0x44e08408 android/view/ViewGroup addTouchTarget (Landroid/view/View;I)Landroid/view/ViewGroup$TouchTarget; ViewGroup.java 2035
+0x44e084b0 android/view/ViewGroup canViewReceivePointerEvents (Landroid/view/View;)Z ViewGroup.java 2098
+0x44e084e8 android/view/ViewGroup cancelAndClearTouchTargets (Landroid/view/MotionEvent;)V ViewGroup.java -1
+0x44e08520 android/view/ViewGroup cancelHoverTarget (Landroid/view/View;)V ViewGroup.java -1
+0x44e08558 android/view/ViewGroup cancelTouchTarget (Landroid/view/View;)V ViewGroup.java -1
+0x44e08590 android/view/ViewGroup clearTouchTargets ()V ViewGroup.java 1980
+0x44e085c8 android/view/ViewGroup debugDraw ()Z ViewGroup.java 437
+0x44e08638 android/view/ViewGroup dispatchTransformedTouchEvent (Landroid/view/MotionEvent;ZLandroid/view/View;I)Z ViewGroup.java -1
+0x44e086e0 android/view/ViewGroup getChildMeasureSpec (III)I ViewGroup.java -1
+0x44e08788 android/view/ViewGroup getTouchTarget (Landroid/view/View;)Landroid/view/ViewGroup$TouchTarget; ViewGroup.java 2022
+0x44e08948 android/view/ViewGroup removePointersFromTouchTargets (I)V ViewGroup.java 2045
+0x44e08a28 android/view/ViewGroup resetCancelNextUpFlag (Landroid/view/View;)Z ViewGroup.java 1969
+0x44e08a60 android/view/ViewGroup resetTouchState ()V ViewGroup.java 1959
+0x44de9ae0 android/text/Selection getSelectionEnd (Ljava/lang/CharSequence;)I Selection.java 49
+0x44de9b18 android/text/Selection getSelectionStart (Ljava/lang/CharSequence;)I Selection.java 38
+0x44c8d488 java/lang/Daemons$FinalizerWatchdogDaemon access$200 ()Ljava/lang/Daemons$FinalizerWatchdogDaemon; Daemons.java 202
+0x44c8d4f8 java/lang/Daemons$FinalizerWatchdogDaemon sleepFor (JJ)V Daemons.java 241
+0x44c8d530 java/lang/Daemons$FinalizerWatchdogDaemon waitForFinalization (Ljava/lang/Object;)Z Daemons.java 258
+0x44c8d568 java/lang/Daemons$FinalizerWatchdogDaemon waitForObject ()Ljava/lang/Object; Daemons.java 222
+0x44df46d0 android/view/Choreographer$CallbackRecord run (J)V Choreographer.java 746
+0x44cffe20 java/lang/ThreadLocal$Values access$000 (Ljava/lang/ThreadLocal$Values;)[Ljava/lang/Object; ThreadLocal.java 144
+0x44cffe58 java/lang/ThreadLocal$Values access$100 (Ljava/lang/ThreadLocal$Values;)I ThreadLocal.java 144
+0x44d7bb10 android/graphics/drawable/ColorDrawable draw (Landroid/graphics/Canvas;)V ColorDrawable.java 86
+0x44d7bc98 android/graphics/drawable/ColorDrawable mutate ()Landroid/graphics/drawable/Drawable; ColorDrawable.java 77
+0x44d7bcd0 android/graphics/drawable/ColorDrawable setAlpha (I)V ColorDrawable.java 129
+0x44d7bd40 android/graphics/drawable/ColorDrawable setColorFilter (Landroid/graphics/ColorFilter;)V ColorDrawable.java 145
+0x44e457a8 android/widget/AdapterView$AdapterDataSetObserver (Landroid/widget/AdapterView;)V AdapterView.java 793
+0x44d5b230 android/content/res/ColorStateList getColorForState ([II)I ColorStateList.java 273
+0x44d5b2a0 android/content/res/ColorStateList isStateful ()Z ColorStateList.java -1
+0x44e407f8 android/widget/AbsListView computeVerticalScrollExtent ()I AbsListView.java -1
+0x44e40830 android/widget/AbsListView computeVerticalScrollOffset ()I AbsListView.java -1
+0x44e40868 android/widget/AbsListView computeVerticalScrollRange ()I AbsListView.java 1904
+0x44e40948 android/widget/AbsListView dispatchDraw (Landroid/graphics/Canvas;)V AbsListView.java 2310
+0x44e40980 android/widget/AbsListView dispatchSetPressed (Z)V AbsListView.java 2905
+0x44e409b8 android/widget/AbsListView draw (Landroid/graphics/Canvas;)V AbsListView.java -1
+0x44e409f0 android/widget/AbsListView drawableStateChanged ()V AbsListView.java 2519
+0x44e40bb0 android/widget/AbsListView getBottomFadingEdgeStrength ()F AbsListView.java 1935
+0x44e40be8 android/widget/AbsListView getBottomPaddingOffset ()I AbsListView.java 2361
+0x44e40e50 android/widget/AbsListView getLeftPaddingOffset ()I AbsListView.java 2346
+0x44e40f68 android/widget/AbsListView getRightPaddingOffset ()I AbsListView.java 2356
+0x44e41010 android/widget/AbsListView getSolidColor ()I AbsListView.java 5783
+0x44e41080 android/widget/AbsListView getTopFadingEdgeStrength ()F AbsListView.java 1918
+0x44e410b8 android/widget/AbsListView getTopPaddingOffset ()I AbsListView.java 2351
+0x44e41240 android/widget/AbsListView invokeOnItemScrollListener ()V AbsListView.java -1
+0x44e412e8 android/widget/AbsListView isInFilterMode ()Z AbsListView.java 5472
+0x44e41358 android/widget/AbsListView isPaddingOffsetRequired ()Z AbsListView.java 2341
+0x44e41518 android/widget/AbsListView layoutChildren ()V AbsListView.java 2024
+0x44e415c0 android/widget/AbsListView onCreateDrawableState (I)[I AbsListView.java 2526
+0x44e417f0 android/widget/AbsListView onInterceptTouchEvent (Landroid/view/MotionEvent;)Z AbsListView.java -1
+0x44e41898 android/widget/AbsListView onLayout (ZIIII)V AbsListView.java 1980
+0x44e418d0 android/widget/AbsListView onMeasure (II)V AbsListView.java -1
+0x44e41a20 android/widget/AbsListView onSizeChanged (IIII)V AbsListView.java 2366
+0x44e41a90 android/widget/AbsListView onTouchEvent (Landroid/view/MotionEvent;)Z AbsListView.java 3238
+0x44e41b70 android/widget/AbsListView performItemClick (Landroid/view/View;IJ)Z AbsListView.java -1
+0x44e41be0 android/widget/AbsListView pointToPosition (II)I AbsListView.java 2916
+0x44e41c50 android/widget/AbsListView positionSelector (ILandroid/view/View;)V AbsListView.java -1
+0x44e41d68 android/widget/AbsListView requestLayout ()V AbsListView.java 1818
+0x44e41dd8 android/widget/AbsListView resetList ()V AbsListView.java -1
+0x44e41f28 android/widget/AbsListView setAdapter (Landroid/widget/ListAdapter;)V AbsListView.java 847
+0x44e420b0 android/widget/AbsListView setFrame (IIII)Z AbsListView.java 2005
+0x44e42548 android/widget/AbsListView setVisibleRangeHint (II)V AbsListView.java 5935
+0x44e42580 android/widget/AbsListView shouldShowSelector ()Z AbsListView.java 2399
+0x44e427b0 android/widget/AbsListView touchModeDrawsInPressedState ()Z AbsListView.java 2382
+0x44e42820 android/widget/AbsListView updateScrollIndicators ()V AbsListView.java -1
+0x44e42858 android/widget/AbsListView updateSelectorState ()V AbsListView.java 2508
+0x44e42890 android/widget/AbsListView verifyDrawable (Landroid/graphics/drawable/Drawable;)Z AbsListView.java 2559
+0x44e3fc20 android/widget/AbsListView access$200 (Landroid/widget/AbsListView;)I AbsListView.java 91
+0x44e3fe88 android/widget/AbsListView access$300 (Landroid/widget/AbsListView;)I AbsListView.java 91
+0x44e401d0 android/widget/AbsListView clearScrollingCache ()V AbsListView.java 4766
+0x44e402e8 android/widget/AbsListView drawSelector (Landroid/graphics/Canvas;)V AbsListView.java 2403
+0x44e403c8 android/widget/AbsListView initOrResetVelocityTracker ()V AbsListView.java 3714
+0x44e40400 android/widget/AbsListView initVelocityTrackerIfNotExists ()V AbsListView.java 3722
+0x44e404a8 android/widget/AbsListView positionSelector (IIII)V AbsListView.java 2304
+0x44d08328 android/text/TextUtils isEmpty (Ljava/lang/CharSequence;)Z TextUtils.java 444
+0x44d085c8 android/text/TextUtils packRangeInLong (II)J TextUtils.java 1689
+0x44d08830 android/text/TextUtils unpackRangeEndFromLong (J)I TextUtils.java 1709
+0x44d08868 android/text/TextUtils unpackRangeStartFromLong (J)I TextUtils.java 1699
+0x44c4c170 java/lang/Class getComponentType ()Ljava/lang/Class; Class.java -2
+0x44c4c6b0 java/lang/Class getName ()Ljava/lang/String; Class.java 996
+0x44c4c9f8 java/lang/Class isInstance (Ljava/lang/Object;)Z Class.java -2
+0x44c4cad8 java/lang/Class isPrimitive ()Z Class.java -2
+0x44e59d68 android/widget/FrameLayout draw (Landroid/graphics/Canvas;)V FrameLayout.java -1
+0x44e59f60 android/widget/FrameLayout getForeground ()Landroid/graphics/drawable/Drawable; FrameLayout.java 267
+0x44e5a0b0 android/widget/FrameLayout onLayout (ZIIII)V FrameLayout.java 388
+0x44e5a0e8 android/widget/FrameLayout onMeasure (II)V FrameLayout.java 296
+0x44e59c48 android/widget/FrameLayout getPaddingBottomWithForeground ()I FrameLayout.java 286
+0x44e59c80 android/widget/FrameLayout getPaddingLeftWithForeground ()I FrameLayout.java 271
+0x44e59cb8 android/widget/FrameLayout getPaddingRightWithForeground ()I FrameLayout.java 276
+0x44e59cf0 android/widget/FrameLayout getPaddingTopWithForeground ()I FrameLayout.java 281
+0x44cd0738 android/graphics/NinePatch draw (Landroid/graphics/Canvas;Landroid/graphics/Rect;Landroid/graphics/Paint;)V NinePatch.java 119
+0x44cd07a8 android/graphics/NinePatch getDensity ()I NinePatch.java 134
+0x44cd07e0 android/graphics/NinePatch getHeight ()I NinePatch.java 142
+0x44cd0850 android/graphics/NinePatch getWidth ()I NinePatch.java 138
+0x44cd05a8 android/graphics/NinePatch (Landroid/graphics/NinePatch;)V NinePatch.java 62
+0x44cd0618 android/graphics/NinePatch nativeDraw (ILandroid/graphics/Rect;I[BIII)V NinePatch.java -2
+0x44cd06c0 android/graphics/NinePatch validateNinePatchChunk (I[B)V NinePatch.java -2
+0x44de93b8 android/text/PackedIntVector getValue (II)I PackedIntVector.java 67
+0x44de9460 android/text/PackedIntVector size ()I PackedIntVector.java 236
+0x44d61908 android/database/AbstractWindowedCursor clearOrCreateWindow (Ljava/lang/String;)V AbstractWindowedCursor.java 197
+0x44d61940 android/database/AbstractWindowedCursor closeWindow ()V AbstractWindowedCursor.java 183
+0x44d61cf8 android/database/AbstractWindowedCursor onDeactivateOrClose ()V AbstractWindowedCursor.java 207
+0x44d61890 android/database/AbstractWindowedCursor ()V AbstractWindowedCursor.java 36
+0x44c4d250 java/lang/ClassLoader findLoadedClass (Ljava/lang/String;)Ljava/lang/Class; ClassLoader.java 350
+0x44c4d480 java/lang/ClassLoader loadClass (Ljava/lang/String;)Ljava/lang/Class; ClassLoader.java 461
+0x44c4d4b8 java/lang/ClassLoader loadClass (Ljava/lang/String;Z)Ljava/lang/Class; ClassLoader.java 491
+0x44cedb68 android/view/ContextThemeWrapper getResources ()Landroid/content/res/Resources; ContextThemeWrapper.java 74
+0x44cedba0 android/view/ContextThemeWrapper getSystemService (Ljava/lang/String;)Ljava/lang/Object; ContextThemeWrapper.java 111
+0x44ecb9a0 java/io/PrintWriter append (Ljava/lang/CharSequence;)Ljava/io/PrintWriter; PrintWriter.java 688
+0x44ecb9d8 java/io/PrintWriter append (Ljava/lang/CharSequence;II)Ljava/io/PrintWriter; PrintWriter.java 718
+0x44ecbaf0 java/io/PrintWriter append (Ljava/lang/CharSequence;)Ljava/lang/Appendable; PrintWriter.java 31
+0x44ecc1f0 java/io/PrintWriter write (Ljava/lang/String;II)V PrintWriter.java 660
+0x44ecc228 java/io/PrintWriter write ([C)V PrintWriter.java 579
+0x44ecc260 java/io/PrintWriter write ([CII)V PrintWriter.java 601
+0x44ecb848 java/io/PrintWriter (Ljava/io/Writer;)V PrintWriter.java 91
+0x44ecb880 java/io/PrintWriter (Ljava/io/Writer;Z)V PrintWriter.java 109
+0x44ecb928 java/io/PrintWriter doWrite ([CII)V PrintWriter.java 620
+0x44d25f18 android/os/Handler dispatchMessage (Landroid/os/Message;)V Handler.java 91
+0x44d25fc0 android/os/Handler getLooper ()Landroid/os/Looper; Handler.java 676
+0x44d26228 android/os/Handler post (Ljava/lang/Runnable;)Z Handler.java 323
+0x44d26260 android/os/Handler postAtFrontOfQueue (Ljava/lang/Runnable;)Z Handler.java 411
+0x44d26298 android/os/Handler postAtTime (Ljava/lang/Runnable;J)Z Handler.java 345
+0x44d26308 android/os/Handler postDelayed (Ljava/lang/Runnable;J)Z Handler.java 391
+0x44d26340 android/os/Handler removeCallbacks (Ljava/lang/Runnable;)V Handler.java 471
+0x44d26420 android/os/Handler removeMessages (ILjava/lang/Object;)V Handler.java 635
+0x44d26570 android/os/Handler sendMessageAtFrontOfQueue (Landroid/os/Message;)Z Handler.java 603
+0x44d265a8 android/os/Handler sendMessageAtTime (Landroid/os/Message;J)Z Handler.java 580
+0x44d265e0 android/os/Handler sendMessageDelayed (Landroid/os/Message;J)Z Handler.java 555
+0x44d25e30 android/os/Handler enqueueMessage (Landroid/os/MessageQueue;Landroid/os/Message;J)Z Handler.java 614
+0x44d25e68 android/os/Handler getPostMessage (Ljava/lang/Runnable;)Landroid/os/Message; Handler.java 712
+0x44d25ed8 android/os/Handler handleCallback (Landroid/os/Message;)V Handler.java 725
+0x44d65950 android/database/sqlite/SQLiteConnection$Operation ()V SQLiteConnection.java 1432
+0x44d65988 android/database/sqlite/SQLiteConnection$Operation (Landroid/database/sqlite/SQLiteConnection$1;)V SQLiteConnection.java 1432
+0x44e53e98 android/widget/Editor$Blink run ()V Editor.java 1728
+0x44e91328 com/android/internal/os/AndroidPrintStream log (Ljava/lang/String;)V AndroidPrintStream.java 47
+0x44ed9080 java/util/Formatter$FormatToken getArgIndex ()I Formatter.java 1165
+0x44ed90b8 java/util/Formatter$FormatToken getConversionType ()C Formatter.java 1243
+0x44ed91d0 java/util/Formatter$FormatToken isDefault ()Z Formatter.java -1
+0x44ed9240 java/util/Formatter$FormatToken requireArgument ()Z Formatter.java 1259
+0x44ed92b0 java/util/Formatter$FormatToken setConversionType (C)V Formatter.java 1247
+0x44ed9320 java/util/Formatter$FormatToken setFlag (I)Z Formatter.java -1
+0x44ed8fd0 java/util/Formatter$FormatToken ()V Formatter.java -1
+0x44ed9008 java/util/Formatter$FormatToken (Ljava/util/Formatter$1;)V Formatter.java 1122
+0x44d721f0 android/database/sqlite/SQLiteDatabaseConfiguration isInMemoryDb ()Z SQLiteDatabaseConfiguration.java 156
+0x44c4b670 java/lang/Throwable fillInStackTrace ()Ljava/lang/Throwable; Throwable.java 161
+0x44c4b6a8 java/lang/Throwable getCause ()Ljava/lang/Throwable; Throwable.java 399
+0x44c4b6e0 java/lang/Throwable getLocalizedMessage ()Ljava/lang/String; Throwable.java 187
+0x44c4b750 java/lang/Throwable getStackTrace ()[Ljava/lang/StackTraceElement; Throwable.java 202
+0x44c4b868 java/lang/Throwable printStackTrace (Ljava/io/PrintWriter;)V Throwable.java 306
+0x44c4b8d8 java/lang/Throwable toString ()Ljava/lang/String; Throwable.java 361
+0x44c4b390 java/lang/Throwable ()V Throwable.java 83
+0x44c4b3c8 java/lang/Throwable (Ljava/lang/String;)V Throwable.java 95
+0x44c4b4e0 java/lang/Throwable getInternalStackTrace ()[Ljava/lang/StackTraceElement; Throwable.java 270
+0x44c4b518 java/lang/Throwable nativeFillInStackTrace ()Ljava/lang/Object; Throwable.java -2
+0x44c4b550 java/lang/Throwable nativeGetStackTrace (Ljava/lang/Object;)[Ljava/lang/StackTraceElement; Throwable.java -2
+0x44c4b588 java/lang/Throwable printStackTrace (Ljava/lang/Appendable;Ljava/lang/String;[Ljava/lang/StackTraceElement;)V Throwable.java 321
+0x44e72720 android/widget/RelativeLayout$LayoutParams getRules ()[I RelativeLayout.java 1426
+0x44e72758 android/widget/RelativeLayout$LayoutParams getRules (I)[I RelativeLayout.java 1407
+0x44e72328 android/widget/RelativeLayout$LayoutParams access$100 (Landroid/widget/RelativeLayout$LayoutParams;)I RelativeLayout.java 1143
+0x44e72360 android/widget/RelativeLayout$LayoutParams access$102 (Landroid/widget/RelativeLayout$LayoutParams;I)I RelativeLayout.java 1143
+0x44e723d0 android/widget/RelativeLayout$LayoutParams access$200 (Landroid/widget/RelativeLayout$LayoutParams;)I RelativeLayout.java 1143
+0x44e72408 android/widget/RelativeLayout$LayoutParams access$202 (Landroid/widget/RelativeLayout$LayoutParams;I)I RelativeLayout.java 1143
+0x44e72478 android/widget/RelativeLayout$LayoutParams access$300 (Landroid/widget/RelativeLayout$LayoutParams;)I RelativeLayout.java 1143
+0x44e724b0 android/widget/RelativeLayout$LayoutParams access$302 (Landroid/widget/RelativeLayout$LayoutParams;I)I RelativeLayout.java 1143
+0x44e72520 android/widget/RelativeLayout$LayoutParams access$400 (Landroid/widget/RelativeLayout$LayoutParams;)I RelativeLayout.java 1143
+0x44e72558 android/widget/RelativeLayout$LayoutParams access$402 (Landroid/widget/RelativeLayout$LayoutParams;I)I RelativeLayout.java 1143
+0x44e725c8 android/widget/RelativeLayout$LayoutParams access$700 (Landroid/widget/RelativeLayout$LayoutParams;)[I RelativeLayout.java 1143
+0x44e72600 android/widget/RelativeLayout$LayoutParams hasRelativeRules ()Z RelativeLayout.java 1359
+0x44e0c9c8 android/view/ViewGroup$TouchTarget recycle ()V ViewGroup.java 6055
+0x44e0c988 android/view/ViewGroup$TouchTarget obtain (Landroid/view/View;I)Landroid/view/ViewGroup$TouchTarget; ViewGroup.java 6039
+0x44d640e8 android/database/DataSetObservable notifyInvalidated ()V DataSetObservable.java 48
+0x44d64070 android/database/DataSetObservable ()V DataSetObservable.java 24
+0x44c8a478 dalvik/system/BaseDexClassLoader findClass (Ljava/lang/String;)Ljava/lang/Class; BaseDexClassLoader.java 62
+0x44dd3580 android/os/StrictMode$StrictModeDiskWriteViolation (I)V StrictMode.java 818
+0x44cd28e8 android/graphics/Xfermode finalize ()V Xfermode.java 35
+0x44cd28a8 android/graphics/Xfermode finalizer (I)V Xfermode.java -2
+0x44f19620 com/logicdrop/todos/activity/TodoProvider deleteTask (Ljava/lang/String;)V TodoProvider.java 67
+0x44f19658 com/logicdrop/todos/activity/TodoProvider findAll ()Ljava/util/List; TodoProvider.java -1
+0x44e9b9e8 com/android/internal/policy/impl/PhoneWindow$DecorView dispatchTouchEvent (Landroid/view/MotionEvent;)Z PhoneWindow.java 1900
+0x44e9ba58 com/android/internal/policy/impl/PhoneWindow$DecorView draw (Landroid/graphics/Canvas;)V PhoneWindow.java 2211
+0x44e9bba8 com/android/internal/policy/impl/PhoneWindow$DecorView onInterceptTouchEvent (Landroid/view/MotionEvent;)Z PhoneWindow.java 1976
+0x44e9bbe0 com/android/internal/policy/impl/PhoneWindow$DecorView onMeasure (II)V PhoneWindow.java 2128
+0x44e9bcf8 com/android/internal/policy/impl/PhoneWindow$DecorView setFrame (IIII)Z PhoneWindow.java 2084
+0x44e9bfd0 com/android/internal/policy/impl/PhoneWindow$DecorView superDispatchTouchEvent (Landroid/view/MotionEvent;)Z PhoneWindow.java 1953
+0x44de96b0 android/text/PackedObjectVector getValue (II)Ljava/lang/Object; PackedObjectVector.java 46
+0x44d6fed0 android/database/sqlite/SQLiteConnectionPool acquireConnection (Ljava/lang/String;ILandroid/os/CancellationSignal;)Landroid/database/sqlite/SQLiteConnection; SQLiteConnectionPool.java 348
+0x44d70058 android/database/sqlite/SQLiteConnectionPool releaseConnection (Landroid/database/sqlite/SQLiteConnection;)V SQLiteConnectionPool.java 364
+0x44d6fad8 android/database/sqlite/SQLiteConnectionPool finishAcquireConnectionLocked (Landroid/database/sqlite/SQLiteConnection;I)V SQLiteConnectionPool.java 908
+0x44d6fd08 android/database/sqlite/SQLiteConnectionPool recycleConnectionLocked (Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnectionPool$AcquiredConnectionStatus;)Z SQLiteConnectionPool.java 394
+0x44d6fdb0 android/database/sqlite/SQLiteConnectionPool throwIfClosedLocked ()V SQLiteConnectionPool.java 961
+0x44d6fde8 android/database/sqlite/SQLiteConnectionPool tryAcquireNonPrimaryConnectionLocked (Ljava/lang/String;I)Landroid/database/sqlite/SQLiteConnection; SQLiteConnectionPool.java 871
+0x44d6fe20 android/database/sqlite/SQLiteConnectionPool tryAcquirePrimaryConnectionLocked (I)Landroid/database/sqlite/SQLiteConnection; SQLiteConnectionPool.java -1
+0x44d6fe58 android/database/sqlite/SQLiteConnectionPool waitForConnection (Ljava/lang/String;ILandroid/os/CancellationSignal;)Landroid/database/sqlite/SQLiteConnection; SQLiteConnectionPool.java 593
+0x44d6fe90 android/database/sqlite/SQLiteConnectionPool wakeConnectionWaitersLocked ()V SQLiteConnectionPool.java 784
+0x44c98da8 android/os/Binder clearCallingIdentity ()J Binder.java -2
+0x44c98e50 android/os/Binder flushPendingCommands ()V Binder.java -2
+0x44c98e88 android/os/Binder getCallingPid ()I Binder.java -2
+0x44c7cc40 java/util/AbstractMap ()V AbstractMap.java 171
+0x44c92320 android/content/res/XmlBlock close ()V XmlBlock.java 50
+0x44c92358 android/content/res/XmlBlock finalize ()V XmlBlock.java 470
+0x44cd84a8 android/os/Debug isMethodTracingActive ()Z Debug.java 529
+0x44cd8b38 android/os/Debug startMethodTracingDdms (II)V Debug.java 521
+0x44cd8be0 android/os/Debug stopMethodTracing ()V Debug.java 536
+0x44caf0e8 android/view/Surface isValid ()Z Surface.java 411
+0x44caf120 android/view/Surface lockCanvas (Landroid/graphics/Rect;)Landroid/graphics/Canvas; Surface.java 452
+0x44caf510 android/view/Surface unlockCanvasAndPost (Landroid/graphics/Canvas;)V Surface.java 462
+0x44cae820 android/view/Surface nativeIsValid ()Z Surface.java -2
+0x44cae858 android/view/Surface nativeLockCanvas (Landroid/graphics/Rect;)Landroid/graphics/Canvas; Surface.java -2
+0x44caecb8 android/view/Surface nativeUnlockCanvasAndPost (Landroid/graphics/Canvas;)V Surface.java -2
+0x44de3618 android/text/BoringLayout draw (Landroid/graphics/Canvas;Landroid/graphics/Path;Landroid/graphics/Paint;I)V BoringLayout.java 397
+0x44de3730 android/text/BoringLayout getEllipsizedWidth ()I BoringLayout.java 390
+0x44de3768 android/text/BoringLayout getHeight ()I BoringLayout.java 319
+0x44de37a0 android/text/BoringLayout getLineContainsTab (I)Z BoringLayout.java 355
+0x44de37d8 android/text/BoringLayout getLineCount ()I BoringLayout.java 324
+0x44de3810 android/text/BoringLayout getLineDescent (I)I BoringLayout.java 337
+0x44de3848 android/text/BoringLayout getLineDirections (I)Landroid/text/Layout$Directions; BoringLayout.java 365
+0x44de38b8 android/text/BoringLayout getLineStart (I)I BoringLayout.java 342
+0x44de38f0 android/text/BoringLayout getLineTop (I)I BoringLayout.java 329
+0x44de3928 android/text/BoringLayout getParagraphDirection (I)I BoringLayout.java 350
+0x44c5a058 java/lang/ref/FinalizerReference clear ()V FinalizerReference.java 50
+0x44c5a090 java/lang/ref/FinalizerReference get ()Ljava/lang/Object; FinalizerReference.java 46
+0x44c59f38 java/lang/ref/FinalizerReference (Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V FinalizerReference.java 42
+0x44c59f70 java/lang/ref/FinalizerReference add (Ljava/lang/Object;)V FinalizerReference.java 54
+0x44c5a018 java/lang/ref/FinalizerReference remove (Ljava/lang/ref/FinalizerReference;)V FinalizerReference.java 66
+0x44c5be58 java/lang/Float floatToRawIntBits (F)I Float.java -2
+0x44c8e598 android/util/Log d (Ljava/lang/String;Ljava/lang/String;)I Log.java 138
+0x44c8e6b0 android/util/Log i (Ljava/lang/String;Ljava/lang/String;)I Log.java 159
+0x44c8e720 android/util/Log isLoggable (Ljava/lang/String;I)Z Log.java -2
+0x44c8e758 android/util/Log println (ILjava/lang/String;Ljava/lang/String;)I Log.java 332
+0x44c8e790 android/util/Log println_native (IILjava/lang/String;Ljava/lang/String;)I Log.java -2
+0x44c968a0 android/view/KeyEvent normalizeMetaState (I)I KeyEvent.java 2012
+0x44e12a88 android/view/ViewTreeObserver$CopyOnWriteArray$Access get (I)Ljava/lang/Object; ViewTreeObserver.java 800
+0x44e12ac0 android/view/ViewTreeObserver$CopyOnWriteArray$Access size ()I ViewTreeObserver.java 804
+0x44e12a10 android/view/ViewTreeObserver$CopyOnWriteArray$Access access$002 (Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access;Ljava/util/ArrayList;)Ljava/util/ArrayList; ViewTreeObserver.java 795
+0x44e12a48 android/view/ViewTreeObserver$CopyOnWriteArray$Access access$102 (Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access;I)I ViewTreeObserver.java 795
+0x44c9e818 android/os/Parcel readException ()V Parcel.java 1376
+0x44c9e888 android/os/Parcel readExceptionCode ()I Parcel.java 1397
+0x44c9e9a0 android/os/Parcel readInt ()I Parcel.java 1443
+0x44c9ee38 android/os/Parcel recycle ()V Parcel.java 311
+0x44c9f340 android/os/Parcel writeInt (I)V Parcel.java 481
+0x44c9f3b0 android/os/Parcel writeInterfaceToken (Ljava/lang/String;)V Parcel.java 444
+0x44c9f6f8 android/os/Parcel writeStrongBinder (Landroid/os/IBinder;)V Parcel.java 530
+0x44c9d690 android/os/Parcel freeBuffer ()V Parcel.java 2198
+0x44c9d8f8 android/os/Parcel nativeFreeBuffer (I)V Parcel.java -2
+0x44c9da80 android/os/Parcel nativeReadInt (I)I Parcel.java -2
+0x44c9dd58 android/os/Parcel nativeWriteInt (II)V Parcel.java -2
+0x44c9dd90 android/os/Parcel nativeWriteInterfaceToken (ILjava/lang/String;)V Parcel.java -2
+0x44c9de38 android/os/Parcel nativeWriteStrongBinder (ILandroid/os/IBinder;)V Parcel.java -2
+0x44c9de70 android/os/Parcel obtain ()Landroid/os/Parcel; Parcel.java 288
+0x44c9a6f8 android/os/StrictMode access$2200 ()Ljava/lang/ThreadLocal; StrictMode.java 114
+0x44c9a730 android/os/StrictMode access$400 ()Z StrictMode.java 114
+0x44c9a768 android/os/StrictMode access$500 ()Ljava/lang/ThreadLocal; StrictMode.java 114
+0x44c9a7d8 android/os/StrictMode access$700 ()Ljava/lang/ThreadLocal; StrictMode.java 114
+0x44c9a810 android/os/StrictMode access$800 ()Z StrictMode.java 114
+0x44c9aff0 android/os/StrictMode tooManyViolationsThisLoop ()Z StrictMode.java 1047
+0x44c9b0d0 android/os/StrictMode vmSqliteObjectLeaksEnabled ()Z StrictMode.java 1507
+0x44de4028 android/text/Layout draw (Landroid/graphics/Canvas;Landroid/graphics/Path;Landroid/graphics/Paint;I)V Layout.java 198
+0x44de4060 android/text/Layout drawBackground (Landroid/graphics/Canvas;Landroid/graphics/Path;Landroid/graphics/Paint;III)V Layout.java 364
+0x44de4098 android/text/Layout drawText (Landroid/graphics/Canvas;II)V Layout.java 212
+0x44de4220 android/text/Layout getHeight ()I Layout.java 568
+0x44de4290 android/text/Layout getLineBaseline (I)I Layout.java 1155
+0x44de4418 android/text/Layout getLineEnd (I)I Layout.java 1109
+0x44de4450 android/text/Layout getLineForOffset (I)I Layout.java 1012
+0x44de4488 android/text/Layout getLineForVertical (I)I Layout.java 989
+0x44de44c0 android/text/Layout getLineLeft (I)F Layout.java -1
+0x44de44f8 android/text/Layout getLineMax (I)F Layout.java 910
+0x44de4530 android/text/Layout getLineRangeForDraw (Landroid/graphics/Canvas;)J Layout.java -1
+0x44de4568 android/text/Layout getLineRight (I)F Layout.java -1
+0x44de4610 android/text/Layout getLineVisibleEnd (I)I Layout.java 1117
+0x44de4648 android/text/Layout getLineWidth (I)F Layout.java 920
+0x44de4760 android/text/Layout getParagraphAlignment (I)Landroid/text/Layout$Alignment; Layout.java 1435
+0x44de47d0 android/text/Layout getParagraphLeft (I)I Layout.java 1456
+0x44de4808 android/text/Layout getParagraphRight (I)I Layout.java 1468
+0x44de4840 android/text/Layout getPrimaryHorizontal (I)F Layout.java 795
+0x44de4958 android/text/Layout getText ()Ljava/lang/CharSequence; Layout.java 524
+0x44de4a00 android/text/Layout getWidth ()I Layout.java 540
+0x44de3d10 android/text/Layout getHorizontal (IZ)F Layout.java 810
+0x44de3d48 android/text/Layout getHorizontal (IZI)F Layout.java 816
+0x44de3d80 android/text/Layout getLineExtent (ILandroid/text/Layout$TabStops;Z)F Layout.java 969
+0x44de3db8 android/text/Layout getLineExtent (IZ)F Layout.java 933
+0x44de3df0 android/text/Layout getLineStartPos (III)I Layout.java -1
+0x44de3e28 android/text/Layout getLineVisibleEnd (III)I Layout.java 1121
+0x44de3ed0 android/text/Layout getParagraphLeadingMargin (I)I Layout.java 1483
+0x44de3f08 android/text/Layout getParagraphSpans (Landroid/text/Spanned;IILjava/lang/Class;)[Ljava/lang/Object; Layout.java 1695
+0x44de3fb0 android/text/Layout primaryIsTrailingPrevious (I)Z Layout.java -1
+0x44cced78 android/graphics/Matrix isIdentity ()Z Matrix.java 247
+0x44cce4b0 android/graphics/Matrix native_isIdentity (I)Z Matrix.java -2
+0x44d0d130 java/util/WeakHashMap$Entry (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V WeakHashMap.java -1
+0x44e00470 android/view/IWindowSession$Stub$Proxy onRectangleOnScreenRequested (Landroid/os/IBinder;Landroid/graphics/Rect;Z)V IWindowSession.java -1
+0x44e456c0 android/widget/AbsListView$AdapterDataSetObserver (Landroid/widget/AbsListView;)V AbsListView.java 5955
+0x44d7db00 android/graphics/drawable/LayerDrawable invalidateDrawable (Landroid/graphics/drawable/Drawable;)V LayerDrawable.java 318
+0x44d7db70 android/graphics/drawable/LayerDrawable mutate ()Landroid/graphics/drawable/Drawable; LayerDrawable.java 577
+0x44d7dba8 android/graphics/drawable/LayerDrawable onBoundsChange (Landroid/graphics/Rect;)V LayerDrawable.java 488
+0x44d7dc18 android/graphics/drawable/LayerDrawable onStateChange ([I)Z LayerDrawable.java 446
+0x44d7dc88 android/graphics/drawable/LayerDrawable setAlpha (I)V LayerDrawable.java 399
+0x44d7dcc0 android/graphics/drawable/LayerDrawable setColorFilter (Landroid/graphics/ColorFilter;)V LayerDrawable.java 408
+0x44d7dcf8 android/graphics/drawable/LayerDrawable setDither (Z)V LayerDrawable.java 390
+0x44d7de48 android/graphics/drawable/LayerDrawable setVisible (ZZ)Z LayerDrawable.java 379
+0x44d7d7e8 android/graphics/drawable/LayerDrawable reapplyPadding (ILandroid/graphics/drawable/LayerDrawable$ChildDrawable;)Z LayerDrawable.java 542
+0x44cfd0f0 java/util/HashSet contains (Ljava/lang/Object;)Z HashSet.java 138
+0x44c609e8 java/lang/Integer equals (Ljava/lang/Object;)Z Integer.java 209
+0x44c60a58 java/lang/Integer hashCode ()I Integer.java 303
+0x44c60a90 java/lang/Integer intValue ()I Integer.java 313
+0x44c602a8 java/lang/Integer (I)V Integer.java 88
+0x44c60580 java/lang/Integer parse (Ljava/lang/String;IIZ)I Integer.java 370
+0x44c605b8 java/lang/Integer parseInt (Ljava/lang/String;)I Integer.java 332
+0x44c605f0 java/lang/Integer parseInt (Ljava/lang/String;I)I Integer.java 351
+0x44c60858 java/lang/Integer valueOf (I)Ljava/lang/Integer; Integer.java 707
+0x44d69160 java/lang/StringBuffer append ([CII)Ljava/lang/StringBuffer; StringBuffer.java 278
+0x44d69940 java/lang/StringBuffer toString ()Ljava/lang/String; StringBuffer.java 723
+0x44d68cf8 java/lang/StringBuffer (I)V StringBuffer.java 69
+0x44cd6b08 android/database/sqlite/SQLiteConnection executeForChangedRowCount (Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)I SQLiteConnection.java 712
+0x44cd6b40 android/database/sqlite/SQLiteConnection executeForCursorWindow (Ljava/lang/String;[Ljava/lang/Object;Landroid/database/CursorWindow;IIZLandroid/os/CancellationSignal;)I SQLiteConnection.java 816
+0x44cd6cc8 android/database/sqlite/SQLiteConnection isPrimaryConnection ()Z SQLiteConnection.java 459
+0x44cd6d38 android/database/sqlite/SQLiteConnection prepare (Ljava/lang/String;Landroid/database/sqlite/SQLiteStatementInfo;)V SQLiteConnection.java 487
+0x44cd6da8 android/database/sqlite/SQLiteConnection setOnlyAllowReadOnlyOperations (Z)V SQLiteConnection.java 437
+0x44cd5e18 android/database/sqlite/SQLiteConnection acquirePreparedStatement (Ljava/lang/String;)Landroid/database/sqlite/SQLiteConnection$PreparedStatement; SQLiteConnection.java -1
+0x44cd5e50 android/database/sqlite/SQLiteConnection applyBlockGuardPolicy (Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V SQLiteConnection.java 1032
+0x44cd5e88 android/database/sqlite/SQLiteConnection attachCancellationSignal (Landroid/os/CancellationSignal;)V SQLiteConnection.java -1
+0x44cd5ec0 android/database/sqlite/SQLiteConnection bindArguments (Landroid/database/sqlite/SQLiteConnection$PreparedStatement;[Ljava/lang/Object;)V SQLiteConnection.java 973
+0x44cd5f30 android/database/sqlite/SQLiteConnection detachCancellationSignal (Landroid/os/CancellationSignal;)V SQLiteConnection.java 948
+0x44cd6010 android/database/sqlite/SQLiteConnection isCacheable (I)Z SQLiteConnection.java -1
+0x44cd6240 android/database/sqlite/SQLiteConnection nativeExecuteForChangedRowCount (II)I SQLiteConnection.java -2
+0x44cd6278 android/database/sqlite/SQLiteConnection nativeExecuteForCursorWindow (IIIIIZ)J SQLiteConnection.java -2
+0x44cd6390 android/database/sqlite/SQLiteConnection nativeGetColumnCount (II)I SQLiteConnection.java -2
+0x44cd63c8 android/database/sqlite/SQLiteConnection nativeGetColumnName (III)Ljava/lang/String; SQLiteConnection.java -2
+0x44cd6438 android/database/sqlite/SQLiteConnection nativeGetParameterCount (II)I SQLiteConnection.java -2
+0x44cd6470 android/database/sqlite/SQLiteConnection nativeIsReadOnly (II)Z SQLiteConnection.java -2
+0x44cd64e0 android/database/sqlite/SQLiteConnection nativePrepareStatement (ILjava/lang/String;)I SQLiteConnection.java -2
+0x44cd65c0 android/database/sqlite/SQLiteConnection nativeResetStatementAndClearBindings (II)V SQLiteConnection.java -2
+0x44cd65f8 android/database/sqlite/SQLiteConnection obtainPreparedStatement (Ljava/lang/String;IIIZ)Landroid/database/sqlite/SQLiteConnection$PreparedStatement; SQLiteConnection.java -1
+0x44cd66d8 android/database/sqlite/SQLiteConnection releasePreparedStatement (Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V SQLiteConnection.java 905
+0x44cd68d0 android/database/sqlite/SQLiteConnection throwIfStatementForbidden (Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V SQLiteConnection.java 1017
+0x44df1d68 android/util/FinitePool acquire ()Landroid/util/Poolable; FinitePool.java 64
+0x44df1da0 android/util/FinitePool release (Landroid/util/Poolable;)V FinitePool.java 82
+0x44dc2338 java/util/Arrays$ArrayList size ()I Arrays.java 115
+0x44dc21e0 java/util/Arrays$ArrayList ([Ljava/lang/Object;)V Arrays.java 36
+0x44df2cf0 android/util/SynchronizedPool acquire ()Landroid/util/Poolable; SynchronizedPool.java 38
+0x44df2d28 android/util/SynchronizedPool release (Landroid/util/Poolable;)V SynchronizedPool.java 44
+0x44c4e398 java/lang/String _getChars (II[CI)V String.java 903
+0x44c4e3d0 java/lang/String charAt (I)C String.java -2
+0x44c4e670 java/lang/String equals (Ljava/lang/Object;)Z String.java -2
+0x44c4e6a8 java/lang/String equalsIgnoreCase (Ljava/lang/String;)Z String.java -1
+0x44c4e7f8 java/lang/String hashCode ()I String.java 907
+0x44c4e830 java/lang/String indexOf (I)I String.java -1
+0x44c4e868 java/lang/String indexOf (II)I String.java 953
+0x44c4ea60 java/lang/String length ()I String.java -2
+0x44c4ed38 java/lang/String subSequence (II)Ljava/lang/CharSequence; String.java 1851
+0x44c4ed70 java/lang/String substring (I)Ljava/lang/String; String.java 1432
+0x44c4eda8 java/lang/String substring (II)Ljava/lang/String; String.java 1456
+0x44c4ede0 java/lang/String toCharArray ()[C String.java 1473
+0x44c4ee88 java/lang/String toString ()Ljava/lang/String; String.java 1510
+0x44c4eef8 java/lang/String toUpperCase (Ljava/util/Locale;)Ljava/lang/String; String.java 1537
+0x44c4ef30 java/lang/String trim ()Ljava/lang/String; String.java -1
+0x44c4dad0 java/lang/String (II[C)V String.java 431
+0x44c4de88 java/lang/String ([CII)V String.java -1
+0x44c4dfa0 java/lang/String fastIndexOf (II)I String.java -2
+0x44c4e010 java/lang/String format (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; String.java 1962
+0x44c4e048 java/lang/String format (Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; String.java 1983
+0x44c66980 libcore/icu/LocaleData get (Ljava/util/Locale;)Llibcore/icu/LocaleData; LocaleData.java 111
+0x44dd3360 dalvik/system/BlockGuard$BlockGuardPolicyException getMessage ()Ljava/lang/String; BlockGuard.java 110
+0x44dd3398 dalvik/system/BlockGuard$BlockGuardPolicyException getPolicy ()I BlockGuard.java 96
+0x44dd3320 dalvik/system/BlockGuard$BlockGuardPolicyException (IILjava/lang/String;)V BlockGuard.java 88
+0x44d81070 android/graphics/drawable/StateListDrawable$StateListState access$000 (Landroid/graphics/drawable/StateListDrawable$StateListState;[I)I StateListDrawable.java 274
+0x44d810a8 android/graphics/drawable/StateListDrawable$StateListState indexOfStateSet ([I)I StateListDrawable.java 294
+0x44e55c18 android/widget/ListView dispatchDraw (Landroid/graphics/Canvas;)V ListView.java 3134
+0x44e55c88 android/widget/ListView drawChild (Landroid/graphics/Canvas;Landroid/view/View;J)Z ListView.java 3288
+0x44e55da0 android/widget/ListView findMotionRow (I)I ListView.java 1286
+0x44e55f60 android/widget/ListView getAdapter ()Landroid/widget/Adapter; ListView.java 71
+0x44e55f98 android/widget/ListView getAdapter ()Landroid/widget/ListAdapter; ListView.java 412
+0x44e561c8 android/widget/ListView isOpaque ()Z ListView.java -1
+0x44e56200 android/widget/ListView layoutChildren ()V ListView.java 1463
+0x44e56238 android/widget/ListView lookForSelectablePosition (IZ)I ListView.java -1
+0x44e56270 android/widget/ListView measureHeightOfChildren (IIIII)I ListView.java 1225
+0x44e56430 android/widget/ListView onMeasure (II)V ListView.java -1
+0x44e56468 android/widget/ListView onSizeChanged (IIII)V ListView.java 1097
+0x44e564d8 android/widget/ListView recycleOnMeasure ()Z ListView.java 1193
+0x44e565b8 android/widget/ListView resetList ()V ListView.java 501
+0x44e56628 android/widget/ListView setAdapter (Landroid/widget/ListAdapter;)V ListView.java -1
+0x44e55270 android/widget/ListView adjustViewsUpOrDown ()V ListView.java 199
+0x44e55388 android/widget/ListView clearRecycledState (Ljava/util/ArrayList;)V ListView.java 510
+0x44e553f8 android/widget/ListView correctTooHigh (I)V ListView.java 1367
+0x44e554d8 android/widget/ListView fillDown (II)Landroid/view/View; ListView.java -1
+0x44e555b8 android/widget/ListView fillSpecific (II)Landroid/view/View; ListView.java -1
+0x44e555f0 android/widget/ListView fillUp (II)Landroid/view/View; ListView.java -1
+0x44e55820 android/widget/ListView makeAndAddView (IIZIZ)Landroid/view/View; ListView.java 1818
+0x44e55a18 android/widget/ListView setupChild (Landroid/view/View;IIZIZZ)V ListView.java 1855
+0x44d77d00 android/graphics/drawable/Drawable getBounds ()Landroid/graphics/Rect; Drawable.java 202
+0x44d77d38 android/graphics/drawable/Drawable getCallback ()Landroid/graphics/drawable/Drawable$Callback; Drawable.java 320
+0x44d77d70 android/graphics/drawable/Drawable getChangingConfigurations ()I Drawable.java 236
+0x44d77e18 android/graphics/drawable/Drawable getIntrinsicHeight ()I Drawable.java 669
+0x44d77e50 android/graphics/drawable/Drawable getIntrinsicWidth ()I Drawable.java 661
+0x44d77ef8 android/graphics/drawable/Drawable getLevel ()I Drawable.java 528
+0x44d77f30 android/graphics/drawable/Drawable getMinimumHeight ()I Drawable.java 696
+0x44d77f68 android/graphics/drawable/Drawable getMinimumWidth ()I Drawable.java 682
+0x44d78010 android/graphics/drawable/Drawable getState ()[I Drawable.java 478
+0x44d780f0 android/graphics/drawable/Drawable invalidateSelf ()V Drawable.java 336
+0x44d78160 android/graphics/drawable/Drawable isVisible ()Z Drawable.java 555
+0x44d781d0 android/graphics/drawable/Drawable mutate ()Landroid/graphics/drawable/Drawable; Drawable.java 737
+0x44d78208 android/graphics/drawable/Drawable onBoundsChange (Landroid/graphics/Rect;)V Drawable.java 654
+0x44d78278 android/graphics/drawable/Drawable onStateChange ([I)Z Drawable.java 641
+0x44d78320 android/graphics/drawable/Drawable setBounds (IIII)V Drawable.java 141
+0x44d78358 android/graphics/drawable/Drawable setBounds (Landroid/graphics/Rect;)V Drawable.java 159
+0x44d78390 android/graphics/drawable/Drawable setCallback (Landroid/graphics/drawable/Drawable$Callback;)V Drawable.java 308
+0x44d78470 android/graphics/drawable/Drawable setDither (Z)V Drawable.java 244
+0x44d78518 android/graphics/drawable/Drawable setLevel (I)Z Drawable.java 515
+0x44d78550 android/graphics/drawable/Drawable setState ([I)Z Drawable.java 463
+0x44d78588 android/graphics/drawable/Drawable setVisible (ZZ)Z Drawable.java 546
+0x44d77a20 android/graphics/drawable/Drawable ()V Drawable.java -1
+0x44e521d0 android/widget/EdgeEffect isFinished ()Z EdgeEffect.java 183
+0x44cfd490 java/util/HashMap$KeySet iterator ()Ljava/util/Iterator; HashMap.java 899
+0x44e45378 android/widget/AbsListView$1 run ()V AbsListView.java -1
+0x44e45338 android/widget/AbsListView$1 (Landroid/widget/AbsListView;Landroid/view/View;Landroid/widget/AbsListView$PerformClick;)V AbsListView.java 3416
+0x44e45468 android/widget/AbsListView$2 run ()V AbsListView.java -1
+0x44e45428 android/widget/AbsListView$2 (Landroid/widget/AbsListView;)V AbsListView.java 4768
+0x44cd9cc0 android/os/Trace isTagEnabled (J)Z Trace.java 115
+0x44cd9dd8 android/os/Trace traceBegin (JLjava/lang/String;)V Trace.java 143
+0x44cd9e48 android/os/Trace traceEnd (J)V Trace.java 155
+0x44c7a110 java/util/Collections emptyList ()Ljava/util/List; Collections.java 2409
+0x44c81a58 dalvik/system/CloseGuard close ()V CloseGuard.java 194
+0x44c81a90 dalvik/system/CloseGuard open (Ljava/lang/String;)V CloseGuard.java 176
+0x44c81ac8 dalvik/system/CloseGuard warnIfOpen ()V CloseGuard.java 204
+0x44c81970 dalvik/system/CloseGuard get ()Ldalvik/system/CloseGuard; CloseGuard.java 131
+0x44e105c8 android/view/ViewRootImpl$RunQueue executeActions (Landroid/os/Handler;)V ViewRootImpl.java 5248
+0x44c8ceb0 java/lang/Daemons$ReferenceQueueDaemon enqueue (Ljava/lang/ref/Reference;)V Daemons.java -1
+0x44d94470 android/media/AudioManager playSoundEffect (I)V AudioManager.java 1663
+0x44d93ba8 android/media/AudioManager getService ()Landroid/media/IAudioService; AudioManager.java 429
+0x44d93c18 android/media/AudioManager querySoundEffectsEnabled ()Z AudioManager.java -1
+0x44cf2d00 android/view/InputEventReceiver consumeBatchedInputEvents (J)V InputEventReceiver.java 167
+0x44cf2da8 android/view/InputEventReceiver finishInputEvent (Landroid/view/InputEvent;Z)V InputEventReceiver.java 137
+0x44cf2ba8 android/view/InputEventReceiver dispatchInputEvent (ILandroid/view/InputEvent;)V InputEventReceiver.java 178
+0x44cf2c18 android/view/InputEventReceiver nativeConsumeBatchedInputEvents (IJ)V InputEventReceiver.java -2
+0x44cf2c88 android/view/InputEventReceiver nativeFinishInputEvent (IIZ)V InputEventReceiver.java -2
+0x44e71b20 android/widget/RelativeLayout$DependencyGraph add (Landroid/view/View;)V RelativeLayout.java 1488
+0x44e71b58 android/widget/RelativeLayout$DependencyGraph clear ()V RelativeLayout.java 1470
+0x44e71b90 android/widget/RelativeLayout$DependencyGraph getSortedViews ([Landroid/view/View;[I)V RelativeLayout.java 1509
+0x44e719c8 android/widget/RelativeLayout$DependencyGraph access$500 (Landroid/widget/RelativeLayout$DependencyGraph;)Landroid/util/SparseArray; RelativeLayout.java 1448
+0x44e71a38 android/widget/RelativeLayout$DependencyGraph findRoots ([I)Ljava/util/ArrayDeque; RelativeLayout.java 1546
+0x44e46490 android/widget/AbsListView$RecycleBin clear ()V AbsListView.java -1
+0x44e46500 android/widget/AbsListView$RecycleBin fillActiveViews (II)V AbsListView.java 6244
+0x44e46538 android/widget/AbsListView$RecycleBin getActiveView (I)Landroid/view/View; AbsListView.java -1
+0x44e465e0 android/widget/AbsListView$RecycleBin markChildrenDirty ()V AbsListView.java 6183
+0x44e46650 android/widget/AbsListView$RecycleBin removeSkippedScrap ()V AbsListView.java 6368
+0x44e46688 android/widget/AbsListView$RecycleBin scrapActiveViews ()V AbsListView.java -1
+0x44e466f8 android/widget/AbsListView$RecycleBin setViewTypeCount (I)V AbsListView.java 6169
+0x44e46418 android/widget/AbsListView$RecycleBin pruneScrapViews ()V AbsListView.java 6435
+0x44d73a90 android/database/sqlite/SQLiteSession executeForChangedRowCount (Ljava/lang/String;[Ljava/lang/Object;ILandroid/os/CancellationSignal;)I SQLiteSession.java 744
+0x44d73ac8 android/database/sqlite/SQLiteSession executeForCursorWindow (Ljava/lang/String;[Ljava/lang/Object;Landroid/database/CursorWindow;IIZILandroid/os/CancellationSignal;)I SQLiteSession.java 822
+0x44d73c50 android/database/sqlite/SQLiteSession prepare (Ljava/lang/String;ILandroid/os/CancellationSignal;Landroid/database/sqlite/SQLiteStatementInfo;)V SQLiteSession.java 578
+0x44d73740 android/database/sqlite/SQLiteSession acquireConnection (Ljava/lang/String;ILandroid/os/CancellationSignal;)V SQLiteSession.java 892
+0x44d737e8 android/database/sqlite/SQLiteSession executeSpecial (Ljava/lang/String;[Ljava/lang/Object;ILandroid/os/CancellationSignal;)Z SQLiteSession.java -1
+0x44d73890 android/database/sqlite/SQLiteSession releaseConnection ()V SQLiteSession.java -1
+0x44c4b080 java/lang/Object clone ()Ljava/lang/Object; Object.java 154
+0x44c4b0b8 java/lang/Object equals (Ljava/lang/Object;)Z Object.java 191
+0x44c4b0f0 java/lang/Object finalize ()V Object.java 224
+0x44c4b128 java/lang/Object getClass ()Ljava/lang/Class; Object.java -2
+0x44c4b160 java/lang/Object hashCode ()I Object.java -2
+0x44c4b198 java/lang/Object notify ()V Object.java -2
+0x44c4b1d0 java/lang/Object notifyAll ()V Object.java -2
+0x44c4b240 java/lang/Object wait ()V Object.java 364
+0x44c4b278 java/lang/Object wait (J)V Object.java 401
+0x44c4b2b0 java/lang/Object wait (JI)V Object.java -2
+0x44c4b040 java/lang/Object internalClone (Ljava/lang/Cloneable;)Ljava/lang/Object; Object.java -2
+0x44de5c88 android/text/DynamicLayout getEllipsizedWidth ()I DynamicLayout.java 609
+0x44de5cc0 android/text/DynamicLayout getLineContainsTab (I)Z DynamicLayout.java -1
+0x44de5cf8 android/text/DynamicLayout getLineCount ()I DynamicLayout.java 564
+0x44de5d30 android/text/DynamicLayout getLineDescent (I)I DynamicLayout.java 574
+0x44de5d68 android/text/DynamicLayout getLineDirections (I)Landroid/text/Layout$Directions; DynamicLayout.java 594
+0x44de5da0 android/text/DynamicLayout getLineStart (I)I DynamicLayout.java 579
+0x44de5dd8 android/text/DynamicLayout getLineTop (I)I DynamicLayout.java 569
+0x44de5e48 android/text/DynamicLayout getParagraphDirection (I)I DynamicLayout.java 589
+0x44c7ea68 java/util/LinkedHashMap addNewEntry (Ljava/lang/Object;Ljava/lang/Object;II)V LinkedHashMap.java 185
+0x44c7ebb8 java/util/LinkedHashMap get (Ljava/lang/Object;)Ljava/lang/Object; LinkedHashMap.java -1
+0x44c7ed40 java/util/LinkedHashMap removeEldestEntry (Ljava/util/Map$Entry;)Z LinkedHashMap.java 394
+0x44c7ea28 java/util/LinkedHashMap makeTail (Ljava/util/LinkedHashMap$LinkedEntry;)V LinkedHashMap.java 275
+0x44e06c78 android/view/View$ScrollabilityCache setFadeColor (I)V View.java -1
+0x44c8abd8 dalvik/system/DexPathList findClass (Ljava/lang/String;)Ljava/lang/Class; DexPathList.java 301
+0x44e45948 android/widget/AbsListView$CheckForTap (Landroid/widget/AbsListView;)V AbsListView.java 2952
+0x44e6beb0 java/util/Formatter format (Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter; Formatter.java 1009
+0x44e6bee8 java/util/Formatter format (Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter; Formatter.java 1036
+0x44e6bfc8 java/util/Formatter toString ()Ljava/lang/String; Formatter.java 934
+0x44e6b690 java/util/Formatter (Ljava/lang/Appendable;Ljava/util/Locale;)V Formatter.java 649
+0x44e6b850 java/util/Formatter checkNotClosed ()V Formatter.java 894
+0x44e6b888 java/util/Formatter doFormat (Ljava/lang/String;[Ljava/lang/Object;)V Formatter.java 1048
+0x44e6b8c0 java/util/Formatter getArgument ([Ljava/lang/Object;ILjava/util/Formatter$FormatSpecifierParser;Ljava/lang/Object;Z)Ljava/lang/Object; Formatter.java -1
+0x44e6b9a0 java/util/Formatter outputCharSequence (Ljava/lang/CharSequence;II)V Formatter.java 1092
+0x44e6ba80 java/util/Formatter transform (Ljava/util/Formatter$FormatToken;Ljava/lang/Object;)Ljava/lang/CharSequence; Formatter.java -1
+0x44cd5858 android/database/sqlite/SQLiteClosable acquireReference ()V SQLiteClosable.java 53
+0x44cd5890 android/database/sqlite/SQLiteClosable close ()V SQLiteClosable.java 106
+0x44cd5938 android/database/sqlite/SQLiteClosable releaseReference ()V SQLiteClosable.java 69
+0x44cd5818 android/database/sqlite/SQLiteClosable ()V SQLiteClosable.java 26
+0x44cd30c8 android/graphics/Shader finalize ()V Shader.java 87
+0x44cd3050 android/graphics/Shader nativeDestructor (II)V Shader.java -2
+0x44d60818 android/database/AbstractCursor close ()V AbstractCursor.java 146
+0x44d608f8 android/database/AbstractCursor finalize ()V AbstractCursor.java 430
+0x44d60d90 android/database/AbstractCursor isAfterLast ()Z AbstractCursor.java -1
+0x44d60f50 android/database/AbstractCursor moveToFirst ()Z AbstractCursor.java 237
+0x44d60ff8 android/database/AbstractCursor moveToPosition (I)Z AbstractCursor.java -1
+0x44d610a0 android/database/AbstractCursor onDeactivateOrClose ()V AbstractCursor.java 125
+0x44d607a0 android/database/AbstractCursor ()V AbstractCursor.java -1
+0x44d7e718 android/graphics/drawable/NinePatchDrawable draw (Landroid/graphics/Canvas;)V NinePatchDrawable.java 221
+0x44d7e750 android/graphics/drawable/NinePatchDrawable getChangingConfigurations ()I NinePatchDrawable.java 226
+0x44d7e788 android/graphics/drawable/NinePatchDrawable getConstantState ()Landroid/graphics/drawable/Drawable$ConstantState; NinePatchDrawable.java 383
+0x44d7e868 android/graphics/drawable/NinePatchDrawable getMinimumHeight ()I NinePatchDrawable.java 363
+0x44d7e8a0 android/graphics/drawable/NinePatchDrawable getMinimumWidth ()I NinePatchDrawable.java 358
+0x44d7e910 android/graphics/drawable/NinePatchDrawable getPadding (Landroid/graphics/Rect;)Z NinePatchDrawable.java 231
+0x44d7e9f0 android/graphics/drawable/NinePatchDrawable mutate ()Landroid/graphics/drawable/Drawable; NinePatchDrawable.java 389
+0x44d7ea28 android/graphics/drawable/NinePatchDrawable setAlpha (I)V NinePatchDrawable.java 245
+0x44d7ea60 android/graphics/drawable/NinePatchDrawable setColorFilter (Landroid/graphics/ColorFilter;)V NinePatchDrawable.java 255
+0x44d7ea98 android/graphics/drawable/NinePatchDrawable setDither (Z)V NinePatchDrawable.java 265
+0x44d7e5f8 android/graphics/drawable/NinePatchDrawable (Landroid/graphics/drawable/NinePatchDrawable$NinePatchState;Landroid/content/res/Resources;)V NinePatchDrawable.java 448
+0x44d7e630 android/graphics/drawable/NinePatchDrawable (Landroid/graphics/drawable/NinePatchDrawable$NinePatchState;Landroid/content/res/Resources;Landroid/graphics/drawable/NinePatchDrawable$1;)V NinePatchDrawable.java 53
+0x44d7e668 android/graphics/drawable/NinePatchDrawable computeBitmapSize ()V NinePatchDrawable.java 193
+0x44d7e6d8 android/graphics/drawable/NinePatchDrawable setNinePatchState (Landroid/graphics/drawable/NinePatchDrawable$NinePatchState;Landroid/content/res/Resources;)V NinePatchDrawable.java 124
+0x44d0ce48 java/util/WeakHashMap poll ()V WeakHashMap.java 569
+0x44d0ce80 java/util/WeakHashMap put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; WeakHashMap.java -1
+0x44d0cef0 java/util/WeakHashMap remove (Ljava/lang/Object;)Ljava/lang/Object; WeakHashMap.java 686
+0x44d0cf60 java/util/WeakHashMap size ()I WeakHashMap.java 723
+0x44ed8e50 java/util/Formatter$FormatSpecifierParser parseFormatToken (I)Ljava/util/Formatter$FormatToken; Formatter.java 2279
+0x44ed8ba8 java/util/Formatter$FormatSpecifierParser (Ljava/lang/String;)V Formatter.java 2269
+0x44ed8be0 java/util/Formatter$FormatSpecifierParser access$000 (Ljava/util/Formatter$FormatSpecifierParser;)I Formatter.java 2259
+0x44ed8c18 java/util/Formatter$FormatSpecifierParser advance ()C Formatter.java 2297
+0x44ed8cc0 java/util/Formatter$FormatSpecifierParser parseArgumentIndexAndFlags (Ljava/util/Formatter$FormatToken;)Ljava/util/Formatter$FormatToken; Formatter.java 2309
+0x44ed8cf8 java/util/Formatter$FormatSpecifierParser parseConversionType (Ljava/util/Formatter$FormatToken;)Ljava/util/Formatter$FormatToken; Formatter.java 2377
+0x44ed8da0 java/util/Formatter$FormatSpecifierParser peek ()I Formatter.java 2293
+0x44cff8c8 dalvik/system/BlockGuard getThreadPolicy ()Ldalvik/system/BlockGuard$Policy; BlockGuard.java 140
+0x44d72390 android/database/sqlite/SQLiteDirectCursorDriver cursorClosed ()V SQLiteDirectCursorDriver.java 65
+0x44d72438 android/database/sqlite/SQLiteDirectCursorDriver query (Landroid/database/sqlite/SQLiteDatabase$CursorFactory;[Ljava/lang/String;)Landroid/database/Cursor; SQLiteDirectCursorDriver.java 44
+0x44d72350 android/database/sqlite/SQLiteDirectCursorDriver (Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)V SQLiteDirectCursorDriver.java 36
+0x44debdc0 android/text/TextLine draw (Landroid/graphics/Canvas;FIII)V TextLine.java 191
+0x44debe30 android/text/TextLine measure (IZLandroid/graphics/Paint$FontMetricsInt;)F TextLine.java 284
+0x44debe68 android/text/TextLine metrics (Landroid/graphics/Paint$FontMetricsInt;)F TextLine.java 267
+0x44debed8 android/text/TextLine set (Landroid/text/TextPaint;Ljava/lang/CharSequence;IIILandroid/text/Layout$Directions;ZLandroid/text/Layout$TabStops;)V TextLine.java 133
+0x44debb18 android/text/TextLine drawRun (Landroid/graphics/Canvas;IIZFIIIZ)F TextLine.java 388
+0x44debb50 android/text/TextLine drawTextRun (Landroid/graphics/Canvas;Landroid/text/TextPaint;IIIIZFI)V TextLine.java 980
+0x44debc30 android/text/TextLine handleRun (IIIZLandroid/graphics/Canvas;FIIILandroid/graphics/Paint$FontMetricsInt;Z)F TextLine.java 885
+0x44debc68 android/text/TextLine handleText (Landroid/text/TextPaint;IIIIZLandroid/graphics/Canvas;FIIILandroid/graphics/Paint$FontMetricsInt;Z)F TextLine.java 727
+0x44debca0 android/text/TextLine measureRun (IIIZLandroid/graphics/Paint$FontMetricsInt;)F TextLine.java 414
+0x44debcd8 android/text/TextLine obtain ()Landroid/text/TextLine; TextLine.java 76
+0x44debd10 android/text/TextLine recycle (Landroid/text/TextLine;)Landroid/text/TextLine; TextLine.java -1
+0x44c957c8 android/util/SparseIntArray delete (I)V SparseIntArray.java 91
+0x44c95838 android/util/SparseIntArray get (II)I SparseIntArray.java 78
+0x44c95870 android/util/SparseIntArray indexOfKey (I)I SparseIntArray.java 178
+0x44c95918 android/util/SparseIntArray put (II)V SparseIntArray.java -1
+0x44c95950 android/util/SparseIntArray removeAt (I)V SparseIntArray.java 102
+0x44c95988 android/util/SparseIntArray size ()I SparseIntArray.java 151
+0x44c959c0 android/util/SparseIntArray valueAt (I)I SparseIntArray.java 169
+0x44c956a8 android/util/SparseIntArray binarySearch ([IIII)I SparseIntArray.java 235
+0x44c7b338 java/util/AbstractCollection ()V AbstractCollection.java 36
+0x44c5b5b0 java/lang/Math max (FF)F Math.java 484
+0x44c5b5e8 java/lang/Math max (II)I Math.java -2
+0x44c5b690 java/lang/Math min (FF)F Math.java 560
+0x44c5b6c8 java/lang/Math min (II)I Math.java -2
+0x44c5b700 java/lang/Math min (JJ)J Math.java 589
+0x44dd2a30 android/os/StrictMode$AndroidBlockGuardPolicy handleViolation (Landroid/os/StrictMode$ViolationInfo;)V StrictMode.java 1237
+0x44dd2a68 android/os/StrictMode$AndroidBlockGuardPolicy handleViolationWithTimingAttempt (Landroid/os/StrictMode$ViolationInfo;)V StrictMode.java -1
+0x44dd2b10 android/os/StrictMode$AndroidBlockGuardPolicy onReadFromDisk ()V StrictMode.java 1100
+0x44dd2b48 android/os/StrictMode$AndroidBlockGuardPolicy onWriteToDisk ()V StrictMode.java 1074
+0x44dd2bb8 android/os/StrictMode$AndroidBlockGuardPolicy startHandlingViolationException (Ldalvik/system/BlockGuard$BlockGuardPolicyException;)V StrictMode.java 1137
+0x44d72aa8 android/database/sqlite/SQLiteProgram bindAllArgsAsStrings ([Ljava/lang/String;)V SQLiteProgram.java 198
+0x44d72bf8 android/database/sqlite/SQLiteProgram clearBindings ()V SQLiteProgram.java 187
+0x44d72c30 android/database/sqlite/SQLiteProgram getBindArgs ()[Ljava/lang/Object; SQLiteProgram.java 92
+0x44d72c68 android/database/sqlite/SQLiteProgram getColumnNames ()[Ljava/lang/String; SQLiteProgram.java 96
+0x44d72ca0 android/database/sqlite/SQLiteProgram getConnectionFlags ()I SQLiteProgram.java 106
+0x44d72cd8 android/database/sqlite/SQLiteProgram getDatabase ()Landroid/database/sqlite/SQLiteDatabase; SQLiteProgram.java 84
+0x44d72d10 android/database/sqlite/SQLiteProgram getSession ()Landroid/database/sqlite/SQLiteSession; SQLiteProgram.java 101
+0x44d72d48 android/database/sqlite/SQLiteProgram getSql ()Ljava/lang/String; SQLiteProgram.java 88
+0x44d72db8 android/database/sqlite/SQLiteProgram onAllReferencesReleased ()V SQLiteProgram.java 207
+0x44d72a30 android/database/sqlite/SQLiteProgram (Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)V SQLiteProgram.java -1
+0x44e10070 android/view/ViewRootImpl$ConsumeBatchedInputRunnable run ()V ViewRootImpl.java 4382
+0x44cfa698 java/util/Locale getLanguage ()Ljava/lang/String; Locale.java 539
+0x44cfa740 java/util/Locale toString ()Ljava/lang/String; Locale.java 584
+0x44cfa230 java/util/Locale getDefault ()Ljava/util/Locale; Locale.java 358
+0x44c593d0 org/apache/harmony/dalvik/ddmc/Chunk (I[BII)V Chunk.java 45
+0x44c99840 com/android/internal/os/BinderInternal$GcWatcher finalize ()V BinderInternal.java 45
+0x44c99800 com/android/internal/os/BinderInternal$GcWatcher ()V BinderInternal.java 42
+0x44d63170 android/database/Observable registerObserver (Ljava/lang/Object;)V Observable.java 44
+0x44d631a8 android/database/Observable unregisterAll ()V Observable.java 79
+0x44d631e0 android/database/Observable unregisterObserver (Ljava/lang/Object;)V Observable.java 63
+0x44d63130 android/database/Observable ()V Observable.java 29
+0x44e078a0 android/view/ViewConfiguration getPressedStateDuration ()I ViewConfiguration.java 385
+0x44e079f0 android/view/ViewConfiguration getTapTimeout ()I ViewConfiguration.java 417
+0x44ddbb90 android/provider/Settings$NameValueCache getStringForUser (Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String; Settings.java 786
+0x44ec7bb0 dalvik/system/DexFile loadClassBinaryName (Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/Class; DexFile.java 211
+0x44ec7940 dalvik/system/DexFile defineClass (Ljava/lang/String;Ljava/lang/ClassLoader;I)Ljava/lang/Class; DexFile.java -2
+0x44cfa8f0 java/lang/CaseMapper toUpperCase (Ljava/util/Locale;Ljava/lang/String;[CII)Ljava/lang/String; CaseMapper.java 143
+0x44cfa928 java/lang/CaseMapper upperIndex (I)I CaseMapper.java -1
+0x44e42e68 android/widget/AdapterView checkFocus ()V AdapterView.java -1
+0x44e42ea0 android/widget/AdapterView checkSelectionChanged ()V AdapterView.java 1042
+0x44e430d0 android/widget/AdapterView getItemIdAtPosition (I)J AdapterView.java 767
+0x44e43290 android/widget/AdapterView getSelectedItemPosition ()I AdapterView.java 542
+0x44e43450 android/widget/AdapterView onLayout (ZIIII)V AdapterView.java 532
+0x44e434c0 android/widget/AdapterView performItemClick (Landroid/view/View;IJ)Z AdapterView.java -1
+0x44e436f0 android/widget/AdapterView setNextSelectedPositionInt (I)V AdapterView.java 1163
+0x44e43760 android/widget/AdapterView setOnItemClickListener (Landroid/widget/AdapterView$OnItemClickListener;)V AdapterView.java 272
+0x44e43808 android/widget/AdapterView setSelectedPositionInt (I)V AdapterView.java 1153
+0x44f198c0 com/logicdrop/todos/activity/TodoActivity$2 onItemClick (Landroid/widget/AdapterView;Landroid/view/View;IJ)V TodoActivity.java 105
+0x44f19880 com/logicdrop/todos/activity/TodoActivity$2 (Lcom/logicdrop/todos/activity/TodoActivity;)V TodoActivity.java 101
+0x44e062e0 android/view/View$ListenerInfo access$000 (Landroid/view/View$ListenerInfo;)Ljava/util/ArrayList; View.java 2925
+0x44c594e8 org/apache/harmony/dalvik/ddmc/DdmServer dispatch (I[BII)Lorg/apache/harmony/dalvik/ddmc/Chunk; DdmServer.java 143
+0x44c51588 java/lang/Exception ()V Exception.java 36
+0x44c515c0 java/lang/Exception (Ljava/lang/String;)V Exception.java 47
+0x44c99a20 android/os/BinderProxy finalize ()V Binder.java 422
+0x44c99b70 android/os/BinderProxy transact (ILandroid/os/Parcel;Landroid/os/Parcel;I)Z Binder.java -2
+0x44c99938 android/os/BinderProxy destroy ()V Binder.java -2
+0x44deaf78 android/text/SpannableStringBuilder drawTextRun (Landroid/graphics/Canvas;IIIIFFILandroid/graphics/Paint;)V SpannableStringBuilder.java 1134
+0x44deb020 android/text/SpannableStringBuilder getSpanEnd (Ljava/lang/Object;)I SpannableStringBuilder.java 730
+0x44deb058 android/text/SpannableStringBuilder getSpanFlags (Ljava/lang/Object;)I SpannableStringBuilder.java 752
+0x44deb090 android/text/SpannableStringBuilder getSpanStart (Ljava/lang/Object;)I SpannableStringBuilder.java 708
+0x44deb0c8 android/text/SpannableStringBuilder getSpans (IILjava/lang/Class;)[Ljava/lang/Object; SpannableStringBuilder.java 771
+0x44deb100 android/text/SpannableStringBuilder getTextRunAdvances (IIIII[FILandroid/graphics/Paint;)F SpannableStringBuilder.java 1208
+0x44deb2c0 android/text/SpannableStringBuilder length ()I SpannableStringBuilder.java 127
+0x44deb330 android/text/SpannableStringBuilder nextSpanTransition (IILjava/lang/Class;)I SpannableStringBuilder.java 871
+0x44dea8a8 android/text/SpannableStringBuilder checkRange (Ljava/lang/String;II)V SpannableStringBuilder.java 1008
+0x44db0e00 java/util/AbstractList$SimpleListIterator hasNext ()Z AbstractList.java 49
+0x44db0dc0 java/util/AbstractList$SimpleListIterator (Ljava/util/AbstractList;)V AbstractList.java -1
+0x44f19418 android/widget/TableRow$LayoutParams access$200 (Landroid/widget/TableRow$LayoutParams;)[I TableRow.java 402
+0x44c8d6f0 java/lang/VMClassLoader findLoadedClass (Ljava/lang/ClassLoader;Ljava/lang/String;)Ljava/lang/Class; VMClassLoader.java -2
+0x44c8d840 java/lang/VMClassLoader loadClass (Ljava/lang/String;Z)Ljava/lang/Class; VMClassLoader.java -2
+0x44c8a790 java/lang/BootClassLoader findClass (Ljava/lang/String;)Ljava/lang/Class; ClassLoader.java 765
+0x44c8a8e0 java/lang/BootClassLoader loadClass (Ljava/lang/String;Z)Ljava/lang/Class; ClassLoader.java 822
+0x44c8a750 java/lang/BootClassLoader getInstance ()Ljava/lang/BootClassLoader; ClassLoader.java 752
+0x44cd7380 android/database/sqlite/SQLiteDebug shouldLogSlowQuery (J)Z SQLiteDebug.java 82
+0x44c918d0 android/content/res/StringBlock finalize ()V StringBlock.java 142
+0x44de5610 android/text/TextPaint set (Landroid/text/TextPaint;)V TextPaint.java 61
+0x44c514a0 java/lang/RuntimeException ()V RuntimeException.java 35
+0x44d2a208 android/app/ApplicationErrorReport$CrashInfo (Ljava/lang/Throwable;)V ApplicationErrorReport.java -1
+0x44c8eb48 android/util/FloatMath ceil (F)F FloatMath.java -2
+0x44c8ebf0 android/util/FloatMath floor (F)F FloatMath.java -2
+0x44e71d68 android/widget/RelativeLayout$DependencyGraph$Node getNextPoolable ()Landroid/widget/RelativeLayout$DependencyGraph$Node; RelativeLayout.java 1703
+0x44e71da0 android/widget/RelativeLayout$DependencyGraph$Node getNextPoolable ()Ljava/lang/Object; RelativeLayout.java 1658
+0x44e71dd8 android/widget/RelativeLayout$DependencyGraph$Node isPooled ()Z RelativeLayout.java 1707
+0x44e71e10 android/widget/RelativeLayout$DependencyGraph$Node release ()V RelativeLayout.java 1722
+0x44e71e48 android/widget/RelativeLayout$DependencyGraph$Node setNextPoolable (Landroid/widget/RelativeLayout$DependencyGraph$Node;)V RelativeLayout.java 1699
+0x44e71e80 android/widget/RelativeLayout$DependencyGraph$Node setNextPoolable (Ljava/lang/Object;)V RelativeLayout.java 1658
+0x44e71eb8 android/widget/RelativeLayout$DependencyGraph$Node setPooled (Z)V RelativeLayout.java 1711
+0x44e71d28 android/widget/RelativeLayout$DependencyGraph$Node acquire (Landroid/view/View;)Landroid/widget/RelativeLayout$DependencyGraph$Node; RelativeLayout.java 1715
+0x44d81488 android/graphics/drawable/TransitionDrawable draw (Landroid/graphics/Canvas;)V TransitionDrawable.java -1
+0x44d814f8 android/graphics/drawable/TransitionDrawable resetTransition ()V TransitionDrawable.java 123
+0x44c8cbe8 dalvik/system/DexPathList$Element access$000 (Ldalvik/system/DexPathList$Element;)Ldalvik/system/DexFile; DexPathList.java 377
+0x44e91ad8 com/android/internal/os/LoggingPrintStream println (Ljava/lang/String;)V LoggingPrintStream.java 296
+0x44e10a68 android/view/ViewRootImpl$TraversalRunnable run ()V ViewRootImpl.java 4351
+0x44c98ac0 android/os/SystemProperties getInt (Ljava/lang/String;I)I SystemProperties.java 78
+0x44c98af8 android/os/SystemProperties getLong (Ljava/lang/String;J)J SystemProperties.java 93
+0x44c98c10 android/os/SystemProperties native_get_int (Ljava/lang/String;I)I SystemProperties.java -2
+0x44c98c48 android/os/SystemProperties native_get_long (Ljava/lang/String;J)J SystemProperties.java -2
+0x44dd3228 android/os/StrictMode$StrictModeDiskReadViolation (I)V StrictMode.java 809
+0x44d157e8 android/animation/ValueAnimator getCurrentAnimationsCount ()I ValueAnimator.java 1227
+0x44d3d590 android/app/LoadedApk getApplicationInfo ()Landroid/content/pm/ApplicationInfo; LoadedApk.java 180
+0x44dea0e0 android/text/SpanSet getNextTransition (II)I SpanSet.java 93
+0x44dea150 android/text/SpanSet init (Landroid/text/Spanned;II)V SpanSet.java 46
+0x44dea188 android/text/SpanSet recycle ()V SpanSet.java 107
+0x44cf6ad8 android/view/VelocityTracker addMovement (Landroid/view/MotionEvent;)V VelocityTracker.java 167
+0x44cf6de8 android/view/VelocityTracker setNextPoolable (Landroid/view/VelocityTracker;)V VelocityTracker.java 109
+0x44cf6e20 android/view/VelocityTracker setNextPoolable (Ljava/lang/Object;)V VelocityTracker.java 34
+0x44cf6e58 android/view/VelocityTracker setPooled (Z)V VelocityTracker.java 130
+0x44cf6830 android/view/VelocityTracker (Ljava/lang/String;)V VelocityTracker.java 133
+0x44cf6868 android/view/VelocityTracker (Ljava/lang/String;Landroid/view/VelocityTracker$1;)V VelocityTracker.java 34
+0x44cf68a0 android/view/VelocityTracker nativeAddMovement (ILandroid/view/MotionEvent;)V VelocityTracker.java -2
+0x44cf6a28 android/view/VelocityTracker nativeInitialize (Ljava/lang/String;)I VelocityTracker.java -2
+0x44cf6a60 android/view/VelocityTracker obtain ()Landroid/view/VelocityTracker; VelocityTracker.java 76
+0x44c4d7e0 java/lang/StackTraceElement getClassName ()Ljava/lang/String; StackTraceElement.java 143
+0x44c4d818 java/lang/StackTraceElement getFileName ()Ljava/lang/String; StackTraceElement.java 154
+0x44c4d850 java/lang/StackTraceElement getLineNumber ()I StackTraceElement.java 165
+0x44c4d888 java/lang/StackTraceElement getMethodName ()Ljava/lang/String; StackTraceElement.java 176
+0x44c4d8f8 java/lang/StackTraceElement isNativeMethod ()Z StackTraceElement.java 201
+0x44c4d930 java/lang/StackTraceElement toString ()Ljava/lang/String; StackTraceElement.java 206
+0x44c4d768 java/lang/StackTraceElement (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V StackTraceElement.java 60
+0x44c8d038 java/lang/Daemons$Daemon isRunning ()Z Daemons.java 75
+0x44e14990 android/view/WindowManager$LayoutParams mayUseInputMethod (I)Z WindowManager.java 976
+0x44d79ff0 android/graphics/drawable/DrawableContainer$DrawableContainerState getChildCount ()I DrawableContainer.java 541
+0x44d7a258 android/graphics/drawable/DrawableContainer$DrawableContainerState isConstantSize ()Z DrawableContainer.java 586
+0x44d5c8a0 android/content/res/Resources getDisplayMetrics ()Landroid/util/DisplayMetrics; Resources.java 1579
+0x44e9aaa0 com/android/internal/policy/impl/PhoneWindow superDispatchTouchEvent (Landroid/view/MotionEvent;)Z PhoneWindow.java 1405
+0x44de4ea8 java/lang/reflect/Array createObjectArray (Ljava/lang/Class;I)Ljava/lang/Object; Array.java -2
+0x44de5148 java/lang/reflect/Array newInstance (Ljava/lang/Class;I)Ljava/lang/Object; Array.java 353
+0x44c9c980 java/lang/ThreadLocal get ()Ljava/lang/Object; ThreadLocal.java 53
+0x44c9ca98 java/lang/ThreadLocal values (Ljava/lang/Thread;)Ljava/lang/ThreadLocal$Values; ThreadLocal.java 121
+0x44dd0d88 android/os/Message clearForRecycle ()V Message.java -1
+0x44dd0f10 android/os/Message isAsynchronous ()Z Message.java 379
+0x44dd0f48 android/os/Message isInUse ()Z Message.java -1
+0x44dd0f80 android/os/Message markInUse ()V Message.java 423
+0x44dd0ff0 android/os/Message recycle ()V Message.java 249
+0x44dd1060 android/os/Message setAsynchronous (Z)V Message.java 398
+0x44dd0b88 android/os/Message obtain ()Landroid/os/Message; Message.java 107
+0x44dd0cd8 android/os/Message obtain (Landroid/os/Handler;Ljava/lang/Runnable;)Landroid/os/Message; Message.java 161
+0x44e0e1f0 android/view/ViewRootImpl cancelInvalidate (Landroid/view/View;)V ViewRootImpl.java 4511
+0x44e0e228 android/view/ViewRootImpl checkThread ()V ViewRootImpl.java 4745
+0x44e0e960 android/view/ViewRootImpl doConsumeBatchedInput (J)V ViewRootImpl.java 4339
+0x44e0e9d0 android/view/ViewRootImpl doProcessInputEvents ()V ViewRootImpl.java 4287
+0x44e0ea08 android/view/ViewRootImpl doTraversal ()V ViewRootImpl.java -1
+0x44e0eae8 android/view/ViewRootImpl enqueueInputEvent (Landroid/view/InputEvent;Landroid/view/InputEventReceiver;IZ)V ViewRootImpl.java 4253
+0x44e0eb20 android/view/ViewRootImpl ensureTouchMode (Z)Z ViewRootImpl.java 3048
+0x44e0ebc8 android/view/ViewRootImpl getAccessibilityFocusedHost ()Landroid/view/View; ViewRootImpl.java 2502
+0x44e0eca8 android/view/ViewRootImpl getHostVisibility ()I ViewRootImpl.java 927
+0x44e0efb8 android/view/ViewRootImpl invalidateChildInParent ([ILandroid/graphics/Rect;)Landroid/view/ViewParent; ViewRootImpl.java -1
+0x44e0f060 android/view/ViewRootImpl isLayoutRequested ()Z ViewRootImpl.java 830
+0x44e0f1b0 android/view/ViewRootImpl playSoundEffect (I)V ViewRootImpl.java 3985
+0x44e0f2c8 android/view/ViewRootImpl requestChildRectangleOnScreen (Landroid/view/View;Landroid/graphics/Rect;Z)Z ViewRootImpl.java 4756
+0x44e0f370 android/view/ViewRootImpl requestLayout ()V ViewRootImpl.java 823
+0x44e0f488 android/view/ViewRootImpl scheduleConsumeBatchedInput ()V ViewRootImpl.java 4323
+0x44e0f4c0 android/view/ViewRootImpl scheduleTraversals ()V ViewRootImpl.java 960
+0x44e0f4f8 android/view/ViewRootImpl scrollToRectOrFocus (Landroid/graphics/Rect;Z)Z ViewRootImpl.java -1
+0x44e0d730 android/view/ViewRootImpl collectViewAttributes ()Z ViewRootImpl.java -1
+0x44e0d7d8 android/view/ViewRootImpl deliverInputEvent (Landroid/view/ViewRootImpl$QueuedInputEvent;)V ViewRootImpl.java -1
+0x44e0d880 android/view/ViewRootImpl deliverPointerEvent (Landroid/view/ViewRootImpl$QueuedInputEvent;)V ViewRootImpl.java -1
+0x44e0d960 android/view/ViewRootImpl draw (Z)V ViewRootImpl.java 2077
+0x44e0d998 android/view/ViewRootImpl drawAccessibilityFocusedDrawableIfNeeded (Landroid/graphics/Canvas;)V ViewRootImpl.java -1
+0x44e0d9d0 android/view/ViewRootImpl drawSoftware (Landroid/view/Surface;Landroid/view/View$AttachInfo;IZLandroid/graphics/Rect;)Z ViewRootImpl.java -1
+0x44e0dae8 android/view/ViewRootImpl finishInputEvent (Landroid/view/ViewRootImpl$QueuedInputEvent;Z)V ViewRootImpl.java 4304
+0x44e0db90 android/view/ViewRootImpl getAudioManager ()Landroid/media/AudioManager; ViewRootImpl.java 3918
+0x44e0dc38 android/view/ViewRootImpl getRootMeasureSpec (II)I ViewRootImpl.java -1
+0x44e0dc70 android/view/ViewRootImpl getRunQueue ()Landroid/view/ViewRootImpl$RunQueue; ViewRootImpl.java 5202
+0x44e0de68 android/view/ViewRootImpl measureHierarchy (Landroid/view/View;Landroid/view/WindowManager$LayoutParams;Landroid/content/res/Resources;II)Z ViewRootImpl.java -1
+0x44e0dea0 android/view/ViewRootImpl obtainQueuedInputEvent (Landroid/view/InputEvent;Landroid/view/InputEventReceiver;I)Landroid/view/ViewRootImpl$QueuedInputEvent; ViewRootImpl.java -1
+0x44e0ded8 android/view/ViewRootImpl performDraw ()V ViewRootImpl.java -1
+0x44e0df10 android/view/ViewRootImpl performLayout ()V ViewRootImpl.java -1
+0x44e0df48 android/view/ViewRootImpl performMeasure (II)V ViewRootImpl.java -1
+0x44e0df80 android/view/ViewRootImpl performTraversals ()V ViewRootImpl.java 1106
+0x44e0e028 android/view/ViewRootImpl recycleQueuedInputEvent (Landroid/view/ViewRootImpl$QueuedInputEvent;)V ViewRootImpl.java -1
+0x44e460c8 android/widget/AbsListView$PerformClick run ()V AbsListView.java 2738
+0x44e46050 android/widget/AbsListView$PerformClick (Landroid/widget/AbsListView;)V AbsListView.java 2732
+0x44e46088 android/widget/AbsListView$PerformClick (Landroid/widget/AbsListView;Landroid/widget/AbsListView$1;)V AbsListView.java 2732
+0x44c7d678 java/util/ArrayList add (Ljava/lang/Object;)Z ArrayList.java -1
+0x44c7d720 java/util/ArrayList clear ()V ArrayList.java -1
+0x44c7d790 java/util/ArrayList contains (Ljava/lang/Object;)Z ArrayList.java -1
+0x44c7d838 java/util/ArrayList get (I)Ljava/lang/Object; ArrayList.java 303
+0x44c7d8a8 java/util/ArrayList indexOf (Ljava/lang/Object;)I ArrayList.java 350
+0x44c7d988 java/util/ArrayList remove (I)Ljava/lang/Object; ArrayList.java 396
+0x44c7d9c0 java/util/ArrayList remove (Ljava/lang/Object;)Z ArrayList.java -1
+0x44c7da68 java/util/ArrayList size ()I ArrayList.java 315
+0x44c7daa0 java/util/ArrayList toArray ()[Ljava/lang/Object; ArrayList.java -1
+0x44c7dad8 java/util/ArrayList toArray ([Ljava/lang/Object;)[Ljava/lang/Object; ArrayList.java -1
+0x44c7d4b0 java/util/ArrayList ()V ArrayList.java 81
+0x44c7d520 java/util/ArrayList (Ljava/util/Collection;)V ArrayList.java -1
+0x44d5ea40 android/content/res/XmlBlock$Parser close ()V XmlBlock.java 444
+0x44d5eab0 android/content/res/XmlBlock$Parser finalize ()V XmlBlock.java 454
+0x44c5a6a0 dalvik/system/VMDebug isMethodTracingActive ()Z VMDebug.java -2
+0x44c5a860 dalvik/system/VMDebug startClassPrep ()V VMDebug.java 360
+0x44c5a8d0 dalvik/system/VMDebug startGC ()V VMDebug.java 353
+0x44c5a9e8 dalvik/system/VMDebug startMethodTracingDdms (II)V VMDebug.java -1
+0x44c5ab00 dalvik/system/VMDebug stopMethodTracing ()V VMDebug.java -2
+0x44c7f9d0 java/util/HashMap$HashMapEntry (Ljava/lang/Object;Ljava/lang/Object;ILjava/util/HashMap$HashMapEntry;)V HashMap.java 729
+0x44c5c340 java/lang/Number ()V Number.java 33
+0x44df3f68 android/view/Choreographer doCallbacks (IJ)V Choreographer.java 544
+0x44df3fa0 android/view/Choreographer doFrame (JI)V Choreographer.java 493
+0x44df4080 android/view/Choreographer getFrameTimeNanos ()J Choreographer.java 451
+0x44df40b8 android/view/Choreographer postCallback (ILjava/lang/Runnable;Ljava/lang/Object;)V Choreographer.java 273
+0x44df40f0 android/view/Choreographer postCallbackDelayed (ILjava/lang/Runnable;Ljava/lang/Object;J)V Choreographer.java 292
+0x44df3be0 android/view/Choreographer access$300 (Landroid/view/Choreographer;)Landroid/view/Choreographer$FrameHandler; Choreographer.java 69
+0x44df3c18 android/view/Choreographer access$400 ()Ljava/lang/Object; Choreographer.java 69
+0x44df3c50 android/view/Choreographer access$500 (Landroid/view/Choreographer;JLjava/lang/Object;Ljava/lang/Object;)Landroid/view/Choreographer$CallbackRecord; Choreographer.java 69
+0x44df3d68 android/view/Choreographer isRunningOnLooperThreadLocked ()Z Choreographer.java 600
+0x44df3da0 android/view/Choreographer obtainCallbackLocked (JLjava/lang/Object;Ljava/lang/Object;)Landroid/view/Choreographer$CallbackRecord; Choreographer.java -1
+0x44df3dd8 android/view/Choreographer postCallbackDelayedInternal (ILjava/lang/Object;Ljava/lang/Object;J)V Choreographer.java 310
+0x44df3e10 android/view/Choreographer recycleCallbackLocked (Landroid/view/Choreographer$CallbackRecord;)V Choreographer.java -1
+0x44df3e80 android/view/Choreographer scheduleFrameLocked (J)V Choreographer.java -1
+0x44df3eb8 android/view/Choreographer scheduleVsyncLocked ()V Choreographer.java 596
+0x44df8d00 android/view/Gravity getAbsoluteGravity (II)I Gravity.java -1
+0x44d64738 android/database/DatabaseUtils cursorPickFillWindowStartPosition (II)I DatabaseUtils.java 748
+0x44d64a80 android/database/DatabaseUtils findRowIdColumnIndex ([Ljava/lang/String;)I DatabaseUtils.java 1415
+0x44d64b98 android/database/DatabaseUtils getSqlStatementType (Ljava/lang/String;)I DatabaseUtils.java -1
+0x44f1e638 com/logicdrop/todos/activity/TodoActivity$uselessClass (Lcom/logicdrop/todos/activity/TodoActivity;)V TodoActivity.java 124
+0x44f1e670 com/logicdrop/todos/activity/TodoActivity$uselessClass (Lcom/logicdrop/todos/activity/TodoActivity;Lcom/logicdrop/todos/activity/TodoActivity$1;)V TodoActivity.java 124
+0x44c7b168 java/util/AbstractList iterator ()Ljava/util/Iterator; AbstractList.java 569
+0x44c7af68 java/util/AbstractList ()V AbstractList.java 376
+0x44d6f280 android/util/LruCache create (Ljava/lang/Object;)Ljava/lang/Object; LruCache.java 283
+0x44d6f398 android/util/LruCache get (Ljava/lang/Object;)Ljava/lang/Object; LruCache.java 112
+0x44d6f478 android/util/LruCache put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; LruCache.java 166
+0x44d6f590 android/util/LruCache sizeOf (Ljava/lang/Object;Ljava/lang/Object;)I LruCache.java 302
+0x44d6f638 android/util/LruCache trimToSize (I)V LruCache.java 199
+0x44d6f240 android/util/LruCache safeSizeOf (Ljava/lang/Object;Ljava/lang/Object;)I LruCache.java 287
+0x44c8b238 java/lang/StringBuilder append (Ljava/lang/CharSequence;II)Ljava/lang/Appendable; StringBuilder.java 44
+0x44c8b270 java/lang/StringBuilder append (C)Ljava/lang/StringBuilder; StringBuilder.java 124
+0x44c8b318 java/lang/StringBuilder append (I)Ljava/lang/StringBuilder; StringBuilder.java 139
+0x44c8b350 java/lang/StringBuilder append (J)Ljava/lang/StringBuilder; StringBuilder.java 154
+0x44c8b3c0 java/lang/StringBuilder append (Ljava/lang/CharSequence;II)Ljava/lang/StringBuilder; StringBuilder.java 311
+0x44c8b430 java/lang/StringBuilder append (Ljava/lang/String;)Ljava/lang/StringBuilder; StringBuilder.java 216
+0x44c8baf8 java/lang/StringBuilder length ()I StringBuilder.java 44
+0x44c8bcf0 java/lang/StringBuilder toString ()Ljava/lang/String; StringBuilder.java 663
+0x44c8b070 java/lang/StringBuilder ()V StringBuilder.java 54
+0x44c8b0a8 java/lang/StringBuilder (I)V StringBuilder.java 67
+0x44d87290 android/widget/EditText getText ()Landroid/text/Editable; EditText.java 75
+0x44d872c8 android/widget/EditText getText ()Ljava/lang/CharSequence; EditText.java 50
+0x44d73138 android/database/sqlite/SQLiteQueryBuilder appendClause (Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;)V SQLiteQueryBuilder.java 235
+0x44d73170 android/database/sqlite/SQLiteQueryBuilder appendColumns (Ljava/lang/StringBuilder;[Ljava/lang/String;)V SQLiteQueryBuilder.java 246
+0x44d731a8 android/database/sqlite/SQLiteQueryBuilder buildQueryString (ZLjava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; SQLiteQueryBuilder.java 204
+0x44cd1790 android/graphics/Path computeBounds (Landroid/graphics/RectF;Z)V Path.java 199
+0x44cd19c0 android/graphics/Path ni ()I Path.java 614
+0x44cd0fe0 android/graphics/Path native_computeBounds (ILandroid/graphics/RectF;)V Path.java -2
+0x44d88a58 android/widget/TextView bringPointIntoView (I)Z TextView.java 6547
+0x44d88be0 android/widget/TextView computeScroll ()V TextView.java 6783
+0x44d88da0 android/widget/TextView drawableStateChanged ()V TextView.java 3313
+0x44d88ef0 android/widget/TextView getBaseline ()I TextView.java 5138
+0x44d89008 android/widget/TextView getCompoundPaddingBottom ()I TextView.java 1644
+0x44d89078 android/widget/TextView getCompoundPaddingLeft ()I TextView.java 1657
+0x44d890b0 android/widget/TextView getCompoundPaddingRight ()I TextView.java 1670
+0x44d89120 android/widget/TextView getCompoundPaddingTop ()I TextView.java 1631
+0x44d89318 android/widget/TextView getExtendedPaddingBottom ()I TextView.java 1747
+0x44d89350 android/widget/TextView getExtendedPaddingTop ()I TextView.java 1714
+0x44d895b8 android/widget/TextView getHorizontalOffsetForDrawables ()I TextView.java 4870
+0x44d89820 android/widget/TextView getLayout ()Landroid/text/Layout; TextView.java 1447
+0x44d89e08 android/widget/TextView getSelectionEnd ()I TextView.java 6860
+0x44d89e40 android/widget/TextView getSelectionStart ()I TextView.java 6852
+0x44d89f90 android/widget/TextView getText ()Ljava/lang/CharSequence; TextView.java 1412
+0x44d8a3b8 android/widget/TextView getVerticalOffset (Z)I TextView.java 4353
+0x44d8a540 android/widget/TextView invalidateCursorPath ()V TextView.java 4415
+0x44d8a738 android/widget/TextView isTextEditable ()Z TextView.java 7596
+0x44d8a770 android/widget/TextView isTextSelectable ()Z TextView.java 4758
+0x44d8a7a8 android/widget/TextView jumpDrawablesToCurrentState ()V TextView.java 4664
+0x44d8a8f8 android/widget/TextView onCheckIsTextEditor ()Z TextView.java 5545
+0x44d8a9a0 android/widget/TextView onCreateDrawableState (I)[I TextView.java -1
+0x44d8aa10 android/widget/TextView onDetachedFromWindow ()V TextView.java 4606
+0x44d8aa80 android/widget/TextView onDraw (Landroid/graphics/Canvas;)V TextView.java 4875
+0x44d8ad58 android/widget/TextView onLayout (ZIIII)V TextView.java 6459
+0x44d8adc8 android/widget/TextView onMeasure (II)V TextView.java 6131
+0x44d8ae38 android/widget/TextView onPreDraw ()Z TextView.java -1
+0x44d8b0d8 android/widget/TextView onTouchEvent (Landroid/view/MotionEvent;)Z TextView.java -1
+0x44d8b340 android/widget/TextView resetResolvedDrawables ()V TextView.java 8416
+0x44d8b3b0 android/widget/TextView sendAccessibilityEvent (I)V TextView.java 7963
+0x44d8b960 android/widget/TextView setFrame (IIII)Z TextView.java 4290
+0x44d8c8e8 android/widget/TextView viewportToContentHorizontalOffset ()I TextView.java 6814
+0x44d8c920 android/widget/TextView viewportToContentVerticalOffset ()I TextView.java 6818
+0x44d87f60 android/widget/TextView convertFromViewportToContentCoordinates (Landroid/graphics/Rect;)V TextView.java 6804
+0x44d87fd0 android/widget/TextView desired (Landroid/text/Layout;)I TextView.java 6075
+0x44d880b0 android/widget/TextView getDesiredHeight ()I TextView.java -1
+0x44d880e8 android/widget/TextView getDesiredHeight (Landroid/text/Layout;Z)I TextView.java -1
+0x44d88120 android/widget/TextView getInterestingRect (Landroid/graphics/Rect;I)V TextView.java 6794
+0x44d88238 android/widget/TextView getUpdatedHighlightPath ()Landroid/graphics/Path; TextView.java -1
+0x44d88350 android/widget/TextView isShowingHint ()Z TextView.java 6469
+0x44d88468 android/widget/TextView registerForPreDraw ()V TextView.java 4530
+0x44d88510 android/widget/TextView restartMarqueeIfNeeded ()V TextView.java 4300
+0x44d888c8 android/widget/TextView updateTextColors ()V TextView.java -1
+0x44dd0888 android/os/Looper postSyncBarrier ()I Looper.java 227
+0x44dd08f8 android/os/Looper removeSyncBarrier (I)V Looper.java 242
+0x44dd0650 android/os/Looper getMainLooper ()Landroid/os/Looper; Looper.java 102
+0x44dd06c0 android/os/Looper myLooper ()Landroid/os/Looper; Looper.java 163
+0x44ddc640 android/provider/Settings$System getInt (Landroid/content/ContentResolver;Ljava/lang/String;I)I Settings.java 1073
+0x44ddc6b0 android/provider/Settings$System getIntForUser (Landroid/content/ContentResolver;Ljava/lang/String;II)I Settings.java 1078
+0x44ddc8e0 android/provider/Settings$System getStringForUser (Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String; Settings.java 998
+0x44e055a8 android/view/VelocityTracker$1 newInstance ()Landroid/util/Poolable; VelocityTracker.java 36
+0x44e055e0 android/view/VelocityTracker$1 newInstance ()Landroid/view/VelocityTracker; VelocityTracker.java -1
+0x44e05618 android/view/VelocityTracker$1 onAcquired (Landroid/util/Poolable;)V VelocityTracker.java 36
+0x44e05650 android/view/VelocityTracker$1 onAcquired (Landroid/view/VelocityTracker;)V VelocityTracker.java 43
+0x44d791c0 android/graphics/drawable/DrawableContainer draw (Landroid/graphics/Canvas;)V DrawableContainer.java 65
+0x44d79268 android/graphics/drawable/DrawableContainer getCurrent ()Landroid/graphics/drawable/Drawable; DrawableContainer.java 397
+0x44d79348 android/graphics/drawable/DrawableContainer getMinimumHeight ()I DrawableContainer.java 242
+0x44d79380 android/graphics/drawable/DrawableContainer getMinimumWidth ()I DrawableContainer.java 234
+0x44d79428 android/graphics/drawable/DrawableContainer invalidateDrawable (Landroid/graphics/drawable/Drawable;)V DrawableContainer.java 249
+0x44d79508 android/graphics/drawable/DrawableContainer onBoundsChange (Landroid/graphics/Rect;)V DrawableContainer.java 156
+0x44d795e8 android/graphics/drawable/DrawableContainer selectDrawable (I)Z DrawableContainer.java -1
+0x44e1c3c8 android/view/inputmethod/BaseInputConnection getComposingSpanEnd (Landroid/text/Spannable;)I BaseInputConnection.java 123
+0x44e1c400 android/view/inputmethod/BaseInputConnection getComposingSpanStart (Landroid/text/Spannable;)I BaseInputConnection.java 119
+0x44d80e68 android/graphics/drawable/StateListDrawable onStateChange ([I)Z StateListDrawable.java 100
+0x44d7ee90 android/graphics/drawable/NinePatchDrawable$NinePatchState newDrawable ()Landroid/graphics/drawable/Drawable; NinePatchDrawable.java -1
+0x44d7ee18 android/graphics/drawable/NinePatchDrawable$NinePatchState (Landroid/graphics/drawable/NinePatchDrawable$NinePatchState;)V NinePatchDrawable.java 422
+0x44cf31e8 android/util/SparseArray clear ()V SparseArray.java -1
+0x44cf3290 android/util/SparseArray delete (I)V SparseArray.java 95
+0x44cf32c8 android/util/SparseArray get (I)Ljava/lang/Object; SparseArray.java 73
+0x44cf3300 android/util/SparseArray get (ILjava/lang/Object;)Ljava/lang/Object; SparseArray.java 82
+0x44cf33e0 android/util/SparseArray put (ILjava/lang/Object;)V SparseArray.java -1
+0x44cf3418 android/util/SparseArray remove (I)V SparseArray.java 109
+0x44cf34c0 android/util/SparseArray size ()I SparseArray.java 207
+0x44cf3138 android/util/SparseArray binarySearch ([IIII)I SparseArray.java 337
+0x44cf3170 android/util/SparseArray gc ()V SparseArray.java 125
+0x44c8e030 android/os/SystemClock uptimeMillis ()J SystemClock.java -2
+0x44df4ae0 android/view/CompatibilityInfoHolder get ()Landroid/content/res/CompatibilityInfo; CompatibilityInfoHolder.java 35
+0x44cfd760 java/util/HashMap$HashIterator hasNext ()Z HashMap.java 787
+0x44cfd798 java/util/HashMap$HashIterator nextEntry ()Ljava/util/HashMap$HashMapEntry; HashMap.java 791
+0x44cfd720 java/util/HashMap$HashIterator (Ljava/util/HashMap;)V HashMap.java 775
+0x44d78a68 android/graphics/drawable/Drawable$ConstantState ()V Drawable.java 944
+0x44e84078 android/widget/TableRow getChildrenSkipCount (Landroid/view/View;I)I TableRow.java 257
+0x44e840e8 android/widget/TableRow getLocationOffset (Landroid/view/View;)I TableRow.java 268
+0x44e84120 android/widget/TableRow getNextLocationOffset (Landroid/view/View;)I TableRow.java 276
+0x44e84158 android/widget/TableRow getVirtualChildAt (I)Landroid/view/View; TableRow.java -1
+0x44e84190 android/widget/TableRow getVirtualChildCount ()I TableRow.java 148
+0x44e841c8 android/widget/TableRow measureChildBeforeLayout (Landroid/view/View;IIIII)V TableRow.java 194
+0x44e842a8 android/widget/TableRow onLayout (ZIIII)V TableRow.java 123
+0x44e842e0 android/widget/TableRow onMeasure (II)V TableRow.java 114
+0x44c5a210 java/lang/ref/Reference enqueueInternal ()Z Reference.java 106
+0x44c5a248 java/lang/ref/Reference get ()Ljava/lang/Object; Reference.java 132
+0x44c5a160 java/lang/ref/Reference (Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V Reference.java 84
+0x44c80288 java/lang/ref/WeakReference (Ljava/lang/Object;)V WeakReference.java 95
+0x44c802c0 java/lang/ref/WeakReference (Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V WeakReference.java 108
+0x44c97b00 android/view/InputEvent getSequenceNumber ()I InputEvent.java 199
+0x44c97ba8 android/view/InputEvent prepareForReuse ()V InputEvent.java 134
+0x44c97be0 android/view/InputEvent recycle ()V InputEvent.java 107
+0x44c97c18 android/view/InputEvent recycleIfNeededAfterDispatch ()V InputEvent.java 126
+0x44c975a8 android/view/InputEvent ()V InputEvent.java 45
+0x44d71100 android/database/sqlite/SQLiteDatabase delete (Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I SQLiteDatabase.java 1489
+0x44d71368 android/database/sqlite/SQLiteDatabase getPath ()Ljava/lang/String; SQLiteDatabase.java 1728
+0x44d713d8 android/database/sqlite/SQLiteDatabase getThreadDefaultConnectionFlags (Z)I SQLiteDatabase.java 379
+0x44d71410 android/database/sqlite/SQLiteDatabase getThreadSession ()Landroid/database/sqlite/SQLiteSession; SQLiteDatabase.java 359
+0x44d71800 android/database/sqlite/SQLiteDatabase query (Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor; SQLiteDatabase.java 1200
+0x44d71870 android/database/sqlite/SQLiteDatabase query (ZLjava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor; SQLiteDatabase.java 1032
+0x44d71918 android/database/sqlite/SQLiteDatabase queryWithFactory (Landroid/database/sqlite/SQLiteDatabase$CursorFactory;ZLjava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor; SQLiteDatabase.java 1156
+0x44d719f8 android/database/sqlite/SQLiteDatabase rawQueryWithFactory (Landroid/database/sqlite/SQLiteDatabase$CursorFactory;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor; SQLiteDatabase.java 1310
+0x44d70c28 android/database/sqlite/SQLiteDatabase findEditTable (Ljava/lang/String;)Ljava/lang/String; SQLiteDatabase.java -1
+0x44d70cd0 android/database/sqlite/SQLiteDatabase isMainThread ()Z SQLiteDatabase.java 390
+0x44ca03b0 android/graphics/Rect contains (II)Z Rect.java 323
+0x44ca0420 android/graphics/Rect contains (Landroid/graphics/Rect;)Z Rect.java 357
+0x44ca0490 android/graphics/Rect equals (Ljava/lang/Object;)Z Rect.java -1
+0x44ca05a8 android/graphics/Rect height ()I Rect.java 195
+0x44ca0618 android/graphics/Rect intersect (IIII)Z Rect.java 381
+0x44ca06c0 android/graphics/Rect isEmpty ()Z Rect.java 179
+0x44ca06f8 android/graphics/Rect offset (II)V Rect.java 275
+0x44ca0810 android/graphics/Rect set (IIII)V Rect.java 248
+0x44ca0848 android/graphics/Rect set (Landroid/graphics/Rect;)V Rect.java 261
+0x44ca0880 android/graphics/Rect setEmpty ()V Rect.java 234
+0x44ca0a08 android/graphics/Rect union (IIII)V Rect.java 472
+0x44ca0a78 android/graphics/Rect width ()I Rect.java 187
+0x44ca0ab0 android/graphics/Rect writeToParcel (Landroid/os/Parcel;I)V Rect.java 551
+0x44ca0220 android/graphics/Rect ()V Rect.java 45
+0x44d7e200 android/graphics/drawable/LayerDrawable$LayerState (Landroid/graphics/drawable/LayerDrawable$LayerState;Landroid/graphics/drawable/LayerDrawable;Landroid/content/res/Resources;)V LayerDrawable.java -1
+0x44e461b0 android/widget/AbsListView$WindowRunnnable rememberWindowAttachCount ()V AbsListView.java 2724
+0x44e461e8 android/widget/AbsListView$WindowRunnnable sameWindow ()Z AbsListView.java 2728
+0x44e46138 android/widget/AbsListView$WindowRunnnable (Landroid/widget/AbsListView;)V AbsListView.java 2720
+0x44e46170 android/widget/AbsListView$WindowRunnnable (Landroid/widget/AbsListView;Landroid/widget/AbsListView$1;)V AbsListView.java 2720
+0x44dd3a50 android/os/StrictMode$ViolationInfo hashCode ()I StrictMode.java 2071
+0x44dd39d8 android/os/StrictMode$ViolationInfo (Ljava/lang/Throwable;I)V StrictMode.java 2038
+0x44df47e8 android/view/Choreographer$FrameDisplayEventReceiver onVsync (JII)V Choreographer.java -1
+0x44df4820 android/view/Choreographer$FrameDisplayEventReceiver run ()V Choreographer.java 734
+0x44df44d8 android/view/Choreographer$CallbackQueue addCallbackLocked (JLjava/lang/Object;Ljava/lang/Object;)V Choreographer.java 782
+0x44df4510 android/view/Choreographer$CallbackQueue extractDueCallbacksLocked (J)Landroid/view/Choreographer$CallbackRecord; Choreographer.java -1
+0x44d6efb0 android/database/sqlite/SQLiteConnection$PreparedStatement ()V SQLiteConnection.java 1212
+0x44d6efe8 android/database/sqlite/SQLiteConnection$PreparedStatement (Landroid/database/sqlite/SQLiteConnection$1;)V SQLiteConnection.java 1212
+0x44e111c0 android/view/ViewRootImpl$WindowInputEventReceiver onInputEvent (Landroid/view/InputEvent;)V ViewRootImpl.java 4363
+0x44da0808 android/media/IAudioService$Stub$Proxy playSoundEffect (I)V IAudioService.java 1202
+0x44e00e88 android/view/InputEventConsistencyVerifier onTouchEvent (Landroid/view/MotionEvent;I)V InputEventConsistencyVerifier.java -1
+0x44e00ef8 android/view/InputEventConsistencyVerifier onUnhandledEvent (Landroid/view/InputEvent;I)V InputEventConsistencyVerifier.java -1
+0x44e00c18 android/view/InputEventConsistencyVerifier ensureHistorySizeIsZeroForThisAction (Landroid/view/MotionEvent;)V InputEventConsistencyVerifier.java 567
+0x44e00c50 android/view/InputEventConsistencyVerifier ensureMetaStateIsNormalized (I)V InputEventConsistencyVerifier.java 551
+0x44e00c88 android/view/InputEventConsistencyVerifier ensurePointerCountIsOneForThisAction (Landroid/view/MotionEvent;)V InputEventConsistencyVerifier.java 559
+0x44e00cf8 android/view/InputEventConsistencyVerifier finishEvent ()V InputEventConsistencyVerifier.java -1
+0x44e00da0 android/view/InputEventConsistencyVerifier startEvent (Landroid/view/InputEvent;ILjava/lang/String;)Z InputEventConsistencyVerifier.java -1
+0x44c4f5c8 java/lang/Thread currentThread ()Ljava/lang/Thread; Thread.java 476
+0x44c4f788 java/lang/Thread sleep (J)V Thread.java 1013
+0x44c4f7c0 java/lang/Thread sleep (JI)V Thread.java 1031
+0x44c803b0 java/util/LinkedHashMap$LinkedEntry (Ljava/lang/Object;Ljava/lang/Object;ILjava/util/HashMap$HashMapEntry;Ljava/util/LinkedHashMap$LinkedEntry;Ljava/util/LinkedHashMap$LinkedEntry;)V LinkedHashMap.java 156
+0x44cd94e0 android/os/MessageQueue enqueueMessage (Landroid/os/Message;J)Z MessageQueue.java -1
+0x44cd9518 android/os/MessageQueue enqueueSyncBarrier (J)I MessageQueue.java 230
+0x44cd95f8 android/os/MessageQueue next ()Landroid/os/Message; MessageQueue.java 118
+0x44cd96d8 android/os/MessageQueue removeMessages (Landroid/os/Handler;ILjava/lang/Object;)V MessageQueue.java 368
+0x44cd9710 android/os/MessageQueue removeMessages (Landroid/os/Handler;Ljava/lang/Runnable;Ljava/lang/Object;)V MessageQueue.java 402
+0x44cd9748 android/os/MessageQueue removeSyncBarrier (I)V MessageQueue.java 258
+0x44cd9430 android/os/MessageQueue nativePollOnce (II)V MessageQueue.java -2
+0x44cd9468 android/os/MessageQueue nativeWake (I)V MessageQueue.java -2
+0x44d64170 android/database/DataSetObserver ()V DataSetObserver.java 24
+0x44ce8160 android/app/ActivityThread getIntentBeingBroadcast ()Landroid/content/Intent; ActivityThread.java 2332
+0x44c6c530 java/lang/System arraycopy (Ljava/lang/Object;ILjava/lang/Object;II)V System.java -2
+0x44c6c5d8 java/lang/System currentTimeMillis ()J System.java -2
+0x44c6c840 java/lang/System identityHashCode (Ljava/lang/Object;)I System.java -2
+0x44c6cb50 java/lang/System nanoTime ()J System.java -2
+0x44e066d0 android/view/View$MeasureSpec getMode (I)I View.java 17287
+0x44e06708 android/view/View$MeasureSpec getSize (I)I View.java 17297
+0x44e06740 android/view/View$MeasureSpec makeMeasureSpec (II)I View.java 17275
+0x44e103a0 android/view/ViewRootImpl$InvalidateOnAnimationRunnable removeView (Landroid/view/View;)V ViewRootImpl.java 4412
+0x44cfd678 java/util/HashMap$KeyIterator next ()Ljava/lang/Object; HashMap.java 819
+0x44cfd600 java/util/HashMap$KeyIterator (Ljava/util/HashMap;)V HashMap.java 817
+0x44cfd638 java/util/HashMap$KeyIterator (Ljava/util/HashMap;Ljava/util/HashMap$1;)V HashMap.java 817
+0x44e175d8 android/view/accessibility/AccessibilityManager isEnabled ()Z AccessibilityManager.java 213
+0x44e17368 android/view/accessibility/AccessibilityManager getInstance (Landroid/content/Context;)Landroid/view/accessibility/AccessibilityManager; AccessibilityManager.java 165
+0x44cd51d0 android/database/CursorWindow finalize ()V CursorWindow.java 143
+0x44cd5390 android/database/CursorWindow getNumRows ()I CursorWindow.java 221
+0x44cd55c0 android/database/CursorWindow onAllReferencesReleased ()V CursorWindow.java 713
+0x44cd5748 android/database/CursorWindow setStartPosition (I)V CursorWindow.java 212
+0x44cd4ac8 android/database/CursorWindow (Ljava/lang/String;)V CursorWindow.java 99
+0x44cd4b38 android/database/CursorWindow dispose ()V CursorWindow.java 153
+0x44cd4c18 android/database/CursorWindow nativeCreate (Ljava/lang/String;I)I CursorWindow.java -2
+0x44cd4c88 android/database/CursorWindow nativeDispose (I)V CursorWindow.java -2
+0x44cd4dd8 android/database/CursorWindow nativeGetNumRows (I)I CursorWindow.java -2
+0x44cd5078 android/database/CursorWindow recordClosingOfWindow (I)V CursorWindow.java 728
+0x44cd50b0 android/database/CursorWindow recordNewWindow (II)V CursorWindow.java 719
+0x44ca5dd8 android/graphics/Paint getStrokeWidth ()F Paint.java -2
+0x44ca5fd0 android/graphics/Paint getTextRunAdvances (Ljava/lang/CharSequence;IIIII[FI)F Paint.java 1782
+0x44ca6008 android/graphics/Paint getTextRunAdvances (Ljava/lang/CharSequence;IIIII[FII)F Paint.java 1797
+0x44ca6078 android/graphics/Paint getTextRunAdvances (Ljava/lang/String;IIIII[FII)F Paint.java 1929
+0x44ca60b0 android/graphics/Paint getTextRunAdvances ([CIIIII[FI)F Paint.java 1720
+0x44ca60e8 android/graphics/Paint getTextRunAdvances ([CIIIII[FII)F Paint.java 1735
+0x44ca6698 android/graphics/Paint set (Landroid/graphics/Paint;)V Paint.java 408
+0x44ca67b0 android/graphics/Paint setColor (I)V Paint.java -2
+0x44ca6bd8 android/graphics/Paint setStyle (Landroid/graphics/Paint$Style;)V Paint.java 680
+0x44ca6d98 android/graphics/Paint setUnderlineText (Z)V Paint.java -2
+0x44ca5270 android/graphics/Paint native_getTextRunAdvances (ILjava/lang/String;IIIII[FII)F Paint.java -2
+0x44ca52a8 android/graphics/Paint native_getTextRunAdvances (I[CIIIII[FII)F Paint.java -2
+0x44ca5510 android/graphics/Paint native_set (II)V Paint.java -2
+0x44ca56d0 android/graphics/Paint native_setStyle (II)V Paint.java -2
+0x44ca57e8 android/graphics/Paint setClassVariablesFrom (Landroid/graphics/Paint;)V Paint.java 420
+0x44c7af08 java/util/Collections$EmptyList size ()I Collections.java 98
+0x44ed6618 java/util/ArrayDeque add (Ljava/lang/Object;)Z ArrayDeque.java 384
+0x44ed6688 java/util/ArrayDeque addLast (Ljava/lang/Object;)V ArrayDeque.java 211
+0x44ed66c0 java/util/ArrayDeque clear ()V ArrayDeque.java 705
+0x44ed6ab0 java/util/ArrayDeque pollLast ()Ljava/lang/Object; ArrayDeque.java -1
+0x44d74148 android/database/sqlite/SQLiteStatementInfo ()V SQLiteStatementInfo.java 24
+0x44c51d78 java/lang/ClassNotFoundException (Ljava/lang/String;Ljava/lang/Throwable;)V ClassNotFoundException.java 59
+0x44c5ad50 java/lang/ref/ReferenceQueue enqueue (Ljava/lang/ref/Reference;)V ReferenceQueue.java 136
+0x44c5ad88 java/lang/ref/ReferenceQueue poll ()Ljava/lang/ref/Reference; ReferenceQueue.java -1
+0x44c5adc0 java/lang/ref/ReferenceQueue remove ()Ljava/lang/ref/Reference; ReferenceQueue.java 73
+0x44c5adf8 java/lang/ref/ReferenceQueue remove (J)Ljava/lang/ref/Reference; ReferenceQueue.java 91
+0x44c5ad10 java/lang/ref/ReferenceQueue add (Ljava/lang/ref/Reference;)V ReferenceQueue.java 149
+*end
+SLOW fô ÜÝ é©ÅD) ¥ 9‹ÍD
+ ¹ ¹L×Dà ó ¡M×Dü , é”ÅD7 i è”ÅD0 0 XÆD“ T0 ¨ÆDÑ 4 @ÃÅD– `4 AÃÅDµ ^5 ©ÆDÐ š5 YÆD
Ù5 ˜ôÇDM
6 X
+ÆD€
D6 Y
+ÆD´
‚6 è ÆD
Ö6 é ÆDF 7 ™ôÇD| @7 ГÅD¿ 8 Ñ“ÅD‡ P8 M×D£ ^9 L×D ; ¨„ÍDø Q> ¦ÅDÀ > ¡¦ÅD) ê> ©„ÍDP ? ГÅD£ d? Ñ“ÅDË ‡? L×DP ³@ ¡M×Dq 1A é”ÅD— VA 0àÈD × 1àÈDn –‘ ·ÅD¬ Ï‘ ·ÅDû q’ PŽÉDµ Ú’ QŽÉDõ “ 0”ÍD B“ 1”ÍD÷ å¸ 0àÈD? ¹ 1àÈDÓ ²¹ €ÝD ñ¹ ÝDG -º ù•ÍDƒ fº _ÒDÀ £º Ø^ÒDõ Ùº ˜>åD. » @cÒDd G» —ÍD ƒ» —ÍDÚ ¾» AcÒD ä» H+åD/ ¼ H2åDV 2¼ 7åD| X¼ 8§ØD¤ ¼ ø¨ØDÞ ¼¼ ù¨ØD â¼ ˆUËD- ú¼ ‰UËD‡ f½ 9§ØD¯ ‹½ ‘7åDÓ °½ 0VËDú ×½ 1VËD ü½ @žØDF #¾ ÈrØDl I¾ rØD‘ n¾ ŸØD¸ ”¾ ‘ŸØDÜ ¸¾ ‘rØD
+ â¾ ÉrØD*
+ ¿ ›ÞDQ
+ .¿ °ÞD~
+ \¿ ‘°ÞD¹
+ –¿ ›ÞDÞ
+ »¿ AžØD ß¿ žØD) À ÈrØDO ,À rØDt PÀ ŸØD™ uÀ ‘ŸØD½ šÀ ‘rØDä ÁÀ ÉrØD 8Á àšÞD¨ †Á °ÞDÔ ²Á ‘°ÞDþ ÛÁ ášÞD#
 žØDH
%Â I2åDm
JÂ I+åD’
n €+åD¸
•Â +åDÝ
ºÂ ˜ØD à !˜ØD( à €+åDN -à +åD~ `à @¥ØDª ‡Ã xØDÑ Ã yØDö Òà P“ØD øà ø\ÞDD !Ä `”ÞDk HÄ a”ÞD” }Ä ù\ÞDí ÉÄ ‘ØDV 5Å !‘ØD~ [Å Q“ØD£ Å ¸£ØDÉ ¥Å X>ËDñ ÎÅ Y>ËD Æ P“ØDL )Æ ø\ÞDs PÆ `”ÞD˜ uÆ a”ÞD½ šÆ ù\ÞDâ ¾Æ ‘ØD äÆ !‘ØD- Ç Q“ØDR .Ç “ØDw TÇ ø\ÞD zÇ `”ÞD ŸÇ a”ÞDç ÄÇ ù\ÞD èÇ ØD1 ^È ØD³ ›È “ØDä HÚ BÞD % öÚ ø\ÞDJ&