forked from mirrors/gecko-dev
		
	Bug 1474925 - TimePicker swipe not possible in landscape; r=jchen
MozReview-Commit-ID: DVp6d40OLE3 --HG-- extra : rebase_source : 29ae6312d79cbed0cea128a7e42e38d769be7eab
This commit is contained in:
		
							parent
							
								
									dc2a4a2d84
								
							
						
					
					
						commit
						178925493d
					
				
					 2 changed files with 52 additions and 1 deletions
				
			
		|  | @ -14,6 +14,7 @@ import org.mozilla.gecko.util.GeckoBundle; | ||||||
| import org.mozilla.gecko.widget.AllCapsTextView; | import org.mozilla.gecko.widget.AllCapsTextView; | ||||||
| import org.mozilla.gecko.widget.FocusableDatePicker; | import org.mozilla.gecko.widget.FocusableDatePicker; | ||||||
| import org.mozilla.gecko.widget.DateTimePicker; | import org.mozilla.gecko.widget.DateTimePicker; | ||||||
|  | import org.mozilla.gecko.widget.FocusableTimePicker; | ||||||
| 
 | 
 | ||||||
| import android.content.Context; | import android.content.Context; | ||||||
| import android.content.res.Configuration; | import android.content.res.Configuration; | ||||||
|  | @ -210,7 +211,8 @@ public abstract class PromptInput { | ||||||
|                                                           DateTimePicker.PickersState.WEEK, mMinValue, mMaxValue); |                                                           DateTimePicker.PickersState.WEEK, mMinValue, mMaxValue); | ||||||
|                 mView = (View)input; |                 mView = (View)input; | ||||||
|             } else if (mType.equals("time")) { |             } else if (mType.equals("time")) { | ||||||
|                 TimePicker input = new TimePicker(context); |                 // FocusableDatePicker allow us to have priority in responding to scroll events. | ||||||
|  |                 TimePicker input = new FocusableTimePicker(context); | ||||||
|                 input.setIs24HourView(DateFormat.is24HourFormat(context)); |                 input.setIs24HourView(DateFormat.is24HourFormat(context)); | ||||||
| 
 | 
 | ||||||
|                 GregorianCalendar calendar = new GregorianCalendar(); |                 GregorianCalendar calendar = new GregorianCalendar(); | ||||||
|  |  | ||||||
|  | @ -0,0 +1,49 @@ | ||||||
|  | /* -*- Mode: Java; c-basic-offset: 4; tab-width: 20; indent-tabs-mode: nil; -*- | ||||||
|  |  * This Source Code Form is subject to the terms of the Mozilla Public | ||||||
|  |  * License, v. 2.0. If a copy of the MPL was not distributed with this | ||||||
|  |  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ | ||||||
|  | 
 | ||||||
|  | package org.mozilla.gecko.widget; | ||||||
|  | 
 | ||||||
|  | import android.annotation.SuppressLint; | ||||||
|  | import android.content.Context; | ||||||
|  | import android.util.AttributeSet; | ||||||
|  | import android.view.MotionEvent; | ||||||
|  | import android.view.ViewParent; | ||||||
|  | import android.widget.TimePicker; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * This is based on the platform's {@link TimePicker}.<br> | ||||||
|  |  * The only difference is that it will prevent it's parent from receiving touch events. | ||||||
|  |  */ | ||||||
|  | public class FocusableTimePicker extends TimePicker { | ||||||
|  |     public FocusableTimePicker(Context context) { | ||||||
|  |         super(context); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public FocusableTimePicker(Context context, AttributeSet attrs) { | ||||||
|  |         super(context, attrs); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public FocusableTimePicker(Context context, AttributeSet attrs, int defStyleAttr) { | ||||||
|  |         super(context, attrs, defStyleAttr); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @SuppressLint("NewApi") | ||||||
|  |     public FocusableTimePicker(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { | ||||||
|  |         super(context, attrs, defStyleAttr, defStyleRes); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public boolean onInterceptTouchEvent(MotionEvent ev) { | ||||||
|  |         ViewParent parentView = getParent(); | ||||||
|  | 
 | ||||||
|  |         if (ev.getActionMasked() == MotionEvent.ACTION_DOWN) { | ||||||
|  |             if (parentView != null) { | ||||||
|  |                 parentView.requestDisallowInterceptTouchEvent(true); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         return false; | ||||||
|  |     } | ||||||
|  | } | ||||||
		Loading…
	
		Reference in a new issue
	
	 Petru Lingurar
						Petru Lingurar