添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
耍酷的皮带  ·  src/com/android/tv/dia ...·  1 周前    · 
魁梧的打火机  ·  Transformation - Lofi ...·  8 月前    · 
强悍的楼梯  ·  ASP.NET Core ...·  1 年前    · 
完美的抽屉  ·  .NET 中的 Json ...·  1 年前    · 
blob: 53adb30808a0a9859e06ec4323dec3625fb76b25 [ file ] [ log ] [ blame ]
/*
* Copyright (C) 2015 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com . android . tv . dialog ;
import android . app . Dialog ;
import android . app . DialogFragment ;
import android . content . Context ;
import android . os . Bundle ;
import android . view . KeyEvent ;
import android . view . LayoutInflater ;
import android . view . View ;
import com . android . tv . MainActivity ;
import com . android . tv . R ;
/** Dialog fragment with full screen. */
public class FullscreenDialogFragment extends SafeDismissDialogFragment {
public static final String DIALOG_TAG = FullscreenDialogFragment . class . getSimpleName ();
public static final String VIEW_LAYOUT_ID = "viewLayoutId" ;
public static final String TRACKER_LABEL = "trackerLabel" ;
/**
* Creates a FullscreenDialogFragment. View class of viewLayoutResId should implement {@link
* DialogView}.
*/
public static FullscreenDialogFragment newInstance ( int viewLayoutResId , String trackerLabel ) {
FullscreenDialogFragment f = new FullscreenDialogFragment ();
Bundle args = new Bundle ();
args . putInt ( VIEW_LAYOUT_ID , viewLayoutResId );
args . putString ( TRACKER_LABEL , trackerLabel );
f . setArguments ( args );
return f ;
}
private String mTrackerLabel ;
private DialogView mDialogView ;
@Override
public Dialog onCreateDialog ( Bundle savedInstanceState ) {
FullscreenDialog dialog =
new FullscreenDialog ( getActivity (), R . style . Theme_TV_dialog_Fullscreen );
LayoutInflater inflater = LayoutInflater . from ( getActivity ());
Bundle args = getArguments ();
mTrackerLabel = args . getString ( TRACKER_LABEL );
int viewLayoutResId = args . getInt ( VIEW_LAYOUT_ID );
View v = inflater . inflate ( viewLayoutResId , null );
dialog . setContentView ( v );
mDialogView = ( DialogView ) v ;
mDialogView . initialize (( MainActivity ) getActivity (), dialog );
return dialog ;
}
@Override
public void onDestroy () {
super . onDestroy ();
mDialogView . onDestroy ();
}
@Override
public String getTrackerLabel () {
return mTrackerLabel ;
}
private class FullscreenDialog extends Dialog {
public FullscreenDialog ( Context context , int theme ) {
super ( context , theme );
}
@Override
public void setContentView ( View dialogView ) {
super . setContentView ( dialogView );
mDialogView = ( DialogView ) dialogView ;
}
@Override
public boolean dispatchKeyEvent ( KeyEvent event ) {
boolean handled = super . dispatchKeyEvent ( event );
return handled || (( View ) mDialogView ). dispatchKeyEvent ( event );
}
@Override
public void onBackPressed () {
mDialogView . onBackPressed ();
}
}
/** Interface for the view of {@link FullscreenDialogFragment}. */
public interface DialogView {
/** Called after the view is inflated and attached to the dialog. */
void initialize ( MainActivity activity , Dialog dialog );
/** Called when a back key is pressed. */
void onBackPressed ();
/** Called when {@link DialogFragment#onDestroy} is called. */
void onDestroy ();
}
}