Пример #1
0
        private void ClearNotifs()
        {
            NotifsManager.ClearNotifs(micId);

            adapter.UpdateNotifs(NotifsManager.GetSavedNotifications(micId));

            adapter.NotifyDataSetChanged();

            home.RunOnUiThread(() =>
            {
                adapter.NotifyDataSetChanged();
            });

            /*
             * RunOnUiThread(() =>
             * {
             *  adapter.NotifyDataSetChanged();
             * });
             */

            int index = gridView.FirstVisiblePosition;

            gridView.SmoothScrollToPosition(index);
            gridView.SmoothScrollBy(1, 5);


            var localBroadcast = new Intent("update_notifs");

            LocalBroadcastManager.GetInstance(Application.Context).SendBroadcast(localBroadcast);

            /*
             * if (micId == "All")
             * {
             *  var localBroadcast = new Intent("update_notifs");
             *  LocalBroadcastManager.GetInstance(Application.Context).SendBroadcast(localBroadcast);
             * }
             * else
             * {
             *  var localBroadcast = new Intent("notif_All");
             *  LocalBroadcastManager.GetInstance(Application.Context).SendBroadcast(localBroadcast);
             * }
             */
        }
Пример #2
0
        public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Android.OS.Bundle savedInstanceState)
        {
            base.OnCreateView(inflater, container, savedInstanceState);
            _container = container;
            bundle     = savedInstanceState;

            HasOptionsMenu = true;

            notifs = NotifsManager.GetSavedNotifications(micId);

            var view = inflater.Inflate(Resource.Layout.fragment_notifs, null);

            gridView = view.FindViewById <GridView>(Resource.Id.notif_grid);

            //notif_layout
            var prefs = PreferenceManager.GetDefaultSharedPreferences(Application.Context);

            string layoutStyle = prefs.GetString("notif_layout", "0");

            if (layoutStyle == "0" || layoutStyle == "2")
            {
                gridView.NumColumns = 1;
            }
            else if (layoutStyle == "1" || layoutStyle == "3")
            {
                gridView.NumColumns = 2;
            }


            //gridView.FastScrollEnabled = prefs.GetBoolean("notif_scrollbar_show", true);


            adapter          = new NotifAdapter(Activity, notifs);
            gridView.Adapter = adapter;

            gridView.ItemClick += GridOnItemClick;

            if (micId != "All")
            {
                if (!updatingNotifs)
                {
                    updatingNotifs = true;
                    RequestUpdateNotifs();
                }
            }

            mRegistrationBroadcastReceiver          = new Shared.BroadcastReceiver();
            mRegistrationBroadcastReceiver.Receive += (sender, e) =>
            {
                if (micId != "All")
                {
                    RequestUpdateNotifs();
                }
                else
                {
                    adapter.UpdateNotifs(NotifsManager.GetSavedNotifications(micId));

                    home.RunOnUiThread(() =>
                    {
                        adapter.NotifyDataSetChanged();
                    });

                    int index = gridView.FirstVisiblePosition;
                    gridView.SmoothScrollToPosition(index);
                    gridView.SmoothScrollBy(1, 1000);
                }
            };

            return(view);
        }
Пример #3
0
        private void RequestUpdateNotifs()
        {
            MicsManager.instance.micsUpdating++;
            MicsManager.instance.updatesQueued = true;



            //UserDialogs.Instance.ShowLoading();

            var client     = new RestClient(Shared.SERVERURL);
            var request    = new RestRequest("resource/{id}", Method.POST);
            var parameters = new Dictionary <string, string>();
            var prefs      = PreferenceManager.GetDefaultSharedPreferences(Application.Context);
            ISharedPreferencesEditor editor = prefs.Edit();
            string gcmID = prefs.GetString("GCMID", "");
            string hwid  = Android.OS.Build.Serial;

            if (prefs.GetBoolean("notif_show_update", false))
            {
                UserDialogs.Instance.ShowLoading();
            }

            if (prefs.GetBoolean("clear_instanceid", false) == true)
            {
                updatingNotifs = false;
                return;
            }

            string   lastCheckString = prefs.GetString(micId + "_LastCheck", "");
            DateTime lastCheck       = new DateTime(1970, 1, 2);

            if (!string.IsNullOrEmpty(lastCheckString))
            {
                lastCheck = DateTime.Parse(lastCheckString);
            }
            string dateFormatted = lastCheck.ToString("yyyy-MM-dd HH:mm:ss");

            parameters.Add(Shared.ParamType.REQUEST_CODE, Shared.RequestCode.GET_NOTIFICATIONS.ToString());
            parameters.Add(Shared.ParamType.WAVIO_ID, micId);
            parameters.Add(Shared.ParamType.GCM_ID, gcmID);
            parameters.Add(Shared.ParamType.HWID, hwid);
            parameters.Add(Shared.ParamType.NOTIFS_SINCE, dateFormatted);

            string requestJson = JsonConvert.SerializeObject(parameters);

            request.AddParameter(Shared.ParamType.REQUEST, requestJson);


            client.ExecuteAsync(request, response => {
                MicsManager.instance.micsUpdating--;
                //AndHUD.Shared.Dismiss();
                Shared.ServerResponse serverResponse = JsonConvert.DeserializeObject <Shared.ServerResponse>(response.Content);

                if (serverResponse == null)
                {
                    //AndHUD.Shared.ShowError(Context, "Network error!", AndroidHUD.MaskType.Black, TimeSpan.FromSeconds(2));
                    //UserDialogs.Instance.ErrorToast("Network error!");
                    UserDialogs.Instance.HideLoading();
                    return;
                }


                if (serverResponse.error == Shared.ServerResponsecode.DATABASE_ERROR)
                {
                    //AndHUD.Shared.ShowError(Context, "Server error!", AndroidHUD.MaskType.Black, TimeSpan.FromSeconds(2));
                    UserDialogs.Instance.ErrorToast("Server error!");
                }
                else if (serverResponse.error == Shared.ServerResponsecode.OK)
                {
                    var notifs = JsonConvert.DeserializeObject <List <Notif> >(serverResponse.data);

                    var result = NotifsManager.AddNewNotifs(micId, notifs);

                    if (true || notifs.Count > 0)
                    {
                        var allNotifs = NotifsManager.GetSavedNotifications(micId);
                        adapter.UpdateNotifs(allNotifs);
                        //gridView.SetSelection(0);
                        //gridView.SmoothScrollToPosition(0);
                        int index = gridView.FirstVisiblePosition;
                        gridView.SmoothScrollToPosition(index);
                        gridView.SmoothScrollToPosition(0);
                        gridView.SmoothScrollBy(1, 500);

                        home.RunOnUiThread(() =>
                        {
                            adapter.NotifyDataSetChanged();
                        });
                    }

                    int i = MicsManager.instance.micsUpdating;
                    if (MicsManager.instance.micsUpdating <= 0 && MicsManager.instance.updatesQueued)
                    {
                        MicsManager.instance.micsUpdating  = 0;
                        MicsManager.instance.updatesQueued = false;
                        var localBroadcast = new Intent("notif_All");
                        LocalBroadcastManager.GetInstance(Application.Context).SendBroadcast(localBroadcast);
                    }

                    /*
                     * MicsManager.instance.micsUpdated++;
                     * if (MicsManager.instance.micsUpdated >= MicsManager.GetMicsFromPreferences().Count)
                     * {
                     *  var localBroadcast = new Intent("notif_All");
                     *  LocalBroadcastManager.GetInstance(Application.Context).SendBroadcast(localBroadcast);
                     *
                     *  MicsManager.instance.micsUpdated = 0;
                     * }
                     */
                    //var localBroadcast = new Intent("notif_All");
                    //LocalBroadcastManager.GetInstance(Application.Context).SendBroadcast(localBroadcast);

                    //AndHUD.Shared.ShowSuccess(Context, "Added!", AndroidHUD.MaskType.Clear, TimeSpan.FromSeconds(2));
                }
                else
                {
                    if (serverResponse.request != Shared.RequestCode.GET_NOTIFICATIONS)
                    {
                        //AndHUD.Shared.ShowError(Context, "Request type mismatch!", AndroidHUD.MaskType.Black, TimeSpan.FromSeconds(2));
                        UserDialogs.Instance.ErrorToast("Request type mismatch!");
                        return;
                    }
                    //AndHUD.Shared.ShowError(Context, "Unknown error!", AndroidHUD.MaskType.Black, TimeSpan.FromSeconds(2));
                    UserDialogs.Instance.ErrorToast("Unknown error!");
                }

                updatingNotifs = false;
                UserDialogs.Instance.HideLoading();
                return;
            });
        }