Skip to content
Open
Prev Previous commit
Next Next commit
1.setting中增加keep alive的开关
  • Loading branch information
lodgkk committed Apr 17, 2020
commit 5c898af727a6c5c341a83395455053eaa727edae
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ public class HomeMainActivity extends BaseActivity {
private static final int LOGIN_REQUEST_CODE = 136;

private ActivityMainBinding binding;
private SharedPreferences preferences;

public static void start(Context context) {
Intent starter = new Intent(context, HomeMainActivity.class);
Expand All @@ -74,6 +75,7 @@ public static void start(Context context, String userName) {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
preferences = PreferenceManager.getDefaultSharedPreferences(this);
binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
//App.setActivity(this);
startMain();
Expand Down Expand Up @@ -215,6 +217,10 @@ public void onClick(DialogInterface dialogInterface, int i) {
protected void onDestroy() {
super.onDestroy();
Bus.getDefault().unregister(this);
boolean isKeepAlive = preferences.getBoolean(getString(R.string.key_alive), false);
if (!isKeepAlive){
return;
}
Cactus.getInstance().unregister(this);
}

Expand Down Expand Up @@ -250,6 +256,7 @@ private void handleNotification(Bundle bundle) {
Intent starter = new Intent(Intent.ACTION_VIEW, Uri.parse(link));
startActivity(starter);
break;
default:break;
}
}
}
Expand All @@ -276,6 +283,7 @@ private void handleNotification() {
Intent starter = new Intent(Intent.ACTION_VIEW, Uri.parse(link));
startActivity(starter);
break;
default:break;
}
sharedPreferences.edit().clear().apply();
} catch (JSONException e) {
Expand Down
13 changes: 13 additions & 0 deletions qpython/src/main/java/org/qpython/qpy/main/app/App.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import android.content.res.Configuration;
import android.content.res.Resources;
import android.os.Build;
import android.preference.PreferenceManager;
import android.support.multidex.MultiDex;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
Expand All @@ -18,6 +19,7 @@
import com.quseit.common.updater.downloader.DefaultDownloader;
import com.squareup.leakcanary.LeakCanary;

import org.qpython.qpy.R;
import org.qpython.qpy.main.server.Service;
import org.qpython.qpy.main.server.gist.Api;
import org.qpython.qpy.main.server.gist.TokenManager;
Expand Down Expand Up @@ -226,8 +228,19 @@ public void onCreate() {
}

private void initCactus() {
boolean isKeepAlive = PreferenceManager.getDefaultSharedPreferences(this).getBoolean(getString(R.string.key_alive), false);
LogUtil.e("isKeepAlive:" + isKeepAlive);
if (!isKeepAlive){
LogUtil.e("doWork0000000");
if (!isRunService( "org.qpython.qsl4a.QPyScriptService")) {
startPyService();
}
return;
}
Cactus.getInstance()
.isDebug(true)
.setTitle("QPython")
.setContent("QPython service is alive")
.hideNotificationAfterO(false)
.addCallback(new CactusCallback() {
@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ public class SettingFragment extends PreferenceFragment {
private SharedPreferences settings;
private Resources resources;
private Preference mPassWordPref, username_pref, portnum_pref, chroot_pref, lastlog;
private CheckBoxPreference sl4a, running_state, root, display_pwd, notebook_run;
private CheckBoxPreference sl4a, running_state, root, display_pwd, notebook_run,keepAliveBox;

private PreferenceScreen py_inter,notebook_page;
private Preference py3,py2; //notebook_res, py2compatible
Expand Down Expand Up @@ -169,6 +169,7 @@ private void initSettings() {


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

boolean isKeepAlive;
isKeepAlive = settings.getBoolean(getString(R.string.key_alive), false);
keepAliveBox.setChecked(isKeepAlive);
keepAliveBox.setSummary(isKeepAlive ? R.string.enable_keep_alive : R.string.disable_keep_alive);

isRunning = isMyServiceRunning(QPyScriptService.class);
sl4a.setChecked(isRunning);
sl4a.setSummary(isRunning ? R.string.sl4a_running : R.string.sl4a_un_running);
Expand All @@ -211,6 +217,7 @@ private void initSettings() {

SharedPreferences.Editor editor = settings.edit();
editor.putBoolean(getString(R.string.key_root), root.isChecked());
editor.putBoolean(getString(R.string.key_alive), keepAliveBox.isChecked());
//editor.putString(getString(R.string.key_qpypi), qpypi.getSummary().toString());
editor.putString(getString(R.string.key_username), username_pref.getSummary().toString());
editor.putString(getString(R.string.key_ftp_pwd), settings.getString(mPassWordPref.getKey(), "ftp"));
Expand Down Expand Up @@ -305,6 +312,14 @@ private void initListener() {
}
});

keepAliveBox.setOnPreferenceChangeListener((preference, newValue) ->
{
boolean isCheck = (boolean) newValue;
settings.edit().putBoolean(getString(R.string.key_alive), isCheck).apply();
Toast.makeText(getActivity(), R.string.keep_alive_tips, Toast.LENGTH_SHORT).show();
return true;
});

sl4a.setOnPreferenceChangeListener((preference, newValue) ->

{
Expand Down
3 changes: 3 additions & 0 deletions qpython/src/main/res/values-ja/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -486,4 +486,7 @@
<string name="switch_py3_hint">現在Python2を使用中です。Python3に切り替えますか?</string>
<string name="goto_setting">設定に移動</string>
<string name="net_lagging">ネットワークにラグが発生しています。しばらくお待ちください。</string>
<string name="enable_keep_alive">Enable Keep Alive</string>
<string name="disable_keep_alive">Disable</string>
<string name="keep_alive_tips">Application restart is required to take effect.</string>
</resources>
3 changes: 3 additions & 0 deletions qpython/src/main/res/values-ru/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -430,4 +430,7 @@ w <string name="confirm">Подтвердить</string>
<string name="me">Я</string>
<string name="grant_storage_hint">Необходимо получить разрешение для доступа к хранилищу.</string>
<string name="lost_google_hint">Не могу подключиться к серверу Google. Пожалуйста, проверьте ваше соединение.</string>
<string name="enable_keep_alive">Enable Keep Alive</string>
<string name="disable_keep_alive">Disable</string>
<string name="keep_alive_tips">Application restart is required to take effect.</string>
</resources>
3 changes: 3 additions & 0 deletions qpython/src/main/res/values-zh-rCN/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -450,5 +450,8 @@
<string name="run">运行</string>
<string name="install_kivy_first">请先从QPYPI中安装kivy库</string>
<string name="get_help">获得帮助</string>
<string name="enable_keep_alive">Enable Keep Alive</string>
<string name="disable_keep_alive">Disable</string>
<string name="keep_alive_tips">Application restart is required to take effect.</string>

</resources>
3 changes: 3 additions & 0 deletions qpython/src/main/res/values-zh-rTW/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -291,5 +291,8 @@
<string name="funding">衆籌</string>
<string name="c_funding">衆籌中</string>
<string name="get_help">獲得幫助</string>
<string name="enable_keep_alive">Enable Keep Alive</string>
<string name="disable_keep_alive">Disable</string>
<string name="keep_alive_tips">Application restart is required to take effect.</string>

</resources>
5 changes: 5 additions & 0 deletions qpython/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -720,6 +720,7 @@
<string name="project_main_error"> Project\'s main.py does not exit</string>

<string name="key_root" translatable="false">root</string>
<string name="key_alive" translatable="false">keep alive</string>
<string name="key_sl4a" translatable="false">sl4a</string>
<string name="key_qpypi" translatable="false">qpypi</string>
<string name="key_update_qpy3" translatable="false">update_py3</string>
Expand All @@ -734,5 +735,9 @@


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

</resources>
6 changes: 6 additions & 0 deletions qpython/src/main/res/xml/qpython_setting.xml
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,12 @@
</PreferenceCategory>
</PreferenceScreen>

<CheckBoxPreference
android:key="@string/key_alive"
android:summaryOn="@string/enable_keep_alive"
android:summaryOff="@string/disable_keep_alive"
android:title="@string/keep_alive_mode"/>

<CheckBoxPreference
android:key="@string/key_root"
android:summaryOn="@string/enable_root"
Expand Down