2121import android .view .Menu ;
2222import android .view .MenuInflater ;
2323import android .view .MenuItem ;
24+ import android .view .View ;
2425import android .widget .Toast ;
2526import android .widget .Toolbar ;
2627
3637import fr .neamar .kiss .broadcast .IncomingCallHandler ;
3738import fr .neamar .kiss .dataprovider .simpleprovider .SearchProvider ;
3839import fr .neamar .kiss .dataprovider .simpleprovider .TagsProvider ;
40+ import fr .neamar .kiss .forwarder .TagsMenu ;
3941import fr .neamar .kiss .pojo .AppPojo ;
4042import fr .neamar .kiss .pojo .Pojo ;
4143import fr .neamar .kiss .pojo .TagDummyPojo ;
@@ -135,6 +137,7 @@ protected void onCreate(Bundle savedInstanceState) {
135137
136138 SettingsActivity .this .addCustomSearchProvidersPreferences (prefs );
137139
140+ SettingsActivity .this .addHiddenTagsTogglesInformation (prefs );
138141 SettingsActivity .this .addTagsFavInformation ();
139142 };
140143
@@ -175,7 +178,12 @@ public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preferen
175178 Toolbar toolbar = PreferenceScreenHelper .findToolbar ((PreferenceScreen ) preference );
176179
177180 if (toolbar != null ) {
178- toolbar .setNavigationOnClickListener (v -> dialog .dismiss ());
181+ toolbar .setNavigationOnClickListener (new View .OnClickListener () {
182+ @ Override
183+ public void onClick (View v ) {
184+ dialog .dismiss ();
185+ }
186+ });
179187 }
180188 }
181189
@@ -193,7 +201,12 @@ private void addExcludedAppSettings() {
193201
194202 PreferenceScreen excludedAppsScreen = ExcludePreferenceScreen .getInstance (
195203 this ,
196- AppPojo ::isExcluded ,
204+ new ExcludePreferenceScreen .IsExcludedCallback () {
205+ @ Override
206+ public boolean isExcluded (@ NonNull AppPojo app ) {
207+ return app .isExcluded ();
208+ }
209+ },
197210 new ExcludePreferenceScreen .OnExcludedListener () {
198211 @ Override
199212 public void onExcluded (final @ NonNull AppPojo app ) {
@@ -218,7 +231,12 @@ private void addExcludedFromHistoryAppSettings() {
218231
219232 PreferenceScreen excludedAppsScreen = ExcludePreferenceScreen .getInstance (
220233 this ,
221- AppPojo ::isExcludedFromHistory ,
234+ new ExcludePreferenceScreen .IsExcludedCallback () {
235+ @ Override
236+ public boolean isExcluded (@ NonNull AppPojo app ) {
237+ return app .isExcludedFromHistory ();
238+ }
239+ },
222240 new ExcludePreferenceScreen .OnExcludedListener () {
223241 @ Override
224242 public void onExcluded (final @ NonNull AppPojo app ) {
@@ -324,35 +342,37 @@ private void addCustomSearchProvidersDelete(final SharedPreferences prefs) {
324342 multiPreference .setOrder (20 );
325343 PreferenceGroup category = (PreferenceGroup ) findPreference ("web-providers" );
326344
327- multiPreference .setOnPreferenceChangeListener ((preference , newValue ) -> {
328- Set <String > searchProvidersToDelete = (Set <String >) newValue ;
329- Set <String > availableSearchProviders1 = PreferenceManager .getDefaultSharedPreferences (SettingsActivity .this ).getStringSet ("available-search-providers" , SearchProvider .getDefaultSearchProviders (SettingsActivity .this ));
345+ multiPreference .setOnPreferenceChangeListener (new Preference .OnPreferenceChangeListener () {
346+ @ Override
347+ public boolean onPreferenceChange (Preference preference , Object newValue ) {
348+ Set <String > searchProvidersToDelete = (Set <String >) newValue ;
349+ Set <String > availableSearchProviders = PreferenceManager .getDefaultSharedPreferences (SettingsActivity .this ).getStringSet ("available-search-providers" , SearchProvider .getDefaultSearchProviders (SettingsActivity .this ));
330350
331- Set <String > updatedProviders = new TreeSet <>(PreferenceManager .getDefaultSharedPreferences (SettingsActivity .this ).getStringSet ("available-search-providers" , SearchProvider .getDefaultSearchProviders (SettingsActivity .this )));
351+ Set <String > updatedProviders = new TreeSet <>(PreferenceManager .getDefaultSharedPreferences (SettingsActivity .this ).getStringSet ("available-search-providers" , SearchProvider .getDefaultSearchProviders (SettingsActivity .this )));
332352
333- assert availableSearchProviders1 != null ;
334- for (String searchProvider : availableSearchProviders1 ) {
335- for ( String providerToDelete : searchProvidersToDelete ) {
336- if ( searchProvider . startsWith ( providerToDelete + "|" )) {
337- updatedProviders . remove ( searchProvider );
353+ for ( String searchProvider : availableSearchProviders ) {
354+ for (String providerToDelete : searchProvidersToDelete ) {
355+ if ( searchProvider . startsWith ( providerToDelete + "|" ) ) {
356+ updatedProviders . remove ( searchProvider );
357+ }
338358 }
339359 }
340- }
341- SharedPreferences .Editor editor = prefs .edit ();
342- editor .putStringSet ("available-search-providers" , updatedProviders );
343- editor .putStringSet ("deleting-search-providers-names" , updatedProviders );
344- editor .apply ();
360+ SharedPreferences .Editor editor = prefs .edit ();
361+ editor .putStringSet ("available-search-providers" , updatedProviders );
362+ editor .putStringSet ("deleting-search-providers-names" , updatedProviders );
363+ editor .apply ();
345364
346- if (searchProvidersToDelete .size () > 0 ) {
347- Toast .makeText (SettingsActivity .this , R .string .search_provider_deleted , Toast .LENGTH_LONG ).show ();
348- }
365+ if (searchProvidersToDelete .size () > 0 ) {
366+ Toast .makeText (SettingsActivity .this , R .string .search_provider_deleted , Toast .LENGTH_LONG ).show ();
367+ }
349368
350- // Reload search list
351- final SearchProvider provider = KissApplication .getApplication (SettingsActivity .this ).getDataHandler ().getSearchProvider ();
352- if (provider != null ) {
353- provider .reload ();
369+ // Reload search list
370+ final SearchProvider provider = KissApplication .getApplication (SettingsActivity .this ).getDataHandler ().getSearchProvider ();
371+ if (provider != null ) {
372+ provider .reload ();
373+ }
374+ return true ;
354375 }
355- return true ;
356376 });
357377
358378 category .addPreference (multiPreference );
@@ -422,14 +442,12 @@ public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, Strin
422442 }
423443 } else if ("pref-fav-tags-list" .equals (key )) {
424444 // after we edit the fav tags list update DataHandler
425- Set <String > favTags = sharedPreferences .getStringSet (key , Collections .emptySet ());
426- assert favTags != null ;
445+ Set <String > favTags = sharedPreferences .getStringSet (key , Collections .<String >emptySet ());
427446 DataHandler dh = KissApplication .getApplication (this ).getDataHandler ();
428447 ArrayList <Pojo > favoritesPojo = dh .getFavorites ();
429- for (Pojo pojo : favoritesPojo ) {
448+ for (Pojo pojo : favoritesPojo )
430449 if (pojo instanceof TagDummyPojo && !favTags .contains (pojo .getName ()))
431450 dh .removeFromFavorites (pojo .id );
432- }
433451 for (String tagName : favTags )
434452 dh .addToFavorites (TagsProvider .generateUniqueId (tagName ));
435453 }
@@ -485,12 +503,15 @@ private void fixSummaries() {
485503 if (historyLength < 300 ) {
486504 getPreferenceScreen ().removePreference (rateApp );
487505 } else {
488- rateApp .setOnPreferenceClickListener (preference -> {
489- Intent intent = new Intent (Intent .ACTION_VIEW );
490- intent .setData (Uri .parse ("market://details?id=" + getApplicationContext ().getPackageName ()));
491- startActivity (intent );
492-
493- return true ;
506+ rateApp .setOnPreferenceClickListener (new Preference .OnPreferenceClickListener () {
507+ @ Override
508+ public boolean onPreferenceClick (Preference preference ) {
509+ Intent intent = new Intent (Intent .ACTION_VIEW );
510+ intent .setData (Uri .parse ("market://details?id=" + getApplicationContext ().getPackageName ()));
511+ startActivity (intent );
512+
513+ return true ;
514+ }
494515 });
495516 }
496517 }
@@ -514,6 +535,24 @@ private void setListPreferenceIconsPacksData(ListPreference lp) {
514535 lp .setEntryValues (entryValues );
515536 }
516537
538+ private void addHiddenTagsTogglesInformation (SharedPreferences prefs ) {
539+ Set <String > menuTags = TagsMenu .getPrefTags (prefs , getApplicationContext ());
540+ MultiSelectListPreference selectListPreference = (MultiSelectListPreference ) findPreference ("pref-toggle-tags-list" );
541+ Set <String > tagsSet = KissApplication .getApplication (this )
542+ .getDataHandler ()
543+ .getTagsHandler ()
544+ .getAllTagsAsSet ();
545+
546+ // append tags that are available to toggle now
547+ tagsSet .addAll (menuTags );
548+
549+ String [] tagArray = tagsSet .toArray (new String [0 ]);
550+ Arrays .sort (tagArray );
551+ selectListPreference .setEntries (tagArray );
552+ selectListPreference .setEntryValues (tagArray );
553+ selectListPreference .setValues (menuTags );
554+ }
555+
517556 private void addTagsFavInformation () {
518557 Set <String > favTags = getFavTags (getApplicationContext ());
519558 MultiSelectListPreference selectListPreference = (MultiSelectListPreference ) findPreference ("pref-fav-tags-list" );
0 commit comments