Compare commits
3 Commits
5ac489cda9
...
fc60e04b64
Author | SHA1 | Date |
---|---|---|
Pulkit077 | fc60e04b64 | 7 months ago |
LineageOS Infra | 6b365ba574 | 8 months ago |
LineageOS Infra | cdc9326984 | 9 months ago |
@ -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; |
||||||
|
} |
||||||
|
} |
@ -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; |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue