minSdkVersion 21
targetSdkVersion 25
- versionCode 139
- versionName "3.3.1"
+ versionCode 140
+ versionName "3.3.2"
resConfigs "en", "ja", "ru", "de"
findPreference("window_size").setOnPreferenceClickListener(this);
bindPreferenceSummaryToValue(findPreference("window_size"));
-
- SharedPreferences pref = U.getSharedPreferences(getActivity());
- boolean freeformHackEnabled = pref.getBoolean("freeform_hack", false);
- findPreference("launch_games_fullscreen").setEnabled(freeformHackEnabled);
- findPreference("save_window_sizes").setEnabled(freeformHackEnabled);
- findPreference("window_size").setEnabled(freeformHackEnabled);
- findPreference("add_shortcut").setEnabled(freeformHackEnabled);
- findPreference("force_new_window").setEnabled(freeformHackEnabled);
}
AppCompatActivity activity = (AppCompatActivity) getActivity();
if(actionBar != null)
actionBar.setDisplayHomeAsUpEnabled(true);
+ // Dialog shown on Samsung devices, which seem to not work with freeform mode
+ if(Build.MANUFACTURER.equalsIgnoreCase("Samsung")) {
+ SharedPreferences pref = U.getSharedPreferences(getActivity());
+ if(!pref.getBoolean("samsung_dialog_shown", false)) {
+ AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+ builder.setTitle(R.string.samsung_freeform_title)
+ .setMessage(R.string.samsung_freeform_message)
+ .setPositiveButton(R.string.action_ok, (dialog, which) -> pref.edit().putBoolean("samsung_dialog_shown", true).apply());
+
+ AlertDialog dialog = builder.create();
+ dialog.show();
+ dialog.setCancelable(false);
+ }
+ }
+
finishedLoadingPrefs = true;
}
((CheckBoxPreference) findPreference("freeform_hack")).setChecked(U.hasFreeformSupport(getActivity()));
- findPreference("launch_games_fullscreen").setEnabled(U.hasFreeformSupport(getActivity()));
- findPreference("save_window_sizes").setEnabled(U.hasFreeformSupport(getActivity()));
- findPreference("window_size").setEnabled(U.hasFreeformSupport(getActivity()));
- findPreference("add_shortcut").setEnabled(U.hasFreeformSupport(getActivity()));
- findPreference("force_new_window").setEnabled(U.hasFreeformSupport(getActivity()));
-
if(U.hasFreeformSupport(getActivity())) {
U.showToastLong(getActivity(), R.string.reboot_required);
}
LocalBroadcastManager.getInstance(getActivity()).sendBroadcast(new Intent("com.farmerbb.taskbar.FORCE_TASKBAR_RESTART"));
}
- findPreference("launch_games_fullscreen").setEnabled(((CheckBoxPreference) p).isChecked());
- findPreference("save_window_sizes").setEnabled(((CheckBoxPreference) p).isChecked());
- findPreference("window_size").setEnabled(((CheckBoxPreference) p).isChecked());
- findPreference("add_shortcut").setEnabled(((CheckBoxPreference) p).isChecked());
- findPreference("force_new_window").setEnabled(((CheckBoxPreference) p).isChecked());
-
break;
case "freeform_mode_help":
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
}
}
});
- }
+ }
isRefreshingRecents = false;
}
// Filter out apps without a launcher intent
// Also filter out the current launcher, and Taskbar itself
for(AppEntry packageInfo : usageStatsList) {
- if(pm.getLaunchIntentForPackage(packageInfo.getPackageName()) != null
+ if(hasLauncherIntent(packageInfo.getPackageName())
&& !packageInfo.getPackageName().contains(BuildConfig.BASE_APPLICATION_ID)
&& !packageInfo.getPackageName().equals(defaultLauncher.activityInfo.packageName))
usageStatsList2.add(packageInfo);
return entries;
}
+
+ private boolean hasLauncherIntent(String packageName) {
+ Intent intentToResolve = new Intent(Intent.ACTION_MAIN);
+ intentToResolve.addCategory(Intent.CATEGORY_LAUNCHER);
+ intentToResolve.setPackage(packageName);
+
+ List<ResolveInfo> ris = getPackageManager().queryIntentActivities(intentToResolve, 0);
+ return ris != null && ris.size() > 0;
+ }
}
<string name="restore_widget">Restore widget</string>
+ <string name="samsung_freeform_title">Note</string>
+ <string name="samsung_freeform_message">Freeform mode may not work on Samsung devices, due to system changes made for DeX support.\n\nYou may need to flash a custom ROM in order to use freeform mode on this device.</string>
+
</resources>
<string name="restore_widget">Restore widget</string>
+ <string name="samsung_freeform_title">Note</string>
+ <string name="samsung_freeform_message">Freeform mode may not work on Samsung devices, due to system changes made for DeX support.\n\nYou may need to flash a custom ROM in order to use freeform mode on this device.</string>
+
</resources>
<string name="restore_widget">Restore widget</string>
+ <string name="samsung_freeform_title">Note</string>
+ <string name="samsung_freeform_message">Freeform mode may not work on Samsung devices, due to system changes made for DeX support.\n\nYou may need to flash a custom ROM in order to use freeform mode on this device.</string>
+
</resources>
<string name="restore_widget">Restore widget</string>
+ <string name="samsung_freeform_title">Note</string>
+ <string name="samsung_freeform_message">Freeform mode may not work on Samsung devices, due to system changes made for DeX support.\n\nYou may need to flash a custom ROM in order to use freeform mode on this device.</string>
+
</resources>
<CheckBoxPreference
android:defaultValue="true"
android:key="save_window_sizes"
+ android:dependency="freeform_hack"
android:title="@string/pref_title_save_window_sizes"
android:summary="@string/pref_description_save_window_sizes" />
<CheckBoxPreference
android:defaultValue="false"
android:key="force_new_window"
+ android:dependency="freeform_hack"
android:title="@string/pref_title_force_new_window"
android:summary="@string/pref_description_force_new_window" />
<CheckBoxPreference
android:defaultValue="true"
android:key="launch_games_fullscreen"
+ android:dependency="freeform_hack"
android:title="@string/launch_games_fullscreen_title"
android:summary="@string/launch_games_fullscreen_message" />
android:entries="@array/pref_window_size_list"
android:entryValues="@array/pref_window_size_list_values"
android:key="window_size"
+ android:dependency="freeform_hack"
android:negativeButtonText="@null"
android:positiveButtonText="@null"
android:title="@string/pref_title_window_size"/>
<Preference
android:key="add_shortcut"
+ android:dependency="freeform_hack"
android:title="@string/add_shortcut" />
<Preference