$(call all-java-files-under, app/src/main/java) \
$(call all-java-files-under, app/src/androidx86/java) \
$(call all-java-files-under, app/src/nonlib/java) \
- $(call all-java-files-under, app/src/nonplaystore/java)
+ $(call all-java-files-under, app/src/nonplaystore/java) \
+ $(call all-java-files-under, app/src/compat-$(PLATFORM_SDK_VERSION)/java)
LOCAL_MANIFEST_FILE := app/src/androidx86/AndroidManifest.xml
sourceSets {
main {
- java { srcDirs('src/main/java', 'src/playstore/java', 'src/nonlib/java') }
+ java { srcDirs('src/main/java', 'src/playstore/java', 'src/nonlib/java', "src/compat-$COMPILE_SDK_VERSION/java") }
res { srcDirs('src/main/res', 'src/playstore/res', 'src/nonlib/res') }
manifest.srcFile 'src/playstore/AndroidManifest.xml'
}
--- /dev/null
+/* Copyright 2020 Braden Farmer
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.farmerbb.taskbar.util;
+
+import android.view.View;
+
+public class CompatUtils {
+
+ private CompatUtils() {}
+
+ public static boolean isImeVisible(View view) {
+ return false;
+ }
+}
\ No newline at end of file
--- /dev/null
+/* Copyright 2020 Braden Farmer
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.farmerbb.taskbar.util;
+
+import android.view.View;
+
+public class CompatUtils {
+
+ private CompatUtils() {}
+
+ public static boolean isImeVisible(View view) {
+ return false;
+ }
+}
\ No newline at end of file
--- /dev/null
+/* Copyright 2020 Braden Farmer
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.farmerbb.taskbar.util;
+
+// Utility class meant for compatibility between the Android-x86 version of Taskbar (compiled with SDK 28)
+// and the Play Store version of Taskbar (compiled with SDK 30).
+// TODO Do not make changes to this file without making corresponding changes to the Android-x86 version.
+
+import android.os.Build;
+import android.view.View;
+import android.view.WindowInsets;
+
+public class CompatUtils {
+
+ private CompatUtils() {}
+
+ public static boolean isImeVisible(View view) {
+ return Build.VERSION.SDK_INT >= Build.VERSION_CODES.R
+ && view.getRootWindowInsets().isVisible(WindowInsets.Type.ime());
+ }
+}
\ No newline at end of file
package com.farmerbb.taskbar.ui;
-import android.annotation.TargetApi;
import android.content.Context;
import android.content.SharedPreferences;
-import android.os.Build;
import android.view.View;
-import android.view.WindowInsets;
import com.farmerbb.taskbar.activity.SecondaryHomeActivity;
import com.farmerbb.taskbar.helper.LauncherHelper;
+import com.farmerbb.taskbar.util.CompatUtils;
import com.farmerbb.taskbar.util.TaskbarPosition;
import com.farmerbb.taskbar.util.U;
if(U.getCurrentApiVersion() <= 29.0) return;
layout.setOnApplyWindowInsetsListener((v, insets) -> {
- boolean isImeVisible = isImeVisible(v);
+ boolean isImeVisible = CompatUtils.isImeVisible(v);
if(isImeVisible != prevImeVisibility) {
prevImeVisibility = isImeVisible;
return insets;
});
}
-
- @TargetApi(Build.VERSION_CODES.M)
- private boolean isImeVisible(View view) {
- return view.getRootWindowInsets().isVisible(WindowInsets.Type.ime());
- }
}
\ No newline at end of file
sourceSets {
main {
- java { srcDirs('../app/src/main/java', '../app/src/lib/java', '../app/src/nonplaystore/java') }
+ java { srcDirs('../app/src/main/java', '../app/src/lib/java', '../app/src/nonplaystore/java', "../app/src/compat-$COMPILE_SDK_VERSION/java") }
res { srcDirs('../app/src/main/res', '../app/src/lib/res') }
manifest.srcFile '../app/src/lib/AndroidManifest.xml'
}