summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorByunghun Jeon <bjeon@codeaurora.org>2016-09-13 11:34:24 -0700
committerJay Wang <jaywang@codeaurora.org>2016-09-27 11:09:42 -0700
commit5adb130c9cbd440d534e2a9fe30454b451d37da8 (patch)
tree9dc2aef8345f99d40c85166a3742eef75a10745f
parent4cc792e65e50bdad27666bc13a2ff3ce8245f01a (diff)
downloadandroid_packages_apps_Snap-5adb130c9cbd440d534e2a9fe30454b451d37da8.tar.gz
android_packages_apps_Snap-5adb130c9cbd440d534e2a9fe30454b451d37da8.tar.bz2
android_packages_apps_Snap-5adb130c9cbd440d534e2a9fe30454b451d37da8.zip
SnapdragonCamera: Add developer options for Camera2
Add developer options for Camera2. They can be shown by tapping 10 times on Version Info from setting menu in Camera2. Change-Id: Iafb202c8cca5136c8e720135effcc6d0d688702a CRs-Fixed: 1066519
-rw-r--r--res/layout/preference.xml3
-rw-r--r--res/xml/setting_menu_preferences.xml8
-rw-r--r--src/com/android/camera/SettingsActivity.java62
-rw-r--r--src/com/android/camera/SettingsManager.java1
4 files changed, 70 insertions, 4 deletions
diff --git a/res/layout/preference.xml b/res/layout/preference.xml
index 68b931fbb..e9da4f5b8 100644
--- a/res/layout/preference.xml
+++ b/res/layout/preference.xml
@@ -28,7 +28,7 @@
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_gravity="center"
- android:layout_marginEnd="30dp"
+ android:layout_marginEnd="15dp"
android:layout_marginStart="15dp"
android:scaleType="fitCenter" />
@@ -36,6 +36,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="6dip"
+ android:layout_marginStart="15dp"
android:layout_marginEnd="6dip"
android:layout_marginTop="6dip"
android:layout_weight="1">
diff --git a/res/xml/setting_menu_preferences.xml b/res/xml/setting_menu_preferences.xml
index a606b342c..c988173ad 100644
--- a/res/xml/setting_menu_preferences.xml
+++ b/res/xml/setting_menu_preferences.xml
@@ -264,5 +264,13 @@
android:key="pref_camera2_trackingfocus_key"
android:layout="@layout/preference"
android:title="@string/pref_camera2_trackingfocus_title" />
+
+ <Preference
+ android:defaultValue="false"
+ android:icon="@drawable/gps_location"
+ android:key="version_info"
+ android:layout="@layout/preference"
+ android:summary="Version"
+ android:title="Version Info" />
</PreferenceCategory>
</PreferenceScreen> \ No newline at end of file
diff --git a/src/com/android/camera/SettingsActivity.java b/src/com/android/camera/SettingsActivity.java
index a098b8a7f..054b303e7 100644
--- a/src/com/android/camera/SettingsActivity.java
+++ b/src/com/android/camera/SettingsActivity.java
@@ -30,12 +30,17 @@
package com.android.camera;
import android.content.SharedPreferences;
+import android.content.pm.PackageManager;
import android.os.Bundle;
import android.preference.ListPreference;
import android.preference.Preference;
+import android.preference.PreferenceCategory;
import android.preference.PreferenceGroup;
import android.preference.PreferenceActivity;
+import android.preference.PreferenceManager;
import android.preference.SwitchPreference;
+import android.util.Log;
+import android.widget.Toast;
import org.codeaurora.snapcam.R;
@@ -45,6 +50,9 @@ import java.util.Set;
public class SettingsActivity extends PreferenceActivity {
private SettingsManager mSettingsManager;
private SharedPreferences mSharedPreferences;
+ private boolean mDeveloperMenuEnabled;
+ private int privateCounter = 0;
+ private final int DEVELOPER_MENU_TOUCH_COUNT = 10;
private SharedPreferences.OnSharedPreferenceChangeListener mSharedPreferenceChangeListener
= new SharedPreferences.OnSharedPreferenceChangeListener() {
@@ -52,14 +60,16 @@ public class SettingsActivity extends PreferenceActivity {
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
String key) {
Preference p = findPreference(key);
+ if (p == null) return;
String value;
if (p instanceof SwitchPreference) {
boolean checked = ((SwitchPreference) p).isChecked();
value = checked ? "on" : "off";
- } else {
+ mSettingsManager.setValue(key, value);
+ } else if (p instanceof ListPreference){
value = ((ListPreference) p).getValue();
+ mSettingsManager.setValue(key, value);
}
- mSettingsManager.setValue(key, value);
}
};
@@ -69,16 +79,52 @@ public class SettingsActivity extends PreferenceActivity {
mSettingsManager = SettingsManager.getInstance();
addPreferencesFromResource(R.xml.setting_menu_preferences);
+ mSharedPreferences = getPreferenceManager().getSharedPreferences();
+ mDeveloperMenuEnabled = mSharedPreferences.getBoolean(SettingsManager.KEY_DEVELOPER_MENU, false);
+
filterPreferences();
initializePreferences();
- mSharedPreferences = getPreferenceManager().getSharedPreferences();
mSharedPreferences.registerOnSharedPreferenceChangeListener(mSharedPreferenceChangeListener);
+
+ for (int i = 0; i < getPreferenceScreen().getPreferenceCount(); i++) {
+ PreferenceCategory category = (PreferenceCategory) getPreferenceScreen().getPreference(i);
+ for (int j = 0; j < category.getPreferenceCount(); j++) {
+ Preference pref = category.getPreference(j);
+ pref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
+
+ @Override
+ public boolean onPreferenceClick(Preference preference) {
+ if (!mDeveloperMenuEnabled) {
+ if (preference.getKey().equals("version_info")) {
+ privateCounter++;
+ if (privateCounter >= DEVELOPER_MENU_TOUCH_COUNT) {
+ mDeveloperMenuEnabled = true;
+ mSharedPreferences.edit().putBoolean(SettingsManager.KEY_DEVELOPER_MENU, true).apply();
+ Toast.makeText(SettingsActivity.this, "Camera developer option is enabled now", Toast.LENGTH_SHORT).show();
+ }
+ } else {
+ privateCounter = 0;
+ }
+ }
+ return false;
+ }
+
+ });
+ }
+ }
+
}
private void filterPreferences() {
String[] categories = {"photo", "video", "general"};
Set<String> set = mSettingsManager.getFilteredKeys();
+ if (!mDeveloperMenuEnabled) {
+ set.add(SettingsManager.KEY_MONO_PREVIEW);
+ set.add(SettingsManager.KEY_MONO_ONLY);
+ set.add(SettingsManager.KEY_CLEARSIGHT);
+ }
+
for (String key : set) {
Preference p = findPreference(key);
if (p == null) continue;
@@ -88,6 +134,7 @@ public class SettingsActivity extends PreferenceActivity {
if (group.removePreference(p)) break;
}
}
+
ListPreference pictureSize = (ListPreference) findPreference(SettingsManager.KEY_PICTURE_SIZE);
if (pictureSize != null) {
pictureSize.setEntryValues(mSettingsManager.getEntryValues(SettingsManager.KEY_PICTURE_SIZE));
@@ -118,6 +165,15 @@ public class SettingsActivity extends PreferenceActivity {
}
if (disabled) p.setEnabled(false);
}
+
+ try {
+ String versionName = getPackageManager().getPackageInfo(getPackageName(), 0).versionName;
+ int index = versionName.indexOf(' ');
+ versionName = versionName.substring(0, index);
+ findPreference("version_info").setSummary(versionName);
+ } catch (PackageManager.NameNotFoundException e) {
+ e.printStackTrace();
+ }
}
private boolean isOn(String value) {
diff --git a/src/com/android/camera/SettingsManager.java b/src/com/android/camera/SettingsManager.java
index 5c4273fae..ccb22836c 100644
--- a/src/com/android/camera/SettingsManager.java
+++ b/src/com/android/camera/SettingsManager.java
@@ -117,6 +117,7 @@ public class SettingsManager implements ListMenu.SettingsListener {
public static final String KEY_VIDEO_HIGH_FRAME_RATE = "pref_camera2_hfr_key";
public static final String KEY_SELFIE_FLASH = "pref_selfie_flash_key";
public static final String KEY_SHUTTER_SOUND = "pref_camera2_shutter_sound_key";
+ public static final String KEY_DEVELOPER_MENU = "pref_camera2_developer_menu_key";
private static final String TAG = "SnapCam_SettingsManager";
private static SettingsManager sInstance;