diff --git a/ABCore.zip b/ABCore.zip new file mode 100644 index 00000000..14a1a9a4 Binary files /dev/null and b/ABCore.zip differ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 261e8c49..8ac733e4 100755 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -7,6 +7,7 @@ + + + + + + + diff --git a/app/src/main/java/com/greenaddress/abcore/MainActivity.java b/app/src/main/java/com/greenaddress/abcore/MainActivity.java index 02a63bfa..766117e7 100755 --- a/app/src/main/java/com/greenaddress/abcore/MainActivity.java +++ b/app/src/main/java/com/greenaddress/abcore/MainActivity.java @@ -11,9 +11,8 @@ import android.graphics.Color; import android.os.Build; import android.os.Bundle; +import android.os.Handler; import android.preference.PreferenceManager; -import androidx.appcompat.app.AppCompatActivity; -import androidx.appcompat.widget.Toolbar; import android.util.Log; import android.view.Menu; import android.view.MenuInflater; @@ -25,13 +24,15 @@ import android.widget.Switch; import android.widget.TextView; import android.widget.Toast; -import android.os.Handler; import com.google.zxing.WriterException; import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; import com.google.zxing.qrcode.encoder.ByteMatrix; import com.google.zxing.qrcode.encoder.Encoder; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; + public class MainActivity extends AppCompatActivity { private final static String TAG = MainActivity.class.getName(); @@ -145,11 +146,11 @@ protected void onCreate(final Bundle savedInstanceState) { mQrCodeText = findViewById(R.id.textViewQr); mImageViewQr = findViewById(R.id.qrcodeImageView); setSupportActionBar(toolbar); + final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); final String useDistribution = prefs.getString("usedistribution", "core"); final String daemonVersion = "knots".equals(useDistribution) ? Packages.BITCOIN_KNOTS_NDK : "liquid".equals(useDistribution) ? Packages.BITCOIN_LIQUID_NDK : Packages.BITCOIN_NDK; - getSupportActionBar().setTitle(R.string.title_activity_main); getSupportActionBar().setSubtitle(getString(R.string.subtitle, useDistribution)); mTvDaemon.setText(getString(R.string.subtitle, useDistribution + " " + daemonVersion)); @@ -169,6 +170,23 @@ public void onClick(final View v) { daemonStatus = DaemonStatus.UNKNOWN; mTvStatus.setText(getString(R.string.status_header, daemonStatus.toString())); mSwitchCore.setText(R.string.switchcoreon); + + boolean restart = prefs.getBoolean("restartOnBoot", false); + if(restart){ + // Add 30 sec delay + autoRestart(); + } + } + + public void autoRestart(){ + final Handler handler = new Handler(); + Runnable task = new Runnable() { + @Override + public void run() { + mSwitchCore.setChecked(true); + } + }; + handler.postDelayed(task, 30000); } @Override diff --git a/app/src/main/java/com/greenaddress/abcore/RebootBroadcastReceiver.java b/app/src/main/java/com/greenaddress/abcore/RebootBroadcastReceiver.java new file mode 100644 index 00000000..ad5e2d2a --- /dev/null +++ b/app/src/main/java/com/greenaddress/abcore/RebootBroadcastReceiver.java @@ -0,0 +1,24 @@ +package com.greenaddress.abcore; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.preference.PreferenceManager; + +public class RebootBroadcastReceiver extends BroadcastReceiver { + + private static final String TAG = "RebootBroadcastReceiver"; + @Override + public void onReceive(Context context, Intent intent) { + + final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); + boolean restart = prefs.getBoolean("restartOnBoot", false); + + if(restart){ + Intent myIntent = new Intent(context, MainActivity.class); + myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + context.startActivity(myIntent); + } + } +} diff --git a/app/src/main/java/com/greenaddress/abcore/SettingsActivity.java b/app/src/main/java/com/greenaddress/abcore/SettingsActivity.java index e1d1325d..5a58d20f 100755 --- a/app/src/main/java/com/greenaddress/abcore/SettingsActivity.java +++ b/app/src/main/java/com/greenaddress/abcore/SettingsActivity.java @@ -15,8 +15,6 @@ import android.util.Log; import android.view.MenuItem; -import androidx.appcompat.app.ActionBar; - import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; @@ -24,6 +22,7 @@ import java.util.List; import java.util.Properties; +import androidx.appcompat.app.ActionBar; /** * A {@link PreferenceActivity} that presents a set of application settings. On * handset devices, settings are presented as a single list. On tablets, @@ -116,11 +115,13 @@ public void onCreate(final Bundle savedInstanceState) { final Properties p = new Properties(); try { + p.load(new FileInputStream(Utils.getBitcoinConf(getActivity()))); final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity()); final SharedPreferences.Editor e = prefs.edit(); + e.putBoolean("restartOnBoot", p.getProperty("restartOnBoot", "0").equals("1")); e.putBoolean("testnet", p.getProperty("testnet", "0").equals("1")); e.putBoolean("upnp", p.getProperty("upnp", "0").equals("1")); e.putBoolean("blocksonly", p.getProperty("blocksonly", "0").equals("1")); @@ -155,6 +156,7 @@ public boolean onPreferenceChange(final Preference preference, final Object newV findPreference("upnp").setOnPreferenceChangeListener(ps); findPreference("blocksonly").setOnPreferenceChangeListener(ps); findPreference("disablewallet").setOnPreferenceChangeListener(ps); + findPreference("restartOnBoot").setOnPreferenceChangeListener(ps); findPreference("datadir").setSummary(p.getProperty("datadir", Utils.getDataDir(getActivity()))); findPreference("prune").setSummary(p.getProperty("prune", "1000")); findPreference("prune").setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { diff --git a/app/src/main/res/xml/pref_conf.xml b/app/src/main/res/xml/pref_conf.xml index b740ccd3..24609a96 100755 --- a/app/src/main/res/xml/pref_conf.xml +++ b/app/src/main/res/xml/pref_conf.xml @@ -6,6 +6,7 @@ +