Example #1
0
 private void Init()
 {
     underlineHeight = (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 2, Resources.DisplayMetrics);
 }
Example #2
0
 private int PixelsToDp(int pixels)
 {
     return((int)TypedValue.ApplyDimension(ComplexUnitType.Dip, pixels, Resources.DisplayMetrics));
 }
 private int DipToPixels(int dip)
 {
     return((int)TypedValue.ApplyDimension(ComplexUnitType.Dip, dip, Resources.DisplayMetrics));
 }
        private void InitView()
        {
            calendar = Calendar.Instance;
            width    = (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 256, new DisplayMetrics());
            height   = (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 256, new DisplayMetrics());

            hourColor   = Color.Red;
            minuteColor = Color.Green;
            secondColor = Color.Blue;

            hourWidth   = 8;
            minuteWidth = 5;
            secondWidth = 2;

            circlePaint = new Paint
            {
                AntiAlias   = true,
                Color       = Color.Green,
                StrokeWidth = 6
            };
            circlePaint.SetStyle(Style.Stroke);

            dotPaint = new Paint
            {
                AntiAlias = true,
                Color     = Color.Red
            };
            dotPaint.SetStyle(Style.Fill);

            numPaint = new Paint
            {
                AntiAlias = true,
                Color     = Color.Red,
                TextAlign = Align.Center
            };

            hourPaint = new Paint
            {
                Color       = hourColor,
                StrokeWidth = hourWidth
            };
            hourPaint.SetStyle(Style.Fill);

            hourPaint = new Paint
            {
                Color       = hourColor,
                StrokeWidth = hourWidth
            };
            hourPaint.SetStyle(Style.Fill);

            minutePaint = new Paint
            {
                Color       = minuteColor,
                StrokeWidth = minuteWidth
            };
            minutePaint.SetStyle(Style.Fill);

            secondPaint = new Paint
            {
                Color       = secondColor,
                StrokeWidth = secondWidth
            };
            secondPaint.SetStyle(Style.Fill);
        }
Example #5
0
        private float DpToPixels(float valueInDp)
        {
            DisplayMetrics metrics = Context.Resources.DisplayMetrics;

            return(TypedValue.ApplyDimension(ComplexUnitType.Dip, valueInDp, metrics));
        }
Example #6
0
        protected override void InitExample()
        {
            var xAxis = new NumericAxis(Activity)
            {
                AutoRange = AutoRange.Always
            };

            var leftAxis = new NumericAxis(Activity)
            {
                AxisAlignment = AxisAlignment.Left,
                AxisId        = AxisAlignment.Left.Name()
            };

            var rightAxis = new NumericAxis(Activity)
            {
                AxisAlignment = AxisAlignment.Right,
                AxisId        = AxisAlignment.Right.Name()
            };

            using (Surface.SuspendUpdates())
            {
                Surface.XAxes.Add(xAxis);
                Surface.YAxes = new AxisCollection {
                    leftAxis, rightAxis
                };

                var initialColor = Color.Blue;

                for (var i = 0; i < SeriesCount; i++)
                {
                    var alignment  = i % 2 == 0 ? AxisAlignment.Left : AxisAlignment.Right;
                    var dataSeries = GenerateDataSeries(alignment, i);

                    var rs = new FastLineRenderableSeries
                    {
                        DataSeries  = dataSeries,
                        YAxisId     = alignment.Name(),
                        StrokeStyle = new PenStyle.Builder(Activity).WithColor(initialColor).WithThickness(2, ComplexUnitType.Dip).Build()
                    };

                    // Colors are incremented for visual purposes only
                    var newR = initialColor.R == 255 ? 255 : initialColor.R + 5;
                    var newB = initialColor.B == 0 ? 0 : initialColor.B - 2;
                    initialColor = Color.Argb(255, (byte)newR, initialColor.G, (byte)newB);

                    Surface.RenderableSeries.Add(rs);
                }

                var selectedStrokeStyle = new PenStyle.Builder(Activity).WithColor(Color.White).WithThickness(4f).Build();
                var selectedPointMarker = new EllipsePointMarker
                {
                    Width       = (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 10, Context.Resources.DisplayMetrics),
                    Height      = (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 10, Context.Resources.DisplayMetrics),
                    FillStyle   = new SolidBrushStyle(Color.Argb(0xFF, 0xFF, 0x00, 0xDC)),
                    StrokeStyle = new PenStyle.Builder(Activity).WithColor(Color.White).WithThickness(1f).Build()
                };

                Surface.ChartModifiers.Add(new SeriesSelectionModifier
                {
                    SelectedSeriesStyle = new SelectedSeriesStyle(selectedStrokeStyle, selectedPointMarker)
                });
            }
        }
Example #7
0
 public static float SpToPx(Context context, float sp)
 {
     return(TypedValue.ApplyDimension(ComplexUnitType.Sp, sp, context.Resources.DisplayMetrics));
 }
Example #8
0
        private async void OnRequestOnboardingPage(OnboardingViewModel oVm)
        {
            _viewModel = oVm;
            AnimationInitUI();
            BindEvents();

            var mainAnimatorSet = new AnimatorSet();

            var appNameLayoutFinalTopSpace = TypedValue.ApplyDimension(ComplexUnitType.Dip, 55.0f, Application.Context.Resources.DisplayMetrics);

            var decelerateInterpolator = new DecelerateInterpolator(1.0f);

            var appNameLayoutAnimator = new ValueAnimator();

            appNameLayoutAnimator.SetDuration(750);
            appNameLayoutAnimator.SetInterpolator(decelerateInterpolator);
            appNameLayoutAnimator.SetFloatValues(_appNameLayout.GetY(), appNameLayoutFinalTopSpace);
            appNameLayoutAnimator.Update += (o, args) => { _appNameLayout.SetY((float)args.Animation.AnimatedValue); };

            var whatAccountsAnimator = new ValueAnimator();

            whatAccountsAnimator.SetDuration(750);
            whatAccountsAnimator.SetInterpolator(decelerateInterpolator);
            whatAccountsAnimator.SetFloatValues(0.0f, 1.0f);
            whatAccountsAnimator.Update += (o, args) => { _whatAccounts.Alpha = (float)args.Animation.AnimatedValue; };

            var appNameAnimationSet = new AnimatorSet();

            appNameAnimationSet.PlayTogether(appNameLayoutAnimator, whatAccountsAnimator);


            var socialButtonsAnimatorSet = new AnimatorSet();

            var overshootInterpolator = new OvershootInterpolator(3f);

            var facebookButtonAnimator = new ValueAnimator();

            facebookButtonAnimator.SetDuration(500);
            facebookButtonAnimator.SetInterpolator(overshootInterpolator);
            facebookButtonAnimator.SetFloatValues(_facebookButton.GetY() + _facebookButton.Height, _facebookButton.GetY());
            facebookButtonAnimator.Update += (o, args) =>
            {
                _facebookButton.SetY((float)args.Animation.AnimatedValue);
                _facebookButton.Alpha = args.Animation.AnimatedFraction;
            };

            var twitterButtonAnimator = new ValueAnimator();

            twitterButtonAnimator.SetDuration(500);
            twitterButtonAnimator.SetInterpolator(overshootInterpolator);
            twitterButtonAnimator.SetFloatValues(_facebookButton.GetY() + _facebookButton.Height, _facebookButton.GetY());
            twitterButtonAnimator.Update += (o, args) =>
            {
                _twitterButton.SetY((float)args.Animation.AnimatedValue);
                _twitterButton.Alpha = args.Animation.AnimatedFraction;
            };
            socialButtonsAnimatorSet.PlaySequentially(facebookButtonAnimator, twitterButtonAnimator);
            socialButtonsAnimatorSet.StartDelay = 500;

            var letsGoButtonAnimator = new ValueAnimator();

            letsGoButtonAnimator.SetDuration(500);
            letsGoButtonAnimator.SetInterpolator(decelerateInterpolator);
            letsGoButtonAnimator.SetFloatValues(0.0f, 1.0f);
            letsGoButtonAnimator.Update += (sender, args) =>
            {
                _goButton.Alpha = (float)args.Animation.AnimatedValue;
            };

            mainAnimatorSet.PlaySequentially(appNameAnimationSet, socialButtonsAnimatorSet, letsGoButtonAnimator);

            await _viewModel.DidLoad();

            await Task.Delay(2000);

            mainAnimatorSet.Start();
            await _viewModel.DidAppear();
        }
 public static int DpToPx(string dp, Context context)
 {
     return((int)TypedValue.ApplyDimension(ComplexUnitType.Dip, (float)Convert.ToDouble(dp), context.Resources.DisplayMetrics));
 }
        public float GetNativeSize(float size)
        {
            var displayMetrics = Android.App.Application.Context.Resources.DisplayMetrics;

            return(TypedValue.ApplyDimension(ComplexUnitType.Dip, size, displayMetrics));
        }
 // Calculates a screen dimension given a specified dimension in raw pixels
 internal static float CalculateScreenDimension(float pixels, ComplexUnitType screenUnitType = ComplexUnitType.Dip)
 {
     return(!DesignTime.IsDesignMode ?
            TypedValue.ApplyDimension(screenUnitType, pixels, GetDisplayMetrics()) : pixels);
 }
Example #12
0
 public static int GetPixelFromDp(Context context, float dp)
 {
     return((int)TypedValue.ApplyDimension(ComplexUnitType.Dip,
                                           dp, context.Resources.DisplayMetrics));
 }
Example #13
0
 private int Dp2Px(int dp)
 {
     return((int)TypedValue.ApplyDimension(ComplexUnitType.Dip, dp,
                                           Context.Resources.DisplayMetrics));
 }
 internal static float ConvertToDp(double value)
 {
     return(TypedValue.ApplyDimension(ComplexUnitType.Dip, (float)value, DisplayMetrics));
 }
Example #15
0
 private static int GetPX(Context context, int sizeDP)
 {
     return((int)TypedValue.ApplyDimension(ComplexUnitType.Dip, sizeDP, context.Resources.DisplayMetrics));
 }
Example #16
0
 public static float ConvertToSp(double value)
 {
     return(TypedValue.ApplyDimension(ComplexUnitType.Sp, (float)value, _displayMetrics));
 }
Example #17
0
        protected virtual int DpToPixels(int dp)
        {
            var value = TypedValue.ApplyDimension(ComplexUnitType.Dip, dp, this.Activity.Resources.DisplayMetrics);

            return(Convert.ToInt32(value));
        }
        public void Init(Context context,
                         float y,
                         float pinRadiusDp,
                         int pinColor,
                         Color textColor,
                         float circleRadius,
                         Color circleColor,
                         float minFont,
                         float maxFont,
                         bool pinsAreTemporary)
        {
            this._res = context.Resources;
            this._pin = ContextCompat.GetDrawable(context, Resource.Drawable.rotate);

            this._density          = this.Resources.DisplayMetrics.Density;
            this._minPinFont       = minFont / this._density;
            this._maxPinFont       = maxFont / this._density;
            this._pinsAreTemporary = pinsAreTemporary;

            this._pinPadding     = (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 15, this._res.DisplayMetrics);
            this._circleRadiusPx = circleRadius;
            this._textYPadding   = (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 3.5f, this._res.DisplayMetrics);

            // If one of the attributes are set, but the others aren't, set the
            // attributes to default
            if (Math.Abs(pinRadiusDp - -1) < 0)
            {
                this._pinRadiusPx =
                    (int)
                    TypedValue.ApplyDimension(ComplexUnitType.Dip, _defaultThumbRadiusDp, this._res.DisplayMetrics);
            }
            else
            {
                this._pinRadiusPx =
                    (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, pinRadiusDp, this._res.DisplayMetrics);
            }

            // Set text size in px from dp
            var textSize = (int)TypedValue.ApplyDimension(ComplexUnitType.Sp, 15, this._res.DisplayMetrics);

            // Creates the paint and sets the Paint values
            this._textPaint = new Paint
            {
                Color     = textColor,
                AntiAlias = true,
                TextSize  = textSize
            };

            // Creates the paint and sets the Paint values
            this._circlePaint = new Paint
            {
                Color     = circleColor,
                AntiAlias = true
            };

            //Color filter for the selection pin
            this._pinFilter = new LightingColorFilter(pinColor, pinColor);

            // Sets the minimum touchable area, but allows it to expand based on
            // image size
            var targetRadius = (int)Math.Max(_minimumTargetRadiusDp, this._pinRadiusPx);

            this._targetRadiusPx = TypedValue.ApplyDimension(ComplexUnitType.Dip, targetRadius, this._res.DisplayMetrics);

            this._y = y;
        }
Example #19
0
        /**
         * 根据dip值转化成px值
         *
         * @param context
         * @param dip
         * @return
         */
        public static int DipToPix(Context context, int dip)
        {
            int size = (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, dip, context.Resources.DisplayMetrics);

            return(size);
        }
        protected void ZoomToAll()
        {
            if (MarkerSet?.MarkerWrappers?.Any() ?? false)
            {
                var boundsBuilder = new LatLngBounds.Builder();
                foreach (var markerWrapper in MarkerSet.MarkerWrappers)
                {
                    boundsBuilder.Include(markerWrapper.Position);
                }

                var bounds = CameraUpdateFactory.NewLatLngBounds(boundsBuilder.Build(), (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 70, Context.Resources.DisplayMetrics));
                Map.AnimateCamera(bounds);
            }
        }
Example #21
0
        private int ConvertToPx(int dp)
        {
            var px = (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, dp, Context.Resources.DisplayMetrics);

            return(px);
        }
Example #22
0
 /// <summary>
 /// Converts the dp to px.
 /// </summary>
 /// <param name="context">The context.</param>
 /// <param name="dp">The dp.</param>
 /// <returns></returns>
 private Int32 ConvertDpToPx(Context context, Single dp) => (Int32)TypedValue.ApplyDimension(ComplexUnitType.Dip, dp, context.Resources.DisplayMetrics);
Example #23
0
            /// <summary>
            ///		<see cref="MyWatchFaceEngine"/>のインスタンスが生成された時に実行します。
            /// </summary>
            /// <param name="holder">ディスプレイ表面を表すオブジェクト</param>
            public override void OnCreate(ISurfaceHolder holder)
            {
                // TODO : ここでは主に、以下の処理を行います。
                // ・リソースから画像の読み込み
                // ・Paintなどのグラフィックスオブジェクトを生成
                // ・時刻を格納するオブジェクトの作成
                // ・システムのUI(インジケーターやOK Googleの表示など)の設定

                // システムのUIの配置方法を設定します。
                SetWatchFaceStyle(
                    new WatchFaceStyle.Builder(owner)
                    #region ウォッチフェイスのスタイルの設定

                    // ユーザーからのタップイベントを有効にするかどうか設定します。
                    //   true  : 有効
                    //   false : 無効(デフォルト)
                    //.SetAcceptsTapEvents( true )

                    // 通知が来た時の通知カードの高さを設定します。
                    //   WatchFaceStyle.PeekModeShort    : 通知カードをウィンドウの下部に小さく表示します。(デフォルト)
                    //   WatchFaceStyle.PeekModeVariable : 通知カードをウィンドウの全面に表示します。
                    // 注: Android Wear 2.0では、この設定は使用されません。
                    .SetCardPeekMode(WatchFaceStyle.PeekModeShort)

                    // 通知カードの背景の表示方法を設定します。
                    //   WatchFaceStyle.BackgroundVisibilityInterruptive : 電話の着信など一部の通知のみ、背景を用事します。(デフォルト)
                    //   WatchFaceStyle.BackgroundVisibilityPersistent   : 通知カードの種類にかかわらず、その背景を常に表示します。
                    // 注: Android Wear 2.0では、この設定は使用されません。
                    .SetBackgroundVisibility(WatchFaceStyle.BackgroundVisibilityInterruptive)

                    // アンビエントモード時に通知カードを表示するかどうかを設定します。
                    //   WatchFaceStyle.AmbientPeekModeVisible : 通知カードを表示します。(デフォルト)
                    //   WatchFaceStyle.AmbientPeekModeHidden  : 通知カードを表示しません。
                    // 注: Android Wear 2.0では、この設定は使用されません。
                    //.SetAmbientPeekMode( WatchFaceStyle.AmbientPeekModeHidden )

                    // システムUIのデジタル時計を表示するするかどうかを設定します。(使用している例として、デフォルトで用意されている「シンプル」があります。)
                    //   true  : 表示
                    //   false : 非表示(デフォルト)
                    .SetShowSystemUiTime(false)

                    // ステータスアイコンなどに背景を付けるかどうかを設定します。
                    //   デフォルト                               : ステータスアイコンなどに背景を表示しません。
                    //   WatchFaceStyle.ProtectStatusBar        : ステータスアイコンに背景を表示します。
                    //   WatchFaceStyle.ProtectHotwordIndicator : 「OK Google」に背景を表示します。
                    //   WatchFaceStyle.ProtectWholeScreen      : ウォッチフェイスの背景を少し暗めにします。
                    // ※パラメーターは論理和で組み合わせることができます。
                    //.SetViewProtectionMode( WatchFaceStyle.ProtectStatusBar | WatchFaceStyle.ProtectHotwordIndicator )

                    // 通知カードを透明にするかどうかを設定します。
                    //   WatchFaceStyle.PeekOpacityModeOpaque      : 不透明(デフォルト)
                    //   WatchFaceStyle.PeekOpacityModeTranslucent : 透明
                    // 注: Android Wear 2.0では、この設定は使用されません。
                    //.SetPeekOpacityMode( WatchFaceStyle.PeekOpacityModeTranslucent )

                    // ステータスアイコンや「OK Google」の位置を設定します。
                    //   GravityFlags.Top | GravityFlags.Left   : 左上(角形のデフォルト)
                    //   GravityFlags.Top | GravityFlags.Center : 上部の中央(丸形のデフォルト)
                    // 注 : GravityFlagsは列挙体なので、int型にキャストします。
                    //.SetStatusBarGravity( ( int )( GravityFlags.Top | GravityFlags.Center ) )
                    //.SetHotwordIndicatorGravity( ( int )( GravityFlags.Top | GravityFlags.Center ) )

                    #endregion
                    // 設定したスタイル情報をビルドします。このメソッドは最後に呼び出します。
                    .Build()
                    );
                // ベースクラスのOnCreateメソッドを実行します。
                base.OnCreate(holder);

                #region 最新のAndroid SDKにおける、Android.Content.Res.Resources.GetColorメソッドについて

                /*
                 *      Android.Content.Res.Resources.GetColorメソッドは、Android SDK Level 23以降で非推奨(Deprecated)となっています。
                 *      代わりの方法として、Android.Support.V4.Content.ContextCompat.GetColorメソッドを使用します。
                 *
                 *      [CanvasWatchFaceServiceオブジェクト].Resources.GetColor( Resource.Color.[リソース名] );
                 *      ↓
                 *      ContextCompat.GetColor( [CanvasWatchFaceServiceオブジェクト], Resource.Color.[リソース名] );
                 *      ※CanvasWatchFaceServiceクラスはContextクラスを継承しています。
                 *
                 *      なお、ContextCompat.GetColorの戻り値はColor型でなく、ARGB値を格納したint型となります。
                 *      Chronoir_net.Chronica.WatchfaceExtension.WatchfaceUtility.ConvertARGBToColor( int )メソッドで、Color型に変換することができます。
                 */
                #endregion

                var resources = owner.Resources;

                // 日付、バッテリー残量のフォントを設定します。
                textPaintForDate = new Paint {
                    TextSize = TypedValue.ApplyDimension(
                        ComplexUnitType.Dip,
                        resources.GetDimension(Resource.Dimension.text_date_font),
                        owner.Resources.DisplayMetrics
                        ),
                    AntiAlias = true,
                    Color     = Color.White,
                    // 中央ぞろえ
                    TextAlign = Paint.Align.Center
                };
                textPaintForDayOfWeek = new Paint(textPaintForDate)
                {
                    TextSize = TypedValue.ApplyDimension(
                        ComplexUnitType.Dip,
                        resources.GetDimension(Resource.Dimension.text_day_of_week_font),
                        owner.Resources.DisplayMetrics
                        )
                };
                textPaintForBatt = new Paint(textPaintForDate)
                {
                    TextSize = TypedValue.ApplyDimension(
                        ComplexUnitType.Dip,
                        resources.GetDimension(Resource.Dimension.text_batt_font),
                        owner.Resources.DisplayMetrics
                        )
                };

                // 背景用のグラフィックスオブジェクトを生成します。
                bitmapPaint = new Paint {
                    Color        = WatchfaceUtility.ConvertARGBToColor(ContextCompat.GetColor(owner.BaseContext, Resource.Color.background)),
                    FilterBitmap = true
                };

                matrix = new Matrix();

                // 時刻を格納するオブジェクトを生成します。
                // Time ( Android )
                //nowTime = new Time();
                // Calendar ( Java )
                //nowTime = Java.Util.Calendar.GetInstance( Java.Util.TimeZone.Default );
                // DateTime ( C# )
                // DateTime構造体は値型なので、オブジェクトの生成はは不要です。
            }
Example #24
0
        private void GetDataArticles()
        {
            try
            {
                ArticleData = JsonConvert.DeserializeObject <ArticleDataObject>(Intent?.GetStringExtra("ArticleObject") ?? "");
                if (ArticleData != null)
                {
                    GlideImageLoader.LoadImage(this, ArticleData.Author.Avatar, ImageUser, ImageStyle.CircleCrop, ImagePlaceholders.Drawable);
                    GlideImageLoader.LoadImage(this, ArticleData.Thumbnail, ImageBlog, ImageStyle.CenterCrop, ImagePlaceholders.Drawable);

                    TxtUsername.Text = WoWonderTools.GetNameFinal(ArticleData.Author);

                    TxtTitle.Text = Methods.FunString.DecodeString(ArticleData.Title);
                    TxtViews.Text = ArticleData.View + " " + GetText(Resource.String.Lbl_Views);

                    string style = AppSettings.SetTabDarkTheme ? "<style type='text/css'>body{color: #fff; background-color: #282828;}</style>" : "<style type='text/css'>body{color: #444; background-color: #FFFAFA;}</style>";
                    string imageFullWidthStyle = "<style>img{display: inline;height: auto;max-width: 100%;}</style>";

                    // This method is deprecated but need to use for old os devices
                    #pragma warning disable CS0618 // Type or member is obsolete
                    string content = Build.VERSION.SdkInt >= BuildVersionCodes.N ? Html.FromHtml(ArticleData.Content, FromHtmlOptions.ModeCompact)?.ToString() : Html.FromHtml(ArticleData.Content)?.ToString();
                    #pragma warning restore CS0618 // Type or member is obsolete

                    DataWebHtml  = "<!DOCTYPE html>";
                    DataWebHtml += "<head><title></title>" + style + imageFullWidthStyle + "</head>";
                    DataWebHtml += "<body>" + content + "</body>";
                    DataWebHtml += "</html>";
                    // <meta name='viewport' content='width=device-width, user-scalable=no' />
                    TxtHtml.SetWebViewClient(new MyWebViewClient(this));
                    TxtHtml.Settings.LoadsImagesAutomatically = true;
                    TxtHtml.Settings.JavaScriptEnabled        = true;
                    TxtHtml.Settings.JavaScriptCanOpenWindowsAutomatically = true;
                    TxtHtml.Settings.SetLayoutAlgorithm(WebSettings.LayoutAlgorithm.TextAutosizing);
                    TxtHtml.Settings.DomStorageEnabled       = true;
                    TxtHtml.Settings.AllowFileAccess         = true;
                    TxtHtml.Settings.DefaultTextEncodingName = "utf-8";

                    TxtHtml.Settings.UseWideViewPort      = (true);
                    TxtHtml.Settings.LoadWithOverviewMode = (true);

                    TxtHtml.Settings.SetSupportZoom(false);
                    TxtHtml.Settings.BuiltInZoomControls = (false);
                    TxtHtml.Settings.DisplayZoomControls = (false);

                    int fontSize = (int)TypedValue.ApplyDimension(ComplexUnitType.Sp, 18, Resources?.DisplayMetrics);
                    TxtHtml.Settings.DefaultFontSize = fontSize;

                    TxtHtml.LoadDataWithBaseURL(null, DataWebHtml, "text/html", "UTF-8", null);

                    bool success = int.TryParse(ArticleData.Posted, out var number);
                    if (success)
                    {
                        TxtTime.Text = Methods.Time.TimeAgo(number, false);
                    }
                    else
                    {
                        TxtTime.Text = ArticleData.Posted;
                    }

                    if (Methods.CheckConnectivity())
                    {
                        PollyController.RunRetryPolicyFunction(new List <Func <Task> > {
                            () => RequestsAsync.Article.GetBlogById(ArticlesId)
                        });
                    }
                }
            }
            catch (Exception e)
            {
                Methods.DisplayReportResultTrack(e);
            }
        }
Example #25
0
 public int convertDpToPixel(Context context, int v)
 {
     return((int)TypedValue.ApplyDimension(ComplexUnitType.Dip, v, context.Resources.DisplayMetrics));
 }
Example #26
0
 public InfoPaneFabBehavior(Context context, IAttributeSet attrs) : base(context, attrs)
 {
     minMarginBottom = (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 16, context.Resources.DisplayMetrics);
 }
Example #27
0
 private float DpToPx(float dp)
 {
     return(TypedValue.ApplyDimension(ComplexUnitType.Dip, dp, Resources.DisplayMetrics));
 }
        /// <inheritdoc />
        public bool OnTouch(View v, MotionEvent e)
        {
            // Get x/y coordinates of touch location
            var touchX = e.RawX;
            var touchY = e.RawY;

            var isTouchHandled = _isMinThumbFocused || _isMaxThumbFocused;
            var minTargetSize  = TypedValue.ApplyDimension(ComplexUnitType.Dip, 44f, ViewExtensions.GetDisplayMetrics());
            var minThumbBounds = GetBounds(MinimumThumb, minTargetSize, minTargetSize);
            var maxThumbBounds = GetBounds(MaximumThumb, minTargetSize, minTargetSize);

            switch (e.Action)
            {
            case MotionEventActions.Down:
                _isMinThumbFocused = minThumbBounds.Contains(touchX, touchY);
                _isMaxThumbFocused = maxThumbBounds.Contains(touchX, touchY);

                if (_isMinThumbFocused && !IsStartTimePinned)
                {
                    _lastX         = touchX - minThumbBounds.Left;
                    isTouchHandled = true;
                }

                if (_isMaxThumbFocused && !IsEndTimePinned)
                {
                    _lastX         = touchX - maxThumbBounds.Left;
                    isTouchHandled = true;
                }

                break;

            case MotionEventActions.Move:
                if (!_isMinThumbFocused && !_isMaxThumbFocused && !(_isMinThumbFocused && IsStartTimePinned) && !(_isMaxThumbFocused && IsEndTimePinned))
                {
                    return(isTouchHandled);
                }

                View trackedThumb = null;
                if (_isMinThumbFocused && _isMaxThumbFocused)
                {
                    var maxThumbTranslateX = touchX - maxThumbBounds.Left - _lastX;

                    // Gesture was within both min and max thumb, so let the direction of the gesture determine which thumb should be dragged
                    if (maxThumbTranslateX < 0)
                    {
                        // Gesture is moving thumb toward the min, so put focus on min thumb
                        trackedThumb       = MinimumThumb;
                        _isMaxThumbFocused = false;
                    }
                    else
                    {
                        // Gesture is moving thumb toward the max, so put focus on max thumb
                        trackedThumb       = MaximumThumb;
                        _isMinThumbFocused = false;
                    }
                }
                else if (_isMinThumbFocused)
                {
                    trackedThumb = MinimumThumb;
                }
                else if (_isMaxThumbFocused)
                {
                    trackedThumb = MaximumThumb;
                }

                var currentThumbX = touchX - trackedThumb.Left;
                var translateX    = currentThumbX - _lastX;

                if (_isMinThumbFocused)
                {
                    OnMinimumThumbDrag(translateX);
                }

                if (_isMaxThumbFocused)
                {
                    OnMaximumThumbDrag(translateX);
                }

                break;

            case MotionEventActions.Up:
                _isMinThumbFocused = false;
                _isMaxThumbFocused = false;
                OnDragCompleted();
                break;
            }

            return(isTouchHandled);
        }
        public static float DpToPixels(Context context, float valueInDp)
        {
            DisplayMetrics metrics = context.Resources.DisplayMetrics;

            return(TypedValue.ApplyDimension(ComplexUnitType.Dip, valueInDp, metrics));
        }
Example #30
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            if (Bootlegger.BootleggerClient.CurrentEvent == null)
            {
                Finish();
                return;
            }

            CurrentEvent = Bootlegger.BootleggerClient.CurrentEvent;

            SetTheme(Resource.Style.Theme_Normal);

            SetContentView(Resource.Layout.Review);


            //AndHUD.Shared.Show(this, Resources.GetString(Resource.String.loading), -1, MaskType.Black, null, null, true);

            Android.Support.V7.Widget.Toolbar toolbar = FindViewById <Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
            SetSupportActionBar(toolbar);
            SupportActionBar.SetDisplayHomeAsUpEnabled(true);

            Window.ClearFlags(WindowManagerFlags.TranslucentStatus);

            if (Build.VERSION.SdkInt >= Android.OS.BuildVersionCodes.Lollipop)
            {
                // add FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS flag to the window
                Window.AddFlags(WindowManagerFlags.DrawsSystemBarBackgrounds);
                // finally change the color
                Window.SetStatusBarColor(new Color(ContextCompat.GetColor(this, Android.Resource.Color.Transparent)));
            }

            //FindViewById<TextView>(Resource.Id.customTitle).Text = CurrentEvent.name;

            FindViewById <CollapsingToolbarLayout>(Resource.Id.collapsing_toolbar).SetTitle(CurrentEvent.name);

            FindViewById <CollapsingToolbarLayout>(Resource.Id.collapsing_toolbar).SetExpandedTitleTextAppearance(Resource.Style.ExpandedAppBar);
            Typeface font = ResourcesCompat.GetFont(this, Resource.Font.montserratregular);

            FindViewById <CollapsingToolbarLayout>(Resource.Id.collapsing_toolbar).CollapsedTitleTypeface = font;
            FindViewById <CollapsingToolbarLayout>(Resource.Id.collapsing_toolbar).ExpandedTitleTypeface  = font;

            FindViewById <AppBarLayout>(Resource.Id.appbar).SetExpanded(false, false);

            if (!string.IsNullOrEmpty(CurrentEvent.iconbackground) && !WhiteLabelConfig.REDUCE_BANDWIDTH)
            {
                Picasso.With(this).Load(CurrentEvent.iconbackground).CenterCrop().Fit().MemoryPolicy(MemoryPolicy.NoCache, MemoryPolicy.NoStore).Tag(this).Into(FindViewById <ImageView>(Resource.Id.defaultback), new Action(() =>
                {
                    var bitmap      = ((BitmapDrawable)FindViewById <ImageView>(Resource.Id.defaultback).Drawable).Bitmap;
                    Palette palette = Palette.From(bitmap).Generate();
                    int vibrant     = palette.GetLightVibrantColor(0);
                    if (vibrant == 0)
                    {
                        vibrant = palette.GetMutedColor(0);
                    }
                    int dark = palette.GetVibrantColor(0);
                    if (dark == 0)
                    {
                        dark = palette.GetLightMutedColor(0);
                    }
                    //FindViewById<CollapsingToolbarLayout>(Resource.Id.collapsing_toolbar).SetContentScrimColor(vibrant);
                    //FindViewById<CollapsingToolbarLayout>(Resource.Id.collapsing_toolbar).SetStatusBarScrimColor(dark);
                }), null);
            }
            else
            {
                Picasso.With(this).Load(Resource.Drawable.user_back).CenterCrop().Fit().Into(FindViewById <ImageView>(Resource.Id.defaultback));
                //FindViewById<CollapsingToolbarLayout>(Resource.Id.collapsing_toolbar).SetContentScrimColor(Color.Transparent);
                //FindViewById<CollapsingToolbarLayout>(Resource.Id.collapsing_toolbar).SetStatusBarScrimColor(dark);
            }

            FindViewById <TextView>(Resource.Id.organisedby).Text = CurrentEvent.organisedby;
            Picasso.With(this).Load(CurrentEvent.organiserprofile.Replace("sz=50", "")).Tag(this).Fit().Transform(new CircleTransform()).Into(FindViewById <ImageView>(Resource.Id.imgGravatar));

            FindViewById <TextView>(Resource.Id.contributors).Text  = Java.Lang.String.Format("%d", CurrentEvent.numberofcontributors);
            FindViewById <TextView>(Resource.Id.contributions).Text = Java.Lang.String.Format("%d", CurrentEvent.numberofclips);

            _pager = FindViewById <ViewPager>(Resource.Id.tabpager);

            capture = FindViewById <FloatingActionButton>(Resource.Id.capture);
            newedit = FindViewById <FloatingActionButton>(Resource.Id.newedit);
            newtag  = FindViewById <FloatingActionButton>(Resource.Id.newtag);


            capture.Click += CaptureClick;
            newedit.Click += Review_Click;
            newtag.Click  += Newtag_Click;

            var dip16 = (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 16, Resources.DisplayMetrics);

            capture.LayoutParameters = new CoordinatorLayout.LayoutParams(capture.LayoutParameters)
            {
                Behavior = new MyFABAwareScrollingViewBehavior(this, capture, 0, _pager), Gravity = (int)(GravityFlags.End | GravityFlags.Right | GravityFlags.Bottom), MarginEnd = dip16, BottomMargin = dip16
            };
            newtag.LayoutParameters = new CoordinatorLayout.LayoutParams(newtag.LayoutParameters)
            {
                Behavior = new MyFABAwareScrollingViewBehavior(this, newtag, 1, _pager), Gravity = (int)(GravityFlags.End | GravityFlags.Right | GravityFlags.Bottom), MarginEnd = dip16, BottomMargin = dip16
            };
            newedit.LayoutParameters = new CoordinatorLayout.LayoutParams(newedit.LayoutParameters)
            {
                Behavior = new MyFABAwareScrollingViewBehavior(this, newedit, 2, _pager), Gravity = (int)(GravityFlags.End | GravityFlags.Right | GravityFlags.Bottom), MarginEnd = dip16, BottomMargin = dip16
            };

            _tabs            = FindViewById <Android.Support.Design.Widget.TabLayout>(Resource.Id.tabs);
            _tabs.TabGravity = 0;
            _tabs.TabMode    = 1;

            _adapter       = new ReviewPageAdapter(SupportFragmentManager, this);
            _pager.Adapter = _adapter;

            if (savedInstanceState == null)
            {
                myclips                    = new MyClipsFragment(this);
                myclips.OnPreview         += Myclips_OnPreview;
                myclips.OnRefresh         += Myclips_OnRefresh;
                myclips.OnEventInfoUpdate += Myclips_OnEventInfoUpdate;
                myclips.OnStartUpload     += Myclips_OnStartUpload;

                myedits             = new MyEditsFragment();
                myedits.OnOpenEdit += Myedits_OnOpenEdit;
                myedits.OnPreview  += Myedits_OnPreview;

                myingest            = new AllClipsFragment(AllClipsFragment.ClipViewMode.LIST);
                myingest.OnPreview += Myingest_OnPreview;
            }
            else
            {
                myclips                    = SupportFragmentManager.FindFragmentByTag("android:switcher:" + Resource.Id.tabpager + ":0") as MyClipsFragment;
                myclips.OnPreview         += Myclips_OnPreview;
                myclips.OnRefresh         += Myclips_OnRefresh;
                myclips.OnEventInfoUpdate += Myclips_OnEventInfoUpdate;
                myclips.OnStartUpload     += Myclips_OnStartUpload;

                myingest             = SupportFragmentManager.FindFragmentByTag("android:switcher:" + Resource.Id.tabpager + ":1") as AllClipsFragment;
                myingest.ChooserMode = AllClipsFragment.ClipViewMode.LIST;
                myingest.OnPreview  += Myingest_OnPreview;

                myedits = SupportFragmentManager.FindFragmentByTag("android:switcher:" + Resource.Id.tabpager + ":2") as MyEditsFragment;
                if (myedits == null)
                {
                    myedits = new MyEditsFragment();
                }

                myedits.OnOpenEdit += Myedits_OnOpenEdit;
                myedits.OnPreview  += Myedits_OnPreview;
            }

            //myedits.Reattach();

            _adapter.AddTab(GetString(Resource.String.videos), myclips, ReviewPageAdapter.TabType.CLIPS);
            _adapter.AddTab(GetString(Resource.String.tagging), myingest, ReviewPageAdapter.TabType.INGEST);
            _adapter.AddTab(GetString(Resource.String.edits), myedits, ReviewPageAdapter.TabType.EDITS);

            _pager.Post(() => {
                _tabs.SetupWithViewPager(_pager);
            });

            _pager.PageSelected += _pager_PageSelected;

            if (Intent?.GetBooleanExtra("needsperms", false) ?? false)
            {
                LoginFuncs.ShowError(this, new NeedsPermissionsException());
            }
        }