系统主界面本来是4个fragment, 分别是alarm, clock, timer, stopwatch。现在应用写不了闹钟app,我直接让他在需要闹钟的地方,跳到系统闹钟DeskClock的设置闹钟界面。主要修改:a. 保留一个alarm界面, 去掉clock, timer, stopwatchb. 去掉了一些界面不和谐的地方修改很简单,主要是裁剪调一些ui的功能。
上代码,可以根据ui追追流程:
diff --git a/packages/apps/DeskClock/res/layout/alarm_time_expanded.xml b/packages/apps/DeskClock/res/layout/alarm_time_expanded.xml
index 38d24de..7ef5d8f 100644
--- a/packages/apps/DeskClock/res/layout/alarm_time_expanded.xml
+++ b/packages/apps/DeskClock/res/layout/alarm_time_expanded.xml
@@ -80,7 +80,7 @@android:textColor="@color/clock_white"android:textSize="@dimen/alarm_text_font_size" />-                <CheckBox
+                <!--CheckBoxandroid:id="@+id/vibrate_onoff"android:layout_width="wrap_content"android:layout_height="@dimen/touch_target_min_size"
@@ -89,8 +89,9 @@android:includeFontPadding="false"android:paddingStart="@dimen/alarm_horizontal_padding"android:text="@string/alarm_vibrate"
+                  android:visibility="visible"             android:textColor="@color/white"
-                    android:textSize="@dimen/alarm_text_font_size" />
+                    android:textSize="@dimen/alarm_text_font_size" /--></LinearLayout>diff --git a/packages/apps/DeskClock/res/values/colors.xml b/packages/apps/DeskClock/res/values/colors.xml
index 1ca6960..ae0f87b 100644
--- a/packages/apps/DeskClock/res/values/colors.xml
+++ b/packages/apps/DeskClock/res/values/colors.xml
@@ -43,6 +43,8 @@<color name="clock_white">#ffffff</color><color name="clock_gray">#B3ffffff</color>
+
+  <!-- qyc background color --><color name="default_background">#1A237E</color><color name="status_bar">#66000000</color>
diff --git a/packages/apps/DeskClock/src/com/android/deskclock/DeskClock.java b/packages/apps/DeskClock/src/com/android/deskclock/DeskClock.java
index f04b8d6..bd6536e 100644
--- a/packages/apps/DeskClock/src/com/android/deskclock/DeskClock.java
+++ b/packages/apps/DeskClock/src/com/android/deskclock/DeskClock.java
@@ -72,7 +72,7 @@ public class DeskClock extends BaseActivitypublic static final int TIMER_TAB_INDEX = 2;public static final int STOPWATCH_TAB_INDEX = 3;-    private final ActionBarMenuManager mActionBarMenuManager = new ActionBarMenuManager(this);
+    //private final ActionBarMenuManager mActionBarMenuManager = new ActionBarMenuManager(this);private TabLayout mTabLayout;private RtlViewPager mViewPager;
@@ -113,10 +113,14 @@ public class DeskClock extends BaseActivityalarmTab.setIcon(R.drawable.ic_tab_alarm).setContentDescription(R.string.menu_alarm);mTabsAdapter.addTab(alarmTab, AlarmClockFragment.class, ALARM_TAB_INDEX);+/* qyc, cut 3 items, clock, timer stopwatch
+final Tab clockTab = mTabLayout.newTab();clockTab.setIcon(R.drawable.ic_tab_clock).setContentDescription(R.string.menu_clock);mTabsAdapter.addTab(clockTab, ClockFragment.class, CLOCK_TAB_INDEX);+
+final Tab timerTab = mTabLayout.newTab();timerTab.setIcon(R.drawable.ic_tab_timer).setContentDescription(R.string.menu_timer);mTabsAdapter.addTab(timerTab, TimerFragment.class, TIMER_TAB_INDEX);
@@ -125,7 +129,7 @@ public class DeskClock extends BaseActivitystopwatchTab.setIcon(R.drawable.ic_tab_stopwatch).setContentDescription(R.string.menu_stopwatch);mTabsAdapter.addTab(stopwatchTab, StopwatchFragment.class, STOPWATCH_TAB_INDEX);
-
+*/mTabLayout.getTabAt(mSelectedTab).select();mViewPager.setCurrentItem(mSelectedTab);mTabsAdapter.notifySelectedPage(mSelectedTab);
@@ -137,9 +141,9 @@ public class DeskClock extends BaseActivitysetVolumeControlStream(AudioManager.STREAM_ALARM);if (icicle != null) {
-            mSelectedTab = icicle.getInt(KEY_SELECTED_TAB, CLOCK_TAB_INDEX);
+            mSelectedTab = icicle.getInt(KEY_SELECTED_TAB, ALARM_TAB_INDEX);} else {
-            mSelectedTab = CLOCK_TAB_INDEX;
+            mSelectedTab = ALARM_TAB_INDEX;// Set the background color to initially match the theme value so that we can// smoothly transition to the dynamic color.
@@ -195,15 +199,19 @@ public class DeskClock extends BaseActivity});// Configure the menu item controllers.
+
+/*qyc add, cut MenuItem
+mActionBarMenuManager.addMenuItemController(new SettingMenuItemController(this)).addMenuItemController(new NightModeMenuItemController(this)).addMenuItemController(MenuItemControllerFactory.getInstance().buildMenuItemControllers(this));
+*/// Inflate the menu during creation to avoid a double layout pass. Otherwise, the menu// inflation occurs *after* the initial draw and a second layout pass adds in the menu.
-        onCreateOptionsMenu(toolbar.getMenu());
+        //onCreateOptionsMenu(toolbar.getMenu());// We need to update the system next alarm time on app startup because the// user might have clear our data.
@@ -244,7 +252,7 @@ public class DeskClock extends BaseActivitysuper.onSaveInstanceState(outState);outState.putInt(KEY_SELECTED_TAB, mTabLayout.getSelectedTabPosition());}
-
+/*@Overridepublic boolean onCreateOptionsMenu(Menu menu) {mActionBarMenuManager.createOptionsMenu(menu, getMenuInflater());
@@ -265,7 +273,7 @@ public class DeskClock extends BaseActivity}return super.onOptionsItemSelected(item);}
-
+*/@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {// Recreate the activity if any settings have been changed
diff --git a/packages/apps/DeskClock/src/com/android/deskclock/alarms/AlarmTimeClickHandler.java b/packages/apps/DeskClock/src/com/android/deskclock/alarms/AlarmTimeClickHandler.java
index 82952eb..abc9d75 100755
--- a/packages/apps/DeskClock/src/com/android/deskclock/alarms/AlarmTimeClickHandler.java
+++ b/packages/apps/DeskClock/src/com/android/deskclock/alarms/AlarmTimeClickHandler.java
@@ -172,7 +172,10 @@ public final class AlarmTimeClickHandler {}public void onRingtoneClicked(Alarm alarm) {
-        launchRingTonePicker(alarm);
+        //launchRingTonePicker(alarm);
+        mSelectedAlarm = alarm;
+      mSelectSource = AlarmClockFragment.SEL_SRC_RINGTONE;
+        sendPickIntent();}public void onEditLabelClicked(Alarm alarm) {
@@ -210,6 +213,7 @@ public final class AlarmTimeClickHandler {private void launchRingTonePicker(Alarm alarm) {mSelectedAlarm = alarm;RingTonePickerDialogListener listener = new RingTonePickerDialogListener((AlarmClockFragment)mFragment);
+new AlertDialog.Builder(mFragment.getActivity()).setTitle(mFragment.getResources().getString(R.string.alarm_select)).setItems(
@@ -219,6 +223,7 @@ public final class AlarmTimeClickHandler {mFragment.getResources().getString(R.string.alarm_select_external) },listener).show();
+}private class RingTonePickerDialogListener implements DialogInterface.OnClickListener {
@@ -229,9 +234,10 @@ public final class AlarmTimeClickHandler {}public void onClick(DialogInterface dialog, int which) {
+          which = AlarmClockFragment.SEL_SRC_RINGTONE;switch (which) {case AlarmClockFragment.SEL_SRC_RINGTONE:
-                case AlarmClockFragment.SEL_SRC_EXTERNAL:
+                //case AlarmClockFragment.SEL_SRC_EXTERNAL:mSelectSource = which;sendPickIntent();break;
@@ -244,7 +250,8 @@ public final class AlarmTimeClickHandler {private void sendPickIntent() {LogUtils.d(TAG, "sendPickIntent is called, mSelectSource = " + mSelectSource);
-        if (mSelectSource == AlarmClockFragment.SEL_SRC_RINGTONE) {
+        //if (mSelectSource == AlarmClockFragment.SEL_SRC_RINGTONE) {
+      if (true) {final Uri oldRingtone = Alarm.NO_RINGTONE_URI.equals(mSelectedAlarm.alert) ? null : mSelectedAlarm.alert;final Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, oldRingtone);
diff --git a/packages/apps/DeskClock/src/com/android/deskclock/alarms/dataadapter/ExpandedAlarmViewHolder.java b/packages/apps/DeskClock/src/com/android/deskclock/alarms/dataadapter/ExpandedAlarmViewHolder.java
index c4c9bb0..3176e89 100644
--- a/packages/apps/DeskClock/src/com/android/deskclock/alarms/dataadapter/ExpandedAlarmViewHolder.java
+++ b/packages/apps/DeskClock/src/com/android/deskclock/alarms/dataadapter/ExpandedAlarmViewHolder.java
@@ -49,7 +49,7 @@ public final class ExpandedAlarmViewHolder extends AlarmTimeViewHolder {public final TextView editLabel;public final LinearLayout repeatDays;public final CompoundButton[] dayButtons = new CompoundButton[7];
-    public final CheckBox vibrate;
+    //public final CheckBox vibrate;public final TextView ringtone;public final Button delete;public final View preemptiveDismissContainer;
@@ -81,7 +81,7 @@ public final class ExpandedAlarmViewHolder extends AlarmTimeViewHolder {delete = (Button) itemView.findViewById(R.id.delete);repeat = (CheckBox) itemView.findViewById(R.id.repeat_onoff);
-        vibrate = (CheckBox) itemView.findViewById(R.id.vibrate_onoff);
+        //vibrate = (CheckBox) itemView.findViewById(R.id.vibrate_onoff);ringtone = (TextView) itemView.findViewById(R.id.choose_ringtone);editLabel = (TextView) itemView.findViewById(R.id.edit_label);repeatDays = (LinearLayout) itemView.findViewById(R.id.repeat_days);
@@ -129,12 +129,14 @@ public final class ExpandedAlarmViewHolder extends AlarmTimeViewHolder {}});// Vibrator checkbox handler
+/*vibrate.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {alarmTimeClickHandler.setAlarmVibrationEnabled(mAlarm, ((CheckBox) v).isChecked());}});
+*/// Ringtone editor handlerringtone.setOnClickListener(new View.OnClickListener() {@Override
@@ -223,10 +225,10 @@ public final class ExpandedAlarmViewHolder extends AlarmTimeViewHolder {private void bindVibrator(Alarm alarm) {if (!mHasVibrator) {
-            vibrate.setVisibility(View.INVISIBLE);
+            //vibrate.setVisibility(View.INVISIBLE);} else {
-            vibrate.setVisibility(View.VISIBLE);
-            vibrate.setChecked(alarm.vibrate);
+            //vibrate.setVisibility(View.VISIBLE);
+            //vibrate.setChecked(alarm.vibrate);}}}
diff --git a/packages/apps/DeskClock/src/com/android/deskclock/settings/DefaultAlarmToneDialog.java b/packages/apps/DeskClock/src/com/android/deskclock/settings/DefaultAlarmToneDialog.java
index 50e7bfe..c177de8 100755
--- a/packages/apps/DeskClock/src/com/android/deskclock/settings/DefaultAlarmToneDialog.java
+++ b/packages/apps/DeskClock/src/com/android/deskclock/settings/DefaultAlarmToneDialog.java
@@ -109,9 +109,9 @@ public class DefaultAlarmToneDialog extends DialogPreference {.setItems(new String[] {mContext.getResources().getString(
-                                        R.string.alarm_select_ringtone),
+                                        R.string.alarm_select_ringtone)/*,mContext.getResources().getString(
-                                        R.string.alarm_select_external) },
+                                        R.string.alarm_select_external) */},new OnClickListener() {@Override
跳转:private void startAlarm()
{Intent intent = new Intent();intent.setAction(Intent.ACTION_MAIN);intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//        intent.putExtra(PreferenceActivity.EXTRA_SHOW_FRAGMENT,"com.android.deskclock.AlarmClockFragment");//要启动的fragment
//        intent.putExtra(PreferenceActivity.EXTRA_NO_HEADERS,true);intent.setComponent(new ComponentName("com.android.deskclock", "com.android.deskclock.DeskClock")); //包名,要启动fragment所依赖的ActivitygetApplicationContext().startActivity(intent);}

[App] 高通系统闹钟app DeskClock的修改相关推荐

  1. qca9535 tftp32 刷机_20151210编译高通的qca9531的wireless版本 修改版本4

    20151210编译高通的qca9531的wireless版本 修改版本4 2015/11/12 10:40 (1).安装ubuntu(推荐安装的时候拔掉网线,这样装得快!有些库从国外的网站下载还是很 ...

  2. 安卓高通机型的基带移植 修改 编译的相关 增加信号 支持5G等【二】

    安卓高通机型的基带移植 修改 编译的相关 增加信号 支持5G等[一] 前面分享了这篇帖子,很多友友希望更新下新机型的基带替换方法.今天对其中做一些补充说明.由于安卓机型跨版本幅度较大.有的机型从出厂安 ...

  3. Trust App(高通)

    本文转载自简书,原文作者:后知晚觉,https://www.jianshu.com/p/17af7a8f7864 CP代码编译方法 交叉编译工具下载 在高通网站上下载llvm, llvm编译器版本,可 ...

  4. Android 如何在App中启动系统闹钟

    由于不同Android手机厂商提供的系统闹钟包名都不一致,所以只能通过过滤当前手机所有的应用,以确定闹钟应用的包名,进而启动它. 这里采用的过滤规则是:系统应用 && 应用的Packa ...

  5. android 闹钟开机启动,Android如何在App中启动系统闹钟

    由于不同Android手机厂商提供的系统闹钟包名都不一致,所以只能通过过滤当前手机所有的应用,以确定闹钟应用的包名,进而启动它. 这里采用的过滤规则是:系统应用 && 应用的Packa ...

  6. 安卓高通机型的基带移植 修改 编译的相关 增加信号 支持5G等

    各位玩机的友友.经常会遇到这种问题.官方的卡刷包或者第三方固件.不同的版本之间刷入手机后信号不稳定.有的个别老版本固件不支持4G 5G等等的类似故障. 究其原因很大一部分就在于基带文件不一样.官方的固 ...

  7. android闹钟app下载,最美闹钟app下载-最美闹钟 安卓版v3.2.0-PC6安卓网

    需要调用以下重要权限 - 查看更多权限列表[最美闹钟] ● 获取定位允许应用通过网络或卫星对设备进行定位 ● 查看网络状态允许应用程序查看所有网络的状态. ● 开关WLAN允许应用开启或关闭WLAN ...

  8. matlab设计高通系统,用matlab设计高通滤波器雪比切夫、fir两种方法 课程设计HPF.doc...

    课 程 设 计通信电子电路课程设计通信电子电路课程设计 --数字滤波器的设计张静设计题目 张静设计题生姓名生姓名光信息08-3班学光信息08-3班学 号指导教师专业班级张静 胡磊 艾永春 赵亚龙 张腾 ...

  9. 简谈高通Trustzone的实现【转】

    本文转载自:https://blog.csdn.net/hovan/article/details/42520879 从trust zone之我见知道,支持trustzone的芯片会跑在两个世界. 普 ...

最新文章

  1. linux 用户态 spinlock,spinlock作用
  2. ccs读取dat文件c语言程序,TMS320DM642学习----第六篇(CCS中.dat文件类型详解)
  3. Oracle APEX 系列文章1:Oracle APEX, 让你秒变全栈开发的黑科技
  4. 鸿蒙渊之后是什么任务,都说这次主线好,那我来唱唱反调吧
  5. Git 查看帮助命令
  6. MATLAB中数组的原始索引和线性索引之间相互进行转换
  7. 以图搜图:Python实现dHash算法
  8. 笔记本平板电脑推荐_平板电脑推荐表(2020.618)
  9. 干货分享 |全面总结XSS
  10. 揭秘:客服如何创造价值和自我超越
  11. Android 11版本号仍有甜点名称 只是不再公开:红丝绒蛋糕
  12. config配置中文解释
  13. AI基础:自然语言处理基础之序列模型
  14. 设计水花飞溅柠檬汽水饮料广告的PS教程
  15. linux下运行omnet,Linux中安装OMNeT++过程
  16. 2020中国高校计算机大赛网络技术挑战赛,【科研竞赛】2020年度“中国高校计算机大赛-网络技术挑战赛”...
  17. 【SAP Abap】SAP增强开发总结
  18. 孩子成长-再哭爸爸就不帅了
  19. java字符集转换 Big5 和 Unicode互转
  20. “科林明伦杯”哈尔滨理工大学第十届程序设计竞赛——J.最大值【KMP next数组】【暴力(数据太水了!)】

热门文章

  1. mbr(master boot record)主引导记录
  2. 使用笔记本电脑需要注意的问题
  3. 学习3D引擎架构技术概述
  4. Sybase助中远集运建立MIS系统数据仓库
  5. calc与cacls,两个容易混淆的命令
  6. 饮食误区:多喝茶可以预防心脑血管疾病?
  7. linux驱动开发-阻塞非阻塞
  8. VMware虚拟机下Linux清理其所在的磁盘空间
  9. 基于连通域字符分割的流程_基于连通域的快速文字图像分割算法
  10. 再次携号转网_再次确认!携号转网要全面普及了,网友:移动要慌了!