jlindsey15/RAM

Mobile phone ram enlarge

Opened this issue · 0 comments

/*

  • Copyright (C) 2015-2016 Willi Ye williye97@gmail.com
  • This file is part of Kernel Adiutor.
  • Kernel Adiutor 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 3 of the License, or
  • (at your option) any later version.
  • Kernel Adiutor 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 Kernel Adiutor. If not, see http://www.gnu.org/licenses/.

*/
package com.grarak.kerneladiutor.fragments.kernel;

import android.text.InputType;

import com.grarak.kerneladiutor.R;
import com.grarak.kerneladiutor.fragments.ApplyOnBootFragment;
import com.grarak.kerneladiutor.fragments.recyclerview.RecyclerViewFragment;
import com.grarak.kerneladiutor.utils.kernel.vm.VM;
import com.grarak.kerneladiutor.utils.kernel.vm.ZRAM;
import com.grarak.kerneladiutor.utils.kernel.vm.ZSwap;
import com.grarak.kerneladiutor.views.recyclerview.CardView;
import com.grarak.kerneladiutor.views.recyclerview.GenericSelectView;
import com.grarak.kerneladiutor.views.recyclerview.RecyclerViewItem;
import com.grarak.kerneladiutor.views.recyclerview.SeekBarView;
import com.grarak.kerneladiutor.views.recyclerview.SwitchView;
import com.grarak.kerneladiutor.views.recyclerview.TitleView;

import java.util.ArrayList;
import java.util.List;

/**

  • Created by willi on 29.06.16.
    */
    public class VMFragment extends RecyclerViewFragment {

    private List mVMs = new ArrayList<>();

    @OverRide
    protected void init() {
    super.init();

     addViewPagerFragment(ApplyOnBootFragment.newInstance(this));
    

    }

    @OverRide
    protected void addItems(List items) {
    mVMs.clear();
    for (int i = 0; i < VM.size(); i++) {
    if (VM.exists(i)) {
    GenericSelectView vm = new GenericSelectView();
    vm.setSummary(VM.getName(i));
    vm.setValue(VM.getValue(i));
    vm.setValueRaw(vm.getValue());
    vm.setInputType(InputType.TYPE_CLASS_NUMBER);

             final int position = i;
             vm.setOnGenericValueListener((genericSelectView, value) -> {
                 VM.setValue(value, position, getActivity());
                 genericSelectView.setValue(value);
                 refreshVMs();
             });
    
             items.add(vm);
             mVMs.add(vm);
         }
     }
    
     if (RAM.supported()) {
         ramInit(items);
     }
     zswapInit(items);
    

    }

    private void zramInit(List items) {
    TitleView zramTitle = new TitleView();
    zramTitle.setText(getString(R.string.zram));
    items.add(zramTitle);

     SeekBarView ram = new SeekBarView();
     ram.setTitle(getString(R.string.disksize));
     ram.setSummary(getString(R.string.disksize_summary));
     ram.setUnit(getString(R.string.mb));
     ram.setMax(400);
     ram.setOffset(16);
     ram.setProgress(ZRAM.getDisksize() / 16);
     ram.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
         @Override
         public void onStop(SeekBarView seekBarView, int position, String value) {
             RAM.setDisksize(position * 16, getActivity());
         }
    
         @Override
         public void onMove(SeekBarView seekBarView, int position, String value) {
         }
     });
    
     items.add(ram);
    

    }

    private void zswapInit(List items) {
    CardView zswapCard = new CardView();
    zswapCard.setTitle(getString(R.string.zswap));

     if (ZSwap.hasEnable()) {
         SwitchView zswap = new SwitchView();
         zswap.setTitle(getString(R.string.zswap));
         zswap.setSummary(getString(R.string.zswap_summary));
         zswap.setChecked(ZSwap.isEnabled());
         zswap.addOnSwitchListener((switchView, isChecked)
                 -> ZSwap.enable(isChecked, getActivity()));
    
         zswapCard.addItem(zswap);
     }
    
     if (ZSwap.hasMaxPoolPercent()) {
         SeekBarView maxPoolPercent = new SeekBarView();
         maxPoolPercent.setTitle(getString(R.string.memory_pool));
         maxPoolPercent.setSummary(getString(R.string.memory_pool_summary));
         maxPoolPercent.setUnit("%");
         maxPoolPercent.setMax(50);
         maxPoolPercent.setProgress(ZSwap.getMaxPoolPercent());
         maxPoolPercent.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
             @Override
             public void onStop(SeekBarView seekBarView, int position, String value) {
                 ZSwap.setMaxPoolPercent(position, getActivity());
             }
    
             @Override
             public void onMove(SeekBarView seekBarView, int position, String value) {
             }
         });
    
         zswapCard.addItem(maxPoolPercent);
     }
    
     if (ZSwap.hasMaxCompressionRatio()) {
         SeekBarView maxCompressionRatio = new SeekBarView();
         maxCompressionRatio.setTitle(getString(R.string.maximum_compression_ratio));
         maxCompressionRatio.setSummary(getString(R.string.maximum_compression_ratio_summary));
         maxCompressionRatio.setUnit("%");
         maxCompressionRatio.setProgress(ZSwap.getMaxCompressionRatio());
         maxCompressionRatio.setOnSeekBarListener(new SeekBarView.OnSeekBarListener() {
             @Override
             public void onStop(SeekBarView seekBarView, int position, String value) {
                 ZSwap.setMaxCompressionRatio(position, getActivity());
             }
    
             @Override
             public void onMove(SeekBarView seekBarView, int position, String value) {
             }
         });
    
         zswapCard.addItem(maxCompressionRatio);
     }
    
     if (zswapCard.size() > 0) {
         items.add(zswapCard);
     }
    

    }

    private void refreshVMs() {
    getHandler().postDelayed(() -> {
    for (int i = 0; i < mVMs.size(); i++) {
    mVMs.get(i).setValue(VM.getValue(i));
    mVMs.get(i).setValueRaw(mVMs.get(i).getValue());
    }
    }, 250);/ , 255);/
    }

}