Browse Source

Rewrote nav drawer to Kotlin + UI updates

Added launch screen + new Header

Removed MaterialDrawer library. Implemented Nav Draw from Support Library
NoodleMage 10 năm trước cách đây
mục cha
commit
98d420d5aa
32 tập tin đã thay đổi với 1062 bổ sung276 xóa
  1. 0 4
      app/build.gradle
  2. 2 1
      app/src/main/AndroidManifest.xml
  3. 1 0
      app/src/main/java/eu/kanade/tachiyomi/ui/catalogue/CatalogueFragment.kt
  4. 1 1
      app/src/main/java/eu/kanade/tachiyomi/ui/catalogue/CatalogueGridHolder.kt
  5. 19 0
      app/src/main/java/eu/kanade/tachiyomi/ui/download/DownloadFragment.kt
  6. 12 1
      app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryFragment.kt
  7. 0 220
      app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.java
  8. 101 0
      app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt
  9. 12 0
      app/src/main/java/eu/kanade/tachiyomi/ui/recent/RecentChaptersFragment.kt
  10. BIN
      app/src/main/res/drawable-hdpi/application_logo_144dp.png
  11. BIN
      app/src/main/res/drawable-mdpi/application_logo_144dp.png
  12. BIN
      app/src/main/res/drawable-xhdpi/application_logo_144dp.png
  13. BIN
      app/src/main/res/drawable-xxhdpi/application_logo_144dp.png
  14. BIN
      app/src/main/res/drawable-xxxhdpi/application_logo_144dp.png
  15. 10 0
      app/src/main/res/drawable/branded_logo.xml
  16. BIN
      app/src/main/res/drawable/header.png
  17. 10 0
      app/src/main/res/drawable/ic_book_grey_128dp.xml
  18. 10 0
      app/src/main/res/drawable/ic_file_download_grey_128dp.xml
  19. 10 0
      app/src/main/res/drawable/ic_history_grey_128dp.xml
  20. 9 0
      app/src/main/res/drawable/ic_menu_white_24dp.xml
  21. BIN
      app/src/main/res/drawable/test.png
  22. 51 17
      app/src/main/res/layout/activity_main.xml
  23. 11 11
      app/src/main/res/layout/item_catalogue_grid.xml
  24. 50 0
      app/src/main/res/layout/navigation_header.xml
  25. 30 0
      app/src/main/res/menu/menu_navigation.xml
  26. 5 0
      app/src/main/res/values-v21/dimens.xml
  27. 7 0
      app/src/main/res/values-v21/styles.xml
  28. 686 3
      app/src/main/res/values/colors.xml
  29. 13 9
      app/src/main/res/values/dimens.xml
  30. 0 8
      app/src/main/res/values/ids.xml
  31. 5 0
      app/src/main/res/values/strings.xml
  32. 7 1
      app/src/main/res/values/styles.xml

+ 0 - 4
app/build.gradle

@@ -154,10 +154,6 @@ dependencies {
     apt "com.pushtorefresh.storio:sqlite-annotations-processor:$STORIO_VERSION"
     provided 'org.glassfish:javax.annotation:10.0-b28'
 
-    compile('com.mikepenz:materialdrawer:4.6.4@aar') {
-        transitive = true
-    }
-
     compile('com.github.afollestad.material-dialogs:core:0.8.5.6@aar') {
         transitive = true
     }

+ 2 - 1
app/src/main/AndroidManifest.xml

@@ -17,7 +17,8 @@
         android:hardwareAccelerated="true"
         android:theme="@style/AppTheme" >
         <activity
-            android:name=".ui.main.MainActivity">
+            android:name=".ui.main.MainActivity"
+            android:theme="@style/AppTheme.BrandedLaunch">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
 

+ 1 - 0
app/src/main/java/eu/kanade/tachiyomi/ui/catalogue/CatalogueFragment.kt

@@ -24,6 +24,7 @@ import eu.kanade.tachiyomi.util.toast
 import eu.kanade.tachiyomi.widget.EndlessGridScrollListener
 import eu.kanade.tachiyomi.widget.EndlessListScrollListener
 import kotlinx.android.synthetic.main.fragment_catalogue.*
+import kotlinx.android.synthetic.main.toolbar.*
 import nucleus.factory.RequiresPresenter
 import rx.Subscription
 import rx.android.schedulers.AndroidSchedulers

+ 1 - 1
app/src/main/java/eu/kanade/tachiyomi/ui/catalogue/CatalogueGridHolder.kt

@@ -28,7 +28,7 @@ class CatalogueGridHolder(private val view: View, adapter: CatalogueAdapter, lis
         view.title.text = manga.title
 
         // Set visibility of in library icon.
-        view.favorite_sticker.visibility = if (manga.favorite) View.VISIBLE else View.GONE
+//        view.favorite_sticker.visibility = if (manga.favorite) View.VISIBLE else View.GONE
 
         // Set alpha of thumbnail.
         view.thumbnail.alpha = if (manga.favorite) 0.3f else 1.0f

+ 19 - 0
app/src/main/java/eu/kanade/tachiyomi/ui/download/DownloadFragment.kt

@@ -7,6 +7,9 @@ import eu.kanade.tachiyomi.R
 import eu.kanade.tachiyomi.data.download.DownloadService
 import eu.kanade.tachiyomi.data.download.model.Download
 import eu.kanade.tachiyomi.ui.base.fragment.BaseRxFragment
+import eu.kanade.tachiyomi.ui.main.MainActivity
+import eu.kanade.tachiyomi.util.setInformationDrawable
+import kotlinx.android.synthetic.main.activity_main.*
 import kotlinx.android.synthetic.main.fragment_download_queue.*
 import nucleus.factory.RequiresPresenter
 import rx.Subscription
@@ -73,6 +76,9 @@ class DownloadFragment : BaseRxFragment<DownloadPresenter>() {
     override fun onViewCreated(view: View, savedState: Bundle?) {
         setToolbarTitle(R.string.label_download_queue)
 
+        // Check if download queue is empty and update information accordingly.
+        setInformationView()
+
         // Initialize adapter.
         adapter = DownloadAdapter(activity)
         recycler.adapter = adapter
@@ -138,6 +144,9 @@ class DownloadFragment : BaseRxFragment<DownloadPresenter>() {
         startButton?.isVisible = !running && !presenter.downloadQueue.isEmpty()
         pauseButton?.isVisible = running
         clearButton?.isVisible = running
+
+        // Check if download queue is empty and update information accordingly.
+        setInformationView()
     }
 
     /**
@@ -177,4 +186,14 @@ class DownloadFragment : BaseRxFragment<DownloadPresenter>() {
         return recycler.findViewHolderForItemId(download.chapter.id) as? DownloadHolder
     }
 
+    /**
+     * Set information view when queue is empty
+     */
+    private fun setInformationView() {
+        if (presenter.downloadQueue.isEmpty()) {
+            ( activity as MainActivity).image_view.setInformationDrawable(R.drawable.ic_file_download_grey_128dp)
+            ( activity as MainActivity).text_label.text = getString(R.string.information_no_downloads)
+        }
+    }
+
 }

+ 12 - 1
app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryFragment.kt

@@ -20,7 +20,9 @@ import eu.kanade.tachiyomi.ui.base.fragment.BaseRxFragment
 import eu.kanade.tachiyomi.ui.category.CategoryActivity
 import eu.kanade.tachiyomi.ui.main.MainActivity
 import eu.kanade.tachiyomi.util.inflate
+import eu.kanade.tachiyomi.util.setInformationDrawable
 import eu.kanade.tachiyomi.util.toast
+import kotlinx.android.synthetic.main.activity_main.*
 import kotlinx.android.synthetic.main.fragment_library.*
 import nucleus.factory.RequiresPresenter
 import org.greenrobot.eventbus.EventBus
@@ -124,7 +126,7 @@ class LibraryFragment : BaseRxFragment<LibraryPresenter>(), ActionMode.Callback
     override fun onViewCreated(view: View, savedState: Bundle?) {
         setToolbarTitle(getString(R.string.label_library))
 
-        appBar = (activity as MainActivity).appBar
+        appBar = (activity as MainActivity).appbar
         tabs = appBar.inflate(R.layout.library_tab_layout) as TabLayout
 
         // Workaround to prevent: Tab belongs to a different TabLayout.
@@ -257,6 +259,15 @@ class LibraryFragment : BaseRxFragment<LibraryPresenter>(), ActionMode.Callback
      * @param mangaMap a map containing the manga for each category.
      */
     fun onNextLibraryUpdate(categories: List<Category>, mangaMap: Map<Int, List<Manga>>) {
+        // Check if library is empty and update information accordingly.
+        if (mangaMap.isEmpty()) {
+            (activity as MainActivity).image_view.setInformationDrawable(R.drawable.ic_book_grey_128dp)
+            (activity as MainActivity).text_label.text = getString(R.string.information_empty_library)
+        } else {
+            ( activity as MainActivity).image_view.setInformationDrawable(null)
+            ( activity as MainActivity).text_label.text = ""
+        }
+
         // Get the current active category.
         val activeCat = if (adapter.categories != null) view_pager.currentItem else activeCategory
 

+ 0 - 220
app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.java

@@ -1,220 +0,0 @@
-package eu.kanade.tachiyomi.ui.main;
-
-import android.content.Intent;
-import android.os.Bundle;
-import android.support.design.widget.AppBarLayout;
-import android.support.v4.app.Fragment;
-import android.support.v4.content.ContextCompat;
-import android.support.v4.widget.DrawerLayout;
-import android.support.v7.widget.Toolbar;
-import android.widget.FrameLayout;
-
-import com.mikepenz.materialdrawer.Drawer;
-import com.mikepenz.materialdrawer.DrawerBuilder;
-import com.mikepenz.materialdrawer.holder.ImageHolder;
-import com.mikepenz.materialdrawer.model.DividerDrawerItem;
-import com.mikepenz.materialdrawer.model.PrimaryDrawerItem;
-
-import butterknife.Bind;
-import butterknife.ButterKnife;
-import eu.kanade.tachiyomi.R;
-import eu.kanade.tachiyomi.ui.base.activity.BaseActivity;
-import eu.kanade.tachiyomi.ui.catalogue.CatalogueFragment;
-import eu.kanade.tachiyomi.ui.download.DownloadFragment;
-import eu.kanade.tachiyomi.ui.library.LibraryFragment;
-import eu.kanade.tachiyomi.ui.recent.RecentChaptersFragment;
-import eu.kanade.tachiyomi.ui.setting.SettingsActivity;
-import icepick.State;
-import nucleus.view.ViewWithPresenter;
-
-public class MainActivity extends BaseActivity {
-
-    @Bind(R.id.appbar) AppBarLayout appBar;
-    @Bind(R.id.toolbar) Toolbar toolbar;
-    @Bind(R.id.drawer_container) FrameLayout container;
-    @State
-    int selectedItem;
-    private Drawer drawer;
-    private FragmentStack fragmentStack;
-    private int prevIdentifier = -1;
-
-    @Override
-    protected void onCreate(Bundle savedState) {
-        super.onCreate(savedState);
-
-        // Do not let the launcher create a new activity
-        if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) {
-            finish();
-            return;
-        }
-
-        setContentView(R.layout.activity_main);
-        ButterKnife.bind(this);
-
-        setupToolbar(toolbar);
-
-        fragmentStack = new FragmentStack(this, getSupportFragmentManager(), R.id.content_layout,
-                fragment -> {
-                    if (fragment instanceof ViewWithPresenter)
-                        ((ViewWithPresenter) fragment).getPresenter().destroy();
-                });
-
-        drawer = new DrawerBuilder()
-                .withActivity(this)
-                .withRootView(container)
-                .withToolbar(toolbar)
-                .withActionBarDrawerToggleAnimated(true)
-                .withOnDrawerNavigationListener(view -> {
-                    if (fragmentStack.size() > 1) {
-                        onBackPressed();
-                        return true;
-                    }
-                    return false;
-                })
-                .addDrawerItems(
-                        new PrimaryDrawerItem()
-                                .withName(R.string.label_library)
-                                .withIdentifier(R.id.nav_drawer_library)
-                                .withIcon(ContextCompat.getDrawable(this, R.drawable.ic_book_grey_24dp)),
-                        new PrimaryDrawerItem()
-                                .withName(R.string.label_recent_updates)
-                                .withIdentifier(R.id.nav_drawer_recent_updates)
-                                .withIcon(ContextCompat.getDrawable(this, R.drawable.ic_history_grey_24dp)),
-                        new PrimaryDrawerItem()
-                                .withName(R.string.label_catalogues)
-                                .withIdentifier(R.id.nav_drawer_catalogues)
-                                .withIcon(ContextCompat.getDrawable(this, R.drawable.ic_explore_grey_24dp)),
-                        new PrimaryDrawerItem()
-                                .withName(R.string.label_download_queue)
-                                .withIdentifier(R.id.nav_drawer_downloads)
-                                .withIcon(ContextCompat.getDrawable(this, R.drawable.ic_file_download_grey_24dp)),
-                        new DividerDrawerItem(),
-                        new PrimaryDrawerItem()
-                                .withName(R.string.label_settings)
-                                .withIdentifier(R.id.nav_drawer_settings)
-                                .withSelectable(false)
-                                .withIcon(ContextCompat.getDrawable(this, R.drawable.ic_settings_grey_24dp))
-                )
-                .withSavedInstance(savedState)
-                .withOnDrawerItemClickListener(
-                        (view, position, drawerItem) -> {
-                            if (drawerItem != null) {
-                                int identifier = drawerItem.getIdentifier();
-                                if (prevIdentifier != -1)
-                                    setIconBackToGrey(prevIdentifier, identifier);
-                                prevIdentifier = identifier;
-
-                                switch (identifier) {
-                                    case R.id.nav_drawer_library:
-                                        drawer.updateIcon(identifier, new ImageHolder(ContextCompat.getDrawable(this, R.drawable.ic_book_blue_24dp)));
-                                        setFragment(LibraryFragment.newInstance());
-                                        break;
-                                    case R.id.nav_drawer_recent_updates:
-                                        drawer.updateIcon(identifier, new ImageHolder(ContextCompat.getDrawable(this, R.drawable.ic_history_blue_24dp)));
-                                        setFragment(RecentChaptersFragment.newInstance());
-                                        break;
-                                    case R.id.nav_drawer_catalogues:
-                                        drawer.updateIcon(identifier, new ImageHolder(ContextCompat.getDrawable(this, R.drawable.ic_explore_blue_24dp)));
-                                        setFragment(CatalogueFragment.newInstance());
-                                        break;
-                                    case R.id.nav_drawer_downloads:
-                                        drawer.updateIcon(identifier, new ImageHolder(ContextCompat.getDrawable(this, R.drawable.ic_file_download_blue_24dp)));
-                                        setFragment(DownloadFragment.newInstance());
-                                        break;
-                                    case R.id.nav_drawer_settings:
-                                        startActivity(new Intent(this, SettingsActivity.class));
-                                        break;
-                                }
-                            }
-                            return false;
-                        }
-                )
-                .build();
-
-        if (savedState != null) {
-            // Recover icon state after rotation
-            if (fragmentStack.size() > 1) {
-                showBackArrow();
-            }
-
-            // Set saved selection
-            drawer.setSelection(selectedItem, false);
-        } else {
-            // Set default selection
-            drawer.setSelection(R.id.nav_drawer_library);
-        }
-    }
-
-    private void setIconBackToGrey(int prevIdentifier, int identifier) {
-        // Don't set to grey when settings
-        if (identifier == R.id.nav_drawer_settings)
-            return;
-
-        switch (prevIdentifier) {
-            case R.id.nav_drawer_library:
-                drawer.updateIcon(prevIdentifier, new ImageHolder(ContextCompat.getDrawable(this, R.drawable.ic_book_grey_24dp)));
-                break;
-            case R.id.nav_drawer_recent_updates:
-                drawer.updateIcon(prevIdentifier, new ImageHolder(ContextCompat.getDrawable(this, R.drawable.ic_history_grey_24dp)));
-                break;
-            case R.id.nav_drawer_catalogues:
-                drawer.updateIcon(prevIdentifier, new ImageHolder(ContextCompat.getDrawable(this, R.drawable.ic_explore_grey_24dp)));
-                break;
-            case R.id.nav_drawer_downloads:
-                drawer.updateIcon(prevIdentifier, new ImageHolder(ContextCompat.getDrawable(this, R.drawable.ic_file_download_grey_24dp)));
-                break;
-        }
-    }
-
-    @Override
-    protected void onSaveInstanceState(Bundle outState) {
-        selectedItem = drawer.getCurrentSelection();
-        super.onSaveInstanceState(outState);
-    }
-
-    public void setFragment(Fragment fragment) {
-        fragmentStack.replace(fragment);
-    }
-
-    public void pushFragment(Fragment fragment) {
-        fragmentStack.push(fragment);
-        if (fragmentStack.size() > 1) {
-            showBackArrow();
-        }
-    }
-
-    @Override
-    public void onBackPressed() {
-        if (!fragmentStack.pop()) {
-            super.onBackPressed();
-        } else if (fragmentStack.size() == 1) {
-            showHamburgerIcon();
-            drawer.getActionBarDrawerToggle().syncState();
-        }
-    }
-
-    private void showHamburgerIcon() {
-        if (getSupportActionBar() != null) {
-            getSupportActionBar().setDisplayHomeAsUpEnabled(false);
-            drawer.getActionBarDrawerToggle().setDrawerIndicatorEnabled(true);
-            drawer.getDrawerLayout().setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
-        }
-    }
-
-    private void showBackArrow() {
-        if (getSupportActionBar() != null) {
-            drawer.getActionBarDrawerToggle().setDrawerIndicatorEnabled(false);
-            getSupportActionBar().setDisplayHomeAsUpEnabled(true);
-            drawer.getDrawerLayout().setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
-        }
-    }
-
-    public Toolbar getToolbar() {
-        return toolbar;
-    }
-
-    public AppBarLayout getAppBar() {
-        return appBar;
-    }
-
-}

+ 101 - 0
app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt

@@ -0,0 +1,101 @@
+package eu.kanade.tachiyomi.ui.main
+
+import android.content.Intent
+import android.os.Bundle
+import android.support.v4.app.Fragment
+import android.support.v4.view.GravityCompat
+import android.view.MenuItem
+import eu.kanade.tachiyomi.R
+import eu.kanade.tachiyomi.ui.base.activity.BaseActivity
+import eu.kanade.tachiyomi.ui.catalogue.CatalogueFragment
+import eu.kanade.tachiyomi.ui.download.DownloadFragment
+import eu.kanade.tachiyomi.ui.library.LibraryFragment
+import eu.kanade.tachiyomi.ui.recent.RecentChaptersFragment
+import eu.kanade.tachiyomi.ui.setting.SettingsActivity
+import eu.kanade.tachiyomi.util.setInformationDrawable
+import kotlinx.android.synthetic.main.activity_main.*
+import kotlinx.android.synthetic.main.toolbar.*
+import nucleus.view.ViewWithPresenter
+
+class MainActivity : BaseActivity() {
+    lateinit var fragmentStack: FragmentStack
+
+
+    override fun onCreate(savedState: Bundle?) {
+        setTheme(R.style.AppTheme);
+        super.onCreate(savedState)
+
+        // Do not let the launcher create a new activity
+        if (intent.flags and Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT != 0) {
+            finish()
+            return
+        }
+
+        // Inflate activity_edit_categories.xml.
+        setContentView(R.layout.activity_main)
+
+        // Handle Toolbar
+        setupToolbar(toolbar)
+        supportActionBar?.setHomeAsUpIndicator(R.drawable.ic_menu_white_24dp)
+
+        fragmentStack = FragmentStack(this, supportFragmentManager, R.id.frame_container
+        ) { fragment ->
+            if (fragment is ViewWithPresenter<*>)
+                fragment.presenter.destroy()
+        }
+
+        // Set behavior of Navigation drawer
+        nav_view.setNavigationItemSelectedListener(
+                { menuItem ->
+                    // Make information view invisible
+                    image_view.setInformationDrawable(null)
+                    text_label.text = ""
+
+                    when (menuItem.itemId) {
+                        R.id.nav_drawer_library -> {
+                            setFragment(LibraryFragment.newInstance())
+                            menuItem.isChecked = true
+                            drawer.closeDrawer(GravityCompat.START)
+                        }
+                        R.id.nav_drawer_recent_updates -> {
+                            setFragment(RecentChaptersFragment.newInstance())
+                            menuItem.isChecked = true
+                            drawer.closeDrawer(GravityCompat.START)
+                        }
+                        R.id.nav_drawer_catalogues -> {
+                            setFragment(CatalogueFragment.newInstance())
+                            menuItem.isChecked = true
+                            drawer.closeDrawer(GravityCompat.START)
+                        }
+                        R.id.nav_drawer_downloads -> {
+                            setFragment(DownloadFragment.newInstance())
+                            menuItem.isChecked = true
+                            drawer.closeDrawer(GravityCompat.START)
+                        }
+                        R.id.nav_drawer_settings -> {
+                            menuItem.isChecked = true
+                            startActivity(Intent(this, SettingsActivity::class.java))
+                            drawer.closeDrawer(GravityCompat.START)
+                        }
+                    }
+                    true
+                })
+
+        setFragment(LibraryFragment.newInstance())
+    }
+
+    override fun onOptionsItemSelected(item: MenuItem): Boolean {
+        when (item.itemId) {
+            android.R.id.home -> {
+                drawer.openDrawer(GravityCompat.START)
+                return true
+            }
+        }
+        return super.onOptionsItemSelected(item)
+    }
+
+
+    fun setFragment(fragment: Fragment) {
+        fragmentStack.replace(fragment)
+    }
+}

+ 12 - 0
app/src/main/java/eu/kanade/tachiyomi/ui/recent/RecentChaptersFragment.kt

@@ -15,7 +15,10 @@ import eu.kanade.tachiyomi.data.download.model.Download
 import eu.kanade.tachiyomi.ui.base.adapter.FlexibleViewHolder
 import eu.kanade.tachiyomi.ui.base.decoration.DividerItemDecoration
 import eu.kanade.tachiyomi.ui.base.fragment.BaseRxFragment
+import eu.kanade.tachiyomi.ui.main.MainActivity
 import eu.kanade.tachiyomi.ui.reader.ReaderActivity
+import eu.kanade.tachiyomi.util.setInformationDrawable
+import kotlinx.android.synthetic.main.activity_main.*
 import kotlinx.android.synthetic.main.fragment_recent_chapters.*
 import nucleus.factory.RequiresPresenter
 import rx.Observable
@@ -75,6 +78,11 @@ class RecentChaptersFragment : BaseRxFragment<RecentChaptersPresenter>(), Flexib
 
         // Update toolbar text
         setToolbarTitle(R.string.label_recent_updates)
+
+        // Check if recent chapters is empty and update information accordingly.
+        (activity as MainActivity).image_view.setInformationDrawable(R.drawable.ic_history_grey_128dp)
+        (activity as MainActivity).text_label.text = getString(R.string.information_no_recent)
+        (activity as MainActivity).information_layout.bringToFront()
     }
 
     /**
@@ -121,6 +129,10 @@ class RecentChaptersFragment : BaseRxFragment<RecentChaptersPresenter>(), Flexib
      * @param chapters list of chapters
      */
     fun onNextMangaChapters(chapters: List<Any>) {
+        if (!chapters.isEmpty()) {
+            ( activity as MainActivity).image_view.setInformationDrawable(null)
+            ( activity as MainActivity).text_label.text = ""
+        }
         adapter.setItems(chapters)
     }
 

BIN
app/src/main/res/drawable-hdpi/application_logo_144dp.png


BIN
app/src/main/res/drawable-mdpi/application_logo_144dp.png


BIN
app/src/main/res/drawable-xhdpi/application_logo_144dp.png


BIN
app/src/main/res/drawable-xxhdpi/application_logo_144dp.png


BIN
app/src/main/res/drawable-xxxhdpi/application_logo_144dp.png


+ 10 - 0
app/src/main/res/drawable/branded_logo.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
+            android:opacity="opaque">
+    <item android:drawable="@color/background_material_light"/>
+    <item>
+        <bitmap
+            android:src="@drawable/application_logo_144dp"
+            android:gravity="center"/>
+    </item>
+</layer-list>

BIN
app/src/main/res/drawable/header.png


+ 10 - 0
app/src/main/res/drawable/ic_book_grey_128dp.xml

@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="128dp"
+        android:height="128dp"
+        android:alpha=".38"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:fillColor="#FF000000"
+        android:pathData="M18,2H6c-1.1,0 -2,0.9 -2,2v16c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2V4c0,-1.1 -0.9,-2 -2,-2zM6,4h5v8l-2.5,-1.5L6,12V4z"/>
+</vector>

+ 10 - 0
app/src/main/res/drawable/ic_file_download_grey_128dp.xml

@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="128dp"
+        android:height="128dp"
+        android:alpha=".38"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:fillColor="#FF000000"
+        android:pathData="M19,9h-4V3H9v6H5l7,7 7,-7zM5,18v2h14v-2H5z"/>
+</vector>

+ 10 - 0
app/src/main/res/drawable/ic_history_grey_128dp.xml

@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="128dp"
+        android:height="128dp"
+        android:alpha=".38"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:fillColor="#FF000000"
+        android:pathData="M13,3c-4.97,0 -9,4.03 -9,9L1,12l3.89,3.89 0.07,0.14L9,12L6,12c0,-3.87 3.13,-7 7,-7s7,3.13 7,7 -3.13,7 -7,7c-1.93,0 -3.68,-0.79 -4.94,-2.06l-1.42,1.42C8.27,19.99 10.51,21 13,21c4.97,0 9,-4.03 9,-9s-4.03,-9 -9,-9zM12,8v5l4.28,2.54 0.72,-1.21 -3.5,-2.08L13.5,8L12,8z"/>
+</vector>

+ 9 - 0
app/src/main/res/drawable/ic_menu_white_24dp.xml

@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:fillColor="#FFFFFFFF"
+        android:pathData="M3,18h18v-2L3,16v2zM3,13h18v-2L3,11v2zM3,6v2h18L21,6L3,6z"/>
+</vector>

BIN
app/src/main/res/drawable/test.png


+ 51 - 17
app/src/main/res/layout/activity_main.xml

@@ -1,32 +1,66 @@
-<android.support.design.widget.CoordinatorLayout
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.v4.widget.DrawerLayout
+    android:id="@+id/drawer"
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:gravity="center">
+    android:fitsSystemWindows="true">
 
-    <android.support.design.widget.AppBarLayout
-        android:id="@+id/appbar"
+    <RelativeLayout
+        android:id="@+id/main_content"
         android:layout_width="match_parent"
-        android:layout_height="wrap_content">
+        android:layout_height="match_parent">
 
-        <include layout="@layout/toolbar" />
+        <android.support.design.widget.AppBarLayout
+            android:id="@+id/appbar"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content">
 
-    </android.support.design.widget.AppBarLayout>
+            <include layout="@layout/toolbar"/>
+
+        </android.support.design.widget.AppBarLayout>
 
-    <!-- the layout which will contain (host) the drawerLayout -->
-    <FrameLayout
-        android:id="@+id/drawer_container"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        app:layout_behavior="@string/appbar_scrolling_view_behavior">
 
-        <!-- the layout which will be the content of the activity (which will be hosted inside the drawer (NOT the list of the drawer)) -->
         <FrameLayout
             android:id="@+id/frame_container"
             android:layout_width="match_parent"
-            android:layout_height="match_parent">
+            android:layout_height="match_parent"
+            android:layout_below="@id/appbar">
+
+            <RelativeLayout
+                android:id="@+id/information_layout"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center">
+
+                <ImageView
+                    android:id="@+id/image_view"
+                    android:layout_width="128dp"
+                    android:layout_height="128dp"
+                    android:layout_centerHorizontal="true"/>
+
+                <TextView
+                    android:id="@+id/text_label"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_below="@+id/image_view"
+                    android:layout_centerHorizontal="true"
+                    android:alpha=".87"
+                    android:textSize="24sp"/>
+
+            </RelativeLayout>
 
         </FrameLayout>
-    </FrameLayout>
-</android.support.design.widget.CoordinatorLayout>
+    </RelativeLayout>
+
+
+    <android.support.design.widget.NavigationView
+        android:id="@+id/nav_view"
+        android:layout_width="wrap_content"
+        android:layout_height="match_parent"
+        android:layout_gravity="start"
+        android:fitsSystemWindows="true"
+        app:headerLayout="@layout/navigation_header"
+        app:menu="@menu/menu_navigation"/>
+</android.support.v4.widget.DrawerLayout>

+ 11 - 11
app/src/main/res/layout/item_catalogue_grid.xml

@@ -49,17 +49,17 @@
             android:visibility="gone"/>
 
 
-        <com.mikepenz.iconics.view.IconicsImageView
-            android:id="@+id/favorite_sticker"
-            android:layout_width="24dp"
-            android:layout_height="24dp"
-            android:layout_alignEnd="@+id/image_container"
-            android:layout_alignRight="@+id/image_container"
-            android:layout_alignTop="@+id/image_container"
-            android:layout_marginEnd="5dp"
-            android:layout_marginRight="5dp"
-            android:layout_marginTop="5dp"
-            android:visibility="invisible"/>
+        <!--<com.mikepenz.iconics.view.IconicsImageView-->
+            <!--android:id="@+id/favorite_sticker"-->
+            <!--android:layout_width="24dp"-->
+            <!--android:layout_height="24dp"-->
+            <!--android:layout_alignEnd="@+id/image_container"-->
+            <!--android:layout_alignRight="@+id/image_container"-->
+            <!--android:layout_alignTop="@+id/image_container"-->
+            <!--android:layout_marginEnd="5dp"-->
+            <!--android:layout_marginRight="5dp"-->
+            <!--android:layout_marginTop="5dp"-->
+            <!--android:visibility="invisible"/>-->
 
         <eu.kanade.tachiyomi.widget.PTSansTextView
             android:id="@+id/title"

+ 50 - 0
app/src/main/res/layout/navigation_header.xml

@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+             android:layout_width="match_parent"
+             android:layout_height="192dp"
+             android:gravity="bottom"
+             android:theme="@style/ThemeOverlay.AppCompat.Dark">
+
+    <ImageView
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:scaleType="centerCrop"
+        android:background="@drawable/header" />
+
+    <ImageView
+        android:layout_marginLeft="16dp"
+        android:layout_marginTop="@dimen/navigation_drawer_header_margin"
+        android:layout_width="64dp"
+        android:layout_height="64dp"
+        android:scaleType="centerCrop"
+        android:src="@drawable/test" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="52dp"
+        android:layout_gravity="left|bottom"
+        android:gravity="center"
+        android:orientation="vertical"
+        android:paddingBottom="8dp"
+        android:paddingLeft="16dp"
+        android:paddingRight="16dp">
+
+        <TextView
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:gravity="center_vertical"
+            android:text="Desarrollador Android"
+            android:textAppearance="@style/TextAppearance.AppCompat.Body2" />
+
+        <TextView
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:gravity="center_vertical"
+            android:text="[email protected]"
+            android:textAppearance="@style/TextAppearance.AppCompat.Body1" />
+
+    </LinearLayout>
+
+</FrameLayout>

+ 30 - 0
app/src/main/res/menu/menu_navigation.xml

@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<menu xmlns:android="http://schemas.android.com/apk/res/android">
+    <group android:id="@+id/group_feature"
+           android:checkableBehavior="single">
+        <item
+            android:checked="true"
+            android:id="@+id/nav_drawer_library"
+            android:icon="@drawable/ic_book_grey_24dp"
+            android:title="@string/label_library" />
+        <item
+            android:id="@+id/nav_drawer_recent_updates"
+            android:icon="@drawable/ic_history_grey_24dp"
+            android:title="@string/label_recent_updates" />
+        <item
+            android:id="@+id/nav_drawer_catalogues"
+            android:icon="@drawable/ic_explore_grey_24dp"
+            android:title="@string/label_catalogues" />
+        <item
+            android:id="@+id/nav_drawer_downloads"
+            android:icon="@drawable/ic_file_download_grey_24dp"
+            android:title="@string/label_download_queue" />
+    </group>
+    <group android:id="@+id/group_settings"
+           android:checkableBehavior="single">
+    <item
+        android:id="@+id/nav_drawer_settings"
+        android:icon="@drawable/ic_settings_grey_24dp"
+        android:title="@string/label_settings" />
+    </group>
+</menu>

+ 5 - 0
app/src/main/res/values-v21/dimens.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!--Nav header-->
+    <dimen name="navigation_drawer_header_margin">41dp</dimen>
+</resources>

+ 7 - 0
app/src/main/res/values-v21/styles.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <style name="AppTheme" parent="AppTheme.Base">
+        <item name="android:windowDrawsSystemBarBackgrounds">true</item>
+        <item name="android:statusBarColor">@android:color/transparent</item>
+    </style>
+</resources>

+ 686 - 3
app/src/main/res/values/colors.xml

@@ -16,9 +16,9 @@
     <color name="divider">@color/md_light_dividers</color>
 
     <color name="white">@color/md_white_1000</color>
-    <color name="primary_text">@color/md_light_primary_text</color>
-    <color name="secondary_text">@color/md_light_secondary</color>
-    <color name="hint_text">@color/md_light_disabled</color>
+    <color name="primary_text">#000000</color>
+    <color name="secondary_text">#000000</color>
+    <color name="hint_text">#000000</color>
     <color name="accent_text">@color/md_green_900</color>
 
     <color name="list_choice_pressed_bg_light">@color/colorPrimaryLight</color>
@@ -33,4 +33,687 @@
     <color name="page_number_background_black">#99252525</color>
     <color name="reader_menu_background">@color/colorPrimarySuperDark</color>
 
+    <color name="md_light_dividers">@color/md_blue_400</color>
+
+    <!-- google's material design colours from
+    http://www.google.com/design/spec/style/color.html#color-ui-color-palette -->
+    <!--reds-->
+    <array name="reds">
+        <item>@color/md_red_500</item>
+        <item>@color/md_red_50</item>
+        <item>@color/md_red_100</item>
+        <item>@color/md_red_200</item>
+        <item>@color/md_red_300</item>
+        <item>@color/md_red_400</item>
+        <item>@color/md_red_600</item>
+        <item>@color/md_red_700</item>
+        <item>@color/md_red_800</item>
+        <item>@color/md_red_900</item>
+        <item>@color/md_red_A100</item>
+        <item>@color/md_red_A200</item>
+        <item>@color/md_red_A400</item>
+        <item>@color/md_red_A700</item>
+    </array>
+    <color name="md_red_50">#ffebee</color>
+    <color name="md_red_100">#ffcdd2</color>
+    <color name="md_red_200">#ef9a9a</color>
+    <color name="md_red_300">#e57373</color>
+    <color name="md_red_400">#ef5350</color>
+    <color name="md_red_500">#f44336</color>
+    <color name="md_red_600">#e53935</color>
+    <color name="md_red_700">#d32f2f</color>
+    <color name="md_red_800">#c62828</color>
+    <color name="md_red_900">#b71c1c</color>
+    <color name="md_red_A100">#ff8a80</color>
+    <color name="md_red_A200">#ff5252</color>
+    <color name="md_red_A400">#ff1744</color>
+    <color name="md_red_A700">#d50000</color>
+    <color name="md_red_500_25">#40f44336</color>
+    <color name="md_red_500_50">#80f44336</color>
+    <color name="md_red_500_75">#c0f44336</color>
+    <!-- pinks -->
+    <array name="pinks">
+        <item>@color/md_pink_500</item>
+        <item>@color/md_pink_50</item>
+        <item>@color/md_pink_100</item>
+        <item>@color/md_pink_200</item>
+        <item>@color/md_pink_300</item>
+        <item>@color/md_pink_400</item>
+        <item>@color/md_pink_600</item>
+        <item>@color/md_pink_700</item>
+        <item>@color/md_pink_800</item>
+        <item>@color/md_pink_900</item>
+        <item>@color/md_pink_A100</item>
+        <item>@color/md_pink_A200</item>
+        <item>@color/md_pink_A400</item>
+        <item>@color/md_pink_A700</item>
+    </array>
+    <color name="md_pink_50">#fce4ec</color>
+    <color name="md_pink_100">#f8bbd0</color>
+    <color name="md_pink_200">#f48fb1</color>
+    <color name="md_pink_300">#f06292</color>
+    <color name="md_pink_400">#ec407a</color>
+    <color name="md_pink_500">#e91e63</color>
+    <color name="md_pink_600">#d81b60</color>
+    <color name="md_pink_700">#c2185b</color>
+    <color name="md_pink_800">#ad1457</color>
+    <color name="md_pink_900">#880e4f</color>
+    <color name="md_pink_A100">#ff80ab</color>
+    <color name="md_pink_A200">#ff4081</color>
+    <color name="md_pink_A400">#f50057</color>
+    <color name="md_pink_A700">#c51162</color>
+    <color name="md_pink_500_25">#40e91e63</color>
+    <color name="md_pink_500_50">#80e91e63</color>
+    <color name="md_pink_500_75">#c0e91e63</color>
+    <!-- purples -->
+    <array name="purples">
+        <item>@color/md_purple_500</item>
+        <item>@color/md_purple_50</item>
+        <item>@color/md_purple_100</item>
+        <item>@color/md_purple_200</item>
+        <item>@color/md_purple_300</item>
+        <item>@color/md_purple_400</item>
+        <item>@color/md_purple_600</item>
+        <item>@color/md_purple_700</item>
+        <item>@color/md_purple_800</item>
+        <item>@color/md_purple_900</item>
+        <item>@color/md_purple_A100</item>
+        <item>@color/md_purple_A200</item>
+        <item>@color/md_purple_A400</item>
+        <item>@color/md_purple_A700</item>
+    </array>
+    <color name="md_purple_50">#f3e5f5</color>
+    <color name="md_purple_100">#e1bee7</color>
+    <color name="md_purple_200">#ce93d8</color>
+    <color name="md_purple_300">#ba68c8</color>
+    <color name="md_purple_400">#ab47bc</color>
+    <color name="md_purple_500">#9c27b0</color>
+    <color name="md_purple_600">#8e24aa</color>
+    <color name="md_purple_700">#7b1fa2</color>
+    <color name="md_purple_800">#6a1b9a</color>
+    <color name="md_purple_900">#4a148c</color>
+    <color name="md_purple_A100">#ea80fc</color>
+    <color name="md_purple_A200">#e040fb</color>
+    <color name="md_purple_A400">#d500f9</color>
+    <color name="md_purple_A700">#aa00ff</color>
+    <color name="md_purple_500_25">#409c27b0</color>
+    <color name="md_purple_500_50">#809c27b0</color>
+    <color name="md_purple_500_75">#c09c27b0</color>
+    <!-- deep purples -->
+    <array name="deep_purples">
+        <item>@color/md_deep_purple_500</item>
+        <item>@color/md_deep_purple_50</item>
+        <item>@color/md_deep_purple_100</item>
+        <item>@color/md_deep_purple_200</item>
+        <item>@color/md_deep_purple_300</item>
+        <item>@color/md_deep_purple_400</item>
+        <item>@color/md_deep_purple_600</item>
+        <item>@color/md_deep_purple_700</item>
+        <item>@color/md_deep_purple_800</item>
+        <item>@color/md_deep_purple_900</item>
+        <item>@color/md_deep_purple_A100</item>
+        <item>@color/md_deep_purple_A200</item>
+        <item>@color/md_deep_purple_A400</item>
+        <item>@color/md_deep_purple_A700</item>
+    </array>
+    <color name="md_deep_purple_50">#ede7f6</color>
+    <color name="md_deep_purple_100">#d1c4e9</color>
+    <color name="md_deep_purple_200">#b39ddb</color>
+    <color name="md_deep_purple_300">#9575cd</color>
+    <color name="md_deep_purple_400">#7e57c2</color>
+    <color name="md_deep_purple_500">#673ab7</color>
+    <color name="md_deep_purple_600">#5e35b1</color>
+    <color name="md_deep_purple_700">#512da8</color>
+    <color name="md_deep_purple_800">#4527a0</color>
+    <color name="md_deep_purple_900">#311b92</color>
+    <color name="md_deep_purple_A100">#b388ff</color>
+    <color name="md_deep_purple_A200">#7c4dff</color>
+    <color name="md_deep_purple_A400">#651fff</color>
+    <color name="md_deep_purple_A700">#6200ea</color>
+    <color name="md_deep_purple_500_25">#40673ab7</color>
+    <color name="md_deep_purple_500_50">#80673ab7</color>
+    <color name="md_deep_purple_500_75">#c0673ab7</color>
+    <!-- indigos -->
+    <array name="indigos">
+        <item>@color/md_indigo_500</item>
+        <item>@color/md_indigo_50</item>
+        <item>@color/md_indigo_100</item>
+        <item>@color/md_indigo_200</item>
+        <item>@color/md_indigo_300</item>
+        <item>@color/md_indigo_400</item>
+        <item>@color/md_indigo_600</item>
+        <item>@color/md_indigo_700</item>
+        <item>@color/md_indigo_800</item>
+        <item>@color/md_indigo_900</item>
+        <item>@color/md_indigo_A100</item>
+        <item>@color/md_indigo_A200</item>
+        <item>@color/md_indigo_A400</item>
+        <item>@color/md_indigo_A700</item>
+    </array>
+    <color name="md_indigo_50">#e8eaf6</color>
+    <color name="md_indigo_100">#c5cae9</color>
+    <color name="md_indigo_200">#9fa8da</color>
+    <color name="md_indigo_300">#7986cb</color>
+    <color name="md_indigo_400">#5c6bc0</color>
+    <color name="md_indigo_500">#3f51b5</color>
+    <color name="md_indigo_600">#3949ab</color>
+    <color name="md_indigo_700">#303f9f</color>
+    <color name="md_indigo_800">#283593</color>
+    <color name="md_indigo_900">#1a237e</color>
+    <color name="md_indigo_A100">#8c9eff</color>
+    <color name="md_indigo_A200">#536dfe</color>
+    <color name="md_indigo_A400">#3d5afe</color>
+    <color name="md_indigo_A700">#304ffe</color>
+    <color name="md_indigo_500_25">#403f51b5</color>
+    <color name="md_indigo_500_50">#803f51b5</color>
+    <color name="md_indigo_500_75">#c03f51b5</color>
+    <!--blues-->
+    <array name="blues">
+        <item>@color/md_blue_500</item>
+        <item>@color/md_blue_50</item>
+        <item>@color/md_blue_100</item>
+        <item>@color/md_blue_200</item>
+        <item>@color/md_blue_300</item>
+        <item>@color/md_blue_400</item>
+        <item>@color/md_blue_600</item>
+        <item>@color/md_blue_700</item>
+        <item>@color/md_blue_800</item>
+        <item>@color/md_blue_900</item>
+        <item>@color/md_blue_A100</item>
+        <item>@color/md_blue_A200</item>
+        <item>@color/md_blue_A400</item>
+        <item>@color/md_blue_A700</item>
+    </array>
+    <color name="md_blue_50">#e3f2fd</color>
+    <color name="md_blue_100">#bbdefb</color>
+    <color name="md_blue_200">#90caf9</color>
+    <color name="md_blue_300">#64b5f6</color>
+    <color name="md_blue_400">#42a5f5</color>
+    <color name="md_blue_500">#2196f3</color>
+    <color name="md_blue_600">#1e88e5</color>
+    <color name="md_blue_700">#1976d2</color>
+    <color name="md_blue_800">#1565c0</color>
+    <color name="md_blue_900">#0d47a1</color>
+    <color name="md_blue_A100">#82b1ff</color>
+    <color name="md_blue_A200">#448aff</color>
+    <color name="md_blue_A400">#2979ff</color>
+    <color name="md_blue_A700">#2962ff</color>
+    <color name="md_blue_500_25">#402196f3</color>
+    <color name="md_blue_500_50">#802196f3</color>
+    <color name="md_blue_500_75">#c02196f3</color>
+    <!-- light blues-->
+    <array name="light_blues">
+        <item>@color/md_light_blue_500</item>
+        <item>@color/md_light_blue_50</item>
+        <item>@color/md_light_blue_100</item>
+        <item>@color/md_light_blue_200</item>
+        <item>@color/md_light_blue_300</item>
+        <item>@color/md_light_blue_400</item>
+        <item>@color/md_light_blue_600</item>
+        <item>@color/md_light_blue_700</item>
+        <item>@color/md_light_blue_800</item>
+        <item>@color/md_light_blue_900</item>
+        <item>@color/md_light_blue_A100</item>
+        <item>@color/md_light_blue_A200</item>
+        <item>@color/md_light_blue_A400</item>
+        <item>@color/md_light_blue_A700</item>
+    </array>
+    <color name="md_light_blue_50">#e1f5fe</color>
+    <color name="md_light_blue_100">#b3e5fc</color>
+    <color name="md_light_blue_200">#81d4fa</color>
+    <color name="md_light_blue_300">#4fc3f7</color>
+    <color name="md_light_blue_400">#29b6f6</color>
+    <color name="md_light_blue_500">#03a9f4</color>
+    <color name="md_light_blue_600">#039be5</color>
+    <color name="md_light_blue_700">#0288d1</color>
+    <color name="md_light_blue_800">#0277bd</color>
+    <color name="md_light_blue_900">#01579b</color>
+    <color name="md_light_blue_A100">#80d8ff</color>
+    <color name="md_light_blue_A200">#40c4ff</color>
+    <color name="md_light_blue_A400">#00b0ff</color>
+    <color name="md_light_blue_A700">#0091ea</color>
+    <color name="md_light_blue_500_25">#4003a9f4</color>
+    <color name="md_light_blue_500_50">#8003a9f4</color>
+    <color name="md_light_blue_500_75">#c003a9f4</color>
+    <!-- cyans -->
+    <array name="cyans">
+        <item>@color/md_cyan_500</item>
+        <item>@color/md_cyan_50</item>
+        <item>@color/md_cyan_100</item>
+        <item>@color/md_cyan_200</item>
+        <item>@color/md_cyan_300</item>
+        <item>@color/md_cyan_400</item>
+        <item>@color/md_cyan_600</item>
+        <item>@color/md_cyan_700</item>
+        <item>@color/md_cyan_800</item>
+        <item>@color/md_cyan_900</item>
+        <item>@color/md_cyan_A100</item>
+        <item>@color/md_cyan_A200</item>
+        <item>@color/md_cyan_A400</item>
+        <item>@color/md_cyan_A700</item>
+    </array>
+    <color name="md_cyan_50">#e0f7fa</color>
+    <color name="md_cyan_100">#b2ebf2</color>
+    <color name="md_cyan_200">#80deea</color>
+    <color name="md_cyan_300">#4dd0e1</color>
+    <color name="md_cyan_400">#26c6da</color>
+    <color name="md_cyan_500">#00bcd4</color>
+    <color name="md_cyan_600">#00acc1</color>
+    <color name="md_cyan_700">#0097a7</color>
+    <color name="md_cyan_800">#00838f</color>
+    <color name="md_cyan_900">#006064</color>
+    <color name="md_cyan_A100">#84ffff</color>
+    <color name="md_cyan_A200">#18ffff</color>
+    <color name="md_cyan_A400">#00e5ff</color>
+    <color name="md_cyan_A700">#00b8d4</color>
+    <color name="md_cyan_500_25">#4000bcd4</color>
+    <color name="md_cyan_500_50">#8000bcd4</color>
+    <color name="md_cyan_500_75">#c000bcd4</color>
+    <!-- teals -->
+    <array name="teals">
+        <item>@color/md_teal_500</item>
+        <item>@color/md_teal_50</item>
+        <item>@color/md_teal_100</item>
+        <item>@color/md_teal_200</item>
+        <item>@color/md_teal_300</item>
+        <item>@color/md_teal_400</item>
+        <item>@color/md_teal_600</item>
+        <item>@color/md_teal_700</item>
+        <item>@color/md_teal_800</item>
+        <item>@color/md_teal_900</item>
+        <item>@color/md_teal_A100</item>
+        <item>@color/md_teal_A200</item>
+        <item>@color/md_teal_A400</item>
+        <item>@color/md_teal_A700</item>
+    </array>
+    <color name="md_teal_50">#e0f2f1</color>
+    <color name="md_teal_100">#b2dfdb</color>
+    <color name="md_teal_200">#80cbc4</color>
+    <color name="md_teal_300">#4db6ac</color>
+    <color name="md_teal_400">#26a69a</color>
+    <color name="md_teal_500">#009688</color>
+    <color name="md_teal_600">#00897b</color>
+    <color name="md_teal_700">#00796b</color>
+    <color name="md_teal_800">#00695c</color>
+    <color name="md_teal_900">#004d40</color>
+    <color name="md_teal_A100">#a7ffeb</color>
+    <color name="md_teal_A200">#64ffda</color>
+    <color name="md_teal_A400">#1de9b6</color>
+    <color name="md_teal_A700">#00bfa5</color>
+    <color name="md_teal_500_25">#40009688</color>
+    <color name="md_teal_500_50">#80009688</color>
+    <color name="md_teal_500_75">#c8009688</color>
+    <!-- greens -->
+    <array name="greens">
+        <item>@color/md_green_500</item>
+        <item>@color/md_green_50</item>
+        <item>@color/md_green_100</item>
+        <item>@color/md_green_200</item>
+        <item>@color/md_green_300</item>
+        <item>@color/md_green_400</item>
+        <item>@color/md_green_600</item>
+        <item>@color/md_green_700</item>
+        <item>@color/md_green_800</item>
+        <item>@color/md_green_900</item>
+        <item>@color/md_green_A100</item>
+        <item>@color/md_green_A200</item>
+        <item>@color/md_green_A400</item>
+        <item>@color/md_green_A700</item>
+    </array>
+    <color name="md_green_50">#e8f5e9</color>
+    <color name="md_green_100">#c8e6c9</color>
+    <color name="md_green_200">#a5d6a7</color>
+    <color name="md_green_300">#81c784</color>
+    <color name="md_green_400">#66bb6a</color>
+    <color name="md_green_500">#4caf50</color>
+    <color name="md_green_600">#43a047</color>
+    <color name="md_green_700">#388e3c</color>
+    <color name="md_green_800">#2e7d32</color>
+    <color name="md_green_900">#1b5e20</color>
+    <color name="md_green_A100">#b9f6ca</color>
+    <color name="md_green_A200">#69f0ae</color>
+    <color name="md_green_A400">#00e676</color>
+    <color name="md_green_A700">#00c853</color>
+    <color name="md_green_500_25">#404caf50</color>
+    <color name="md_green_500_50">#804caf50</color>
+    <color name="md_green_500_75">#c04caf50</color>
+    <!--light greens-->
+    <array name="light_greens">
+        <item>@color/md_light_green_500</item>
+        <item>@color/md_light_green_50</item>
+        <item>@color/md_light_green_100</item>
+        <item>@color/md_light_green_200</item>
+        <item>@color/md_light_green_300</item>
+        <item>@color/md_light_green_400</item>
+        <item>@color/md_light_green_600</item>
+        <item>@color/md_light_green_700</item>
+        <item>@color/md_light_green_800</item>
+        <item>@color/md_light_green_900</item>
+        <item>@color/md_light_green_A100</item>
+        <item>@color/md_light_green_A200</item>
+        <item>@color/md_light_green_A400</item>
+        <item>@color/md_light_green_A700</item>
+    </array>
+    <color name="md_light_green_50">#f1f8e9</color>
+    <color name="md_light_green_100">#dcedc8</color>
+    <color name="md_light_green_200">#c5e1a5</color>
+    <color name="md_light_green_300">#aed581</color>
+    <color name="md_light_green_400">#9ccc65</color>
+    <color name="md_light_green_500">#8bc34a</color>
+    <color name="md_light_green_600">#7cb342</color>
+    <color name="md_light_green_700">#689f38</color>
+    <color name="md_light_green_800">#558b2f</color>
+    <color name="md_light_green_900">#33691e</color>
+    <color name="md_light_green_A100">#ccff90</color>
+    <color name="md_light_green_A200">#b2ff59</color>
+    <color name="md_light_green_A400">#76ff03</color>
+    <color name="md_light_green_A700">#64dd17</color>
+    <color name="md_light_green_500_25">#408bc34a</color>
+    <color name="md_light_green_500_50">#808bc34a</color>
+    <color name="md_light_green_500_75">#c88bc34a</color>
+    <!-- limes -->
+    <array name="limes">
+        <item>@color/md_lime_500</item>
+        <item>@color/md_lime_50</item>
+        <item>@color/md_lime_100</item>
+        <item>@color/md_lime_200</item>
+        <item>@color/md_lime_300</item>
+        <item>@color/md_lime_400</item>
+        <item>@color/md_lime_600</item>
+        <item>@color/md_lime_700</item>
+        <item>@color/md_lime_800</item>
+        <item>@color/md_lime_900</item>
+        <item>@color/md_lime_A100</item>
+        <item>@color/md_lime_A200</item>
+        <item>@color/md_lime_A400</item>
+        <item>@color/md_lime_A700</item>
+    </array>
+    <color name="md_lime_50">#f9fbe7</color>
+    <color name="md_lime_100">#f0f4c3</color>
+    <color name="md_lime_200">#e6ee9c</color>
+    <color name="md_lime_300">#dce775</color>
+    <color name="md_lime_400">#d4e157</color>
+    <color name="md_lime_500">#cddc39</color>
+    <color name="md_lime_600">#c0ca33</color>
+    <color name="md_lime_700">#afb42b</color>
+    <color name="md_lime_800">#9e9d24</color>
+    <color name="md_lime_900">#827717</color>
+    <color name="md_lime_A100">#f4ff81</color>
+    <color name="md_lime_A200">#eeff41</color>
+    <color name="md_lime_A400">#c6ff00</color>
+    <color name="md_lime_A700">#aeea00</color>
+    <color name="md_lime_500_25">#40cddc39</color>
+    <color name="md_lime_500_50">#80cddc39</color>
+    <color name="md_lime_500_75">#c0cddc39</color>
+    <!--yellows -->
+    <array name="yellows">
+        <item>@color/md_yellow_500</item>
+        <item>@color/md_yellow_50</item>
+        <item>@color/md_yellow_100</item>
+        <item>@color/md_yellow_200</item>
+        <item>@color/md_yellow_300</item>
+        <item>@color/md_yellow_400</item>
+        <item>@color/md_yellow_600</item>
+        <item>@color/md_yellow_700</item>
+        <item>@color/md_yellow_800</item>
+        <item>@color/md_yellow_900</item>
+        <item>@color/md_yellow_A100</item>
+        <item>@color/md_yellow_A200</item>
+        <item>@color/md_yellow_A400</item>
+        <item>@color/md_yellow_A700</item>
+    </array>
+    <color name="md_yellow_50">#fffde7</color>
+    <color name="md_yellow_100">#fff9c4</color>
+    <color name="md_yellow_200">#fff59d</color>
+    <color name="md_yellow_300">#fff176</color>
+    <color name="md_yellow_400">#ffee58</color>
+    <color name="md_yellow_500">#ffeb3b</color>
+    <color name="md_yellow_600">#fdd835</color>
+    <color name="md_yellow_700">#fbc02d</color>
+    <color name="md_yellow_800">#f9a825</color>
+    <color name="md_yellow_900">#f57f17</color>
+    <color name="md_yellow_A100">#ffff8d</color>
+    <color name="md_yellow_A200">#ffff00</color>
+    <color name="md_yellow_A400">#ffea00</color>
+    <color name="md_yellow_A700">#ffd600</color>
+    <color name="md_yellow_500_25">#40ffeb3b</color>
+    <color name="md_yellow_500_50">#80ffeb3b</color>
+    <color name="md_yellow_500_75">#c0ffeb3b</color>
+    <!-- ambers -->
+    <array name="ambers">
+        <item>@color/md_amber_500</item>
+        <item>@color/md_amber_50</item>
+        <item>@color/md_amber_100</item>
+        <item>@color/md_amber_200</item>
+        <item>@color/md_amber_300</item>
+        <item>@color/md_amber_400</item>
+        <item>@color/md_amber_600</item>
+        <item>@color/md_amber_700</item>
+        <item>@color/md_amber_800</item>
+        <item>@color/md_amber_900</item>
+        <item>@color/md_amber_A100</item>
+        <item>@color/md_amber_A200</item>
+        <item>@color/md_amber_A400</item>
+        <item>@color/md_amber_A700</item>
+    </array>
+    <color name="md_amber_50">#fff8e1</color>
+    <color name="md_amber_100">#ffecb3</color>
+    <color name="md_amber_200">#ffe082</color>
+    <color name="md_amber_300">#ffd54f</color>
+    <color name="md_amber_400">#ffca28</color>
+    <color name="md_amber_500">#ffc107</color>
+    <color name="md_amber_600">#ffb300</color>
+    <color name="md_amber_700">#ffa000</color>
+    <color name="md_amber_800">#ff8f00</color>
+    <color name="md_amber_900">#ff6f00</color>
+    <color name="md_amber_A100">#ffe57f</color>
+    <color name="md_amber_A200">#ffd740</color>
+    <color name="md_amber_A400">#ffc400</color>
+    <color name="md_amber_A700">#ffab00</color>
+    <color name="md_amber_500_25">#40ffc107</color>
+    <color name="md_amber_500_50">#80ffc107</color>
+    <color name="md_amber_500_75">#c0ffc107</color>
+    <!-- oranges -->
+    <array name="oranges">
+        <item>@color/md_orange_500</item>
+        <item>@color/md_orange_50</item>
+        <item>@color/md_orange_100</item>
+        <item>@color/md_orange_200</item>
+        <item>@color/md_orange_300</item>
+        <item>@color/md_orange_400</item>
+        <item>@color/md_orange_600</item>
+        <item>@color/md_orange_700</item>
+        <item>@color/md_orange_800</item>
+        <item>@color/md_orange_900</item>
+        <item>@color/md_orange_A100</item>
+        <item>@color/md_orange_A200</item>
+        <item>@color/md_orange_A400</item>
+        <item>@color/md_orange_A700</item>
+    </array>
+    <color name="md_orange_50">#fff3e0</color>
+    <color name="md_orange_100">#ffe0b2</color>
+    <color name="md_orange_200">#ffcc80</color>
+    <color name="md_orange_300">#ffb74d</color>
+    <color name="md_orange_400">#ffa726</color>
+    <color name="md_orange_500">#ff9800</color>
+    <color name="md_orange_600">#fb8c00</color>
+    <color name="md_orange_700">#f57c00</color>
+    <color name="md_orange_800">#ef6c00</color>
+    <color name="md_orange_900">#e65100</color>
+    <color name="md_orange_A100">#ffd180</color>
+    <color name="md_orange_A200">#ffab40</color>
+    <color name="md_orange_A400">#ff9100</color>
+    <color name="md_orange_A700">#ff6d00</color>
+    <color name="md_orange_500_25">#40ff9800</color>
+    <color name="md_orange_500_50">#80ff9800</color>
+    <color name="md_orange_500_75">#c0ff9800</color>
+    <!-- deep oranges -->
+    <array name="deep_oranges">
+        <item>@color/md_deep_orange_500</item>
+        <item>@color/md_deep_orange_50</item>
+        <item>@color/md_deep_orange_100</item>
+        <item>@color/md_deep_orange_200</item>
+        <item>@color/md_deep_orange_300</item>
+        <item>@color/md_deep_orange_400</item>
+        <item>@color/md_deep_orange_600</item>
+        <item>@color/md_deep_orange_700</item>
+        <item>@color/md_deep_orange_800</item>
+        <item>@color/md_deep_orange_900</item>
+        <item>@color/md_deep_orange_A100</item>
+        <item>@color/md_deep_orange_A200</item>
+        <item>@color/md_deep_orange_A400</item>
+        <item>@color/md_deep_orange_A700</item>
+    </array>
+    <color name="md_deep_orange_50">#fbe9e7</color>
+    <color name="md_deep_orange_100">#ffccbc</color>
+    <color name="md_deep_orange_200">#ffab91</color>
+    <color name="md_deep_orange_300">#ff8a65</color>
+    <color name="md_deep_orange_400">#ff7043</color>
+    <color name="md_deep_orange_500">#ff5722</color>
+    <color name="md_deep_orange_600">#f4511e</color>
+    <color name="md_deep_orange_700">#e64a19</color>
+    <color name="md_deep_orange_800">#d84315</color>
+    <color name="md_deep_orange_900">#bf360c</color>
+    <color name="md_deep_orange_A100">#ff9e80</color>
+    <color name="md_deep_orange_A200">#ff6e40</color>
+    <color name="md_deep_orange_A400">#ff3d00</color>
+    <color name="md_deep_orange_A700">#dd2c00</color>
+    <color name="md_deep_orange_500_25">#40ff5722</color>
+    <color name="md_deep_orange_500_50">#80ff5722</color>
+    <color name="md_deep_orange_500_75">#c0ff5722</color>
+    <!-- browns -->
+    <array name="browns">
+        <item>@color/md_brown_500</item>
+        <item>@color/md_brown_50</item>
+        <item>@color/md_brown_100</item>
+        <item>@color/md_brown_200</item>
+        <item>@color/md_brown_300</item>
+        <item>@color/md_brown_400</item>
+        <item>@color/md_brown_600</item>
+        <item>@color/md_brown_700</item>
+        <item>@color/md_brown_800</item>
+        <item>@color/md_brown_900</item>
+    </array>
+    <color name="md_brown_50">#efebe9</color>
+    <color name="md_brown_100">#d7ccc8</color>
+    <color name="md_brown_200">#bcaaa4</color>
+    <color name="md_brown_300">#a1887f</color>
+    <color name="md_brown_400">#8d6e63</color>
+    <color name="md_brown_500">#795548</color>
+    <color name="md_brown_600">#6d4c41</color>
+    <color name="md_brown_700">#5d4037</color>
+    <color name="md_brown_800">#4e342e</color>
+    <color name="md_brown_900">#3e2723</color>
+    <color name="md_brown_500_25">#40795548</color>
+    <color name="md_brown_500_50">#80795548</color>
+    <color name="md_brown_500_75">#c0795548</color>
+    <!--grey-->
+    <array name="greys">
+        <item>@color/md_grey_500</item>
+        <item>@color/md_grey_50</item>
+        <item>@color/md_grey_100</item>
+        <item>@color/md_grey_200</item>
+        <item>@color/md_grey_300</item>
+        <item>@color/md_grey_400</item>
+        <item>@color/md_grey_600</item>
+        <item>@color/md_grey_700</item>
+        <item>@color/md_grey_800</item>
+        <item>@color/md_grey_900</item>
+        <item>@color/md_black_1000</item>
+        <item>@color/md_white_1000</item>
+    </array>
+    <color name="md_grey_50">#fafafa</color>
+    <color name="md_grey_100">#f5f5f5</color>
+    <color name="md_grey_200">#eeeeee</color>
+    <color name="md_grey_300">#e0e0e0</color>
+    <color name="md_grey_400">#bdbdbd</color>
+    <color name="md_grey_500">#9e9e9e</color>
+    <color name="md_grey_600">#757575</color>
+    <color name="md_grey_700">#616161</color>
+    <color name="md_grey_800">#424242</color>
+    <color name="md_grey_900">#212121</color>
+    <color name="md_grey_500_25">#409e9e9e</color>
+    <color name="md_grey_500_50">#809e9e9e</color>
+    <color name="md_grey_500_75">#c09e9e9e</color>
+    <color name="md_white_1000">#ffffff</color>
+    <color name="md_white_1000_10">#1affffff</color>
+    <color name="md_white_1000_15">#22ffffff</color>
+    <color name="md_white_1000_20">#33ffffff</color>
+    <color name="md_white_1000_25">#40ffffff</color>
+    <color name="md_white_1000_50">#80ffffff</color>
+    <color name="md_white_1000_60">#99ffffff</color>
+    <color name="md_white_1000_75">#c0ffffff</color>
+    <color name="md_black_1000_10">#1a000000</color>
+    <color name="md_black_1000_15">#26000000</color>
+    <color name="md_black_1000_20">#33000000</color>
+    <color name="md_black_1000_25">#40000000</color>
+    <color name="md_black_1000_50">#80000000</color>
+    <color name="md_black_1000_75">#c0000000</color>
+    <color name="md_black_1000">#000000</color>
+    <!--blue grey-->
+    <array name="blue_greys">
+        <item>@color/md_blue_grey_500</item>
+        <item>@color/md_blue_grey_50</item>
+        <item>@color/md_blue_grey_100</item>
+        <item>@color/md_blue_grey_200</item>
+        <item>@color/md_blue_grey_300</item>
+        <item>@color/md_blue_grey_400</item>
+        <item>@color/md_blue_grey_600</item>
+        <item>@color/md_blue_grey_700</item>
+        <item>@color/md_blue_grey_800</item>
+        <item>@color/md_blue_grey_900</item>
+    </array>
+    <color name="md_blue_grey_50">#eceff1</color>
+    <color name="md_blue_grey_100">#cfd8dc</color>
+    <color name="md_blue_grey_200">#b0bec5</color>
+    <color name="md_blue_grey_300">#90a4ae</color>
+    <color name="md_blue_grey_400">#78909c</color>
+    <color name="md_blue_grey_500">#607d8b</color>
+    <color name="md_blue_grey_600">#546e7a</color>
+    <color name="md_blue_grey_700">#455a64</color>
+    <color name="md_blue_grey_800">#37474f</color>
+    <color name="md_blue_grey_900">#263238</color>
+    <color name="md_blue_grey_500_25">#40607d8b</color>
+    <color name="md_blue_grey_500_50">#80607d8b</color>
+    <color name="md_blue_grey_500_75">#c0607d8b</color>
+    <!--Texts-->
+    <array name="texts_white">
+        <item>@color/md_text_white</item>
+        <item>@color/md_text_white_87</item>
+        <item>@color/md_secondary_text_icons_white</item>
+        <item>@color/md_disabled_hint_text_white</item>
+        <item>@color/md_divider_white</item>
+    </array>
+    <color name="md_text_white">#ffffffff</color>
+    <color name="md_text_white_87">#dfffffff</color>
+    <color name="md_secondary_text_icons_white">#b3ffffff</color>
+    <color name="md_disabled_hint_text_white">#4dffffff</color>
+    <color name="md_divider_white">#1fffffff</color>
+    <array name="texts_black">
+        <item>@color/md_text</item>
+        <item>@color/md_secondary_text_icons</item>
+        <item>@color/md_disabled_hint_text</item>
+        <item>@color/md_divider</item>
+    </array>
+    <color name="md_text">#df000000</color>
+    <color name="md_secondary_text_icons">#8a000000</color>
+    <color name="md_disabled_hint_text">#4c000000</color>
+    <color name="md_divider">#1f000000</color>
+    <!--Falcon-->
+    <array name="falcon">
+        <item>@color/md_falcon_400</item>
+        <item>@color/md_falcon_500</item>
+        <item>@color/md_falcon_700</item>
+    </array>
+    <color name="md_falcon_400">#ff38628b</color>
+    <color name="md_falcon_500">#384e77</color>
+    <color name="md_falcon_700">#2b3e5f</color>
+    <color name="md_falcon_A400">#598bae</color>
+    <color name="md_falcon_500_25">#40384e77</color>
+    <color name="md_falcon_500_50">#80384e77</color>
+    <color name="md_falcon_500_75">#c0384e77</color>
+    <color name="md_falcon_A400_25">#40598bae</color>
+
+    <color name="md_statusbar_translucent">#4000</color>
+
 </resources>

+ 13 - 9
app/src/main/res/values/dimens.xml

@@ -1,16 +1,16 @@
 <resources>
     <!-- Default screen margins, per the Android Design guidelines. -->
-    <dimen name="activity_horizontal_margin">16dp</dimen>
-    <dimen name="activity_vertical_margin">16dp</dimen>
-    <dimen name="margin_top">16dp</dimen>
-    <dimen name="margin_bottom">16dp</dimen>
-    <dimen name="margin_left">16dp</dimen>
-    <dimen name="margin_right">16dp</dimen>
-    <dimen name="fab_margin">16dp</dimen>
+    <dimen name="activity_horizontal_margin">0dp</dimen>
+    <dimen name="activity_vertical_margin">0dp</dimen>
+    <dimen name="margin_top">0dp</dimen>
+    <dimen name="margin_bottom">0dp</dimen>
+    <dimen name="margin_left">0dp</dimen>
+    <dimen name="margin_right">0dp</dimen>
+    <dimen name="fab_margin">0dp</dimen>
     <dimen name="fab_size">56dp</dimen>
 
-    <dimen name="dialog_content_padding">24dp</dimen>
-    <dimen name="dialog_margin_top_content">20dp</dimen>
+    <dimen name="dialog_content_padding">0dp</dimen>
+    <dimen name="dialog_margin_top_content">0dp</dimen>
 
     <dimen name="text_headline">24sp</dimen>
     <dimen name="text_large_title">22sp</dimen>
@@ -19,4 +19,8 @@
     <dimen name="text_body">16sp</dimen>
     <dimen name="text_small_body">14sp</dimen>
 
+
+    <!--Nav header-->
+    <dimen name="navigation_drawer_header_margin">16dp</dimen>
+
 </resources>

+ 0 - 8
app/src/main/res/values/ids.xml

@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-    <item name="nav_drawer_library" type="id">nav_drawer_library</item>
-    <item name="nav_drawer_recent_updates" type="id">nav_drawer_recent_updates</item>
-    <item name="nav_drawer_catalogues" type="id">nav_drawer_catalogues</item>
-    <item name="nav_drawer_settings" type="id">nav_drawer_settings</item>
-    <item name="nav_drawer_downloads" type="id">nav_drawer_downloads</item>
-</resources>

+ 5 - 0
app/src/main/res/values/strings.xml

@@ -256,4 +256,9 @@
     <string name="description_backdrop">Backdrop image of selected manga</string>
     <string name="description_cover">Cover of selected manga</string>
 
+    <!-- Information Text -->
+    <string name="information_no_downloads">No Downloads</string>
+    <string name="information_no_recent">No Recent Chapters</string>
+    <string name="information_empty_library">Empty Library</string>
+
 </resources>

+ 7 - 1
app/src/main/res/values/styles.xml

@@ -1,6 +1,8 @@
 <resources xmlns:tools="http://schemas.android.com/tools">
 
-    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
+    <style name="AppTheme" parent="AppTheme.Base">
+        </style>
+    <style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
         <item name="colorPrimary">@color/colorPrimary</item>
         <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
         <item name="colorAccent">@color/colorAccent</item>
@@ -11,6 +13,10 @@
         <item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Material</item>
     </style>
 
+    <style name="AppTheme.BrandedLaunch" parent="AppTheme">
+        <item name="android:windowBackground">@drawable/branded_logo</item>
+    </style>
+
     <style name="AppTheme.ActionBar" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
         <item name="android:spinnerItemStyle">@style/ActionBarSpinner</item>
         <item name="android:spinnerDropDownItemStyle">@style/ActionBarSpinnerItem</item>