2016-09-24 11:54:12 -05:00
|
|
|
package com.topjohnwu.magisk;
|
|
|
|
|
|
|
|
import android.content.Intent;
|
|
|
|
import android.content.SharedPreferences;
|
|
|
|
import android.os.Bundle;
|
|
|
|
import android.preference.PreferenceManager;
|
|
|
|
import android.support.v7.app.AppCompatActivity;
|
|
|
|
|
|
|
|
import com.topjohnwu.magisk.utils.Async;
|
|
|
|
import com.topjohnwu.magisk.utils.Logger;
|
2016-10-22 13:04:58 -05:00
|
|
|
import com.topjohnwu.magisk.utils.Shell;
|
2016-09-24 11:54:12 -05:00
|
|
|
import com.topjohnwu.magisk.utils.Utils;
|
|
|
|
|
2016-10-22 13:04:58 -05:00
|
|
|
import java.util.HashSet;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.Set;
|
|
|
|
|
2016-09-24 11:54:12 -05:00
|
|
|
public class SplashActivity extends AppCompatActivity {
|
2016-10-31 11:13:48 +08:00
|
|
|
|
|
|
|
private SharedPreferences prefs;
|
|
|
|
|
2016-09-24 11:54:12 -05:00
|
|
|
@Override
|
|
|
|
protected void onCreate(Bundle savedInstanceState) {
|
2016-09-25 21:31:38 +08:00
|
|
|
|
2016-09-26 13:16:11 -05:00
|
|
|
super.onCreate(savedInstanceState);
|
2016-10-25 17:51:34 -05:00
|
|
|
prefs = PreferenceManager.getDefaultSharedPreferences(getApplication());
|
2016-10-22 13:04:58 -05:00
|
|
|
if (prefs.getString("theme", "").equals("Dark")) {
|
2016-09-25 00:16:28 -05:00
|
|
|
setTheme(R.style.AppTheme_dh);
|
|
|
|
}
|
2016-09-24 11:54:12 -05:00
|
|
|
|
2016-10-01 05:21:24 +08:00
|
|
|
Logger.devLog = prefs.getBoolean("developer_logging", false);
|
|
|
|
Logger.logShell = prefs.getBoolean("shell_logging", false);
|
2016-09-30 11:35:46 +08:00
|
|
|
|
2016-10-25 17:51:34 -05:00
|
|
|
// Check and set preferences/hides
|
|
|
|
setupHideLists();
|
2016-10-22 11:05:34 -05:00
|
|
|
|
2016-09-24 11:54:12 -05:00
|
|
|
// Initialize
|
2016-10-01 05:21:24 +08:00
|
|
|
prefs.edit()
|
2016-09-27 22:57:20 +08:00
|
|
|
.putBoolean("module_done", false)
|
|
|
|
.putBoolean("repo_done", false)
|
2016-09-28 18:05:55 +08:00
|
|
|
.putBoolean("update_check_done", false)
|
2016-09-27 22:57:20 +08:00
|
|
|
.apply();
|
2016-09-28 18:05:55 +08:00
|
|
|
|
2016-11-07 21:06:18 +08:00
|
|
|
new Async.CheckUpdates(prefs).exec();
|
|
|
|
new Async.constructEnv(getApplicationInfo()).exec();
|
2016-10-01 05:21:24 +08:00
|
|
|
|
|
|
|
new Async.LoadModules(prefs) {
|
|
|
|
@Override
|
|
|
|
protected void onPostExecute(Void v) {
|
|
|
|
super.onPostExecute(v);
|
2016-11-07 21:06:18 +08:00
|
|
|
new Async.LoadRepos(getApplicationContext()).exec();
|
2016-10-01 05:21:24 +08:00
|
|
|
// Start main activity
|
|
|
|
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
|
|
|
|
startActivity(intent);
|
|
|
|
finish();
|
|
|
|
}
|
2016-11-07 21:06:18 +08:00
|
|
|
}.exec();
|
2016-09-24 13:46:42 -05:00
|
|
|
|
2016-09-24 11:54:12 -05:00
|
|
|
}
|
2016-10-25 17:51:34 -05:00
|
|
|
|
|
|
|
private void setupHideLists() {
|
|
|
|
|
2016-10-31 11:13:48 +08:00
|
|
|
Set<String> set = new HashSet<>();
|
2016-10-25 17:51:34 -05:00
|
|
|
Set<String> setOriginal = null;
|
|
|
|
List<String> hideList = null;
|
2016-11-07 21:06:18 +08:00
|
|
|
// List<String> addList = null;
|
2016-10-25 17:51:34 -05:00
|
|
|
String listCmd, addCmd, addCmd2, rmCmd, rmCmd2;
|
|
|
|
|
|
|
|
// Build list of apps currently listed, add to preferences
|
|
|
|
|
|
|
|
int hideVersion = Utils.WhichHide(getApplication());
|
|
|
|
|
|
|
|
switch (hideVersion) {
|
|
|
|
case 1:
|
|
|
|
listCmd = "/magisk/.core/magiskhide/list";
|
|
|
|
break;
|
|
|
|
case 2:
|
|
|
|
listCmd = "/su/suhide/list";
|
|
|
|
break;
|
|
|
|
case 3:
|
|
|
|
listCmd = "/magisk/.core/magiskhide/list && /su/suhide/list";
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
listCmd = "";
|
|
|
|
|
|
|
|
}
|
|
|
|
if (Shell.rootAccess()) {
|
|
|
|
hideList = Shell.su(listCmd);
|
|
|
|
}
|
|
|
|
// Set up default preferences,make sure we add "extra" blacklist entries.
|
|
|
|
|
|
|
|
if (!prefs.contains("auto_blacklist")) {
|
|
|
|
Logger.dev("SplashActivity: Setting default preferences for application");
|
|
|
|
set.add("com.google.android.apps.walletnfcrel");
|
|
|
|
set.add("com.google.android.gms");
|
|
|
|
set.add("com.google.commerce.tapandpay");
|
|
|
|
|
|
|
|
// Add current items to hide list
|
|
|
|
if (hideList != null) set.addAll(hideList);
|
|
|
|
SharedPreferences.Editor editor = prefs.edit();
|
|
|
|
editor.putStringSet("auto_blacklist", set);
|
|
|
|
Logger.dev("SplashActivity: Adding entries " + set.toString());
|
|
|
|
editor.apply();
|
|
|
|
}
|
|
|
|
|
|
|
|
setOriginal = prefs.getStringSet("auto_blacklist", set);
|
2016-11-07 21:06:18 +08:00
|
|
|
// if (hideList != null) {
|
|
|
|
// for (String item : hideList) {
|
|
|
|
// if (!(setOriginal.contains(item))) {
|
|
|
|
// addList.add(item);
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// }
|
2016-10-25 17:51:34 -05:00
|
|
|
|
|
|
|
SharedPreferences.Editor editor = prefs.edit();
|
|
|
|
editor.putStringSet("auto_blacklist", set);
|
|
|
|
editor.apply();
|
|
|
|
|
|
|
|
}
|
2016-09-24 11:54:12 -05:00
|
|
|
}
|