mirror of
https://github.com/TimeCrafters/TimeCraftersConfigurationTool.git
synced 2025-12-15 05:02:33 +00:00
Added BroadcastReceiver to support auto starting TACNET Server Service if TAC.BUILD_ variables permit it
This commit is contained in:
@@ -9,6 +9,7 @@
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
||||
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
|
||||
|
||||
<application
|
||||
android:allowBackup="true"
|
||||
@@ -36,7 +37,14 @@
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<activity android:name=".MainActivity" />
|
||||
|
||||
<receiver android:name=".tacnet.TACNETOnBootReceiver">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.BOOT_COMPLETED" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
</application>
|
||||
|
||||
</manifest>
|
||||
@@ -1,6 +1,7 @@
|
||||
package org.timecrafters.TimeCraftersConfigurationTool;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
@@ -15,6 +16,7 @@ import com.google.android.material.bottomnavigation.BottomNavigationView;
|
||||
|
||||
import org.timecrafters.TimeCraftersConfigurationTool.backend.Backend;
|
||||
import org.timecrafters.TimeCraftersConfigurationTool.backend.TAC;
|
||||
import org.timecrafters.TimeCraftersConfigurationTool.tacnet.TACNETOnBootReceiver;
|
||||
import org.timecrafters.TimeCraftersConfigurationTool.tacnet.TACNETServerService;
|
||||
|
||||
public class MainActivity extends AppCompatActivity {
|
||||
@@ -44,8 +46,7 @@ public class MainActivity extends AppCompatActivity {
|
||||
Backend.instance().applicationContext = getApplicationContext();
|
||||
|
||||
// Auto start TACNET server if allowed and device model contains AUTO_START_MODEL
|
||||
if (!TAC.BUILD_COMPETITION_MODE && TAC.BUILD_AUTO_START && Backend.instance().getServer() == null &&
|
||||
Build.MODEL.toLowerCase().contains(TAC.BUILD_AUTO_START_MODEL)) {
|
||||
if (TAC.allowAutoServerStart() && Backend.instance().getServer() == null) {
|
||||
Log.i(TAG, "Detected " + Build.MANUFACTURER + " " + Build.MODEL + " (" + Build.HARDWARE + "), starting TACNET Server Service...");
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
@@ -55,6 +56,8 @@ public class MainActivity extends AppCompatActivity {
|
||||
}
|
||||
}
|
||||
|
||||
registerReceiver(new TACNETOnBootReceiver(), new IntentFilter(Intent.ACTION_BOOT_COMPLETED));
|
||||
|
||||
if (getIntent().getBooleanExtra("navigate_to_tacnet", false)) {
|
||||
Navigation.findNavController(this, R.id.nav_host_fragment).navigate(R.id.navigation_tacnet);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.timecrafters.TimeCraftersConfigurationTool.backend;
|
||||
|
||||
import android.os.Build;
|
||||
import android.os.Environment;
|
||||
|
||||
import java.io.File;
|
||||
@@ -16,4 +17,10 @@ public class TAC {
|
||||
public static final boolean BUILD_COMPETITION_MODE = false;
|
||||
public static final boolean BUILD_AUTO_START = false;
|
||||
public static final String BUILD_AUTO_START_MODEL = "rev hub"; /* LOWERCASE */
|
||||
|
||||
static public boolean allowAutoServerStart() {
|
||||
return !TAC.BUILD_COMPETITION_MODE &&
|
||||
TAC.BUILD_AUTO_START &&
|
||||
Build.MODEL.toLowerCase().contains(TAC.BUILD_AUTO_START_MODEL);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
package org.timecrafters.TimeCraftersConfigurationTool.tacnet;
|
||||
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Build;
|
||||
import android.util.Log;
|
||||
|
||||
import org.timecrafters.TimeCraftersConfigurationTool.backend.TAC;
|
||||
|
||||
public class TACNETOnBootReceiver extends BroadcastReceiver {
|
||||
private static final String TAG = "TACNETOnBootReceiver";
|
||||
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
|
||||
if (TAC.allowAutoServerStart()) {
|
||||
Log.i(TAG, "Auto starting TACNET Server Service...");
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
context.startForegroundService(new Intent(context, TACNETServerService.class));
|
||||
} else {
|
||||
context.startService(new Intent(context, TACNETServerService.class));
|
||||
}
|
||||
} else {
|
||||
Log.i(TAG, "Auto starting TACNET Server Service is not permitted. Check TAC.BUILD_ variables.");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user