系统主界面本来是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. 面试 Java 高级后端开发,要准备哪些知识点?
  2. java swing 动态生成表格_6 个曾经牛逼哄哄的 Java 技术,你用过吗?
  3. Linux学习总结(八)-磁盘格式化,挂载,swap扩容
  4. linux 内存性能评估,内存性能评估工具vmstat/free/smem使用与解读
  5. Ubuntu16.04下安装opencv-3.3.0
  6. vb6计算机,[计算机软件及应用]VB6.ppt
  7. 读书分享《The art of CRM》--CRM的艺术
  8. 【电脑插入U盘或者内存卡显示无法格式化FAT32如何解决】
  9. 理想国pandas练习题3
  10. 数据库范式讲解(1NF、2NF、3NF、BCNF)
  11. HDU-6441-Find Integer(费马大定理+勾股数)
  12. c盘满了怎么清理垃圾而不误删?C盘清理,4个方法!
  13. python 找出两个dataframe中不同的元素
  14. 【ChatGPT机器人】打造你的私人聊天助手
  15. mvc获取ajax上传base64文件,Spring MVC+ajax+base64+amazeui框架上传头像带裁剪功能
  16. 招商银行信用卡使用说明
  17. 局域网-无法访问网上邻居-终极解决办法
  18. 【ESP32_8266_WiFi (十一)】通过JSON实现物联网数据通讯
  19. 索尼visca协议封装
  20. 墨者WordPress插件漏洞分析溯源

热门文章

  1. linux如何调用rs232串口,linux下的rs232串口通讯c代码
  2. 天九共享集团:为企业转型提供双重加持
  3. vi编辑器的基本用法
  4. 鸿蒙 Image 方法及应用
  5. 详解WebApp与Native App的区别
  6. linux下无法删除文件的解决办法
  7. oracle统计分析表信息
  8. conda创建环境失败的解决方法
  9. js setAttribute removeChild appendChild
  10. H3C路由器静态NAT_企业网必备利器——NAT配置