Skip to content

Commit 5c898af

Browse files
committed
1.setting中增加keep alive的开关
1 parent b25ade4 commit 5c898af

File tree

9 files changed

+60
-1
lines changed

9 files changed

+60
-1
lines changed

qpython/src/main/java/org/qpython/qpy/main/activity/HomeMainActivity.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ public class HomeMainActivity extends BaseActivity {
5959
private static final int LOGIN_REQUEST_CODE = 136;
6060

6161
private ActivityMainBinding binding;
62+
private SharedPreferences preferences;
6263

6364
public static void start(Context context) {
6465
Intent starter = new Intent(context, HomeMainActivity.class);
@@ -74,6 +75,7 @@ public static void start(Context context, String userName) {
7475
@Override
7576
protected void onCreate(Bundle savedInstanceState) {
7677
super.onCreate(savedInstanceState);
78+
preferences = PreferenceManager.getDefaultSharedPreferences(this);
7779
binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
7880
//App.setActivity(this);
7981
startMain();
@@ -215,6 +217,10 @@ public void onClick(DialogInterface dialogInterface, int i) {
215217
protected void onDestroy() {
216218
super.onDestroy();
217219
Bus.getDefault().unregister(this);
220+
boolean isKeepAlive = preferences.getBoolean(getString(R.string.key_alive), false);
221+
if (!isKeepAlive){
222+
return;
223+
}
218224
Cactus.getInstance().unregister(this);
219225
}
220226

@@ -250,6 +256,7 @@ private void handleNotification(Bundle bundle) {
250256
Intent starter = new Intent(Intent.ACTION_VIEW, Uri.parse(link));
251257
startActivity(starter);
252258
break;
259+
default:break;
253260
}
254261
}
255262
}
@@ -276,6 +283,7 @@ private void handleNotification() {
276283
Intent starter = new Intent(Intent.ACTION_VIEW, Uri.parse(link));
277284
startActivity(starter);
278285
break;
286+
default:break;
279287
}
280288
sharedPreferences.edit().clear().apply();
281289
} catch (JSONException e) {

qpython/src/main/java/org/qpython/qpy/main/app/App.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import android.content.res.Configuration;
88
import android.content.res.Resources;
99
import android.os.Build;
10+
import android.preference.PreferenceManager;
1011
import android.support.multidex.MultiDex;
1112
import android.support.v7.app.AppCompatActivity;
1213
import android.util.Log;
@@ -18,6 +19,7 @@
1819
import com.quseit.common.updater.downloader.DefaultDownloader;
1920
import com.squareup.leakcanary.LeakCanary;
2021

22+
import org.qpython.qpy.R;
2123
import org.qpython.qpy.main.server.Service;
2224
import org.qpython.qpy.main.server.gist.Api;
2325
import org.qpython.qpy.main.server.gist.TokenManager;
@@ -226,8 +228,19 @@ public void onCreate() {
226228
}
227229

228230
private void initCactus() {
231+
boolean isKeepAlive = PreferenceManager.getDefaultSharedPreferences(this).getBoolean(getString(R.string.key_alive), false);
232+
LogUtil.e("isKeepAlive:" + isKeepAlive);
233+
if (!isKeepAlive){
234+
LogUtil.e("doWork0000000");
235+
if (!isRunService( "org.qpython.qsl4a.QPyScriptService")) {
236+
startPyService();
237+
}
238+
return;
239+
}
229240
Cactus.getInstance()
230241
.isDebug(true)
242+
.setTitle("QPython")
243+
.setContent("QPython service is alive")
231244
.hideNotificationAfterO(false)
232245
.addCallback(new CactusCallback() {
233246
@Override

qpython/src/main/java/org/qpython/qpy/main/fragment/SettingFragment.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public class SettingFragment extends PreferenceFragment {
7171
private SharedPreferences settings;
7272
private Resources resources;
7373
private Preference mPassWordPref, username_pref, portnum_pref, chroot_pref, lastlog;
74-
private CheckBoxPreference sl4a, running_state, root, display_pwd, notebook_run;
74+
private CheckBoxPreference sl4a, running_state, root, display_pwd, notebook_run,keepAliveBox;
7575

7676
private PreferenceScreen py_inter,notebook_page;
7777
private Preference py3,py2; //notebook_res, py2compatible
@@ -169,6 +169,7 @@ private void initSettings() {
169169

170170

171171
root = (CheckBoxPreference) findPreference(resources.getString(R.string.key_root));
172+
keepAliveBox = (CheckBoxPreference) findPreference(resources.getString(R.string.key_alive));
172173
sl4a = (CheckBoxPreference) findPreference(resources.getString(R.string.key_sl4a));
173174
app = (SwitchPreference) findPreference(getString(R.string.key_hide_push));
174175
log = (SwitchPreference) findPreference(resources.getString(R.string.key_hide_noti));
@@ -185,6 +186,11 @@ private void initSettings() {
185186
root.setChecked(isRoot);
186187
root.setSummary(isRoot ? R.string.enable_root : R.string.disable_root);
187188

189+
boolean isKeepAlive;
190+
isKeepAlive = settings.getBoolean(getString(R.string.key_alive), false);
191+
keepAliveBox.setChecked(isKeepAlive);
192+
keepAliveBox.setSummary(isKeepAlive ? R.string.enable_keep_alive : R.string.disable_keep_alive);
193+
188194
isRunning = isMyServiceRunning(QPyScriptService.class);
189195
sl4a.setChecked(isRunning);
190196
sl4a.setSummary(isRunning ? R.string.sl4a_running : R.string.sl4a_un_running);
@@ -211,6 +217,7 @@ private void initSettings() {
211217

212218
SharedPreferences.Editor editor = settings.edit();
213219
editor.putBoolean(getString(R.string.key_root), root.isChecked());
220+
editor.putBoolean(getString(R.string.key_alive), keepAliveBox.isChecked());
214221
//editor.putString(getString(R.string.key_qpypi), qpypi.getSummary().toString());
215222
editor.putString(getString(R.string.key_username), username_pref.getSummary().toString());
216223
editor.putString(getString(R.string.key_ftp_pwd), settings.getString(mPassWordPref.getKey(), "ftp"));
@@ -305,6 +312,14 @@ private void initListener() {
305312
}
306313
});
307314

315+
keepAliveBox.setOnPreferenceChangeListener((preference, newValue) ->
316+
{
317+
boolean isCheck = (boolean) newValue;
318+
settings.edit().putBoolean(getString(R.string.key_alive), isCheck).apply();
319+
Toast.makeText(getActivity(), R.string.keep_alive_tips, Toast.LENGTH_SHORT).show();
320+
return true;
321+
});
322+
308323
sl4a.setOnPreferenceChangeListener((preference, newValue) ->
309324

310325
{

qpython/src/main/res/values-ja/strings.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -486,4 +486,7 @@
486486
<string name="switch_py3_hint">現在Python2を使用中です。Python3に切り替えますか?</string>
487487
<string name="goto_setting">設定に移動</string>
488488
<string name="net_lagging">ネットワークにラグが発生しています。しばらくお待ちください。</string>
489+
<string name="enable_keep_alive">Enable Keep Alive</string>
490+
<string name="disable_keep_alive">Disable</string>
491+
<string name="keep_alive_tips">Application restart is required to take effect.</string>
489492
</resources>

qpython/src/main/res/values-ru/strings.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -430,4 +430,7 @@ w <string name="confirm">Подтвердить</string>
430430
<string name="me">Я</string>
431431
<string name="grant_storage_hint">Необходимо получить разрешение для доступа к хранилищу.</string>
432432
<string name="lost_google_hint">Не могу подключиться к серверу Google. Пожалуйста, проверьте ваше соединение.</string>
433+
<string name="enable_keep_alive">Enable Keep Alive</string>
434+
<string name="disable_keep_alive">Disable</string>
435+
<string name="keep_alive_tips">Application restart is required to take effect.</string>
433436
</resources>

qpython/src/main/res/values-zh-rCN/strings.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -450,5 +450,8 @@
450450
<string name="run">运行</string>
451451
<string name="install_kivy_first">请先从QPYPI中安装kivy库</string>
452452
<string name="get_help">获得帮助</string>
453+
<string name="enable_keep_alive">Enable Keep Alive</string>
454+
<string name="disable_keep_alive">Disable</string>
455+
<string name="keep_alive_tips">Application restart is required to take effect.</string>
453456

454457
</resources>

qpython/src/main/res/values-zh-rTW/strings.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,5 +291,8 @@
291291
<string name="funding">衆籌</string>
292292
<string name="c_funding">衆籌中</string>
293293
<string name="get_help">獲得幫助</string>
294+
<string name="enable_keep_alive">Enable Keep Alive</string>
295+
<string name="disable_keep_alive">Disable</string>
296+
<string name="keep_alive_tips">Application restart is required to take effect.</string>
294297

295298
</resources>

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -720,6 +720,7 @@
720720
<string name="project_main_error"> Project\'s main.py does not exit</string>
721721

722722
<string name="key_root" translatable="false">root</string>
723+
<string name="key_alive" translatable="false">keep alive</string>
723724
<string name="key_sl4a" translatable="false">sl4a</string>
724725
<string name="key_qpypi" translatable="false">qpypi</string>
725726
<string name="key_update_qpy3" translatable="false">update_py3</string>
@@ -734,5 +735,9 @@
734735

735736

736737
<string name="editor_override">Do you want to override?</string>
738+
<string name="enable_keep_alive">Enable Keep Alive</string>
739+
<string name="disable_keep_alive">Disable</string>
740+
<string name="keep_alive_mode">Keep Alive Mode</string>
741+
<string name="keep_alive_tips">Application restart is required to take effect.</string>
737742

738743
</resources>

qpython/src/main/res/xml/qpython_setting.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,12 @@
109109
</PreferenceCategory>
110110
</PreferenceScreen>
111111

112+
<CheckBoxPreference
113+
android:key="@string/key_alive"
114+
android:summaryOn="@string/enable_keep_alive"
115+
android:summaryOff="@string/disable_keep_alive"
116+
android:title="@string/keep_alive_mode"/>
117+
112118
<CheckBoxPreference
113119
android:key="@string/key_root"
114120
android:summaryOn="@string/enable_root"

0 commit comments

Comments
 (0)