From 4400bffbeb16e24289841360e35a3cf22cdc2bd8 Mon Sep 17 00:00:00 2001 From: Pulkit077 Date: Tue, 20 Feb 2024 18:10:14 +0530 Subject: [PATCH] Migrate to PixelExperience Change-Id: I5a66beb4a48695f5ac083ffcf6fd6c6ca6409a8e Signed-off-by: Pulkit077 Signed-off-by: RisenID Co-Authored-By: Ruchit Marathe --- AdvancedDisplay/Android.bp | 1 - .../device/AdvancedDisplayFragment.java | 2 - .../lineageos/settings/device/FileUtils.java | 160 ++++++++++++++++++ .../settings/device/mDNIeAccessibility.java | 2 - .../settings/device/mDNIeScenario.java | 2 - doze/Android.mk | 3 - .../settings/doze/SamsungDozeSettings.java | 2 - .../lineageos/settings/doze/ScreenType.java | 66 ++++++++ 8 files changed, 226 insertions(+), 12 deletions(-) create mode 100644 AdvancedDisplay/src/org/lineageos/settings/device/FileUtils.java create mode 100644 doze/src/org/lineageos/settings/doze/ScreenType.java diff --git a/AdvancedDisplay/Android.bp b/AdvancedDisplay/Android.bp index 455692a5..c2477a35 100644 --- a/AdvancedDisplay/Android.bp +++ b/AdvancedDisplay/Android.bp @@ -13,7 +13,6 @@ android_app { platform_apis: true, static_libs: [ - "org.lineageos.platform.internal", "org.lineageos.settings.resources", ], diff --git a/AdvancedDisplay/src/org/lineageos/settings/device/AdvancedDisplayFragment.java b/AdvancedDisplay/src/org/lineageos/settings/device/AdvancedDisplayFragment.java index 54468608..c7e7b70e 100644 --- a/AdvancedDisplay/src/org/lineageos/settings/device/AdvancedDisplayFragment.java +++ b/AdvancedDisplay/src/org/lineageos/settings/device/AdvancedDisplayFragment.java @@ -23,8 +23,6 @@ import androidx.preference.PreferenceFragment; import org.lineageos.settings.device.R; -import org.lineageos.internal.util.FileUtils; - public class AdvancedDisplayFragment extends PreferenceFragment { private mDNIeScenario mmDNIeScenario; private mDNIeAccessibility mmDNIeAccessibility; diff --git a/AdvancedDisplay/src/org/lineageos/settings/device/FileUtils.java b/AdvancedDisplay/src/org/lineageos/settings/device/FileUtils.java new file mode 100644 index 00000000..3bb40280 --- /dev/null +++ b/AdvancedDisplay/src/org/lineageos/settings/device/FileUtils.java @@ -0,0 +1,160 @@ +/* + * Copyright (C) 2016 The CyanogenMod Project + * + * 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 org.lineageos.settings.device; + +import android.util.Log; + +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; + +public final class FileUtils { + private static final String TAG = "FileUtils"; + + private FileUtils() { + // This class is not supposed to be instantiated + } + + /** + * Reads the first line of text from the given file. + * Reference {@link BufferedReader#readLine()} for clarification on what a line is + * + * @return the read line contents, or null on failure + */ + public static String readOneLine(String fileName) { + String line = null; + BufferedReader reader = null; + + try { + reader = new BufferedReader(new FileReader(fileName), 512); + line = reader.readLine(); + } catch (FileNotFoundException e) { + Log.w(TAG, "No such file " + fileName + " for reading", e); + } catch (IOException e) { + Log.e(TAG, "Could not read from file " + fileName, e); + } finally { + try { + if (reader != null) { + reader.close(); + } + } catch (IOException e) { + // Ignored, not much we can do anyway + } + } + + return line; + } + + /** + * Writes the given value into the given file + * + * @return true on success, false on failure + */ + public static boolean writeLine(String fileName, String value) { + BufferedWriter writer = null; + + try { + writer = new BufferedWriter(new FileWriter(fileName)); + writer.write(value); + } catch (FileNotFoundException e) { + Log.w(TAG, "No such file " + fileName + " for writing", e); + return false; + } catch (IOException e) { + Log.e(TAG, "Could not write to file " + fileName, e); + return false; + } finally { + try { + if (writer != null) { + writer.close(); + } + } catch (IOException e) { + // Ignored, not much we can do anyway + } + } + + return true; + } + + /** + * Checks whether the given file exists + * + * @return true if exists, false if not + */ + public static boolean fileExists(String fileName) { + final File file = new File(fileName); + return file.exists(); + } + + /** + * Checks whether the given file is readable + * + * @return true if readable, false if not + */ + public static boolean isFileReadable(String fileName) { + final File file = new File(fileName); + return file.exists() && file.canRead(); + } + + /** + * Checks whether the given file is writable + * + * @return true if writable, false if not + */ + public static boolean isFileWritable(String fileName) { + final File file = new File(fileName); + return file.exists() && file.canWrite(); + } + + /** + * Deletes an existing file + * + * @return true if the delete was successful, false if not + */ + public static boolean delete(String fileName) { + final File file = new File(fileName); + boolean ok = false; + try { + ok = file.delete(); + } catch (SecurityException e) { + Log.w(TAG, "SecurityException trying to delete " + fileName, e); + } + return ok; + } + + /** + * Renames an existing file + * + * @return true if the rename was successful, false if not + */ + public static boolean rename(String srcPath, String dstPath) { + final File srcFile = new File(srcPath); + final File dstFile = new File(dstPath); + boolean ok = false; + try { + ok = srcFile.renameTo(dstFile); + } catch (SecurityException e) { + Log.w(TAG, "SecurityException trying to rename " + srcPath + " to " + dstPath, e); + } catch (NullPointerException e) { + Log.e(TAG, "NullPointerException trying to rename " + srcPath + " to " + dstPath, e); + } + return ok; + } +} diff --git a/AdvancedDisplay/src/org/lineageos/settings/device/mDNIeAccessibility.java b/AdvancedDisplay/src/org/lineageos/settings/device/mDNIeAccessibility.java index a2849661..31fa0250 100644 --- a/AdvancedDisplay/src/org/lineageos/settings/device/mDNIeAccessibility.java +++ b/AdvancedDisplay/src/org/lineageos/settings/device/mDNIeAccessibility.java @@ -25,8 +25,6 @@ import androidx.preference.ListPreference; import androidx.preference.Preference; import androidx.preference.PreferenceManager; -import org.lineageos.internal.util.FileUtils; - public class mDNIeAccessibility extends ListPreference implements Preference.OnPreferenceChangeListener { private static String FILE = null; diff --git a/AdvancedDisplay/src/org/lineageos/settings/device/mDNIeScenario.java b/AdvancedDisplay/src/org/lineageos/settings/device/mDNIeScenario.java index 37d57927..de56a2ea 100644 --- a/AdvancedDisplay/src/org/lineageos/settings/device/mDNIeScenario.java +++ b/AdvancedDisplay/src/org/lineageos/settings/device/mDNIeScenario.java @@ -25,8 +25,6 @@ import androidx.preference.ListPreference; import androidx.preference.Preference; import androidx.preference.PreferenceManager; -import org.lineageos.internal.util.FileUtils; - public class mDNIeScenario extends ListPreference implements Preference.OnPreferenceChangeListener { private static String FILE = null; diff --git a/doze/Android.mk b/doze/Android.mk index f5f9abc1..87748ee7 100644 --- a/doze/Android.mk +++ b/doze/Android.mk @@ -15,9 +15,6 @@ LOCAL_USE_AAPT2 := true LOCAL_STATIC_ANDROID_LIBRARIES := \ SettingsLib -LOCAL_STATIC_JAVA_LIBRARIES := \ - org.lineageos.platform.internal - LOCAL_OPTIONAL_USES_LIBRARIES := \ androidx.window.extensions \ androidx.window.sidecar diff --git a/doze/src/org/lineageos/settings/doze/SamsungDozeSettings.java b/doze/src/org/lineageos/settings/doze/SamsungDozeSettings.java index f0f9b525..07b7b14e 100644 --- a/doze/src/org/lineageos/settings/doze/SamsungDozeSettings.java +++ b/doze/src/org/lineageos/settings/doze/SamsungDozeSettings.java @@ -29,8 +29,6 @@ import androidx.preference.SwitchPreference; import com.android.settingslib.widget.MainSwitchPreference; import com.android.settingslib.widget.OnMainSwitchChangeListener; -import org.lineageos.internal.util.ScreenType; - public class SamsungDozeSettings extends PreferenceFragment implements OnPreferenceChangeListener, OnMainSwitchChangeListener { diff --git a/doze/src/org/lineageos/settings/doze/ScreenType.java b/doze/src/org/lineageos/settings/doze/ScreenType.java new file mode 100644 index 00000000..d3d58406 --- /dev/null +++ b/doze/src/org/lineageos/settings/doze/ScreenType.java @@ -0,0 +1,66 @@ +/* + * Copyright (C) 2015 The CyanogenMod Project + * + * 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 org.lineageos.settings.doze; + +import android.content.Context; +import android.util.DisplayMetrics; +import android.view.DisplayInfo; +import android.view.WindowManager; + +public class ScreenType { + // Device type reference + private static int sDeviceType = -1; + + // Device types + private static final int DEVICE_PHONE = 0; + private static final int DEVICE_HYBRID = 1; + private static final int DEVICE_TABLET = 2; + + private static int getScreenType(Context context) { + if (sDeviceType == -1) { + WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); + DisplayInfo outDisplayInfo = new DisplayInfo(); + wm.getDefaultDisplay().getDisplayInfo(outDisplayInfo); + int shortSize = Math.min(outDisplayInfo.logicalHeight, outDisplayInfo.logicalWidth); + int shortSizeDp = shortSize * DisplayMetrics.DENSITY_DEFAULT + / outDisplayInfo.logicalDensityDpi; + if (shortSizeDp < 600) { + // 0-599dp: "phone" UI with a separate status & navigation bar + sDeviceType = DEVICE_PHONE; + } else if (shortSizeDp < 720) { + // 600-719dp: "phone" UI with modifications for larger screens + sDeviceType = DEVICE_HYBRID; + } else { + // 720dp: "tablet" UI with a single combined status & navigation bar + sDeviceType = DEVICE_TABLET; + } + } + return sDeviceType; + } + + public static boolean isPhone(Context context) { + return getScreenType(context) == DEVICE_PHONE; + } + + public static boolean isHybrid(Context context) { + return getScreenType(context) == DEVICE_HYBRID; + } + + public static boolean isTablet(Context context) { + return getScreenType(context) == DEVICE_TABLET; + } +}