// Path: java/com/raidzero/teamcitydownloader/data/NavigationMenuItem.java
// public class NavigationMenuItem {
//     private static final String tag = "NavigationMenuItem";
// 
//     private String displayName;
//     private Object obj;
// 
//     private boolean isDivider = false;
//     private boolean isFavorite = false;
// 
//     public NavigationMenuItem(Object o, String name) {
//         this.obj = o;
//         this.displayName = name;
//     }
// 
//     public void setDivider(boolean isDivider) {
//         this.isDivider = isDivider;
//     }
// 
//     public void setFavorite(boolean isFavorite) {
//         this.isFavorite = isFavorite;
//     }
// 
//     public String getName() {
//         return displayName;
//     }
// 
//     public Object getObj() {
//         return obj;
//     }
// 
//     public boolean isDivider() {
//         return isDivider;
//     }
// 
//     public boolean isFavorite() {
//         Debug.Log(tag, displayName + " isFavorite? " + isFavorite );
//         return isFavorite;
//     }
// }
// 
// Path: java/com/raidzero/teamcitydownloader/global/Debug.java
// public class Debug {
//     //private static final boolean debug = false;
//     //private static final boolean debug = true;
// 
//     private static final boolean debug = BuildConfig.DEBUG;
// 
//     public static void Log(String tag, String msg) {
//         if (debug) {
//             Log.d(tag, msg);
//         }
//     }
// 
//     public static void Log(String tag, String msg, Exception e) {
//         if (debug) {
//             Log.d(tag, msg);
//             e.printStackTrace();
//         }
//     }
// }


import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import com.raidzero.teamcitydownloader.R;
import com.raidzero.teamcitydownloader.data.NavigationMenuItem;
import com.raidzero.teamcitydownloader.global.Debug;
import java.util.ArrayList;

        // if we arent reusing a view, inflate one
        if (convertView == null) {
            convertView = LayoutInflater.from(getContext()).inflate(android.R.layout.simple_list_item_activated_1, parent, false);
        }

        TextView txtName = (TextView) convertView.findViewById(android.R.id.text1);

        if (!item.isDivider()) {
            Debug.Log(tag, "about to load item: " + item.getName() + ", " + item.getObj().toString());
            if (txtName != null) {
                txtName.setText(item.getName());
            } else {
                Debug.Log(tag, "txtName is null for " + item.getName());
            }
        } else {
            // why is this necessary?
            if (!dividersShown.contains(item.getName())) {
                Debug.Log(tag, "about to load divider");

                // return the divider view
                convertView = LayoutInflater.from(getContext()).inflate(R.layout.divider, parent, false);
                TextView txtHeader = (TextView) convertView.findViewById(R.id.nav_divider_header);
                txtHeader.setText(item.getName());
                dividersShown.add(item.getName());

                // dividers should not be clickable
                convertView.setEnabled(false);
                convertView.setOnClickListener(null);
            } else {
// Path: java/com/raidzero/teamcitydownloader/data/NavigationMenuItem.java
// public class NavigationMenuItem {
//     private static final String tag = "NavigationMenuItem";
// 
//     private String displayName;
//     private Object obj;
// 
//     private boolean isDivider = false;
//     private boolean isFavorite = false;
// 
//     public NavigationMenuItem(Object o, String name) {
//         this.obj = o;
//         this.displayName = name;
//     }
// 
//     public void setDivider(boolean isDivider) {
//         this.isDivider = isDivider;
//     }
// 
//     public void setFavorite(boolean isFavorite) {
//         this.isFavorite = isFavorite;
//     }
// 
//     public String getName() {
//         return displayName;
//     }
// 
//     public Object getObj() {
//         return obj;
//     }
// 
//     public boolean isDivider() {
//         return isDivider;
//     }
// 
//     public boolean isFavorite() {
//         Debug.Log(tag, displayName + " isFavorite? " + isFavorite );
//         return isFavorite;
//     }
// }
// 
// Path: java/com/raidzero/teamcitydownloader/global/Debug.java
// public class Debug {
//     //private static final boolean debug = false;
//     //private static final boolean debug = true;
// 
//     private static final boolean debug = BuildConfig.DEBUG;
// 
//     public static void Log(String tag, String msg) {
//         if (debug) {
//             Log.d(tag, msg);
//         }
//     }
// 
//     public static void Log(String tag, String msg, Exception e) {
//         if (debug) {
//             Log.d(tag, msg);
//             e.printStackTrace();
//         }
//     }
// }


// Path: java/com/raidzero/teamcitydownloader/adapters/NavigationItemAdapter.java
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import com.raidzero.teamcitydownloader.R;
import com.raidzero.teamcitydownloader.data.NavigationMenuItem;
import com.raidzero.teamcitydownloader.global.Debug;
import java.util.ArrayList;


        // if we arent reusing a view, inflate one
        if (convertView == null) {
            convertView = LayoutInflater.from(getContext()).inflate(android.R.layout.simple_list_item_activated_1, parent, false);
        }

        TextView txtName = (TextView) convertView.findViewById(android.R.id.text1);

        if (!item.isDivider()) {
            Debug.Log(tag, "about to load item: " + item.getName() + ", " + item.getObj().toString());
            if (txtName != null) {
                txtName.setText(item.getName());
            } else {
                Debug.Log(tag, "txtName is null for " + item.getName());
            }
        } else {
            // why is this necessary?
            if (!dividersShown.contains(item.getName())) {
                Debug.Log(tag, "about to load divider");

                // return the divider view
                convertView = LayoutInflater.from(getContext()).inflate(R.layout.divider, parent, false);
                TextView txtHeader = (TextView) convertView.findViewById(R.id.nav_divider_header);
                txtHeader.setText(item.getName());
                dividersShown.add(item.getName());

                // dividers should not be clickable
                convertView.setEnabled(false);
                convertView.setOnClickListener(null);
            } else {
                Debug.Log(tag, "divider already shown for " + item.getName());