mirror of
https://github.com/PurpleI2P/i2pd-android.git
synced 2024-12-06 19:27:28 +01:00
135 lines
5.2 KiB
Java
135 lines
5.2 KiB
Java
package org.purplei2p.i2pd;
|
||
|
||
import android.app.Activity;
|
||
import android.content.ComponentName;
|
||
import android.content.Intent;
|
||
import android.content.pm.PackageManager;
|
||
import android.content.pm.ResolveInfo;
|
||
import android.net.Uri;
|
||
import android.os.Build;
|
||
import android.os.Bundle;
|
||
import android.provider.Settings;
|
||
import android.util.Log;
|
||
import android.view.MenuItem;
|
||
import android.view.View;
|
||
import android.widget.Button;
|
||
import android.widget.CompoundButton;
|
||
import android.widget.Switch;
|
||
|
||
|
||
import java.io.File;
|
||
import java.util.List;
|
||
import java.util.Objects;
|
||
|
||
|
||
//import org.purplei2p.i2pd.iniedotr.IniEditor;
|
||
|
||
public class SettingsActivity extends Activity {
|
||
private String TAG = "i2pdSrvcSettings";
|
||
private File cacheDir;
|
||
public static String onBootFileName = "/onBoot"; // just file, empty, if exist the do autostart, if not then no.
|
||
|
||
//https://gist.github.com/chandruark/3165a5ee3452f2b9ec7736cf1b4c5ea6
|
||
private void addAutoStartupSwitch() {
|
||
|
||
try {
|
||
Intent intent = new Intent();
|
||
String manufacturer = android.os.Build.MANUFACTURER .toLowerCase();
|
||
|
||
switch (manufacturer){
|
||
case "xiaomi":
|
||
intent.setComponent(new ComponentName("com.miui.securitycenter", "com.miui.permcenter.autostart.AutoStartManagementActivity"));
|
||
break;
|
||
case "oppo":
|
||
intent.setComponent(new ComponentName("com.coloros.safecenter", "com.coloros.safecenter.permission.startup.StartupAppListActivity"));
|
||
break;
|
||
case "vivo":
|
||
intent.setComponent(new ComponentName("com.vivo.permissionmanager", "com.vivo.permissionmanager.activity.BgStartUpManagerActivity"));
|
||
break;
|
||
case "Letv":
|
||
intent.setComponent(new ComponentName("com.letv.android.letvsafe", "com.letv.android.letvsafe.AutobootManageActivity"));
|
||
break;
|
||
case "Honor":
|
||
intent.setComponent(new ComponentName("com.huawei.systemmanager", "com.huawei.systemmanager.optimize.process.ProtectActivity"));
|
||
break;
|
||
case "oneplus":
|
||
intent.setComponent(new ComponentName("com.oneplus.security", "com.oneplus.security.chainlaunch.view.ChainLaunchAppListActivity"));
|
||
break;
|
||
}
|
||
|
||
List<ResolveInfo> list = getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
|
||
if (list.size() > 0) {
|
||
startActivity(intent);
|
||
}
|
||
} catch (Exception e) {
|
||
Log.e("exceptionAutostarti2pd" , String.valueOf(e));
|
||
}
|
||
|
||
}
|
||
|
||
//@Override
|
||
private void requestPermission() {
|
||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||
if (!Settings.canDrawOverlays(this)) {
|
||
Intent intent = new Intent(
|
||
Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
|
||
Uri.parse("package:" + getPackageName())
|
||
);
|
||
startActivityForResult(intent, 232);
|
||
}
|
||
}
|
||
}
|
||
|
||
public void onCreate(Bundle savedInstanceState) {
|
||
Log.d(TAG, "onCreate");
|
||
super.onCreate(savedInstanceState);
|
||
setContentView(R.layout.activity_settings);
|
||
Objects.requireNonNull(getActionBar()).setDisplayHomeAsUpEnabled(true);
|
||
Switch autostart_switch = findViewById(R.id.autostart_enable);
|
||
Button openPreferences = findViewById(R.id.OpenPreferences);
|
||
cacheDir = getApplicationContext().getCacheDir();
|
||
File onBoot = new File(cacheDir.getAbsolutePath() + onBootFileName);
|
||
openPreferences.setOnClickListener(new View.OnClickListener() {
|
||
@Override
|
||
public void onClick(View view) {
|
||
Intent intent = new Intent(SettingsActivity.this, MainPreferenceActivity.class);
|
||
startActivity(intent);
|
||
}
|
||
});
|
||
autostart_switch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
||
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
||
// do something, the isChecked will be
|
||
// true if the switch is in the On position
|
||
if (isChecked) {
|
||
if (!onBoot.exists()) {
|
||
requestPermission();
|
||
addAutoStartupSwitch();
|
||
|
||
try {
|
||
if (!onBoot.createNewFile())
|
||
Log.d(TAG, "Cant create new wile on: "+onBoot.getAbsolutePath());
|
||
} catch (Exception e) {
|
||
Log.e(TAG, "error: " + e.toString());
|
||
}
|
||
}
|
||
} else {
|
||
if (onBoot.exists())
|
||
onBoot.delete();
|
||
}
|
||
}
|
||
});
|
||
if(onBoot.exists())
|
||
autostart_switch.setChecked(true);
|
||
}
|
||
|
||
public boolean onOptionsItemSelected(MenuItem item) {
|
||
int id = item.getItemId();
|
||
|
||
if (id == android.R.id.home) {
|
||
finish();
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
}
|