[App] 高通系统闹钟app DeskClock的修改

系统主界面本来是4个fragment, 分别是alarm, clock, timer, stopwatch。

现在应用写不了闹钟app,我直接让他在需要闹钟的地方,跳到系统闹钟DeskClock的设置闹钟界面。

主要修改:

        a. 保留一个alarm界面, 去掉clock, timer, stopwatch
        b. 去掉了一些界面不和谐的地方

修改很简单,主要是裁剪调一些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
+                <!--CheckBox
                     android: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 BaseActivity
     public 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 BaseActivity
         alarmTab.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 BaseActivity
         stopwatchTab.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 BaseActivity
         setVolumeControlStream(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 BaseActivity
         super.onSaveInstanceState(outState);
         outState.putInt(KEY_SELECTED_TAB, mTabLayout.getSelectedTabPosition());
     }
-
+/*
     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
         mActionBarMenuManager.createOptionsMenu(menu, getMenuInflater());
@@ -265,7 +273,7 @@ public class DeskClock extends BaseActivity
         }
         return super.onOptionsItemSelected(item);
     }
-
+*/
     @Override
     protected 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() {
             @Override
             public void onClick(View v) {
                 alarmTimeClickHandler.setAlarmVibrationEnabled(mAlarm, ((CheckBox) v).isChecked());
             }
         });
+*/
         // Ringtone editor handler
         ringtone.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所依赖的Activity
        getApplicationContext().startActivity(intent);
 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值