Skip to content

Commit

Permalink
first part of fixing subscription selection
Browse files Browse the repository at this point in the history
  • Loading branch information
PeterHasse committed Aug 8, 2024
1 parent b8c0a7b commit 81fb281
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,6 @@

import de.fraunhofer.fokus.OpenMobileNetworkToolkit.DataProvider.DataProvider;
import de.fraunhofer.fokus.OpenMobileNetworkToolkit.DataProvider.NetworkCallback;
import de.fraunhofer.fokus.OpenMobileNetworkToolkit.Ping.PingFragment;
import de.fraunhofer.fokus.OpenMobileNetworkToolkit.Preferences.SPType;
import de.fraunhofer.fokus.OpenMobileNetworkToolkit.Preferences.SharedPreferencesGrouper;
import de.fraunhofer.fokus.OpenMobileNetworkToolkit.WorkProfile.WorkProfileActivity;
Expand Down Expand Up @@ -148,17 +147,18 @@ protected void onCreate(Bundle savedInstanceState) {
// make sure the subscription in the app settings exists in the current subscription list.
// if it is not in the subscription list change it to the first one of the current list
boolean valid_subscription = false;
String pref_subscription_str = spg.getSharedPreference(SPType.mobile_network_sp).getString("select_subscription","99999");
String pref_subscription_str = spg.getSharedPreference(SPType.default_sp).getString("select_subscription","99999");
for (SubscriptionInfo info : dp.getSubscriptions()) {
if (Integer.parseInt(pref_subscription_str) == info.getSubscriptionId()) {
valid_subscription = true;
break;
}
}
if (!valid_subscription) {
spg.getSharedPreference(SPType.mobile_network_sp).edit().putString("select_subscription", String.valueOf(dp.getSubscriptions().iterator().next().getSubscriptionId())).apply();
spg.getSharedPreference(SPType.default_sp).edit().putString("select_subscription", String.valueOf(dp.getSubscriptions().iterator().next().getSubscriptionId())).apply();
}
// switch the telephony manager to a new one according to the app settings
tm = tm.createForSubscriptionId(Integer.parseInt(spg.getSharedPreference(SPType.mobile_network_sp).getString("select_subscription", "0")));
tm = tm.createForSubscriptionId(Integer.parseInt(spg.getSharedPreference(SPType.default_sp).getString("select_subscription", "0")));
}

gv.setSm((SubscriptionManager) getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,26 +13,30 @@
import android.telephony.SubscriptionInfo;
import android.widget.Toast;

import androidx.annotation.NonNull;
import androidx.preference.ListPreference;
import androidx.preference.Preference;
import androidx.preference.PreferenceFragmentCompat;
import androidx.preference.PreferenceManager;

import java.util.ArrayList;
import java.util.List;

import de.fraunhofer.fokus.OpenMobileNetworkToolkit.GlobalVars;
import de.fraunhofer.fokus.OpenMobileNetworkToolkit.R;
import de.fraunhofer.fokus.OpenMobileNetworkToolkit.Preferences.SPType;
import de.fraunhofer.fokus.OpenMobileNetworkToolkit.Preferences.SharedPreferencesGrouper;
import de.fraunhofer.fokus.OpenMobileNetworkToolkit.R;

public class SettingsFragment extends PreferenceFragmentCompat {

@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
setPreferencesFromResource(R.xml.preference, rootKey);
SharedPreferencesGrouper spg = SharedPreferencesGrouper.getInstance(requireContext());
getPreferenceManager().setSharedPreferencesName(spg.getSharedPreferenceIdentifier(SPType.default_sp));
ListPreference sub_select = findPreference("select_subscription");
PreferenceManager pfm = getPreferenceManager();
pfm.setSharedPreferencesName(spg.getSharedPreferenceIdentifier(SPType.default_sp));
ListPreference sub_select = pfm.findPreference("select_subscription");

ArrayList<String> entries = new ArrayList<>();
ArrayList<String> entryValues = new ArrayList<>();
List<SubscriptionInfo> subscriptions = GlobalVars.getInstance().get_dp().getSubscriptions();
Expand All @@ -46,7 +50,7 @@ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
sub_select.setEntryValues(entryValues_char);
sub_select.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
public boolean onPreferenceChange(@NonNull Preference preference, Object newValue) {
Toast.makeText(requireContext().getApplicationContext(), "Subscription Changed, please restart OMNT", Toast.LENGTH_SHORT).show();
return true;
}
Expand Down

0 comments on commit 81fb281

Please sign in to comment.