Skip to content

Commit

Permalink
WiFi priority: changed deprecated priority feature to Trusted WiFi
Browse files Browse the repository at this point in the history
Configuring WiFi network priority is no longer possible since Oreo 8.0.
Use interface only for maintaining Trusted WiFi networks for Smart Lock.
  • Loading branch information
C3C0 committed Oct 29, 2018
1 parent d59ef8c commit b1ab842
Show file tree
Hide file tree
Showing 26 changed files with 37 additions and 163 deletions.
2 changes: 1 addition & 1 deletion GravityBox/src/main/AndroidManifest.xml
Expand Up @@ -156,7 +156,7 @@

<activity
android:name="com.ceco.oreo.gravitybox.WifiPriorityActivity"
android:label="@string/pref_wifi_priority_title" >
android:label="@string/pref_wifi_trusted_title" >
</activity>

<service android:name="com.ceco.oreo.gravitybox.GravityBoxService"
Expand Down
Expand Up @@ -30,12 +30,10 @@
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.ListView;
import android.widget.TextView;

import com.ceco.oreo.gravitybox.R;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashSet;
import java.util.List;
Expand All @@ -47,61 +45,27 @@ public class WifiPriorityActivity extends GravityBoxListActivity implements Grav
public static final String ACTION_WIFI_TRUSTED_CHANGED = "gravitybox.intent.action.WIFI_TRUSTED_CHANGED";
public static final String EXTRA_WIFI_TRUSTED = "wifiTrusted";

private final TouchInterceptor.DropListener mDropListener =
new TouchInterceptor.DropListener() {
public void drop(int from, int to) {
if (from == to) return;

// Sort networks by user selection
List<WifiNetwork> networks = mAdapter.getNetworks();
WifiNetwork o = networks.remove(from);
networks.add(to, o);

// Set the new priorities of the networks
int cc = networks.size();
ArrayList<WifiConfiguration> configList = new ArrayList<>();
for (int i = 0; i < cc; i++) {
WifiNetwork network = networks.get(i);
network.config.priority = cc - i;
configList.add(network.config);
}

mNetworksListView.invalidateViews();

Intent intent = new Intent(ModHwKeys.ACTION_UPDATE_WIFI_CONFIG);
intent.putParcelableArrayListExtra(ModHwKeys.EXTRA_WIFI_CONFIG_LIST, configList);
intent.putExtra("receiver", mReceiver);
WifiPriorityActivity.this.sendBroadcast(intent);
}
};

private WifiManager mWifiManager;
private TouchInterceptor mNetworksListView;
private ListView mNetworksListView;
private WifiPriorityAdapter mAdapter;
private SharedPreferences mPrefs;
private GravityBoxResultReceiver mReceiver;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.wifi_network_priority);
mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);

mPrefs = SettingsManager.getInstance(this).getMainPrefs();

// Set the touchable listview
mNetworksListView = (TouchInterceptor)getListView();
mNetworksListView.setDropListener(mDropListener);
mAdapter = new WifiPriorityAdapter(this, mWifiManager);
mNetworksListView = getListView();
mAdapter = new WifiPriorityAdapter(this, (WifiManager) getSystemService(Context.WIFI_SERVICE));
setListAdapter(mAdapter);

mReceiver = new GravityBoxResultReceiver(new Handler());
mReceiver.setReceiver(this);
GravityBoxResultReceiver receiver = new GravityBoxResultReceiver(new Handler());
receiver.setReceiver(this);
}

@Override
public void onDestroy() {
mNetworksListView.setDropListener(null);
setListAdapter(null);
super.onDestroy();
}
Expand Down Expand Up @@ -136,34 +100,23 @@ private class WifiPriorityAdapter extends BaseAdapter {
private final LayoutInflater mInflater;
private List<WifiNetwork> mNetworks;

public WifiPriorityAdapter(Context ctx, WifiManager wifiManager) {
WifiPriorityAdapter(Context ctx, WifiManager wifiManager) {
mWifiManager = wifiManager;
mInflater = LayoutInflater.from(ctx);
reloadNetworks();
}

private void reloadNetworks() {
mNetworks = new ArrayList<WifiNetwork>();
mNetworks = new ArrayList<>();
List<WifiConfiguration> networks = mWifiManager.getConfiguredNetworks();
if (networks == null) return;

// Sort network list by priority (or by network id if the priority is the same)
Collections.sort(networks, new Comparator<WifiConfiguration>() {
@Override
public int compare(WifiConfiguration lhs, WifiConfiguration rhs) {
// > priority -- > lower position
if (lhs.priority < rhs.priority) return 1;
if (lhs.priority > rhs.priority) return -1;
// < network id -- > lower position
if (lhs.networkId < rhs.networkId) return -1;
if (lhs.networkId > rhs.networkId) return 1;
return 0;
}
});
// Sort network list by network id
networks.sort(Comparator.comparingInt(lhs -> lhs.networkId));

// read trusted SSIDs from prefs
Set<String> trustedNetworks = mPrefs.getStringSet(PREF_KEY_WIFI_TRUSTED,
new HashSet<String>());
new HashSet<>());
for (WifiConfiguration c : networks) {
WifiNetwork wn = new WifiNetwork(c);
wn.trusted = trustedNetworks.contains(filterSSID(c.SSID));
Expand All @@ -184,17 +137,17 @@ public int compare(WifiConfiguration lhs, WifiConfiguration rhs) {
}

private void saveTrustedNetworks() {
Set<String> trustedNetworks = new HashSet<String>();
Set<String> trustedNetworks = new HashSet<>();
for (WifiNetwork wn : mNetworks) {
if (wn.trusted) {
trustedNetworks.add(filterSSID(wn.config.SSID));
}
}
mPrefs.edit().putStringSet(PREF_KEY_WIFI_TRUSTED, trustedNetworks).apply();
mPrefs.edit().putStringSet(PREF_KEY_WIFI_TRUSTED, trustedNetworks).commit();

Intent intent = new Intent(ACTION_WIFI_TRUSTED_CHANGED);
intent.putExtra(EXTRA_WIFI_TRUSTED, trustedNetworks.toArray(
new String[trustedNetworks.size()]));
new String[0]));
sendBroadcast(intent);
}

Expand Down Expand Up @@ -233,14 +186,11 @@ public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
v = mInflater.inflate(R.layout.wifi_network_priority_list_item, null);
final CheckBox trusted = v.findViewById(R.id.chkTrusted);
trusted.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View cv) {
WifiNetwork wn = (WifiNetwork) v.getTag();
wn.trusted = ((CheckBox) cv).isChecked();
saveTrustedNetworks();
mNetworksListView.invalidateViews();
}
trusted.setOnClickListener(cv -> {
WifiNetwork wn = (WifiNetwork) v.getTag();
wn.trusted = ((CheckBox) cv).isChecked();
saveTrustedNetworks();
mNetworksListView.invalidateViews();
});
} else {
v = convertView;
Expand Down
2 changes: 1 addition & 1 deletion GravityBox/src/main/res/layout/wifi_network_priority.xml
Expand Up @@ -21,7 +21,7 @@
android:orientation="vertical"
android:gravity="center_vertical" >

<com.ceco.oreo.gravitybox.TouchInterceptor
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="0dip"
Expand Down
13 changes: 2 additions & 11 deletions GravityBox/src/main/res/layout/wifi_network_priority_list_item.xml
Expand Up @@ -33,23 +33,14 @@
android:gravity="center_vertical"
android:ignoreGravity="@+id/icon">

<!-- left icon, used for the grabber -->
<ImageView android:id="@+id/grabber"
android:src="@drawable/ic_drag_handle"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp" />

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_alignParentTop = "true"
android:layout_alignParentBottom = "true"
android:layout_toEndOf="@id/grabber"
android:layout_alignParentStart="true"
android:layout_toStartOf="@id/chkTrusted"
android:gravity="center_vertical">

<!-- The height is set to half the height of the parent, which is 64 dip -->
Expand Down
4 changes: 0 additions & 4 deletions GravityBox/src/main/res/values-be/strings.xml
Expand Up @@ -1456,10 +1456,6 @@ ID транзакцыі ахвяравання PayPal. Спробавы перы
<string name="dt_display_mode_dm">Толькі для менеджара загрузкі Андроід</string>
<string name="dt_display_mode_pt">Пры адлюстраванні шкалы выканання ў радку стану</string>

<!-- Wi-Fi priority -->
<string name="pref_wifi_priority_title">Прыярытэт Wi-Fi</string>
<string name="pref_wifi_priority_summary">Усталёўка прыярытэту сетак Wi-Fi</string>

<!-- Battery bar -->
<string name="pref_cat_battery_bar_title">Паласа батарэі</string>
<string name="pref_battery_bar_show_title">Паказваць паласу</string>
Expand Down
8 changes: 4 additions & 4 deletions GravityBox/src/main/res/values-cs/strings.xml
Expand Up @@ -1435,10 +1435,6 @@
<string name="dt_display_mode_dm">Jen pro Android Download Manager</string>
<string name="dt_display_mode_pt">Během zobrazení indikátoru progresu</string>

<!-- Wi-Fi priority -->
<string name="pref_wifi_priority_title">Wi-Fi priorita</string>
<string name="pref_wifi_priority_summary">Umožňuje definovat prioritu sítí Wi-Fi</string>

<!-- Battery bar -->
<string name="pref_cat_battery_bar_title">Pruh baterie</string>
<string name="pref_battery_bar_show_title">Zobrazit pruh baterie</string>
Expand Down Expand Up @@ -2053,4 +2049,8 @@
<!-- QH: current mode -->
<string name="pref_lc_qh_mode_title">Aktuální režim</string>

<!-- Wi-Fi priority -->
<string name="pref_wifi_trusted_title">Důvěryhodné Wi-Fi</string>
<string name="pref_wifi_trusted_summary">Umožňuje definovat důvěryhodné sítě Wi-Fi pro Smart Lock</string>

</resources>
4 changes: 0 additions & 4 deletions GravityBox/src/main/res/values-de/strings.xml
Expand Up @@ -1446,10 +1446,6 @@
<string name="dt_display_mode_dm">Nur für Android-Downloadmanager</string>
<string name="dt_display_mode_pt">Bei Fortschrittsbalken in der Statusleiste</string>

<!-- Wi-Fi priority -->
<string name="pref_wifi_priority_title">WLAN-Priorität</string>
<string name="pref_wifi_priority_summary">Priorität von WLAN-Netzwerken festlegen</string>

<!-- Battery bar -->
<string name="pref_cat_battery_bar_title">Akkubalken</string>
<string name="pref_battery_bar_show_title">Akkubalken anzeigen</string>
Expand Down
4 changes: 0 additions & 4 deletions GravityBox/src/main/res/values-es/strings.xml
Expand Up @@ -1459,10 +1459,6 @@
<string name="dt_display_mode_dm">Sólo Para Android Manager Download</string>
<string name="dt_display_mode_pt">Cuando la barra de progreso en la barra de estado se está mostrand</string>

<!-- Wi-Fi priority -->
<string name="pref_wifi_priority_title">Prioridad Wi-Fi</string>
<string name="pref_wifi_priority_summary">Especifica la prioridad de las conexiones Wi-Fi</string>

<!-- Battery bar -->
<string name="pref_cat_battery_bar_title">Barra de batería</string>
<string name="pref_battery_bar_show_title">Mostrar barra de batería</string>
Expand Down
2 changes: 0 additions & 2 deletions GravityBox/src/main/res/values-fa/strings.xml
Expand Up @@ -914,8 +914,6 @@
<string name="dt_display_mode_always">همیشه(هنگامیکه اتصال شبکه در دسترس است)</string>
<string name="dt_display_mode_dm">فقط برای مدیر دانلود آندروید</string>
<string name="dt_display_mode_pt">هنگام نمایش نوار پیشرفت در نوار وضعیت</string>
<string name="pref_wifi_priority_title">اولویت وای‌فای</string>
<string name="pref_wifi_priority_summary">تعیین اولویت شبکه های وای‌فای</string>
<string name="pref_cat_battery_bar_title">نوار ظرفیت باطری</string>
<string name="pref_battery_bar_show_title">نمایش نوار ظرفیت باطری</string>
<string name="pref_battery_bar_position_title">موقعیت</string>
Expand Down
3 changes: 0 additions & 3 deletions GravityBox/src/main/res/values-fr/strings.xml
Expand Up @@ -1208,9 +1208,6 @@ Assurez-vous que ses dimensions soient proches de : %1$dx%2$dpx</string>
<string name="dt_display_mode_always">Toujours (lorsqu\'une connexion au réseau est disponible)</string>
<string name="dt_display_mode_dm">Uniquement pour le Gestionnaire de Téléchargement d\'Android</string>
<string name="dt_display_mode_pt">Lorsqu\'une barre de progression est présente dans la barre d\'état</string>
<!-- Wi-Fi priority -->
<string name="pref_wifi_priority_title">Priorité Wi-Fi</string>
<string name="pref_wifi_priority_summary">Spécifie la priorité des réseaux Wi-Fi</string>
<!-- Battery bar -->
<string name="pref_cat_battery_bar_title">Barre de batterie</string>
<string name="pref_battery_bar_show_title">Afficher la barre de la batterie</string>
Expand Down
4 changes: 0 additions & 4 deletions GravityBox/src/main/res/values-hu/strings.xml
Expand Up @@ -1451,10 +1451,6 @@
<string name="dt_display_mode_dm">Csak az Android Letöltéskezelő esetén</string>
<string name="dt_display_mode_pt">Amikor a folyamatjelző sáv az értesítési sávban jelenik meg</string>

<!-- Wi-Fi priority -->
<string name="pref_wifi_priority_title">Wi-Fi prioritás</string>
<string name="pref_wifi_priority_summary">Wi-Fi hálózatok prioritásának a meghatározása</string>

<!-- Battery bar -->
<string name="pref_cat_battery_bar_title">Töltöttségi sáv</string>
<string name="pref_battery_bar_show_title">Töltöttségi sáv mutatása</string>
Expand Down
3 changes: 0 additions & 3 deletions GravityBox/src/main/res/values-ja/strings.xml
Expand Up @@ -1195,9 +1195,6 @@
<string name="dt_display_mode_always">常時 (ネットワーク接続があるとき)</string>
<string name="dt_display_mode_dm">Androidのダウンロードマネージャのみ</string>
<string name="dt_display_mode_pt">ステータスバーにプログレスバーが表示されているとき</string>
<!-- Wi-Fi priority -->
<string name="pref_wifi_priority_title">Wi-Fiの優先度</string>
<string name="pref_wifi_priority_summary">Wi-Fiネットワークの優先度を指定します。</string>
<!-- Battery bar -->
<string name="pref_cat_battery_bar_title">バッテリーバー</string>
<string name="pref_battery_bar_show_title">バッテリーバーの表示</string>
Expand Down
3 changes: 0 additions & 3 deletions GravityBox/src/main/res/values-ko/strings.xml
Expand Up @@ -1164,9 +1164,6 @@
<string name="dt_display_mode_always">항상 (네트워크 연결이 활성화 될 때)</string>
<string name="dt_display_mode_pt">상단바에서 진행 바가 표시되고 있을 때</string>

<string name="pref_wifi_priority_title">Wi-Fi 연결 선호도</string>
<string name="pref_wifi_priority_summary">Wi-Fi 네트워크를 연결할 때 선호하는 순서를 설정합니다.</string>

<string name="pref_cat_battery_bar_title">배터리 바</string>
<string name="pref_battery_bar_show_title">배터리 바 표시</string>
<string name="pref_battery_bar_position_title">위치</string>
Expand Down
4 changes: 0 additions & 4 deletions GravityBox/src/main/res/values-ms/strings.xml
Expand Up @@ -1473,10 +1473,6 @@
<string name="dt_display_mode_dm">Untuk muat turun sahaja</string>
<string name="dt_display_mode_pt">Ketika bar status ditunjukkan</string>

<!-- Wi-Fi priority -->
<string name="pref_wifi_priority_title">Keutamaan Wi-Fi</string>
<string name="pref_wifi_priority_summary">Set Wi-Fi utama</string>

<!-- Battery bar -->
<string name="pref_cat_battery_bar_title">Bar bateri</string>
<string name="pref_battery_bar_show_title">Tunjukkan bar bateri</string>
Expand Down
4 changes: 0 additions & 4 deletions GravityBox/src/main/res/values-pl/strings.xml
Expand Up @@ -1439,10 +1439,6 @@
<string name="dt_display_mode_dm">Tylko dla menedżera pobierania Androida</string>
<string name="dt_display_mode_pt">Gdy wyświetlany jest pasek postępu na pasku stanu</string>

<!-- Wi-Fi priority -->
<string name="pref_wifi_priority_title">Priorytet Wi-Fi</string>
<string name="pref_wifi_priority_summary">Określa priorytet sieci Wi-Fi</string>

<!-- Battery bar -->
<string name="pref_cat_battery_bar_title">Pasek baterii</string>
<string name="pref_battery_bar_show_title">Pokaż pasek baterii</string>
Expand Down
4 changes: 0 additions & 4 deletions GravityBox/src/main/res/values-pt-rPT/strings.xml
Expand Up @@ -1425,10 +1425,6 @@
<string name="dt_display_mode_dm">Apenas para gestor de transferências base do Android</string>
<string name="dt_display_mode_pt">Quando a barra de progresso estiver visível</string>

<!-- Wi-Fi priority -->
<string name="pref_wifi_priority_title">Prioridade Wi-Fi</string>
<string name="pref_wifi_priority_summary">Permite especificar a prioridade das redes Wi-Fi</string>

<!-- Battery bar -->
<string name="pref_cat_battery_bar_title">Barra de bateria</string>
<string name="pref_battery_bar_show_title">Mostrar barra de bateria</string>
Expand Down
4 changes: 0 additions & 4 deletions GravityBox/src/main/res/values-pt/strings.xml
Expand Up @@ -1419,10 +1419,6 @@ se o tráfego de dados móveis atual excede o limite definido (Ajuste para 0 par
<string name="dt_display_mode_dm">Somente para o gerenciador de downloads do Android</string>
<string name="dt_display_mode_pt">Quando a barra de status exibir progresso em andamento</string>

<!-- Wi-Fi priority -->
<string name="pref_wifi_priority_title">Prioridade Wi-Fi</string>
<string name="pref_wifi_priority_summary">Especifica as prioridades das redes Wi-Fi</string>

<!-- Battery bar -->
<string name="pref_cat_battery_bar_title">Barra de bateria</string>
<string name="pref_battery_bar_show_title">Mostrar barra de bateria</string>
Expand Down
4 changes: 0 additions & 4 deletions GravityBox/src/main/res/values-ro/strings.xml
Expand Up @@ -1431,10 +1431,6 @@
<string name="dt_display_mode_dm">Numai pentru Managerul de descărcări Android</string>
<string name="dt_display_mode_pt">Când se afișează bara de progres în bara de stare</string>

<!-- Wi-Fi priority -->
<string name="pref_wifi_priority_title">Prioritate Wi-Fi</string>
<string name="pref_wifi_priority_summary">Specificaţi prioritatea rețelelor Wi-Fi</string>

<!-- Battery bar -->
<string name="pref_cat_battery_bar_title">Bară baterie</string>
<string name="pref_battery_bar_show_title">Afișați bara bateriei</string>
Expand Down
4 changes: 0 additions & 4 deletions GravityBox/src/main/res/values-ru/strings.xml
Expand Up @@ -1470,10 +1470,6 @@
<string name="dt_display_mode_dm">Только для менеджера загрузки Андроид</string>
<string name="dt_display_mode_pt">При отображении шкалы выполнения в строке состояния</string>

<!-- Wi-Fi priority -->
<string name="pref_wifi_priority_title">Приоритет Wi-Fi</string>
<string name="pref_wifi_priority_summary">Установка приоритета сетей Wi-Fi</string>

<!-- Battery bar -->
<string name="pref_cat_battery_bar_title">Полоса батареи</string>
<string name="pref_battery_bar_show_title">Показывать полосу</string>
Expand Down
8 changes: 4 additions & 4 deletions GravityBox/src/main/res/values-sk/strings.xml
Expand Up @@ -1441,10 +1441,6 @@
<string name="dt_display_mode_dm">Len pre Android Download Manager</string>
<string name="dt_display_mode_pt">Počas zobrazenia indikátora progresu</string>

<!-- Wi-Fi priority -->
<string name="pref_wifi_priority_title">Wi-Fi priorita</string>
<string name="pref_wifi_priority_summary">Umožňuje definovať prioritu sietí Wi-Fi</string>

<!-- Battery bar -->
<string name="pref_cat_battery_bar_title">Pruh batérie</string>
<string name="pref_battery_bar_show_title">Zobraziť pruh batérie</string>
Expand Down Expand Up @@ -2058,4 +2054,8 @@
<!-- QH: current mode -->
<string name="pref_lc_qh_mode_title">Aktuálny režim</string>

<!-- Wi-Fi priority -->
<string name="pref_wifi_trusted_title">Dôveryhodné Wi-Fi</string>
<string name="pref_wifi_trusted_summary">Umožňuje definovať dôveryhodné siete Wi-Fi pre Smart Lock</string>

</resources>

0 comments on commit b1ab842

Please sign in to comment.