com.androguide.honamicontrol.kernel.KernelFragment.java Source code

Java tutorial

Introduction

Here is the source code for com.androguide.honamicontrol.kernel.KernelFragment.java

Source

/**   Copyright (C) 2013  Louis Teboul (a.k.a Androguide)
 *
 *    admin@pimpmyrom.org  || louisteboul@gmail.com
 *    http://pimpmyrom.org || http://androguide.fr
 *    71 quai Clmenceau, 69300 Caluire-et-Cuire, FRANCE.
 *
 *     This program is free software; you can redistribute it and/or modify
 *     it under the terms of the GNU General Public License as published by
 *     the Free Software Foundation; either version 2 of the License, or
 *     (at your option) any later version.
 *
 *     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, write to the Free Software Foundation, Inc.,
 *      51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 **/

package com.androguide.honamicontrol.kernel;

import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.app.ActionBarActivity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout;
import android.widget.Spinner;

import com.androguide.honamicontrol.R;
import com.androguide.honamicontrol.cards.CardImageLocal;
import com.androguide.honamicontrol.helpers.Helpers;
import com.androguide.honamicontrol.kernel.colorcontrol.ColorControlActivity;
import com.androguide.honamicontrol.kernel.colorcontrol.ColorControlInterface;
import com.androguide.honamicontrol.kernel.cpucontrol.CPUActivity;
import com.androguide.honamicontrol.kernel.gpucontrol.GPUActivity;
import com.androguide.honamicontrol.kernel.iotweaks.IOTweaksActivity;
import com.androguide.honamicontrol.kernel.memory.MemoryManagementActivity;
import com.androguide.honamicontrol.kernel.misc.MiscActivity;
import com.androguide.honamicontrol.kernel.powermanagement.PowerManagementActivity;
import com.androguide.honamicontrol.kernel.voltagecontrol.VoltageActivity;
import com.androguide.honamicontrol.kernel.voltagecontrol.VoltageInterface;
import com.androguide.honamicontrol.profiles.BalancedProfile;
import com.androguide.honamicontrol.profiles.BatteryMaxProfile;
import com.androguide.honamicontrol.profiles.BatteryProfile;
import com.androguide.honamicontrol.profiles.BenchmarkProfile;
import com.androguide.honamicontrol.profiles.PerformanceProfile;
import com.androguide.honamicontrol.profiles.ProfileEnabler;
import com.fima.cardsui.objects.Card;
import com.fima.cardsui.objects.CardStack;
import com.fima.cardsui.views.CardUI;

import java.util.ArrayList;

public class KernelFragment extends Fragment {

    private static ArrayList<Card> mCards;
    private static int profileCounter = 0;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        setHasOptionsMenu(true);
        LinearLayout ll = (LinearLayout) inflater.inflate(R.layout.cardsui, container, false);
        final ActionBarActivity fa = (ActionBarActivity) super.getActivity();
        fa.getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        fa.getSupportActionBar().setHomeButtonEnabled(true);

        assert ll != null;
        CardUI mCardUI = (CardUI) (ll.findViewById(R.id.cardsui));
        mCardUI.addStack(new CardStack(""), true);

        String sectionColor = fa.getString(R.string.kernel_color);

        CardImageLocal cpuControl = new CardImageLocal(fa.getString(R.string.kernel_cpu_control),
                fa.getString(R.string.kernel_cpu_control_desc), sectionColor, R.drawable.ic_tools_cpu_control, fa);

        cpuControl.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                fa.startActivity(new Intent(fa, CPUActivity.class));
            }
        });

        CardImageLocal voltageControl = new CardImageLocal(fa.getString(R.string.voltage_control),
                fa.getString(R.string.voltage_control_text), sectionColor, R.drawable.ic_tools_voltage_control, fa);

        voltageControl.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                fa.startActivity(new Intent(fa, VoltageActivity.class));
            }
        });

        CardImageLocal gpuControl = new CardImageLocal(fa.getString(R.string.kernel_gpu_control),
                fa.getString(R.string.kernel_gpu_control_desc), sectionColor, R.drawable.ic_tools_gpu_control, fa);

        gpuControl.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                fa.startActivity(new Intent(fa, GPUActivity.class));
            }
        });

        CardImageLocal gammaControl = new CardImageLocal(fa.getString(R.string.color_calibration),
                fa.getString(R.string.gamma_control_desc), sectionColor, R.drawable.ic_tools_color_calibration, fa);

        gammaControl.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                fa.startActivity(new Intent(fa, ColorControlActivity.class));
            }
        });

        CardImageLocal powerManagement = new CardImageLocal(fa.getString(R.string.kernel_power_management),
                fa.getString(R.string.kernel_power_management_desc), sectionColor,
                R.drawable.ic_tools_power_management, fa);

        powerManagement.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                fa.startActivity(new Intent(fa, PowerManagementActivity.class));
            }
        });

        CardImageLocal ioTweaks = new CardImageLocal(fa.getString(R.string.kernel_io_tweaks),
                fa.getString(R.string.kernel_io_tweaks_desc), sectionColor, R.drawable.ic_tools_io_tweaks, fa);

        ioTweaks.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                fa.startActivity(new Intent(fa, IOTweaksActivity.class));
            }
        });

        CardImageLocal mm = new CardImageLocal(fa.getString(R.string.memory_management),
                fa.getString(R.string.memory_management_text), sectionColor, R.drawable.ic_tools_mm, fa);

        mm.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                fa.startActivity(new Intent(fa, MemoryManagementActivity.class));
            }
        });

        CardImageLocal misc = new CardImageLocal(fa.getString(R.string.kernel_misc),
                fa.getString(R.string.kernel_misc_desc), sectionColor, R.drawable.ic_tools_misc, fa);

        misc.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                fa.startActivity(new Intent(fa, MiscActivity.class));
            }
        });

        mCardUI.addCard(cpuControl);

        if (Helpers.doesFileExist(VoltageInterface.UV_MV_TABLE))
            mCardUI.addCard(voltageControl);

        mCardUI.addCard(gpuControl);

        if (Helpers.doesFileExist(ColorControlInterface.GAMMA_KCAL))
            mCardUI.addCard(gammaControl);

        mCardUI.addCard(powerManagement);
        mCardUI.addCard(ioTweaks);
        mCardUI.addCard(mm);
        mCardUI.addCard(misc);
        mCardUI.refresh();
        return ll;
    }

    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        inflater.inflate(R.menu.profiles, menu);
        MenuItem item = menu.findItem(R.id.profile_spinner);
        View spinner = item != null ? item.getActionView() : null;
        if (spinner instanceof android.widget.Spinner) {
            final SharedPreferences profilePrefs = super.getActivity().getSharedPreferences("PROFILES", 0);
            Spinner profiles = (Spinner) spinner;
            profiles.setAdapter(ArrayAdapter.createFromResource(super.getActivity(), R.array.profiles_array,
                    R.layout.spinner_action_row));
            profiles.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

                @Override
                public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
                    final int currProfile = profilePrefs.getInt("CURR_PROFILE", 5);
                    ActionBarActivity context = (ActionBarActivity) getActivity();
                    switch (i) {
                    case 0:
                        if (profileCounter > 0 && i != currProfile)
                            ProfileEnabler.enableProfile(new BatteryMaxProfile(), context);
                        profileCounter++;
                        break;
                    case 1:
                        if (profileCounter > 0 && i != currProfile)
                            ProfileEnabler.enableProfile(new BatteryProfile(), context);
                        profileCounter++;
                        break;
                    case 2:
                        if (profileCounter > 0 && i != currProfile)
                            ProfileEnabler.enableProfile(new BalancedProfile(), context);
                        profileCounter++;
                        break;
                    case 3:
                        if (profileCounter > 0 && i != currProfile)
                            ProfileEnabler.enableProfile(new PerformanceProfile(), context);
                        profileCounter++;
                        break;
                    case 4:
                        if (profileCounter > 0 && i != currProfile)
                            ProfileEnabler.enableProfile(new BenchmarkProfile(), context);
                        profileCounter++;
                        break;
                    }
                    profilePrefs.edit().putInt("CURR_PROFILE", i).commit();
                }

                @Override
                public void onNothingSelected(AdapterView<?> adapterView) {

                }
            });

            profiles.setSelection(profilePrefs.getInt("CURR_PROFILE", 5));
        }
    }
}