From: Braden Farmer Date: Mon, 23 Mar 2020 05:04:28 +0000 (-0600) Subject: Abstract logic for setting components enabled / disabled X-Git-Tag: android-x86-9.0-r2 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=refs%2Ftags%2Fandroid-x86-9.0-r2;hp=7c108aa7eee89e8c06533ff32ff94a808452590b;p=android-x86%2Fpackages-apps-Taskbar.git Abstract logic for setting components enabled / disabled --- diff --git a/app/src/lib/java/com/farmerbb/taskbar/lib/Taskbar.java b/app/src/lib/java/com/farmerbb/taskbar/lib/Taskbar.java index 8ce2f57c..dd5db9f7 100644 --- a/app/src/lib/java/com/farmerbb/taskbar/lib/Taskbar.java +++ b/app/src/lib/java/com/farmerbb/taskbar/lib/Taskbar.java @@ -16,10 +16,8 @@ package com.farmerbb.taskbar.lib; import android.app.Activity; -import android.content.ComponentName; import android.content.Context; import android.content.Intent; -import android.content.pm.PackageManager; import androidx.annotation.Keep; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -27,6 +25,7 @@ import androidx.annotation.StyleRes; import com.farmerbb.taskbar.activity.MainActivity; import com.farmerbb.taskbar.activity.SecondaryHomeActivity; +import com.farmerbb.taskbar.util.U; @Keep public class Taskbar { @@ -88,10 +87,6 @@ import com.farmerbb.taskbar.activity.SecondaryHomeActivity; * @param enabled "true" to enable desktop mode, "false" to disable */ @Keep public static void setEnabled(@NonNull Context context, boolean enabled) { - ComponentName component = new ComponentName(context, SecondaryHomeActivity.class); - context.getPackageManager().setComponentEnabledSetting(component, enabled - ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED - : PackageManager.COMPONENT_ENABLED_STATE_DISABLED, - PackageManager.DONT_KILL_APP); + U.setComponentEnabled(context, SecondaryHomeActivity.class, enabled); } } \ No newline at end of file diff --git a/app/src/main/java/com/farmerbb/taskbar/activity/MainActivity.java b/app/src/main/java/com/farmerbb/taskbar/activity/MainActivity.java index b617b689..b301957f 100644 --- a/app/src/main/java/com/farmerbb/taskbar/activity/MainActivity.java +++ b/app/src/main/java/com/farmerbb/taskbar/activity/MainActivity.java @@ -21,7 +21,6 @@ import android.app.Fragment; import android.app.FragmentTransaction; import android.content.ActivityNotFoundException; import android.content.BroadcastReceiver; -import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; @@ -117,53 +116,22 @@ public class MainActivity extends AppCompatActivity { editor.apply(); if(!U.isLibrary(this)) { - ComponentName component = new ComponentName(this, HomeActivity.class); - getPackageManager().setComponentEnabledSetting(component, - launcherEnabled && !U.isDelegatingHomeActivity(this) - ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED - : PackageManager.COMPONENT_ENABLED_STATE_DISABLED, - PackageManager.DONT_KILL_APP); - - ComponentName component2 = new ComponentName(this, KeyboardShortcutActivity.class); - getPackageManager().setComponentEnabledSetting(component2, - pref.getBoolean("keyboard_shortcut", false) - ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED - : PackageManager.COMPONENT_ENABLED_STATE_DISABLED, - PackageManager.DONT_KILL_APP); - - ComponentName component3 = new ComponentName(this, ShortcutActivity.class); - getPackageManager().setComponentEnabledSetting(component3, - U.enableFreeformModeShortcut(this) - ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED - : PackageManager.COMPONENT_ENABLED_STATE_DISABLED, - PackageManager.DONT_KILL_APP); - - ComponentName component4 = new ComponentName(this, StartTaskbarActivity.class); - getPackageManager().setComponentEnabledSetting(component4, - PackageManager.COMPONENT_ENABLED_STATE_ENABLED, - PackageManager.DONT_KILL_APP); - - ComponentName component5 = new ComponentName(this, SecondaryHomeActivity.class); - getPackageManager().setComponentEnabledSetting(component5, - desktopModeEnabled - ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED - : PackageManager.COMPONENT_ENABLED_STATE_DISABLED, - PackageManager.DONT_KILL_APP); - - ComponentName component6 = new ComponentName(this, HSLActivity.class); - getPackageManager().setComponentEnabledSetting(component6, - desktopModeEnabled - ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED - : PackageManager.COMPONENT_ENABLED_STATE_DISABLED, - PackageManager.DONT_KILL_APP); + U.setComponentEnabled(this, HomeActivity.class, + launcherEnabled && !U.isDelegatingHomeActivity(this)); + + U.setComponentEnabled(this, KeyboardShortcutActivity.class, + pref.getBoolean("keyboard_shortcut", false)); + + U.setComponentEnabled(this, ShortcutActivity.class, + U.enableFreeformModeShortcut(this)); + + U.setComponentEnabled(this, StartTaskbarActivity.class, true); + U.setComponentEnabled(this, SecondaryHomeActivity.class, desktopModeEnabled); + U.setComponentEnabled(this, HSLActivity.class, desktopModeEnabled); if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { - ComponentName component7 = new ComponentName(this, KeyboardShortcutActivityLockDevice.class); - getPackageManager().setComponentEnabledSetting(component7, - pref.getBoolean("keyboard_shortcut", false) - ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED - : PackageManager.COMPONENT_ENABLED_STATE_DISABLED, - PackageManager.DONT_KILL_APP); + U.setComponentEnabled(this, KeyboardShortcutActivityLockDevice.class, + pref.getBoolean("keyboard_shortcut", false)); } } diff --git a/app/src/main/java/com/farmerbb/taskbar/fragment/AdvancedFragment.java b/app/src/main/java/com/farmerbb/taskbar/fragment/AdvancedFragment.java index 92327cf5..9d6f3a79 100644 --- a/app/src/main/java/com/farmerbb/taskbar/fragment/AdvancedFragment.java +++ b/app/src/main/java/com/farmerbb/taskbar/fragment/AdvancedFragment.java @@ -20,7 +20,6 @@ import android.app.Activity; import android.app.FragmentTransaction; import android.content.ActivityNotFoundException; import android.content.BroadcastReceiver; -import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; @@ -157,6 +156,7 @@ public class AdvancedFragment extends SettingsFragment { } @SuppressLint("SetTextI18n") + @SuppressWarnings("deprecation") @Override public boolean onPreferenceClick(final Preference p) { final SharedPreferences pref = U.getSharedPreferences(getActivity()); @@ -164,12 +164,8 @@ public class AdvancedFragment extends SettingsFragment { switch(p.getKey()) { case "launcher": if(U.canDrawOverlays(getActivity())) { - ComponentName component = new ComponentName(getActivity(), HomeActivity.class); - getActivity().getPackageManager().setComponentEnabledSetting(component, - ((CheckBoxPreference) p).isChecked() - ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED - : PackageManager.COMPONENT_ENABLED_STATE_DISABLED, - PackageManager.DONT_KILL_APP); + U.setComponentEnabled(getActivity(), HomeActivity.class, + ((CheckBoxPreference) p).isChecked()); } else { U.showPermissionDialog(getActivity()); ((CheckBoxPreference) p).setChecked(false); @@ -180,16 +176,12 @@ public class AdvancedFragment extends SettingsFragment { } break; case "keyboard_shortcut": - ComponentName component = new ComponentName(getActivity(), KeyboardShortcutActivity.class); - getActivity().getPackageManager().setComponentEnabledSetting(component, - ((CheckBoxPreference) p).isChecked() ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED : PackageManager.COMPONENT_ENABLED_STATE_DISABLED, - PackageManager.DONT_KILL_APP); + U.setComponentEnabled(getActivity(), KeyboardShortcutActivity.class, + ((CheckBoxPreference) p).isChecked()); if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { - ComponentName component2 = new ComponentName(getActivity(), KeyboardShortcutActivityLockDevice.class); - getActivity().getPackageManager().setComponentEnabledSetting(component2, - ((CheckBoxPreference) p).isChecked() ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED : PackageManager.COMPONENT_ENABLED_STATE_DISABLED, - PackageManager.DONT_KILL_APP); + U.setComponentEnabled(getActivity(), KeyboardShortcutActivityLockDevice.class, + ((CheckBoxPreference) p).isChecked()); } break; case "dashboard_grid_size": diff --git a/app/src/main/java/com/farmerbb/taskbar/fragment/DesktopModeFragment.java b/app/src/main/java/com/farmerbb/taskbar/fragment/DesktopModeFragment.java index c1fe4701..127fd394 100644 --- a/app/src/main/java/com/farmerbb/taskbar/fragment/DesktopModeFragment.java +++ b/app/src/main/java/com/farmerbb/taskbar/fragment/DesktopModeFragment.java @@ -17,7 +17,6 @@ package com.farmerbb.taskbar.fragment; import android.annotation.TargetApi; import android.content.ActivityNotFoundException; -import android.content.ComponentName; import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.PackageManager; @@ -109,19 +108,11 @@ public class DesktopModeFragment extends SettingsFragment { public boolean onPreferenceClick(final Preference p) { switch(p.getKey()) { case "desktop_mode": - ComponentName component = new ComponentName(getActivity(), SecondaryHomeActivity.class); - getActivity().getPackageManager().setComponentEnabledSetting(component, - ((CheckBoxPreference) p).isChecked() - ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED - : PackageManager.COMPONENT_ENABLED_STATE_DISABLED, - PackageManager.DONT_KILL_APP); - - ComponentName component2 = new ComponentName(getActivity(), HSLActivity.class); - getActivity().getPackageManager().setComponentEnabledSetting(component2, - ((CheckBoxPreference) p).isChecked() - ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED - : PackageManager.COMPONENT_ENABLED_STATE_DISABLED, - PackageManager.DONT_KILL_APP); + U.setComponentEnabled(getActivity(), SecondaryHomeActivity.class, + ((CheckBoxPreference) p).isChecked()); + + U.setComponentEnabled(getActivity(), HSLActivity.class, + ((CheckBoxPreference) p).isChecked()); break; case "set_launcher_default": diff --git a/app/src/main/java/com/farmerbb/taskbar/ui/DashboardController.java b/app/src/main/java/com/farmerbb/taskbar/ui/DashboardController.java index 996acc82..4d6693af 100644 --- a/app/src/main/java/com/farmerbb/taskbar/ui/DashboardController.java +++ b/app/src/main/java/com/farmerbb/taskbar/ui/DashboardController.java @@ -258,11 +258,6 @@ public class DashboardController implements UIController { mAppWidgetHost.stopListening(); - U.unregisterReceiver(context, toggleReceiver); - U.unregisterReceiver(context, addWidgetReceiver); - U.unregisterReceiver(context, removeWidgetReceiver); - U.unregisterReceiver(context, hideReceiver); - U.registerReceiver(context, toggleReceiver, TaskbarIntent.ACTION_TOGGLE_DASHBOARD); U.registerReceiver(context, addWidgetReceiver, TaskbarIntent.ACTION_ADD_WIDGET_COMPLETED); U.registerReceiver(context, removeWidgetReceiver, TaskbarIntent.ACTION_REMOVE_WIDGET_COMPLETED); diff --git a/app/src/main/java/com/farmerbb/taskbar/ui/StartMenuController.java b/app/src/main/java/com/farmerbb/taskbar/ui/StartMenuController.java index 22cd248f..622e3001 100644 --- a/app/src/main/java/com/farmerbb/taskbar/ui/StartMenuController.java +++ b/app/src/main/java/com/farmerbb/taskbar/ui/StartMenuController.java @@ -410,13 +410,6 @@ public class StartMenuController implements UIController { textView = layout.findViewById(R.id.no_apps_found); - U.unregisterReceiver(context, toggleReceiver); - U.unregisterReceiver(context, hideReceiver); - U.unregisterReceiver(context, hideReceiverNoReset); - U.unregisterReceiver(context, showSpaceReceiver); - U.unregisterReceiver(context, hideSpaceReceiver); - U.unregisterReceiver(context, resetReceiver); - U.registerReceiver(context, toggleReceiver, TaskbarIntent.ACTION_TOGGLE_START_MENU); U.registerReceiver(context, hideReceiver, TaskbarIntent.ACTION_HIDE_START_MENU); U.registerReceiver(context, hideReceiverNoReset, TaskbarIntent.ACTION_HIDE_START_MENU_NO_RESET); diff --git a/app/src/main/java/com/farmerbb/taskbar/ui/TaskbarController.java b/app/src/main/java/com/farmerbb/taskbar/ui/TaskbarController.java index d370fbe6..58a4cdd7 100644 --- a/app/src/main/java/com/farmerbb/taskbar/ui/TaskbarController.java +++ b/app/src/main/java/com/farmerbb/taskbar/ui/TaskbarController.java @@ -629,13 +629,6 @@ public class TaskbarController implements UIController { new Handler().postDelayed(() -> U.startTouchAbsorberActivity(context), 500); } - U.unregisterReceiver(context, showReceiver); - U.unregisterReceiver(context, hideReceiver); - U.unregisterReceiver(context, tempShowReceiver); - U.unregisterReceiver(context, tempHideReceiver); - U.unregisterReceiver(context, startMenuAppearReceiver); - U.unregisterReceiver(context, startMenuDisappearReceiver); - U.registerReceiver(context, showReceiver, TaskbarIntent.ACTION_SHOW_TASKBAR); U.registerReceiver(context, hideReceiver, TaskbarIntent.ACTION_HIDE_TASKBAR); U.registerReceiver(context, tempShowReceiver, TaskbarIntent.ACTION_TEMP_SHOW_TASKBAR); diff --git a/app/src/main/java/com/farmerbb/taskbar/util/U.java b/app/src/main/java/com/farmerbb/taskbar/util/U.java index 49acebe4..4d922d6a 100644 --- a/app/src/main/java/com/farmerbb/taskbar/util/U.java +++ b/app/src/main/java/com/farmerbb/taskbar/util/U.java @@ -206,9 +206,7 @@ public class U { } public static void sendAccessibilityAction(Context context, int action, Runnable onComplete) { - ComponentName component = new ComponentName(context, PowerMenuService.class); - context.getPackageManager().setComponentEnabledSetting(component, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, - PackageManager.DONT_KILL_APP); + setComponentEnabled(context, PowerMenuService.class, true); boolean isAccessibilityServiceEnabled = isAccessibilityServiceEnabled(context); @@ -1925,4 +1923,13 @@ public class U { public static void sendBroadcast(Context context, Intent intent) { LocalBroadcastManager.getInstance(context).sendBroadcast(intent); } + + @SuppressWarnings("rawtypes") + public static void setComponentEnabled(Context context, Class clazz, boolean enabled) { + ComponentName component = new ComponentName(context, clazz); + context.getPackageManager().setComponentEnabledSetting(component, + enabled ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED + : PackageManager.COMPONENT_ENABLED_STATE_DISABLED, + PackageManager.DONT_KILL_APP); + } } diff --git a/app/src/playstore/java/com/farmerbb/taskbar/receiver/DisableHomeReceiver.java b/app/src/playstore/java/com/farmerbb/taskbar/receiver/DisableHomeReceiver.java index 1c495c96..a775e61b 100644 --- a/app/src/playstore/java/com/farmerbb/taskbar/receiver/DisableHomeReceiver.java +++ b/app/src/playstore/java/com/farmerbb/taskbar/receiver/DisableHomeReceiver.java @@ -16,11 +16,9 @@ package com.farmerbb.taskbar.receiver; import android.content.BroadcastReceiver; -import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; -import android.content.pm.PackageManager; import com.farmerbb.taskbar.activity.HomeActivity; import com.farmerbb.taskbar.content.TaskbarIntent; import com.farmerbb.taskbar.util.U; @@ -34,11 +32,7 @@ public class DisableHomeReceiver extends BroadcastReceiver { else if(!U.isLauncherPermanentlyEnabled(context)) { pref.edit().putBoolean("launcher", false).apply(); - ComponentName component = new ComponentName(context, HomeActivity.class); - context.getPackageManager().setComponentEnabledSetting(component, - PackageManager.COMPONENT_ENABLED_STATE_DISABLED, - PackageManager.DONT_KILL_APP); - + U.setComponentEnabled(context, HomeActivity.class, false); U.sendBroadcast(context, TaskbarIntent.ACTION_KILL_HOME_ACTIVITY); U.sendBroadcast(context, TaskbarIntent.ACTION_LAUNCHER_PREF_CHANGED); } diff --git a/app/src/playstore/java/com/farmerbb/taskbar/receiver/EnableHomeReceiver.java b/app/src/playstore/java/com/farmerbb/taskbar/receiver/EnableHomeReceiver.java index bac6ca42..7c225c01 100644 --- a/app/src/playstore/java/com/farmerbb/taskbar/receiver/EnableHomeReceiver.java +++ b/app/src/playstore/java/com/farmerbb/taskbar/receiver/EnableHomeReceiver.java @@ -16,12 +16,9 @@ package com.farmerbb.taskbar.receiver; import android.content.BroadcastReceiver; -import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; -import android.content.pm.PackageManager; -import com.farmerbb.taskbar.BuildConfig; import com.farmerbb.taskbar.activity.HomeActivity; import com.farmerbb.taskbar.content.TaskbarIntent; import com.farmerbb.taskbar.util.U; @@ -37,11 +34,7 @@ public class EnableHomeReceiver extends BroadcastReceiver { editor.putBoolean("launcher", true); editor.apply(); - ComponentName component = new ComponentName(context, HomeActivity.class); - context.getPackageManager().setComponentEnabledSetting(component, - PackageManager.COMPONENT_ENABLED_STATE_ENABLED, - PackageManager.DONT_KILL_APP); - + U.setComponentEnabled(context, HomeActivity.class, true); U.sendBroadcast(context, TaskbarIntent.ACTION_LAUNCHER_PREF_CHANGED); } }