// Path: app/src/main/java/com/livingstoneapp/helpers/RecyclerViewOnClickListener.java
// public interface RecyclerViewOnClickListener<T> {
//     void onItemClick(T item);
// }
// 
// Path: app/src/main/java/com/livingstoneapp/helpers/RecyclerViewOnClickListenerInternal.java
// public interface RecyclerViewOnClickListenerInternal {
//     void onItemClick(int position);
// }
// 
// Path: app/src/main/java/com/livingstoneapp/models/ServiceInfoInternal.java
// public class ServiceInfoInternal {
//     private String mName;
//     private boolean mEnabled;
//     private boolean mExported;
//     private String mProcessName;
//     private String mPermission;
//     private ArrayList<String> mFlags;
// 
//     public ServiceInfoInternal(String mName, boolean mEnabled, boolean mExported, String mProcessName, String mPermission, ArrayList<String> mFlags) {
//         this.mName = mName;
//         this.mEnabled = mEnabled;
//         this.mExported = mExported;
//         this.mProcessName = mProcessName;
//         this.mPermission = mPermission;
//         this.mFlags = mFlags;
//     }
// 
//     public boolean isEnabled() {
//         return mEnabled;
//     }
// 
//     public boolean isExported() {
//         return mExported;
//     }
// 
//     public ArrayList<String> getFlags() {
//         return mFlags;
//     }
// 
//     public String getName() {
//         return mName;
//     }
// 
//     public String getPermission() {
//         return mPermission;
//     }
// 
//     public String getProcessName() {
//         return mProcessName;
//     }
// }


import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import java.util.List;
import butterknife.Bind;
import butterknife.ButterKnife;
import com.livingstoneapp.R;
import com.livingstoneapp.helpers.RecyclerViewOnClickListener;
import com.livingstoneapp.helpers.RecyclerViewOnClickListenerInternal;
import com.livingstoneapp.models.ServiceInfoInternal;
        } else {
            holder.tvPermissionHeader.setVisibility(View.GONE);
            holder.tvPermission.setVisibility(View.GONE);
        }

        if (!si.getFlags().isEmpty()) {
            holder.tvFlagsHeader.setVisibility(View.VISIBLE);
            holder.tvFlags.setVisibility(View.VISIBLE);

            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < si.getFlags().size(); i++) {
                if (i != 0)
                    sb.append("\n");

                sb.append(si.getFlags().get(i));
            }
            holder.tvFlags.setText(sb);
        } else {
            holder.tvFlagsHeader.setVisibility(View.GONE);
            holder.tvFlags.setVisibility(View.GONE);
        }
    }

    @Override
    public int getItemCount() {
        return mData.size();
    }

    public static class ViewHolder extends RecyclerView.ViewHolder {

// Path: app/src/main/java/com/livingstoneapp/helpers/RecyclerViewOnClickListener.java
// public interface RecyclerViewOnClickListener<T> {
//     void onItemClick(T item);
// }
// 
// Path: app/src/main/java/com/livingstoneapp/helpers/RecyclerViewOnClickListenerInternal.java
// public interface RecyclerViewOnClickListenerInternal {
//     void onItemClick(int position);
// }
// 
// Path: app/src/main/java/com/livingstoneapp/models/ServiceInfoInternal.java
// public class ServiceInfoInternal {
//     private String mName;
//     private boolean mEnabled;
//     private boolean mExported;
//     private String mProcessName;
//     private String mPermission;
//     private ArrayList<String> mFlags;
// 
//     public ServiceInfoInternal(String mName, boolean mEnabled, boolean mExported, String mProcessName, String mPermission, ArrayList<String> mFlags) {
//         this.mName = mName;
//         this.mEnabled = mEnabled;
//         this.mExported = mExported;
//         this.mProcessName = mProcessName;
//         this.mPermission = mPermission;
//         this.mFlags = mFlags;
//     }
// 
//     public boolean isEnabled() {
//         return mEnabled;
//     }
// 
//     public boolean isExported() {
//         return mExported;
//     }
// 
//     public ArrayList<String> getFlags() {
//         return mFlags;
//     }
// 
//     public String getName() {
//         return mName;
//     }
// 
//     public String getPermission() {
//         return mPermission;
//     }
// 
//     public String getProcessName() {
//         return mProcessName;
//     }
// }


// Path: app/src/main/java/com/livingstoneapp/adapters/ServicesAdapter.java
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import java.util.List;
import butterknife.Bind;
import butterknife.ButterKnife;
import com.livingstoneapp.R;
import com.livingstoneapp.helpers.RecyclerViewOnClickListener;
import com.livingstoneapp.helpers.RecyclerViewOnClickListenerInternal;
import com.livingstoneapp.models.ServiceInfoInternal;

        } else {
            holder.tvPermissionHeader.setVisibility(View.GONE);
            holder.tvPermission.setVisibility(View.GONE);
        }

        if (!si.getFlags().isEmpty()) {
            holder.tvFlagsHeader.setVisibility(View.VISIBLE);
            holder.tvFlags.setVisibility(View.VISIBLE);

            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < si.getFlags().size(); i++) {
                if (i != 0)
                    sb.append("\n");

                sb.append(si.getFlags().get(i));
            }
            holder.tvFlags.setText(sb);
        } else {
            holder.tvFlagsHeader.setVisibility(View.GONE);
            holder.tvFlags.setVisibility(View.GONE);
        }
    }

    @Override
    public int getItemCount() {
        return mData.size();
    }

    public static class ViewHolder extends RecyclerView.ViewHolder {

        private RecyclerViewOnClickListenerInternal mListener;