mirror of
https://github.com/M66B/NetGuard.git
synced 2025-02-22 14:21:01 +00:00
Show mobile network type in action bar
This commit is contained in:
parent
aefa8900fe
commit
c681727177
4 changed files with 41 additions and 10 deletions
|
@ -47,6 +47,8 @@ import android.support.v7.widget.LinearLayoutManager;
|
|||
import android.support.v7.widget.RecyclerView;
|
||||
import android.support.v7.widget.SearchView;
|
||||
import android.support.v7.widget.SwitchCompat;
|
||||
import android.telephony.PhoneStateListener;
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.text.method.LinkMovementMethod;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
|
@ -78,6 +80,7 @@ public class ActivityMain extends AppCompatActivity implements SharedPreferences
|
|||
private ImageView ivInteractive;
|
||||
private ImageView ivNetwork;
|
||||
private ImageView ivMetered;
|
||||
private TextView tvGeneration;
|
||||
private SwipeRefreshLayout swipeRefresh;
|
||||
private RuleAdapter adapter = null;
|
||||
private MenuItem menuSearch = null;
|
||||
|
@ -120,6 +123,7 @@ public class ActivityMain extends AppCompatActivity implements SharedPreferences
|
|||
ivInteractive = (ImageView) actionView.findViewById(R.id.ivInteractive);
|
||||
ivNetwork = (ImageView) actionView.findViewById(R.id.ivNetwork);
|
||||
ivMetered = (ImageView) actionView.findViewById(R.id.ivMetered);
|
||||
tvGeneration = (TextView) actionView.findViewById(R.id.tvGeneration);
|
||||
getSupportActionBar().setDisplayShowCustomEnabled(true);
|
||||
getSupportActionBar().setCustomView(actionView);
|
||||
|
||||
|
@ -221,6 +225,10 @@ public class ActivityMain extends AppCompatActivity implements SharedPreferences
|
|||
intentFilter.addDataScheme("package");
|
||||
registerReceiver(packageChangedReceiver, intentFilter);
|
||||
|
||||
// Listen for data connection state changes
|
||||
TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
|
||||
tm.listen(phoneStateListener, PhoneStateListener.LISTEN_DATA_CONNECTION_STATE);
|
||||
|
||||
// Connect to billing
|
||||
if (Util.hasValidFingerprint(TAG, this)) {
|
||||
Intent serviceIntent = new Intent("com.android.vending.billing.InAppBillingService.BIND");
|
||||
|
@ -275,6 +283,9 @@ public class ActivityMain extends AppCompatActivity implements SharedPreferences
|
|||
unregisterReceiver(connectivityChangedReceiver);
|
||||
unregisterReceiver(packageChangedReceiver);
|
||||
|
||||
TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
|
||||
tm.listen(phoneStateListener, PhoneStateListener.LISTEN_NONE);
|
||||
|
||||
if (IABService != null) {
|
||||
unbindService(IABConnection);
|
||||
IABService = null;
|
||||
|
@ -410,6 +421,17 @@ public class ActivityMain extends AppCompatActivity implements SharedPreferences
|
|||
}
|
||||
};
|
||||
|
||||
private PhoneStateListener phoneStateListener = new PhoneStateListener() {
|
||||
@Override
|
||||
public void onDataConnectionStateChanged(int state, int networkType) {
|
||||
Log.i(TAG, "Data connection changed state=" + state + " network type=" + networkType);
|
||||
if (state == TelephonyManager.DATA_CONNECTED)
|
||||
tvGeneration.setText(Util.getNetworkGeneration(networkType));
|
||||
else
|
||||
tvGeneration.setText("");
|
||||
}
|
||||
};
|
||||
|
||||
private ServiceConnection IABConnection = new ServiceConnection() {
|
||||
@Override
|
||||
public void onServiceDisconnected(ComponentName name) {
|
||||
|
|
|
@ -302,14 +302,14 @@ public class SinkholeService extends VpnService {
|
|||
public void onDataConnectionStateChanged(int state, int networkType) {
|
||||
Log.i(TAG, "Data connection changed state=" + state + " network type=" + networkType);
|
||||
|
||||
if (state == TelephonyManager.DATA_CONNECTED) {
|
||||
String networkGeneration = Util.getNetworkGeneration(networkType);
|
||||
if (!last_generation.equals(networkGeneration)) {
|
||||
// Network generation changed
|
||||
last_generation = networkGeneration;
|
||||
Log.i(TAG, "New network generation=" + last_generation);
|
||||
String networkGeneration = (state == TelephonyManager.DATA_CONNECTED ? Util.getNetworkGeneration(networkType) : "");
|
||||
if (!last_generation.equals(networkGeneration)) {
|
||||
// Network generation changed
|
||||
last_generation = networkGeneration;
|
||||
Log.i(TAG, "New network generation=" + last_generation);
|
||||
|
||||
// Check if reload needed
|
||||
// Check if reload needed
|
||||
if (state == TelephonyManager.DATA_CONNECTED) {
|
||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(SinkholeService.this);
|
||||
if (!prefs.getBoolean("metered_2g", true) ||
|
||||
!prefs.getBoolean("metered_3g", true) ||
|
||||
|
@ -360,6 +360,7 @@ public class SinkholeService extends VpnService {
|
|||
ifPackage.addDataScheme("package");
|
||||
registerReceiver(packageAddedReceiver, ifPackage);
|
||||
|
||||
// Listen for data connection state changes
|
||||
TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
|
||||
tm.listen(phoneStateListener, PhoneStateListener.LISTEN_DATA_CONNECTION_STATE);
|
||||
}
|
||||
|
|
|
@ -109,7 +109,7 @@ public class Util {
|
|||
if (ni != null && ni.getType() == ConnectivityManager.TYPE_MOBILE)
|
||||
return getNetworkGeneration(ni.getSubtype());
|
||||
else
|
||||
return "?";
|
||||
return "";
|
||||
}
|
||||
|
||||
public static boolean isMetered(Context context) {
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
android:layout_height="16dp"
|
||||
android:layout_marginStart="4dp"
|
||||
android:src="@drawable/network"
|
||||
android:visibility="gone" />
|
||||
android:visibility="invisible" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivMetered"
|
||||
|
@ -42,6 +42,14 @@
|
|||
android:layout_height="16dp"
|
||||
android:layout_marginStart="4dp"
|
||||
android:src="@drawable/metered"
|
||||
android:visibility="gone" />
|
||||
android:visibility="invisible" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvGeneration"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="4dp"
|
||||
android:textAppearance="@android:style/TextAppearance.Material.Small"
|
||||
android:textColor="@android:color/white" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
Loading…
Reference in a new issue