1,设置---安全---“未知来源”开关默认打开。
frameworks/base/packages/SettingsProvider/res/values/defaults.xml
<bool name="def_install_non_market_apps">true</bool>
2设置-WLAN-添加网络名称为10个字符,请修改为20个字符。
packages/apps/Settings/res/layout/wifi_dialog.xml
<EditTextandroid:id="@+id/ssid"
......
android:maxLength="20"
.......
3请修改系统默认时间为:2018年1月1日
frameworks/base/services/java/com/android/server/SystemServer.java
private staticfinallongEARLIEST_SUPPORTED_TIME=1514736000000;//86400 * 1000; //以毫秒为单位
4连接WIFI,WIFI已连接,可以正常上网,显示“已连接,但无法访问互联网”,显示不对,请修改
frameworks/base/packages/SettingsProvider/res/values/defaults.xml
<integername="def_captive_portal_detection_enabled"translatable="false">0</integer>
frameworks/base/services/core/java/com/android/server/connectivity/NetworkMonitor.java
mIsCaptivePortalCheckEnabled = Settings.Global.getInt(mContext.getContentResolver(),
Settings.Global.CAPTIVE_PORTAL_MODE, Settings.Global.CAPTIVE_PORTAL_MODE_IGNORE)
!= Settings.Global.CAPTIVE_PORTAL_MODE_IGNORE;
5设置-网络和互联网-热点和网络共享-请将设置WLAN热点名称默认改为"xxx"
frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiApConfigStore.java
private WifiConfiguration getDefaultApConfiguration() {
WifiConfiguration config = new WifiConfiguration();
config.SSID = mContext.getResources().getString(
R.string.wifi_tether_configure_ssid_default) ;//+ "_" + getRandomIntForDefaultSsid();
config.allowedKeyManagement.set(KeyMgmt.WPA2_PSK);
String randomUUID = UUID.randomUUID().toString();
//first 12 chars from xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx
config.preSharedKey = randomUUID.substring(0, 8) + randomUUID.substring(9, 13);
return config;
}
6取消双击power键打开相机功能
frameworks/base/core/res/res/values/config.xml
<bool name="config_cameraDoubleTapPowerGestureEnabled">false</bool>
7 设置-已关联的设备-打印,修改为默认关闭
packages/apps/Settings/src/com/android/settings/print/PrintSettingsFragment.java
index a1c1660..b66021f 100644
@@ -203,6 +203,13 @@ public class PrintSettingsFragment extends ProfileSettingsPreferenceFragment
preference.setTitle(title);
ComponentName componentName = service.getComponentName();
+
+ if (componentName.toString().contains("com.android.bips.BuiltInPrintService")) {
+ if (Settings.System.getInt(getContentResolver(),Settings.System.DEFAULT_PRINT_ENABLED, 0) == 0) {
+ ((PrintManager) getSystemService(Context.PRINT_SERVICE)).setPrintServiceEnabled(componentName, false);
+ Settings.System.putInt(getContentResolver(),Settings.System.DEFAULT_PRINT_ENABLED, 1);
+ }
+ }
preference.setKey(componentName.flattenToString());
preference.setFragment(PrintServiceSettingsFragment.class.getName());
8 请将蓝牙设置为默认关闭
frameworks/base/services/core/java/com/android/server/BluetoothManagerService.java
private final boolean isBluetoothPersistedStateOnBluetooth() {
return Settings.Global.getInt(mContentResolver,
Settings.Global.BLUETOOTH_ON, BLUETOOTH_OFF) == BLUETOOTH_ON_BLUETOOTH;
}
frameworks/base/packages/SettingsProvider/res/values/defaults.xml
<bool name="def_bluetooth_on">false</bool>
9 添加fragment 返回键无效
setHasOptionsMenu(true);
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case android.R.id.home:
getActivity().onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}
10.1热点名称
rameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiApConfigStore.java |
getDefaultApConfiguration的wifi_tether_configure_ssid_default
wifi_tether_configure_ssid_default
10 设置-wlan,连接一个wlan-wlan偏好设置-高级-wlan直连-重命名设备改为"xxx"
frameworks/opt/net/wifi/service/java/com/android/server/wifi/p2p/WifiP2pServiceImpl.java
private String getPersistedDeviceName() {
String deviceName = Settings.Global.getString(mContext.getContentResolver(),
Settings.Global.WIFI_P2P_DEVICE_NAME);
if (deviceName == null) {
// We use the 4 digits of the ANDROID_ID to have a friendly
// default that has low likelihood of collision with a peer
String id = Settings.Secure.getString(mContext.getContentResolver(),
Settings.Secure.ANDROID_ID);
return "xxx";//"Android_" + id.substring(0, 4);
}
return deviceName;
}
11插入移动卡后,进入设置--网络和互联网,显示的移动网络为“CMCC”,请修改为中国移动
packages/apps/Settings/src/com/android/settings/network/MobileNetworkPreferenceController.java
index 390917a..12c0257 100644
@@ -107,14 +107,14 @@ public class MobileNetworkPreferenceController extends PreferenceController impl
for (SubscriptionInfo subInfo : list) {
if (isSubscriptionInService(subInfo.getSubscriptionId())) {
if (useSeparator) builder.append(", ");
- builder.append(mTelephonyManager.getNetworkOperatorName
+ builder.append(mTelephonyManager.getSimOperatorName
(subInfo.getSubscriptionId()));
useSeparator = true;
}
}
mPreference.setSummary(builder.toString());
} else {
- mPreference.setSummary(mTelephonyManager.getNetworkOperatorName());
+ mPreference.setSummary(mTelephonyManager.getSimOperatorName());
}
}
}
12 默认NFC关闭
packages/apps/Nfc/src/com/android/nfc/NfcService.java
static finalbooleanNFC_ON_DEFAULT=false;
其他原生apk的bug
13 进入日历后,默认需要为月
public static final int DEFAULT_START_VIEW = CalendarController.ViewType.MONTH;
public static final int DEFAULT_DETAILED_VIEW = CalendarController.ViewType.MONTH;
14 小屏手机,进入相册浏览照片有断层
packages/apps/SnapdragonGallery/src/com/android/gallery3d/data/LocalImage.java
index ca07e85..06d6bc3 100644
@@ -174,12 +174,12 @@ public class LocalImage extends LocalMediaItem {
@Override
public Job<Bitmap> requestImage(int type) {
return new LocalImageRequest(mApplication, mPath, dateModifiedInSec,
- type, filePath, mimeType);
+ type, filePath, mimeType,width);
}
public static class LocalImageRequest extends ImageCacheRequest {
private String mLocalFilePath;
-
+ private int mImageWidth;
LocalImageRequest(GalleryApp application, Path path, long timeModified,
int type, String localFilePath) {
super(application, path, timeModified, type,
@@ -188,10 +188,11 @@ public class LocalImage extends LocalMediaItem {
}
LocalImageRequest(GalleryApp application, Path path, long timeModified,
- int type, String localFilePath, String mimeType) {
+ int type, String localFilePath, String mimeType,int width) {
super(application, path, timeModified, type,
MediaItem.getTargetSize(type),localFilePath, mimeType);
mLocalFilePath = localFilePath;
+ mImageWidth = width;
}
@Override
@@ -204,8 +205,13 @@ public class LocalImage extends LocalMediaItem {
// .getBitmap(mLocalFilePath, options));
// }
- int targetSize = MediaItem.getTargetSize(type);
-
+ //int targetSize = MediaItem.getTargetSize(type);
+ int targetSize = 0;
+ if (mImageWidth ==0) {
+ targetSize = MediaItem.getTargetSize(type);
+ } else {
+ targetSize = mImageWidth;
+ }
// try to decode from JPEG EXIF
if (type == MediaItem.TYPE_MICROTHUMBNAIL) {
ExifInterface exif = new ExifInterface();
packages/apps/SnapdragonGallery/src/com/android/gallery3d/ui/TileImageView.java
index 05bc9af..6ab8eef 100644
@@ -154,9 +154,9 @@ public class TileImageView extends GLView {
mTileDecoder = mThreadPool.submit(new TileDecoder());
if (sTileSize == 0) {
if (isHighResolution(context.getAndroidContext())) {
- sTileSize = 512 ;
+ sTileSize = 5120;
} else {
- sTileSize = 256;
+ sTileSize = 2560;
}
}
}
15 日历--菜单键--新建活动必须要先添加一个账户才能新建活动,请修改可以新建本地日历活动。
packages/providers/CalendarProvider/src/com/android/providers/calendar/CalendarDatabaseHelper.java
index 5e3c4b4..1e1bc83 100644
@@ -315,9 +315,11 @@ import java.util.TimeZone;
* Private constructor, callers except unit tests should obtain an instance through
* {@link #getInstance(android.content.Context)} instead.
*/
+ private Context mContext;
/* package */ CalendarDatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
if (LOGD) Log.d(TAG, "Creating OpenHelper");
+ mContext = context;
mSyncState = new SyncStateContentProviderHelper();
}
@@ -801,12 +803,35 @@ import java.util.TimeZone;
Calendars.CAL_SYNC10 + " TEXT" +
");");
+ //insert local account
+ insertLocalAccount(db);
+
// Trigger to remove a calendar's events when we delete the calendar
db.execSQL("CREATE TRIGGER calendar_cleanup DELETE ON " + Tables.CALENDARS + " " +
"BEGIN " +
CALENDAR_CLEANUP_TRIGGER_SQL +
"END");
}
+ //insert local account
+ private void insertLocalAccount(SQLiteDatabase db) {
+ insertAccount(db, "account_name_local", "LOCAL",
+ "local", 700,
+ "local",
+ mContext.getResources().getColor(R.color.local_color), 5);
+ }
+
+ private void insertAccount(SQLiteDatabase db, String accountName, String accountType, String calendarDisplayName, int calendarAccessLevel, String ownerAccount, int calendarColor, int maxReminders) {
+ ContentValues localContentValues = new ContentValues();
+ localContentValues.put("account_name", accountName);
+ localContentValues.put("account_type", accountType);
+ localContentValues.put("calendar_displayName", calendarDisplayName);
+ localContentValues.put("calendar_access_level", Integer.valueOf(calendarAccessLevel));
+ localContentValues.put("ownerAccount", ownerAccount);
+ localContentValues.put("calendar_color", Integer.valueOf(calendarColor));
+ localContentValues.put("sync_events", Integer.valueOf(1));
+ localContentValues.put("maxReminders", Integer.valueOf(maxReminders));
+ db.insert("Calendars", null, localContentValues);
+ }
16 视频--长按任意视频分享到短信--当短信界面不支持此视频格式或者分享视频达到上限时,按返回键,无法返回到视频列表界面,直接返回到主界面,请修改。
packages/apps/SnapdragonMusic/src/com/android/music/VideoBrowserActivity.java
index 151c2dc..f293023 100644
@@ -355,11 +355,11 @@ public class VideoBrowserActivity extends ListActivity implements MusicUtils.Def
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
- if (event.getAction() == KeyEvent.ACTION_UP &&
+ /*if (event.getAction() == KeyEvent.ACTION_UP &&
event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
finish();
return true;
- }
+ }*///for 0016170
return super.dispatchKeyEvent(event);
}
17 视频--长按任意视频,弹出的菜单,建议添加“详细信息”菜单选择。
---------- packages/apps/SnapdragonMusic/res/layout/video_info.xml -----------
new file mode 100644
index 0000000..b6a6559
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="utf-8"?>
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ android:padding="20dp" >
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical" >
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/video_title"/>
+
+ <TextView
+ android:id="@+id/video_title_name"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:padding="10dp" />
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/video_type"/>
+
+ <TextView
+ android:id="@+id/video_type_name"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:padding="10dp" />
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/video_size"/>
+
+ <TextView
+ android:id="@+id/video_size_name"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:padding="10dp" />
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/video_path"/>
+
+ <TextView
+ android:id="@+id/video_path_name"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:padding="10dp" />
+
+ </LinearLayout>
+</ScrollView>
-------------- packages/apps/SnapdragonMusic/res/values/bool.xml --------------
index 5d7d657..04c1920 100755
@@ -32,7 +32,7 @@
<!-- configuration to support group music by folder path -->
<bool name="group_by_folder">false</bool>
<bool name="control_in_statusbar">false</bool>
- <bool name="delete_video_item">false</bool>
+ <bool name="delete_video_item">true</bool>
<bool name="disable_animation">false</bool>
<bool name="add_playlist_by_filemanager">false</bool>
<bool name="exit_in_notification">false</bool>
------------- packages/apps/SnapdragonMusic/res/values/strings.xml -------------
index a0ccf3c..8d902bc 100755
@@ -440,5 +440,11 @@
<string name="audio_preview_fail_io">Can\'t open file</string>
<string name="audio_preview_fail_illegal_state">Illegal state, failed to open file.</string>
<string name="audio_preview_fail_illegal_argument">Illegal argument, failed to open file.</string>
+ <string name="detail">Detail</string>
+ <string name="video_title">VideoName:</string>
+ <string name="video_type">VideoType:</string>
+ <string name="video_size">VideoSize:</string>
+ <string name="video_path">VideoPath:</string>
+
</resources>
packages/apps/SnapdragonMusic/src/com/android/music/VideoBrowserActivity.java
index 8420f6f..6f83c5f 100644
@@ -46,10 +46,14 @@ import android.widget.AdapterView.AdapterContextMenuInfo;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.Toast;
-
+import android.widget. TextView;
+import android.app.AlertDialog;
import com.codeaurora.music.custom.PermissionActivity;
import java.lang.Integer;
+import java.io.File;
+import android.text.format.Formatter;
+import android.view.LayoutInflater;
public class VideoBrowserActivity extends ListActivity implements MusicUtils.Defs
{
@@ -59,6 +63,7 @@ public class VideoBrowserActivity extends ListActivity implements MusicUtils.Def
private int mSelectedPosition; // Position of selected view
private static final int SHARE = 0; // Menu to share video
private static final int DELETE = 1; // Menu to delete video
+ private static final int DETAIL = 2; // Menu to delete video
private String mFilterString = "";
private boolean mIsDeleteVideoItem = false;
@@ -71,6 +76,11 @@ public class VideoBrowserActivity extends ListActivity implements MusicUtils.Def
private static final String LOGTAG = "VideoBrowser";
public static final String BUY_LICENSE = "android.drmservice.intent.action.BUY_LICENSE";
+ private String mTrackVideoTitle = "";
+ private String mTrackVideoType = "";
+ private String mTrackVideoSize = "";
+ private String mTrackVideoPath = "";
+
public VideoBrowserActivity()
{
}
@@ -136,9 +146,12 @@ public class VideoBrowserActivity extends ListActivity implements MusicUtils.Def
}
// Menu item to share video
menu.add(0, SHARE, 0, R.string.share);
+
if (mIsDeleteVideoItem) {
menu.add(0, DELETE, 0, R.string.delete_item);
}
+ menu.add(0, DETAIL, 0, R.string.share);
+
}
@Override
@@ -196,8 +209,38 @@ public class VideoBrowserActivity extends ListActivity implements MusicUtils.Def
deleteIntent.putExtras(bundle);
startActivity(deleteIntent);
return true;
- }
- return super.onContextItemSelected(item);
+ case DETAIL: // add detail item
+ mCursor.moveToPosition(mSelectedPosition);
+ mTrackVideoTitle = mCursor.getString(mCursor.getColumnIndexOrThrow(MediaStore.Video.Media.TITLE));
+ mTrackVideoType = mCursor.getString(mCursor.getColumnIndexOrThrow(MediaStore.Video.Media.MIME_TYPE));
+ mTrackVideoPath = mCursor.getString(mCursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA));
+ File file = new File(mTrackVideoPath);
+ if(file.exists())
+ mTrackVideoSize = Formatter.formatFileSize(VideoBrowserActivity.this, file.length());
+ showDetails();
+ return true;
+ }
+ return super.onContextItemSelected(item);
+ }
+ // add detail item
+
+ private void showDetails() {
+ AlertDialog.Builder mDetailDialog = new AlertDialog.Builder(VideoBrowserActivity.this);
+ View mDetailLayout = LayoutInflater.from(VideoBrowserActivity.this).inflate(R.layout.video_info, null );
+ mDetailDialog.setTitle(R.string.details);
+ mDetailDialog.setView(mDetailLayout);
+ fillData(mDetailLayout);
+ mDetailDialog.show();
+ }
+ private void fillData(View contentView) {
+ TextView titleName = (TextView) contentView.findViewById(R.id.video_title_name);
+ TextView typeName = (TextView) contentView.findViewById(R.id.video_type_name);
+ TextView sizeName = (TextView) contentView.findViewById(R.id.video_size_name);
+ TextView pathName = (TextView) contentView.findViewById(R.id.video_path_name);
+ titleName.setText(mTrackVideoTitle);
+ typeName.setText(mTrackVideoType);
+ sizeName.setText(mTrackVideoSize);
+ pathName.setText(mTrackVideoPath);
}
18 相机--设置---增加“还原默认设置”菜单选项
-------- packages/apps/SnapdragonCamera/res/values-zh-rCN/strings.xml ---------
index 1965b9e..cab7131 100644
@@ -773,5 +773,8 @@
<string name="help_menu_switcher_3" translatable="true">"和全景模式"</string>
<string name="pref_camera_selfiemirror_title" translatable="true">"自拍镜"</string>
-
+ <string name="pref_record_title">"还原出厂设置"</string>
+ <string name="pref_record_entry_0">"否"</string>
+ <string name="pref_record_entry_1">"是"</string>
+ <string name="pref_record_default">"0"</string>
</resources>
------------- packages/apps/SnapdragonCamera/res/values/arrays.xml -------------
index 4066517..4b3d015 100755
@@ -699,5 +699,14 @@
<item>180</item>
<item>270</item>
</string-array>
+ <!-- Camera Preference save path entries -->
+ <string-array name="pref_record_entries" translatable="false">
+ <item>@string/pref_record_entry_0</item>
+ <item>@string/pref_record_entry_1</item>
+ </string-array>
+ <string-array name="pref_record_entryvalues" translatable="false">
+ <item>0</item>
+ <item>1</item>
+ </string-array>
</resources>
------------ packages/apps/SnapdragonCamera/res/values/strings.xml ------------
index 8a4b5b1..f48bc9f 100644
@@ -749,4 +749,9 @@ CHAR LIMIT = NONE] -->
<string name="remaining_photos_format">%d left</string>
<string name="initial_recording_seconds">00:00</string>
<string name="makeup_video_size_limit">Makeup works only under VGA size in video recording.</string>
+
+ <string name="pref_record_title">Record Settings</string>
+ <string name="pref_record_entry_0">no</string>
+ <string name="pref_record_entry_1">yes</string>
+ <string name="pref_record_default">0</string>
</resources>
-------- packages/apps/SnapdragonCamera/res/xml/camera_preferences.xml --------
index 742c09d..86f78f4 100644
@@ -386,4 +386,9 @@
camera:title="@string/pref_camera2_camera2_title"
camera:entries="@array/pref_camera2_camera2_entries"
camera:entryValues="@array/pref_camera2_camera2_entryvalues" />
+ <ListPreference
+ camera:key="pref_record_key"
+ camera:title="@string/pref_record_title"
+ camera:entries="@array/pref_record_entries"
+ camera:entryValues="@array/pref_record_entryvalues" />
</PreferenceGroup>
-------- packages/apps/SnapdragonCamera/res/xml/capture_preferences.xml --------
index 1d6ea6c..b78a1c0 100644
@@ -303,4 +303,12 @@
camera:entryValues="@array/pref_camera2_shutter_sound_entryvalues"
camera:key="pref_camera2_shutter_sound_key"
camera:title="@string/pref_camera2_shutter_sound_title" />
+
+ <ListPreference
+ camera:key="pref_record_key"
+ camera:title="@string/pref_record_title"
+ camera:entries="@array/pref_record_entries"
+ camera:entryValues="@array/pref_record_entryvalues" />
+
+
</PreferenceGroup>
--------- packages/apps/SnapdragonCamera/res/xml/video_preferences.xml ---------
index 2d9e2fb..f4e3a7c 100644
@@ -186,4 +186,11 @@
camera:title="@string/pref_camera_video_rotation_title"
camera:entries="@array/pref_camera_video_rotation_entries"
camera:entryValues="@array/pref_camera_video_rotation_entryvalues" />
+
+ <ListPreference
+ camera:key="pref_record_key"
+ camera:title="@string/pref_record_title"
+ camera:entries="@array/pref_record_entries"
+ camera:entryValues="@array/pref_record_entryvalues" />
+
</PreferenceGroup>
-- packages/apps/SnapdragonCamera/src/com/android/camera/CameraSettings.java --
index 1f3a99c..7783635 100755
@@ -125,6 +125,7 @@ public class CameraSettings {
public static final String KEY_FACE_RECOGNITION = "pref_camera_facerc_key";
public static final String KEY_DIS = "pref_camera_dis_key";
+ public static final String KEY_RECORD_MENU = "pref_record_key";
public static final String KEY_LONGSHOT = "pref_camera_longshot_key";
public static final String KEY_INSTANT_CAPTURE = "pref_camera_instant_capture_key";
----- packages/apps/SnapdragonCamera/src/com/android/camera/PhotoMenu.java -----
index 8e9c6b6..f51719d 100755
@@ -192,7 +192,8 @@ public class PhotoMenu extends MenuController
CameraSettings.KEY_QC_CHROMA_FLASH,
CameraSettings.KEY_REDEYE_REDUCTION,
CameraSettings.KEY_SELFIE_MIRROR,
- CameraSettings.KEY_SHUTTER_SOUND
+ CameraSettings.KEY_SHUTTER_SOUND,
+ CameraSettings.KEY_RECORD_MENU
};
mOtherKeys2 = new String[] {
@@ -237,6 +238,7 @@ public class PhotoMenu extends MenuController
CameraSettings.KEY_MANUAL_FOCUS,
CameraSettings.KEY_SELFIE_MIRROR,
CameraSettings.KEY_SHUTTER_SOUND,
+ CameraSettings.KEY_RECORD_MENU,
SettingsManager.KEY_CAMERA2
};
@@ -1536,6 +1538,36 @@ public class PhotoMenu extends MenuController
} else if (notSame(pref, SettingsManager.KEY_CAMERA2, "enable")) {
mActivity.onModuleSelected(ModuleSwitcher.PHOTO_MODULE_INDEX);
}
+ //for 0016128 about restore
+ if (notSame(pref, CameraSettings.KEY_RECORD_MENU, "0")) {
+ ListPreference recordPref = mPreferenceGroup.findPreference(CameraSettings.KEY_RECORD_MENU);
+ if (recordPref != null && !"0".equals(recordPref.getValue())) {
+ new Thread() {
+ public void run() {
+ reloadPreferences();
+ restoreTopMenu();
+ mListener.onRestorePreferencesClicked();
+ };
+ }.start();
+ }
+ }
+ }
+ //for 0016128 about restore
+ public void restoreTopMenu(){
+ IconListPreference filter_pref = (IconListPreference) mPreferenceGroup
+ .findPreference(CameraSettings.KEY_FILTER_MODE);
+ if (filter_pref != null)
+ ((ImageView)mFilterModeSwitcher).setImageResource(((IconListPreference) filter_pref).getLargeIconIds()[0]);
+ mFilterModeSwitcher.setEnabled(true);
+
+ IconListPreference color_pref = (IconListPreference)mPreferenceGroup.findPreference(CameraSettings.KEY_COLOR_EFFECT);
+ color_pref.setValueIndex(0);
+
+ IconListPreference scene_pref = (IconListPreference)mPreferenceGroup.findPreference(CameraSettings.KEY_SCENE_MODE);
+ scene_pref.setValueIndex(0);
+ if (scene_pref != null)
+ ((ImageView)mSceneModeSwitcher).setImageResource(scene_pref.getThumbnailIds()[0]);
+ mSceneModeSwitcher.setEnabled(true);
}
public int getOrientation() {
---- packages/apps/SnapdragonCamera/src/com/android/camera/PhotoModule.java ----
index fef1163..26407e8 100644
@@ -154,6 +154,7 @@ public class PhotoModule
private static final int SWITCH_TO_GCAM_MODULE = 12;
private static final int ON_PREVIEW_STARTED = 13;
private static final int INSTANT_CAPTURE = 14;
+ private static final int RESTORE_MENU = 15;//for 0016128 about restore
// The subset of parameters we need to update in setCameraParameters().
private static final int UPDATE_PARAM_INITIALIZE = 1;
@@ -552,6 +553,15 @@ public class PhotoModule
onShutterButtonClick();
break;
}
+ //for 0016128 about restore
+ case RESTORE_MENU: {
+ onZoomChanged(0);
+ mUI.removeLevel2();
+ mUI.collapseCameraControls();
+ Storage.setSaveSDCard(false);
+ onSharedPreferenceChanged();
+ break;
+ }
}
}
}
@@ -5081,7 +5091,11 @@ public class PhotoModule
}
// TODO: Delete this function after old camera code is removed
@Override
- public void onRestorePreferencesClicked() {}
+ public void onRestorePreferencesClicked() {
+ //for 0016128 about restore
+ CameraSettings.restorePreferences(mActivity, mPreferences, mParameters);
+ mHandler.sendEmptyMessage(RESTORE_MENU);
+ }
/*
* Provide a mapping for Jpeg encoding quality levels
----- packages/apps/SnapdragonCamera/src/com/android/camera/VideoMenu.java -----
index 42e618d..4bd3a5c 100644
@@ -117,7 +117,8 @@ public class VideoMenu extends MenuController
CameraSettings.KEY_CAMERA_SAVEPATH,
CameraSettings.KEY_WHITE_BALANCE,
CameraSettings.KEY_VIDEO_HIGH_FRAME_RATE,
- CameraSettings.KEY_DIS
+ CameraSettings.KEY_DIS,
+ CameraSettings.KEY_RECORD_MENU
};
mOtherKeys2 = new String[] {
CameraSettings.KEY_VIDEOCAMERA_FLASH_MODE,
@@ -140,7 +141,8 @@ public class VideoMenu extends MenuController
CameraSettings.KEY_VIDEO_ROTATION,
CameraSettings.KEY_VIDEO_CDS_MODE,
CameraSettings.KEY_VIDEO_TNR_MODE,
- CameraSettings.KEY_VIDEO_SNAPSHOT_SIZE
+ CameraSettings.KEY_VIDEO_SNAPSHOT_SIZE,
+ CameraSettings.KEY_RECORD_MENU
};
mFrontBackSwitcher.setVisibility(View.INVISIBLE);
initSwitchItem(CameraSettings.KEY_CAMERA_ID, mFrontBackSwitcher);
@@ -908,9 +910,34 @@ public class VideoMenu extends MenuController
mActivity.requestLocationPermission();
}
+ //for 0016128 about restore
+ if (notSame(pref, CameraSettings.KEY_RECORD_MENU, "0")) {
+ ListPreference recordPref = mPreferenceGroup.findPreference(CameraSettings.KEY_RECORD_MENU);
+ if (recordPref != null && !"0".equals(recordPref.getValue())) {
+ new Thread() {
+ public void run() {
+ reloadPreferences();
+ restoreTopMenu();
+ mListener.onRestorePreferencesClicked();
+ };
+ }.start();
+ }
+ }
super.onSettingChanged(pref);
}
+ //for 0016128 about restore
+ public void restoreTopMenu(){
+ IconListPreference filter_pref = (IconListPreference) mPreferenceGroup
+ .findPreference(CameraSettings.KEY_FILTER_MODE);
+ if (filter_pref != null)
+ ((ImageView)mFilterModeSwitcher).setImageResource(((IconListPreference) filter_pref).getLargeIconIds()[0]);
+ mFilterModeSwitcher.setEnabled(true);
+
+ IconListPreference color_pref = (IconListPreference) mPreferenceGroup
+ .findPreference(CameraSettings.KEY_COLOR_EFFECT);
+ color_pref.setValueIndex(0);
+ }
public int getOrientation() {
return mUI == null ? 0 : mUI.getOrientation();
---- packages/apps/SnapdragonCamera/src/com/android/camera/VideoModule.java ----
index bdf9b83..0cbdda7 100755
@@ -105,6 +105,7 @@ public class VideoModule implements CameraModule,
private static final int SWITCH_CAMERA = 8;
private static final int SWITCH_CAMERA_START_ANIMATION = 9;
private static final int HANDLE_FLASH_TORCH_DELAY = 10;
+ private static final int RESTORE_MENU = 11;//for 0016128 about restore
private static final int SCREEN_DELAY = 2 * 60 * 1000;
@@ -426,7 +427,15 @@ public class VideoModule implements CameraModule,
forceFlashOff(!mPreviewFocused);
break;
}
-
+ //for 0016128 about restore
+ case RESTORE_MENU: {
+ onZoomChanged(0);
+ mUI.removeLevel2();
+ mUI.collapseCameraControls();
+ Storage.setSaveSDCard(false);
+ onSharedPreferenceChanged();
+ break;
+ }
default:
Log.v(TAG, "Unhandled message: " + msg.what);
break;
@@ -2758,6 +2767,8 @@ public class VideoModule implements CameraModule,
@Override
// TODO: Delete this after old camera code is removed
public void onRestorePreferencesClicked() {
+ CameraSettings.restorePreferences(mActivity, mPreferences, mParameters);
+ mHandler.sendEmptyMessage(RESTORE_MENU);
}
@Override
19 插入OTG U盘播放里面的音乐,播放过程中拔掉U盘,音乐后一直播放不会停止,请修改
--- packages/apps/SnapdragonMusic/src/com/android/music/AudioPreview.java ----
index 36d0d55..e57bbc3 100755
@@ -23,6 +23,7 @@ import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
+import android.hardware.usb.UsbManager;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.media.AudioManager.OnAudioFocusChangeListener;
@@ -91,6 +92,44 @@ public class AudioPreview extends Activity implements OnPreparedListener, OnErro
private static AudioPreview mAudioPreview;
private ImageView mImageViewDrmIcon;
+ private final String EXTERNAL_PATH = "content://com.android.externalstorage.documents/document/";
+ private final String EXTERNAL_PATH_1 = "file:///mnt/media_rw/";
+ private boolean isExternalFile = false;
+
+ private final BroadcastReceiver mOtgReceiver = new BroadcastReceiver() {
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ switch (intent.getAction()) {
+ case UsbManager.ACTION_USB_DEVICE_DETACHED:
+ if (!isExternalFile) return;
+ stopPlayback();
+ finishAffinity();
+ break;
+ default:
+ break;
+ }
+ }
+ };
+
+ private void registerUsbListen(Intent intent) {
+ IntentFilter filter = new IntentFilter();
+ filter.addAction(UsbManager.ACTION_USB_DEVICE_DETACHED);
+ registerReceiver(mOtgReceiver, filter);
+
+ String path = intent.getDataString().trim();
+ if (path.length()> 1 && (path.contains(EXTERNAL_PATH) || path.contains(EXTERNAL_PATH_1)) ) {
+ isExternalFile = true;
+ }
+ }
+
+ private void unRegisterUsbListen() {
+ if(mOtgReceiver != null) {
+ unregisterReceiver(mOtgReceiver);
+ }
+ isExternalFile = false;
+ }
+
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
@@ -107,7 +146,8 @@ public class AudioPreview extends Activity implements OnPreparedListener, OnErro
return;
}
String scheme = mUri.getScheme();
-
+
+ registerUsbListen(getIntent());
setVolumeControlStream(AudioManager.STREAM_MUSIC);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.audiopreview);
@@ -187,6 +227,7 @@ public class AudioPreview extends Activity implements OnPreparedListener, OnErro
@Override
public void onDestroy() {
stopPlayback();
+ unRegisterUsbListen();
super.onDestroy();
}
20 不打开GPS位置信息开关,进入相机,打开“存储位置信息开关”,请添加关于GPS位置信息开关的相应的提示语。
--------- packages/apps/SnapdragonCamera/res/values-zh-rCN/strings.xml ---------
index cab7131..ff7a2e2 100644
@@ -777,4 +777,7 @@
<string name="pref_record_entry_0">"否"</string>
<string name="pref_record_entry_1">"是"</string>
<string name="pref_record_default">"0"</string>
+
+ <string name="hint_error_for_settings_off">"请在设置中打开GPS,并重新打开相机"</string>
+ <string name="hint_for_locating">"定位中..."</string>
</resources>
------------ packages/apps/SnapdragonCamera/res/values/strings.xml ------------
index f48bc9f..3799b32 100644
@@ -754,4 +754,7 @@ CHAR LIMIT = NONE] -->
<string name="pref_record_entry_0">no</string>
<string name="pref_record_entry_1">yes</string>
<string name="pref_record_default">0</string>
+
+ <string name="hint_error_for_settings_off">"请在设置中打开GPS,并重新打开相机"</string>
+ <string name="hint_for_locating">"定位中..."</string>
</resources>
-- packages/apps/SnapdragonCamera/src/com/android/camera/LocationManager.java --
index 49009d7..5a5d404 100644
@@ -22,6 +22,11 @@ import android.location.LocationProvider;
import android.os.Bundle;
import android.util.Log;
+//add hint for location
+import org.codeaurora.snapcam.R;
+import android.database.ContentObserver;
+import android.provider.Settings;
+import android.os.Handler;
/**
* A class that handles everything about location.
*/
@@ -40,6 +45,9 @@ public class LocationManager {
new LocationListener(android.location.LocationManager.NETWORK_PROVIDER)
};
+ private OnScreenHint mOnScreenHint;
+ private String mLocatingString;
+ private String mLocatingErrorString;
public interface Listener {
public void onErrorListener(int error);
}
@@ -47,6 +55,12 @@ public class LocationManager {
public LocationManager(Context context, Listener listener) {
mContext = context;
mListener = listener;
+ //add hint for location
+ mLocationManager = (android.location.LocationManager)
+ mContext.getSystemService(Context.LOCATION_SERVICE);
+
+ mLocatingString = mContext.getString(R.string.hint_for_locating);
+ mLocatingErrorString = mContext.getString(R.string.hint_error_for_settings_off);
}
public Location getCurrentLocation() {
@@ -75,12 +89,37 @@ public class LocationManager {
}
}
}
-
+ //add hint for location
+ private void showHint(){
+ boolean isEnabled = mLocationManager.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER)||
+ mLocationManager.isProviderEnabled(android.location.LocationManager.NETWORK_PROVIDER);
+ if (mOnScreenHint == null) {
+ if (!isEnabled) {
+ mOnScreenHint = OnScreenHint.makeText(mContext,mLocatingErrorString);
+ } else {
+ mOnScreenHint = OnScreenHint.makeText(mContext,mLocatingString);
+ }
+ } else {
+ if (!isEnabled) {
+ mOnScreenHint.setText(mLocatingErrorString);
+ } else {
+ mOnScreenHint.setText(mLocatingString);
+ }
+ }
+ mOnScreenHint.show();
+ }
+ //add hint for location
+ private void hideHint(){
+ if (mOnScreenHint != null) {
+ mOnScreenHint.cancel();
+ }
+ }
public void waitingLocationPermissionResult(boolean waitingResult) {
mWaitingLocPermResult = waitingResult;
}
private void startReceivingLocationUpdates() {
+ showHint();//add hint for location
if (mLocationManager == null) {
mLocationManager = (android.location.LocationManager)
mContext.getSystemService(Context.LOCATION_SERVICE);
@@ -135,6 +174,7 @@ public class LocationManager {
implements android.location.LocationListener {
Location mLastLocation;
boolean mValid = false;
+
String mProvider;
public LocationListener(String provider) {
@@ -152,6 +192,7 @@ public class LocationManager {
if (!mValid) {
Log.d(TAG, "Got first location.");
}
+ hideHint();//add hint for location
mLastLocation.set(newLocation);
mValid = true;
}
@@ -171,6 +212,7 @@ public class LocationManager {
switch(status) {
case LocationProvider.OUT_OF_SERVICE:
case LocationProvider.TEMPORARILY_UNAVAILABLE: {
+ showHint();//add hint for location
mValid = false;
break;
}
改了两次
- packages/apps/SnapdragonCamera/src/com/android/camera/CameraActivity.java --
index 0976950..50b1f61 100755
@@ -1674,12 +1674,20 @@ public class CameraActivity extends Activity
super.onActivityResult(requestCode, resultCode, data);
}
}
-
+ private boolean isFirstHasFocus = true;
@Override
public void onWindowFocusChanged(boolean focus) {
// Hide action bar first since we are in full screen mode first, and
// switch the system UI to lights-out mode.
- if (focus) this.setSystemBarsVisibility(false);
+ if (focus) {
+ this.setSystemBarsVisibility(false);
+ if (isFirstHasFocus) {
+ mCurrentModule.enableShowHint(focus);
+ isFirstHasFocus = false;
+ }
+ } else {
+ isFirstHasFocus = true;
+ }
}
/**
--- packages/apps/SnapdragonCamera/src/com/android/camera/CameraModule.java ---
index 9de1674..3b8ee58 100644
@@ -74,4 +74,6 @@ public interface CameraModule {
public void waitingLocationPermissionResult(boolean waiting);
public void enableRecordingLocation(boolean enable);
+
+ public void enableShowHint(boolean enable);
}
--- packages/apps/SnapdragonCamera/src/com/android/camera/CaptureModule.java ---
index bb338a3..1e771ec 100755
@@ -968,6 +968,10 @@ public class CaptureModule implements CameraModule, PhotoController,
mLocationManager = new LocationManager(mActivity, this);
Storage.setSaveSDCard(mSettingsManager.getValue(SettingsManager
.KEY_CAMERA_SAVEPATH).equals("1"));
+
+ mLocatingString = mActivity.getString(R.string.hint_for_locating);
+ mLocatingErrorString = mActivity.getString(R.string.hint_error_for_settings_off);
+
}
/**
@@ -3602,6 +3606,42 @@ public class CaptureModule implements CameraModule, PhotoController,
enableRecordingLocation(false);
}
+ private OnScreenHint mOnScreenHint;
+ private String mLocatingString;
+ private String mLocatingErrorString;
+ @Override
+ public void enableShowHint(boolean enable) {
+ if (enable) {
+ mLocationManager.showHint();
+ }
+ }
+
+ @Override
+ public void onShowHint(int hint) {
+ if(mActivity.hasWindowFocus()) {
+ if (mOnScreenHint == null) {
+ if (hint ==1) {
+ mOnScreenHint = OnScreenHint.makeText(mActivity,mLocatingErrorString);
+ } else {
+ mOnScreenHint = OnScreenHint.makeText(mActivity,mLocatingString);
+ }
+ } else {
+ if (hint ==1) {
+ mOnScreenHint.setText(mLocatingErrorString);
+ } else {
+ mOnScreenHint.setText(mLocatingString);
+ }
+ }
+ mOnScreenHint.show();
+ }
+ }
+ @Override
+ public void onHideHint(){
+ if ( mOnScreenHint!=null ) {
+ mOnScreenHint.cancel();
+ }
+ }
+
private byte[] getJpegData(Image image) {
ByteBuffer buffer = image.getPlanes()[0].getBuffer();
byte[] bytes = new byte[buffer.remaining()];
-- packages/apps/SnapdragonCamera/src/com/android/camera/LocationManager.java --
index 5a5d404..ffeafce 100644
@@ -27,6 +27,9 @@ import org.codeaurora.snapcam.R;
import android.database.ContentObserver;
import android.provider.Settings;
import android.os.Handler;
+import android.widget.Toast;
+import com.android.camera.util.CameraUtil;
+
/**
* A class that handles everything about location.
*/
@@ -50,6 +53,8 @@ public class LocationManager {
private String mLocatingErrorString;
public interface Listener {
public void onErrorListener(int error);
+ public void onShowHint(int hint);
+ public void onHideHint();
}
public LocationManager(Context context, Listener listener) {
@@ -89,37 +94,40 @@ public class LocationManager {
}
}
}
+ private final int SHOW_HINT = 1;
+ private Handler mainHandler = new Handler() {
+
+ public void dispatchMessage(android.os.Message msg) {
+ switch (msg.what) {
+ case SHOW_HINT:
+ showHint();
+ break;
+ }
+ }
+ };
//add hint for location
- private void showHint(){
+ public void showHint(){
boolean isEnabled = mLocationManager.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER)||
mLocationManager.isProviderEnabled(android.location.LocationManager.NETWORK_PROVIDER);
- if (mOnScreenHint == null) {
- if (!isEnabled) {
- mOnScreenHint = OnScreenHint.makeText(mContext,mLocatingErrorString);
- } else {
- mOnScreenHint = OnScreenHint.makeText(mContext,mLocatingString);
- }
+ if (!isEnabled) {
+ mListener.onShowHint(1);
} else {
- if (!isEnabled) {
- mOnScreenHint.setText(mLocatingErrorString);
- } else {
- mOnScreenHint.setText(mLocatingString);
- }
+ mListener.onShowHint(2);
}
- mOnScreenHint.show();
}
//add hint for location
- private void hideHint(){
- if (mOnScreenHint != null) {
- mOnScreenHint.cancel();
- }
+ public void hideHint(){
+ mListener.onHideHint();
}
public void waitingLocationPermissionResult(boolean waitingResult) {
mWaitingLocPermResult = waitingResult;
}
private void startReceivingLocationUpdates() {
- showHint();//add hint for location
+ showHint();
+ /*if (mainHandler.hasMessages(SHOW_HINT))
+ mainHandler.removeMessages(SHOW_HINT);
+ mainHandler.sendEmptyMessageDelayed(SHOW_HINT, 800);//add hint for location*/
if (mLocationManager == null) {
mLocationManager = (android.location.LocationManager)
mContext.getSystemService(Context.LOCATION_SERVICE);
---- packages/apps/SnapdragonCamera/src/com/android/camera/PhotoModule.java ----
index 26407e8..09083a8 100644
@@ -635,6 +635,8 @@ public class PhotoModule
brightnessProgressBar.setVisibility(View.INVISIBLE);
Storage.setSaveSDCard(
mPreferences.getString(CameraSettings.KEY_CAMERA_SAVEPATH, "0").equals("1"));
+ mLocatingString = mActivity.getString(R.string.hint_for_locating);
+ mLocatingErrorString = mActivity.getString(R.string.hint_error_for_settings_off);
}
public CameraActivity getMainActivity() {
@@ -5212,6 +5214,42 @@ public class PhotoModule
public void onErrorListener(int error) {
enableRecordingLocation(false);
}
+ private OnScreenHint mOnScreenHint;
+ private String mLocatingString;
+ private String mLocatingErrorString;
+
+ @Override
+ public void enableShowHint(boolean enable) {
+ if (enable) {
+ mLocationManager.showHint();
+ }
+ }
+
+ @Override
+ public void onShowHint(int hint) {
+ if(mActivity.hasWindowFocus()) {
+ if (mOnScreenHint == null) {
+ if (hint ==1) {
+ mOnScreenHint = OnScreenHint.makeText(mActivity,mLocatingErrorString);
+ } else {
+ mOnScreenHint = OnScreenHint.makeText(mActivity,mLocatingString);
+ }
+ } else {
+ if (hint ==1) {
+ mOnScreenHint.setText(mLocatingErrorString);
+ } else {
+ mOnScreenHint.setText(mLocatingString);
+ }
+ }
+ mOnScreenHint.show();
+ }
+ }
+ @Override
+ public void onHideHint(){
+ if ( mOnScreenHint!=null ) {
+ mOnScreenHint.cancel();
+ }
+ }
}
---- packages/apps/SnapdragonCamera/src/com/android/camera/VideoModule.java ----
index 0cbdda7..308e619 100755
@@ -559,6 +559,8 @@ public class VideoModule implements CameraModule,
initializeVideoControl();
mPendingSwitchCameraId = -1;
+ mLocatingString = mActivity.getString(R.string.hint_for_locating);
+ mLocatingErrorString = mActivity.getString(R.string.hint_error_for_settings_off);
}
@Override
@@ -3133,6 +3135,42 @@ public class VideoModule implements CameraModule,
public void onErrorListener(int error) {
enableRecordingLocation(false);
}
+ private OnScreenHint mOnScreenHint;
+ private String mLocatingString;
+ private String mLocatingErrorString;
+
+ @Override
+ public void enableShowHint(boolean enable) {
+ if (enable) {
+ mLocationManager.showHint();
+ }
+ }
+
+ @Override
+ public void onShowHint(int hint) {
+ if(mActivity.hasWindowFocus()) {
+ if (mOnScreenHint == null) {
+ if (hint ==1) {
+ mOnScreenHint = OnScreenHint.makeText(mActivity,mLocatingErrorString);
+ } else {
+ mOnScreenHint = OnScreenHint.makeText(mActivity,mLocatingString);
+ }
+ } else {
+ if (hint ==1) {
+ mOnScreenHint.setText(mLocatingErrorString);
+ } else {
+ mOnScreenHint.setText(mLocatingString);
+ }
+ }
+ mOnScreenHint.show();
+ }
+ }
+ @Override
+ public void onHideHint(){
+ if ( mOnScreenHint!=null ) {
+ mOnScreenHint.cancel();
+ }
+ }
}
packages/apps/SnapdragonCamera/src/com/android/camera/WideAnglePanoramaModule.java
index eed1e37..a20301f 100755
@@ -159,6 +159,10 @@ public class WideAnglePanoramaModule
public void onPreviewUIReady() {
configMosaicPreview();
}
+ @Override
+ public void enableShowHint(boolean enable) {
+ //mLocationManager.showHint();
+ }
@Override
21 手机无SD卡时进入相机设置界面将存储位置设置为SD卡可以设置,且设置后不能拍照、提示框不消失
--------- packages/apps/SnapdragonCamera/res/values-zh-rCN/strings.xml ---------
index c4cf077..dff9eda 100644
@@ -412,7 +412,7 @@
<!-- Settings screen, Video duration title -->
<string name="pref_camera_video_duration_title">"视频时长"</string>
<!-- Settings screen, Video duration dialog radio button choices -->
- <string name="pref_camera_video_duration_entry_mms">"30 秒(MMS)"</string>
+ <string name="pref_camera_video_duration_entry_mms">"30 秒"</string>
<string name="pref_camera_video_duration_entry_10">"10 分钟"</string>
<string name="pref_camera_video_duration_entry_30">"30 分钟"</string>
<string name="pref_camera_video_duration_entry_nolimit">"无限制"</string>
------ packages/apps/SnapdragonCamera/src/com/android/camera/Storage.java ------
index 6239494..b1f6b48 100644
@@ -306,4 +306,9 @@ public class Storage {
}
return uri;
}
+ public static boolean getSDCardAvailable() {
+ if ( LOW_STORAGE_THRESHOLD_BYTES <= getSDCardAvailableSpace())
+ return true;
+ return false;
+ }
}
-- packages/apps/SnapdragonCamera/src/com/android/camera/ui/ListSubMenu.java --
index a425c76..0addbf2 100644
@@ -37,6 +37,8 @@ import android.widget.SimpleAdapter;
import com.android.camera.IconListPreference;
import com.android.camera.ListPreference;
+import com.android.camera.Storage;
+
import org.codeaurora.snapcam.R;
// A popup window that shows one camera setting. The title is the name of the
@@ -84,6 +86,14 @@ public class ListSubMenu extends ListView implements
mPreference = preference;
Context context = getContext();
CharSequence[] entries = mPreference.getEntries();
+ String str = getResources().getString(R.string.pref_camera_savepath_title);
+ String phone = getResources().getString(R.string.pref_camera_savepath_entry_0);
+ String sdcard = getResources().getString(R.string.pref_camera_savepath_entry_1);
+ boolean sdcardHidden = false;
+ if (mPreference != null && str.equals(mPreference.getTitle())
+ && !Storage.getSDCardAvailable()) {
+ sdcardHidden = true;
+ }
int[] iconIds = null;
if (preference instanceof IconListPreference) {
iconIds = ((IconListPreference) mPreference).getImageIds();
@@ -97,6 +107,7 @@ public class ListSubMenu extends ListView implements
ArrayList<HashMap<String, Object>> listItem =
new ArrayList<HashMap<String, Object>>();
for (int i = 0; i < entries.length; ++i) {
+ if (sdcardHidden && sdcard.equals(entries[i].toString())) continue;
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("text", entries[i].toString());
if (iconIds != null)
22 品牌机开启WIFI热点,连接此热点,在品牌机上显示为“android”开头(请查看截图),请修改为显示为设备型号开头:xxx
frameworks/base/services/core/java/com/android/server/ConnectivityService.java |
SystemProperties.set("net.hostname", name);
23设置--系统--日期和时间--自动确定日期和时间---不能实时显示网络提供的日期和时间。
<string translatable="false" name="config_ntpServer">2.android.pool.ntp.org</string>