case "show_window_sizes":
getPreferenceScreen().removeAll();
- String windowSizePref = SavedWindowSizes.getInstance(this).getWindowSize(this, packageName);
-
addPreferencesFromResource(R.xml.pref_context_menu_window_size_list);
findPreference("window_size_standard").setOnPreferenceClickListener(this);
findPreference("window_size_large").setOnPreferenceClickListener(this);
findPreference("window_size_half_right").setOnPreferenceClickListener(this);
findPreference("window_size_phone_size").setOnPreferenceClickListener(this);
- CharSequence title = findPreference("window_size_" + windowSizePref).getTitle();
- findPreference("window_size_" + windowSizePref).setTitle('\u2713' + " " + title);
+ SharedPreferences pref = U.getSharedPreferences(this);
+ if(pref.getBoolean("save_window_sizes", true)) {
+ String windowSizePref = SavedWindowSizes.getInstance(this).getWindowSize(this, packageName);
+ CharSequence title = findPreference("window_size_" + windowSizePref).getTitle();
+ findPreference("window_size_" + windowSizePref).setTitle('\u2713' + " " + title);
+ }
dontFinish = true;
break;
case "window_size_half_left":
case "window_size_half_right":
case "window_size_phone_size":
- SavedWindowSizes.getInstance(this).setWindowSize(this, packageName, p.getKey().replace("window_size_", ""));
-
+ SharedPreferences pref2 = U.getSharedPreferences(this);
+ if(pref2.getBoolean("save_window_sizes", true)) {
+ SavedWindowSizes.getInstance(this).setWindowSize(this, packageName, p.getKey().replace("window_size_", ""));
+ }
+
startFreeformActivity();
U.launchApp(this, packageName, componentName, false, !isInMultiWindowMode(), true);
bindPreferenceSummaryToValue(findPreference("window_size"));
+ SharedPreferences pref = U.getSharedPreferences(getActivity());
+ boolean freeformHackEnabled = pref.getBoolean("freeform_hack", false);
+ findPreference("open_in_fullscreen").setEnabled(freeformHackEnabled);
+ findPreference("save_window_sizes").setEnabled(freeformHackEnabled);
+ findPreference("window_size").setEnabled(freeformHackEnabled);
+
AppCompatActivity activity = (AppCompatActivity) getActivity();
activity.setTitle(R.string.pref_header_freeform);
ActionBar actionBar = activity.getSupportActionBar();
LocalBroadcastManager.getInstance(getActivity()).sendBroadcast(new Intent("com.farmerbb.taskbar.FINISH_FREEFORM_ACTIVITY"));
LocalBroadcastManager.getInstance(getActivity()).sendBroadcast(new Intent("com.farmerbb.taskbar.FORCE_TASKBAR_RESTART"));
}
+
+ findPreference("open_in_fullscreen").setEnabled(((CheckBoxPreference) p).isChecked());
+ findPreference("save_window_sizes").setEnabled(((CheckBoxPreference) p).isChecked());
+ findPreference("window_size").setEnabled(((CheckBoxPreference) p).isChecked());
break;
case "freeform_mode_help":
AlertDialog.Builder builder2 = new AlertDialog.Builder(getActivity());
boolean shouldDelay = false;
SharedPreferences pref = getSharedPreferences(context);
+ boolean freeformHackActive = openInNewWindow
+ ? FreeformHackHelper.getInstance().isInFreeformWorkspace()
+ : (pref.getBoolean("open_in_fullscreen", true)
+ ? FreeformHackHelper.getInstance().isInFreeformWorkspace()
+ : FreeformHackHelper.getInstance().isFreeformHackActive());
+
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N
&& pref.getBoolean("freeform_hack", false)
- && !FreeformHackHelper.getInstance().isInFreeformWorkspace()) {
+ && !freeformHackActive) {
shouldDelay = true;
new Handler().postDelayed(new Runnable() {
}
if(!FreeformHackHelper.getInstance().isFreeformHackActive()) {
- if(!shouldDelay) continueLaunchingApp(context, packageName, componentName, launchedFromTaskbar, padStatusBar, openInNewWindow);
- } else if(FreeformHackHelper.getInstance().isInFreeformWorkspace())
+ if(!shouldDelay)
+ continueLaunchingApp(context, packageName, componentName, launchedFromTaskbar, padStatusBar, openInNewWindow);
+ } else if(FreeformHackHelper.getInstance().isInFreeformWorkspace()
+ || !pref.getBoolean("open_in_fullscreen", true))
continueLaunchingApp(context, packageName, componentName, launchedFromTaskbar, padStatusBar, openInNewWindow);
}
<string name="already_top_app">%1$s can\'t be selected because it is on the top apps list</string>
<string name="alt_button_config">Alternate position for collapse button</string>
+ <string name="pref_title_open_in_fullscreen">Open windows from fullscreen apps</string>
+ <string name="pref_description_open_in_fullscreen">Requires freeform mode to be initiated at least once after Taskbar starts. When unchecked, freeform windows will only open while in the freeform workspace.</string>
+ <string name="pref_title_save_window_sizes">Save window sizes for apps</string>
+ <string name="pref_description_save_window_sizes">When opening new windows from the context menu</string>
</resources>
<string name="already_top_app">%1$s can\'t be selected because it is on the top apps list</string>
<string name="alt_button_config">Alternate position for collapse button</string>
-
+ <string name="pref_title_open_in_fullscreen">Open windows from fullscreen apps</string>
+ <string name="pref_description_open_in_fullscreen">Requires freeform mode to be initiated at least once after Taskbar starts. When unchecked, freeform windows will only open while in the freeform workspace.</string>
+ <string name="pref_title_save_window_sizes">Save window sizes for apps</string>
+ <string name="pref_description_save_window_sizes">When opening new windows from the context menu</string>
</resources>
android:title="@string/pref_title_freeform_hack"
android:summary="@string/pref_description_freeform_hack" />
+ <CheckBoxPreference
+ android:defaultValue="true"
+ android:key="open_in_fullscreen"
+ android:title="@string/pref_title_open_in_fullscreen"
+ android:summary="@string/pref_description_open_in_fullscreen" />
+
+ <CheckBoxPreference
+ android:defaultValue="true"
+ android:key="save_window_sizes"
+ android:title="@string/pref_title_save_window_sizes"
+ android:summary="@string/pref_description_save_window_sizes" />
+
<ListPreference
android:defaultValue="standard"
android:entries="@array/pref_window_size_list"