Browse Source

Rewrote nav drawer to Kotlin + UI updates

Added launch screen + new Header

Removed MaterialDrawer library. Implemented Nav Draw from Support Library
NoodleMage 9 years ago
parent
commit
98d420d5aa
32 changed files with 1062 additions and 276 deletions
  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>