Migrate to gradle, appcompat as external dependency.
[mobilnebezpieczenstwo.git] / app / src / main / java / com / samsung / srpol / ui / tabpager / PageFragment.java
diff --git a/app/src/main/java/com/samsung/srpol/ui/tabpager/PageFragment.java b/app/src/main/java/com/samsung/srpol/ui/tabpager/PageFragment.java
new file mode 100644 (file)
index 0000000..bdb7a22
--- /dev/null
@@ -0,0 +1,133 @@
+/*
+   Copyright (C) 2014  Samsung Electronics Polska Sp. z o.o.
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU AFFERO General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+    You may obtain a copy of the License at
+
+                http://www.gnu.org/licenses/agpl-3.0.txt
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package com.samsung.srpol.ui.tabpager;
+
+import com.nhaarman.listviewanimations.appearance.AnimationAdapter;
+import com.nhaarman.listviewanimations.appearance.simple.AlphaInAnimationAdapter;
+import com.samsung.srpol.R;
+import com.samsung.srpol.data.Category;
+import com.samsung.srpol.data.Subcategory;
+import com.samsung.srpol.loader.AppListLoader;
+import com.samsung.srpol.parallax.ParallaxListView;
+import com.samsung.srpol.ui.AppInfoActivity;
+import com.samsung.srpol.ui.PopupActivity;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.View.OnClickListener;
+import android.widget.AdapterView;
+import android.widget.ImageButton;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.ListView;
+import android.widget.TextView;
+import android.widget.AdapterView.OnItemClickListener;
+
+public class PageFragment extends Fragment {
+
+    private AppListArrayAdapter mAppListArrayAdapter;
+    private Category mCategory;
+    private int mPosition;
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        mPosition = getArguments() != null ? getArguments().getInt("position") : 0;
+        setRetainInstance(true);
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+            Bundle savedInstanceState) {
+        View rootView = inflater.inflate(R.layout.fragment_main, container, false);
+        
+        LinearLayout headerLayout = (LinearLayout) inflater.inflate(R.layout.header_layout, container, false);
+        headerLayout.setLayoutParams(new ListView.LayoutParams(
+                ListView.LayoutParams.MATCH_PARENT, ListView.LayoutParams.WRAP_CONTENT));
+        if (mCategory == null) {
+            if (AppListLoader.getCategories() != null) {
+                mCategory = AppListLoader.getCategories().get(mPosition);
+            } else {
+                return rootView;
+            }
+        }
+        TextView header = (TextView) headerLayout.findViewById(R.id.section_label);
+        if (header != null) {
+            header.setText(mCategory.getDescription());
+        }
+        
+        TextView headerLabel = (TextView) rootView.findViewById(R.id.header_label);
+        if (headerLabel != null) {
+            String titleSufix = getActivity().getString(R.string.apps_that);
+            headerLabel.setText(titleSufix.concat(mCategory.getHeader()));
+        }
+        
+        //Header icons Click
+        LinearLayout groupIcons = (LinearLayout) headerLayout.findViewById(R.id.group_icons);
+        for (Subcategory subgroup : mCategory.getSubCategories()) {
+            ImageView icon = new ImageView(getActivity());
+            icon.setImageDrawable(subgroup.getIconDrawable());
+            groupIcons.addView(icon);
+        }
+
+        //Header More click
+        ImageButton moreButton = (ImageButton) headerLayout.findViewById(R.id.legend_btn);
+        moreButton.setOnClickListener(new OnClickListener() {
+
+            @Override
+            public void onClick(View arg0) {
+                Intent intent = new Intent(getActivity(), PopupActivity.class);
+                intent.putExtra(PopupActivity.POPUP_CATEGORY, mPosition);
+                getActivity().startActivity(intent);
+            }
+        });
+
+        // List with applications
+        ParallaxListView listview = (ParallaxListView) rootView.findViewById(R.id.listview);
+        listview.addParallaxedHeaderView(headerLayout);
+        mAppListArrayAdapter = new AppListArrayAdapter(getActivity(), mCategory);
+        AnimationAdapter adapter = new AlphaInAnimationAdapter(mAppListArrayAdapter);
+        adapter.setAbsListView(listview);
+        listview.setAdapter(adapter);
+        listview.setOnItemClickListener(new OnItemClickListener() {
+
+            @Override
+            public void onItemClick(AdapterView<?> parent, View view,
+                    int positionInAdapter, long id) {
+                Intent intent = new Intent(getActivity(), AppInfoActivity.class);
+                intent.putExtra(AppInfoActivity.APP_PACKAGE_NAME,
+                        mAppListArrayAdapter.getItem(positionInAdapter - 1).getAppPackageName());
+                getActivity().startActivity(intent);
+            }
+        });
+        
+        return rootView;
+    }
+
+    public void notifyDataSetChanged() {
+        mAppListArrayAdapter.notifyDataSetChanged();
+    }
+
+}