aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/compatibility/AndroidLevel8.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/compatibility/AndroidLevel8.java')
-rw-r--r--main/src/cgeo/geocaching/compatibility/AndroidLevel8.java29
1 files changed, 29 insertions, 0 deletions
diff --git a/main/src/cgeo/geocaching/compatibility/AndroidLevel8.java b/main/src/cgeo/geocaching/compatibility/AndroidLevel8.java
index ea5a795..e250934 100644
--- a/main/src/cgeo/geocaching/compatibility/AndroidLevel8.java
+++ b/main/src/cgeo/geocaching/compatibility/AndroidLevel8.java
@@ -5,7 +5,11 @@ import cgeo.geocaching.utils.Log;
import android.annotation.TargetApi;
import android.app.Activity;
import android.app.backup.BackupManager;
+import android.os.Environment;
import android.view.Display;
+import android.view.Surface;
+
+import java.io.File;
@TargetApi(8)
public class AndroidLevel8 implements AndroidLevel8Interface {
@@ -21,4 +25,29 @@ public class AndroidLevel8 implements AndroidLevel8Interface {
Log.i("Requesting settings backup with settings manager");
BackupManager.dataChanged(name);
}
+
+ @Override
+ public int getRotationOffset(final Activity activity) {
+ try {
+ final int rotation = getRotation(activity);
+ if (rotation == Surface.ROTATION_90) {
+ return 90;
+ } else if (rotation == Surface.ROTATION_180) {
+ return 180;
+ } else if (rotation == Surface.ROTATION_270) {
+ return 270;
+ }
+ } catch (final Exception e) {
+ // This should never happen: IllegalArgumentException, IllegalAccessException or InvocationTargetException
+ Log.e("Cannot call getRotation()", e);
+ }
+
+ return 0;
+ }
+
+ @Override
+ public File getExternalPictureDir() {
+ return Environment.getExternalStoragePublicDirectory(
+ Environment.DIRECTORY_PICTURES);
+ }
}