Handle application add/remove

This commit is contained in:
M66B 2015-10-25 15:22:55 +01:00
parent c6c4464228
commit de7eaa8554
2 changed files with 33 additions and 9 deletions

View File

@ -1,7 +1,10 @@
package eu.faircode.netguard;
import android.app.AlertDialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.net.VpnService;
import android.os.AsyncTask;
@ -75,6 +78,35 @@ public class ActivityMain extends AppCompatActivity implements SharedPreferences
// Listen for external enabled changes
prefs.registerOnSharedPreferenceChangeListener(this);
// Fill application list
getApplicationList();
// Listen for added/removed applications
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(Intent.ACTION_PACKAGE_ADDED);
intentFilter.addAction(Intent.ACTION_PACKAGE_REMOVED);
intentFilter.addDataScheme("package");
registerReceiver(packageChangedReceiver, intentFilter);
}
@Override
public void onDestroy() {
Log.i(TAG, "Destroy");
running = false;
PreferenceManager.getDefaultSharedPreferences(this).unregisterOnSharedPreferenceChangeListener(this);
unregisterReceiver(packageChangedReceiver);
super.onDestroy();
}
private BroadcastReceiver packageChangedReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.i(TAG, "Received " + intent);
getApplicationList();
}
};
private void getApplicationList() {
// Package list
final RecyclerView rvApplication = (RecyclerView) findViewById(R.id.rvApplication);
rvApplication.setHasFixedSize(true);
@ -107,14 +139,6 @@ public class ActivityMain extends AppCompatActivity implements SharedPreferences
}
}
@Override
public void onDestroy() {
Log.i(TAG, "Destroy");
running = false;
PreferenceManager.getDefaultSharedPreferences(this).unregisterOnSharedPreferenceChangeListener(this);
super.onDestroy();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();

View File

@ -4,6 +4,6 @@
<string name="menu_search">Search</string>
<string name="menu_wifi">Toggle Wi-Fi</string>
<string name="menu_other">Toggle other</string>
<string name="menu_vpn_settings">VPN settings</string>
<string name="menu_vpn_settings">Android VPN settings</string>
<string name="menu_about">About</string>
</resources>