Search in sources :

Example 31 with MarginLayoutParams

use of android.view.ViewGroup.MarginLayoutParams in project android_frameworks_base by ParanoidAndroid.

the class TabletStatusBar method makeStatusBarView.

protected View makeStatusBarView() {
    final Context context = mContext;
    CustomTheme currentTheme = mContext.getResources().getConfiguration().customTheme;
    if (currentTheme != null) {
        mCurrentTheme = (CustomTheme) currentTheme.clone();
    }
    loadDimens();
    final TabletStatusBarView sb = (TabletStatusBarView) View.inflate(context, R.layout.system_bar, null);
    mStatusBarView = sb;
    sb.setHandler(mHandler);
    try {
        // bar on a tablet that has only the system bar
        if (mWindowManagerService.hasNavigationBar()) {
            Slog.e(TAG, "Tablet device cannot show navigation bar and system bar");
        }
    } catch (RemoteException ex) {
    }
    // Overload screen with views that literally do nothing, thank you Google
    int[] dummyGravity = { Gravity.LEFT, Gravity.TOP, Gravity.RIGHT, Gravity.BOTTOM };
    for (int i = 0; i < 4; i++) {
        mPieDummyTrigger[i] = new View(mContext);
        mWindowManager.addView(mPieDummyTrigger[i], getDummyTriggerLayoutParams(mContext, dummyGravity[i]));
    }
    // set recents activity navigation bar view
    RecentsActivity.addNavigationCallback(this);
    mBarContents = (ViewGroup) sb.findViewById(R.id.bar_contents);
    // system bar clock
    mClock = (Clock) mBarContents.findViewById(R.id.clock);
    // the whole right-hand side of the bar
    mNotificationArea = sb.findViewById(R.id.notificationArea);
    mNotificationArea.setOnTouchListener(new NotificationTriggerTouchListener());
    // the button to open the notification area
    mNotificationTrigger = sb.findViewById(R.id.notificationTrigger);
    // the more notifications icon
    mNotificationIconArea = (NotificationIconArea) sb.findViewById(R.id.notificationIcons);
    // where the icons go
    mIconLayout = (NotificationIconArea.IconLayout) sb.findViewById(R.id.icons);
    mNotificationPeekTapDuration = ViewConfiguration.getTapTimeout();
    // px/s
    mNotificationFlingVelocity = 300;
    mTabletTicker = new TabletTicker(this);
    // The icons
    // will post a notification
    mLocationController = new LocationController(mContext);
    // watch the PREF_DO_NOT_DISTURB and convert to appropriate disable() calls
    mDoNotDisturb = new DoNotDisturb(mContext);
    mBatteryController = new BatteryController(mContext);
    mBatteryController.addIconView((ImageView) sb.findViewById(R.id.battery));
    mBluetoothController = new BluetoothController(mContext);
    mBluetoothController.addIconView((ImageView) sb.findViewById(R.id.bluetooth));
    mNetworkController = new NetworkController(mContext);
    mSignalCluster = (SignalClusterView) sb.findViewById(R.id.signal_cluster);
    mNetworkController.addSignalCluster(mSignalCluster);
    mSignalCluster.setNetworkController(mNetworkController);
    mBarView = (ViewGroup) mStatusBarView;
    mHasDockBattery = mContext.getResources().getBoolean(com.android.internal.R.bool.config_hasDockBattery);
    if (mHasDockBattery) {
        mDockBatteryController = new DockBatteryController(mContext);
        mDockBatteryController.addIconView((ImageView) sb.findViewById(R.id.dock_battery));
    }
    // The navigation buttons
    mBackButton = (ImageView) sb.findViewById(R.id.back);
    mNavigationArea = (ViewGroup) sb.findViewById(R.id.navigationArea);
    mHomeButton = mNavigationArea.findViewById(R.id.home);
    mMenuButton = mNavigationArea.findViewById(R.id.menu);
    mRecentButton = mNavigationArea.findViewById(R.id.recent_apps);
    if (Settings.System.getInt(context.getContentResolver(), Settings.System.NAV_BAR_TABUI_MENU, 0) == 1) {
        MarginLayoutParams marginParams = new MarginLayoutParams(mMenuButton.getLayoutParams());
        RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(marginParams);
        layoutParams.addRule(RelativeLayout.RIGHT_OF, R.id.recent_apps);
        layoutParams.setMargins(-(context.getResources().getDimensionPixelSize(R.dimen.navigation_menu_key_width) / 3), 0, 0, 0);
        mMenuButton.setLayoutParams(layoutParams);
        ((ImageView) mMenuButton).setImageDrawable(context.getResources().getDrawable(R.drawable.ic_sysbar_menu));
    } else {
        mRecentButton.setOnLongClickListener(new OnLongClickListener() {

            public boolean onLongClick(View v) {
                ((KeyButtonView) mMenuButton).sendEventSequence(new int[][] { new int[] { KeyEvent.ACTION_DOWN, KeyEvent.FLAG_CANCELED }, new int[] { KeyEvent.ACTION_UP, 0 } });
                mButtonBusy = false;
                return true;
            }
        });
    }
    mRecentButton.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            if (mButtonBusy) {
                onClickRecentButton();
            } else {
                mButtonBusy = true;
            }
        }
    });
    LayoutTransition lt = new LayoutTransition();
    lt.setDuration(250);
    // don't wait for these transitions; we just want icons to fade in/out, not move around
    lt.setDuration(LayoutTransition.CHANGE_APPEARING, 0);
    lt.setDuration(LayoutTransition.CHANGE_DISAPPEARING, 0);
    lt.addTransitionListener(new LayoutTransition.TransitionListener() {

        public void endTransition(LayoutTransition transition, ViewGroup container, View view, int transitionType) {
            // ensure the menu button doesn't stick around on the status bar after it's been
            // removed
            mBarContents.invalidate();
        }

        public void startTransition(LayoutTransition transition, ViewGroup container, View view, int transitionType) {
        }
    });
    mNavigationArea.setLayoutTransition(lt);
    // no multi-touch on the nav buttons
    mNavigationArea.setMotionEventSplittingEnabled(false);
    // The bar contents buttons
    mFeedbackIconArea = (ViewGroup) sb.findViewById(R.id.feedbackIconArea);
    mInputMethodSwitchButton = (InputMethodButton) sb.findViewById(R.id.imeSwitchButton);
    // Overwrite the lister
    mInputMethodSwitchButton.setOnClickListener(mOnClickListener);
    mCompatModeButton = (CompatModeButton) sb.findViewById(R.id.compatModeButton);
    mCompatModeButton.setOnClickListener(mOnClickListener);
    mCompatModeButton.setVisibility(View.GONE);
    // for redirecting errant bar taps to the IME
    mFakeSpaceBar = sb.findViewById(R.id.fake_space_bar);
    // "shadows" of the status bar features, for lights-out mode
    mShadow = sb.findViewById(R.id.bar_shadow);
    mShadow.setOnTouchListener(new View.OnTouchListener() {

        public boolean onTouch(View v, MotionEvent ev) {
            if (ev.getAction() == MotionEvent.ACTION_DOWN) {
                // even though setting the systemUI visibility below will turn these views
                // on, we need them to come up faster so that they can catch this motion
                // event
                mShadow.setVisibility(View.GONE);
                mBarContents.setVisibility(View.VISIBLE);
                try {
                    mBarService.setSystemUiVisibility(0, View.SYSTEM_UI_FLAG_LOW_PROFILE);
                } catch (RemoteException ex) {
                // system process dead
                }
            }
            return false;
        }
    });
    // tuning parameters
    final int LIGHTS_GOING_OUT_SYSBAR_DURATION = 750;
    final int LIGHTS_GOING_OUT_SHADOW_DURATION = 750;
    final int LIGHTS_GOING_OUT_SHADOW_DELAY = 0;
    final int LIGHTS_COMING_UP_SYSBAR_DURATION = 200;
    //        final int LIGHTS_COMING_UP_SYSBAR_DELAY    = 50;
    final int LIGHTS_COMING_UP_SHADOW_DURATION = 0;
    LayoutTransition xition = new LayoutTransition();
    xition.setAnimator(LayoutTransition.APPEARING, ObjectAnimator.ofFloat(null, "alpha", 0.5f, 1f));
    xition.setDuration(LayoutTransition.APPEARING, LIGHTS_COMING_UP_SYSBAR_DURATION);
    xition.setStartDelay(LayoutTransition.APPEARING, 0);
    xition.setAnimator(LayoutTransition.DISAPPEARING, ObjectAnimator.ofFloat(null, "alpha", 1f, 0f));
    xition.setDuration(LayoutTransition.DISAPPEARING, LIGHTS_GOING_OUT_SYSBAR_DURATION);
    xition.setStartDelay(LayoutTransition.DISAPPEARING, 0);
    ((ViewGroup) sb.findViewById(R.id.bar_contents_holder)).setLayoutTransition(xition);
    xition = new LayoutTransition();
    xition.setAnimator(LayoutTransition.APPEARING, ObjectAnimator.ofFloat(null, "alpha", 0f, 1f));
    xition.setDuration(LayoutTransition.APPEARING, LIGHTS_GOING_OUT_SHADOW_DURATION);
    xition.setStartDelay(LayoutTransition.APPEARING, LIGHTS_GOING_OUT_SHADOW_DELAY);
    xition.setAnimator(LayoutTransition.DISAPPEARING, ObjectAnimator.ofFloat(null, "alpha", 1f, 0f));
    xition.setDuration(LayoutTransition.DISAPPEARING, LIGHTS_COMING_UP_SHADOW_DURATION);
    xition.setStartDelay(LayoutTransition.DISAPPEARING, 0);
    ((ViewGroup) sb.findViewById(R.id.bar_shadow_holder)).setLayoutTransition(xition);
    // set the initial view visibility
    setAreThereNotifications();
    // receive broadcasts
    IntentFilter filter = new IntentFilter();
    filter.addAction(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
    filter.addAction(Intent.ACTION_SCREEN_OFF);
    context.registerReceiver(mBroadcastReceiver, filter);
    return sb;
}
Also used : LocationController(com.android.systemui.statusbar.policy.LocationController) LayoutTransition(android.animation.LayoutTransition) BluetoothController(com.android.systemui.statusbar.policy.BluetoothController) OnLongClickListener(android.view.View.OnLongClickListener) DockBatteryController(com.android.systemui.statusbar.policy.DockBatteryController) BatteryController(com.android.systemui.statusbar.policy.BatteryController) ImageView(android.widget.ImageView) Context(android.content.Context) IntentFilter(android.content.IntentFilter) MarginLayoutParams(android.view.ViewGroup.MarginLayoutParams) LayoutParams(android.view.ViewGroup.LayoutParams) ViewGroup(android.view.ViewGroup) DockBatteryController(com.android.systemui.statusbar.policy.DockBatteryController) MarginLayoutParams(android.view.ViewGroup.MarginLayoutParams) ImageView(android.widget.ImageView) QuickSettingsContainerView(com.android.systemui.statusbar.phone.QuickSettingsContainerView) View(android.view.View) TextView(android.widget.TextView) SignalClusterView(com.android.systemui.statusbar.SignalClusterView) StatusBarIconView(com.android.systemui.statusbar.StatusBarIconView) KeyButtonView(com.android.systemui.statusbar.policy.KeyButtonView) ScrollView(android.widget.ScrollView) CustomTheme(android.content.res.CustomTheme) Point(android.graphics.Point) NetworkController(com.android.systemui.statusbar.policy.NetworkController) MotionEvent(android.view.MotionEvent) RelativeLayout(android.widget.RelativeLayout) DoNotDisturb(com.android.systemui.statusbar.DoNotDisturb) OnClickListener(android.view.View.OnClickListener) RemoteException(android.os.RemoteException)

Example 32 with MarginLayoutParams

use of android.view.ViewGroup.MarginLayoutParams in project android_frameworks_base by ParanoidAndroid.

the class RenderSessionImpl method visit.

/**
     * Visits a View and its children and generate a {@link ViewInfo} containing the
     * bounds of all the views.
     * @param view the root View
     * @param offset an offset for the view bounds.
     * @param setExtendedInfo whether to set the extended view info in the {@link ViewInfo} object.
     */
private ViewInfo visit(View view, int offset, boolean setExtendedInfo) {
    if (view == null) {
        return null;
    }
    ViewInfo result = new ViewInfo(view.getClass().getName(), getContext().getViewKey(view), view.getLeft(), view.getTop() + offset, view.getRight(), view.getBottom() + offset, view, view.getLayoutParams());
    if (setExtendedInfo) {
        MarginLayoutParams marginParams = null;
        LayoutParams params = view.getLayoutParams();
        if (params instanceof MarginLayoutParams) {
            marginParams = (MarginLayoutParams) params;
        }
        result.setExtendedInfo(view.getBaseline(), marginParams != null ? marginParams.leftMargin : 0, marginParams != null ? marginParams.topMargin : 0, marginParams != null ? marginParams.rightMargin : 0, marginParams != null ? marginParams.bottomMargin : 0);
    }
    if (view instanceof ViewGroup) {
        ViewGroup group = ((ViewGroup) view);
        result.setChildren(visitAllChildren(group, 0, /*offset*/
        setExtendedInfo));
    }
    return result;
}
Also used : MarginLayoutParams(android.view.ViewGroup.MarginLayoutParams) LayoutParams(android.view.ViewGroup.LayoutParams) ViewGroup(android.view.ViewGroup) MarginLayoutParams(android.view.ViewGroup.MarginLayoutParams) ViewInfo(com.android.ide.common.rendering.api.ViewInfo)

Example 33 with MarginLayoutParams

use of android.view.ViewGroup.MarginLayoutParams in project Anki-Android by Ramblurr.

the class Themes method setTitleStyle.

public static void setTitleStyle(View view) {
    view.setBackgroundResource(mTitleStyle);
    if (view instanceof TextView) {
        TextView tv = (TextView) view;
        tv.setTextColor(mTitleTextColor);
        if (mCurrentTheme == THEME_FLAT) {
            tv.setMinLines(1);
            tv.setMaxLines(2);
            int height = (int) (tv.getLineHeight() / 2);
            LinearLayout.LayoutParams llp = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
            MarginLayoutParams mlp = (MarginLayoutParams) tv.getLayoutParams();
            height += mlp.bottomMargin;
            llp.setMargins(0, height, 0, height);
            tv.setLayoutParams(llp);
            setBoldFont(tv);
        }
    }
}
Also used : LayoutParams(android.widget.LinearLayout.LayoutParams) MarginLayoutParams(android.view.ViewGroup.MarginLayoutParams) LayoutParams(android.widget.LinearLayout.LayoutParams) TextView(android.widget.TextView) MarginLayoutParams(android.view.ViewGroup.MarginLayoutParams) LinearLayout(android.widget.LinearLayout)

Example 34 with MarginLayoutParams

use of android.view.ViewGroup.MarginLayoutParams in project android_frameworks_base by DirtyUnicorns.

the class VolumeDialog method updateDialogBottomMarginH.

private void updateDialogBottomMarginH() {
    final long diff = System.currentTimeMillis() - mCollapseTime;
    final boolean collapsing = mCollapseTime != 0 && diff < getConservativeCollapseDuration();
    final ViewGroup.MarginLayoutParams mlp = (MarginLayoutParams) mDialogView.getLayoutParams();
    final int bottomMargin = collapsing ? mDialogContentView.getHeight() : mContext.getResources().getDimensionPixelSize(R.dimen.volume_dialog_margin_bottom);
    if (bottomMargin != mlp.bottomMargin) {
        if (D.BUG)
            Log.d(TAG, "bottomMargin " + mlp.bottomMargin + " -> " + bottomMargin);
        mlp.bottomMargin = bottomMargin;
        mDialogView.setLayoutParams(mlp);
    }
}
Also used : MarginLayoutParams(android.view.ViewGroup.MarginLayoutParams) ViewGroup(android.view.ViewGroup) MarginLayoutParams(android.view.ViewGroup.MarginLayoutParams) SuppressLint(android.annotation.SuppressLint)

Example 35 with MarginLayoutParams

use of android.view.ViewGroup.MarginLayoutParams in project ABPlayer by winkstu.

the class VideoViewActivity method loadVPlayerPrefs.

private void loadVPlayerPrefs() {
    if (!isInitialized())
        return;
    vPlayer.setBuffer(VP.DEFAULT_BUF_SIZE);
    vPlayer.setVideoQuality(VP.DEFAULT_VIDEO_QUALITY);
    vPlayer.setDeinterlace(VP.DEFAULT_DEINTERLACE);
    vPlayer.setVolume(VP.DEFAULT_STEREO_VOLUME, VP.DEFAULT_STEREO_VOLUME);
    vPlayer.setSubEncoding(VP.DEFAULT_SUB_ENCODING);
    MarginLayoutParams lp = (MarginLayoutParams) mSubtitleContainer.getLayoutParams();
    lp.bottomMargin = (int) VP.DEFAULT_SUB_POS;
    mSubtitleContainer.setLayoutParams(lp);
    vPlayer.setSubShown(mSubShown);
    setTextViewStyle(mSubtitleText);
    if (!TextUtils.isEmpty(mSubPath))
        vPlayer.setSubPath(mSubPath);
    if (mVideoView != null && isInitialized())
        setVideoLayout();
}
Also used : MarginLayoutParams(android.view.ViewGroup.MarginLayoutParams)

Aggregations

MarginLayoutParams (android.view.ViewGroup.MarginLayoutParams)40 ViewGroup (android.view.ViewGroup)15 LayoutParams (android.view.ViewGroup.LayoutParams)10 SuppressLint (android.annotation.SuppressLint)8 Paint (android.graphics.Paint)6 ViewInfo (com.android.ide.common.rendering.api.ViewInfo)6 Point (android.graphics.Point)5 ViewParent (android.view.ViewParent)5 ActionMenuView (android.widget.ActionMenuView)5 ListMenuItemView (com.android.internal.view.menu.ListMenuItemView)5 Context (android.content.Context)4 View (android.view.View)4 TextView (android.widget.TextView)4 TextPaint (android.text.TextPaint)3 IntentFilter (android.content.IntentFilter)2 RemoteException (android.os.RemoteException)2 RecyclerView (android.support.v7.widget.RecyclerView)2 LayoutParams (android.support.v7.widget.RecyclerView.LayoutParams)2 MotionEvent (android.view.MotionEvent)2 ImageView (android.widget.ImageView)2