Skip to content

Commit 6e183b7

Browse files
committed
add cpu settings ui
1 parent 841eb21 commit 6e183b7

File tree

10 files changed

+160
-13
lines changed

10 files changed

+160
-13
lines changed

app/src/main/java/com/fadisu/cpurun/activity/MainActivity.java

+10-1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import com.fadisu.cpurun.fragment.CpuInfoFragment;
1616
import com.fadisu.cpurun.fragment.CpuRunTimeFragment;
1717
import com.fadisu.cpurun.fragment.CpuSceneFragment;
18+
import com.fadisu.cpurun.fragment.CpuSettingsFragment;
1819
import com.fadisu.cpurun.fragment.CpuStatusFragment;
1920
import com.fadisu.cpurun.fragment.CpuVoltageFragment;
2021
import com.fadisu.cpurun.fragment.DisplayFragment;
@@ -43,6 +44,7 @@ public class MainActivity extends FragmentActivity implements View.OnClickListen
4344
private Fragment mCpuRunTimeFragment;
4445
private Fragment mCpuVoltageFragment;
4546
private Fragment mTemperatureFragment;
47+
private Fragment mCpuSettingsFragment;
4648
private FragmentManager mFragmentManager;
4749

4850
private RadioButton mSysRb;
@@ -58,6 +60,7 @@ public class MainActivity extends FragmentActivity implements View.OnClickListen
5860
private RadioButton mCpuSceneFreq;
5961
private RadioButton mCpuVoltageRb;
6062
private RadioButton mTemperatureRb;
63+
private RadioButton mCpuSettingsRb;
6164

6265
@Override
6366
protected void onCreate(Bundle savedInstanceState) {
@@ -92,10 +95,12 @@ private void initViews() {
9295
mCpuSceneFreq = (RadioButton) findViewById(R.id.rb_scene_freq);
9396
mCpuVoltageRb = (RadioButton) findViewById(R.id.rb_cpu_voltage);
9497
mTemperatureRb = (RadioButton) findViewById(R.id.rb_temperature);
98+
mCpuSettingsRb = (RadioButton) findViewById(R.id.rb_cpu_settings);
9599
}
96100

97101
private void initValues() {
98102
currentFragmentTag = MainActivity.class.getSimpleName();
103+
mFragmentManager = getSupportFragmentManager();
99104

100105
mMoreFragmen = new MoreFragment();
101106
mPropFragment = new PropFragment();
@@ -108,9 +113,9 @@ private void initValues() {
108113
mCpuSceneFragment = new CpuSceneFragment();
109114
mCpuStatusFragment = new CpuStatusFragment();
110115
mCpuRunTimeFragment = new CpuRunTimeFragment();
111-
mFragmentManager = getSupportFragmentManager();
112116
mCpuVoltageFragment = new CpuVoltageFragment();
113117
mTemperatureFragment = new TemperatureFragment();
118+
mCpuSettingsFragment = new CpuSettingsFragment();
114119

115120
changeFrament(mBaseInfoFragment, null, CoreInfoFragment.class.getSimpleName());
116121
}
@@ -129,6 +134,7 @@ private void initLisener() {
129134
mCpuSceneFreq.setOnClickListener(this);
130135
mCpuVoltageRb.setOnClickListener(this);
131136
mTemperatureRb.setOnClickListener(this);
137+
mCpuSettingsRb.setOnClickListener(this);
132138
}
133139

134140
/**
@@ -155,6 +161,9 @@ public void changeFrament(Fragment fragment, Bundle bundle, String tag) {
155161
@Override
156162
public void onClick(View view) {
157163
switch (view.getId()) {
164+
case R.id.rb_cpu_settings:
165+
changeFrament(mCpuSettingsFragment, null, CpuSettingsFragment.class.getSimpleName());
166+
break;
158167
case R.id.rb_temperature:
159168
changeFrament(mTemperatureFragment, null, TemperatureFragment.class.getSimpleName());
160169
break;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
package com.fadisu.cpurun.fragment;
2+
3+
import android.app.AlertDialog;
4+
import android.content.Context;
5+
import android.content.DialogInterface;
6+
import android.os.Bundle;
7+
import android.support.v4.app.Fragment;
8+
import android.view.LayoutInflater;
9+
import android.view.View;
10+
import android.view.ViewGroup;
11+
import android.widget.LinearLayout;
12+
import android.widget.TextView;
13+
14+
import com.fadisu.cpurun.R;
15+
import com.fadisu.cpurun.util.CpuUtils;
16+
17+
public class CpuSettingsFragment extends Fragment implements View.OnClickListener {
18+
19+
private Context mContext;
20+
21+
private final static String[] GOVERNORS = CpuUtils.getCpuAvailableGovernorsList();
22+
23+
private View mView;
24+
private TextView tv_cpu_governor_content;
25+
private LinearLayout ll_cpu_governor_content;
26+
27+
@Override
28+
public void onAttach(Context context) {
29+
super.onAttach(context);
30+
mContext = context;
31+
}
32+
33+
@Override
34+
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
35+
mView = inflater.inflate(R.layout.fragment_settings, container, false);
36+
initViews();
37+
initValues();
38+
initListeners();
39+
return mView;
40+
}
41+
42+
private void initViews() {
43+
tv_cpu_governor_content = (TextView) mView.findViewById(R.id.tv_cpu_governor_content);
44+
ll_cpu_governor_content = (LinearLayout) mView.findViewById(R.id.ll_cpu_governor_content);
45+
}
46+
47+
private void initValues() {
48+
tv_cpu_governor_content.setText(CpuUtils.getCpuGovernor());
49+
}
50+
51+
private void initListeners() {
52+
ll_cpu_governor_content.setOnClickListener(this);
53+
}
54+
55+
@Override
56+
public void onClick(View view) {
57+
switch (view.getId()) {
58+
case R.id.ll_cpu_governor_content:
59+
showGovernorDialog();
60+
break;
61+
}
62+
}
63+
64+
private void showGovernorDialog() {
65+
AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
66+
builder.setItems(GOVERNORS, new DialogInterface.OnClickListener() {
67+
68+
@Override
69+
public void onClick(DialogInterface dialog, int which) {
70+
tv_cpu_governor_content.setText(GOVERNORS[which]);
71+
}
72+
});
73+
builder.show();
74+
}
75+
}

app/src/main/java/com/fadisu/cpurun/util/CpuUtils.java

+15
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,21 @@ public static String getCpuAvailableGovernorsSimple() {
189189
return result;
190190
}
191191

192+
public static String[] getCpuAvailableGovernorsList() {
193+
String result[] = null;
194+
try {
195+
String line;
196+
BufferedReader br = new BufferedReader(new FileReader("/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors"));
197+
if ((line = br.readLine()) != null) {
198+
result = line.split("\\s+");
199+
}
200+
br.close();
201+
} catch (IOException e) {
202+
e.printStackTrace();
203+
}
204+
return result;
205+
}
206+
192207
/**
193208
* CPU 支持的调频策略
194209
*

app/src/main/res/layout/activity_main.xml

+11
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,17 @@
3535
style="@style/main_title_radio"
3636
android:text="@string/title_cpu_status" />
3737

38+
39+
<View
40+
android:layout_width="0.5dip"
41+
android:layout_height="match_parent"
42+
android:background="@color/title_divider_bg" />
43+
44+
<RadioButton
45+
android:id="@+id/rb_cpu_settings"
46+
style="@style/main_title_radio"
47+
android:text="@string/title_cpu_settings" />
48+
3849
<View
3950
android:layout_width="0.5dip"
4051
android:layout_height="match_parent"

app/src/main/res/layout/floatwindow_cpu_status.xml

-12
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:orientation="vertical" android:layout_width="match_parent"
4+
android:layout_height="match_parent">
5+
6+
<LinearLayout
7+
android:id="@+id/ll_cpu_governor_content"
8+
android:layout_width="match_parent"
9+
android:layout_height="@dimen/item_height_list"
10+
android:layout_marginLeft="@dimen/item_margin_list"
11+
android:layout_marginRight="@dimen/item_margin_list"
12+
android:gravity="center_vertical"
13+
android:orientation="vertical">
14+
15+
<TextView
16+
android:layout_width="wrap_content"
17+
android:layout_height="wrap_content"
18+
android:text="@string/settings_cpu_governor_title"
19+
android:textColor="@color/item_title_color"
20+
android:textSize="@dimen/item_title_size" />
21+
22+
<TextView
23+
android:id="@+id/tv_cpu_governor_content"
24+
android:layout_width="wrap_content"
25+
android:layout_height="wrap_content"
26+
android:text="@string/settings_cpu_governor_content"
27+
android:textColor="@color/item_content_color"
28+
android:textSize="@dimen/item_content_size" />
29+
</LinearLayout>
30+
31+
</LinearLayout>

app/src/main/res/values-zh/strings.xml

+4
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
<string name="title_temperature">温度</string>
1919
<string name="title_float_window_open">打开悬浮窗</string>
2020
<string name="title_float_window_close">关闭悬浮窗</string>
21+
<string name="title_cpu_settings">CPU 设置</string>
2122

2223
<string name="cpu_core_number">CPU 核数: </string>
2324
<string name="cpu_bits">CPU 位数: </string>
@@ -73,4 +74,7 @@
7374
<string name="more_version_name">\n 版本名称:</string>
7475
<string name="more_source_code">\n 源码:\n </string>
7576
<string name="more_blog">\n 博客:\n </string>
77+
78+
<string name="settings_cpu_governor_title">CPU 调频策略</string>
79+
<string name="settings_cpu_governor_content">CPU 调频策略</string>
7680
</resources>

app/src/main/res/values/colors.xml

+3
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,7 @@
1515
<!-- 标题分隔线颜色 -->
1616
<color name="title_divider_bg">#2c495d</color>
1717
<color name="float_bg">#80000000</color>
18+
19+
<color name="item_title_color">#cc000000</color>
20+
<color name="item_content_color">#33000000</color>
1821
</resources>

app/src/main/res/values/dimens.xml

+7
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,11 @@
2828

2929
<dimen name="title_height_list">32dp</dimen>
3030
<dimen name="item_height_list">64dp</dimen>
31+
32+
<dimen name="item_title_size">16sp</dimen>
33+
<dimen name="item_content_size">12sp</dimen>
34+
<dimen name="group_item_margin_list">16dp</dimen>
35+
<dimen name="item_margin_list">24dp</dimen>
36+
<dimen name="item_image_height">40dp</dimen>
37+
<dimen name="item_image__width">40dp</dimen>
3138
</resources>

app/src/main/res/values/strings.xml

+4
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
<string name="title_temperature">Temperature</string>
1919
<string name="title_float_window_open">Open Float Window</string>
2020
<string name="title_float_window_close">Close Float Window</string>
21+
<string name="title_cpu_settings">CPU Settings</string>
2122

2223
<string name="cpu_core_number">CPU core number: </string>
2324
<string name="cpu_bits">CPU bit: </string>
@@ -73,4 +74,7 @@
7374
<string name="more_version_name">\n Version Name:</string>
7475
<string name="more_source_code">\n Source_code:\n </string>
7576
<string name="more_blog">\n Blog:\n </string>
77+
78+
<string name="settings_cpu_governor_title">CPU 调频策略</string>
79+
<string name="settings_cpu_governor_content">CPU 调频策略</string>
7680
</resources>

0 commit comments

Comments
 (0)